GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 22 / 0 / 22
Functions: 100.0% 2 / 0 / 2
Branches: 57.4% 39 / 0 / 68

test/cpv_local/math/debruijn.cpp
Line Branch Exec Source
1 // competitive-verifier: STANDALONE
2
3 #include "../../../src/math/debruijn/lib.hpp"
4 #include "../../../src/math/qpow/basic/lib.hpp"
5 #include "../base.hpp"
6
7 using namespace tifa_libs;
8 5 void test(u32 n, u32 k) {
9
3/6
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
5 timer_(auto list = deBruijn(n, k));
10 5 usz len = qpow<u64>(k, n);
11
3/6
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 11 taken 5 times.
✗ Branch 12 not taken.
5 check(list.size(), len, check_param(n), check_param(k));
12
13
1/2
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
5 vecu text = list;
14
3/4
✓ Branch 4 taken 24180 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 24180 times.
✓ Branch 9 taken 5 times.
24185 for (auto i : list) text.push_back(i);
15
1/2
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
5 vecu pattern(n);
16
2/2
✓ Branch 0 taken 24180 times.
✓ Branch 1 taken 5 times.
24185 flt_ (usz, cnt, 0, len) {
17
2/4
✓ Branch 3 taken 24180 times.
✗ Branch 4 not taken.
✓ Branch 8 taken 24180 times.
✗ Branch 9 not taken.
24180 auto res = std::search(begin(text), end(text), std::boyer_moore_horspool_searcher(begin(pattern), end(pattern)));
18
3/6
✓ Branch 1 taken 24180 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 24180 times.
✗ Branch 5 not taken.
✓ Branch 11 taken 24180 times.
✗ Branch 12 not taken.
24180 check_bool(res != end(text), check_param(text), check_param(pattern));
19 24180 ++pattern.back();
20
6/6
✓ Branch 0 taken 35332 times.
✓ Branch 1 taken 46 times.
✓ Branch 3 taken 11198 times.
✓ Branch 4 taken 24134 times.
✓ Branch 5 taken 11198 times.
✓ Branch 6 taken 24180 times.
35378 for (u32 i = n - 1; i && pattern[i] == k; --i) {
21 11198 pattern[i] = 0;
22 11198 ++pattern[i - 1];
23 }
24 }
25 5 }
26
27 1 int main() {
28
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(13, 2));
29
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(7, 3));
30
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(5, 5));
31
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(4, 10));
32
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(2, 26));
33 1 }
34