blob: 930a3cb1bede5f604fe7dd77e7b33f195692df99 [file] [log] [blame]
Philipp Schrader29d54f22016-04-02 22:14:48 +00001#include "gtest/gtest.h"
2#include "frc971/zeroing/averager.h"
3
4namespace frc971 {
5namespace zeroing {
6
7class AveragerTest : public ::testing::Test {
8 protected:
9 void SetUp() override {}
10};
11
12// Makes sure that we can compute the average of a bunch of integers.
13TEST_F(AveragerTest, ComputeIntegerAverage) {
14 Averager<int, 6> averager;
15 for (size_t i = 0; i < averager.size(); ++i) {
16 ASSERT_FALSE(averager.full());
17 averager.AddData(static_cast<int>(i));
18 }
19 ASSERT_TRUE(averager.full());
20 ASSERT_EQ(2, averager.GetAverage());
21}
22
23// Makes sure that we can compute the average of a bunch of floats.
24TEST_F(AveragerTest, ComputeFloatAverage) {
25 Averager<float, 100> averager;
26 for (size_t i = 0; i < averager.size(); ++i) {
27 ASSERT_FALSE(averager.full());
28 averager.AddData(static_cast<float>(i) / 3.0);
29 }
30 ASSERT_TRUE(averager.full());
31 ASSERT_NEAR(16.5, averager.GetAverage(), 0.001);
32}
33
34} // namespace zeroing
35} // namespace frc971