GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 10 / 0 / 10
Functions: 100.0% 8 / 0 / 8
Branches: 100.0% 6 / 0 / 6

src/geo2d/ds/c/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../p/lib.hpp"
4
5 namespace tifa_libs {
6
7 template <class FP>
8 struct circle {
9 point<FP> o;
10 FP r;
11
12 CEXP circle() = default;
13 69195 CEXP circle(point<FP> CR c, FP r) NE : o(c), r(r) {}
14 32 CEXP circle(FP c_x, FP c_y, FP r_) NE : o(c_x, c_y), r(r_) {}
15
16 11348 friend auto& operator>>(istream_c auto& is, circle& c) NE { return is >> c.o >> c.r; }
17 10 friend auto& operator<<(ostream_c auto& os, circle CR c) NE { return os << c.o << ' ' << c.r; }
18
4/4
✓ Branch 1 taken 3192 times.
✓ Branch 2 taken 7510 times.
✓ Branch 3 taken 269 times.
✓ Branch 4 taken 2923 times.
10702 friend CEXP bool operator==(circle CR l, circle CR r) NE { return l.o == r.o && l.r == r.r; }
19 121628 friend CEXP auto operator<=>(circle CR l, circle CR r) NE {
20
2/2
✓ Branch 1 taken 107855 times.
✓ Branch 2 taken 13773 times.
121628 if (auto c = l.o <=> r.o; c) return c;
21 13773 return comp(l.r, r.r);
22 }
23
24 315 CEXP FP area(FP angle = pi_v<FP> * 2) CNE { return angle * r * r / 2; }
25 74 CEXP FP crown_area(FP angle = pi_v<FP> * 2) CNE { return (angle - std::sin(angle)) * r * r / 2; }
26 CEXP FP arc(FP angle = pi_v<FP> * 2) CNE { return angle * r; }
27 };
28
29 } // namespace tifa_libs
30