GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 30 / 0 / 30
Functions: 100.0% 4 / 0 / 4
Branches: 88.9% 64 / 0 / 72

src/geo2d/ins_hps/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../edh/discretization/lib.hpp"
4 #include "../ds/cvh/lib.hpp"
5
6 namespace tifa_libs {
7
8 template <class FP>
9 4671 CEXP cvh<FP> ins_hPs(vec<line<FP>> vl) NE {
10 4813388 auto check = [](line<FP> CR u, line<FP> CR v, line<FP> CR w) NE -> bool { return w.is_include_strict(ins_LL(u, v)); };
11
2/4
tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✗ Branch 6 not taken.
✓ Branch 7 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✗ Branch 6 not taken.
✓ Branch 7 taken 4656 times.
4671 if ((vl = uniq(vl)).size() < 3) return {};
12 4671 std::deque<line<FP>> q;
13
4/4
tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 4 taken 727 times.
✓ Branch 5 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 4 taken 2042780 times.
✓ Branch 5 taken 4656 times.
2048178 for (auto it = begin(vl); it != end(vl); ++it) {
14
12/12
tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 712 times.
✓ Branch 3 taken 15 times.
✓ Branch 7 taken 141 times.
✓ Branch 8 taken 571 times.
✓ Branch 9 taken 141 times.
✓ Branch 10 taken 586 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 2038124 times.
✓ Branch 3 taken 4656 times.
✓ Branch 7 taken 416304 times.
✓ Branch 8 taken 1621820 times.
✓ Branch 9 taken 416304 times.
✓ Branch 10 taken 1626476 times.
2043507 if (it != begin(vl) && is_same_dir(*it, it[-1])) continue;
15
12/12
tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 904 times.
✓ Branch 3 taken 40 times.
✓ Branch 9 taken 358 times.
✓ Branch 10 taken 546 times.
✓ Branch 11 taken 358 times.
✓ Branch 12 taken 586 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 3133114 times.
✓ Branch 3 taken 25608 times.
✓ Branch 9 taken 1532246 times.
✓ Branch 10 taken 1600868 times.
✓ Branch 11 taken 1532246 times.
✓ Branch 12 taken 1626476 times.
3159666 while (q.size() > 1 && !check(q.rbegin()[1], q.back(), *it)) q.pop_back();
16
12/12
tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 549 times.
✓ Branch 3 taken 40 times.
✓ Branch 9 taken 3 times.
✓ Branch 10 taken 546 times.
✓ Branch 11 taken 3 times.
✓ Branch 12 taken 586 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 1630901 times.
✓ Branch 3 taken 25608 times.
✓ Branch 9 taken 30033 times.
✓ Branch 10 taken 1600868 times.
✓ Branch 11 taken 30033 times.
✓ Branch 12 taken 1626476 times.
1657098 while (q.size() > 1 && !check(begin(q)[1], q.front(), *it)) q.pop_front();
17 1627062 q.push_back(*it);
18 }
19
11/12
tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 17 times.
✓ Branch 3 taken 4 times.
✓ Branch 9 taken 6 times.
✓ Branch 10 taken 11 times.
✓ Branch 11 taken 6 times.
✓ Branch 12 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 43236 times.
✗ Branch 3 not taken.
✓ Branch 9 taken 38580 times.
✓ Branch 10 taken 4656 times.
✓ Branch 11 taken 38580 times.
✓ Branch 12 taken 4656 times.
43257 while (q.size() > 2 && !check(q.rbegin()[1], q.back(), q.front())) q.pop_back();
20
7/12
tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 11 times.
✓ Branch 3 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 11 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 4656 times.
✗ Branch 3 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 4656 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 4656 times.
4671 while (q.size() > 2 && !check(begin(q)[1], q.front(), q.back())) q.pop_front();
21 4671 vec<point<FP>> ret;
22
4/4
tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 6 taken 219 times.
✓ Branch 7 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 6 taken 25617 times.
✓ Branch 7 taken 4656 times.
30507 flt_ (u32, i, 0, (u32)q.size()) ret.push_back(ins_LL(q[i], q[(i + 1) % q.size()]));
23 4671 return cvh<FP>{ret, true};
24 4671 }
25
26 } // namespace tifa_libs
27