|
7 | 7 | from sklearn.utils.testing import assert_array_almost_equal |
8 | 8 | from sklearn.utils.testing import assert_array_equal |
9 | 9 | from sklearn.utils.testing import assert_equal |
| 10 | +from sklearn.utils.testing import assert_greater_equal |
| 11 | +from sklearn.utils.testing import assert_less_equal |
10 | 12 | from sklearn.utils.testing import assert_raises |
11 | 13 | from sklearn.utils.testing import assert_true |
12 | 14 | from sklearn.utils.testing import assert_false |
@@ -214,6 +216,36 @@ def test_min_max_scaler_zero_variance_features(): |
214 | 216 | assert_array_almost_equal(X_trans, X_expected_1_2) |
215 | 217 |
|
216 | 218 |
|
| 219 | +def test_min_max_scaler_1d(): |
| 220 | + """Test scaling of dataset along single axis""" |
| 221 | + rng = np.random.RandomState(0) |
| 222 | + X = rng.randn(5) |
| 223 | + X_orig_copy = X.copy() |
| 224 | + |
| 225 | + scaler = MinMaxScaler() |
| 226 | + X_scaled = scaler.fit(X).transform(X) |
| 227 | + assert_array_almost_equal(X_scaled.min(axis=0), 0.0) |
| 228 | + assert_array_almost_equal(X_scaled.max(axis=0), 1.0) |
| 229 | + |
| 230 | + # check inverse transform |
| 231 | + X_scaled_back = scaler.inverse_transform(X_scaled) |
| 232 | + assert_array_almost_equal(X_scaled_back, X_orig_copy) |
| 233 | + |
| 234 | + # Test with 1D list |
| 235 | + X = [0., 1., 2, 0.4, 1.] |
| 236 | + scaler = MinMaxScaler() |
| 237 | + X_scaled = scaler.fit(X).transform(X) |
| 238 | + assert_array_almost_equal(X_scaled.min(axis=0), 0.0) |
| 239 | + assert_array_almost_equal(X_scaled.max(axis=0), 1.0) |
| 240 | + |
| 241 | + # Constant feature. |
| 242 | + X = np.zeros(5) |
| 243 | + scaler = MinMaxScaler() |
| 244 | + X_scaled = scaler.fit(X).transform(X) |
| 245 | + assert_greater_equal(X_scaled.min(), 0.) |
| 246 | + assert_less_equal(X_scaled.max(), 1.) |
| 247 | + |
| 248 | + |
217 | 249 | def test_scaler_without_centering(): |
218 | 250 | rng = np.random.RandomState(42) |
219 | 251 | X = rng.randn(4, 5) |
|
0 commit comments