1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
#ifndef __STATISTIC_UNIT_TESTING_H__
#define __STATISTIC_UNIT_TESTING_H__
/*LICENSE_START*/
/*
* Copyright 1995-2002 Washington University School of Medicine
*
* http://brainmap.wustl.edu
*
* This file is part of CARET.
*
* CARET is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* CARET is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with CARET; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/*LICENSE_END*/
#include "StatisticAlgorithm.h"
class StatisticMatrix;
/// class that performs unit testing of the statistical routines
class StatisticUnitTesting : public StatisticAlgorithm {
public:
// constructor
StatisticUnitTesting(const bool printTestValuesFlagIn);
// destructor
~StatisticUnitTesting();
// run the tests
void execute() throw (StatisticException);
/// get problems occurred during testing
bool getProblemsOccurredDuringTesting() const { return problemFlag; }
protected:
// verify that two floating point numbers are nearly identical (false if ok)
bool verify(const std::string& testName,
const float computedValue,
const float correctValue,
const float acceptableDifference = 0.001);
// verify that two matrices numbers are nearly identical (false if ok)
bool verify(const std::string& testName,
const StatisticMatrix& computedMatrix,
const StatisticMatrix& correctMatrix,
const float acceptableDifference = 0.001);
// verify that a group of coefficients are nearly identical (false if ok)
bool verifyCoefficients(const std::string& testName,
const std::vector<float>& computedCoefficients,
const std::vector<float>& correctCoefficients,
const float acceptableDifference = 0.001);
// test mean, variance, deviation
bool testStatisticMeanAndDeviation();
/// test descriptive statistics
bool testStatisticDescriptive();
// test one-sample T-Test
bool testStatisticTtestOneSample();
// test Paired T-Test.
bool testStatisticTtestPaired();
// test two-sample T-Test with pooled variance
bool testStatisticTtestTwoSamplePooledVariance();
// test two-sample T-Test with unpooled variance
bool testStatisticTtestTwoSampleUnpooledVariance();
// test one-way ANOVA
bool testStatisticAnovaOneWay();
// test two-way fixed-effect ANOVA
bool testStatisticAnovaTwoWayFixedEffectCase1();
// test two-way fixed-effect ANOVA
bool testStatisticAnovaTwoWayFixedEffectCase2();
// test two-way random-effect ANOVA
bool testStatisticAnovaTwoWayRandomEffect();
// test two-way mixed-effect ANOVA
bool testStatisticAnovaTwoWayMixedEffect();
// test convert to z-score
bool testConvertToZScore();
// test correlation coefficient
bool testCorrelationCoefficient();
// test false discovery rate
bool testFalseDiscoveryRate();
// test histogram
bool testHistogram();
// test kruskal-wallis non-parameteric anova
bool testKruskalWallis();
// test levene's test
bool testLevenesTest();
// test linear regression
bool testLinearRegression();
// test matrix operations
bool testMatrixOperations();
// test multiple linear regression
bool testMultipleLinearRegression();
// test normalization of a distribution of sorted values
bool testNormalizeDistributionSorted();
// test normalization of a distribution of unsorted values
bool testNormalizeDistributionUnsorted();
// test rank transformation
bool testRankTransformation();
// test permutation random shuffle
bool testPermutationRandomShuffle();
// test permutation sign flipping
bool testPermutationSignFlipping();
// test value/index sorting
bool testValueIndexSort();
// problems encountered in testing
bool problemFlag;
// print test values even if correct
bool printTestValuesFlag;
};
#endif // __STATISTIC_UNIT_TESTING_H__
|