GCC Code Coverage Report


Directory: ./
File: src/detID/TBName.test.cc
Date: 2025-09-01 06:19:01
Exec Total Coverage
Lines: 161 167 96.4%
Functions: 34 34 100.0%
Branches: 315 428 73.6%

Line Branch Exec Source
1 #include "na64detID/TBName.hh"
2 #include "na64detID/TBNameErrors.hh"
3
4 #include <gtest/gtest.h>
5
6 /**\file tests/TBName.cc
7 *
8 * Tests methods of nameutils::DetectorNaming class providing mapping of NA58/NA64
9 * so-called TBNames into numerical ID format of na64dp.
10 * */
11
12 namespace na64dp {
13
14 8 TEST(NameMappings, NameRendering) {
15 2 std::map<std::string, std::string> ctx;
16
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
4 ctx["foo"] = "one";
17
18
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
4 EXPECT_STREQ( "one", util::str_subst( "{foo}", ctx ).c_str() );
19
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
4 EXPECT_STREQ( "one", util::str_subst( "{foo}", ctx ).c_str() );
20
21
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
4 ctx["bar"] = "two";
22
23 //ASSERT_THROW( util::str_subst( "{foo", ctx ), std::runtime_error );
24 //ASSERT_THROW( util::str_subst( "fo}{o", ctx ), std::runtime_error );
25
26
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
4 EXPECT_STREQ( "one", util::str_subst( "{foo}", ctx ).c_str() );
27
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
4 EXPECT_STREQ( "one", util::str_subst( "{foo}", ctx ).c_str() );
28
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
4 EXPECT_STREQ( "onetwo", util::str_subst( "{foo}two", ctx ).c_str() );
29
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
4 EXPECT_STREQ( "twoone", util::str_subst( "two{foo}", ctx ).c_str() );
30
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
4 EXPECT_STREQ( "onetwo", util::str_subst( "{foo}{bar}", ctx ).c_str() );
31 2 }
32
33 class NameMappingsTest : public ::testing::Test {
34 private:
35 7 static void type_a_append_completion_context( DetID did
36 , std::map<std::string, std::string> & m ) {
37
2/2
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 2 times.
7 if( ! did.is_payload_set() ) return;
38
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if( 1 == did.payload() ) {
39 m["pl"] = "undefined";
40 return;
41 }
42
2/2
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 1 times.
2 if( 2 == did.payload() ) {
43
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 m["pl"] = "foo";
44 1 return;
45 }
46
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 if( 3 == did.payload() ) {
47
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 m["pl"] = "bar";
48 1 return;
49 }
50 }
51 2 static void type_a_to_string( DetIDPayload_t pt
52 , char * s
53 , size_t available ) {
54
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
2 if( pt == 0x1 ) {
55 assert(available);
56 *s = '\0';
57 return;
58 }
59
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 if( pt == 0x2 ) {
60 1 strncpy( s, "foo", available );
61 1 return;
62 }
63
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 if( pt == 0x3 ) {
64 1 strncpy( s, "bar", available );
65 1 return;
66 }
67 assert(false);
68 }
69 6 static DetIDPayload_t type_a_from_string( const char * s ) {
70
2/4
✓ Branch 0 taken 6 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 6 times.
6 if(!s || '\0' == s[0]) return 1;
71
1/1
✓ Branch 1 taken 6 times.
6 std::string chck(s);
72
3/3
✓ Branch 1 taken 6 times.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 4 times.
6 if( chck == "foo" ) return 2;
73
3/3
✓ Branch 1 taken 4 times.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
4 if( chck == "bar" ) return 3;
74 2 return 0x0;
75 6 }
76 public:
77 nameutils::DetectorNaming m;
78 const DetChip_t tstADID, tstBDID;
79 const DetKin_t tstKinA1ID, tstKinA2ID, tstKinA3ID
80 , tstKinB1ID, tstKinB2ID;
81
82 18 NameMappingsTest() : tstADID( aux::gChipIDMax-1 )
83 9 , tstBDID( aux::gChipIDMax )
84 9 , tstKinA1ID(0x1)
85 9 , tstKinA2ID(0x2)
86 9 , tstKinA3ID(0x3)
87 9 , tstKinB1ID(0x1)
88 9 , tstKinB2ID(0x12)
89 {
90 // Add two chips
91 {
92 auto & ct
93
4/4
✓ Branch 1 taken 9 times.
✓ Branch 4 taken 9 times.
✓ Branch 7 taken 9 times.
✓ Branch 10 taken 9 times.
54 = m.chip_add( "TESTA", tstADID);
94
1/1
✓ Branch 1 taken 9 times.
9 ct.description = "Testing chip #1";
95
1/1
✓ Branch 1 taken 9 times.
9 ct.pathFormat = "{kin}{statNum2}/{hist}";
96 9 ct.append_completion_context = type_a_append_completion_context;
97 9 ct.to_string = type_a_to_string;
98 9 ct.from_string = type_a_from_string;
99 }
100
101 {
102 auto & ct
103
4/4
✓ Branch 1 taken 9 times.
✓ Branch 4 taken 9 times.
✓ Branch 7 taken 9 times.
✓ Branch 10 taken 9 times.
54 = m.chip_add( "TESTB", tstBDID );
104
1/1
✓ Branch 1 taken 9 times.
9 ct.description = "Testing chip #2";
105
1/1
✓ Branch 1 taken 9 times.
9 ct.pathFormat = "{kin}{statNum2}/{hist}";
106 //ct.append_completion_context = t2_append_completion_context;
107 //ct.to_string = t2_to_string;
108 //ct.from_string = t2_from_string;
109 }
110
111 // Define kin #1 for first chip
112 {
113 auto & fts =
114
6/6
✓ Branch 1 taken 9 times.
✓ Branch 4 taken 9 times.
✓ Branch 7 taken 9 times.
✓ Branch 10 taken 9 times.
✓ Branch 13 taken 9 times.
✓ Branch 16 taken 9 times.
90 m.define_kin( "TSTF", tstKinA1ID
115 , "TESTA"
116 , "{kin}{statNum2}{pl}"
117 , "Testing kin of detectors, chip#1"
118 );
119
1/1
✓ Branch 1 taken 9 times.
9 fts.dddNameFormat = "{kin}{statNum2}";
120 }
121 // Define kin #2 for first chip
122 {
123 auto & fts =
124
6/6
✓ Branch 1 taken 9 times.
✓ Branch 4 taken 9 times.
✓ Branch 7 taken 9 times.
✓ Branch 10 taken 9 times.
✓ Branch 13 taken 9 times.
✓ Branch 16 taken 9 times.
90 m.define_kin( "TETF"
125 9 , tstKinA2ID
126 , "TESTA"
127 , "{kin}{statNum2}"
128 , "Testing kin of detectors, chip#1"
129 );
130
1/1
✓ Branch 1 taken 9 times.
9 fts.dddNameFormat = "{kin}{statNum2}__";
131 }
132 // Represents an important case of detector without station id
133 {
134 auto & fts =
135
6/6
✓ Branch 1 taken 9 times.
✓ Branch 4 taken 9 times.
✓ Branch 7 taken 9 times.
✓ Branch 10 taken 9 times.
✓ Branch 13 taken 9 times.
✓ Branch 16 taken 9 times.
90 m.define_kin( "SNGL"
136 9 , tstKinA3ID
137 , "TESTA"
138 , "{kin}:{pl}"
139 , "Testing kin of detectors, chip#1"
140 );
141
1/1
✓ Branch 1 taken 9 times.
9 fts.dddNameFormat = "{kin}";
142 }
143 // NOTE: contrary to kin names, non-unique chip+kin pairs are allowed
144 // for different kin names.
145 // This allows us to unite some redundant TBNames classification.
146 // For example, GM01 and GEM15 might be physically same detectors with
147 // different naming scheme, but this mappings should still allow one
148 // to trait them as if they are of the same kin.
149 // Define single kin for second chip
150 {
151 auto & fts =
152
6/6
✓ Branch 1 taken 9 times.
✓ Branch 4 taken 9 times.
✓ Branch 7 taken 9 times.
✓ Branch 10 taken 9 times.
✓ Branch 13 taken 9 times.
✓ Branch 16 taken 9 times.
90 m.define_kin( "TSTS"
153 9 , tstKinB1ID
154 , "TESTB"
155 , "{kin}{statNum}"
156 , "Testing kin of detectors, chip#2"
157 );
158
1/1
✓ Branch 1 taken 9 times.
9 fts.dddNameFormat = "{kin}{statNum}";
159 }
160 {
161 auto & fts =
162
6/6
✓ Branch 1 taken 9 times.
✓ Branch 4 taken 9 times.
✓ Branch 7 taken 9 times.
✓ Branch 10 taken 9 times.
✓ Branch 13 taken 9 times.
✓ Branch 16 taken 9 times.
90 m.define_kin( "SNGLB"
163 9 , tstKinB2ID
164 , "TESTB"
165 , "{kin}"
166 , "Testing kin of detectors, chip#2"
167 );
168
1/1
✓ Branch 1 taken 9 times.
9 fts.dddNameFormat = "{kin}";
169 }
170 9 }
171 };
172
173 8 TEST_F(NameMappingsTest, insertionFailures) {
174 // This must not be added due to range overflow
175
9/15
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✓ Branch 49 taken 1 times.
14 ASSERT_THROW( m.chip_add( "TESTC"
176 , aux::gChipIDMax+1
177 )
178
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 , errors::IDIsOutOfRange );
179 // This must fail due to non-unique kin name
180
11/17
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 59 taken 1 times.
22 ASSERT_THROW( m.define_kin( "TETF"
181 , tstKinA1ID+1
182 , "TESTB"
183 , "{kin}{statNum2}{projection}__"
184 , "Testing kin of detectors, chip#?"
185 )
186 , errors::NameIsNotUniq
187
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 );
188 // This must not be added due to range overflow
189
11/17
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 59 taken 1 times.
22 ASSERT_THROW( m.define_kin( "TETE"
190 , 0
191 , "TESTB"
192 , ""
193 , "Testing kin of detectors, chip#?"
194 )
195 , errors::IDIsOutOfRange
196
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 );
197
11/17
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 59 taken 1 times.
22 ASSERT_THROW( m.define_kin( "TETE"
198 , aux::gKinIDMax + 1
199 , "TESTB"
200 , ""
201 , "Testing kin of detectors, chip#?"
202 )
203 , errors::IDIsOutOfRange
204
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 );
205 // This must not be added due to non-existing chip
206
11/17
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 59 taken 1 times.
22 ASSERT_THROW( m.define_kin( "TETE"
207 , 0x1
208 , "TESTC"
209 , ""
210 , "Testing kin of detectors, chip#?"
211 )
212 , errors::NoEntryForKey<std::string>
213
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 );
214 }
215
216 8 TEST_F(NameMappingsTest, nameIndexInitializationValidity){
217 // retrieve chip id by name
218
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
6 EXPECT_EQ( tstADID, m.chip_id("TESTA"));
219
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
6 EXPECT_EQ( tstBDID, m.chip_id("TESTB"));
220 // retrieve chip name by ID
221
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
2 EXPECT_STREQ( "TESTA", m.chip_features( tstADID ).name.c_str() );
222
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
2 EXPECT_STREQ( "TESTB", m.chip_features( tstBDID ).name.c_str() );
223 2 }
224
225 8 TEST_F(NameMappingsTest, generalConversionsValid){
226 // parse tbnames
227 {
228
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
4 DetID did = m.id( "TETF01" );
229
230
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did.chip(), tstADID );
231
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did.kin(), tstKinA2ID );
232
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_FALSE( did.is_payload_set() );
233
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
2 EXPECT_STREQ( "TETF01__", m[did].c_str() );
234
1/1
✓ Branch 1 taken 1 times.
2 did.number(23);
235
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
2 EXPECT_STREQ( "TETF23__", m[did].c_str() );
236 }
237 {
238
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
4 DetID did = m["TSTS28"];
239
240
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did.chip(), tstBDID );
241
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did.kin(), tstKinB1ID );
242
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_FALSE( did.is_payload_set() );
243
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
2 EXPECT_STREQ( "TSTS28", m[did].c_str() );
244 // TODO: EXPECT_STREQ( "TSTS28Uxysome", m.full_detector_name(did).c_str() );
245 }
246 2 }
247
248 8 TEST_F(NameMappingsTest, fullConversions) {
249 { // no payload stub
250 2 const char * str = "TETF02__";
251
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
4 DetID did1 = m[str];
252
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did1.chip(), tstADID );
253
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did1.kin(), tstKinA2ID );
254
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did1.number(), 2 );
255
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_FALSE( did1.is_payload_set() );
256
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
2 EXPECT_STREQ( m[did1].c_str(), str );
257 }
258 { // no payload stub
259
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
4 DetID did1 = m["TSTF02foo"];
260
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did1.chip(), tstADID );
261
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did1.kin(), tstKinA1ID );
262
3/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
2 EXPECT_EQ( did1.number(), 2 );
263
3/5
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
2 ASSERT_TRUE( did1.is_payload_set() );
264
4/6
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
2 ASSERT_EQ( did1.payload(), 2 );
265
6/8
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
6 ASSERT_EQ( m["TETF12bar"].payload(), 3 );
266 }
267 }
268
269 8 TEST_F( NameMappingsTest, setUnsetDiffersForStation ) {
270 2 DetID did;
271 2 const char * nm = "TETF";
272
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
4 did = m[nm];
273
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_chip_set() );
274
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_kin_set() );
275
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_FALSE( did.is_number_set() );
276
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_FALSE( did.is_payload_set() );
277 #if 1
278
6/12
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✓ Branch 36 taken 1 times.
2 EXPECT_THROW( m[did].c_str()
279 2 , errors::IncompleteDetectorID );
280 #else
281 try {
282 std::string nm = m[did];
283 FAIL() << "Expected throw on incomplete det id to-str op.";
284 } catch( errors::IncompleteDetectorID & e ) {
285 // ...
286 } catch( std::exception & e ) {
287 FAIL() << "Expected throw specific type on incomplete det id"
288 " to-str op, got: " << e.what();
289 }
290 #endif
291 2 }
292
293 8 TEST_F(NameMappingsTest, setUnsetDiffersForPlane) {
294 2 DetID did;
295 2 const char * nm = "TETF22__";
296
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
4 did = m[nm];
297
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_chip_set() );
298
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_kin_set() );
299
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_number_set() );
300
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_FALSE( did.is_payload_set() );
301
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
2 EXPECT_STREQ( nm, m[did].c_str() );
302 2 }
303
304 8 TEST_F(NameMappingsTest, setUnsetDiffersForDetEntity) {
305 2 DetID did;
306 2 const char * nm = "TSTF02bar";
307
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
4 did = m[nm];
308
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_chip_set() );
309
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_kin_set() );
310
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_number_set() );
311
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_payload_set() );
312
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
2 EXPECT_STREQ( nm, m[did].c_str() );
313 2 }
314
315 8 TEST_F(NameMappingsTest, exceptionThrownForNoPayloadTranslation) {
316 2 DetID did;
317
6/12
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
6 EXPECT_THROW( did = m["TSTS01:foo"]
318 2 , std::exception );
319
6/12
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
6 EXPECT_THROW( did = m["TSTS01:foo"]
320 2 , std::exception );
321 2 }
322
323 8 TEST_F(NameMappingsTest, setUnsetDiffersForSingleDetEntity) {
324 2 DetID did;
325 2 const char * nm = "SNGL:foo";
326
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
4 did = m[nm];
327
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_chip_set() );
328
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_kin_set() );
329
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_FALSE( did.is_number_set() );
330
2/3
✓ Branch 1 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 EXPECT_TRUE( did.is_payload_set() );
331
3/4
✓ Branch 1 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
2 EXPECT_STREQ( nm, m[did].c_str() );
332 2 }
333
334 } // namespace na64dp
335
336