def test_get_maintenance_duration_1d(self): maintenance = np.array( [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) maintenance_duration = GridValue.get_maintenance_duration_1d( maintenance) assert np.all(maintenance_duration == np.array( [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) maintenance = np.array( [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]) maintenance_duration = GridValue.get_maintenance_duration_1d( maintenance) assert np.all(maintenance_duration == np.array( [3, 3, 3, 3, 3, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0])) maintenance = np.array( [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0]) maintenance_duration = GridValue.get_maintenance_duration_1d( maintenance) assert np.all(maintenance_duration == np.array( [3, 3, 3, 3, 3, 3, 2, 1, 2, 2, 2, 2, 2, 1, 0, 0, 0])) maintenance = np.array( [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1]) maintenance_duration = GridValue.get_maintenance_duration_1d( maintenance) assert np.all(maintenance_duration == np.array( [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 3, 2, 1]))
def __init__(self, episode_data, time_interval=timedelta(minutes=5), max_iter=-1, start_datetime=None, chunk_size=None): # TODO reload directly the loadp, loadq, prodp and prodv from the path of the episode data if possible self.episode_data = episode_data if start_datetime is None: warnings.warn( "\"start_datetime\" argument is ignored when building the _GridFromLog" ) if chunk_size is None: warnings.warn( "\"chunk_size\" argument is ignored when building the _GridFromLog" ) GridValue.__init__( self, time_interval=time_interval, max_iter=max_iter, start_datetime=self.episode_data.observations[0].get_time_stamp(), chunk_size=None) # TODO reload that self.maintenance_time = np.zeros( self.episode_data.observations[0].line_status.shape[0], dtype=int) - 1 self.maintenance_duration = np.zeros( self.episode_data.observations[0].line_status.shape[0], dtype=int) self.hazard_duration = np.zeros( self.episode_data.observations[0].line_status.shape[0], dtype=int) self.curr_iter = 0
def test_get_hazard_duration_1d(self): hazard = np.array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]) hazard_duration = GridValue.get_hazard_duration_1d(hazard) assert np.all(hazard_duration == np.array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])) hazard = np.array([0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0]) hazard_duration = GridValue.get_hazard_duration_1d(hazard) assert np.all(hazard_duration == np.array([0,0,0,0,0,3,2,1,0,0,0,0,0,0,0,0])) hazard = np.array([0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0]) hazard_duration = GridValue.get_hazard_duration_1d(hazard) assert np.all(hazard_duration == np.array([0,0,0,0,0,3,2,1,0,0,0,0,2,1,0,0,0])) hazard = np.array([0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1]) hazard_duration = GridValue.get_hazard_duration_1d(hazard) assert np.all(hazard_duration == np.array([0,0,0,0,0,0,0,0,0,0,0,0,5,4,3,2,1]))
def test_get_maintenance_time_1d(self): maintenance_time = GridValue.get_maintenance_time_1d(np.array([0 for _ in range(10)])) assert np.all(maintenance_time == np.array([-1 for _ in range(10)])) maintenance = np.array([0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0]) maintenance_time = GridValue.get_maintenance_time_1d(maintenance) assert np.all(maintenance_time == np.array([5,4,3,2,1,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1])) maintenance = np.array([0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0]) maintenance_time = GridValue.get_maintenance_time_1d(maintenance) assert np.all(maintenance_time == np.array([5,4,3,2,1,0,0,0,4,3,2,1,0,0,-1,-1,-1])) maintenance = np.array([0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1]) maintenance_duration = GridValue.get_maintenance_time_1d(maintenance) assert np.all(maintenance_duration == np.array([12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0]))