INSTINCT Code Coverage Report


Directory: src/
File: Navigation/GNSS/Core/Code.cpp
Date: 2025-06-02 15:19:59
Exec Total Coverage
Lines: 413 888 46.5%
Functions: 19 62 30.6%
Branches: 1204 4167 28.9%

Line Branch Exec Source
1 // This file is part of INSTINCT, the INS Toolkit for Integrated
2 // Navigation Concepts and Training by the Institute of Navigation of
3 // the University of Stuttgart, Germany.
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
9 #include "Code.hpp"
10
11 #include <array>
12 #include <fmt/core.h>
13 #include <imgui.h>
14
15 #include "util/Logger.hpp"
16
17 namespace NAV
18 {
19
20 Code::Code(SatelliteSystem_ sys)
21 {
22 if (sys & GPS) { *this |= Code(G01 | G02 | G05); }
23 if (sys & GAL) { *this |= Code(E01 | E05 | E06 | E07 | E08); }
24 if (sys & GLO) { *this |= Code(R01 | R02 | R03 | R04 | R06); }
25 if (sys & BDS) { *this |= Code(B01 | B02 | B05 | B06 | B07 | B08); }
26 if (sys & QZSS) { *this |= Code(J01 | J02 | J05 | J06); }
27 if (sys & IRNSS) { *this |= Code(I05 | I09); }
28 if (sys & SBAS) { *this |= Code(S01 | S05); }
29 }
30
31 Code::Code(Frequency_ freq)
32 {
33 if (freq & G01) { *this |= G1C | G1S | G1L | G1X | G1P | G1W | G1Y | G1M | G1N; }
34 if (freq & G02) { *this |= G2C | G2D | G2S | G2L | G2X | G2P | G2W | G2Y | G2M | G2N; }
35 if (freq & G05) { *this |= G5I | G5Q | G5X; }
36 if (freq & E01) { *this |= E1A | E1B | E1C | E1X | E1Z; }
37 if (freq & E05) { *this |= E5I | E5Q | E5X; }
38 if (freq & E06) { *this |= E6A | E6B | E6C | E6X | E6Z; }
39 if (freq & E07) { *this |= E7I | E7Q | E7X; }
40 if (freq & E08) { *this |= E8I | E8Q | E8X; }
41 if (freq & R01) { *this |= R1C | R1P; }
42 if (freq & R02) { *this |= R2C | R2P; }
43 if (freq & R03) { *this |= R3I | R3Q | R3X; }
44 if (freq & R04) { *this |= R4A | R4B | R4X; }
45 if (freq & R06) { *this |= R6A | R6B | R6X; }
46 if (freq & B01) { *this |= B1D | B1P | B1X; }
47 if (freq & B02) { *this |= B2I | B2Q | B2X; }
48 if (freq & B05) { *this |= B5D | B5P | B5X; }
49 if (freq & B06) { *this |= B6I | B6Q | B6X | B6A; }
50 if (freq & B07) { *this |= B7I | B7Q | B7X | B7D | B7P | B7Z; }
51 if (freq & B08) { *this |= B8D | B8P | B8X; }
52 if (freq & J01) { *this |= J1C | J1S | J1L | J1X | J1Z; }
53 if (freq & J02) { *this |= J2S | J2L | J2X; }
54 if (freq & J05) { *this |= J5I | J5Q | J5X | J5D | J5P | J5Z; }
55 if (freq & J06) { *this |= J6S | J6L | J6X | J6E | J6Z; }
56 if (freq & I05) { *this |= I5A | I5B | I5C | I5X; }
57 if (freq & I09) { *this |= I9A | I9B | I9C | I9X; }
58 if (freq & S01) { value |= S1C; }
59 if (freq & S05) { *this |= S5I | S5Q | S5X; }
60 }
61
62 549397 Code::operator std::string() const
63 {
64
1/2
✓ Branch 1 taken 549406 times.
✗ Branch 2 not taken.
549397 const std::string filler = " | ";
65 549406 std::string str;
66
67
8/18
✓ Branch 1 taken 549409 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 105707 times.
✓ Branch 5 taken 443696 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 105707 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 105705 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 105708 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 105709 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 105706 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
760820 if (*this & G1C) { str += (!str.empty() ? filler : "") + "G1C"; }
68
2/18
✓ Branch 1 taken 549411 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549410 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549402 if (*this & G1S) { str += (!str.empty() ? filler : "") + "G1S"; }
69
8/18
✓ Branch 1 taken 549407 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1286 times.
✓ Branch 5 taken 548125 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1286 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1286 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1286 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1286 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1286 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
551982 if (*this & G1L) { str += (!str.empty() ? filler : "") + "G1L"; }
70
8/18
✓ Branch 1 taken 549414 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2207 times.
✓ Branch 5 taken 547210 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2207 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2206 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2207 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2206 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2206 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
553824 if (*this & G1X) { str += (!str.empty() ? filler : "") + "G1X"; }
71
8/18
✓ Branch 1 taken 549414 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4476 times.
✓ Branch 5 taken 544941 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4476 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 4476 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 4476 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 4476 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 4476 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
558368 if (*this & G1P) { str += (!str.empty() ? filler : "") + "G1P"; }
72
8/18
✓ Branch 1 taken 549409 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2699 times.
✓ Branch 5 taken 546718 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2699 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2699 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2699 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2699 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2699 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554815 if (*this & G1W) { str += (!str.empty() ? filler : "") + "G1W"; }
73
2/18
✓ Branch 1 taken 549414 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549417 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549417 if (*this & G1Y) { str += (!str.empty() ? filler : "") + "G1Y"; }
74
2/18
✓ Branch 1 taken 549415 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549417 if (*this & G1M) { str += (!str.empty() ? filler : "") + "G1M"; }
75
2/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549420 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549424 if (*this & G1N) { str += (!str.empty() ? filler : "") + "G1N"; }
76
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2186 times.
✓ Branch 5 taken 547230 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2186 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2186 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2186 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2186 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2186 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
553792 if (*this & G2C) { str += (!str.empty() ? filler : "") + "G2C"; }
77
2/18
✓ Branch 1 taken 549417 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549419 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549416 if (*this & G2D) { str += (!str.empty() ? filler : "") + "G2D"; }
78
2/18
✓ Branch 1 taken 549414 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549415 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549419 if (*this & G2S) { str += (!str.empty() ? filler : "") + "G2S"; }
79
8/18
✓ Branch 1 taken 549409 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2716 times.
✓ Branch 5 taken 546699 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2715 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2716 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2715 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2713 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2716 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554846 if (*this & G2L) { str += (!str.empty() ? filler : "") + "G2L"; }
80
8/18
✓ Branch 1 taken 549419 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 40935 times.
✓ Branch 5 taken 508484 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 40935 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 40933 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 40934 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 40934 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 40934 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
631284 if (*this & G2X) { str += (!str.empty() ? filler : "") + "G2X"; }
81
8/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4476 times.
✓ Branch 5 taken 544945 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4476 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 4476 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 4476 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 4476 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 4476 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
558370 if (*this & G2P) { str += (!str.empty() ? filler : "") + "G2P"; }
82
8/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2742 times.
✓ Branch 5 taken 546681 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2742 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2742 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2743 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2742 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2743 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554906 if (*this & G2W) { str += (!str.empty() ? filler : "") + "G2W"; }
83
2/18
✓ Branch 1 taken 549415 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549419 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549424 if (*this & G2Y) { str += (!str.empty() ? filler : "") + "G2Y"; }
84
2/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549418 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549419 if (*this & G2M) { str += (!str.empty() ? filler : "") + "G2M"; }
85
2/18
✓ Branch 1 taken 549414 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549416 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549418 if (*this & G2N) { str += (!str.empty() ? filler : "") + "G2N"; }
86
8/18
✓ Branch 1 taken 549415 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2310 times.
✓ Branch 5 taken 547111 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2310 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2310 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2310 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2310 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2310 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554036 if (*this & G5I) { str += (!str.empty() ? filler : "") + "G5I"; }
87
8/18
✓ Branch 1 taken 549413 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1424 times.
✓ Branch 5 taken 547991 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1424 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1424 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1423 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1424 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1424 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
552269 if (*this & G5Q) { str += (!str.empty() ? filler : "") + "G5Q"; }
88
8/18
✓ Branch 1 taken 549415 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 38352 times.
✓ Branch 5 taken 511068 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 38352 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 38352 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 38352 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 38352 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 38352 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
626119 if (*this & G5X) { str += (!str.empty() ? filler : "") + "G5X"; }
89
90
8/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549398 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549460 if (*this & E1A) { str += (!str.empty() ? filler : "") + "E1A"; }
91
8/18
✓ Branch 1 taken 549417 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549402 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549458 if (*this & E1B) { str += (!str.empty() ? filler : "") + "E1B"; }
92
8/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3800 times.
✓ Branch 5 taken 545620 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 3800 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 3800 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3800 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3800 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 3800 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
557022 if (*this & E1C) { str += (!str.empty() ? filler : "") + "E1C"; }
93
8/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 85062 times.
✓ Branch 5 taken 464359 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 85062 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 85062 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 85062 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 85062 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 85062 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
719544 if (*this & E1X) { str += (!str.empty() ? filler : "") + "E1X"; }
94
2/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549418 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549421 if (*this & E1Z) { str += (!str.empty() ? filler : "") + "E1Z"; }
95
8/18
✓ Branch 1 taken 549419 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549403 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549458 if (*this & E5I) { str += (!str.empty() ? filler : "") + "E5I"; }
96
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2622 times.
✓ Branch 5 taken 546798 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2622 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2622 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2622 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2622 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2622 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554667 if (*this & E5Q) { str += (!str.empty() ? filler : "") + "E5Q"; }
97
8/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 35969 times.
✓ Branch 5 taken 513448 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 35969 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 35969 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 35969 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 35969 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 35969 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
621358 if (*this & E5X) { str += (!str.empty() ? filler : "") + "E5X"; }
98
8/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549398 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549457 if (*this & E6A) { str += (!str.empty() ? filler : "") + "E6A"; }
99
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549403 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549458 if (*this & E6B) { str += (!str.empty() ? filler : "") + "E6B"; }
100
8/18
✓ Branch 1 taken 549417 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 36 times.
✓ Branch 5 taken 549387 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 36 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 36 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 36 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 36 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 36 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549495 if (*this & E6C) { str += (!str.empty() ? filler : "") + "E6C"; }
101
8/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 21 times.
✓ Branch 5 taken 549399 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 21 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 21 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 21 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 21 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 21 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549465 if (*this & E6X) { str += (!str.empty() ? filler : "") + "E6X"; }
102
2/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549425 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549420 if (*this & E6Z) { str += (!str.empty() ? filler : "") + "E6Z"; }
103
8/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549403 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549465 if (*this & E7I) { str += (!str.empty() ? filler : "") + "E7I"; }
104
8/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2622 times.
✓ Branch 5 taken 546803 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2622 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2622 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2622 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2622 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2622 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554667 if (*this & E7Q) { str += (!str.empty() ? filler : "") + "E7Q"; }
105
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 40999 times.
✓ Branch 5 taken 508426 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 40999 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 40999 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 40999 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 40999 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 40999 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
631423 if (*this & E7X) { str += (!str.empty() ? filler : "") + "E7X"; }
106
8/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549404 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549465 if (*this & E8I) { str += (!str.empty() ? filler : "") + "E8I"; }
107
8/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2621 times.
✓ Branch 5 taken 546801 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2621 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2621 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2622 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2622 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2622 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554667 if (*this & E8Q) { str += (!str.empty() ? filler : "") + "E8Q"; }
108
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 21 times.
✓ Branch 5 taken 549399 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 21 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 21 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 21 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 21 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 21 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549465 if (*this & E8X) { str += (!str.empty() ? filler : "") + "E8X"; }
109
110
9/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 51281 times.
✓ Branch 5 taken 498142 times.
✓ Branch 7 taken 1 times.
✓ Branch 8 taken 51280 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 51281 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 51281 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 51281 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 51281 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
651981 if (*this & R1C) { str += (!str.empty() ? filler : "") + "R1C"; }
111
8/18
✓ Branch 1 taken 549419 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1040 times.
✓ Branch 5 taken 548382 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1040 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1040 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1040 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1040 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1040 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
551503 if (*this & R1P) { str += (!str.empty() ? filler : "") + "R1P"; }
112
8/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 46045 times.
✓ Branch 5 taken 503377 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 46045 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 46045 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 46045 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 46045 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 46045 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
641512 if (*this & R2C) { str += (!str.empty() ? filler : "") + "R2C"; }
113
8/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1034 times.
✓ Branch 5 taken 548386 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1034 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1034 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1034 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1034 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1034 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
551490 if (*this & R2P) { str += (!str.empty() ? filler : "") + "R2P"; }
114
8/18
✓ Branch 1 taken 549425 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549404 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549460 if (*this & R3I) { str += (!str.empty() ? filler : "") + "R3I"; }
115
8/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 36 times.
✓ Branch 5 taken 549383 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 36 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 36 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 36 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 36 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 36 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549496 if (*this & R3Q) { str += (!str.empty() ? filler : "") + "R3Q"; }
116
8/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 41 times.
✓ Branch 5 taken 549383 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 41 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 41 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 41 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 41 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 41 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549501 if (*this & R3X) { str += (!str.empty() ? filler : "") + "R3X"; }
117
8/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549400 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549464 if (*this & R4A) { str += (!str.empty() ? filler : "") + "R4A"; }
118
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549406 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549460 if (*this & R4B) { str += (!str.empty() ? filler : "") + "R4B"; }
119
8/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549400 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549466 if (*this & R4X) { str += (!str.empty() ? filler : "") + "R4X"; }
120
2/18
✓ Branch 1 taken 549417 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549420 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549420 if (*this & R6A) { str += (!str.empty() ? filler : "") + "R6A"; }
121
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549403 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549460 if (*this & R6B) { str += (!str.empty() ? filler : "") + "R6B"; }
122
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549421 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549423 if (*this & R6X) { str += (!str.empty() ? filler : "") + "R6X"; }
123
124
2/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549423 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549421 if (*this & B1D) { str += (!str.empty() ? filler : "") + "B1D"; }
125
2/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549425 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549423 if (*this & B1P) { str += (!str.empty() ? filler : "") + "B1P"; }
126
8/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4271 times.
✓ Branch 5 taken 545147 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4271 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 4271 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 4271 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 4271 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 4271 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
557967 if (*this & B1X) { str += (!str.empty() ? filler : "") + "B1X"; }
127
8/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 34643 times.
✓ Branch 5 taken 514782 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 34643 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 34643 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 34642 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 34642 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 34643 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
618704 if (*this & B2I) { str += (!str.empty() ? filler : "") + "B2I"; }
128
2/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549425 if (*this & B2Q) { str += (!str.empty() ? filler : "") + "B2Q"; }
129
8/18
✓ Branch 1 taken 549425 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3208 times.
✓ Branch 5 taken 546212 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 3208 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 3208 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3208 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3208 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 3208 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
555840 if (*this & B2X) { str += (!str.empty() ? filler : "") + "B2X"; }
130
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549419 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549420 if (*this & B5D) { str += (!str.empty() ? filler : "") + "B5D"; }
131
2/18
✓ Branch 1 taken 549415 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549419 if (*this & B5P) { str += (!str.empty() ? filler : "") + "B5P"; }
132
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4271 times.
✓ Branch 5 taken 545153 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4271 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 4271 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 4271 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 4271 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 4271 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
557966 if (*this & B5X) { str += (!str.empty() ? filler : "") + "B5X"; }
133
8/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1547 times.
✓ Branch 5 taken 547877 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1547 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1547 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1547 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1547 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1547 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
552518 if (*this & B6I) { str += (!str.empty() ? filler : "") + "B6I"; }
134
2/18
✓ Branch 1 taken 549419 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549419 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549424 if (*this & B6Q) { str += (!str.empty() ? filler : "") + "B6Q"; }
135
2/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549421 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549419 if (*this & B6X) { str += (!str.empty() ? filler : "") + "B6X"; }
136
2/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549420 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549421 if (*this & B6A) { str += (!str.empty() ? filler : "") + "B6A"; }
137
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1633 times.
✓ Branch 5 taken 547792 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1633 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1633 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1633 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1633 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1633 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
552686 if (*this & B7I) { str += (!str.empty() ? filler : "") + "B7I"; }
138
2/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549425 if (*this & B7Q) { str += (!str.empty() ? filler : "") + "B7Q"; }
139
8/18
✓ Branch 1 taken 549419 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3208 times.
✓ Branch 5 taken 546218 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 3208 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 3208 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3208 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3208 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 3208 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
555840 if (*this & B7X) { str += (!str.empty() ? filler : "") + "B7X"; }
140
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1498 times.
✓ Branch 5 taken 547926 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1498 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1498 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1498 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1498 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1498 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
552422 if (*this & B7D) { str += (!str.empty() ? filler : "") + "B7D"; }
141
2/18
✓ Branch 1 taken 549425 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549423 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549424 if (*this & B7P) { str += (!str.empty() ? filler : "") + "B7P"; }
142
2/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549423 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549423 if (*this & B7Z) { str += (!str.empty() ? filler : "") + "B7Z"; }
143
2/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549419 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549423 if (*this & B8D) { str += (!str.empty() ? filler : "") + "B8D"; }
144
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549423 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549419 if (*this & B8P) { str += (!str.empty() ? filler : "") + "B8P"; }
145
2/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549420 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549423 if (*this & B8X) { str += (!str.empty() ? filler : "") + "B8X"; }
146
147
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1230 times.
✓ Branch 5 taken 548191 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1230 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1230 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1230 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1230 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1230 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
551880 if (*this & J1C) { str += (!str.empty() ? filler : "") + "J1C"; }
148
2/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549422 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549421 if (*this & J1S) { str += (!str.empty() ? filler : "") + "J1S"; }
149
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549422 if (*this & J1L) { str += (!str.empty() ? filler : "") + "J1L"; }
150
8/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1214 times.
✓ Branch 5 taken 548211 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1214 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1214 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1214 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1214 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1214 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
551852 if (*this & J1X) { str += (!str.empty() ? filler : "") + "J1X"; }
151
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1214 times.
✓ Branch 5 taken 548210 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1214 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1214 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1214 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1214 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1214 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
551853 if (*this & J1Z) { str += (!str.empty() ? filler : "") + "J1Z"; }
152
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549424 if (*this & J2S) { str += (!str.empty() ? filler : "") + "J2S"; }
153
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 549404 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 16 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 16 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 16 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 16 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549456 if (*this & J2L) { str += (!str.empty() ? filler : "") + "J2L"; }
154
8/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 616 times.
✓ Branch 5 taken 548806 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 616 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 616 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 616 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 616 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 616 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
550652 if (*this & J2X) { str += (!str.empty() ? filler : "") + "J2X"; }
155
8/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 616 times.
✓ Branch 5 taken 548806 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 616 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 616 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 616 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 616 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 616 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
550654 if (*this & J5I) { str += (!str.empty() ? filler : "") + "J5I"; }
156
8/18
✓ Branch 1 taken 549421 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 549408 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 16 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 16 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 16 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 16 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549454 if (*this & J5Q) { str += (!str.empty() ? filler : "") + "J5Q"; }
157
8/18
✓ Branch 1 taken 549426 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 598 times.
✓ Branch 5 taken 548828 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 598 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 597 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 598 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 597 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 597 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
550619 if (*this & J5X) { str += (!str.empty() ? filler : "") + "J5X"; }
158
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549425 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549425 if (*this & J5D) { str += (!str.empty() ? filler : "") + "J5D"; }
159
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549425 if (*this & J5P) { str += (!str.empty() ? filler : "") + "J5P"; }
160
8/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 598 times.
✓ Branch 5 taken 548822 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 598 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 598 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 598 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 598 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 598 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
550620 if (*this & J5Z) { str += (!str.empty() ? filler : "") + "J5Z"; }
161
2/18
✓ Branch 1 taken 549419 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549423 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549420 if (*this & J6S) { str += (!str.empty() ? filler : "") + "J6S"; }
162
2/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549423 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549423 if (*this & J6L) { str += (!str.empty() ? filler : "") + "J6L"; }
163
2/18
✓ Branch 1 taken 549418 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549423 if (*this & J6X) { str += (!str.empty() ? filler : "") + "J6X"; }
164
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549418 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549424 if (*this & J6E) { str += (!str.empty() ? filler : "") + "J6E"; }
165
8/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549406 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 20 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549458 if (*this & J6Z) { str += (!str.empty() ? filler : "") + "J6Z"; }
166
167
8/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 549406 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 16 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 16 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 16 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 16 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549458 if (*this & I5A) { str += (!str.empty() ? filler : "") + "I5A"; }
168
2/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549419 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549422 if (*this & I5B) { str += (!str.empty() ? filler : "") + "I5B"; }
169
2/18
✓ Branch 1 taken 549413 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549421 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549419 if (*this & I5C) { str += (!str.empty() ? filler : "") + "I5C"; }
170
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 616 times.
✓ Branch 5 taken 548804 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 616 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 616 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 616 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 616 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 616 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
550653 if (*this & I5X) { str += (!str.empty() ? filler : "") + "I5X"; }
171
2/18
✓ Branch 1 taken 549420 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549421 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549420 if (*this & I9A) { str += (!str.empty() ? filler : "") + "I9A"; }
172
2/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549422 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549421 if (*this & I9B) { str += (!str.empty() ? filler : "") + "I9B"; }
173
2/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549424 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549422 if (*this & I9C) { str += (!str.empty() ? filler : "") + "I9C"; }
174
2/18
✓ Branch 1 taken 549419 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549422 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549424 if (*this & I9X) { str += (!str.empty() ? filler : "") + "I9X"; }
175
176
8/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1708 times.
✓ Branch 5 taken 547717 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1708 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1708 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1708 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1708 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1708 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
552838 if (*this & S1C) { str += (!str.empty() ? filler : "") + "S1C"; }
177
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 549409 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 16 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 16 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 16 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 16 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549457 if (*this & S5I) { str += (!str.empty() ? filler : "") + "S5I"; }
178
2/18
✓ Branch 1 taken 549423 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549422 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
549425 if (*this & S5Q) { str += (!str.empty() ? filler : "") + "S5Q"; }
179
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1645 times.
✓ Branch 5 taken 547780 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1645 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1645 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1645 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1645 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1645 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
552712 if (*this & S5X) { str += (!str.empty() ? filler : "") + "S5X"; }
180
181
1/2
✓ Branch 1 taken 549426 times.
✗ Branch 2 not taken.
549425 if (!str.empty())
182 {
183 549426 return str;
184 }
185 return "None";
186 549421 }
187
188 2765 Code Code::fromFreqAttr(Frequency freq, char attribute)
189 {
190
26/29
✓ Branch 1 taken 309 times.
✓ Branch 2 taken 281 times.
✓ Branch 3 taken 82 times.
✓ Branch 4 taken 210 times.
✓ Branch 5 taken 103 times.
✓ Branch 6 taken 80 times.
✓ Branch 7 taken 170 times.
✓ Branch 8 taken 76 times.
✓ Branch 9 taken 190 times.
✓ Branch 10 taken 167 times.
✓ Branch 11 taken 80 times.
✓ Branch 12 taken 60 times.
✓ Branch 13 taken 20 times.
✓ Branch 14 taken 48 times.
✓ Branch 15 taken 138 times.
✓ Branch 16 taken 48 times.
✓ Branch 17 taken 44 times.
✓ Branch 18 taken 152 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 212 times.
✓ Branch 21 taken 32 times.
✓ Branch 22 taken 119 times.
✓ Branch 23 taken 20 times.
✓ Branch 24 taken 32 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 60 times.
✓ Branch 27 taken 32 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 1 times.
2765 switch (Frequency_(freq))
191 {
192 309 case G01: // GPS L1 (1575.42 MHz).
193
3/4
✓ Branch 0 taken 171 times.
✓ Branch 1 taken 138 times.
✓ Branch 3 taken 170 times.
✗ Branch 4 not taken.
309 if (attribute == 'C') { return G1C; }
194
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 138 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
138 if (attribute == 'S') { return G1S; }
195
3/4
✓ Branch 0 taken 16 times.
✓ Branch 1 taken 122 times.
✓ Branch 3 taken 15 times.
✗ Branch 4 not taken.
138 if (attribute == 'L') { return G1L; }
196
3/4
✓ Branch 0 taken 56 times.
✓ Branch 1 taken 66 times.
✓ Branch 3 taken 56 times.
✗ Branch 4 not taken.
122 if (attribute == 'X') { return G1X; }
197
3/4
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 18 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
66 if (attribute == 'P') { return G1P; }
198
3/4
✓ Branch 0 taken 16 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 17 times.
✗ Branch 4 not taken.
18 if (attribute == 'W') { return G1W; }
199
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
2 if (attribute == 'Y') { return G1Y; }
200
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
2 if (attribute == 'M') { return G1M; }
201
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
2 if (attribute == 'N') { return G1N; }
202 2 break;
203 281 case G02: // GPS L2 (1227.6 MHz).
204
3/4
✓ Branch 0 taken 44 times.
✓ Branch 1 taken 237 times.
✓ Branch 3 taken 44 times.
✗ Branch 4 not taken.
281 if (attribute == 'C') { return G2C; }
205
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 237 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
237 if (attribute == 'D') { return G2D; }
206
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 237 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
237 if (attribute == 'S') { return G2S; }
207
3/4
✓ Branch 0 taken 36 times.
✓ Branch 1 taken 201 times.
✓ Branch 3 taken 36 times.
✗ Branch 4 not taken.
237 if (attribute == 'L') { return G2L; }
208
3/4
✓ Branch 0 taken 106 times.
✓ Branch 1 taken 95 times.
✓ Branch 3 taken 106 times.
✗ Branch 4 not taken.
201 if (attribute == 'X') { return G2X; }
209
3/4
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 47 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
95 if (attribute == 'P') { return G2P; }
210
3/4
✓ Branch 0 taken 46 times.
✓ Branch 1 taken 1 times.
✓ Branch 3 taken 47 times.
✗ Branch 4 not taken.
47 if (attribute == 'W') { return G2W; }
211
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
1 if (attribute == 'Y') { return G2Y; }
212
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
1 if (attribute == 'M') { return G2M; }
213
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
1 if (attribute == 'N') { return G2N; }
214 1 break;
215 82 case G05: // GPS L5 (1176.45 MHz).
216
3/4
✓ Branch 0 taken 24 times.
✓ Branch 1 taken 58 times.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
82 if (attribute == 'I') { return G5I; }
217
3/4
✓ Branch 0 taken 18 times.
✓ Branch 1 taken 40 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
58 if (attribute == 'Q') { return G5Q; }
218
2/4
✓ Branch 0 taken 40 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 40 times.
✗ Branch 4 not taken.
40 if (attribute == 'X') { return G5X; }
219 break;
220 210 case E01: // Galileo, "E1" (1575.42 MHz).
221
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 190 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
210 if (attribute == 'A') { return E1A; }
222
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 170 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
190 if (attribute == 'B') { return E1B; }
223
3/4
✓ Branch 0 taken 59 times.
✓ Branch 1 taken 111 times.
✓ Branch 3 taken 59 times.
✗ Branch 4 not taken.
170 if (attribute == 'C') { return E1C; }
224
2/4
✓ Branch 0 taken 111 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 111 times.
✗ Branch 4 not taken.
111 if (attribute == 'X') { return E1X; }
225 if (attribute == 'Z') { return E1Z; }
226 break;
227 103 case E05: // Galileo E5a (1176.45 MHz).
228
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 83 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
103 if (attribute == 'I') { return E5I; }
229
3/4
✓ Branch 0 taken 43 times.
✓ Branch 1 taken 40 times.
✓ Branch 3 taken 43 times.
✗ Branch 4 not taken.
83 if (attribute == 'Q') { return E5Q; }
230
2/4
✓ Branch 0 taken 40 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 40 times.
✗ Branch 4 not taken.
40 if (attribute == 'X') { return E5X; }
231 break;
232 80 case E06: // Galileo E6 (1278.75 MHz).
233
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 60 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
80 if (attribute == 'A') { return E6A; }
234
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 40 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
60 if (attribute == 'B') { return E6B; }
235
3/4
✓ Branch 0 taken 28 times.
✓ Branch 1 taken 12 times.
✓ Branch 3 taken 28 times.
✗ Branch 4 not taken.
40 if (attribute == 'C') { return E6C; }
236
2/4
✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
12 if (attribute == 'X') { return E6X; }
237 if (attribute == 'Z') { return E6Z; }
238 break;
239 170 case E07: // Galileo E5b (1207.14 MHz).
240
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 150 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
170 if (attribute == 'I') { return E7I; }
241
3/4
✓ Branch 0 taken 43 times.
✓ Branch 1 taken 107 times.
✓ Branch 3 taken 42 times.
✗ Branch 4 not taken.
150 if (attribute == 'Q') { return E7Q; }
242
2/4
✓ Branch 0 taken 107 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 107 times.
✗ Branch 4 not taken.
107 if (attribute == 'X') { return E7X; }
243 break;
244 76 case E08: // Galileo E5 (E5a + E5b) (1191.795MHz).
245
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 56 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
76 if (attribute == 'I') { return E8I; }
246
3/4
✓ Branch 0 taken 44 times.
✓ Branch 1 taken 12 times.
✓ Branch 3 taken 43 times.
✗ Branch 4 not taken.
56 if (attribute == 'Q') { return E8Q; }
247
2/4
✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
12 if (attribute == 'X') { return E8X; }
248 break;
249
250 190 case R01: // GLONASS, "G1" (1602 MHZ).
251
3/4
✓ Branch 0 taken 158 times.
✓ Branch 1 taken 32 times.
✓ Branch 3 taken 158 times.
✗ Branch 4 not taken.
190 if (attribute == 'C') { return R1C; }
252
2/4
✓ Branch 0 taken 32 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 32 times.
✗ Branch 4 not taken.
32 if (attribute == 'P') { return R1P; }
253 break;
254 167 case R02: // GLONASS, "G2" (1246 MHz).
255
3/4
✓ Branch 0 taken 135 times.
✓ Branch 1 taken 32 times.
✓ Branch 3 taken 133 times.
✗ Branch 4 not taken.
167 if (attribute == 'C') { return R2C; }
256
2/4
✓ Branch 0 taken 32 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 32 times.
✗ Branch 4 not taken.
32 if (attribute == 'P') { return R2P; }
257 break;
258 80 case R03: // GLONASS, "G3" (1202.025 MHz).
259
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 60 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
80 if (attribute == 'I') { return R3I; }
260
3/4
✓ Branch 0 taken 28 times.
✓ Branch 1 taken 32 times.
✓ Branch 3 taken 28 times.
✗ Branch 4 not taken.
60 if (attribute == 'Q') { return R3Q; }
261
2/4
✓ Branch 0 taken 32 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 32 times.
✗ Branch 4 not taken.
32 if (attribute == 'X') { return R3X; }
262 break;
263 60 case R04: // GLONASS, "G1a" (1600.995 MHZ).
264
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 40 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
60 if (attribute == 'A') { return R4A; }
265
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 20 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
40 if (attribute == 'B') { return R4B; }
266
2/4
✓ Branch 0 taken 20 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
20 if (attribute == 'X') { return R4X; }
267 break;
268 20 case R06: // GLONASS, "G2a" (1248.06 MHz).
269
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
20 if (attribute == 'A') { return R6A; }
270
2/4
✓ Branch 0 taken 20 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
20 if (attribute == 'B') { return R6B; }
271 if (attribute == 'X') { return R6X; }
272 break;
273
274 48 case B01: // Beidou B1 (1575.42 MHz).
275
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
48 if (attribute == 'D') { return B1D; }
276
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
48 if (attribute == 'P') { return B1P; }
277
2/4
✓ Branch 0 taken 48 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
48 if (attribute == 'X') { return B1X; }
278 break;
279 138 case B02: // Beidou B1-2 (1561.098 MHz).
280
3/4
✓ Branch 0 taken 114 times.
✓ Branch 1 taken 24 times.
✓ Branch 3 taken 115 times.
✗ Branch 4 not taken.
138 if (attribute == 'I') { return B2I; }
281
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 24 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
24 if (attribute == 'Q') { return B2Q; }
282
2/4
✓ Branch 0 taken 24 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
24 if (attribute == 'X') { return B2X; }
283 break;
284 48 case B05: // Beidou B2a (1176.45 MHz).
285
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
48 if (attribute == 'D') { return B5D; }
286
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
48 if (attribute == 'P') { return B5P; }
287
2/4
✓ Branch 0 taken 48 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
48 if (attribute == 'X') { return B5X; }
288 break;
289 44 case B06: // Beidou B3 (1268.52 MHz).
290
2/4
✓ Branch 0 taken 44 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 44 times.
✗ Branch 4 not taken.
44 if (attribute == 'I') { return B6I; }
291 if (attribute == 'Q') { return B6Q; }
292 if (attribute == 'X') { return B6X; }
293 if (attribute == 'A') { return B6A; }
294 break;
295 152 case B07: // Beidou B2b (1207.14 MHz).
296
3/4
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 48 times.
✓ Branch 3 taken 104 times.
✗ Branch 4 not taken.
152 if (attribute == 'I') { return B7I; }
297
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
48 if (attribute == 'Q') { return B7Q; }
298
3/4
✓ Branch 0 taken 24 times.
✓ Branch 1 taken 24 times.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
48 if (attribute == 'X') { return B7X; }
299
2/4
✓ Branch 0 taken 24 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
24 if (attribute == 'D') { return B7D; }
300 if (attribute == 'P') { return B7P; }
301 if (attribute == 'Z') { return B7Z; }
302 break;
303 case B08: // Beidou B2 (B2a + B2b) (1191.795MHz).
304 if (attribute == 'D') { return B8D; }
305 if (attribute == 'P') { return B8P; }
306 if (attribute == 'X') { return B8X; }
307 break;
308
309 212 case J01: // QZSS L1 (1575.42 MHz).
310
3/4
✓ Branch 0 taken 76 times.
✓ Branch 1 taken 136 times.
✓ Branch 3 taken 76 times.
✗ Branch 4 not taken.
212 if (attribute == 'C') { return J1C; }
311
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 136 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
136 if (attribute == 'S') { return J1S; }
312
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 136 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
136 if (attribute == 'L') { return J1L; }
313
3/4
✓ Branch 0 taken 68 times.
✓ Branch 1 taken 68 times.
✓ Branch 3 taken 68 times.
✗ Branch 4 not taken.
136 if (attribute == 'X') { return J1X; }
314
2/4
✓ Branch 0 taken 68 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 68 times.
✗ Branch 4 not taken.
68 if (attribute == 'Z') { return J1Z; }
315 break;
316 32 case J02: // QZSS L2 (1227.6 MHz).
317
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 32 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
32 if (attribute == 'S') { return J2S; }
318
3/4
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 24 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
32 if (attribute == 'L') { return J2L; }
319
2/4
✓ Branch 0 taken 24 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
24 if (attribute == 'X') { return J2X; }
320 break;
321 119 case J05: // QZSS L5 (1176.45 MHz).
322
3/4
✓ Branch 0 taken 24 times.
✓ Branch 1 taken 95 times.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
119 if (attribute == 'I') { return J5I; }
323
3/4
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 87 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
95 if (attribute == 'Q') { return J5Q; }
324
3/4
✓ Branch 0 taken 44 times.
✓ Branch 1 taken 43 times.
✓ Branch 3 taken 43 times.
✗ Branch 4 not taken.
87 if (attribute == 'X') { return J5X; }
325
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 43 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
43 if (attribute == 'D') { return J5D; }
326
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 43 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
43 if (attribute == 'P') { return J5P; }
327
2/4
✓ Branch 0 taken 44 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 44 times.
✗ Branch 4 not taken.
43 if (attribute == 'Z') { return J5Z; }
328 break;
329 20 case J06: // QZSS L6 / LEX (1278.75 MHz).
330
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
20 if (attribute == 'S') { return J6S; }
331
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
20 if (attribute == 'L') { return J6L; }
332
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
20 if (attribute == 'X') { return J6X; }
333
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
20 if (attribute == 'E') { return J6E; }
334
2/4
✓ Branch 0 taken 20 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
20 if (attribute == 'Z') { return J6Z; }
335 break;
336
337 32 case I05: // IRNSS L5 (1176.45 MHz).
338
3/4
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 24 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
32 if (attribute == 'A') { return I5A; }
339
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 24 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
24 if (attribute == 'B') { return I5B; }
340
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 24 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
24 if (attribute == 'C') { return I5C; }
341
2/4
✓ Branch 0 taken 24 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
24 if (attribute == 'X') { return I5X; }
342 break;
343 case I09: // IRNSS S (2492.028 MHz).
344 if (attribute == 'A') { return I9A; }
345 if (attribute == 'B') { return I9B; }
346 if (attribute == 'C') { return I9C; }
347 if (attribute == 'X') { return I9X; }
348 break;
349
350 60 case S01: // SBAS L1 (1575.42 MHz).
351
2/4
✓ Branch 0 taken 60 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 60 times.
✗ Branch 4 not taken.
60 if (attribute == 'C') { return S1C; }
352 break;
353 32 case S05: // SBAS L5 (1176.45 MHz).
354
3/4
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 24 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
32 if (attribute == 'I') { return S5I; }
355
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 24 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
24 if (attribute == 'Q') { return S5Q; }
356
2/4
✓ Branch 0 taken 24 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
24 if (attribute == 'X') { return S5X; }
357 break;
358
359 case Freq_None:
360 break;
361 }
362
363
0/2
✗ Branch 3 not taken.
✗ Branch 4 not taken.
3 LOG_WARN("Can't convert frequency '{}' and attribute '{}'. Unkown code.", freq, attribute);
364
365 return Code(Set());
366 }
367
368 const char* Code::GetCodeDescription(Code code)
369 {
370 if (code == G1C) { return "GPS L1 - C/A-code"; }
371 if (code == G1S) { return "GPS L1 - L1C-D (data)"; }
372 if (code == G1L) { return "GPS L1 - L1C-P (pilot)"; }
373 if (code == G1X) { return "GPS L1 - L1C-(D+P) (combined)"; }
374 if (code == G1P) { return "GPS L1 - P-code (unencrypted)"; }
375 if (code == G1W) { return "GPS L1 - Semicodeless P(Y) tracking (Z-tracking)"; }
376 if (code == G1Y) { return "GPS L1 - Y-code (with decryption)"; }
377 if (code == G1M) { return "GPS L1 - M-code"; }
378 if (code == G1N) { return "GPS L1 - codeless"; }
379 if (code == G2C) { return "GPS L2 - C/A-code"; }
380 if (code == G2D) { return "GPS L2 - Semi-codeless P(Y) tracking (L1 C/A + (P2-P1))"; }
381 if (code == G2S) { return "GPS L2 - L2C(M) (medium)"; }
382 if (code == G2L) { return "GPS L2 - L2C(L) (long)"; }
383 if (code == G2X) { return "GPS L2 - L2C(M+L) (combined)"; }
384 if (code == G2P) { return "GPS L2 - P-code (unencrypted)"; }
385 if (code == G2W) { return "GPS L2 - Semicodeless P(Y) tracking (Z-tracking)"; }
386 if (code == G2Y) { return "GPS L2 - Y-code (with decryption)"; }
387 if (code == G2M) { return "GPS L2 - M-code"; }
388 if (code == G2N) { return "GPS L2 - codeless"; }
389 if (code == G5I) { return "GPS L5 - Data"; }
390 if (code == G5Q) { return "GPS L5 - Pilot"; }
391 if (code == G5X) { return "GPS L5 - Combined"; }
392
393 if (code == E1A) { return "GAL E1 - PRS signal"; }
394 if (code == E1B) { return "GAL E1 - OS (data)"; }
395 if (code == E1C) { return "GAL E1 - OS (pilot)"; }
396 if (code == E1X) { return "GAL E1 - OS(B+C) (combined)"; }
397 if (code == E1Z) { return "GAL E1 - PRS + OS (data + pilot)"; }
398 if (code == E5I) { return "GAL E5a - Data"; }
399 if (code == E5Q) { return "GAL E5a - Pilot"; }
400 if (code == E5X) { return "GAL E5a - Combined"; }
401 if (code == E6A) { return "GAL E6 - PRS signal"; }
402 if (code == E6B) { return "GAL E6 - Data"; }
403 if (code == E6C) { return "GAL E6 - Pilot"; }
404 if (code == E6X) { return "GAL E6 - Combined (B+C)"; }
405 if (code == E6Z) { return "GAL E6 - PRS + OS (A+B+C)"; }
406 if (code == E7I) { return "GAL E5b - Data"; }
407 if (code == E7Q) { return "GAL E5b - Pilot"; }
408 if (code == E7X) { return "GAL E5b - Combined"; }
409 if (code == E8I) { return "GAL E5(a+b) - AltBOC (data)"; }
410 if (code == E8Q) { return "GAL E5(a+b) - AltBOC (pilot)"; }
411 if (code == E8X) { return "GAL E5(a+b) - AltBOC (combined)"; }
412
413 if (code == R1C) { return "GLO L1 - C/A-code"; }
414 if (code == R1P) { return "GLO L1 - P-code"; }
415 if (code == R2C) { return "GLO L2 - C/A-code"; }
416 if (code == R2P) { return "GLO L2 - P-code"; }
417 if (code == R3I) { return "GLO L3 - Data"; }
418 if (code == R3Q) { return "GLO L3 - Pilot"; }
419 if (code == R3X) { return "GLO L3 - Combined"; }
420 if (code == R4A) { return "GLO G1a - L1OCd (data)"; }
421 if (code == R4B) { return "GLO G1a - L1OCp (pilot)"; }
422 if (code == R4X) { return "GLO G1a - L1OCd+L1OCp (combined)"; }
423 if (code == R6A) { return "GLO G2a - L2CSI (data)"; }
424 if (code == R6B) { return "GLO G2a - L2OCp (pilot)"; }
425 if (code == R6X) { return "GLO G2a - L2CSI+L2OCp (combined)"; }
426
427 if (code == B1D) { return "BeiDou B1 - Data (D)"; }
428 if (code == B1P) { return "BeiDou B1 - Pilot(P)"; }
429 if (code == B1X) { return "BeiDou B1 - D+P"; }
430 if (code == B2I) { return "BeiDou B1-2 - B1I(OS)"; }
431 if (code == B2Q) { return "BeiDou B1-2 - B1Q"; }
432 if (code == B2X) { return "BeiDou B1-2 - B1I(OS), B1Q, combined"; }
433 if (code == B5D) { return "BeiDou B2a - Data (D)"; }
434 if (code == B5P) { return "BeiDou B2a - Pilot(P)"; }
435 if (code == B5X) { return "BeiDou B2a - D+P"; }
436 if (code == B6I) { return "BeiDou B3 - B3I"; }
437 if (code == B6Q) { return "BeiDou B3 - B3Q"; }
438 if (code == B6X) { return "BeiDou B3 - B3I, B3Q, combined"; }
439 if (code == B6A) { return "BeiDou B3 - B3A"; }
440 if (code == B7I) { return "BeiDou B2b (BDS-2) - B2I(OS)"; }
441 if (code == B7Q) { return "BeiDou B2b (BDS-2) - B2Q"; }
442 if (code == B7X) { return "BeiDou B2b (BDS-2) - B2I(OS), B2Q, combined"; }
443 if (code == B7D) { return "BeiDou B2b (BDS-3) - Data (D)"; }
444 if (code == B7P) { return "BeiDou B2b (BDS-3) - Pilot(P)"; }
445 if (code == B7Z) { return "BeiDou B2b (BDS-3) - D+P"; }
446 if (code == B8D) { return "BeiDou B2 (B2a+B2b) - Data (D)"; }
447 if (code == B8P) { return "BeiDou B2 (B2a+B2b) - Pilot(P)"; }
448 if (code == B8X) { return "BeiDou B2 (B2a+B2b) - D+P"; }
449
450 if (code == J1C) { return "QZSS L1 - C/A-code"; }
451 if (code == J1S) { return "QZSS L1 - L1C (data)"; }
452 if (code == J1L) { return "QZSS L1 - L1C (pilot)"; }
453 if (code == J1X) { return "QZSS L1 - L1C (combined)"; }
454 if (code == J1Z) { return "QZSS L1 - L1-SAIF signal"; }
455 if (code == J2S) { return "QZSS L2 - L2C-code (medium)"; }
456 if (code == J2L) { return "QZSS L2 - L2C-code (long)"; }
457 if (code == J2X) { return "QZSS L2 - L2C-code (combined)"; }
458 if (code == J5I) { return "QZSS L5 - Data"; }
459 if (code == J5Q) { return "QZSS L5 - Pilot"; }
460 if (code == J5X) { return "QZSS L5 - Combined"; }
461 if (code == J5D) { return "QZSS L5S - I"; }
462 if (code == J5P) { return "QZSS L5S - Q"; }
463 if (code == J5Z) { return "QZSS L5S - I+Q"; }
464 if (code == J6S) { return "QZSS L6 - L6D LEX signal (short)"; }
465 if (code == J6L) { return "QZSS L6 - L6P LEX signal (long)"; }
466 if (code == J6X) { return "QZSS L6 - L6(D+P) LEX signal (combined)"; }
467 if (code == J6E) { return "QZSS L6 - L6E"; }
468 if (code == J6Z) { return "QZSS L6 - L6(D+E)"; }
469
470 if (code == I5A) { return "IRNSS L5 - SPS Signal"; }
471 if (code == I5B) { return "IRNSS L5 - RS (data)"; }
472 if (code == I5C) { return "IRNSS L5 - RS (pilot)"; }
473 if (code == I5X) { return "IRNSS L5 - RS (combined)"; }
474 if (code == I9A) { return "IRNSS S - SPS signal"; }
475 if (code == I9B) { return "IRNSS S - RS (data)"; }
476 if (code == I9C) { return "IRNSS S - RS (pilot)"; }
477 if (code == I9X) { return "IRNSS S - RS (combined)"; }
478
479 if (code == S1C) { return "SBAS L1 - C/A-code"; }
480 if (code == S5I) { return "SBAS L5 - Data"; }
481 if (code == S5Q) { return "SBAS L5 - Pilot"; }
482 if (code == S5X) { return "SBAS L5 - Combined"; }
483
484 return "Unknown code.";
485 }
486
487 const char* Code::getDescription() const
488 {
489 return GetCodeDescription(*this);
490 }
491
492 6232235 Frequency Code::GetCodeFequency(Code code)
493 {
494
3/4
✓ Branch 1 taken 6226658 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 963853 times.
✓ Branch 4 taken 5262805 times.
6232235 if (code == G1C) { return G01; } // GPS L1 - C/A-code
495
3/4
✓ Branch 1 taken 5266107 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5716 times.
✓ Branch 4 taken 5260391 times.
5262805 if (code == G1S) { return G01; } // GPS L1 - L1C-D (data)
496
3/4
✓ Branch 1 taken 5260387 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 32961 times.
✓ Branch 4 taken 5227426 times.
5260391 if (code == G1L) { return G01; } // GPS L1 - L1C-P (pilot)
497
3/4
✓ Branch 1 taken 5227793 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 65448 times.
✓ Branch 4 taken 5162345 times.
5227426 if (code == G1X) { return G01; } // GPS L1 - L1C-(D+P) (combined)
498
3/4
✓ Branch 1 taken 5162232 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 127735 times.
✓ Branch 4 taken 5034497 times.
5162345 if (code == G1P) { return G01; } // GPS L1 - P-code (unencrypted)
499
3/4
✓ Branch 1 taken 5034881 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 31484 times.
✓ Branch 4 taken 5003397 times.
5034497 if (code == G1W) { return G01; } // GPS L1 - Semicodeless P(Y) tracking (Z-tracking)
500
3/4
✓ Branch 1 taken 5003520 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5716 times.
✓ Branch 4 taken 4997804 times.
5003397 if (code == G1Y) { return G01; } // GPS L1 - Y-code (with decryption)
501
3/4
✓ Branch 1 taken 4997867 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5716 times.
✓ Branch 4 taken 4992151 times.
4997804 if (code == G1M) { return G01; } // GPS L1 - M-code
502
3/4
✓ Branch 1 taken 4992096 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5716 times.
✓ Branch 4 taken 4986380 times.
4992151 if (code == G1N) { return G01; } // GPS L1 - codeless
503
3/4
✓ Branch 1 taken 4986350 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 69790 times.
✓ Branch 4 taken 4916560 times.
4986380 if (code == G2C) { return G02; } // GPS L2 - C/A-code
504
3/4
✓ Branch 1 taken 4916630 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4911314 times.
4916560 if (code == G2D) { return G02; } // GPS L2 - Semi-codeless P(Y) tracking (L1 C/A + (P2-P1))
505
3/4
✓ Branch 1 taken 4911294 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4905978 times.
4911314 if (code == G2S) { return G02; } // GPS L2 - L2C(M) (medium)
506
3/4
✓ Branch 1 taken 4905818 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 36171 times.
✓ Branch 4 taken 4869647 times.
4905978 if (code == G2L) { return G02; } // GPS L2 - L2C(L) (long)
507
3/4
✓ Branch 1 taken 4869602 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 411516 times.
✓ Branch 4 taken 4458086 times.
4869647 if (code == G2X) { return G02; } // GPS L2 - L2C(M+L) (combined)
508
3/4
✓ Branch 1 taken 4458990 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 131130 times.
✓ Branch 4 taken 4327860 times.
4458086 if (code == G2P) { return G02; } // GPS L2 - P-code (unencrypted)
509
3/4
✓ Branch 1 taken 4328022 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 36220 times.
✓ Branch 4 taken 4291802 times.
4327860 if (code == G2W) { return G02; } // GPS L2 - Semicodeless P(Y) tracking (Z-tracking)
510
3/4
✓ Branch 1 taken 4291820 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4286504 times.
4291802 if (code == G2Y) { return G02; } // GPS L2 - Y-code (with decryption)
511
3/4
✓ Branch 1 taken 4286559 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4281243 times.
4286504 if (code == G2M) { return G02; } // GPS L2 - M-code
512
3/4
✓ Branch 1 taken 4281231 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4275915 times.
4281243 if (code == G2N) { return G02; } // GPS L2 - codeless
513
3/4
✓ Branch 1 taken 4275926 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 72286 times.
✓ Branch 4 taken 4203640 times.
4275915 if (code == G5I) { return G05; } // GPS L5 - Data
514
3/4
✓ Branch 1 taken 4203606 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 21590 times.
✓ Branch 4 taken 4182016 times.
4203640 if (code == G5Q) { return G05; } // GPS L5 - Pilot
515
3/4
✓ Branch 1 taken 4182096 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 243133 times.
✓ Branch 4 taken 3938963 times.
4182016 if (code == G5X) { return G05; } // GPS L5 - Combined
516
517
3/4
✓ Branch 1 taken 3939358 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 3933254 times.
3938963 if (code == E1A) { return E01; } // GAL E1 - PRS signal
518
3/4
✓ Branch 1 taken 3933305 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23184 times.
✓ Branch 4 taken 3910121 times.
3933254 if (code == E1B) { return E01; } // GAL E1 - OS (data)
519
3/4
✓ Branch 1 taken 3909995 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 63946 times.
✓ Branch 4 taken 3846049 times.
3910121 if (code == E1C) { return E01; } // GAL E1 - OS (pilot)
520
3/4
✓ Branch 1 taken 3846100 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 693614 times.
✓ Branch 4 taken 3152486 times.
3846049 if (code == E1X) { return E01; } // GAL E1 - OS(B+C) (combined)
521
3/4
✓ Branch 1 taken 3152912 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 3146808 times.
3152486 if (code == E1Z) { return E01; } // GAL E1 - PRS + OS (data + pilot)
522
3/4
✓ Branch 1 taken 3146832 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23984 times.
✓ Branch 4 taken 3122848 times.
3146808 if (code == E5I) { return E05; } // GAL E5a - Data
523
3/4
✓ Branch 1 taken 3122763 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 49005 times.
✓ Branch 4 taken 3073758 times.
3122848 if (code == E5Q) { return E05; } // GAL E5a - Pilot
524
3/4
✓ Branch 1 taken 3073825 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 200102 times.
✓ Branch 4 taken 2873723 times.
3073758 if (code == E5X) { return E05; } // GAL E5a - Combined
525
3/4
✓ Branch 1 taken 2873661 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 2867557 times.
2873723 if (code == E6A) { return E06; } // GAL E6 - PRS signal
526
3/4
✓ Branch 1 taken 2867637 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 2861533 times.
2867557 if (code == E6B) { return E06; } // GAL E6 - Data
527
3/4
✓ Branch 1 taken 2861483 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6123 times.
✓ Branch 4 taken 2855360 times.
2861533 if (code == E6C) { return E06; } // GAL E6 - Pilot
528
3/4
✓ Branch 1 taken 2855387 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6132 times.
✓ Branch 4 taken 2849255 times.
2855360 if (code == E6X) { return E06; } // GAL E6 - Combined (B+C)
529
3/4
✓ Branch 1 taken 2849259 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 2843155 times.
2849255 if (code == E6Z) { return E06; } // GAL E6 - PRS + OS (A+B+C)
530
3/4
✓ Branch 1 taken 2843147 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23984 times.
✓ Branch 4 taken 2819163 times.
2843155 if (code == E7I) { return E07; } // GAL E5b - Data
531
3/4
✓ Branch 1 taken 2819102 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 49007 times.
✓ Branch 4 taken 2770095 times.
2819163 if (code == E7Q) { return E07; } // GAL E5b - Pilot
532
3/4
✓ Branch 1 taken 2770178 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 385092 times.
✓ Branch 4 taken 2385086 times.
2770095 if (code == E7X) { return E07; } // GAL E5b - Combined
533
3/4
✓ Branch 1 taken 2385309 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23984 times.
✓ Branch 4 taken 2361325 times.
2385086 if (code == E8I) { return E08; } // GAL E5(a+b) - AltBOC (data)
534
3/4
✓ Branch 1 taken 2361252 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 49005 times.
✓ Branch 4 taken 2312247 times.
2361325 if (code == E8Q) { return E08; } // GAL E5(a+b) - AltBOC (pilot)
535
3/4
✓ Branch 1 taken 2312213 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6932 times.
✓ Branch 4 taken 2305281 times.
2312247 if (code == E8X) { return E08; } // GAL E5(a+b) - AltBOC (combined)
536
537
3/4
✓ Branch 1 taken 2305286 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 480508 times.
✓ Branch 4 taken 1824778 times.
2305281 if (code == R1C) { return R01; } // GLO L1 - C/A-code
538
3/4
✓ Branch 1 taken 1825026 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 27760 times.
✓ Branch 4 taken 1797266 times.
1824778 if (code == R1P) { return R01; } // GLO L1 - P-code
539
3/4
✓ Branch 1 taken 1797283 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 418928 times.
✓ Branch 4 taken 1378355 times.
1797266 if (code == R2C) { return R02; } // GLO L2 - C/A-code
540
3/4
✓ Branch 1 taken 1378437 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 27741 times.
✓ Branch 4 taken 1350696 times.
1378355 if (code == R2P) { return R02; } // GLO L2 - P-code
541
3/4
✓ Branch 1 taken 1350697 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1346217 times.
1350696 if (code == R3I) { return R03; } // GLO L3 - Data
542
3/4
✓ Branch 1 taken 1346249 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4499 times.
✓ Branch 4 taken 1341750 times.
1346217 if (code == R3Q) { return R03; } // GLO L3 - Pilot
543
3/4
✓ Branch 1 taken 1341744 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4508 times.
✓ Branch 4 taken 1337236 times.
1341750 if (code == R3X) { return R03; } // GLO L3 - Combined
544
3/4
✓ Branch 1 taken 1337220 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1332740 times.
1337236 if (code == R4A) { return R04; } // GLO G1a - L1OCd (data)
545
3/4
✓ Branch 1 taken 1332756 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1328276 times.
1332740 if (code == R4B) { return R04; } // GLO G1a - L1OCp (pilot)
546
3/4
✓ Branch 1 taken 1328251 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1323771 times.
1328276 if (code == R4X) { return R04; } // GLO G1a - L1OCd+L1OCp (combined)
547
3/4
✓ Branch 1 taken 1323774 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1319294 times.
1323771 if (code == R6A) { return R06; } // GLO G2a - L2CSI (data)
548
3/4
✓ Branch 1 taken 1319296 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1314816 times.
1319294 if (code == R6B) { return R06; } // GLO G2a - L2OCp (pilot)
549
3/4
✓ Branch 1 taken 1314818 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1310338 times.
1314816 if (code == R6X) { return R06; } // GLO G2a - L2CSI+L2OCp (combined)
550
551
3/4
✓ Branch 1 taken 1310346 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 1302230 times.
1310338 if (code == B1D) { return B01; } // BeiDou B1 - Data (D)
552
3/4
✓ Branch 1 taken 1302237 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 1294121 times.
1302230 if (code == B1P) { return B01; } // BeiDou B1 - Pilot(P)
553
3/4
✓ Branch 1 taken 1294095 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 107778 times.
✓ Branch 4 taken 1186317 times.
1294121 if (code == B1X) { return B01; } // BeiDou B1 - D+P
554
3/4
✓ Branch 1 taken 1186410 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 336621 times.
✓ Branch 4 taken 849789 times.
1186317 if (code == B2I) { return B02; } // BeiDou B1-2 - B1I(OS)
555
3/4
✓ Branch 1 taken 849782 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 841666 times.
849789 if (code == B2Q) { return B02; } // BeiDou B1-2 - B1Q
556
3/4
✓ Branch 1 taken 841662 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 82730 times.
✓ Branch 4 taken 758932 times.
841666 if (code == B2X) { return B02; } // BeiDou B1-2 - B1I(OS), B1Q, combined
557
3/4
✓ Branch 1 taken 758978 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 750862 times.
758932 if (code == B5D) { return B05; } // BeiDou B2a - Data (D)
558
3/4
✓ Branch 1 taken 750865 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 742749 times.
750862 if (code == B5P) { return B05; } // BeiDou B2a - Pilot(P)
559
3/4
✓ Branch 1 taken 742721 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 107772 times.
✓ Branch 4 taken 634949 times.
742749 if (code == B5X) { return B05; } // BeiDou B2a - D+P
560
3/4
✓ Branch 1 taken 635000 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 42908 times.
✓ Branch 4 taken 592092 times.
634949 if (code == B6I) { return B06; } // BeiDou B3 - B3I
561
3/4
✓ Branch 1 taken 592097 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7716 times.
✓ Branch 4 taken 584381 times.
592092 if (code == B6Q) { return B06; } // BeiDou B3 - B3Q
562
3/4
✓ Branch 1 taken 584386 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7716 times.
✓ Branch 4 taken 576670 times.
584381 if (code == B6X) { return B06; } // BeiDou B3 - B3I, B3Q, combined
563
3/4
✓ Branch 1 taken 576670 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7716 times.
✓ Branch 4 taken 568954 times.
576670 if (code == B6A) { return B06; } // BeiDou B3 - B3A
564
3/4
✓ Branch 1 taken 568948 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 42295 times.
✓ Branch 4 taken 526653 times.
568954 if (code == B7I) { return B07; } // BeiDou B2b (BDS-2) - B2I(OS)
565
3/4
✓ Branch 1 taken 526655 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6916 times.
✓ Branch 4 taken 519739 times.
526653 if (code == B7Q) { return B07; } // BeiDou B2b (BDS-2) - B2Q
566
3/4
✓ Branch 1 taken 519731 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 81530 times.
✓ Branch 4 taken 438201 times.
519739 if (code == B7X) { return B07; } // BeiDou B2b (BDS-2) - B2I(OS), B2Q, combined
567
3/4
✓ Branch 1 taken 438226 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 40966 times.
✓ Branch 4 taken 397260 times.
438201 if (code == B7D) { return B07; } // BeiDou B2b (BDS-3) - Data (D)
568
3/4
✓ Branch 1 taken 397258 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6916 times.
✓ Branch 4 taken 390342 times.
397260 if (code == B7P) { return B07; } // BeiDou B2b (BDS-3) - Pilot(P)
569
3/4
✓ Branch 1 taken 390343 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6916 times.
✓ Branch 4 taken 383427 times.
390342 if (code == B7Z) { return B07; } // BeiDou B2b (BDS-3) - D+P
570
3/4
✓ Branch 1 taken 383428 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 375312 times.
383427 if (code == B8D) { return B08; } // BeiDou B2 (B2a+B2b) - Data (D)
571
3/4
✓ Branch 1 taken 375312 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 367196 times.
375312 if (code == B8P) { return B08; } // BeiDou B2 (B2a+B2b) - Pilot(P)
572
3/4
✓ Branch 1 taken 367195 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9164 times.
✓ Branch 4 taken 358031 times.
367196 if (code == B8X) { return B08; } // BeiDou B2 (B2a+B2b) - D+P
573
574
3/4
✓ Branch 1 taken 358024 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 32423 times.
✓ Branch 4 taken 325601 times.
358031 if (code == J1C) { return J01; } // QZSS L1 - C/A-code
575
3/4
✓ Branch 1 taken 325604 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 319500 times.
325601 if (code == J1S) { return J01; } // QZSS L1 - L1C (data)
576
3/4
✓ Branch 1 taken 319504 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 313400 times.
319500 if (code == J1L) { return J01; } // QZSS L1 - L1C (pilot)
577
3/4
✓ Branch 1 taken 313396 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 32404 times.
✓ Branch 4 taken 280992 times.
313400 if (code == J1X) { return J01; } // QZSS L1 - L1C (combined)
578
3/4
✓ Branch 1 taken 280997 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 32404 times.
✓ Branch 4 taken 248593 times.
280992 if (code == J1Z) { return J01; } // QZSS L1 - L1-SAIF signal
579
3/4
✓ Branch 1 taken 248595 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6904 times.
✓ Branch 4 taken 241691 times.
248593 if (code == J2S) { return J02; } // QZSS L2 - L2C-code (medium)
580
3/4
✓ Branch 1 taken 241689 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6923 times.
✓ Branch 4 taken 234766 times.
241691 if (code == J2L) { return J02; } // QZSS L2 - L2C-code (long)
581
3/4
✓ Branch 1 taken 234770 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 20524 times.
✓ Branch 4 taken 214246 times.
234766 if (code == J2X) { return J02; } // QZSS L2 - L2C-code (combined)
582
3/4
✓ Branch 1 taken 214245 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 19324 times.
✓ Branch 4 taken 194921 times.
214246 if (code == J5I) { return J05; } // QZSS L5 - Data
583
3/4
✓ Branch 1 taken 194921 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5723 times.
✓ Branch 4 taken 189198 times.
194921 if (code == J5Q) { return J05; } // QZSS L5 - Pilot
584
3/4
✓ Branch 1 taken 189197 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 18384 times.
✓ Branch 4 taken 170813 times.
189198 if (code == J5X) { return J05; } // QZSS L5 - Combined
585
3/4
✓ Branch 1 taken 170813 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5704 times.
✓ Branch 4 taken 165109 times.
170813 if (code == J5D) { return J05; } // QZSS L5S - I
586
3/4
✓ Branch 1 taken 165108 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5704 times.
✓ Branch 4 taken 159404 times.
165109 if (code == J5P) { return J05; } // QZSS L5S - Q
587
3/4
✓ Branch 1 taken 159406 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 18384 times.
✓ Branch 4 taken 141022 times.
159404 if (code == J5Z) { return J05; } // QZSS L5S - I+Q
588
3/4
✓ Branch 1 taken 141024 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 134920 times.
141022 if (code == J6S) { return J06; } // QZSS L6 - L6D LEX signal (short)
589
3/4
✓ Branch 1 taken 134920 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 128816 times.
134920 if (code == J6L) { return J06; } // QZSS L6 - L6P LEX signal (long)
590
3/4
✓ Branch 1 taken 128816 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 122712 times.
128816 if (code == J6X) { return J06; } // QZSS L6 - L6(D+P) LEX signal (combined)
591
3/4
✓ Branch 1 taken 122712 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 116608 times.
122712 if (code == J6E) { return J06; } // QZSS L6 - L6E
592
3/4
✓ Branch 1 taken 116608 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 110504 times.
116608 if (code == J6Z) { return J06; } // QZSS L6 - L6(D+E)
593
594
3/4
✓ Branch 1 taken 110504 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2079 times.
✓ Branch 4 taken 108425 times.
110504 if (code == I5A) { return I05; } // IRNSS L5 - SPS Signal
595
3/4
✓ Branch 1 taken 108425 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 106365 times.
108425 if (code == I5B) { return I05; } // IRNSS L5 - RS (data)
596
3/4
✓ Branch 1 taken 106365 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 104305 times.
106365 if (code == I5C) { return I05; } // IRNSS L5 - RS (pilot)
597
3/4
✓ Branch 1 taken 104305 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 15864 times.
✓ Branch 4 taken 88441 times.
104305 if (code == I5X) { return I05; } // IRNSS L5 - RS (combined)
598
3/4
✓ Branch 1 taken 88441 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 86381 times.
88441 if (code == I9A) { return I09; } // IRNSS S - SPS signal
599
3/4
✓ Branch 1 taken 86381 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 84321 times.
86381 if (code == I9B) { return I09; } // IRNSS S - RS (data)
600
3/4
✓ Branch 1 taken 84321 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 82261 times.
84321 if (code == I9C) { return I09; } // IRNSS S - RS (pilot)
601
3/4
✓ Branch 1 taken 82261 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 80201 times.
82261 if (code == I9X) { return I09; } // IRNSS S - RS (combined)
602
603
3/4
✓ Branch 1 taken 80201 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 39689 times.
✓ Branch 4 taken 40512 times.
80201 if (code == S1C) { return S01; } // SBAS L1 - C/A-code
604
3/4
✓ Branch 1 taken 40512 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 863 times.
✓ Branch 4 taken 39649 times.
40512 if (code == S5I) { return S05; } // SBAS L5 - Data
605
3/4
✓ Branch 1 taken 39649 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 844 times.
✓ Branch 4 taken 38805 times.
39649 if (code == S5Q) { return S05; } // SBAS L5 - Pilot
606
2/4
✓ Branch 1 taken 38805 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 38805 times.
✗ Branch 4 not taken.
38805 if (code == S5X) { return S05; } // SBAS L5 - Combined
607
608 return Freq_None;
609 }
610
611 6232296 Frequency Code::getFrequency() const
612 {
613 6232296 return GetCodeFequency(*this);
614 }
615
616 bool Code::IsCodeCombined(Code first, Code second)
617 {
618 return ((first & Code_G1S_G1L_G1X) && (second & Code_G1S_G1L_G1X))
619 || ((first & Code_G2S_G2L_G2X) && (second & Code_G2S_G2L_G2X))
620 || ((first & Code_G5I_G5Q_G5X) && (second & Code_G5I_G5Q_G5X))
621 || ((first & Code_E1B_E1C_E1X) && (second & Code_E1B_E1C_E1X))
622 || ((first & Code_E5I_E5Q_E5X) && (second & Code_E5I_E5Q_E5X))
623 || ((first & Code_E6B_E6C_E6X) && (second & Code_E6B_E6C_E6X))
624 || ((first & Code_E7I_E7Q_E7X) && (second & Code_E7I_E7Q_E7X))
625 || ((first & Code_E8I_E8Q_E8X) && (second & Code_E8I_E8Q_E8X))
626 || ((first & Code_R3I_R3Q_R3X) && (second & Code_R3I_R3Q_R3X))
627 || ((first & Code_R4A_R4B_R4X) && (second & Code_R4A_R4B_R4X))
628 || ((first & Code_R6A_R6B_R6X) && (second & Code_R6A_R6B_R6X))
629 || ((first & Code_B1D_B1P_B1X) && (second & Code_B1D_B1P_B1X))
630 || ((first & Code_B2I_B2Q_B2X) && (second & Code_B2I_B2Q_B2X))
631 || ((first & Code_B5D_B5P_B5X) && (second & Code_B5D_B5P_B5X))
632 || ((first & Code_B6I_B6Q_B6X) && (second & Code_B6I_B6Q_B6X))
633 || ((first & Code_B7I_B7Q_B7X) && (second & Code_B7I_B7Q_B7X))
634 || ((first & Code_B7D_B7P_B7Z) && (second & Code_B7D_B7P_B7Z))
635 || ((first & Code_B8D_B8P_B8X) && (second & Code_B8D_B8P_B8X))
636 || ((first & Code_J1S_J1L_J1X) && (second & Code_J1S_J1L_J1X))
637 || ((first & Code_J2S_J2L_J2X) && (second & Code_J2S_J2L_J2X))
638 || ((first & Code_J5I_J5Q_J5X) && (second & Code_J5I_J5Q_J5X))
639 || ((first & Code_J5D_J5P_J5Z) && (second & Code_J5D_J5P_J5Z))
640 || ((first & Code_J6S_J6L_J6X) && (second & Code_J6S_J6L_J6X))
641 || ((first & Code_I5B_I5C_I5X) && (second & Code_I5B_I5C_I5X))
642 || ((first & Code_I9B_I9C_I9X) && (second & Code_I9B_I9C_I9X))
643 || ((first & Code_S5I_S5Q_S5X) && (second & Code_S5I_S5Q_S5X));
644 }
645
646 2 std::vector<Code> Code::GetAll()
647 {
648 2 std::vector<Code> codes;
649
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 codes.reserve(COUNT);
650
2/2
✓ Branch 0 taken 214 times.
✓ Branch 1 taken 2 times.
216 for (size_t i = 1; i < static_cast<size_t>(COUNT); i++)
651 {
652
1/2
✓ Branch 1 taken 214 times.
✗ Branch 2 not taken.
214 codes.emplace_back(static_cast<Enum>(i));
653 }
654 2 return codes;
655 }
656
657 2776405 Code::Enum Code::GetCodeEnumValue(Code code)
658 {
659
1/2
✓ Branch 0 taken 77132263 times.
✗ Branch 1 not taken.
77132263 for (size_t i = 0; i < static_cast<size_t>(COUNT); i++)
660 {
661
3/4
✓ Branch 1 taken 77132263 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2776405 times.
✓ Branch 4 taken 74355858 times.
77132263 if (static_cast<Enum>(i) == code) { return static_cast<Enum>(i); }
662 }
663 return Code::None;
664 }
665
666 2776405 Code::Enum Code::getEnumValue() const
667 {
668 2776405 return GetCodeEnumValue(*this);
669 }
670
671 // #########################################################################################################################################
672
673 407638 Code operator|(const Code& lhs, const Code& rhs)
674 {
675 407638 return Code(lhs.value | rhs.value);
676 }
677 407550 Code operator|(const Code& lhs, const Code::Enum& rhs)
678 {
679
1/2
✓ Branch 1 taken 407550 times.
✗ Branch 2 not taken.
407550 return Code(lhs.value | Code(rhs).value);
680 }
681 Code operator|(const Code::Enum& lhs, const Code& rhs)
682 {
683 return Code(Code::Set().set(lhs, true) | rhs.value);
684 }
685
686 88 Code& Code::operator|=(const Code& rhs)
687 {
688 88 *this = *this | rhs;
689 88 return *this;
690 }
691 Code& Code::operator|=(const Enum& rhs)
692 {
693 *this = *this | rhs;
694 return *this;
695 }
696
697 100956 Code operator&(const Code& lhs, const Code& rhs)
698 {
699 100956 return Code(lhs.value & rhs.value);
700 }
701 58778947 Code operator&(const Code& lhs, const Code::Enum& rhs)
702 {
703
1/2
✓ Branch 2 taken 58778623 times.
✗ Branch 3 not taken.
58778947 return Code(lhs.value & Code::Set().set(rhs, true));
704 }
705 Code operator&(const Code::Enum& lhs, const Code& rhs)
706 {
707 return Code(Code::Set().set(lhs, true) & rhs.value);
708 }
709
710 407550 Code operator|(const Code::Enum& lhs, const Code::Enum& rhs)
711 {
712
2/4
✓ Branch 1 taken 407550 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 407550 times.
✗ Branch 5 not taken.
407550 return Code(lhs) | Code(rhs);
713 }
714 Code operator&(const Code::Enum& lhs, const Code::Enum& rhs)
715 {
716 return Code(lhs) & Code(rhs);
717 }
718
719 Code& Code::operator&=(const Code& rhs)
720 {
721 *this = *this & rhs;
722 return *this;
723 }
724 Code& Code::operator&=(const Enum& rhs)
725 {
726 *this = *this & rhs;
727 return *this;
728 }
729
730 62700 Code Code::operator~() const
731 {
732 62700 return Code(~value);
733 }
734
735 // #########################################################################################################################################
736
737 951434904 bool operator==(const Code& lhs, const Code& rhs)
738 {
739 951434904 return lhs.value == rhs.value;
740 }
741
742 200573839 bool operator==(const Code& lhs, const Code::Enum& rhs)
743 {
744
1/2
✓ Branch 1 taken 200544280 times.
✗ Branch 2 not taken.
200573839 return lhs.value == Code(rhs).value;
745 }
746
747 77132263 bool operator==(const Code::Enum& lhs, const Code& rhs)
748 {
749
1/2
✓ Branch 1 taken 77132263 times.
✗ Branch 2 not taken.
77132263 return Code(lhs).value == rhs.value;
750 }
751
752 bool operator!=(const Code& lhs, const Code& rhs)
753 {
754 return !(lhs == rhs);
755 }
756
757 bool operator!=(const Code& lhs, const Code::Enum& rhs)
758 {
759 return !(lhs == rhs);
760 }
761
762 bool operator!=(const Code::Enum& lhs, const Code& rhs)
763 {
764 return !(lhs == rhs);
765 }
766
767 bool operator<(const Code& lhs, const Code& rhs)
768 {
769 return lhs.getEnumValue() < rhs.getEnumValue();
770 }
771
772 bool operator<(const Code& lhs, const Code::Enum& rhs)
773 {
774 return lhs.getEnumValue() < rhs;
775 }
776
777 bool operator<(const Code::Enum& lhs, const Code& rhs)
778 {
779 return lhs < rhs.getEnumValue();
780 }
781
782 // #########################################################################################################################################
783
784 Code operator&(Code lhs, SatelliteSystem_ rhs)
785 {
786 if (rhs == SatSys_None)
787 {
788 return Code(Code::Set());
789 }
790 if (rhs & GPS)
791 {
792 for (int i = Code::_GPS_START; i <= Code::_GPS_END; i++) { lhs &= Code(Code::Enum(i)); }
793 }
794 if (rhs & GAL)
795 {
796 for (int i = Code::_GAL_START; i <= Code::_GAL_END; i++) { lhs &= Code(Code::Enum(i)); }
797 }
798 if (rhs & GLO)
799 {
800 for (int i = Code::_GLO_START; i <= Code::_GLO_END; i++) { lhs &= Code(Code::Enum(i)); }
801 }
802 if (rhs & BDS)
803 {
804 for (int i = Code::_BDS_START; i <= Code::_BDS_END; i++) { lhs &= Code(Code::Enum(i)); }
805 }
806 if (rhs & QZSS)
807 {
808 for (int i = Code::_QZSS_START; i <= Code::_QZSS_END; i++) { lhs &= Code(Code::Enum(i)); }
809 }
810 if (rhs & IRNSS)
811 {
812 for (int i = Code::_IRNSS_START; i <= Code::_IRNSS_END; i++) { lhs &= Code(Code::Enum(i)); }
813 }
814 if (rhs & SBAS)
815 {
816 for (int i = Code::_SBAS_START; i <= Code::_SBAS_END; i++) { lhs &= Code(Code::Enum(i)); }
817 }
818
819 return lhs;
820 }
821 Code operator&(SatelliteSystem_ lhs, Code rhs)
822 {
823 return rhs & lhs;
824 }
825 Code& Code::operator&=(const SatelliteSystem_& rhs)
826 {
827 *this = *this & rhs;
828 return *this;
829 }
830 Code operator&(Code lhs, SatelliteSystem rhs)
831 {
832 return lhs & SatelliteSystem_(rhs);
833 }
834 Code operator&(SatelliteSystem lhs, Code rhs)
835 {
836 return SatelliteSystem_(lhs) & rhs;
837 }
838 Code& Code::operator&=(const SatelliteSystem& rhs)
839 {
840 *this = *this & rhs;
841 return *this;
842 }
843
844 Code operator|(Code lhs, SatelliteSystem_ rhs)
845 {
846 if (rhs == SatSys_None)
847 {
848 return lhs;
849 }
850 if (rhs & GPS)
851 {
852 for (int i = Code::_GPS_START; i <= Code::_GPS_END; i++) { lhs |= Code(Code::Enum(i)); }
853 }
854 if (rhs & GAL)
855 {
856 for (int i = Code::_GAL_START; i <= Code::_GAL_END; i++) { lhs |= Code(Code::Enum(i)); }
857 }
858 if (rhs & GLO)
859 {
860 for (int i = Code::_GLO_START; i <= Code::_GLO_END; i++) { lhs |= Code(Code::Enum(i)); }
861 }
862 if (rhs & BDS)
863 {
864 for (int i = Code::_BDS_START; i <= Code::_BDS_END; i++) { lhs |= Code(Code::Enum(i)); }
865 }
866 if (rhs & QZSS)
867 {
868 for (int i = Code::_QZSS_START; i <= Code::_QZSS_END; i++) { lhs |= Code(Code::Enum(i)); }
869 }
870 if (rhs & IRNSS)
871 {
872 for (int i = Code::_IRNSS_START; i <= Code::_IRNSS_END; i++) { lhs |= Code(Code::Enum(i)); }
873 }
874 if (rhs & SBAS)
875 {
876 for (int i = Code::_SBAS_START; i <= Code::_SBAS_END; i++) { lhs |= Code(Code::Enum(i)); }
877 }
878
879 return lhs;
880 }
881 Code operator|(SatelliteSystem_ lhs, Code rhs)
882 {
883 return rhs | lhs;
884 }
885 Code& Code::operator|=(const SatelliteSystem_& rhs)
886 {
887 *this = *this | rhs;
888 return *this;
889 }
890 Code operator|(Code lhs, SatelliteSystem rhs)
891 {
892 return lhs | SatelliteSystem_(rhs);
893 }
894 Code operator|(SatelliteSystem lhs, Code rhs)
895 {
896 return SatelliteSystem_(lhs) | rhs;
897 }
898 Code& Code::operator|=(const SatelliteSystem& rhs)
899 {
900 *this = *this | rhs;
901 return *this;
902 }
903
904 // #########################################################################################################################################
905
906 Code operator&(Code lhs, Frequency_ rhs)
907 {
908 LOG_DATA("Before ({}) & ({})", Frequency(rhs), lhs);
909 if (rhs == Freq_None)
910 {
911 return Code(Code::Set());
912 }
913 if (!(rhs & Frequency_::G01))
914 {
915 for (int i = Code::_G01_START; i <= Code::_G01_END; i++) { lhs &= ~Code(Code::Enum(i)); }
916 }
917 if (!(rhs & Frequency_::G02))
918 {
919 for (int i = Code::_G02_START; i <= Code::_G02_END; i++) { lhs &= ~Code(Code::Enum(i)); }
920 }
921 if (!(rhs & Frequency_::G05))
922 {
923 for (int i = Code::_G05_START; i <= Code::_G05_END; i++) { lhs &= ~Code(Code::Enum(i)); }
924 }
925 if (!(rhs & Frequency_::E01))
926 {
927 for (int i = Code::_E01_START; i <= Code::_E01_END; i++) { lhs &= ~Code(Code::Enum(i)); }
928 }
929 if (!(rhs & Frequency_::E05))
930 {
931 for (int i = Code::_E05_START; i <= Code::_E05_END; i++) { lhs &= ~Code(Code::Enum(i)); }
932 }
933 if (!(rhs & Frequency_::E06))
934 {
935 for (int i = Code::_E06_START; i <= Code::_E06_END; i++) { lhs &= ~Code(Code::Enum(i)); }
936 }
937 if (!(rhs & Frequency_::E07))
938 {
939 for (int i = Code::_E07_START; i <= Code::_E07_END; i++) { lhs &= ~Code(Code::Enum(i)); }
940 }
941 if (!(rhs & Frequency_::E08))
942 {
943 for (int i = Code::_E08_START; i <= Code::_E08_END; i++) { lhs &= ~Code(Code::Enum(i)); }
944 }
945 if (!((rhs & Frequency_::R01) || (rhs & Frequency_::R04)))
946 {
947 for (int i = Code::_R01_START; i <= Code::_R01_END; i++) { lhs &= ~Code(Code::Enum(i)); }
948 }
949 if (!((rhs & Frequency_::R02) || (rhs & Frequency_::R06)))
950 {
951 for (int i = Code::_R02_START; i <= Code::_R02_END; i++) { lhs &= ~Code(Code::Enum(i)); }
952 }
953 if (!(rhs & Frequency_::R03))
954 {
955 for (int i = Code::_R03_START; i <= Code::_R03_END; i++) { lhs &= ~Code(Code::Enum(i)); }
956 }
957 if (!(rhs & Frequency_::R04))
958 {
959 for (int i = Code::_R04_START; i <= Code::_R04_END; i++) { lhs &= ~Code(Code::Enum(i)); }
960 }
961 if (!(rhs & Frequency_::R06))
962 {
963 for (int i = Code::_R06_START; i <= Code::_R06_END; i++) { lhs &= ~Code(Code::Enum(i)); }
964 }
965 if (!(rhs & Frequency_::B01))
966 {
967 for (int i = Code::_B01_START; i <= Code::_B01_END; i++) { lhs &= ~Code(Code::Enum(i)); }
968 }
969 if (!(rhs & Frequency_::B02))
970 {
971 for (int i = Code::_B02_START; i <= Code::_B02_END; i++) { lhs &= ~Code(Code::Enum(i)); }
972 }
973 if (!(rhs & Frequency_::B05))
974 {
975 for (int i = Code::_B05_START; i <= Code::_B05_END; i++) { lhs &= ~Code(Code::Enum(i)); }
976 }
977 if (!(rhs & Frequency_::B06))
978 {
979 for (int i = Code::_B06_START; i <= Code::_B06_END; i++) { lhs &= ~Code(Code::Enum(i)); }
980 }
981 if (!(rhs & Frequency_::B07))
982 {
983 for (int i = Code::_B07_START; i <= Code::_B07_END; i++) { lhs &= ~Code(Code::Enum(i)); }
984 }
985 if (!(rhs & Frequency_::B08))
986 {
987 for (int i = Code::_B08_START; i <= Code::_B08_END; i++) { lhs &= ~Code(Code::Enum(i)); }
988 }
989 if (!(rhs & Frequency_::J01))
990 {
991 for (int i = Code::_J01_START; i <= Code::_J01_END; i++) { lhs &= ~Code(Code::Enum(i)); }
992 }
993 if (!(rhs & Frequency_::J02))
994 {
995 for (int i = Code::_J02_START; i <= Code::_J02_END; i++) { lhs &= ~Code(Code::Enum(i)); }
996 }
997 if (!(rhs & Frequency_::J05))
998 {
999 for (int i = Code::_J05_START; i <= Code::_J05_END; i++) { lhs &= ~Code(Code::Enum(i)); }
1000 }
1001 if (!(rhs & Frequency_::J06))
1002 {
1003 for (int i = Code::_J06_START; i <= Code::_J06_END; i++) { lhs &= ~Code(Code::Enum(i)); }
1004 }
1005 if (!(rhs & Frequency_::I05))
1006 {
1007 for (int i = Code::_I05_START; i <= Code::_I05_END; i++) { lhs &= ~Code(Code::Enum(i)); }
1008 }
1009 if (!(rhs & Frequency_::I09))
1010 {
1011 for (int i = Code::_I09_START; i <= Code::_I09_END; i++) { lhs &= ~Code(Code::Enum(i)); }
1012 }
1013 if (!(rhs & Frequency_::S01))
1014 {
1015 for (int i = Code::_S01_START; i <= Code::_S01_END; i++) { lhs &= ~Code(Code::Enum(i)); }
1016 }
1017 if (!(rhs & Frequency_::S05))
1018 {
1019 for (int i = Code::_S05_START; i <= Code::_S05_END; i++) { lhs &= ~Code(Code::Enum(i)); }
1020 }
1021 LOG_DATA("After ({}) & ({})", Frequency(rhs), lhs);
1022
1023 return lhs;
1024 }
1025 Code operator&(Frequency_ lhs, Code rhs)
1026 {
1027 return rhs & lhs;
1028 }
1029 Code& Code::operator&=(const Frequency_& rhs)
1030 {
1031 *this = *this & rhs;
1032 return *this;
1033 }
1034 Code operator&(Code lhs, Frequency rhs)
1035 {
1036 return lhs & Frequency_(rhs);
1037 }
1038 Code operator&(Frequency lhs, Code rhs)
1039 {
1040 return Frequency_(lhs) & rhs;
1041 }
1042 Code& Code::operator&=(const Frequency& rhs)
1043 {
1044 *this = *this & rhs;
1045 return *this;
1046 }
1047
1048 12 Code operator|(Code lhs, Frequency_ rhs)
1049 {
1050 LOG_DATA("Before ({}) & ({})", Frequency(rhs), lhs);
1051
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
12 if (rhs == Freq_None)
1052 {
1053 return lhs;
1054 }
1055
2/2
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 8 times.
12 if (rhs & Frequency_::G01)
1056 {
1057
3/4
✓ Branch 1 taken 36 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 36 times.
✓ Branch 5 taken 4 times.
40 for (int i = Code::_G01_START; i <= Code::_G01_END; i++) { lhs |= Code(Code::Enum(i)); }
1058 }
1059
2/2
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 8 times.
12 if (rhs & Frequency_::G02)
1060 {
1061
3/4
✓ Branch 1 taken 40 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 40 times.
✓ Branch 5 taken 4 times.
44 for (int i = Code::_G02_START; i <= Code::_G02_END; i++) { lhs |= Code(Code::Enum(i)); }
1062 }
1063
2/2
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 8 times.
12 if (rhs & Frequency_::G05)
1064 {
1065
3/4
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 12 times.
✓ Branch 5 taken 4 times.
16 for (int i = Code::_G05_START; i <= Code::_G05_END; i++) { lhs |= Code(Code::Enum(i)); }
1066 }
1067
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::E01)
1068 {
1069 for (int i = Code::_E01_START; i <= Code::_E01_END; i++) { lhs |= Code(Code::Enum(i)); }
1070 }
1071
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::E05)
1072 {
1073 for (int i = Code::_E05_START; i <= Code::_E05_END; i++) { lhs |= Code(Code::Enum(i)); }
1074 }
1075
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::E06)
1076 {
1077 for (int i = Code::_E06_START; i <= Code::_E06_END; i++) { lhs |= Code(Code::Enum(i)); }
1078 }
1079
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::E07)
1080 {
1081 for (int i = Code::_E07_START; i <= Code::_E07_END; i++) { lhs |= Code(Code::Enum(i)); }
1082 }
1083
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::E08)
1084 {
1085 for (int i = Code::_E08_START; i <= Code::_E08_END; i++) { lhs |= Code(Code::Enum(i)); }
1086 }
1087
3/6
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
12 if ((rhs & Frequency_::R01) || (rhs & Frequency_::R04))
1088 {
1089 for (int i = Code::_R01_START; i <= Code::_R01_END; i++) { lhs |= Code(Code::Enum(i)); }
1090 }
1091
3/6
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
12 if ((rhs & Frequency_::R02) || (rhs & Frequency_::R06))
1092 {
1093 for (int i = Code::_R02_START; i <= Code::_R02_END; i++) { lhs |= Code(Code::Enum(i)); }
1094 }
1095
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::R03)
1096 {
1097 for (int i = Code::_R03_START; i <= Code::_R03_END; i++) { lhs |= Code(Code::Enum(i)); }
1098 }
1099
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::R04)
1100 {
1101 for (int i = Code::_R04_START; i <= Code::_R04_END; i++) { lhs |= Code(Code::Enum(i)); }
1102 }
1103
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::R06)
1104 {
1105 for (int i = Code::_R06_START; i <= Code::_R06_END; i++) { lhs |= Code(Code::Enum(i)); }
1106 }
1107
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::B01)
1108 {
1109 for (int i = Code::_B01_START; i <= Code::_B01_END; i++) { lhs |= Code(Code::Enum(i)); }
1110 }
1111
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::B02)
1112 {
1113 for (int i = Code::_B02_START; i <= Code::_B02_END; i++) { lhs |= Code(Code::Enum(i)); }
1114 }
1115
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::B05)
1116 {
1117 for (int i = Code::_B05_START; i <= Code::_B05_END; i++) { lhs |= Code(Code::Enum(i)); }
1118 }
1119
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::B06)
1120 {
1121 for (int i = Code::_B06_START; i <= Code::_B06_END; i++) { lhs |= Code(Code::Enum(i)); }
1122 }
1123
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::B07)
1124 {
1125 for (int i = Code::_B07_START; i <= Code::_B07_END; i++) { lhs |= Code(Code::Enum(i)); }
1126 }
1127
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::B08)
1128 {
1129 for (int i = Code::_B08_START; i <= Code::_B08_END; i++) { lhs |= Code(Code::Enum(i)); }
1130 }
1131
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::J01)
1132 {
1133 for (int i = Code::_J01_START; i <= Code::_J01_END; i++) { lhs |= Code(Code::Enum(i)); }
1134 }
1135
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::J02)
1136 {
1137 for (int i = Code::_J02_START; i <= Code::_J02_END; i++) { lhs |= Code(Code::Enum(i)); }
1138 }
1139
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::J05)
1140 {
1141 for (int i = Code::_J05_START; i <= Code::_J05_END; i++) { lhs |= Code(Code::Enum(i)); }
1142 }
1143
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::J06)
1144 {
1145 for (int i = Code::_J06_START; i <= Code::_J06_END; i++) { lhs |= Code(Code::Enum(i)); }
1146 }
1147
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::I05)
1148 {
1149 for (int i = Code::_I05_START; i <= Code::_I05_END; i++) { lhs |= Code(Code::Enum(i)); }
1150 }
1151
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::I09)
1152 {
1153 for (int i = Code::_I09_START; i <= Code::_I09_END; i++) { lhs |= Code(Code::Enum(i)); }
1154 }
1155
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::S01)
1156 {
1157 for (int i = Code::_S01_START; i <= Code::_S01_END; i++) { lhs |= Code(Code::Enum(i)); }
1158 }
1159
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
12 if (rhs & Frequency_::S05)
1160 {
1161 for (int i = Code::_S05_START; i <= Code::_S05_END; i++) { lhs |= Code(Code::Enum(i)); }
1162 }
1163 LOG_DATA("After ({}) & ({})", Frequency(rhs), lhs);
1164
1165 12 return lhs;
1166 }
1167 Code operator|(Frequency_ lhs, Code rhs)
1168 {
1169 return rhs | lhs;
1170 }
1171 Code& Code::operator|=(const Frequency_& rhs)
1172 {
1173 *this = *this | rhs;
1174 return *this;
1175 }
1176 Code operator|(Code lhs, Frequency rhs)
1177 {
1178 return lhs | Frequency_(rhs);
1179 }
1180 Code operator|(Frequency lhs, Code rhs)
1181 {
1182 return Frequency_(lhs) | rhs;
1183 }
1184 Code& Code::operator|=(const Frequency& rhs)
1185 {
1186 *this = *this | rhs;
1187 return *this;
1188 }
1189
1190 void to_json(json& j, const Code& data)
1191 {
1192 j = Code::Set(data).to_string();
1193 }
1194 13 void from_json(const json& j, Code& data)
1195 {
1196
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
13 data = Code(Code::Set(j.get<std::string>()));
1197 13 }
1198
1199 bool ShowCodeSelector(const char* label, Code& code, const Frequency& filterFreq, bool singleSelect)
1200 {
1201 bool valueChanged = false;
1202 if (ImGui::BeginCombo(label, std::string(code).c_str(), ImGuiComboFlags_HeightLargest))
1203 {
1204 if (ImGui::BeginTable(fmt::format("{} Table", label).c_str(), 7, ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_ScrollY))
1205 {
1206 ImGui::TableSetupScrollFreeze(0, 1);
1207 for (uint64_t satSys = 0xFF; satSys < 0xFFUL << (7 * 8); satSys = satSys << 8UL)
1208 {
1209 ImGui::TableSetupColumn(std::string(SatelliteSystem(SatelliteSystem_(satSys))).c_str());
1210 }
1211 ImGui::TableHeadersRow();
1212 ImGui::TableNextRow();
1213 for (int satSys = 0; satSys < 7; satSys++)
1214 {
1215 ImGui::TableSetColumnIndex(satSys);
1216 for (uint64_t f = 0; f < 8; f++)
1217 {
1218 uint64_t flag = (1UL << (f + static_cast<uint64_t>(satSys) * 8));
1219 auto frequency = Frequency(Frequency_(flag));
1220 auto text = std::string(frequency);
1221 if (text == "None")
1222 {
1223 continue;
1224 }
1225 bool hasCode = false;
1226 for (int c = 0; c < Code::COUNT; c++)
1227 {
1228 auto co = Code(Code::Enum(c));
1229 if (co.getFrequency() == frequency)
1230 {
1231 hasCode = true;
1232 break;
1233 }
1234 }
1235 if (hasCode)
1236 {
1237 ImGui::Text("%s", text.c_str());
1238 if (!(frequency & filterFreq))
1239 {
1240 ImGui::PushStyleVar(ImGuiStyleVar_Alpha, ImGui::GetStyle().Alpha * 0.6F);
1241 }
1242 ImGui::Indent();
1243 for (int c = 0; c < Code::COUNT; c++)
1244 {
1245 auto co = Code(Code::Enum(c));
1246 if (co.getFrequency() == frequency)
1247 {
1248 auto checked = bool(co & code);
1249 if (c > 0 && Code::IsCodeCombined(Code(Code::Enum(c - 1)), co))
1250 {
1251 ImGui::SameLine();
1252 }
1253 if (ImGui::Checkbox(std::string(co).c_str(), &checked) && (frequency & filterFreq))
1254 {
1255 if (checked)
1256 {
1257 if (singleSelect) { code = co; }
1258 else { code |= co; }
1259 valueChanged = true;
1260 }
1261 else if (!singleSelect)
1262 {
1263 code &= ~co;
1264 valueChanged = true;
1265 }
1266 }
1267 if (ImGui::IsItemHovered())
1268 {
1269 ImGui::SetTooltip("%s", co.getDescription());
1270 }
1271 }
1272 }
1273 ImGui::Unindent();
1274 if (!(frequency & filterFreq))
1275 {
1276 ImGui::PopStyleVar();
1277 }
1278 }
1279 }
1280 }
1281
1282 ImGui::EndTable();
1283 }
1284 ImGui::EndCombo();
1285 }
1286 return valueChanged;
1287 }
1288
1289 } // namespace NAV
1290
1291 std::ostream& operator<<(std::ostream& os, const NAV::Code& obj)
1292 {
1293 return os << fmt::format("{}", obj);
1294 }
1295