[mlpack-git] master: Adapt Keon's test into something harder. (b3fc468)

gitdub at mlpack.org gitdub at mlpack.org
Tue May 31 14:56:40 EDT 2016


Repository : https://github.com/mlpack/mlpack
On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/ee95e2030ddd526368e377b4e1c13484d471e307...a2440f163ac76edda36a9f7ba31cfecd3a55654e

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

commit b3fc4684a0c14c1482fb58f6aac9be749f0f11c9
Author: Ryan Curtin <ryan at ratml.org>
Date:   Tue May 31 14:56:40 2016 -0400

    Adapt Keon's test into something harder.


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

b3fc4684a0c14c1482fb58f6aac9be749f0f11c9
 src/mlpack/tests/load_save_test.cpp | 50 +++++++++++++++++++------------------
 1 file changed, 26 insertions(+), 24 deletions(-)

diff --git a/src/mlpack/tests/load_save_test.cpp b/src/mlpack/tests/load_save_test.cpp
index fc753f8..ecb089c 100644
--- a/src/mlpack/tests/load_save_test.cpp
+++ b/src/mlpack/tests/load_save_test.cpp
@@ -1094,43 +1094,45 @@ BOOST_AUTO_TEST_CASE(CategoricalNontransposedCSVLoadTest)
 }
 
 /**
- * The test CSV Keon suggested in #658.
+ * A harder test CSV based on the concerns in #658.
  */
-BOOST_AUTO_TEST_CASE(KeonsSimpleDatasetInfoTest)
+BOOST_AUTO_TEST_CASE(HarderKeonTest)
 {
   fstream f;
   f.open("test.csv", fstream::out);
-  f << "1, 1, 1" << endl;
-  f << ", 1, 1" << endl;
-  f << "1, 1, 1" << endl;
-  f << "1, 1, 1" << endl;
+  f << "a,, 13,\t, 0" << endl;
+  f << "b, 3, 14, hello,1" << endl;
+  f << "b, 4, 15, , 2" << endl;
+  f << ", 5, 16, ," << endl;
   f.close();
 
-  // Load without transpose.
+  // Load transposed.
   arma::mat dataset;
   data::DatasetInfo info;
-  data::Load("test.csv", dataset, info, true, false);
-
-  BOOST_REQUIRE_EQUAL(dataset.n_rows, 4);
-  BOOST_REQUIRE_EQUAL(dataset.n_cols, 3);
-  BOOST_REQUIRE_EQUAL(info.Dimensionality(), 4);
-  BOOST_REQUIRE_EQUAL(info.NumMappings(0), 0);
-  BOOST_REQUIRE_EQUAL(info.NumMappings(1), 2);
-  BOOST_REQUIRE_EQUAL(info.NumMappings(2), 0);
-  BOOST_REQUIRE_EQUAL(info.NumMappings(3), 0);
-
-  // Load with transpose.
-  data::DatasetInfo newInfo;
   data::Load("test.csv", dataset, info, true, true);
 
-  BOOST_REQUIRE_EQUAL(dataset.n_rows, 3);
+  BOOST_REQUIRE_EQUAL(dataset.n_rows, 5);
   BOOST_REQUIRE_EQUAL(dataset.n_cols, 4);
-  BOOST_REQUIRE_EQUAL(info.Dimensionality(), 3);
-  BOOST_REQUIRE_EQUAL(info.NumMappings(0), 2);
-  BOOST_REQUIRE_EQUAL(info.NumMappings(1), 0);
+
+  BOOST_REQUIRE_EQUAL(info.Dimensionality(), 5);
+  BOOST_REQUIRE_EQUAL(info.NumMappings(0), 3);
+  BOOST_REQUIRE_EQUAL(info.NumMappings(1), 4);
   BOOST_REQUIRE_EQUAL(info.NumMappings(2), 0);
+  BOOST_REQUIRE_EQUAL(info.NumMappings(3), 2); // \t and "" are equivalent.
+  BOOST_REQUIRE_EQUAL(info.NumMappings(4), 4);
 
-  remove("test.csv");
+  // Now load non-transposed.
+  data::DatasetInfo ntInfo;
+  data::Load("test.csv", dataset, ntInfo, true, false);
+
+  BOOST_REQUIRE_EQUAL(dataset.n_rows, 4);
+  BOOST_REQUIRE_EQUAL(dataset.n_cols, 5);
+
+  BOOST_REQUIRE_EQUAL(ntInfo.Dimensionality(), 4);
+  BOOST_REQUIRE_EQUAL(ntInfo.NumMappings(0), 4);
+  BOOST_REQUIRE_EQUAL(ntInfo.NumMappings(1), 5);
+  BOOST_REQUIRE_EQUAL(ntInfo.NumMappings(2), 5);
+  BOOST_REQUIRE_EQUAL(ntInfo.NumMappings(3), 3);
 }
 
 /**




More information about the mlpack-git mailing list