INSTINCT Code Coverage Report


Directory: src/
File: Navigation/GNSS/Core/Code.cpp
Date: 2025-02-07 16:54:41
Exec Total Coverage
Lines: 409 888 46.1%
Functions: 19 62 30.6%
Branches: 1199 4167 28.8%

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 549400 Code::operator std::string() const
63 {
64
1/2
✓ Branch 1 taken 549439 times.
✗ Branch 2 not taken.
549400 const std::string filler = " | ";
65 549439 std::string str;
66
67
8/18
✓ Branch 1 taken 549422 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 105709 times.
✓ Branch 5 taken 443726 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 105710 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 105711 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 105711 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 105712 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 105709 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
760858 if (*this & G1C) { str += (!str.empty() ? filler : "") + "G1C"; }
68
2/18
✓ Branch 1 taken 549424 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549433 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.
549435 if (*this & G1S) { str += (!str.empty() ? filler : "") + "G1S"; }
69
8/18
✓ Branch 1 taken 549439 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1284 times.
✓ Branch 5 taken 548149 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1283 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 1285 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1286 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1285 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1286 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
552002 if (*this & G1L) { str += (!str.empty() ? filler : "") + "G1L"; }
70
8/18
✓ Branch 1 taken 549437 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2211 times.
✓ Branch 5 taken 547228 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2211 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2211 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2211 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2211 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2211 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
553857 if (*this & G1X) { str += (!str.empty() ? filler : "") + "G1X"; }
71
8/18
✓ Branch 1 taken 549434 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4480 times.
✓ Branch 5 taken 544956 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4480 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 4480 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 4480 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 4480 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 4480 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
558399 if (*this & G1P) { str += (!str.empty() ? filler : "") + "G1P"; }
72
8/18
✓ Branch 1 taken 549435 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2698 times.
✓ Branch 5 taken 546747 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2696 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2699 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2697 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2698 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2699 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554831 if (*this & G1W) { str += (!str.empty() ? filler : "") + "G1W"; }
73
2/18
✓ Branch 1 taken 549439 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549443 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.
549446 if (*this & G1Y) { str += (!str.empty() ? filler : "") + "G1Y"; }
74
2/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549444 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.
549443 if (*this & G1M) { str += (!str.empty() ? filler : "") + "G1M"; }
75
2/18
✓ Branch 1 taken 549438 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549446 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.
549444 if (*this & G1N) { str += (!str.empty() ? filler : "") + "G1N"; }
76
8/18
✓ Branch 1 taken 549438 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2190 times.
✓ Branch 5 taken 547255 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2190 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2190 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2190 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2190 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2190 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
553826 if (*this & G2C) { str += (!str.empty() ? filler : "") + "G2C"; }
77
2/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549450 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.
549445 if (*this & G2D) { str += (!str.empty() ? filler : "") + "G2D"; }
78
2/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549450 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.
549450 if (*this & G2S) { str += (!str.empty() ? filler : "") + "G2S"; }
79
8/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2715 times.
✓ Branch 5 taken 546731 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2716 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2714 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2715 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2716 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2716 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554882 if (*this & G2L) { str += (!str.empty() ? filler : "") + "G2L"; }
80
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 40938 times.
✓ Branch 5 taken 508505 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 40939 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 40939 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 40939 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 40939 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 40939 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
631325 if (*this & G2X) { str += (!str.empty() ? filler : "") + "G2X"; }
81
8/18
✓ Branch 1 taken 549444 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4480 times.
✓ Branch 5 taken 544967 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4480 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 4480 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 4480 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 4480 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 4480 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
558404 if (*this & G2P) { str += (!str.empty() ? filler : "") + "G2P"; }
82
8/18
✓ Branch 1 taken 549438 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2743 times.
✓ Branch 5 taken 546700 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2743 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2743 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 2742 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554932 if (*this & G2W) { str += (!str.empty() ? filler : "") + "G2W"; }
83
2/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549442 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.
549442 if (*this & G2Y) { str += (!str.empty() ? filler : "") + "G2Y"; }
84
2/18
✓ Branch 1 taken 549439 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549445 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.
549442 if (*this & G2M) { str += (!str.empty() ? filler : "") + "G2M"; }
85
2/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549444 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.
549445 if (*this & G2N) { str += (!str.empty() ? filler : "") + "G2N"; }
86
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2314 times.
✓ Branch 5 taken 547139 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2314 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2314 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2314 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2314 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2314 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554072 if (*this & G5I) { str += (!str.empty() ? filler : "") + "G5I"; }
87
8/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1423 times.
✓ Branch 5 taken 548026 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1423 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.
552300 if (*this & G5Q) { str += (!str.empty() ? filler : "") + "G5Q"; }
88
8/18
✓ Branch 1 taken 549444 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 38352 times.
✓ Branch 5 taken 511091 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.
626154 if (*this & G5X) { str += (!str.empty() ? filler : "") + "G5X"; }
89
90
8/18
✓ Branch 1 taken 549453 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549428 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.
549483 if (*this & E1A) { str += (!str.empty() ? filler : "") + "E1A"; }
91
8/18
✓ Branch 1 taken 549444 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549430 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.
549488 if (*this & E1B) { str += (!str.empty() ? filler : "") + "E1B"; }
92
8/18
✓ Branch 1 taken 549444 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3800 times.
✓ Branch 5 taken 545648 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 3799 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 3800 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3799 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3799 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 3798 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
557047 if (*this & E1C) { str += (!str.empty() ? filler : "") + "E1C"; }
93
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 85062 times.
✓ Branch 5 taken 464384 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.
719570 if (*this & E1X) { str += (!str.empty() ? filler : "") + "E1X"; }
94
2/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549447 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.
549446 if (*this & E1Z) { str += (!str.empty() ? filler : "") + "E1Z"; }
95
8/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549432 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.
549487 if (*this & E5I) { str += (!str.empty() ? filler : "") + "E5I"; }
96
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2622 times.
✓ Branch 5 taken 546828 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2622 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2621 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2621 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2620 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2619 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554693 if (*this & E5Q) { str += (!str.empty() ? filler : "") + "E5Q"; }
97
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 35969 times.
✓ Branch 5 taken 513477 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.
621385 if (*this & E5X) { str += (!str.empty() ? filler : "") + "E5X"; }
98
8/18
✓ Branch 1 taken 549444 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549428 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.
549486 if (*this & E6A) { str += (!str.empty() ? filler : "") + "E6A"; }
99
8/18
✓ Branch 1 taken 549452 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549435 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.
549488 if (*this & E6B) { str += (!str.empty() ? filler : "") + "E6B"; }
100
8/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 36 times.
✓ Branch 5 taken 549411 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.
549527 if (*this & E6C) { str += (!str.empty() ? filler : "") + "E6C"; }
101
8/18
✓ Branch 1 taken 549443 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 21 times.
✓ Branch 5 taken 549429 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.
549489 if (*this & E6X) { str += (!str.empty() ? filler : "") + "E6X"; }
102
2/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549451 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.
549450 if (*this & E6Z) { str += (!str.empty() ? filler : "") + "E6Z"; }
103
8/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549428 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.
549491 if (*this & E7I) { str += (!str.empty() ? filler : "") + "E7I"; }
104
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2621 times.
✓ Branch 5 taken 546829 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2621 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 2622 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2621 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2621 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 2621 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
554690 if (*this & E7Q) { str += (!str.empty() ? filler : "") + "E7Q"; }
105
8/18
✓ Branch 1 taken 549451 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 40999 times.
✓ Branch 5 taken 508452 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.
631448 if (*this & E7X) { str += (!str.empty() ? filler : "") + "E7X"; }
106
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549427 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.
549491 if (*this & E8I) { str += (!str.empty() ? filler : "") + "E8I"; }
107
8/18
✓ Branch 1 taken 549451 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2622 times.
✓ Branch 5 taken 546832 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.
554691 if (*this & E8Q) { str += (!str.empty() ? filler : "") + "E8Q"; }
108
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 21 times.
✓ Branch 5 taken 549428 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.
549496 if (*this & E8X) { str += (!str.empty() ? filler : "") + "E8X"; }
109
110
8/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 51280 times.
✓ Branch 5 taken 498168 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 51280 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 51280 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.
652010 if (*this & R1C) { str += (!str.empty() ? filler : "") + "R1C"; }
111
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1040 times.
✓ Branch 5 taken 548408 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.
551529 if (*this & R1P) { str += (!str.empty() ? filler : "") + "R1P"; }
112
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 46045 times.
✓ Branch 5 taken 503405 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 46044 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 46044 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 46045 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
641538 if (*this & R2C) { str += (!str.empty() ? filler : "") + "R2C"; }
113
8/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1034 times.
✓ Branch 5 taken 548415 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.
551518 if (*this & R2P) { str += (!str.empty() ? filler : "") + "R2P"; }
114
8/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549430 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.
549489 if (*this & R3I) { str += (!str.empty() ? filler : "") + "R3I"; }
115
8/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 36 times.
✓ Branch 5 taken 549416 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.
549522 if (*this & R3Q) { str += (!str.empty() ? filler : "") + "R3Q"; }
116
8/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 41 times.
✓ Branch 5 taken 549411 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.
549534 if (*this & R3X) { str += (!str.empty() ? filler : "") + "R3X"; }
117
8/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549431 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.
549492 if (*this & R4A) { str += (!str.empty() ? filler : "") + "R4A"; }
118
8/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549429 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.
549491 if (*this & R4B) { str += (!str.empty() ? filler : "") + "R4B"; }
119
8/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549431 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.
549489 if (*this & R4X) { str += (!str.empty() ? filler : "") + "R4X"; }
120
2/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549451 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.
549451 if (*this & R6A) { str += (!str.empty() ? filler : "") + "R6A"; }
121
8/18
✓ Branch 1 taken 549452 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549432 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.
549491 if (*this & R6B) { str += (!str.empty() ? filler : "") + "R6B"; }
122
2/18
✓ Branch 1 taken 549452 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549451 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.
549452 if (*this & R6X) { str += (!str.empty() ? filler : "") + "R6X"; }
123
124
2/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549447 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.
549451 if (*this & B1D) { str += (!str.empty() ? filler : "") + "B1D"; }
125
2/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549447 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.
549447 if (*this & B1P) { str += (!str.empty() ? filler : "") + "B1P"; }
126
8/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4271 times.
✓ Branch 5 taken 545178 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.
557989 if (*this & B1X) { str += (!str.empty() ? filler : "") + "B1X"; }
127
8/18
✓ Branch 1 taken 549444 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 34642 times.
✓ Branch 5 taken 514804 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 34642 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 34643 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 34643 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
618734 if (*this & B2I) { str += (!str.empty() ? filler : "") + "B2I"; }
128
2/18
✓ Branch 1 taken 549451 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549452 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.
549447 if (*this & B2Q) { str += (!str.empty() ? filler : "") + "B2Q"; }
129
8/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3208 times.
✓ Branch 5 taken 546241 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.
555868 if (*this & B2X) { str += (!str.empty() ? filler : "") + "B2X"; }
130
2/18
✓ Branch 1 taken 549451 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549450 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.
549449 if (*this & B5D) { str += (!str.empty() ? filler : "") + "B5D"; }
131
2/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549451 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.
549450 if (*this & B5P) { str += (!str.empty() ? filler : "") + "B5P"; }
132
8/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4271 times.
✓ Branch 5 taken 545177 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.
557993 if (*this & B5X) { str += (!str.empty() ? filler : "") + "B5X"; }
133
8/18
✓ Branch 1 taken 549452 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1547 times.
✓ Branch 5 taken 547902 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.
552542 if (*this & B6I) { str += (!str.empty() ? filler : "") + "B6I"; }
134
2/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549446 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.
549449 if (*this & B6Q) { str += (!str.empty() ? filler : "") + "B6Q"; }
135
2/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549446 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.
549446 if (*this & B6X) { str += (!str.empty() ? filler : "") + "B6X"; }
136
2/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549453 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.
549446 if (*this & B6A) { str += (!str.empty() ? filler : "") + "B6A"; }
137
8/18
✓ Branch 1 taken 549451 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1633 times.
✓ Branch 5 taken 547818 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.
552719 if (*this & B7I) { str += (!str.empty() ? filler : "") + "B7I"; }
138
2/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549452 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.
549451 if (*this & B7Q) { str += (!str.empty() ? filler : "") + "B7Q"; }
139
8/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3208 times.
✓ Branch 5 taken 546236 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.
555868 if (*this & B7X) { str += (!str.empty() ? filler : "") + "B7X"; }
140
8/18
✓ Branch 1 taken 549444 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1498 times.
✓ Branch 5 taken 547950 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.
552440 if (*this & B7D) { str += (!str.empty() ? filler : "") + "B7D"; }
141
2/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549443 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.
549448 if (*this & B7P) { str += (!str.empty() ? filler : "") + "B7P"; }
142
2/18
✓ Branch 1 taken 549442 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549449 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.
549443 if (*this & B7Z) { str += (!str.empty() ? filler : "") + "B7Z"; }
143
2/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549446 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.
549449 if (*this & B8D) { str += (!str.empty() ? filler : "") + "B8D"; }
144
2/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549452 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.
549446 if (*this & B8P) { str += (!str.empty() ? filler : "") + "B8P"; }
145
2/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549452 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.
549452 if (*this & B8X) { str += (!str.empty() ? filler : "") + "B8X"; }
146
147
8/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1230 times.
✓ Branch 5 taken 548219 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.
551912 if (*this & J1C) { str += (!str.empty() ? filler : "") + "J1C"; }
148
2/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549453 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.
549449 if (*this & J1S) { str += (!str.empty() ? filler : "") + "J1S"; }
149
2/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549450 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.
549453 if (*this & J1L) { str += (!str.empty() ? filler : "") + "J1L"; }
150
8/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1214 times.
✓ Branch 5 taken 548237 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.
551878 if (*this & J1X) { str += (!str.empty() ? filler : "") + "J1X"; }
151
8/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1214 times.
✓ Branch 5 taken 548235 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.
551879 if (*this & J1Z) { str += (!str.empty() ? filler : "") + "J1Z"; }
152
2/18
✓ Branch 1 taken 549453 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549453 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.
549449 if (*this & J2S) { str += (!str.empty() ? filler : "") + "J2S"; }
153
8/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 549435 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.
549485 if (*this & J2L) { str += (!str.empty() ? filler : "") + "J2L"; }
154
8/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 616 times.
✓ Branch 5 taken 548829 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.
550683 if (*this & J2X) { str += (!str.empty() ? filler : "") + "J2X"; }
155
8/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 616 times.
✓ Branch 5 taken 548831 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.
550677 if (*this & J5I) { str += (!str.empty() ? filler : "") + "J5I"; }
156
8/18
✓ Branch 1 taken 549451 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 549433 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.
549479 if (*this & J5Q) { str += (!str.empty() ? filler : "") + "J5Q"; }
157
8/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 598 times.
✓ Branch 5 taken 548855 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.
550645 if (*this & J5X) { str += (!str.empty() ? filler : "") + "J5X"; }
158
2/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549445 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.
549453 if (*this & J5D) { str += (!str.empty() ? filler : "") + "J5D"; }
159
2/18
✓ Branch 1 taken 549441 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549448 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.
549445 if (*this & J5P) { str += (!str.empty() ? filler : "") + "J5P"; }
160
8/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 597 times.
✓ Branch 5 taken 548850 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 598 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 598 times.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
550644 if (*this & J5Z) { str += (!str.empty() ? filler : "") + "J5Z"; }
161
2/18
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549447 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.
549448 if (*this & J6S) { str += (!str.empty() ? filler : "") + "J6S"; }
162
2/18
✓ Branch 1 taken 549452 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549451 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.
549447 if (*this & J6L) { str += (!str.empty() ? filler : "") + "J6L"; }
163
2/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549446 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.
549451 if (*this & J6X) { str += (!str.empty() ? filler : "") + "J6X"; }
164
2/18
✓ Branch 1 taken 549450 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549453 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.
549446 if (*this & J6E) { str += (!str.empty() ? filler : "") + "J6E"; }
165
8/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 20 times.
✓ Branch 5 taken 549428 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.
549493 if (*this & J6Z) { str += (!str.empty() ? filler : "") + "J6Z"; }
166
167
8/18
✓ Branch 1 taken 549449 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 549436 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.
549480 if (*this & I5A) { str += (!str.empty() ? filler : "") + "I5A"; }
168
2/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549445 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.
549452 if (*this & I5B) { str += (!str.empty() ? filler : "") + "I5B"; }
169
2/18
✓ Branch 1 taken 549443 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549449 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.
549445 if (*this & I5C) { str += (!str.empty() ? filler : "") + "I5C"; }
170
8/18
✓ Branch 1 taken 549451 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 616 times.
✓ Branch 5 taken 548836 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.
550681 if (*this & I5X) { str += (!str.empty() ? filler : "") + "I5X"; }
171
2/18
✓ Branch 1 taken 549446 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549450 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.
549452 if (*this & I9A) { str += (!str.empty() ? filler : "") + "I9A"; }
172
2/18
✓ Branch 1 taken 549443 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549448 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.
549450 if (*this & I9B) { str += (!str.empty() ? filler : "") + "I9B"; }
173
2/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549447 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.
549448 if (*this & I9C) { str += (!str.empty() ? filler : "") + "I9C"; }
174
2/18
✓ Branch 1 taken 549445 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549449 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.
549447 if (*this & I9X) { str += (!str.empty() ? filler : "") + "I9X"; }
175
176
8/18
✓ Branch 1 taken 549447 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1708 times.
✓ Branch 5 taken 547742 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.
552865 if (*this & S1C) { str += (!str.empty() ? filler : "") + "S1C"; }
177
8/18
✓ Branch 1 taken 549451 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 549436 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.
549482 if (*this & S5I) { str += (!str.empty() ? filler : "") + "S5I"; }
178
2/18
✓ Branch 1 taken 549443 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 549450 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.
549452 if (*this & S5Q) { str += (!str.empty() ? filler : "") + "S5Q"; }
179
8/18
✓ Branch 1 taken 549442 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1645 times.
✓ Branch 5 taken 547806 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.
552740 if (*this & S5X) { str += (!str.empty() ? filler : "") + "S5X"; }
180
181
1/2
✓ Branch 1 taken 549448 times.
✗ Branch 2 not taken.
549451 if (!str.empty())
182 {
183 549448 return str;
184 }
185 return "None";
186 549437 }
187
188 2781 Code Code::fromFreqAttr(Frequency freq, char attribute)
189 {
190
25/29
✓ Branch 1 taken 318 times.
✓ Branch 2 taken 291 times.
✓ Branch 3 taken 88 times.
✓ Branch 4 taken 209 times.
✓ Branch 5 taken 104 times.
✓ Branch 6 taken 80 times.
✓ Branch 7 taken 171 times.
✓ Branch 8 taken 76 times.
✓ Branch 9 taken 189 times.
✓ Branch 10 taken 166 times.
✓ Branch 11 taken 80 times.
✓ Branch 12 taken 60 times.
✓ Branch 13 taken 20 times.
✓ Branch 14 taken 48 times.
✓ Branch 15 taken 139 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 not taken.
2781 switch (Frequency_(freq))
191 {
192 318 case G01: // GPS L1 (1575.42 MHz).
193
3/4
✓ Branch 0 taken 173 times.
✓ Branch 1 taken 145 times.
✓ Branch 3 taken 174 times.
✗ Branch 4 not taken.
318 if (attribute == 'C') { return G1C; }
194
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 145 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
145 if (attribute == 'S') { return G1S; }
195
3/4
✓ Branch 0 taken 15 times.
✓ Branch 1 taken 130 times.
✓ Branch 3 taken 15 times.
✗ Branch 4 not taken.
145 if (attribute == 'L') { return G1L; }
196
3/4
✓ Branch 0 taken 60 times.
✓ Branch 1 taken 70 times.
✓ Branch 3 taken 60 times.
✗ Branch 4 not taken.
130 if (attribute == 'X') { return G1X; }
197
3/4
✓ Branch 0 taken 52 times.
✓ Branch 1 taken 18 times.
✓ Branch 3 taken 52 times.
✗ Branch 4 not taken.
70 if (attribute == 'P') { return G1P; }
198
3/4
✓ Branch 0 taken 16 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 16 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 291 case G02: // GPS L2 (1227.6 MHz).
204
3/4
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 243 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
291 if (attribute == 'C') { return G2C; }
205
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 243 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
243 if (attribute == 'D') { return G2D; }
206
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 243 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
243 if (attribute == 'S') { return G2S; }
207
3/4
✓ Branch 0 taken 36 times.
✓ Branch 1 taken 207 times.
✓ Branch 3 taken 35 times.
✗ Branch 4 not taken.
243 if (attribute == 'L') { return G2L; }
208
3/4
✓ Branch 0 taken 111 times.
✓ Branch 1 taken 96 times.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
207 if (attribute == 'X') { return G2X; }
209
3/4
✓ Branch 0 taken 52 times.
✓ Branch 1 taken 44 times.
✓ Branch 3 taken 52 times.
✗ Branch 4 not taken.
96 if (attribute == 'P') { return G2P; }
210
2/4
✓ Branch 0 taken 46 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
44 if (attribute == 'W') { return G2W; }
211 if (attribute == 'Y') { return G2Y; }
212 if (attribute == 'M') { return G2M; }
213 if (attribute == 'N') { return G2N; }
214 break;
215 88 case G05: // GPS L5 (1176.45 MHz).
216
3/4
✓ Branch 0 taken 28 times.
✓ Branch 1 taken 60 times.
✓ Branch 3 taken 28 times.
✗ Branch 4 not taken.
88 if (attribute == 'I') { return G5I; }
217
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 40 times.
✓ Branch 3 taken 19 times.
✗ Branch 4 not taken.
60 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 209 case E01: // Galileo, "E1" (1575.42 MHz).
221
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 189 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
209 if (attribute == 'A') { return E1A; }
222
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 169 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
189 if (attribute == 'B') { return E1B; }
223
3/4
✓ Branch 0 taken 59 times.
✓ Branch 1 taken 110 times.
✓ Branch 3 taken 59 times.
✗ Branch 4 not taken.
169 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.
110 if (attribute == 'X') { return E1X; }
225 if (attribute == 'Z') { return E1Z; }
226 break;
227 104 case E05: // Galileo E5a (1176.45 MHz).
228
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 84 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
104 if (attribute == 'I') { return E5I; }
229
3/4
✓ Branch 0 taken 44 times.
✓ Branch 1 taken 40 times.
✓ Branch 3 taken 43 times.
✗ Branch 4 not taken.
84 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 171 case E07: // Galileo E5b (1207.14 MHz).
240
3/4
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 151 times.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
171 if (attribute == 'I') { return E7I; }
241
3/4
✓ Branch 0 taken 43 times.
✓ Branch 1 taken 108 times.
✓ Branch 3 taken 42 times.
✗ Branch 4 not taken.
151 if (attribute == 'Q') { return E7Q; }
242
3/4
✓ Branch 0 taken 107 times.
✓ Branch 1 taken 1 times.
✓ Branch 3 taken 107 times.
✗ Branch 4 not taken.
108 if (attribute == 'X') { return E7X; }
243 1 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 189 case R01: // GLONASS, "G1" (1602 MHZ).
251
3/4
✓ Branch 0 taken 157 times.
✓ Branch 1 taken 32 times.
✓ Branch 3 taken 158 times.
✗ Branch 4 not taken.
189 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 166 case R02: // GLONASS, "G2" (1246 MHz).
255
3/4
✓ Branch 0 taken 134 times.
✓ Branch 1 taken 32 times.
✓ Branch 3 taken 135 times.
✗ Branch 4 not taken.
166 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 139 case B02: // Beidou B1-2 (1561.098 MHz).
280
3/4
✓ Branch 0 taken 115 times.
✓ Branch 1 taken 24 times.
✓ Branch 3 taken 114 times.
✗ Branch 4 not taken.
139 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 44 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 43 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 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 6355032 Frequency Code::GetCodeFequency(Code code)
493 {
494
3/4
✓ Branch 1 taken 6349539 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 987545 times.
✓ Branch 4 taken 5361994 times.
6355032 if (code == G1C) { return G01; } // GPS L1 - C/A-code
495
3/4
✓ Branch 1 taken 5365431 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5716 times.
✓ Branch 4 taken 5359715 times.
5361994 if (code == G1S) { return G01; } // GPS L1 - L1C-D (data)
496
3/4
✓ Branch 1 taken 5359857 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 32963 times.
✓ Branch 4 taken 5326894 times.
5359715 if (code == G1L) { return G01; } // GPS L1 - L1C-P (pilot)
497
3/4
✓ Branch 1 taken 5327142 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 65447 times.
✓ Branch 4 taken 5261695 times.
5326894 if (code == G1X) { return G01; } // GPS L1 - L1C-(D+P) (combined)
498
3/4
✓ Branch 1 taken 5261526 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 151438 times.
✓ Branch 4 taken 5110088 times.
5261695 if (code == G1P) { return G01; } // GPS L1 - P-code (unencrypted)
499
3/4
✓ Branch 1 taken 5110432 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 31482 times.
✓ Branch 4 taken 5078950 times.
5110088 if (code == G1W) { return G01; } // GPS L1 - Semicodeless P(Y) tracking (Z-tracking)
500
3/4
✓ Branch 1 taken 5079027 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5716 times.
✓ Branch 4 taken 5073311 times.
5078950 if (code == G1Y) { return G01; } // GPS L1 - Y-code (with decryption)
501
3/4
✓ Branch 1 taken 5073354 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5716 times.
✓ Branch 4 taken 5067638 times.
5073311 if (code == G1M) { return G01; } // GPS L1 - M-code
502
3/4
✓ Branch 1 taken 5067497 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5716 times.
✓ Branch 4 taken 5061781 times.
5067638 if (code == G1N) { return G01; } // GPS L1 - codeless
503
3/4
✓ Branch 1 taken 5061916 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 69786 times.
✓ Branch 4 taken 4992130 times.
5061781 if (code == G2C) { return G02; } // GPS L2 - C/A-code
504
3/4
✓ Branch 1 taken 4992061 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4986745 times.
4992130 if (code == G2D) { return G02; } // GPS L2 - Semi-codeless P(Y) tracking (L1 C/A + (P2-P1))
505
3/4
✓ Branch 1 taken 4986858 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4981542 times.
4986745 if (code == G2S) { return G02; } // GPS L2 - L2C(M) (medium)
506
3/4
✓ Branch 1 taken 4981407 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 36173 times.
✓ Branch 4 taken 4945234 times.
4981542 if (code == G2L) { return G02; } // GPS L2 - L2C(L) (long)
507
3/4
✓ Branch 1 taken 4945171 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 436617 times.
✓ Branch 4 taken 4508554 times.
4945234 if (code == G2X) { return G02; } // GPS L2 - L2C(M+L) (combined)
508
3/4
✓ Branch 1 taken 4509424 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 156214 times.
✓ Branch 4 taken 4353210 times.
4508554 if (code == G2P) { return G02; } // GPS L2 - P-code (unencrypted)
509
3/4
✓ Branch 1 taken 4353335 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 36216 times.
✓ Branch 4 taken 4317119 times.
4353210 if (code == G2W) { return G02; } // GPS L2 - Semicodeless P(Y) tracking (Z-tracking)
510
3/4
✓ Branch 1 taken 4316973 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4311657 times.
4317119 if (code == G2Y) { return G02; } // GPS L2 - Y-code (with decryption)
511
3/4
✓ Branch 1 taken 4311829 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4306513 times.
4311657 if (code == G2M) { return G02; } // GPS L2 - M-code
512
3/4
✓ Branch 1 taken 4306502 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5316 times.
✓ Branch 4 taken 4301186 times.
4306513 if (code == G2N) { return G02; } // GPS L2 - codeless
513
3/4
✓ Branch 1 taken 4301253 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 97362 times.
✓ Branch 4 taken 4203891 times.
4301186 if (code == G5I) { return G05; } // GPS L5 - Data
514
3/4
✓ Branch 1 taken 4203899 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 21591 times.
✓ Branch 4 taken 4182308 times.
4203891 if (code == G5Q) { return G05; } // GPS L5 - Pilot
515
3/4
✓ Branch 1 taken 4182271 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 243138 times.
✓ Branch 4 taken 3939133 times.
4182308 if (code == G5X) { return G05; } // GPS L5 - Combined
516
517
3/4
✓ Branch 1 taken 3939487 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 3933383 times.
3939133 if (code == E1A) { return E01; } // GAL E1 - PRS signal
518
3/4
✓ Branch 1 taken 3933391 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23184 times.
✓ Branch 4 taken 3910207 times.
3933383 if (code == E1B) { return E01; } // GAL E1 - OS (data)
519
3/4
✓ Branch 1 taken 3910120 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 63957 times.
✓ Branch 4 taken 3846163 times.
3910207 if (code == E1C) { return E01; } // GAL E1 - OS (pilot)
520
3/4
✓ Branch 1 taken 3846224 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 693640 times.
✓ Branch 4 taken 3152584 times.
3846163 if (code == E1X) { return E01; } // GAL E1 - OS(B+C) (combined)
521
3/4
✓ Branch 1 taken 3153009 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 3146905 times.
3152584 if (code == E1Z) { return E01; } // GAL E1 - PRS + OS (data + pilot)
522
3/4
✓ Branch 1 taken 3146924 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23984 times.
✓ Branch 4 taken 3122940 times.
3146905 if (code == E5I) { return E05; } // GAL E5a - Data
523
3/4
✓ Branch 1 taken 3122871 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 49004 times.
✓ Branch 4 taken 3073867 times.
3122940 if (code == E5Q) { return E05; } // GAL E5a - Pilot
524
3/4
✓ Branch 1 taken 3073941 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 200115 times.
✓ Branch 4 taken 2873826 times.
3073867 if (code == E5X) { return E05; } // GAL E5a - Combined
525
3/4
✓ Branch 1 taken 2873772 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 2867668 times.
2873826 if (code == E6A) { return E06; } // GAL E6 - PRS signal
526
3/4
✓ Branch 1 taken 2867723 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 2861619 times.
2867668 if (code == E6B) { return E06; } // GAL E6 - Data
527
3/4
✓ Branch 1 taken 2861578 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6123 times.
✓ Branch 4 taken 2855455 times.
2861619 if (code == E6C) { return E06; } // GAL E6 - Pilot
528
3/4
✓ Branch 1 taken 2855487 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6132 times.
✓ Branch 4 taken 2849355 times.
2855455 if (code == E6X) { return E06; } // GAL E6 - Combined (B+C)
529
3/4
✓ Branch 1 taken 2849355 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 2843251 times.
2849355 if (code == E6Z) { return E06; } // GAL E6 - PRS + OS (A+B+C)
530
3/4
✓ Branch 1 taken 2843267 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23984 times.
✓ Branch 4 taken 2819283 times.
2843251 if (code == E7I) { return E07; } // GAL E5b - Data
531
3/4
✓ Branch 1 taken 2819247 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 49007 times.
✓ Branch 4 taken 2770240 times.
2819283 if (code == E7Q) { return E07; } // GAL E5b - Pilot
532
3/4
✓ Branch 1 taken 2770247 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 385099 times.
✓ Branch 4 taken 2385148 times.
2770240 if (code == E7X) { return E07; } // GAL E5b - Combined
533
3/4
✓ Branch 1 taken 2385296 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23984 times.
✓ Branch 4 taken 2361312 times.
2385148 if (code == E8I) { return E08; } // GAL E5(a+b) - AltBOC (data)
534
3/4
✓ Branch 1 taken 2361340 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 49006 times.
✓ Branch 4 taken 2312334 times.
2361312 if (code == E8Q) { return E08; } // GAL E5(a+b) - AltBOC (pilot)
535
3/4
✓ Branch 1 taken 2312319 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6932 times.
✓ Branch 4 taken 2305387 times.
2312334 if (code == E8X) { return E08; } // GAL E5(a+b) - AltBOC (combined)
536
537
3/4
✓ Branch 1 taken 2305359 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 480503 times.
✓ Branch 4 taken 1824856 times.
2305387 if (code == R1C) { return R01; } // GLO L1 - C/A-code
538
3/4
✓ Branch 1 taken 1825056 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 27761 times.
✓ Branch 4 taken 1797295 times.
1824856 if (code == R1P) { return R01; } // GLO L1 - P-code
539
3/4
✓ Branch 1 taken 1797275 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 418936 times.
✓ Branch 4 taken 1378339 times.
1797295 if (code == R2C) { return R02; } // GLO L2 - C/A-code
540
3/4
✓ Branch 1 taken 1378466 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 27742 times.
✓ Branch 4 taken 1350724 times.
1378339 if (code == R2P) { return R02; } // GLO L2 - P-code
541
3/4
✓ Branch 1 taken 1350731 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1346251 times.
1350724 if (code == R3I) { return R03; } // GLO L3 - Data
542
3/4
✓ Branch 1 taken 1346269 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4499 times.
✓ Branch 4 taken 1341770 times.
1346251 if (code == R3Q) { return R03; } // GLO L3 - Pilot
543
3/4
✓ Branch 1 taken 1341772 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4508 times.
✓ Branch 4 taken 1337264 times.
1341770 if (code == R3X) { return R03; } // GLO L3 - Combined
544
3/4
✓ Branch 1 taken 1337232 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1332752 times.
1337264 if (code == R4A) { return R04; } // GLO G1a - L1OCd (data)
545
3/4
✓ Branch 1 taken 1332743 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1328263 times.
1332752 if (code == R4B) { return R04; } // GLO G1a - L1OCp (pilot)
546
3/4
✓ Branch 1 taken 1328284 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1323804 times.
1328263 if (code == R4X) { return R04; } // GLO G1a - L1OCd+L1OCp (combined)
547
3/4
✓ Branch 1 taken 1323799 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1319319 times.
1323804 if (code == R6A) { return R06; } // GLO G2a - L2CSI (data)
548
3/4
✓ Branch 1 taken 1319310 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1314830 times.
1319319 if (code == R6B) { return R06; } // GLO G2a - L2OCp (pilot)
549
3/4
✓ Branch 1 taken 1314861 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4480 times.
✓ Branch 4 taken 1310381 times.
1314830 if (code == R6X) { return R06; } // GLO G2a - L2CSI+L2OCp (combined)
550
551
3/4
✓ Branch 1 taken 1310345 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 1302229 times.
1310381 if (code == B1D) { return B01; } // BeiDou B1 - Data (D)
552
3/4
✓ Branch 1 taken 1302273 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 1294157 times.
1302229 if (code == B1P) { return B01; } // BeiDou B1 - Pilot(P)
553
3/4
✓ Branch 1 taken 1294124 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 107777 times.
✓ Branch 4 taken 1186347 times.
1294157 if (code == B1X) { return B01; } // BeiDou B1 - D+P
554
3/4
✓ Branch 1 taken 1186427 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 336612 times.
✓ Branch 4 taken 849815 times.
1186347 if (code == B2I) { return B02; } // BeiDou B1-2 - B1I(OS)
555
3/4
✓ Branch 1 taken 849800 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 841684 times.
849815 if (code == B2Q) { return B02; } // BeiDou B1-2 - B1Q
556
3/4
✓ Branch 1 taken 841688 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 82731 times.
✓ Branch 4 taken 758957 times.
841684 if (code == B2X) { return B02; } // BeiDou B1-2 - B1I(OS), B1Q, combined
557
3/4
✓ Branch 1 taken 759012 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 750896 times.
758957 if (code == B5D) { return B05; } // BeiDou B2a - Data (D)
558
3/4
✓ Branch 1 taken 750886 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 742770 times.
750896 if (code == B5P) { return B05; } // BeiDou B2a - Pilot(P)
559
3/4
✓ Branch 1 taken 742759 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 107779 times.
✓ Branch 4 taken 634980 times.
742770 if (code == B5X) { return B05; } // BeiDou B2a - D+P
560
3/4
✓ Branch 1 taken 635010 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 42908 times.
✓ Branch 4 taken 592102 times.
634980 if (code == B6I) { return B06; } // BeiDou B3 - B3I
561
3/4
✓ Branch 1 taken 592100 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7716 times.
✓ Branch 4 taken 584384 times.
592102 if (code == B6Q) { return B06; } // BeiDou B3 - B3Q
562
3/4
✓ Branch 1 taken 584391 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7716 times.
✓ Branch 4 taken 576675 times.
584384 if (code == B6X) { return B06; } // BeiDou B3 - B3I, B3Q, combined
563
3/4
✓ Branch 1 taken 576667 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7716 times.
✓ Branch 4 taken 568951 times.
576675 if (code == B6A) { return B06; } // BeiDou B3 - B3A
564
3/4
✓ Branch 1 taken 568956 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 42294 times.
✓ Branch 4 taken 526662 times.
568951 if (code == B7I) { return B07; } // BeiDou B2b (BDS-2) - B2I(OS)
565
3/4
✓ Branch 1 taken 526664 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6916 times.
✓ Branch 4 taken 519748 times.
526662 if (code == B7Q) { return B07; } // BeiDou B2b (BDS-2) - B2Q
566
3/4
✓ Branch 1 taken 519738 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 81536 times.
✓ Branch 4 taken 438202 times.
519748 if (code == B7X) { return B07; } // BeiDou B2b (BDS-2) - B2I(OS), B2Q, combined
567
3/4
✓ Branch 1 taken 438227 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 40966 times.
✓ Branch 4 taken 397261 times.
438202 if (code == B7D) { return B07; } // BeiDou B2b (BDS-3) - Data (D)
568
3/4
✓ Branch 1 taken 397262 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6916 times.
✓ Branch 4 taken 390346 times.
397261 if (code == B7P) { return B07; } // BeiDou B2b (BDS-3) - Pilot(P)
569
3/4
✓ Branch 1 taken 390344 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6916 times.
✓ Branch 4 taken 383428 times.
390346 if (code == B7Z) { return B07; } // BeiDou B2b (BDS-3) - D+P
570
3/4
✓ Branch 1 taken 383432 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 375316 times.
383428 if (code == B8D) { return B08; } // BeiDou B2 (B2a+B2b) - Data (D)
571
3/4
✓ Branch 1 taken 375316 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8116 times.
✓ Branch 4 taken 367200 times.
375316 if (code == B8P) { return B08; } // BeiDou B2 (B2a+B2b) - Pilot(P)
572
3/4
✓ Branch 1 taken 367200 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9164 times.
✓ Branch 4 taken 358036 times.
367200 if (code == B8X) { return B08; } // BeiDou B2 (B2a+B2b) - D+P
573
574
3/4
✓ Branch 1 taken 358032 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 32423 times.
✓ Branch 4 taken 325609 times.
358036 if (code == J1C) { return J01; } // QZSS L1 - C/A-code
575
3/4
✓ Branch 1 taken 325612 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 319508 times.
325609 if (code == J1S) { return J01; } // QZSS L1 - L1C (data)
576
3/4
✓ Branch 1 taken 319509 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 313405 times.
319508 if (code == J1L) { return J01; } // QZSS L1 - L1C (pilot)
577
3/4
✓ Branch 1 taken 313405 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 32404 times.
✓ Branch 4 taken 281001 times.
313405 if (code == J1X) { return J01; } // QZSS L1 - L1C (combined)
578
3/4
✓ Branch 1 taken 281000 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 32404 times.
✓ Branch 4 taken 248596 times.
281001 if (code == J1Z) { return J01; } // QZSS L1 - L1-SAIF signal
579
3/4
✓ Branch 1 taken 248596 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6904 times.
✓ Branch 4 taken 241692 times.
248596 if (code == J2S) { return J02; } // QZSS L2 - L2C-code (medium)
580
3/4
✓ Branch 1 taken 241693 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6923 times.
✓ Branch 4 taken 234770 times.
241692 if (code == J2L) { return J02; } // QZSS L2 - L2C-code (long)
581
3/4
✓ Branch 1 taken 234769 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 20523 times.
✓ Branch 4 taken 214246 times.
234770 if (code == J2X) { return J02; } // QZSS L2 - L2C-code (combined)
582
3/4
✓ Branch 1 taken 214246 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 19324 times.
✓ Branch 4 taken 194922 times.
214246 if (code == J5I) { return J05; } // QZSS L5 - Data
583
3/4
✓ Branch 1 taken 194922 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5723 times.
✓ Branch 4 taken 189199 times.
194922 if (code == J5Q) { return J05; } // QZSS L5 - Pilot
584
3/4
✓ Branch 1 taken 189198 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 18384 times.
✓ Branch 4 taken 170814 times.
189199 if (code == J5X) { return J05; } // QZSS L5 - Combined
585
3/4
✓ Branch 1 taken 170816 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5704 times.
✓ Branch 4 taken 165112 times.
170814 if (code == J5D) { return J05; } // QZSS L5S - I
586
3/4
✓ Branch 1 taken 165112 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5704 times.
✓ Branch 4 taken 159408 times.
165112 if (code == J5P) { return J05; } // QZSS L5S - Q
587
3/4
✓ Branch 1 taken 159408 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 18384 times.
✓ Branch 4 taken 141024 times.
159408 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.
141024 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 122711 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 116607 times.
122712 if (code == J6E) { return J06; } // QZSS L6 - L6E
592
3/4
✓ Branch 1 taken 116606 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6104 times.
✓ Branch 4 taken 110502 times.
116607 if (code == J6Z) { return J06; } // QZSS L6 - L6(D+E)
593
594
3/4
✓ Branch 1 taken 110502 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2079 times.
✓ Branch 4 taken 108423 times.
110502 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.
108423 if (code == I5B) { return I05; } // IRNSS L5 - RS (data)
596
3/4
✓ Branch 1 taken 106364 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 104304 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.
104304 if (code == I5X) { return I05; } // IRNSS L5 - RS (combined)
598
3/4
✓ Branch 1 taken 88439 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 86379 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.
86379 if (code == I9B) { return I09; } // IRNSS S - RS (data)
600
3/4
✓ Branch 1 taken 84320 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 82260 times.
84321 if (code == I9C) { return I09; } // IRNSS S - RS (pilot)
601
3/4
✓ Branch 1 taken 82259 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2060 times.
✓ Branch 4 taken 80199 times.
82260 if (code == I9X) { return I09; } // IRNSS S - RS (combined)
602
603
3/4
✓ Branch 1 taken 80200 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 39689 times.
✓ Branch 4 taken 40511 times.
80199 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.
40511 if (code == S5I) { return S05; } // SBAS L5 - Data
605
3/4
✓ Branch 1 taken 39648 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 844 times.
✓ Branch 4 taken 38804 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.
38804 if (code == S5X) { return S05; } // SBAS L5 - Combined
607
608 return Freq_None;
609 }
610
611 6355200 Frequency Code::getFrequency() const
612 {
613 6355200 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 3206171 Code::Enum Code::GetCodeEnumValue(Code code)
658 {
659
1/2
✓ Branch 0 taken 82238791 times.
✗ Branch 1 not taken.
82238791 for (size_t i = 0; i < static_cast<size_t>(COUNT); i++)
660 {
661
3/4
✓ Branch 1 taken 82238791 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3206171 times.
✓ Branch 4 taken 79032620 times.
82238791 if (static_cast<Enum>(i) == code) { return static_cast<Enum>(i); }
662 }
663 return Code::None;
664 }
665
666 3206171 Code::Enum Code::getEnumValue() const
667 {
668 3206171 return GetCodeEnumValue(*this);
669 }
670
671 // #########################################################################################################################################
672
673 363776 Code operator|(const Code& lhs, const Code& rhs)
674 {
675 363776 return Code(lhs.value | rhs.value);
676 }
677 363688 Code operator|(const Code& lhs, const Code::Enum& rhs)
678 {
679
1/2
✓ Branch 1 taken 363688 times.
✗ Branch 2 not taken.
363688 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 103968 Code operator&(const Code& lhs, const Code& rhs)
698 {
699 103968 return Code(lhs.value & rhs.value);
700 }
701 58784855 Code operator&(const Code& lhs, const Code::Enum& rhs)
702 {
703
1/2
✓ Branch 2 taken 58783717 times.
✗ Branch 3 not taken.
58784855 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 363688 Code operator|(const Code::Enum& lhs, const Code::Enum& rhs)
711 {
712
2/4
✓ Branch 1 taken 363688 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 363688 times.
✗ Branch 5 not taken.
363688 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 55952 Code Code::operator~() const
731 {
732 55952 return Code(~value);
733 }
734
735 // #########################################################################################################################################
736
737 954367141 bool operator==(const Code& lhs, const Code& rhs)
738 {
739 954367141 return lhs.value == rhs.value;
740 }
741
742 202276578 bool operator==(const Code& lhs, const Code::Enum& rhs)
743 {
744
1/2
✓ Branch 1 taken 202290212 times.
✗ Branch 2 not taken.
202276578 return lhs.value == Code(rhs).value;
745 }
746
747 82238791 bool operator==(const Code::Enum& lhs, const Code& rhs)
748 {
749
1/2
✓ Branch 1 taken 82238791 times.
✗ Branch 2 not taken.
82238791 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 16 void from_json(const json& j, Code& data)
1195 {
1196
2/4
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✗ Branch 5 not taken.
16 data = Code(Code::Set(j.get<std::string>()));
1197 16 }
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