From f06c0f138a66ba2d06e2ec7caa8bbd307d9c78e2 Mon Sep 17 00:00:00 2001 From: jeffinsam Date: Sun, 3 Nov 2019 21:22:10 +0530 Subject: [PATCH] move callback test from individual files to callback test file --- src/mlpack/tests/callback_test.cpp | 44 ++++++++++++++++++++++++++++++ src/mlpack/tests/lmnn_test.cpp | 5 +--- src/mlpack/tests/nca_test.cpp | 5 +--- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/mlpack/tests/callback_test.cpp b/src/mlpack/tests/callback_test.cpp index c1eba64e85..59ba5e3ce1 100644 --- a/src/mlpack/tests/callback_test.cpp +++ b/src/mlpack/tests/callback_test.cpp @@ -6,12 +6,18 @@ #include #include #include +#include +#include +#include #include using namespace mlpack; using namespace mlpack::ann; using namespace mlpack::regression; +using namespace mlpack::lmnn; +using namespace mlpack::metric; +using namespace mlpack::nca; BOOST_AUTO_TEST_SUITE(CallbackTest); @@ -135,4 +141,42 @@ BOOST_AUTO_TEST_CASE(LRWithOptimizerCallback) BOOST_REQUIRE_GT(stream.str().length(), 0); } +/** + * Test LMNN implementation with ProgressBar callback. + */ +BOOST_AUTO_TEST_CASE(LMNNWithOptimizerCallback) +{ + // Useful but simple dataset with six points and two classes. + arma::mat dataset = "-0.1 -0.1 -0.1 0.1 0.1 0.1;" + " 1.0 0.0 -1.0 1.0 0.0 -1.0 "; + arma::Row labels = " 0 0 0 1 1 1 "; + + LMNN<> lmnn(dataset, labels, 1); + + arma::mat outputMatrix; + std::stringstream stream; + + lmnn.LearnDistance(outputMatrix, ens::ProgressBar(70, stream)); + BOOST_REQUIRE_GT(stream.str().length(), 0); +} + +/** + * Test NCA implementation with ProgressBar callback. + */ +BOOST_AUTO_TEST_CASE(NCAWithOptimizerCallback) +{ + // Useful but simple dataset with six points and two classes. + arma::mat data = "-0.1 -0.1 -0.1 0.1 0.1 0.1;" + " 1.0 0.0 -1.0 1.0 0.0 -1.0 "; + arma::Row labels = " 0 0 0 1 1 1 "; + + NCA nca(data, labels); + + arma::mat outputMatrix; + std::stringstream stream; + + nca.LearnDistance(outputMatrix, ens::ProgressBar(70, stream)); + BOOST_REQUIRE_GT(stream.str().length(), 0); +} + BOOST_AUTO_TEST_SUITE_END(); diff --git a/src/mlpack/tests/lmnn_test.cpp b/src/mlpack/tests/lmnn_test.cpp index fb0e7f2fc5..43e772691b 100644 --- a/src/mlpack/tests/lmnn_test.cpp +++ b/src/mlpack/tests/lmnn_test.cpp @@ -357,10 +357,7 @@ BOOST_AUTO_TEST_CASE(LMNNSGDSimpleDatasetTest) LMNN<> lmnn(dataset, labels, 1); arma::mat outputMatrix; - std::stringstream stream; - - lmnn.LearnDistance(outputMatrix, ens::ProgressBar(70, stream)); - BOOST_REQUIRE_GT(stream.str().length(), 0); + lmnn.LearnDistance(outputMatrix); // Ensure that the objective function is better now. LMNNFunction<> lmnnfn(dataset, labels, 1, 0.6, 1); diff --git a/src/mlpack/tests/nca_test.cpp b/src/mlpack/tests/nca_test.cpp index 3aa410501b..90cb53eeeb 100644 --- a/src/mlpack/tests/nca_test.cpp +++ b/src/mlpack/tests/nca_test.cpp @@ -272,10 +272,7 @@ BOOST_AUTO_TEST_CASE(NCASGDSimpleDataset) nca.Optimizer().Shuffle() = true; arma::mat outputMatrix; - - std::stringstream stream; - nca.LearnDistance(outputMatrix, ens::ProgressBar(70, stream)); - BOOST_REQUIRE_GT(stream.str().length(), 0); + nca.LearnDistance(outputMatrix); // Ensure that the objective function is better now. SoftmaxErrorFunction sef(data, labels);