def test_aggregation_call(self): data = np.random.random((10, 4)) data[:, 0] = np.arange(0, 10) data[:, 1] = np.arange(10, 20) data.flags.writeable = False expected_param = np.zeros((2, 9, 2)) expected_param[0, :, 0] = np.arange(0, 9) expected_param[0, :, 1] = np.arange(10, 19) expected_param[1, :, 0] = np.arange(1, 10) expected_param[1, :, 1] = np.arange(11, 20) expected_data = np.full((10, 4 + 2), fill_value=np.nan) expected_data[:, :4] = data expected_data[-2:, 4:] = 9 agg = DummyAggreagor(sequence=9, generate=[ InputOutputField(inputField='abc', outputField='hello'), InputOutputField(inputField='xyz', outputField='world'), ]) input_format = StandardDataFormat( timestamps=helper_data.generate_timestamps(10, samples=data.shape[0]), labels=['abc', 'xyz', 'aaa', 'bbb'], data=data) result = agg.process(input_format) assert_array_equal(agg.grouped_data, expected_param) self.assertEqual(result.labels, ['abc', 'xyz', 'aaa', 'bbb', 'hello', 'world']) assert_array_equal(result.data, expected_data)
def test_no_outliers(self): data = np.array([[10, 30], [12, 25]], dtype="float64") data.flags.writeable = False input_data = StandardDataFormat( labels=['a', 'b'], data=data, timestamps=helper_data.generate_timestamps(2, 2)) # noinspection PyArgumentList configs: List[InputOutputLimits] = [InputOutputLimits(inputField="a")] result = OutlierRemover(generate=configs)._process2d(input_data) assert_array_equal(data, result.data)
def test_min_outlier(self): data = np.array([[10, 30], [12, 25]], dtype="float64") data.flags.writeable = False input_data = StandardDataFormat( labels=['a', 'b'], data=data, timestamps=helper_data.generate_timestamps(2, 2)) limits = [{'inputField': 'b', 'min': 28}] result_expected = data.copy() result_expected[1, 1] = np.nan result = OutlierRemover(generate=limits)._process2d(input_data) assert_array_equal(result_expected, result.data)
def test_standard_case(self): data = np.array([ [23, 55], [21, 52], [np.nan, 52], [23, np.nan], ]) data.flags.writeable = False result_excepted = data[:2] process_data = StandardDataFormat( data=data, labels=['a', 'b'], timestamps=helper_data.generate_timestamps(2, samples=4)) result = NanRemover()._process2d(process_data) assert_array_equal(result_excepted, result.data)
def test_standard_case(self): data = np.array([[11, 20], [12, 21], [13, 22], [14, 20], [15, 20], [16, 20], [17, 20], [18, 20]], dtype='float') result_expected = np.array( [[11, 20], [12, 21], [13, 22], [14, 20], [15, 20], [16, 20], [17, np.nan], [18, np.nan]], dtype='float') processor_data = StandardDataFormat( timestamps=helper_data.generate_timestamps(samples=data.shape[0]), labels=helper_data.get_labels(2), data=data) processor_data_result = FreezedValueRemover( max_freezed_values=3)._process2d(processor_data) assert_array_equal(result_expected, processor_data_result.data)