GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/util/test_exp_average.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 27 0 27
Functions: 100.0% 9 0 9
Branches: 40.6% 41 0 101
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 #include "pch.h"
2
3 #include "exp_average.h"
4
5 4 TEST(exp_average, length1) {
6 1 ExpAverage ea;
7
1/1
✓ Branch 1 taken 1 time.
1 ea.init(1);
8
3/8
✓ Branch 3 taken 1 time.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✓ Branch 25 taken 1 time.
✗ Branch 26 not taken.
1 ASSERT_NEAR(ea.average(3), 3, EPS2D);
9
3/8
✓ Branch 3 taken 1 time.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✓ Branch 25 taken 1 time.
✗ Branch 26 not taken.
1 ASSERT_NEAR(ea.average(8), 8, EPS2D);
10
3/8
✓ Branch 3 taken 1 time.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✓ Branch 25 taken 1 time.
✗ Branch 26 not taken.
1 ASSERT_NEAR(ea.average(3), 3, EPS2D);
11
3/8
✓ Branch 3 taken 1 time.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✓ Branch 25 taken 1 time.
✗ Branch 26 not taken.
1 ASSERT_NEAR(ea.average(8), 8, EPS2D);
12 }
13
14 4 TEST(exp_average, length2) {
15 1 ExpAverage ea;
16 1 ea.setSmoothingFactor(0.6666666666666666666666666);
17
3/8
✓ Branch 3 taken 1 time.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✓ Branch 25 taken 1 time.
✗ Branch 26 not taken.
1 ASSERT_NEAR(ea.average(3), 2, EPS2D);
18
3/8
✓ Branch 3 taken 1 time.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✓ Branch 25 taken 1 time.
✗ Branch 26 not taken.
1 ASSERT_NEAR(ea.average(8), 6, EPS2D);
19
3/8
✓ Branch 3 taken 1 time.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✓ Branch 25 taken 1 time.
✗ Branch 26 not taken.
1 ASSERT_NEAR(ea.average(3), 4, EPS2D);
20
3/8
✓ Branch 3 taken 1 time.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✓ Branch 25 taken 1 time.
✗ Branch 26 not taken.
1 ASSERT_NEAR(ea.average(8), 6.6666, EPS2D);
21 }
22
23 4 TEST(exp_average, nicerLength2) {
24 1 ExpAverage ea;
25 1 ea.setSmoothingFactor(0.6666666666666666666666666);
26
4/9
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✓ Branch 27 taken 1 time.
✗ Branch 28 not taken.
1 ASSERT_NEAR(ea.initOrAverage(3), 3, EPS2D);
27
4/9
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✓ Branch 27 taken 1 time.
✗ Branch 28 not taken.
1 ASSERT_NEAR(ea.initOrAverage(8), 6.33333333333, EPS2D);
28
4/9
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✓ Branch 27 taken 1 time.
✗ Branch 28 not taken.
1 ASSERT_NEAR(ea.initOrAverage(3), 4.11111068, EPS2D);
29
4/9
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✓ Branch 27 taken 1 time.
✗ Branch 28 not taken.
1 ASSERT_NEAR(ea.initOrAverage(8), 6.7037, EPS2D);
30 }
31
32 TEST(exp_average, length12) {
33 ExpAverage ea;
34 ea.init(12);
35 ASSERT_NEAR(ea.average(3), 0.4615, EPS2D);
36 ASSERT_NEAR(ea.average(8), 1.6213, EPS2D);
37 ASSERT_NEAR(ea.average(3), 1.8334, EPS2D);
38 ASSERT_NEAR(ea.average(8), 2.7821, EPS2D);
39
40 for (int i = 0;i<300;i++) {
41 ea.average(3);
42 ea.average(8);
43 }
44 ASSERT_NEAR(ea.average(3), 5.2916, EPS2D);
45 }
46