GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 182 / 0 / 182
Functions: 100.0% 17 / 0 / 17
Branches: 48.8% 412 / 0 / 844

test/cpv_local/geo2d/triangle_centers.cpp
Line Branch Exec Source
1 // competitive-verifier: STANDALONE
2
3 #include "../../../src/geo2d/ang_pp/lib.hpp"
4 #include "../../../src/geo2d/area_triedges/lib.hpp"
5 #include "../../../src/geo2d/dis/pl/lib.hpp"
6 #include "../../../src/geo2d/pred/is_in_middle_p/lib.hpp"
7 #include "../../../src/geo2d/tcenter/e/lib.hpp"
8 #include "../../../src/geo2d/tcenter/g/lib.hpp"
9 #include "../../../src/geo2d/tcenter/h/lib.hpp"
10 #include "../../../src/geo2d/tcenter/i/lib.hpp"
11 #include "../../../src/geo2d/tcenter/n/lib.hpp"
12 #include "../../../src/geo2d/tcenter/o/lib.hpp"
13 #include "../../../src/geo2d/tcenter/x/lib.hpp"
14 #include "../../../src/util/rand/lib.hpp"
15 #include "../base.hpp"
16
17 using namespace tifa_libs;
18
19 template <class T>
20 4 void test_e(triangle<T> CR t) {
21 4 point<T> ea = center_EA(t), eb = center_EB(t), ec = center_EC(t);
22 4 point<T> i = center_I(t);
23 4 point<T> he = center_H(triangle<T>(ea, eb, ec));
24
25
10/20
void test_e<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
void test_e<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
4 check(he, i, check_param(t), check_param(ea), check_param(eb), check_param(ec));
26 4 }
27
28 template <class T>
29 4 void test_g(triangle<T> CR t) {
30 4 point<T> g = center_G(t);
31 4 point<T> mab = mid_point(t.A, t.B), mbc = mid_point(t.B, t.C), mca = mid_point(t.C, t.A);
32
33
8/16
void test_g<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
void test_g<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
4 check_bool(is_in_middle(t.A, g, mbc), check_param(t), check_param(g), check_param(mbc));
34
8/16
void test_g<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
void test_g<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
4 check_bool(is_in_middle(t.B, g, mca), check_param(t), check_param(g), check_param(mca));
35
8/16
void test_g<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
void test_g<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
4 check_bool(is_in_middle(t.C, g, mab), check_param(t), check_param(g), check_param(mab));
36 4 }
37
38 template <class T>
39 4 void test_h(triangle<T> CR t) {
40 4 point<T> h = center_H(t);
41 4 point<T> uva = (t.A - h).do_unit(), uvb = (t.B - h).do_unit(), uvc = (t.C - h).do_unit();
42 4 point<T> uab = (t.A - t.B).do_unit(), ubc = (t.B - t.C).do_unit(), uca = (t.C - t.A).do_unit();
43
44
10/20
void test_h<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
void test_h<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
4 check_bool(is_zero(uva * ubc), check_param(t), check_param(h), check_param(uva), check_param(ubc));
45
10/20
void test_h<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
void test_h<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
4 check_bool(is_zero(uvb * uca), check_param(t), check_param(h), check_param(uva), check_param(uca));
46
10/20
void test_h<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
void test_h<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
4 check_bool(is_zero(uvc * uab), check_param(t), check_param(h), check_param(uva), check_param(uab));
47
48 4 line<T> lab(t.A, t.B), lbc(t.B, t.C), lca(t.C, t.A);
49 4 T dist_ah = dist_PP(t.A, h), dist_bh = dist_PP(t.B, h), dist_ch = dist_PP(t.C, h);
50 4 T dist_hd = dist_PL(h, lbc), dist_he = dist_PL(h, lca), dist_hf = dist_PL(h, lab);
51
52
22/44
void test_h<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
void test_h<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
4 check_bool(is_eq(dist_ah * dist_hd, dist_bh * dist_he) && is_eq(dist_bh * dist_he, dist_ch * dist_hf), check_param(t), check_param(h), check_param(dist_ah), check_param(dist_bh), check_param(dist_ch), check_param(dist_hd), check_param(dist_he), check_param(dist_hf));
53 4 }
54
55 template <class T>
56 4 void test_i(triangle<T> CR t) {
57 4 point<T> i = center_I(t);
58
59 4 T dist_ai = dist_PP(t.A, i), dist_bi = dist_PP(t.B, i), dist_ci = dist_PP(t.C, i);
60 4 auto [a, b, c] = t.edges();
61 4 T R = radius_O(t), r = radius_I(t);
62
63
18/36
void test_i<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
void test_i<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
4 check_bool(is_eq(dist_ai * dist_ai / (b * c) + dist_bi * dist_bi / (c * a) + dist_ci * dist_ci / (a * b), (T)1), check_param(t), check_param(i), check_param(dist_ai), check_param(dist_bi), check_param(dist_ci), check_param(c), check_param(a), check_param(b));
64
16/32
void test_i<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
void test_i<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
4 check_bool(is_eq(dist_ai * dist_bi * dist_ci, 4 * R * r * r), check_param(t), check_param(i), check_param(R), check_param(r), check_param(dist_ai), check_param(dist_bi), check_param(dist_ci));
65
66 4 T ang_cai = ang2pi_PP(t.C - t.A, i - t.A), ang_iab = ang2pi_PP(i - t.A, t.B - t.A);
67 4 T ang_abi = ang2pi_PP(t.A - t.B, i - t.B), ang_ibc = ang2pi_PP(i - t.B, t.C - t.B);
68 4 T ang_bci = ang2pi_PP(t.B - t.C, i - t.C), ang_ica = ang2pi_PP(i - t.C, t.A - t.C);
69
70
10/20
void test_i<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
void test_i<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
4 check_bool(is_eq(ang_cai, ang_iab), check_param(t), check_param(i), check_param(ang_cai), check_param(ang_iab));
71
10/20
void test_i<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
void test_i<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
4 check_bool(is_eq(ang_abi, ang_ibc), check_param(t), check_param(i), check_param(ang_abi), check_param(ang_ibc));
72
10/20
void test_i<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
void test_i<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
4 check_bool(is_eq(ang_bci, ang_ica), check_param(t), check_param(i), check_param(ang_bci), check_param(ang_ica));
73 4 }
74
75 template <class T>
76 4 void test_o(triangle<T> CR t) {
77 4 point<T> o = center_O(t);
78
79 4 T R = radius_O(t), diam = R * 2;
80 4 T dist_ao = dist_PP(t.A, o), dist_bo = dist_PP(t.B, o), dist_co = dist_PP(t.C, o);
81
82
8/16
void test_o<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
void test_o<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
4 check_bool(is_eq(R, dist_ao), check_param(t), check_param(R), check_param(dist_ao));
83
8/16
void test_o<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
void test_o<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
4 check_bool(is_eq(R, dist_bo), check_param(t), check_param(R), check_param(dist_bo));
84
8/16
void test_o<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
void test_o<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
4 check_bool(is_eq(R, dist_co), check_param(t), check_param(R), check_param(dist_co));
85
86 4 auto [a, b, c] = t.edges();
87 4 auto [A, B, C] = t.angles();
88 4 T das = a / std::sin(A), dbs = b / std::sin(B), dcs = c / std::sin(C);
89
90
12/24
void test_o<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
void test_o<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
4 check_bool(is_eq(diam, das), check_param(t), check_param(diam), check_param(das), check_param(a), check_param(A));
91
12/24
void test_o<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
void test_o<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
4 check_bool(is_eq(diam, dbs), check_param(t), check_param(diam), check_param(dbs), check_param(b), check_param(B));
92
12/24
void test_o<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
void test_o<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
4 check_bool(is_eq(diam, dcs), check_param(t), check_param(diam), check_param(dcs), check_param(c), check_param(C));
93
94 4 T area = area_T_abc(a, b, c);
95 4 T ds = std::sqrt(2 * area / (std::sin(A) * std::sin(B) * std::sin(C)));
96 4 T ds2 = a * b * c / (2 * area);
97
98
16/32
void test_o<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
void test_o<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
4 check_bool(is_eq(diam, ds), check_param(t), check_param(diam), check_param(ds), check_param(area), check_param(A), check_param(B), check_param(C));
99
16/32
void test_o<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
void test_o<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
4 check_bool(is_eq(diam, ds2), check_param(t), check_param(diam), check_param(ds2), check_param(area), check_param(a), check_param(b), check_param(c));
100 4 }
101
102 template <class T>
103 4 void test_n(triangle<T> CR t) {
104 4 point<T> n = center_N(t);
105 4 point<T> o = center_O(t), h = center_H(t), g = center_G(t), i = center_I(t);
106
107
10/20
void test_n<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
void test_n<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
4 check(n, mid_point(o, h), check_param(t), check_param(n), check_param(o), check_param(h));
108
10/20
void test_n<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
void test_n<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
4 check_bool(is_zero(cross_unit(n, o, g)), check_param(t), check_param(n), check_param(o), check_param(g));
109
110 4 T no = dist_PP(n, o), nh = dist_PP(n, h), ng = dist_PP(n, g);
111
112
22/44
void test_n<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
void test_n<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
4 check_bool(is_eq(no, nh) && is_eq(nh, ng * 3), check_param(t), check_param(n), check_param(o), check_param(h), check_param(g), check_param(no), check_param(nh), check_param(ng));
113
114 4 T R = radius_O(t), r = radius_I(t);
115 4 T ni = dist_PP(n, i), oi = dist_PP(o, i);
116
117
14/28
void test_n<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
void test_n<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
4 check_bool(is_eq(ni, R / 2 - r), check_param(t), check_param(n), check_param(i), check_param(ni), check_param(R), check_param(r));
118
14/28
void test_n<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
void test_n<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
4 check_bool(is_eq(2 * R * ni, oi * oi), check_param(t), check_param(n), check_param(i), check_param(ni), check_param(oi), check_param(R));
119 4 }
120
121 template <class T>
122 4 void test_x(triangle<T> CR t) {
123 4 point<T> x = center_X(t);
124 4 point<T> uva = (t.A - x).do_unit(), uvb = (t.B - x).do_unit(), uvc = (t.C - x).do_unit();
125 4 T ang_axb = std::abs(ang_PP(uva, uvb)), ang_bxc = std::abs(ang_PP(uvb, uvc)), ang_cxa = std::abs(ang_PP(uvc, uva));
126
127 4 CEXP T _60 = pi_v<T> / 3, _120 = pi_v<T> / 1.5;
128
129
32/84
void test_x<double>(tifa_libs::triangle<double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 43 not taken.
✓ Branch 44 taken 2 times.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 63 taken 2 times.
✗ Branch 64 not taken.
void test_x<long double>(tifa_libs::triangle<long double> const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 43 not taken.
✓ Branch 44 taken 2 times.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 63 taken 2 times.
✗ Branch 64 not taken.
4 check_bool((is_eq(ang_axb, _120) && is_eq(ang_bxc, _120) && is_eq(ang_cxa, _120)) ||
130 (is_eq(ang_axb, _60) && is_eq(ang_bxc, _60) && is_eq(ang_cxa, _120)) ||
131 (is_eq(ang_axb, _120) && is_eq(ang_bxc, _60) && is_eq(ang_cxa, _60)) ||
132 (is_eq(ang_axb, _60) && is_eq(ang_bxc, _120) && is_eq(ang_cxa, _60)),
133 check_param(t), check_param(x), check_param(uva), check_param(uvb), check_param(uvc), check_param(ang_axb), check_param(ang_bxc), check_param(ang_cxa));
134 4 }
135
136 template <arithm_c T>
137 4 void test(T lim) {
138 4 rand_gen<T> g(std::is_signed_v<T> ? -lim : 0, lim);
139
140 4 triangle<T> t(point<T>(g(), g()), point<T>(g(), g()), point<T>(g(), g()));
141
142
8/16
void test<double>(double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
void test<long double>(long double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
4 timer_(test_e(t));
143
8/16
void test<double>(double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
void test<long double>(long double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
4 timer_(test_g(t));
144
8/16
void test<double>(double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
void test<long double>(long double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
4 timer_(test_h(t));
145
8/16
void test<double>(double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
void test<long double>(long double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
4 timer_(test_i(t));
146
8/16
void test<double>(double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
void test<long double>(long double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
4 timer_(test_o(t));
147
8/16
void test<double>(double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
void test<long double>(long double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
4 timer_(test_n(t));
148
8/16
void test<double>(double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
void test<long double>(long double):
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
4 timer_(test_x(t));
149 4 }
150
151 1 int main() {
152
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));
153
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));
154
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));
155
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));
156 1 }
157