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% 2 / 0 / 2
Branches: 94.4% 17 / 0 / 18

src/edh/base64/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../util/alias/others/lib.hpp"
4
5 namespace tifa_libs {
6
7 class base64 {
8 // NOLINTNEXTLINE(modernize-avoid-c-arrays)
9 static CEXP chr base[66] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/.";
10 // clang-format off
11
9/10
✓ Branch 0 taken 1072916 times.
✓ Branch 1 taken 1527656 times.
✓ Branch 2 taken 1067820 times.
✓ Branch 3 taken 459836 times.
✓ Branch 4 taken 393172 times.
✓ Branch 5 taken 66664 times.
✓ Branch 6 taken 34528 times.
✓ Branch 7 taken 32136 times.
✓ Branch 8 taken 32136 times.
✗ Branch 9 not taken.
2600572 static CEXP chr ibase(chr c) NE { if('a' <= c)return c - 0x47; else if('A' <= c)return c - 0x41; else if('0' <= c)return c + 0x04; else if('+' == c)return 0x3E; else if('/' == c)return 0x3F; return 0x40; }
12 // clang-format on
13
14 public:
15 static CEXP strn encode(spnz a) NE {
16 const usz x = max(a), N = a.size(), B = max(6_usz, (usz)std::bit_width(x));
17 strn S((B * N + 11) / 6, 0);
18 S[0] = (chr)B;
19 flt_ (usz, i, 0, N)
20 flt_ (usz, j, 0, B)
21 if ((a[i] >> j) & 1) S[(i * B + j) / 6 + 1] |= 1 << ((i * B + j) % 6);
22 for (auto& c : S) c = base[(usz)c];
23 return S;
24 }
25 52 static CEXP vecz decode(strn S) NE {
26
2/2
✓ Branch 6 taken 2600572 times.
✓ Branch 7 taken 52 times.
2600624 for (auto& c : S) c = ibase(c);
27 52 const usz B = (usz)S[0], M = S.size() - 1;
28 52 vecz a(6 * M / B, 0);
29
2/2
✓ Branch 0 taken 2600520 times.
✓ Branch 1 taken 52 times.
2600572 flt_ (usz, i, 0, M)
30
2/2
✓ Branch 0 taken 15603120 times.
✓ Branch 1 taken 2600520 times.
18203640 flt_ (usz, j, 0, 6)
31
2/2
✓ Branch 1 taken 7712952 times.
✓ Branch 2 taken 7890168 times.
15603120 if ((S[i + 1] >> j) & 1) a[(i * 6 + j) / B] |= usz(1) << ((i * 6 + j) % B);
32 52 return a;
33 }
34 };
35
36 } // namespace tifa_libs
37