|
2 | 2 | (:require [clojure.test :refer :all] |
3 | 3 | [clojure.set :refer :all] |
4 | 4 | [lambda-ml.nearest-neighbors :refer :all] |
5 | | - [lambda-ml.distance :as d] |
6 | | - [lambda-ml.data.priority-queue :as pq])) |
| 5 | + [lambda-ml.distance :as d])) |
7 | 6 |
|
8 | 7 | (deftest test-nearest-neighbor-search |
9 | 8 | (let [search (make-nearest-neighbor-search d/euclidean [[2 3] [5 4] [9 6] [4 7] [8 1] [7 2]])] |
10 | | - (is (= [7 2] (pq/item-value (second (search 2 [8 1]))))) |
11 | | - (is (= [5 4] (pq/item-value (second (search 2 [2 3]))))) |
12 | | - (is (= [8 1] (pq/item-value (second (search 2 [7 2]))))) |
13 | | - (is (= [5 4] (pq/item-value (second (search 2 [4 7]))))) |
| 9 | + (is (= [7 2] (item-value (second (search 2 [8 1]))))) |
| 10 | + (is (= [5 4] (item-value (second (search 2 [2 3]))))) |
| 11 | + (is (= [8 1] (item-value (second (search 2 [7 2]))))) |
| 12 | + (is (= [5 4] (item-value (second (search 2 [4 7]))))) |
14 | 13 | (is (= 3 (count (search 3 [2 3])))) |
15 | 14 | (is (= 6 (count (search 6 [2 3])))) |
16 | 15 | (is (= 6 (count (search 9 [2 3])))))) |
17 | 16 |
|
18 | 17 | (deftest test-nearest-neighbor-search2 |
19 | 18 | (let [search (make-nearest-neighbor-search d/euclidean [[1 11] [2 5] [4 8] [6 4] [5 0] [7 9] [8 2]])] |
20 | | - (is (= [4 8] (pq/item-value (first (search 5 [3 9]))))))) |
| 19 | + (is (= [4 8] (item-value (first (search 5 [3 9]))))))) |
21 | 20 |
|
22 | 21 | (deftest test-nearest-neighbor-search3 |
23 | 22 | (let [points {[0.0 0.0] 1 |
|
79 | 78 | [37.759859 -122.437134] :SanFrancisco} |
80 | 79 | search (make-nearest-neighbor-search d/euclidean (keys points))] |
81 | 80 | (is (= :SanJose |
82 | | - (-> (search 2 ((map-invert points) :SantaCruz)) second pq/item-value points))) |
| 81 | + (-> (search 2 ((map-invert points) :SantaCruz)) second item-value points))) |
83 | 82 | (is (= :SanFrancisco |
84 | | - (-> (search 2 ((map-invert points) :Berkeley)) second pq/item-value points))) |
| 83 | + (-> (search 2 ((map-invert points) :Berkeley)) second item-value points))) |
85 | 84 | (is (= :MountainView |
86 | | - (-> (search 2 ((map-invert points) :PaloAlto)) second pq/item-value points))))) |
| 85 | + (-> (search 2 ((map-invert points) :PaloAlto)) second item-value points))))) |
87 | 86 |
|
88 | 87 | (deftest test-nearest-neighbor-search-metadata |
89 | 88 | (let [points [[:a 2 3] |
|
93 | 92 | [:e 8 1] |
94 | 93 | [:f 7 2]] |
95 | 94 | search (make-nearest-neighbor-search d/euclidean rest points)] |
96 | | - (is (= :f (first (pq/item-value (second (search 2 [:e 8 1])))))) |
97 | | - (is (= :b (first (pq/item-value (second (search 2 [:a 2 3])))))) |
98 | | - (is (= :e (first (pq/item-value (second (search 2 [:f 7 2])))))) |
99 | | - (is (= :b (first (pq/item-value (second (search 2 [:d 4 7])))))))) |
| 95 | + (is (= :f (first (item-value (second (search 2 [:e 8 1])))))) |
| 96 | + (is (= :b (first (item-value (second (search 2 [:a 2 3])))))) |
| 97 | + (is (= :e (first (item-value (second (search 2 [:f 7 2])))))) |
| 98 | + (is (= :b (first (item-value (second (search 2 [:d 4 7])))))))) |
100 | 99 |
|
101 | 100 | (deftest test-nearest-neighbors-classifier |
102 | 101 | (let [data [[25 40000 :no] |
|
0 commit comments