GCC Code Coverage Report


Directory: ./
File: firmware/libfirmware/util/test/test_math.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 22 0 22
Functions: 100.0% 9 0 9
Branches: 45.2% 28 0 62
Decisions: 100.0% 4 - 4

Line Branch Decision Exec Source
1 #include <rusefi/rusefi_math.h>
2
3 #include <gtest/gtest.h>
4 #include <cmath>
5
6 4 TEST(Util_Math, ExpTaylor)
7 {
8 // test from -2 < x < 0
9
2/2
✓ Branch 0 taken 41 times.
✓ Branch 1 taken 1 time.
2/2
✓ Decision 'true' taken 41 times.
✓ Decision 'false' taken 1 time.
42 for(float x = -2; x < 0; x += 0.05)
10 {
11 // Compare taylor to libc implementation
12
3/7
✓ Branch 2 taken 41 times.
✓ Branch 5 taken 41 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 41 times.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
41 EXPECT_NEAR(expf_taylor(x), expf(x), 0.01f);
13 }
14 1 }
15
16 4 TEST(Util_Math, clampf) {
17 // off scale low
18
3/7
✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_EQ(clampF(10, 5, 20), 10);
19
3/7
✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_EQ(clampF(-10, -50, 10), -10);
20
21 // in range (unclamped)
22
3/7
✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_EQ(clampF(10, 15, 20), 15);
23
3/7
✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_EQ(clampF(-10, -5, 10), -5);
24
25 // off scale high
26
3/7
✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_EQ(clampF(10, 25, 20), 20);
27
3/7
✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_EQ(clampF(-10, 50, 10), 10);
28 1 }
29
30 4 TEST(Util_Math, tanf_taylor) {
31 // Function is only specified from [0, pi/2) ish, so test that range
32
2/2
✓ Branch 1 taken 15 times.
✓ Branch 2 taken 1 time.
2/2
✓ Decision 'true' taken 15 times.
✓ Decision 'false' taken 1 time.
16 for (float i = 0; i < 1.5; i += 0.1f)
33 {
34 // Compare to libc implementation
35
3/9
✓ Branch 2 taken 15 times.
✓ Branch 5 taken 15 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 15 times.
✗ Branch 12 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
15 EXPECT_NEAR(tanf_taylor(i), tanf(i), 0.05f) << "I = " << i;
36 }
37 1 }
38