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

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Sat Dec 3 03:05:33 EST 2011


Author: rcurtin
Date: 2011-12-03 03:05:33 -0500 (Sat, 03 Dec 2011)
New Revision: 10523

Modified:
   mlpack/trunk/src/mlpack/tests/distribution_test.cpp
Log:
Adapt test to new distribution API.


Modified: mlpack/trunk/src/mlpack/tests/distribution_test.cpp
===================================================================
--- mlpack/trunk/src/mlpack/tests/distribution_test.cpp	2011-12-03 08:05:21 UTC (rev 10522)
+++ mlpack/trunk/src/mlpack/tests/distribution_test.cpp	2011-12-03 08:05:33 UTC (rev 10523)
@@ -23,11 +23,11 @@
   DiscreteDistribution d(5);
 
   BOOST_REQUIRE_EQUAL(d.Probabilities().n_elem, 5);
-  BOOST_REQUIRE_CLOSE(d.Probability(0), 0.2, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(1), 0.2, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(2), 0.2, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(3), 0.2, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(4), 0.2, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("0"), 0.2, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("1"), 0.2, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("2"), 0.2, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("3"), 0.2, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("4"), 0.2, 1e-5);
 }
 
 /**
@@ -39,11 +39,11 @@
 
   d.Probabilities("0.2 0.4 0.1 0.1 0.2");
 
-  BOOST_REQUIRE_CLOSE(d.Probability(0), 0.2, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(1), 0.4, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(2), 0.1, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(3), 0.1, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(4), 0.2, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("0"), 0.2, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("1"), 0.4, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("2"), 0.1, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("3"), 0.1, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("4"), 0.2, 1e-5);
 }
 
 /**
@@ -58,7 +58,7 @@
   arma::vec actualProb(3);
 
   for (size_t i = 0; i < 10000; i++)
-    actualProb(d.Random())++;
+    actualProb((size_t) d.Random()[0] + 0.5)++;
 
   // Normalize.
   actualProb /= accu(actualProb);
@@ -76,22 +76,14 @@
 {
   DiscreteDistribution d(4);
 
-  std::vector<size_t> obs;
-  obs.push_back(0);
-  obs.push_back(0);
-  obs.push_back(1);
-  obs.push_back(1);
-  obs.push_back(2);
-  obs.push_back(2);
-  obs.push_back(2);
-  obs.push_back(3);
+  arma::mat obs("0 0 1 1 2 2 2 3");
 
   d.Estimate(obs);
 
-  BOOST_REQUIRE_CLOSE(d.Probability(0), 0.25, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(1), 0.25, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(2), 0.375, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(3), 0.125, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("0"), 0.25, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("1"), 0.25, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("2"), 0.375, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("3"), 0.125, 1e-5);
 }
 
 /**
@@ -101,23 +93,15 @@
 {
   DiscreteDistribution d(3);
 
-  std::vector<size_t> obs;
-  obs.push_back(0);
-  obs.push_back(0);
-  obs.push_back(1);
-  obs.push_back(2);
+  arma::mat obs("0 0 1 2");
 
-  std::vector<double> prob;
-  prob.push_back(0.25);
-  prob.push_back(0.25);
-  prob.push_back(0.5);
-  prob.push_back(1.0);
+  arma::vec prob("0.25 0.25 0.5 1.0");
 
   d.Estimate(obs, prob);
 
-  BOOST_REQUIRE_CLOSE(d.Probability(0), 0.25, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(1), 0.25, 1e-5);
-  BOOST_REQUIRE_CLOSE(d.Probability(2), 0.5, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("0"), 0.25, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("1"), 0.25, 1e-5);
+  BOOST_REQUIRE_CLOSE(d.Probability("2"), 0.5, 1e-5);
 }
 
 /**
@@ -230,23 +214,19 @@
                 "4.0 0.1 0.0 9.1");
 
   // Now generate the observations.
-  std::vector<arma::vec> observations;
+  arma::mat observations(4, 10000);
 
   arma::mat transChol = trans(chol(cov));
   for (size_t i = 0; i < 10000; i++)
-    observations.push_back(transChol * arma::randn<arma::vec>(4) + mean);
+    observations.col(i) = transChol * arma::randn<arma::vec>(4) + mean;
 
   // Now estimate.
   GaussianDistribution d;
 
   // Find actual mean and covariance of data.
-  arma::mat data(4, 10000);
-  for (size_t i = 0; i < 10000; i++)
-    data.col(i) = observations[i];
+  arma::vec actualMean = arma::mean(observations, 1);
+  arma::mat actualCov = ccov(observations);
 
-  arma::vec actualMean = arma::mean(data, 1);
-  arma::mat actualCov = ccov(data);
-
   d.Estimate(observations);
 
   // Check that everything is estimated right.




More information about the mlpack-svn mailing list