GCC Code Coverage Report


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

src/gen/subset/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../util/alias/num/lib.hpp"
4
5 namespace tifa_libs {
6
7 // enumerate x : $\varnothing\ne x \subset b$
8 template <u32 = 0>
9 class enum_subset {
10 static inline u32 b_;
11 u32 now_;
12
13 70 static CEXP u32 num_begin() NE { return b_; }
14 14 static CEXP u32 num_end() NE { return 0; }
15
16 public:
17 14 static CEXP void set(u32 b) NE { b_ = b; }
18 14 static CEXP enum_subset begin() NE { return num_begin(); }
19 14 static CEXP enum_subset end() NE { return num_end(); }
20
21
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 42 times.
42 CEXP enum_subset(u32 now = num_begin()) NE : now_(now) { assert(now <= num_begin()); }
22
23 1181863 CEXP u32 operator*() CNE { return now_; }
24 393959 CEXP bool operator!=(enum_subset CR x) CNE { return **this != *x; }
25 393945 CEXP void operator++() NE { now_ = (now_ - 1) & b_; }
26 };
27
28 } // namespace tifa_libs
29