GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 17 / 0 / 17
Functions: 100.0% 2 / 0 / 2
Branches: 50.0% 23 / 0 / 46

test/cpv_local/nt/period_fib.cpp
Line Branch Exec Source
1 // competitive-verifier: STANDALONE
2
3 #include "../../../src/lalg/ds/mat/lib.hpp"
4 #include "../../../src/math/ds/mint/md/lib.hpp"
5 #include "../../../src/math/qpow/basic/lib.hpp"
6 #include "../../../src/nt/period_fib/lib.hpp"
7 #include "../base.hpp"
8
9 using namespace tifa_libs;
10 template <class mint>
11 5 void test(u32 n) {
12 5 mint::set_mod(n);
13
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_(u64 period = period_fib(n));
14 5 matrix<mint> a(2, 2), b(2, 1), i(2, 2);
15 5 a(0, 1) = a(1, 0) = a(1, 1) = 1;
16 5 b(1, 0) = 1;
17 5 i(0, 0) = i(1, 1) = 1;
18
1/2
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
5 a = qpow(a, period, i);
19
4/8
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
5 check(a * b, b, check_param(n), check_param(period), check_param(a));
20 5 }
21
22 using mint = mint_md<__LINE__>;
23
24 1 int main() {
25
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<mint>(2));
26
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<mint>(10));
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<mint>(5000));
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<mint>(1919810));
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<mint>(1'000'000'000));
30 1 }
31