[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