|
7 | 7 | ClusterBasedNormalizer, |
8 | 8 | FloatFormatter, |
9 | 9 | GaussianNormalizer, |
| 10 | + LogScaler, |
10 | 11 | ) |
11 | 12 |
|
12 | 13 |
|
@@ -560,3 +561,58 @@ def test_out_of_bounds_reverse_transform(self): |
560 | 561 |
|
561 | 562 | # Assert |
562 | 563 | assert isinstance(reverse, pd.DataFrame) |
| 564 | + |
| 565 | + |
| 566 | +class TestLogScaler: |
| 567 | + def test_learn_rounding(self): |
| 568 | + # Setup |
| 569 | + data = pd.DataFrame({'test': [1.0, np.nan, 1.5]}) |
| 570 | + transformer = LogScaler( |
| 571 | + missing_value_generation=None, |
| 572 | + missing_value_replacement='mean', |
| 573 | + learn_rounding_scheme=True, |
| 574 | + ) |
| 575 | + expected = pd.DataFrame({'test': [1.0, 1.2, 1.5]}) |
| 576 | + |
| 577 | + # Run |
| 578 | + transformer.fit(data, 'test') |
| 579 | + transformed = transformer.transform(data) |
| 580 | + reversed = transformer.reverse_transform(transformed) |
| 581 | + |
| 582 | + # Assert |
| 583 | + np.testing.assert_array_equal(reversed, expected) |
| 584 | + |
| 585 | + def test_missing_value_generation_from_column(self): |
| 586 | + # Setup |
| 587 | + data = pd.DataFrame({'test': [1.0, np.nan, 1.5]}) |
| 588 | + transformer = LogScaler( |
| 589 | + missing_value_generation='from_column', |
| 590 | + missing_value_replacement='mean', |
| 591 | + ) |
| 592 | + |
| 593 | + # Run |
| 594 | + transformer.fit(data, 'test') |
| 595 | + transformed = transformer.transform(data) |
| 596 | + reversed = transformer.reverse_transform(transformed) |
| 597 | + |
| 598 | + # Assert |
| 599 | + np.testing.assert_array_equal(reversed, data) |
| 600 | + |
| 601 | + def test_missing_value_generation_random(self): |
| 602 | + # Setup |
| 603 | + data = pd.DataFrame({'test': [1.0, np.nan, 1.5, 1.5]}) |
| 604 | + transformer = LogScaler( |
| 605 | + missing_value_generation='random', |
| 606 | + missing_value_replacement='mode', |
| 607 | + invert=True, |
| 608 | + constant=3, |
| 609 | + ) |
| 610 | + expected = pd.DataFrame({'test': [np.nan, 1.5, 1.5, 1.5]}) |
| 611 | + |
| 612 | + # Run |
| 613 | + transformer.fit(data, 'test') |
| 614 | + transformed = transformer.transform(data) |
| 615 | + reversed = transformer.reverse_transform(transformed) |
| 616 | + |
| 617 | + # Assert |
| 618 | + np.testing.assert_array_equal(reversed, expected) |
0 commit comments