def test_reverse_transform_rounding_none(self): """Test ``reverse_transform`` when ``rounding`` is ``None`` The data should not be rounded at all. Input: - Random array of floats between 0 and 1 Output: - Input array """ # Setup data = np.random.random(10) # Run transformer = NumericalTransformer(dtype=np.float, nan=None) transformer._rounding_digits = None result = transformer.reverse_transform(data) # Assert np.testing.assert_array_equal(result, data)
def test_reverse_transform_rounding_none_integer(self): """Test ``reverse_transform`` when ``rounding`` is ``None`` and the dtype is integer. The data should be rounded to 0 decimals and returned as integer values. Input: - Array of multiple float values with decimals. Output: - Input array rounded an converted to integers. """ # Setup data = np.array([0., 1.2, 3.45, 6.789]) # Run transformer = NumericalTransformer(dtype=np.int64, nan=None) transformer._rounding_digits = None transformer._dtype = np.int64 result = transformer.reverse_transform(data) # Assert expected = np.array([0, 1, 3, 7]) np.testing.assert_array_equal(result, expected)
def test_reverse_transform_rounding_zero(self): """Test ``reverse_transform`` when ``rounding`` is a negative int The data should round to the number set in the ``_rounding_digits`` attribute. Input: - Array with with larger numbers Output: - Same array rounded to the provided number of 0s """ # Setup data = np.array([2000.554, 120.2, 3101, 4010]) # Run transformer = NumericalTransformer(dtype=np.float, nan=None) transformer._rounding_digits = 0 result = transformer.reverse_transform(data) # Assert expected_data = np.array([2001, 120, 3101, 4010]) np.testing.assert_array_equal(result, expected_data)
def test_reverse_transform_rounding_positive_rounding(self): """Test ``reverse_transform`` when ``rounding`` is a positive int The data should round to the maximum number of decimal places set in the ``_rounding_digits`` value. Input: - Array with decimals Output: - Same array rounded to the provided number of decimal places """ # Setup data = np.array([1.1111, 2.2222, 3.3333, 4.44444, 5.555555]) # Run transformer = NumericalTransformer(dtype=np.float, nan=None) transformer._rounding_digits = 2 result = transformer.reverse_transform(data) # Assert expected_data = np.array([1.11, 2.22, 3.33, 4.44, 5.56]) np.testing.assert_array_equal(result, expected_data)