1//===---------------------------------------------------------------------===//
2// statistics_test - Unit tests for src/statistics.cc
3//===---------------------------------------------------------------------===//
4
5#include "../src/statistics.h"
6#include "gtest/gtest.h"
7
8namespace {
9TEST(StatisticsTest, Mean) {
10  std::vector<double> Inputs;
11  {
12    Inputs = {42, 42, 42, 42};
13    double Res = benchmark::StatisticsMean(Inputs);
14    EXPECT_DOUBLE_EQ(Res, 42.0);
15  }
16  {
17    Inputs = {1, 2, 3, 4};
18    double Res = benchmark::StatisticsMean(Inputs);
19    EXPECT_DOUBLE_EQ(Res, 2.5);
20  }
21  {
22    Inputs = {1, 2, 5, 10, 10, 14};
23    double Res = benchmark::StatisticsMean(Inputs);
24    EXPECT_DOUBLE_EQ(Res, 7.0);
25  }
26}
27
28TEST(StatisticsTest, Median) {
29  std::vector<double> Inputs;
30  {
31    Inputs = {42, 42, 42, 42};
32    double Res = benchmark::StatisticsMedian(Inputs);
33    EXPECT_DOUBLE_EQ(Res, 42.0);
34  }
35  {
36    Inputs = {1, 2, 3, 4};
37    double Res = benchmark::StatisticsMedian(Inputs);
38    EXPECT_DOUBLE_EQ(Res, 2.5);
39  }
40  {
41    Inputs = {1, 2, 5, 10, 10};
42    double Res = benchmark::StatisticsMedian(Inputs);
43    EXPECT_DOUBLE_EQ(Res, 5.0);
44  }
45}
46
47TEST(StatisticsTest, StdDev) {
48  std::vector<double> Inputs;
49  {
50    Inputs = {101, 101, 101, 101};
51    double Res = benchmark::StatisticsStdDev(Inputs);
52    EXPECT_DOUBLE_EQ(Res, 0.0);
53  }
54  {
55    Inputs = {1, 2, 3};
56    double Res = benchmark::StatisticsStdDev(Inputs);
57    EXPECT_DOUBLE_EQ(Res, 1.0);
58  }
59}
60
61}  // end namespace
62