示例#1
0
    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"
        )
示例#2
0
    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())
示例#3
0
    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())
示例#4
0
    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"
        )
示例#5
0
    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)