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% 3 / 0 / 3
Branches: 53.2% 66 / 0 / 124

test/cpv_local/enum/gosper.cpp
Line Branch Exec Source
1 // competitive-verifier: STANDALONE
2
3 #include "../../../src/comb/binom/lib.hpp"
4 #include "../../../src/gen/gosper/lib.hpp"
5 #include "../../../src/math/ds/mint/ms/lib.hpp"
6 #include "../base.hpp"
7
8 using namespace tifa_libs;
9 using mint = mint_ms<998244353>;
10
11 template <u32 ID>
12 12 void test(u32 n, u32 kmax) {
13 12 binom<mint> binom(n);
14
30/52
void test<1u>(unsigned int, unsigned int):
✓ Branch 11 taken 120 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 120 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 120 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 120 times.
✗ Branch 21 not taken.
✓ Branch 27 taken 120 times.
✗ Branch 28 not taken.
✓ Branch 35 taken 120 times.
✓ Branch 36 taken 21 times.
✓ Branch 38 taken 21 times.
✗ Branch 39 not taken.
✓ Branch 41 taken 21 times.
✗ Branch 42 not taken.
✓ Branch 47 taken 21 times.
✗ Branch 48 not taken.
✓ Branch 51 taken 21 times.
✓ Branch 52 taken 6 times.
✓ Branch 55 taken 6 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 6 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 6 times.
✗ Branch 62 not taken.
void test<2u>(unsigned int, unsigned int):
✓ Branch 11 taken 328399514 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 328399514 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 328399514 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 328399514 times.
✗ Branch 21 not taken.
✓ Branch 27 taken 328399514 times.
✗ Branch 28 not taken.
✓ Branch 35 taken 328399514 times.
✓ Branch 36 taken 61 times.
✓ Branch 38 taken 61 times.
✗ Branch 39 not taken.
✓ Branch 41 taken 61 times.
✗ Branch 42 not taken.
✓ Branch 47 taken 61 times.
✗ Branch 48 not taken.
✓ Branch 51 taken 61 times.
✓ Branch 52 taken 6 times.
✓ Branch 55 taken 6 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 6 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 6 times.
✗ Branch 62 not taken.
328399728 timer_(flt_ (u32, k, 1, kmax + 1) {
15 gosper<ID>::set(n, k);
16 gosper<ID> gs;
17 u32 cnt = 0, cnt_correct = binom.mCn(n, k).val();
18 for (auto i : gs) {
19 ++cnt;
20 check((u32)std::popcount(i), k, check_param(n), check_param(k), check_param(std::bitset<64>(i).to_string()));
21 }
22 check(cnt, cnt_correct, check_param(n), check_param(k));
23 });
24 12 }
25
26 1 int main() {
27
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<1>(1, 1));
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<1>(2, 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<1>(3, 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<1>(4, 4));
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<1>(5, 5));
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<1>(6, 6));
33
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>(10, 10));
34
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>(20, 20));
35
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>(30, 10));
36
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>(40, 8));
37
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>(50, 7));
38
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>(60, 6));
39 1 }
40