[mlpack-git] master: Add a test to ensure that doing monochromatic dual-tree search resets bounds. (c818933)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Tue Oct 20 11:09:02 EDT 2015


Repository : https://github.com/mlpack/mlpack

On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/00eccfdb0d315de3d94bfa1da84cc1dc65c8af39...c81893381e80d4ecae4283cec5fe5264bdf4f677

>---------------------------------------------------------------

commit c81893381e80d4ecae4283cec5fe5264bdf4f677
Author: ryan <ryan at ratml.org>
Date:   Tue Oct 20 11:08:36 2015 -0400

    Add a test to ensure that doing monochromatic dual-tree search resets bounds.


>---------------------------------------------------------------

c81893381e80d4ecae4283cec5fe5264bdf4f677
 src/mlpack/tests/allknn_test.cpp | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/mlpack/tests/allknn_test.cpp b/src/mlpack/tests/allknn_test.cpp
index 82b8564..70fa802 100644
--- a/src/mlpack/tests/allknn_test.cpp
+++ b/src/mlpack/tests/allknn_test.cpp
@@ -1093,4 +1093,26 @@ BOOST_AUTO_TEST_CASE(KNNModelMonochromaticTest)
   }
 }
 
+/**
+ * If we search twice with the same reference tree, the bounds need to be reset
+ * before the second search.  This test ensures that that happens, by making
+ * sure the number of scores and base cases are equivalent for each search.
+ */
+BOOST_AUTO_TEST_CASE(DoubleReferenceSearchTest)
+{
+  arma::mat dataset = arma::randu<arma::mat>(5, 500);
+  AllkNN knn(std::move(dataset));
+
+  arma::mat distances, secondDistances;
+  arma::Mat<size_t> neighbors, secondNeighbors;
+  knn.Search(3, neighbors, distances);
+  size_t baseCases = knn.BaseCases();
+  size_t scores = knn.Scores();
+
+  knn.Search(3, secondNeighbors, secondDistances);
+
+  BOOST_REQUIRE_EQUAL(knn.BaseCases(), baseCases);
+  BOOST_REQUIRE_EQUAL(knn.Scores(), scores);
+}
+
 BOOST_AUTO_TEST_SUITE_END();



More information about the mlpack-git mailing list