def test_reverse_transform_nan_ignore(self): """Test reverse_transform with nan equal to ignore""" # Setup data = pd.Series([np.nan, 845510400000000000, -145497600000000000]) # Run transformer = Mock() transformer.nan = None result = DatetimeTransformer.reverse_transform(transformer, data) # Asserts expect = pd.Series([ np.nan, pd.to_datetime(845510400000000000), pd.to_datetime(-145497600000000000) ]) expect_reverse_call_count = 0 pd.testing.assert_series_equal(result, expect) self.assertEqual( transformer.null_transformer.reverse_transform.call_count, expect_reverse_call_count, "NullTransformer.reverse_transform won't be called when nan is ignore" )
def test_reverse_transform_all_none(self): dt = pd.to_datetime(['2020-01-01']) dtt = DatetimeTransformer(strip_constant=True) dtt.fit(dt) output = dtt.reverse_transform(np.array([None])) expected = pd.to_datetime(['NaT']) pd.testing.assert_series_equal(output.to_series(), expected.to_series())
def test_reverse_transform_2d_ndarray(self): dt = pd.to_datetime(['2020-01-01', '2020-02-01', '2020-03-01']) dtt = DatetimeTransformer(strip_constant=True) dtt.fit(dt) transformed = np.array([[18262.], [18293.], [18322.]]) output = dtt.reverse_transform(transformed) expected = pd.to_datetime(['2020-01-01', '2020-02-01', '2020-03-01']) pd.testing.assert_series_equal(output.to_series(), expected.to_series())
def test_reverse_transform_nan_not_ignore(self): """Test reverse_transform with nan not equal to ignore""" # Setup data = pd.Series([np.nan, 845510400000000000, -145497600000000000]) reversed_data = pd.Series( [np.nan, 845510400000000000, -145497600000000000]) # Run transformer = Mock() transformer.nan = 'mean' transformer.null_transformer.reverse_transform.return_value = reversed_data DatetimeTransformer.reverse_transform(transformer, data) # Asserts expect_reverse_call_count = 1 self.assertEqual( transformer.null_transformer.reverse_transform.call_count, expect_reverse_call_count, "NullTransformer.reverse_transform must be called when nan is not ignore" )
def test_no_strip(self): dtt = DatetimeTransformer(strip_constant=False) data = pd.to_datetime(pd.Series([None, '1996-10-17', '1965-05-23'])) # Run transformed = dtt.fit_transform(data.copy().to_numpy()) reverted = dtt.reverse_transform(transformed) # Asserts expect_trans = np.array([ [350006400000000000, 1.0], [845510400000000000, 0.0], [-145497600000000000, 0.0] ]) np.testing.assert_almost_equal(expect_trans, transformed) pd.testing.assert_series_equal(reverted, data)