GCC Code Coverage Report


Directory: src/gate/
File: src/gate/tests/gatecore_cpp_test/test_map.cpp
Date: 2025-09-14 13:10:38
Exec Total Coverage
Lines: 26 27 96.3%
Functions: 4 4 100.0%
Branches: 28 73 38.4%

Line Branch Exec Source
1 #include "gate/tests.hpp"
2 #include "gate/maps.hpp"
3 #include "gate/randomgen.hpp"
4
5
6 using namespace gate;
7
8 1000 template<class T> bool_t is_map_consistent(Map<T, T, DefaultComparer<T> > const& m)
9 {
10 1000 gate::size_t count = 0;
11 2000 typename Map<T, T>::const_iterator iter = m.begin();
12 2000 typename Map<T, T>::const_iterator next = iter;
13 2000 typename Map<T, T>::const_iterator iterend = m.end();
14
2/2
✓ Branch 1 taken 250000 times.
✓ Branch 2 taken 1000 times.
251000 while (iter != iterend)
15 {
16 250000 ++count;
17 250000 next = iter;
18 250000 ++next;
19
2/2
✓ Branch 1 taken 249001 times.
✓ Branch 2 taken 999 times.
250000 if (next != iterend)
20 {
21
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 249001 times.
249001 if (iter.key() >= next.key())
22 {
23 return false;
24 }
25 }
26 250000 iter = next;
27 }
28 1000 return count == m.count();
29 }
30
31
2/7
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
6 GATEXX_TEST_UNIT(Map)
32 {
33
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 RandomGenerator random;
34 uint32_t entry;
35 4 Map<uint32_t, uint32_t> m;
36
37
2/2
✓ Branch 0 taken 1000 times.
✓ Branch 1 taken 1 times.
2002 for (gate::size_t n = 0; n < 1000; ++n)
38 {
39 2000 gate::uint64_t num = 0;
40
4/14
✓ Branch 1 taken 1000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1000 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1000 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1000 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2000 GATEXX_TEST_CHECK_NOTHROW(random.fillBuffer(&num, sizeof(num)));
41
4/14
✓ Branch 1 taken 1000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1000 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1000 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1000 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2000 GATEXX_TEST_CHECK_NOTHROW(num = random.getNumber());
42 2000 entry = static_cast<uint32_t>(num % 0xffffffff);
43
2/2
✓ Branch 0 taken 500 times.
✓ Branch 1 taken 500 times.
2000 if (n % 2)
44 {
45
4/14
✓ Branch 1 taken 500 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 500 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 500 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 500 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
1000 GATEXX_TEST_CHECK_NOTHROW(m.add(entry, entry));
46 }
47 else
48 {
49 1000 m.remove(entry);
50 }
51
4/12
✓ Branch 1 taken 1000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1000 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1000 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1000 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
2000 GATEXX_TEST_CHECK(is_map_consistent(m));
52 }
53 2 }
54