def test__init__with_DataFrame_input_many_columns__with_values(self): index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) my_series = Series([0.4, 1.0, 0.7, 0.6], index=index) df = DataFrame({TIME_SERIES_VALUES: my_series, "two": my_series}) ts = TimeSeries(df) self.assertIsInstance(ts, TimeSeries)
def test__init__with_DataFrame_input_many_columns__without_values(self): index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) my_series = Series([0.4, 1.0, 0.7, 0.6], index=index) df = DataFrame({"one": my_series, "two": my_series}) with self.assertRaises(AssertionError): ts = TimeSeries(df)
def test__init__with_Series_input(self): index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) my_series = Series([0.4, 1.0, 0.7, 0.6], index=index) ts = TimeSeries(my_series) self.assertTrue(TIME_SERIES_VALUES in ts.series.columns) self.assertIsInstance(ts, TimeSeries)
def test__init__with_DataFrame_input_single_column(self): index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) my_series = Series([0.4, 1.0, 0.7, 0.6], index=index) df = DataFrame(data=my_series) ts = TimeSeries(df) self.assertTrue(TIME_SERIES_VALUES in ts.series.columns) self.assertIsInstance(ts, TimeSeries)
def test__init__contains_metadata(self): # Add some data index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) my_series = DataFrame([0.4, 1.0, 0.7, 0.6], index=index) my_metadata = Metadata() my_ts = TimeSeries(my_series, my_metadata) # Check types self.assertNotEqual(my_ts.metadata, None, "The TimeSeries Metadata is probably None")
def test__init__has_right_types(self): # Add some data index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) my_series = DataFrame([0.4, 1.0, 0.7, 0.6], index=index) my_metadata = Metadata() my_ts = TimeSeries(my_series, my_metadata) # Check types self.assertIsInstance( my_ts.series, DataFrame, "The TimeSeries series is not a Pandas DataFrame") self.assertIsInstance( my_ts.metadata, Metadata, "The TimeSeries Metadata hasn't got the right type")
def test__to_text__without_metadata(self): path = self.target_dir + "/to_text_without_metadata" my_time_series = TimeSeries(self.my_series) my_time_series.to_text(path) data_csv_path = "{}/{}.{}".format(path, TIME_SERIES_FILENAME, TIME_SERIES_EXT) does_data_csv_exist = os_path.exists(data_csv_path) self.assertTrue(does_data_csv_exist) meta_json_path = "{}/{}.{}".format(path, METADATA_FILENAME, METADATA_EXT) does_meta_json_exist = os_path.exists(meta_json_path) self.assertFalse(does_meta_json_exist)
def setUp(self) -> None: # Create a time indexed series index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) self.my_series = Series([0.4, 1.0, 0.7, 0.6], index=index) # Create metadata my_unit = {"name": "power", "symbol": "W", "data_type": "float"} my_coordinates = {"lat": 46.796611, "lon": 7.147563} my_dict = {"unit": my_unit, "coordinates": my_coordinates} self.my_metadata = Metadata(my_dict) self.my_time_series = TimeSeries(self.my_series, self.my_metadata) # Define a target directory self.target_dir = "data/test-export"
def test_anomaly_generator(): from datetime import datetime start_time = time.time() print("---START DATASET CREATION---") # data_reader = Reader('../../data/clean/ACS-F2/Dataset/*/*.xml') data = pd.read_csv('./anomaly_generator_test_data.csv', index_col=0).T data.drop('label', inplace=True) tss = [datetime.fromtimestamp(int(x)) for x in data.index] result = [] for i, v in data.iteritems(): v.index = tss[:len(v)] result.append(TimeSeries(v)) tsd = TimeSeriesDataset(result) anomaly_set = AnomalyGenerator(data=tsd, conf_file='test_config.ini') anomaly_set.generate() end_time = time.time() print("Creation time of the dataset: {0:.3f} seconds.".format(end_time - start_time))
def test__init__wrong_index_type(self): values = Series([0.4, 1.0, 0.7, 0.6]) with self.assertRaises(AssertionError): TimeSeries(values)
def test__init__has_values_as_column_name(self): index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) my_series = Series([0.4, 1.0, 0.7, 0.6], index=index) ts = TimeSeries(my_series) self.assertTrue(TIME_SERIES_VALUES in ts.series.columns)
def test__init__is_instance(self): self.my_time_series = TimeSeries() self.assertIsInstance(self.my_time_series, TimeSeries, "The TimeSeries hasn't the right type")
def test__init__freq_is_infered(self): index = DatetimeIndex( ['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04']) my_series = Series([0.4, 1.0, 0.7, 0.6], index=index) ts = TimeSeries(my_series) self.assertEqual(infer_freq(index), ts.series.index.freq)