Minor changes to test. const-correctness and comment normalization for Doxygen.

This commit is contained in:
Ryan Curtin
2014-06-24 16:39:28 +00:00
parent 94f830892d
commit 4ecf78854a
+67 -68
View File
@@ -1,10 +1,9 @@
/*
* @file decision_stump_test.cpp
* @author Udit Saxena
*
* Test for Decision Stump
/**
* @file decision_stump_test.cpp
* @author Udit Saxena
*
* Tests for DecisionStump class.
*/
#include <mlpack/core.hpp>
#include <mlpack/methods/decision_stump/decision_stump.hpp>
@@ -15,62 +14,62 @@ using namespace mlpack;
using namespace mlpack::decision_stump;
using namespace arma;
BOOST_AUTO_TEST_SUITE(DSTEST);
BOOST_AUTO_TEST_SUITE(DecisionStumpTest);
/*
This tests handles the case wherein only one class exists in the input labels.
It checks whether the only class supplied was the only class predicted.
/**
* This tests handles the case wherein only one class exists in the input
* labels. It checks whether the only class supplied was the only class
* predicted.
*/
BOOST_AUTO_TEST_CASE(OneClass)
{
size_t numClasses = 2;
size_t inpBucketSize = 6;
const size_t numClasses = 2;
const size_t inpBucketSize = 6;
mat trainingData;
trainingData << 2.4 << 3.8 << 3.8 << endr
<< 1 << 1 << 2 << endr
<< 1 << 1 << 2 << endr
<< 1.3 << 1.9 << 1.3 << endr;
// No need to normalize labels here.
Mat<size_t> labelsIn;
labelsIn << 1 << 1 << 1;
// no need to normalize labels here.
mat testingData;
testingData << 2.4 << 2.5 << 2.6;
DecisionStump<> ds(trainingData, labelsIn.row(0), numClasses, inpBucketSize);
Row<size_t> predictedLabels(testingData.n_cols);
ds.Classify(testingData, predictedLabels);
for(size_t i = 0; i < predictedLabels.size(); i++ )
BOOST_CHECK_EQUAL(predictedLabels(i),1);
for (size_t i = 0; i < predictedLabels.size(); i++ )
BOOST_CHECK_EQUAL(predictedLabels(i), 1);
}
}
/*
This tests for the classification:
if testinput < 0 - class 0
if testinput > 0 - class 1
An almost perfect split on zero.
*/
/**
* This tests for the classification:
* if testinput < 0 - class 0
* if testinput > 0 - class 1
* An almost perfect split on zero.
*/
BOOST_AUTO_TEST_CASE(PerfectSplitOnZero)
{
size_t numClasses = 2;
const size_t numClasses = 2;
const char* output = "outputPerfectSplitOnZero.csv";
size_t inpBucketSize = 2;
const size_t inpBucketSize = 2;
mat trainingData;
trainingData << -1 << 1 << -2 << 2 << -3 << 3;
// No need to normalize labels here.
Mat<size_t> labelsIn;
labelsIn << 0 << 1 << 0 << 1 << 0 << 1;
// no need to normalize labels here.
mat testingData;
testingData << -4 << 7 << -7 << -5 << 6;
DecisionStump<> ds(trainingData, labelsIn.row(0), numClasses, inpBucketSize);
Row<size_t> predictedLabels(testingData.n_cols);
@@ -79,27 +78,26 @@ BOOST_AUTO_TEST_CASE(PerfectSplitOnZero)
data::Save(output, predictedLabels, true, true);
}
/*
This tests the binning function for the case when a dataset with
cardinality of input < inpBucketSize is provided.
*/
/**
* This tests the binning function for the case when a dataset with cardinality
* of input < inpBucketSize is provided.
*/
BOOST_AUTO_TEST_CASE(BinningTesting)
{
size_t numClasses = 2;
const size_t numClasses = 2;
const char* output = "outputBinningTesting.csv";
size_t inpBucketSize = 10;
const size_t inpBucketSize = 10;
mat trainingData;
trainingData << -1 << 1 << -2 << 2 << -3 << 3 << -4;
// No need to normalize labels here.
Mat<size_t> labelsIn;
labelsIn << 0 << 1 << 0 << 1 << 0 << 1 << 0;
// no need to normalize labels here.
mat testingData;
testingData << 5;
DecisionStump<> ds(trainingData, labelsIn.row(0), numClasses, inpBucketSize);
Row<size_t> predictedLabels(testingData.n_cols);
@@ -108,29 +106,29 @@ BOOST_AUTO_TEST_CASE(BinningTesting)
data::Save(output, predictedLabels, true, true);
}
/*
This is a test for the case when non-overlapping, multiple
classes are provided. It tests for a perfect split due to the
non-overlapping nature of the input classes.
*/
/**
* This is a test for the case when non-overlapping, multiple classes are
* provided. It tests for a perfect split due to the non-overlapping nature of
* the input classes.
*/
BOOST_AUTO_TEST_CASE(PerfectMultiClassSplit)
{
size_t numClasses = 4;
const size_t numClasses = 4;
const char* output = "outputPerfectMultiClassSplit.csv";
size_t inpBucketSize = 3;
const size_t inpBucketSize = 3;
mat trainingData;
trainingData << -8 << -7 << -6 << -5 << -4 << -3 << -2 << -1
<< 0 << 1 << 2 << 3 << 4 << 5 << 6 << 7;
<< 0 << 1 << 2 << 3 << 4 << 5 << 6 << 7;
// No need to normalize labels here.
Mat<size_t> labelsIn;
labelsIn << 0 << 0 << 0 << 0 << 1 << 1 << 1 << 1
labelsIn << 0 << 0 << 0 << 0 << 1 << 1 << 1 << 1
<< 2 << 2 << 2 << 2 << 3 << 3 << 3 << 3;
// no need to normalize labels here.
mat testingData;
testingData << -6.1 << -2.1 << 1.1 << 5.1;
DecisionStump<> ds(trainingData, labelsIn.row(0), numClasses, inpBucketSize);
Row<size_t> predictedLabels(testingData.n_cols);
@@ -139,30 +137,31 @@ BOOST_AUTO_TEST_CASE(PerfectMultiClassSplit)
data::Save(output, predictedLabels, true, true);
}
/*
This test is for the case when reasonably overlapping, multiple classes
are provided in the input label set. It tests whether classification
takes place with a reasonable amount of error due to the overlapping
nature of input classes.
*/
/**
* This test is for the case when reasonably overlapping, multiple classes are
* provided in the input label set. It tests whether classification takes place
* with a reasonable amount of error due to the overlapping nature of input
* classes.
*/
BOOST_AUTO_TEST_CASE(MultiClassSplit)
{
size_t numClasses = 3;
const size_t numClasses = 3;
const char* output = "outputMultiClassSplit.csv";
size_t inpBucketSize = 3;
const size_t inpBucketSize = 3;
mat trainingData;
trainingData << -7 << -6 << -5 << -4 << -3 << -2 << -1 << 0 << 1
<< 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10;
trainingData << -7 << -6 << -5 << -4 << -3 << -2 << -1 << 0 << 1
<< 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10;
// No need to normalize labels here.
Mat<size_t> labelsIn;
labelsIn << 0 << 0 << 0 << 0 << 1 << 1 << 0 << 0
labelsIn << 0 << 0 << 0 << 0 << 1 << 1 << 0 << 0
<< 1 << 1 << 1 << 2 << 1 << 2 << 2 << 2 << 2 << 2;
// no need to normalize labels here.
mat testingData;
testingData << -6.1 << -5.9 << -2.1 << -0.7 << 2.5 << 4.7 << 7.2 << 9.1;
DecisionStump<> ds(trainingData, labelsIn.row(0), numClasses, inpBucketSize);
Row<size_t> predictedLabels(testingData.n_cols);
@@ -171,4 +170,4 @@ BOOST_AUTO_TEST_CASE(MultiClassSplit)
data::Save(output, predictedLabels, true, true);
}
BOOST_AUTO_TEST_SUITE_END();
BOOST_AUTO_TEST_SUITE_END();