[mlpack-svn] r14805 - mlpack/trunk/src/mlpack/tests

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Mon Apr 1 20:58:34 EDT 2013


Author: rcurtin
Date: 2013-04-01 20:58:34 -0400 (Mon, 01 Apr 2013)
New Revision: 14805

Modified:
   mlpack/trunk/src/mlpack/tests/gmm_test.cpp
Log:
Test Save() and Load() functionality for GMMs.


Modified: mlpack/trunk/src/mlpack/tests/gmm_test.cpp
===================================================================
--- mlpack/trunk/src/mlpack/tests/gmm_test.cpp	2013-04-02 00:58:15 UTC (rev 14804)
+++ mlpack/trunk/src/mlpack/tests/gmm_test.cpp	2013-04-02 00:58:34 UTC (rev 14805)
@@ -577,4 +577,46 @@
   BOOST_REQUIRE_EQUAL(classes[12], 2);
 }
 
+BOOST_AUTO_TEST_CASE(GMMLoadSaveTest)
+{
+  // Create a GMM, save it, and load it.
+  GMM<> gmm(10, 4);
+  gmm.Weights().randu();
+
+  for (size_t i = 0; i < gmm.Gaussians(); ++i)
+  {
+    gmm.Means()[i].randu();
+    gmm.Covariances()[i].randu();
+  }
+
+  gmm.Save("test-gmm-save.xml");
+
+  GMM<> gmm2;
+  gmm2.Load("test-gmm-save.xml");
+
+  // Remove clutter.
+  remove("test-gmm-save.xml");
+
+  BOOST_REQUIRE_EQUAL(gmm.Gaussians(), gmm2.Gaussians());
+  BOOST_REQUIRE_EQUAL(gmm.Dimensionality(), gmm2.Dimensionality());
+
+  for (size_t i = 0; i < gmm.Dimensionality(); ++i)
+    BOOST_REQUIRE_CLOSE(gmm.Weights()[i], gmm2.Weights()[i], 1e-3);
+
+  for (size_t i = 0; i < gmm.Gaussians(); ++i)
+  {
+    for (size_t j = 0; j < gmm.Dimensionality(); ++j)
+      BOOST_REQUIRE_CLOSE(gmm.Means()[i][j], gmm2.Means()[i][j], 1e-3);
+
+    for (size_t j = 0; j < gmm.Dimensionality(); ++j)
+    {
+      for (size_t k = 0; k < gmm.Dimensionality(); ++k)
+      {
+        BOOST_REQUIRE_CLOSE(gmm.Covariances()[i](j, k),
+            gmm2.Covariances()[i](j, k), 1e-3);
+      }
+    }
+  }
+}
+
 BOOST_AUTO_TEST_SUITE_END();




More information about the mlpack-svn mailing list