diff --git a/src/knn.jl b/src/knn.jl index 6fb4bb1..8694aae 100644 --- a/src/knn.jl +++ b/src/knn.jl @@ -33,6 +33,7 @@ function knn_point!(tree::NNTree{V}, point::AbstractVector{T}, sortres, dist, id sortres && heap_sort_inplace!(dist, idx) if tree.reordered for j in eachindex(idx) + idx[j] == -1 && continue @inbounds idx[j] = tree.indices[idx[j]] end end diff --git a/test/test_knn.jl b/test/test_knn.jl index 3648ae5..3fbfa49 100644 --- a/test/test_knn.jl +++ b/test/test_knn.jl @@ -79,6 +79,8 @@ end idxs, dists = knn(tree, data[:, 10], 2, true, i -> i == first_idx) @test idxs[1] == second_idx + + idxs, dists = knn(tree, data[:,10], 1, true, i -> true) end data = rand(2, 1000) test(data)