24 #include "ns3/basic-data-calculators.h"
28 const double TOLERANCE = 1e-14;
41 virtual void DoRun (
void);
44 OneIntegerTestCase::OneIntegerTestCase ()
45 :
TestCase (
"Basic Statistical Functions using One Integer")
50 OneIntegerTestCase::~OneIntegerTestCase ()
72 for (
long i = 0; i < count; i++)
74 value = multiple * (i + 1);
76 calculator.Update (value);
79 sqrSum += value * value;
84 max = multiple * count;
92 variance = (count * sqrSum - sum * sum) / (count * (count - 1));
94 stddev = std::sqrt (variance);
97 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getCount(), count, TOLERANCE,
"Count value wrong");
98 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getSum(), sum, TOLERANCE,
"Sum value wrong");
99 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMin(), min, TOLERANCE,
"Min value wrong");
100 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMax(), max, TOLERANCE,
"Max value wrong");
101 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMean(), mean, TOLERANCE,
"Mean value wrong");
102 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getStddev(), stddev, TOLERANCE,
"Stddev value wrong");
103 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getVariance(), variance, TOLERANCE,
"Variance value wrong");
104 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getSqrSum(), sqrSum, TOLERANCE,
"SqrSum value wrong");
119 virtual void DoRun (
void);
122 FiveIntegersTestCase::FiveIntegersTestCase ()
123 :
TestCase (
"Basic Statistical Functions using Five Integers")
128 FiveIntegersTestCase::~FiveIntegersTestCase ()
150 for (
long i = 0; i < count; i++)
152 value = multiple * (i + 1);
154 calculator.Update (value);
157 sqrSum += value * value;
162 max = multiple * count;
170 variance = (count * sqrSum - sum * sum) / (count * (count - 1));
172 stddev = std::sqrt (variance);
175 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getCount(), count, TOLERANCE,
"Count value wrong");
176 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getSum(), sum, TOLERANCE,
"Sum value wrong");
177 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMin(), min, TOLERANCE,
"Min value wrong");
178 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMax(), max, TOLERANCE,
"Max value wrong");
179 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMean(), mean, TOLERANCE,
"Mean value wrong");
180 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getStddev(), stddev, TOLERANCE,
"Stddev value wrong");
181 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getVariance(), variance, TOLERANCE,
"Variance value wrong");
182 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getSqrSum(), sqrSum, TOLERANCE,
"SqrSum value wrong");
197 virtual void DoRun (
void);
200 FiveDoublesTestCase::FiveDoublesTestCase ()
201 :
TestCase (
"Basic Statistical Functions using Five Double Values")
206 FiveDoublesTestCase::~FiveDoublesTestCase ()
226 double multiple = 3.14;
228 for (
long i = 0; i < count; i++)
230 value = multiple * (i + 1);
232 calculator.Update (value);
235 sqrSum += value * value;
240 max = multiple * count;
248 variance = (count * sqrSum - sum * sum) / (count * (count - 1));
250 stddev = std::sqrt (variance);
253 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getCount(), count, TOLERANCE,
"Count value wrong");
254 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getSum(), sum, TOLERANCE,
"Sum value wrong");
255 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMin(), min, TOLERANCE,
"Min value wrong");
256 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMax(), max, TOLERANCE,
"Max value wrong");
257 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getMean(), mean, TOLERANCE,
"Mean value wrong");
258 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getStddev(), stddev, TOLERANCE,
"Stddev value wrong");
259 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getVariance(), variance, TOLERANCE,
"Variance value wrong");
260 NS_TEST_ASSERT_MSG_EQ_TOL (calculator.
getSqrSum(), sqrSum, TOLERANCE,
"SqrSum value wrong");
270 BasicDataCalculatorsTestSuite::BasicDataCalculatorsTestSuite ()
271 :
TestSuite (
"basic-data-calculators", UNIT)
double getVariance() const
virtual void DoRun(void)
Implementation to actually run this test case.
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual test case to this test suite.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoRun(void)
Implementation to actually run this test case.