GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 24 / 0 / 24
Functions: 100.0% 3 / 0 / 3
Branches: 52.5% 42 / 0 / 80

test/cpv_local/geo2d/femwebp.cpp
Line Branch Exec Source
1 // competitive-verifier: STANDALONE
2
3 #include "../../../src/geo2d/femwebp/lib.hpp"
4 #include "../../../src/util/rand/lib.hpp"
5 #include "../base.hpp"
6
7 using namespace tifa_libs;
8
9 template <class T>
10 void single_test(vec<point<T>> CR v) {
11 check_bool(v.size() >= 3, check_param(v));
12
13 point<T> fw = femwebp(v);
14
15 point<T> sum;
16 for (auto CR i : v)
17 if (i != fw) sum += (i - fw).do_unit();
18 check_bool(is_lt(sum.norm(), (T)1), check_param(v), check_param(fw), check_param(sum));
19 }
20
21 template <arithm_c T>
22 12 void test(T lim, u32 n) {
23 12 rand_gen<T> g(std::is_signed_v<T> ? -lim : 0, lim);
24
25 12 vec<point<T>> v;
26
6/8
void test<double>(double, unsigned int):
✓ Branch 3 taken 126 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 126 times.
✓ Branch 7 taken 6 times.
void test<long double>(long double, unsigned int):
✓ Branch 3 taken 126 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 126 times.
✓ Branch 7 taken 6 times.
264 while (v.size() < n) v.emplace_back(g(), g());
27 12 }
28
29 1 int main() {
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<f64>(1e5, 3));
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<f128>(1e5, 3));
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<f64>(1e9, 3));
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<f128>(1e9, 3));
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<f64>(1e5, 10));
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<f128>(1e5, 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<f64>(1e9, 10));
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<f128>(1e9, 10));
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<f64>(1e5, 50));
39
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<f128>(1e5, 50));
40
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<f64>(1e9, 50));
41
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<f128>(1e9, 50));
42 1 }
43