#ifdef WITH_TESTS #include "../Tests.h" #include "../../math/Stats.h" using namespace Stats; TEST(Statistics, minimum) { Minimum min; min.add(+999); ASSERT_EQ(999, min.get()); min.add(1); ASSERT_EQ(1, min.get()); min.add(2); ASSERT_EQ(1, min.get()); min.add(0); ASSERT_EQ(0, min.get()); min.add(-99); ASSERT_EQ(-99, min.get()); } TEST(Statistics, maximum) { Maximum max; max.add(-999); ASSERT_EQ(-999, max.get()); max.add(1); ASSERT_EQ(1, max.get()); max.add(2); ASSERT_EQ(2, max.get()); max.add(1); ASSERT_EQ(2, max.get()); max.add(99); ASSERT_EQ(99, max.get()); } TEST(Statistics, median) { Median med; ASSERT_THROW(med.get(), std::exception); med.add(1); ASSERT_EQ(1, med.get()); med.add(2); ASSERT_EQ(1.5, med.get()); med.add(3); ASSERT_EQ(2, med.get()); med.add(99); ASSERT_EQ(2.5, med.get()); } TEST(Statistics, average) { Average avg; ASSERT_THROW(avg.get(), std::exception); avg.add(1); ASSERT_EQ(1, avg.get()); avg.add(2); ASSERT_EQ(1.5, avg.get()); avg.add(3); ASSERT_EQ(2, avg.get()); avg.add(99); ASSERT_EQ(26.25, avg.get()); } #endif