GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 11 / 0 / 11
Functions: 100.0% 1 / 0 / 1
Branches: 92.9% 13 / 0 / 14

src/str/lyndon/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../util/alias/others/lib.hpp"
4
5 namespace tifa_libs {
6
7 23 CEXP vecu duval(strnv s) NE {
8 23 cu32 n = (u32)s.size();
9 46 vecu res{0};
10
2/2
✓ Branch 1 taken 353 times.
✓ Branch 2 taken 23 times.
399 while (res.back() != n) {
11 353 u32 l = 1;
12
1/2
✓ Branch 1 taken 8686978 times.
✗ Branch 2 not taken.
8686978 flt_ (u32, i, res.back() + 1, n + 1)
13
6/6
✓ Branch 0 taken 8686891 times.
✓ Branch 1 taken 87 times.
✓ Branch 4 taken 266 times.
✓ Branch 5 taken 8686625 times.
✓ Branch 6 taken 353 times.
✓ Branch 7 taken 8686625 times.
8686978 if (i == n || s[i] < s[i - l]) {
14
2/2
✓ Branch 2 taken 996124 times.
✓ Branch 3 taken 353 times.
996477 for (u32 j = res.back() + l; j < i + 1; j += l) res.push_back(j);
15 353 break;
16
2/2
✓ Branch 2 taken 2513007 times.
✓ Branch 3 taken 6173618 times.
8686625 } else if (s[i - l] < s[i]) l = i + 1 - res.back();
17 }
18 23 return res;
19 }
20
21 } // namespace tifa_libs
22