[mlpack-git] master: I've concluded that this test isn't useful. Basically, the test is just checking that the implementation is exactly the same as in the test, and that's not actually a great test, because the implementation may change without breaking anything. (3eabb52)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Mon Mar 2 20:41:39 EST 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/9fd81f454fb7671fd2b57fbd2843348d3c4631eb...3eabb526a3697d58697cf1a0a387c07e60efde9c
>---------------------------------------------------------------
commit 3eabb526a3697d58697cf1a0a387c07e60efde9c
Author: Ryan Curtin <ryan at ratml.org>
Date: Mon Mar 2 20:24:04 2015 -0500
I've concluded that this test isn't useful.
Basically, the test is just checking that the implementation is exactly the same
as in the test, and that's not actually a great test, because the implementation
may change without breaking anything.
>---------------------------------------------------------------
3eabb526a3697d58697cf1a0a387c07e60efde9c
src/mlpack/tests/allkrann_search_test.cpp | 72 -------------------------------
1 file changed, 72 deletions(-)
diff --git a/src/mlpack/tests/allkrann_search_test.cpp b/src/mlpack/tests/allkrann_search_test.cpp
index ab86d3d..9a76bce 100644
--- a/src/mlpack/tests/allkrann_search_test.cpp
+++ b/src/mlpack/tests/allkrann_search_test.cpp
@@ -23,78 +23,6 @@ using namespace mlpack::bound;
BOOST_AUTO_TEST_SUITE(AllkRANNTest);
-// Test AllkRANN in naive mode for exact results when the random seeds are set
-// the same. This may not be the best test; if the implementation of RANN-RS
-// gets random numbers in a different way, then this test might fail.
-BOOST_AUTO_TEST_CASE(NaiveSearchExact)
-{
- // First test on a small set.
- arma::mat rdata(2, 10);
- rdata << 3 << 2 << 4 << 3 << 5 << 6 << 0 << 8 << 3 << 1 << arma::endr <<
- 0 << 3 << 4 << 7 << 8 << 4 << 1 << 0 << 4 << 3 << arma::endr;
-
- arma::mat qdata(2, 3);
- qdata << 3 << 2 << 0 << arma::endr
- << 5 << 3 << 4 << arma::endr;
-
- metric::SquaredEuclideanDistance dMetric;
- double rankApproximation = 30;
- double successProb = 0.95;
-
- // Search for 1 rank-approximate nearest-neighbors in the top 30% of the point
- // (rank error of 3).
- arma::Mat<size_t> neighbors;
- arma::mat distances;
-
- // Test naive rank-approximate search.
- // Predict what the actual RANN-RS result would be.
- math::RandomSeed(0);
-
- size_t numSamples = (size_t) ceil(log(1.0 / (1.0 - successProb)) /
- log(1.0 / (1.0 - (rankApproximation / 100.0))));
-
- arma::Mat<size_t> samples(qdata.n_cols, numSamples);
- for (size_t j = 0; j < qdata.n_cols; j++)
- for (size_t i = 0; i < numSamples; i++)
- samples(j, i) = (size_t) math::RandInt(10);
-
- arma::Col<size_t> rann(qdata.n_cols);
- arma::vec rannDistances(qdata.n_cols);
- rannDistances.fill(DBL_MAX);
-
- for (size_t j = 0; j < qdata.n_cols; j++)
- {
- for (size_t i = 0; i < numSamples; i++)
- {
- double dist = dMetric.Evaluate(qdata.unsafe_col(j),
- rdata.unsafe_col(samples(j, i)));
- if (dist < rannDistances[j])
- {
- rann[j] = samples(j, i);
- rannDistances[j] = dist;
- }
- }
- }
-
- // Use RANN-RS implementation.
- math::RandomSeed(0);
-
- RASearch<> naive(rdata, qdata, true);
- naive.Search(1, neighbors, distances, rankApproximation);
-
- // Things to check:
- //
- // 1. (implicitly) The minimum number of required samples for guaranteed
- // approximation.
- // 2. (implicitly) Check the samples obtained.
- // 3. Check the neighbor returned.
- for (size_t i = 0; i < qdata.n_cols; i++)
- {
- BOOST_REQUIRE_EQUAL(neighbors(0, i), rann[i]);
- BOOST_REQUIRE_CLOSE(distances(0, i), rannDistances[i], 1e-5);
- }
-}
-
// Test the correctness and guarantees of AllkRANN when in naive mode.
BOOST_AUTO_TEST_CASE(NaiveGuaranteeTest)
{
More information about the mlpack-git
mailing list