@@ -42,6 +42,14 @@ TEST_F(MovingAverageStatTest, shouldCalculateAverageForLessSamplesThanWindowSize
4242 EXPECT_EQ (moving_average_stat.value (), calculated_average);
4343}
4444
45+ TEST_F (MovingAverageStatTest, shouldCalculateAverageForLessSamplesThanWindowSize2) {
46+ moving_average_stat+=kArbitraryNumberToAdd ;
47+ moving_average_stat+=kArbitraryNumberToAdd - 1 ;
48+ moving_average_stat+=kArbitraryNumberToAdd - 2 ;
49+ uint32_t calculated_average = (3 *kArbitraryNumberToAdd - 3 )/3 ;
50+ EXPECT_EQ (moving_average_stat.value (), calculated_average);
51+ }
52+
4553TEST_F (MovingAverageStatTest, shouldCalculateAverageForValuesInWindow) {
4654 for (uint i = 0 ; i < kArbitraryWindowSize ; i++) {
4755 moving_average_stat+=kArbitraryNumberToAdd ;
@@ -52,10 +60,28 @@ TEST_F(MovingAverageStatTest, shouldCalculateAverageForValuesInWindow) {
5260 EXPECT_EQ (moving_average_stat.value (), kArbitraryNumberToAdd + 1 );
5361}
5462
63+ TEST_F (MovingAverageStatTest, shouldCalculateAverageForValuesInWindow2) {
64+ for (uint i = 0 ; i < kArbitraryWindowSize ; i++) {
65+ moving_average_stat+=kArbitraryNumberToAdd ;
66+ }
67+ for (uint i = 0 ; i < kArbitraryWindowSize ; i++) {
68+ moving_average_stat+=kArbitraryNumberToAdd - 1 ;
69+ }
70+ EXPECT_EQ (moving_average_stat.value (), kArbitraryNumberToAdd - 1 );
71+ }
72+
5573TEST_F (MovingAverageStatTest, shouldCalculateAverageForGivenNumberOfSamples) {
5674 for (uint i = 0 ; i < kArbitraryWindowSize ; i++) {
5775 moving_average_stat+=i;
5876 }
59- EXPECT_EQ (moving_average_stat.value (1 ), 4u );
60- EXPECT_EQ (moving_average_stat.value (2 ), uint ((4 + 3 ) / 2 ));
77+ EXPECT_EQ (moving_average_stat.value (1 ), kArbitraryWindowSize - 1 );
78+ EXPECT_EQ (moving_average_stat.value (2 ), uint ((kArbitraryWindowSize * 2 - 3 ) / 2 ));
79+ }
80+
81+ TEST_F (MovingAverageStatTest, shouldCalculateAverageForGivenNumberOfSamples2) {
82+ for (uint i = kArbitraryWindowSize ; i > 0 ; i--) {
83+ moving_average_stat+=i;
84+ }
85+ EXPECT_EQ (moving_average_stat.value (1 ), 1u );
86+ EXPECT_EQ (moving_average_stat.value (2 ), uint ((1 + 2 ) / 2 ));
6187}
0 commit comments