Skip to content

Commit

Permalink
feat(frontend): Implemented make_moons dataset generating function al…
Browse files Browse the repository at this point in the history
…ong with test (ivy-llc#22800)

for sklearn frontend
  • Loading branch information
Anubhav-Goyal01 authored and arshPratap committed Sep 11, 2023
1 parent 63bebd1 commit 853a26d
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
28 changes: 28 additions & 0 deletions ivy/functional/frontends/sklearn/datasets/_samples_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,31 @@ def make_circles(
axis=0,
)
return X, y


def make_moons(n_samples=100, *, shuffle=True, noise=None, random_state=None):
if isinstance(n_samples, numbers.Integral):
n_samples_out = n_samples // 2
n_samples_in = n_samples - n_samples_out
elif isinstance(n_samples, tuple):
n_samples_out, n_samples_in = n_samples


outer_circ_x = ivy.cos(ivy.linspace(0, ivy.pi, n_samples_out))
outer_circ_y = ivy.sin(ivy.linspace(0, ivy.pi, n_samples_out))
inner_circ_x = 1 - ivy.cos(ivy.linspace(0, ivy.pi, n_samples_in))
inner_circ_y = 1 - ivy.sin(ivy.linspace(0, ivy.pi, n_samples_in)) - 0.5


X = ivy.concat([
ivy.stack([outer_circ_x, outer_circ_y], axis=1),
ivy.stack([inner_circ_x, inner_circ_y], axis=1),
], axis=0,
)
y = ivy.concat([
ivy.zeros(n_samples_out, dtype=ivy.int32),
ivy.ones(n_samples_in, dtype=ivy.int32),
], axis=0,
)

return X, y
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,27 @@ def test_sklearn_make_circles(
on_device=on_device,
test_values=False,
)


@handle_frontend_test(
fn_tree="sklearn.datasets.make_moons",
n_samples=helpers.ints(min_value=1, max_value=5),
)
def test_sklearn_make_moons(
n_samples,
on_device,
fn_tree,
frontend,
test_flags,
backend_fw,
):
helpers.test_frontend_function(
n_samples=n_samples,
input_dtypes=["int32"],
backend_to_test=backend_fw,
test_flags=test_flags,
fn_tree=fn_tree,
frontend=frontend,
on_device=on_device,
test_values=False,
)

0 comments on commit 853a26d

Please sign in to comment.