summaryrefslogtreecommitdiff
path: root/src/python/test/test_knn.py
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2020-04-11 18:18:14 +0200
committerMarc Glisse <marc.glisse@inria.fr>2020-04-11 18:18:14 +0200
commitf9a933862050ca95b3a96d7a8572d62f7f2205a9 (patch)
tree65b1a3df0d67ea0323942cbf4bc15e6371665793 /src/python/test/test_knn.py
parent0a404547afec2e43dd5edf9410ff079d156d691a (diff)
Use longer names
Diffstat (limited to 'src/python/test/test_knn.py')
-rwxr-xr-xsrc/python/test/test_knn.py76
1 files changed, 55 insertions, 21 deletions
diff --git a/src/python/test/test_knn.py b/src/python/test/test_knn.py
index e455fb48..6aac2006 100755
--- a/src/python/test/test_knn.py
+++ b/src/python/test/test_knn.py
@@ -8,7 +8,7 @@
- YYYY/MM Author: Description of the modification
"""
-from gudhi.point_cloud.knn import KNN
+from gudhi.point_cloud.knn import KNearestNeighbors
import numpy as np
import pytest
@@ -16,39 +16,39 @@ import pytest
def test_knn_explicit():
base = np.array([[1.0, 1], [1, 2], [4, 2], [4, 3]])
query = np.array([[1.0, 1], [2, 2], [4, 4]])
- knn = KNN(2, metric="manhattan", return_distance=True, return_index=True)
+ knn = KNearestNeighbors(2, metric="manhattan", return_distance=True, return_index=True)
knn.fit(base)
r = knn.transform(query)
assert r[0] == pytest.approx(np.array([[0, 1], [1, 0], [3, 2]]))
assert r[1] == pytest.approx(np.array([[0.0, 1], [1, 2], [1, 2]]))
- knn = KNN(2, metric="chebyshev", return_distance=True, return_index=False)
+ knn = KNearestNeighbors(2, metric="chebyshev", return_distance=True, return_index=False)
knn.fit(base)
r = knn.transform(query)
assert r == pytest.approx(np.array([[0.0, 1], [1, 1], [1, 2]]))
r = (
- KNN(2, metric="chebyshev", return_distance=True, return_index=False, implementation="keops")
+ KNearestNeighbors(2, metric="chebyshev", return_distance=True, return_index=False, implementation="keops")
.fit(base)
.transform(query)
)
assert r == pytest.approx(np.array([[0.0, 1], [1, 1], [1, 2]]))
- knn = KNN(2, metric="minkowski", p=3, return_distance=False, return_index=True)
+ knn = KNearestNeighbors(2, metric="minkowski", p=3, return_distance=False, return_index=True)
knn.fit(base)
r = knn.transform(query)
assert np.array_equal(r, [[0, 1], [1, 0], [3, 2]])
r = (
- KNN(2, metric="minkowski", p=3, return_distance=False, return_index=True, implementation="keops")
+ KNearestNeighbors(2, metric="minkowski", p=3, return_distance=False, return_index=True, implementation="keops")
.fit(base)
.transform(query)
)
assert np.array_equal(r, [[0, 1], [1, 0], [3, 2]])
dist = np.array([[0.0, 3, 8], [1, 0, 5], [1, 2, 0]])
- knn = KNN(2, metric="precomputed", return_index=True, return_distance=False)
+ knn = KNearestNeighbors(2, metric="precomputed", return_index=True, return_distance=False)
r = knn.fit_transform(dist)
assert np.array_equal(r, [[0, 1], [1, 0], [2, 0]])
- knn = KNN(2, metric="precomputed", return_index=True, return_distance=True)
+ knn = KNearestNeighbors(2, metric="precomputed", return_index=True, return_distance=True)
r = knn.fit_transform(dist)
assert np.array_equal(r[0], [[0, 1], [1, 0], [2, 0]])
assert np.array_equal(r[1], [[0, 3], [0, 1], [0, 1]])
@@ -57,16 +57,40 @@ def test_knn_explicit():
def test_knn_compare():
base = np.array([[1.0, 1], [1, 2], [4, 2], [4, 3]])
query = np.array([[1.0, 1], [2, 2], [4, 4]])
- r0 = KNN(2, implementation="ckdtree", return_index=True, return_distance=False).fit(base).transform(query)
- r1 = KNN(2, implementation="sklearn", return_index=True, return_distance=False).fit(base).transform(query)
- r2 = KNN(2, implementation="hnsw", return_index=True, return_distance=False).fit(base).transform(query)
- r3 = KNN(2, implementation="keops", return_index=True, return_distance=False).fit(base).transform(query)
+ r0 = (
+ KNearestNeighbors(2, implementation="ckdtree", return_index=True, return_distance=False)
+ .fit(base)
+ .transform(query)
+ )
+ r1 = (
+ KNearestNeighbors(2, implementation="sklearn", return_index=True, return_distance=False)
+ .fit(base)
+ .transform(query)
+ )
+ r2 = (
+ KNearestNeighbors(2, implementation="hnsw", return_index=True, return_distance=False).fit(base).transform(query)
+ )
+ r3 = (
+ KNearestNeighbors(2, implementation="keops", return_index=True, return_distance=False)
+ .fit(base)
+ .transform(query)
+ )
assert np.array_equal(r0, r1) and np.array_equal(r0, r2) and np.array_equal(r0, r3)
- r0 = KNN(2, implementation="ckdtree", return_index=True, return_distance=True).fit(base).transform(query)
- r1 = KNN(2, implementation="sklearn", return_index=True, return_distance=True).fit(base).transform(query)
- r2 = KNN(2, implementation="hnsw", return_index=True, return_distance=True).fit(base).transform(query)
- r3 = KNN(2, implementation="keops", return_index=True, return_distance=True).fit(base).transform(query)
+ r0 = (
+ KNearestNeighbors(2, implementation="ckdtree", return_index=True, return_distance=True)
+ .fit(base)
+ .transform(query)
+ )
+ r1 = (
+ KNearestNeighbors(2, implementation="sklearn", return_index=True, return_distance=True)
+ .fit(base)
+ .transform(query)
+ )
+ r2 = KNearestNeighbors(2, implementation="hnsw", return_index=True, return_distance=True).fit(base).transform(query)
+ r3 = (
+ KNearestNeighbors(2, implementation="keops", return_index=True, return_distance=True).fit(base).transform(query)
+ )
assert np.array_equal(r0[0], r1[0]) and np.array_equal(r0[0], r2[0]) and np.array_equal(r0[0], r3[0])
d0 = pytest.approx(r0[1])
assert r1[1] == d0 and r2[1] == d0 and r3[1] == d0
@@ -75,8 +99,18 @@ def test_knn_compare():
def test_knn_nop():
# This doesn't look super useful...
p = np.array([[0.0]])
- assert None is KNN(k=1, return_index=False, return_distance=False, implementation="sklearn").fit_transform(p)
- assert None is KNN(k=1, return_index=False, return_distance=False, implementation="ckdtree").fit_transform(p)
- assert None is KNN(k=1, return_index=False, return_distance=False, implementation="hnsw", ef=5).fit_transform(p)
- assert None is KNN(k=1, return_index=False, return_distance=False, implementation="keops").fit_transform(p)
- assert None is KNN(k=1, return_index=False, return_distance=False, metric="precomputed").fit_transform(p)
+ assert None is KNearestNeighbors(
+ k=1, return_index=False, return_distance=False, implementation="sklearn"
+ ).fit_transform(p)
+ assert None is KNearestNeighbors(
+ k=1, return_index=False, return_distance=False, implementation="ckdtree"
+ ).fit_transform(p)
+ assert None is KNearestNeighbors(
+ k=1, return_index=False, return_distance=False, implementation="hnsw", ef=5
+ ).fit_transform(p)
+ assert None is KNearestNeighbors(
+ k=1, return_index=False, return_distance=False, implementation="keops"
+ ).fit_transform(p)
+ assert None is KNearestNeighbors(
+ k=1, return_index=False, return_distance=False, metric="precomputed"
+ ).fit_transform(p)