diff --git a/sklearn/datasets/_samples_generator.py b/sklearn/datasets/_samples_generator.py index 192f8e6759ddb..3c8a5b3062df9 100644 --- a/sklearn/datasets/_samples_generator.py +++ b/sklearn/datasets/_samples_generator.py @@ -772,6 +772,14 @@ def make_circles( return X, y +@validate_params( + { + "n_samples": [Interval(Integral, 1, None, closed="left"), tuple], + "shuffle": ["boolean"], + "noise": [Interval(Real, 0, None, closed="left"), None], + "random_state": ["random_state"], + } +) def make_moons(n_samples=100, *, shuffle=True, noise=None, random_state=None): """Make two interleaving half circles. diff --git a/sklearn/datasets/tests/test_samples_generator.py b/sklearn/datasets/tests/test_samples_generator.py index e722ed5c4f02a..cd23fc5016672 100644 --- a/sklearn/datasets/tests/test_samples_generator.py +++ b/sklearn/datasets/tests/test_samples_generator.py @@ -636,12 +636,6 @@ def test_make_moons_unbalanced(): assert X.shape == (12, 2), "X shape mismatch" assert y.shape == (12,), "y shape mismatch" - with pytest.raises( - ValueError, - match=r"`n_samples` can be either an int " r"or a two-element tuple.", - ): - make_moons(n_samples=[1, 2, 3]) - with pytest.raises( ValueError, match=r"`n_samples` can be either an int " r"or a two-element tuple.", diff --git a/sklearn/tests/test_public_functions.py b/sklearn/tests/test_public_functions.py index 4b1934c378fbf..43d896db12403 100644 --- a/sklearn/tests/test_public_functions.py +++ b/sklearn/tests/test_public_functions.py @@ -133,6 +133,7 @@ def _check_function_param_validation( "sklearn.datasets.make_classification", "sklearn.datasets.make_friedman1", "sklearn.datasets.make_low_rank_matrix", + "sklearn.datasets.make_moons", "sklearn.datasets.make_multilabel_classification", "sklearn.datasets.make_regression", "sklearn.datasets.make_sparse_coded_signal",