Line | Branch | Exec | Source |
---|---|---|---|
1 | // test configuration | ||
2 | |||
3 | #include <cassert> | ||
4 | #include <iguana/algorithms/Algorithm.h> | ||
5 | |||
6 | 3 | inline int TestConfig(int test_num, bool verbose) | |
7 | { | ||
8 |
1/2✗ Branch 0 (2→3) not taken.
✓ Branch 1 (2→5) taken 3 times.
|
3 | if(test_num == 0) { |
9 | ✗ | fmt::print(stderr, "ERROR: need a test number\n"); | |
10 | ✗ | return 1; | |
11 | } | ||
12 | // first, some sanity checks of `ConfigFileReader` | ||
13 | 3 | iguana::ConfigFileReader bad_config("bad_config"); | |
14 |
2/4✓ Branch 0 (6→7) taken 3 times.
✗ Branch 1 (6→1834) not taken.
✓ Branch 2 (7→8) taken 3 times.
✗ Branch 3 (7→963) not taken.
|
3 | bad_config.AddDirectory("non_existent_directory"); |
15 | try { | ||
16 |
2/4✓ Branch 0 (13→14) taken 3 times.
✗ Branch 1 (13→975) not taken.
✗ Branch 2 (14→15) not taken.
✓ Branch 3 (14→969) taken 3 times.
|
3 | bad_config.AddFile("non_existent_file.yaml"); |
17 | } | ||
18 |
1/2✗ Branch 0 (975→976) not taken.
✓ Branch 1 (975→977) taken 3 times.
|
3 | catch(std::exception const& ex) { |
19 | 3 | fmt::print("excpected exception thrown when trying to add non-existent file\n"); | |
20 | 3 | } | |
21 |
1/2✓ Branch 0 (21→22) taken 3 times.
✗ Branch 1 (21→1834) not taken.
|
3 | bad_config.PrintDirectories(); |
22 | |||
23 | // then test configuring an algorithm | ||
24 |
3/6✓ Branch 0 (22→23) taken 3 times.
✗ Branch 1 (22→1834) not taken.
✓ Branch 2 (23→24) taken 3 times.
✗ Branch 3 (23→982) not taken.
✗ Branch 4 (29→30) not taken.
✓ Branch 5 (29→31) taken 3 times.
|
6 | auto algo = iguana::AlgorithmFactory::Create("example::ExampleAlgorithm"); |
25 |
4/8✗ Branch 0 (29→30) not taken.
✓ Branch 1 (29→31) taken 3 times.
✓ Branch 2 (31→32) taken 3 times.
✗ Branch 3 (31→1830) not taken.
✓ Branch 4 (32→33) taken 3 times.
✗ Branch 5 (32→988) not taken.
✓ Branch 6 (38→39) taken 3 times.
✗ Branch 7 (38→1830) not taken.
|
6 | algo->SetOption("log", verbose ? "debug" : "info"); |
26 |
3/6✓ Branch 0 (38→39) taken 3 times.
✗ Branch 1 (38→1830) not taken.
✓ Branch 2 (39→40) taken 3 times.
✗ Branch 3 (39→994) not taken.
✓ Branch 4 (45→46) taken 3 times.
✗ Branch 5 (45→1830) not taken.
|
6 | algo->SetConfigDirectory("src/iguana/tests"); // must be relative to build directory |
27 |
2/4✓ Branch 0 (46→47) taken 3 times.
✗ Branch 1 (46→1000) not taken.
✓ Branch 2 (52→53) taken 3 times.
✗ Branch 3 (52→1830) not taken.
|
6 | algo->SetConfigFile(fmt::format("test_{}.yaml", test_num)); |
28 |
1/2✓ Branch 0 (52→53) taken 3 times.
✗ Branch 1 (52→1830) not taken.
|
3 | algo->Start(); |
29 | |||
30 |
3/4✓ Branch 0 (53→54) taken 1 times.
✓ Branch 1 (53→274) taken 1 times.
✓ Branch 2 (53→444) taken 1 times.
✗ Branch 3 (53→956) not taken.
|
3 | switch(test_num) { |
31 | |||
32 | case 1: { | ||
33 | // test `GetOptionScalar` | ||
34 |
5/10✓ Branch 0 (54→55) taken 1 times.
✗ Branch 1 (54→1830) not taken.
✓ Branch 2 (56→57) taken 1 times.
✗ Branch 3 (56→1012) not taken.
✓ Branch 4 (57→58) taken 1 times.
✗ Branch 5 (57→1006) not taken.
✗ Branch 6 (58→59) not taken.
✓ Branch 7 (58→60) taken 1 times.
✓ Branch 8 (66→67) taken 1 times.
✗ Branch 9 (66→1830) not taken.
|
3 | assert((algo->GetOptionScalar<int>("scalar_int") == 1)); |
35 |
5/10✓ Branch 0 (66→67) taken 1 times.
✗ Branch 1 (66→1830) not taken.
✓ Branch 2 (68→69) taken 1 times.
✗ Branch 3 (68→1020) not taken.
✓ Branch 4 (69→70) taken 1 times.
✗ Branch 5 (69→1014) not taken.
✗ Branch 6 (70→71) not taken.
✓ Branch 7 (70→72) taken 1 times.
✓ Branch 8 (78→79) taken 1 times.
✗ Branch 9 (78→1830) not taken.
|
3 | assert((algo->GetOptionScalar<double>("scalar_double") == 2.5)); |
36 |
4/8✓ Branch 0 (78→79) taken 1 times.
✗ Branch 1 (78→1830) not taken.
✓ Branch 2 (80→81) taken 1 times.
✗ Branch 3 (80→1028) not taken.
✓ Branch 4 (81→82) taken 1 times.
✗ Branch 5 (81→1022) not taken.
✗ Branch 6 (82→83) not taken.
✓ Branch 7 (82→84) taken 1 times.
|
3 | assert((algo->GetOptionScalar<std::string>("scalar_string") == "lizard")); |
37 | // test `GetOptionVector` | ||
38 |
6/14✓ Branch 0 (95→96) taken 1 times.
✗ Branch 1 (95→1830) not taken.
✓ Branch 2 (96→97) taken 1 times.
✗ Branch 3 (96→1038) not taken.
✓ Branch 4 (98→99) taken 1 times.
✗ Branch 5 (98→1036) not taken.
✓ Branch 6 (99→100) taken 1 times.
✗ Branch 7 (99→1030) not taken.
✗ Branch 8 (100→101) not taken.
✓ Branch 9 (100→102) taken 1 times.
✓ Branch 10 (111→112) taken 1 times.
✗ Branch 11 (111→114) not taken.
✗ Branch 12 (1038→1039) not taken.
✗ Branch 13 (1038→1041) not taken.
|
3 | assert((algo->GetOptionVector<int>("vector_int") == std::vector<int>{1, 2, 3})); |
39 |
6/14✓ Branch 0 (114→115) taken 1 times.
✗ Branch 1 (114→1830) not taken.
✓ Branch 2 (115→116) taken 1 times.
✗ Branch 3 (115→1050) not taken.
✓ Branch 4 (117→118) taken 1 times.
✗ Branch 5 (117→1048) not taken.
✓ Branch 6 (118→119) taken 1 times.
✗ Branch 7 (118→1042) not taken.
✗ Branch 8 (127→128) not taken.
✓ Branch 9 (127→129) taken 1 times.
✓ Branch 10 (138→139) taken 1 times.
✗ Branch 11 (138→141) not taken.
✗ Branch 12 (1050→1051) not taken.
✗ Branch 13 (1050→1053) not taken.
|
4 | assert((algo->GetOptionVector<double>("vector_double") == std::vector<double>{1.5, 2.5})); |
40 |
12/28✓ Branch 0 (142→143) taken 4 times.
✗ Branch 1 (142→1073) not taken.
✓ Branch 2 (144→142) taken 4 times.
✓ Branch 3 (144→145) taken 1 times.
✓ Branch 4 (145→146) taken 1 times.
✗ Branch 5 (145→1064) not taken.
✓ Branch 6 (146→147) taken 1 times.
✗ Branch 7 (146→1062) not taken.
✓ Branch 8 (148→149) taken 1 times.
✗ Branch 9 (148→1060) not taken.
✓ Branch 10 (149→150) taken 1 times.
✗ Branch 11 (149→1054) not taken.
✗ Branch 12 (150→151) not taken.
✓ Branch 13 (150→152) taken 1 times.
✓ Branch 14 (161→162) taken 4 times.
✓ Branch 15 (161→168) taken 1 times.
✓ Branch 16 (162→163) taken 4 times.
✗ Branch 17 (162→165) not taken.
✓ Branch 18 (168→169) taken 1 times.
✗ Branch 19 (168→1830) not taken.
✗ Branch 20 (1065→1066) not taken.
✗ Branch 21 (1065→1072) not taken.
✗ Branch 22 (1066→1067) not taken.
✗ Branch 23 (1066→1069) not taken.
✗ Branch 24 (1074→1075) not taken.
✗ Branch 25 (1074→1081) not taken.
✗ Branch 26 (1075→1076) not taken.
✗ Branch 27 (1075→1078) not taken.
|
11 | assert((algo->GetOptionVector<std::string>("vector_string") == std::vector<std::string>{"spider", "bat", "chameleon", "spider"})); |
41 | // test `GetOptionSet` | ||
42 |
4/8✓ Branch 0 (168→169) taken 1 times.
✗ Branch 1 (168→1830) not taken.
✓ Branch 2 (170→171) taken 1 times.
✗ Branch 3 (170→1088) not taken.
✓ Branch 4 (171→172) taken 1 times.
✗ Branch 5 (171→1082) not taken.
✗ Branch 6 (178→179) not taken.
✓ Branch 7 (178→180) taken 1 times.
|
3 | auto s = algo->GetOptionSet<std::string>("vector_string"); |
43 |
1/2✗ Branch 0 (178→179) not taken.
✓ Branch 1 (178→180) taken 1 times.
|
1 | assert((s.size() == 3)); |
44 |
2/4✓ Branch 0 (180→181) taken 1 times.
✗ Branch 1 (180→1187) not taken.
✗ Branch 2 (181→182) not taken.
✓ Branch 3 (181→183) taken 1 times.
|
1 | assert((s.find("spider") != s.end())); |
45 |
3/6✓ Branch 0 (188→189) taken 1 times.
✗ Branch 1 (188→1187) not taken.
✗ Branch 2 (189→190) not taken.
✓ Branch 3 (189→191) taken 1 times.
✓ Branch 4 (196→197) taken 1 times.
✗ Branch 5 (196→1098) not taken.
|
2 | assert((s.find("bee") == s.end())); |
46 | // test empty access - expect exceptions, so just catch them and do nothing | ||
47 | try { | ||
48 |
3/6✓ Branch 0 (196→197) taken 1 times.
✗ Branch 1 (196→1098) not taken.
✓ Branch 2 (198→199) taken 1 times.
✗ Branch 3 (198→1096) not taken.
✗ Branch 4 (199→200) not taken.
✓ Branch 5 (199→1090) taken 1 times.
|
3 | algo->GetOptionScalar<int>("scalar_empty"); |
49 | ✗ | fmt::print(stderr, "ERROR: accessing 'scalar_empty' did not throw exception\n"); | |
50 | ✗ | return 1; | |
51 | } | ||
52 |
1/2✗ Branch 0 (1098→1099) not taken.
✓ Branch 1 (1098→1100) taken 1 times.
|
1 | catch(std::exception const& ex) { |
53 | 1 | fmt::print("SUCCESS: accessing 'scalar_empty' threw an expected exception\n"); | |
54 | 1 | } | |
55 | try { | ||
56 |
3/6✓ Branch 0 (209→210) taken 1 times.
✗ Branch 1 (209→1112) not taken.
✗ Branch 2 (210→211) not taken.
✓ Branch 3 (210→1106) taken 1 times.
✓ Branch 4 (1103→208) taken 1 times.
✗ Branch 5 (1103→1114) not taken.
|
3 | algo->GetOptionVector<int>("vector_empty"); |
57 | ✗ | fmt::print(stderr, "ERROR: accessing 'vector_empty' did not throw exception\n"); | |
58 | ✗ | return 1; | |
59 | } | ||
60 |
1/2✗ Branch 0 (1114→1115) not taken.
✓ Branch 1 (1114→1116) taken 1 times.
|
1 | catch(std::exception const& ex) { |
61 | 1 | fmt::print("SUCCESS: accessing 'vector_empty' threw an expected exception\n"); | |
62 | 1 | } | |
63 | try { | ||
64 |
3/6✓ Branch 0 (223→224) taken 1 times.
✗ Branch 1 (223→1128) not taken.
✗ Branch 2 (224→225) not taken.
✓ Branch 3 (224→1122) taken 1 times.
✓ Branch 4 (1119→222) taken 1 times.
✗ Branch 5 (1119→1130) not taken.
|
3 | algo->GetOptionSet<int>("vector_empty"); |
65 | ✗ | fmt::print(stderr, "ERROR: accessing 'vector_empty' as a `set` did not throw exception\n"); | |
66 | ✗ | return 1; | |
67 | } | ||
68 |
1/2✗ Branch 0 (1130→1131) not taken.
✓ Branch 1 (1130→1132) taken 1 times.
|
1 | catch(std::exception const& ex) { |
69 | 1 | fmt::print("SUCCESS: accessing 'vector_empty' as a `set` threw an expected exception\n"); | |
70 | 1 | } | |
71 | // test access to a key that does not exist | ||
72 | try { | ||
73 |
3/6✓ Branch 0 (235→236) taken 1 times.
✗ Branch 1 (235→1144) not taken.
✗ Branch 2 (236→237) not taken.
✓ Branch 3 (236→1138) taken 1 times.
✓ Branch 4 (1135→234) taken 1 times.
✗ Branch 5 (1135→1146) not taken.
|
3 | algo->GetOptionScalar<int>("non_existent_scalar"); |
74 | ✗ | fmt::print(stderr, "ERROR: accessing 'non_existent_scalar' did not throw exception\n"); | |
75 | ✗ | return 1; | |
76 | } | ||
77 |
1/2✗ Branch 0 (1146→1147) not taken.
✓ Branch 1 (1146→1148) taken 1 times.
|
1 | catch(std::exception const& ex) { |
78 | 1 | fmt::print("SUCCESS: accessing 'non_existent_scalar' threw an expected exception\n"); | |
79 | 1 | } | |
80 | try { | ||
81 |
3/6✓ Branch 0 (246→247) taken 1 times.
✗ Branch 1 (246→1160) not taken.
✗ Branch 2 (247→248) not taken.
✓ Branch 3 (247→1154) taken 1 times.
✓ Branch 4 (1151→245) taken 1 times.
✗ Branch 5 (1151→1162) not taken.
|
3 | algo->GetOptionVector<int>("non_existent_vector"); |
82 | ✗ | fmt::print(stderr, "ERROR: accessing 'non_existent_vector' did not throw exception\n"); | |
83 | ✗ | return 1; | |
84 | } | ||
85 |
1/2✗ Branch 0 (1162→1163) not taken.
✓ Branch 1 (1162→1164) taken 1 times.
|
1 | catch(std::exception const& ex) { |
86 | 1 | fmt::print("SUCCESS: accessing 'non_existent_vector' threw an expected exception\n"); | |
87 | 1 | } | |
88 | try { | ||
89 |
3/6✓ Branch 0 (260→261) taken 1 times.
✗ Branch 1 (260→1176) not taken.
✗ Branch 2 (261→262) not taken.
✓ Branch 3 (261→1170) taken 1 times.
✓ Branch 4 (1167→259) taken 1 times.
✗ Branch 5 (1167→1178) not taken.
|
3 | algo->GetOptionSet<int>("non_existent_vector"); |
90 | ✗ | fmt::print(stderr, "ERROR: accessing 'non_existent_vector' as a `set` did not throw exception\n"); | |
91 | ✗ | return 1; | |
92 | } | ||
93 |
1/2✗ Branch 0 (1178→1179) not taken.
✓ Branch 1 (1178→1180) taken 1 times.
|
1 | catch(std::exception const& ex) { |
94 | 1 | fmt::print("SUCCESS: accessing 'non_existent_vector' as a `set` threw an expected exception\n"); | |
95 | 1 | } | |
96 | break; | ||
97 | } | ||
98 | |||
99 | case 2: { | ||
100 |
7/14✓ Branch 0 (276→277) taken 1 times.
✗ Branch 1 (276→1197) not taken.
✓ Branch 2 (277→278) taken 1 times.
✗ Branch 3 (277→1195) not taken.
✓ Branch 4 (278→279) taken 1 times.
✗ Branch 5 (278→1189) not taken.
✗ Branch 6 (279→280) not taken.
✓ Branch 7 (279→281) taken 1 times.
✓ Branch 8 (288→289) taken 2 times.
✓ Branch 9 (288→291) taken 1 times.
✓ Branch 10 (291→292) taken 1 times.
✗ Branch 11 (291→1220) not taken.
✗ Branch 12 (1198→1199) not taken.
✗ Branch 13 (1198→1201) not taken.
|
4 | assert((algo->GetOptionScalar<double>("t1s1", {"tree1", "scalar1"}) == 1.5)); |
101 |
7/14✓ Branch 0 (293→294) taken 1 times.
✗ Branch 1 (293→1215) not taken.
✓ Branch 2 (294→295) taken 1 times.
✗ Branch 3 (294→1213) not taken.
✓ Branch 4 (295→296) taken 1 times.
✗ Branch 5 (295→1207) not taken.
✗ Branch 6 (296→297) not taken.
✓ Branch 7 (296→298) taken 1 times.
✓ Branch 8 (305→306) taken 2 times.
✓ Branch 9 (305→308) taken 1 times.
✓ Branch 10 (308→309) taken 1 times.
✗ Branch 11 (308→1238) not taken.
✗ Branch 12 (1216→1217) not taken.
✗ Branch 13 (1216→1219) not taken.
|
4 | assert((algo->GetOptionScalar<double>("t1s2", {"tree1", "scalar2"}) == 2.5)); |
102 |
6/12✓ Branch 0 (311→312) taken 1 times.
✗ Branch 1 (311→1233) not taken.
✓ Branch 2 (312→313) taken 1 times.
✗ Branch 3 (312→1231) not taken.
✓ Branch 4 (313→314) taken 1 times.
✗ Branch 5 (313→1225) not taken.
✗ Branch 6 (314→315) not taken.
✓ Branch 7 (314→316) taken 1 times.
✓ Branch 8 (323→324) taken 3 times.
✓ Branch 9 (323→326) taken 1 times.
✗ Branch 10 (1234→1235) not taken.
✗ Branch 11 (1234→1237) not taken.
|
5 | assert((algo->GetOptionScalar<double>("t2t1s1", {"tree2", "tree1", "scalar1"}) == 3.5)); |
103 |
13/30✓ Branch 0 (327→328) taken 2 times.
✗ Branch 1 (327→1272) not taken.
✓ Branch 2 (329→327) taken 2 times.
✓ Branch 3 (329→330) taken 1 times.
✓ Branch 4 (330→331) taken 1 times.
✗ Branch 5 (330→1263) not taken.
✓ Branch 6 (335→336) taken 1 times.
✗ Branch 7 (335→1251) not taken.
✓ Branch 8 (336→337) taken 1 times.
✗ Branch 9 (336→1249) not taken.
✓ Branch 10 (337→338) taken 1 times.
✗ Branch 11 (337→1243) not taken.
✗ Branch 12 (338→339) not taken.
✓ Branch 13 (338→340) taken 1 times.
✓ Branch 14 (348→349) taken 4 times.
✓ Branch 15 (348→351) taken 1 times.
✓ Branch 16 (353→354) taken 2 times.
✓ Branch 17 (353→360) taken 1 times.
✓ Branch 18 (354→355) taken 2 times.
✗ Branch 19 (354→357) not taken.
✗ Branch 20 (1252→1253) not taken.
✗ Branch 21 (1252→1255) not taken.
✗ Branch 22 (1264→1265) not taken.
✗ Branch 23 (1264→1271) not taken.
✗ Branch 24 (1265→1266) not taken.
✗ Branch 25 (1265→1268) not taken.
✗ Branch 26 (1273→1274) not taken.
✗ Branch 27 (1273→1280) not taken.
✗ Branch 28 (1274→1275) not taken.
✗ Branch 29 (1274→1277) not taken.
|
11 | assert((algo->GetOptionVector<std::string>("t2t2t3v1", {"tree2", "tree2", "tree3", "vector1"}) == std::vector<std::string>{"gecko", "snake"})); |
104 |
8/18✓ Branch 0 (360→361) taken 1 times.
✗ Branch 1 (360→1830) not taken.
✓ Branch 2 (363→364) taken 1 times.
✗ Branch 3 (363→1289) not taken.
✓ Branch 4 (364→365) taken 1 times.
✗ Branch 5 (364→1287) not taken.
✓ Branch 6 (365→366) taken 1 times.
✗ Branch 7 (365→1281) not taken.
✗ Branch 8 (366→367) not taken.
✓ Branch 9 (366→368) taken 1 times.
✓ Branch 10 (378→379) taken 2 times.
✓ Branch 11 (378→381) taken 1 times.
✓ Branch 12 (381→382) taken 1 times.
✗ Branch 13 (381→384) not taken.
✗ Branch 14 (1290→1291) not taken.
✗ Branch 15 (1290→1293) not taken.
✗ Branch 16 (1299→1300) not taken.
✗ Branch 17 (1299→1302) not taken.
|
5 | assert((algo->GetOptionVector<int>("t2v2", {"tree2", "vector2"}) == std::vector<int>{3, -4, 5})); |
105 |
13/30✓ Branch 0 (385→386) taken 1 times.
✗ Branch 1 (385→1327) not taken.
✓ Branch 2 (387→385) taken 1 times.
✓ Branch 3 (387→388) taken 1 times.
✓ Branch 4 (388→389) taken 1 times.
✗ Branch 5 (388→1318) not taken.
✓ Branch 6 (390→391) taken 1 times.
✗ Branch 7 (390→1311) not taken.
✓ Branch 8 (391→392) taken 1 times.
✗ Branch 9 (391→1309) not taken.
✓ Branch 10 (392→393) taken 1 times.
✗ Branch 11 (392→1303) not taken.
✗ Branch 12 (393→394) not taken.
✓ Branch 13 (393→395) taken 1 times.
✓ Branch 14 (403→404) taken 1 times.
✓ Branch 15 (403→406) taken 1 times.
✓ Branch 16 (408→409) taken 1 times.
✓ Branch 17 (408→415) taken 1 times.
✓ Branch 18 (409→410) taken 1 times.
✗ Branch 19 (409→412) not taken.
✗ Branch 20 (1312→1313) not taken.
✗ Branch 21 (1312→1315) not taken.
✗ Branch 22 (1319→1320) not taken.
✗ Branch 23 (1319→1326) not taken.
✗ Branch 24 (1320→1321) not taken.
✗ Branch 25 (1320→1323) not taken.
✗ Branch 26 (1328→1329) not taken.
✗ Branch 27 (1328→1335) not taken.
✗ Branch 28 (1329→1330) not taken.
✗ Branch 29 (1329→1332) not taken.
|
6 | assert((algo->GetOptionVector<std::string>("vector1", {"vector1"}) == std::vector<std::string>{"bee"})); |
106 |
11/26✓ Branch 0 (416→417) taken 1 times.
✗ Branch 1 (416→1355) not taken.
✓ Branch 2 (418→416) taken 1 times.
✓ Branch 3 (418→419) taken 1 times.
✓ Branch 4 (419→420) taken 1 times.
✗ Branch 5 (419→1346) not taken.
✓ Branch 6 (420→421) taken 1 times.
✗ Branch 7 (420→1344) not taken.
✓ Branch 8 (422→423) taken 1 times.
✗ Branch 9 (422→1342) not taken.
✓ Branch 10 (423→424) taken 1 times.
✗ Branch 11 (423→1336) not taken.
✗ Branch 12 (424→425) not taken.
✓ Branch 13 (424→426) taken 1 times.
✓ Branch 14 (435→436) taken 1 times.
✓ Branch 15 (435→442) taken 1 times.
✓ Branch 16 (436→437) taken 1 times.
✗ Branch 17 (436→439) not taken.
✗ Branch 18 (1347→1348) not taken.
✗ Branch 19 (1347→1354) not taken.
✗ Branch 20 (1348→1349) not taken.
✗ Branch 21 (1348→1351) not taken.
✗ Branch 22 (1356→1357) not taken.
✗ Branch 23 (1356→1363) not taken.
✗ Branch 24 (1357→1358) not taken.
✗ Branch 25 (1357→1360) not taken.
|
5 | assert((algo->GetOptionVector<std::string>("vector1") == std::vector<std::string>{"bee"})); |
107 | 1 | break; | |
108 | } | ||
109 | |||
110 | case 3: { | ||
111 | // test InRange tree1 | ||
112 |
10/20✓ Branch 0 (445→446) taken 1 times.
✗ Branch 1 (445→1386) not taken.
✓ Branch 2 (446→447) taken 1 times.
✗ Branch 3 (446→1386) not taken.
✓ Branch 4 (447→448) taken 1 times.
✗ Branch 5 (447→1380) not taken.
✓ Branch 6 (451→452) taken 1 times.
✗ Branch 7 (451→1372) not taken.
✓ Branch 8 (452→453) taken 1 times.
✗ Branch 9 (452→1370) not taken.
✓ Branch 10 (453→454) taken 1 times.
✗ Branch 11 (453→1364) not taken.
✗ Branch 12 (454→455) not taken.
✓ Branch 13 (454→456) taken 1 times.
✓ Branch 14 (463→464) taken 3 times.
✓ Branch 15 (463→466) taken 1 times.
✓ Branch 16 (473→474) taken 1 times.
✗ Branch 17 (473→1413) not taken.
✗ Branch 18 (1373→1374) not taken.
✗ Branch 19 (1373→1376) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t1a", {"tree1", algo->GetConfig()->InRange("test_range", 1), "val"}) == 3)); |
113 |
10/20✓ Branch 0 (474→475) taken 1 times.
✗ Branch 1 (474→1413) not taken.
✓ Branch 2 (475→476) taken 1 times.
✗ Branch 3 (475→1413) not taken.
✓ Branch 4 (476→477) taken 1 times.
✗ Branch 5 (476→1407) not taken.
✓ Branch 6 (480→481) taken 1 times.
✗ Branch 7 (480→1399) not taken.
✓ Branch 8 (481→482) taken 1 times.
✗ Branch 9 (481→1397) not taken.
✓ Branch 10 (482→483) taken 1 times.
✗ Branch 11 (482→1391) not taken.
✗ Branch 12 (483→484) not taken.
✓ Branch 13 (483→485) taken 1 times.
✓ Branch 14 (492→493) taken 3 times.
✓ Branch 15 (492→495) taken 1 times.
✓ Branch 16 (502→503) taken 1 times.
✗ Branch 17 (502→1440) not taken.
✗ Branch 18 (1400→1401) not taken.
✗ Branch 19 (1400→1403) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t1b", {"tree1", algo->GetConfig()->InRange("test_range", 3), "val"}) == 3)); |
114 |
10/20✓ Branch 0 (503→504) taken 1 times.
✗ Branch 1 (503→1440) not taken.
✓ Branch 2 (504→505) taken 1 times.
✗ Branch 3 (504→1440) not taken.
✓ Branch 4 (505→506) taken 1 times.
✗ Branch 5 (505→1434) not taken.
✓ Branch 6 (509→510) taken 1 times.
✗ Branch 7 (509→1426) not taken.
✓ Branch 8 (510→511) taken 1 times.
✗ Branch 9 (510→1424) not taken.
✓ Branch 10 (511→512) taken 1 times.
✗ Branch 11 (511→1418) not taken.
✗ Branch 12 (512→513) not taken.
✓ Branch 13 (512→514) taken 1 times.
✓ Branch 14 (521→522) taken 3 times.
✓ Branch 15 (521→524) taken 1 times.
✓ Branch 16 (531→532) taken 1 times.
✗ Branch 17 (531→1467) not taken.
✗ Branch 18 (1427→1428) not taken.
✗ Branch 19 (1427→1430) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t1c", {"tree1", algo->GetConfig()->InRange("test_range", 5), "val"}) == 3)); // at a border |
115 |
10/20✓ Branch 0 (532→533) taken 1 times.
✗ Branch 1 (532→1467) not taken.
✓ Branch 2 (533→534) taken 1 times.
✗ Branch 3 (533→1467) not taken.
✓ Branch 4 (534→535) taken 1 times.
✗ Branch 5 (534→1461) not taken.
✓ Branch 6 (538→539) taken 1 times.
✗ Branch 7 (538→1453) not taken.
✓ Branch 8 (539→540) taken 1 times.
✗ Branch 9 (539→1451) not taken.
✓ Branch 10 (540→541) taken 1 times.
✗ Branch 11 (540→1445) not taken.
✗ Branch 12 (541→542) not taken.
✓ Branch 13 (541→543) taken 1 times.
✓ Branch 14 (550→551) taken 3 times.
✓ Branch 15 (550→553) taken 1 times.
✓ Branch 16 (560→561) taken 1 times.
✗ Branch 17 (560→1494) not taken.
✗ Branch 18 (1454→1455) not taken.
✗ Branch 19 (1454→1457) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t1d", {"tree1", algo->GetConfig()->InRange("test_range", 6), "val"}) == 4)); |
116 |
10/20✓ Branch 0 (561→562) taken 1 times.
✗ Branch 1 (561→1494) not taken.
✓ Branch 2 (562→563) taken 1 times.
✗ Branch 3 (562→1494) not taken.
✓ Branch 4 (563→564) taken 1 times.
✗ Branch 5 (563→1488) not taken.
✓ Branch 6 (567→568) taken 1 times.
✗ Branch 7 (567→1480) not taken.
✓ Branch 8 (568→569) taken 1 times.
✗ Branch 9 (568→1478) not taken.
✓ Branch 10 (569→570) taken 1 times.
✗ Branch 11 (569→1472) not taken.
✗ Branch 12 (570→571) not taken.
✓ Branch 13 (570→572) taken 1 times.
✓ Branch 14 (579→580) taken 3 times.
✓ Branch 15 (579→582) taken 1 times.
✓ Branch 16 (589→590) taken 1 times.
✗ Branch 17 (589→1521) not taken.
✗ Branch 18 (1481→1482) not taken.
✗ Branch 19 (1481→1484) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t1e", {"tree1", algo->GetConfig()->InRange("test_range", 10), "val"}) == 4)); |
117 |
10/20✓ Branch 0 (590→591) taken 1 times.
✗ Branch 1 (590→1521) not taken.
✓ Branch 2 (591→592) taken 1 times.
✗ Branch 3 (591→1521) not taken.
✓ Branch 4 (592→593) taken 1 times.
✗ Branch 5 (592→1515) not taken.
✓ Branch 6 (596→597) taken 1 times.
✗ Branch 7 (596→1507) not taken.
✓ Branch 8 (597→598) taken 1 times.
✗ Branch 9 (597→1505) not taken.
✓ Branch 10 (598→599) taken 1 times.
✗ Branch 11 (598→1499) not taken.
✗ Branch 12 (599→600) not taken.
✓ Branch 13 (599→601) taken 1 times.
✓ Branch 14 (608→609) taken 3 times.
✓ Branch 15 (608→611) taken 1 times.
✓ Branch 16 (618→619) taken 1 times.
✗ Branch 17 (618→1548) not taken.
✗ Branch 18 (1508→1509) not taken.
✗ Branch 19 (1508→1511) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t1f", {"tree1", algo->GetConfig()->InRange("test_range", 11), "val"}) == 0)); // default fallback |
118 |
10/20✓ Branch 0 (619→620) taken 1 times.
✗ Branch 1 (619→1548) not taken.
✓ Branch 2 (620→621) taken 1 times.
✗ Branch 3 (620→1548) not taken.
✓ Branch 4 (621→622) taken 1 times.
✗ Branch 5 (621→1542) not taken.
✓ Branch 6 (625→626) taken 1 times.
✗ Branch 7 (625→1534) not taken.
✓ Branch 8 (626→627) taken 1 times.
✗ Branch 9 (626→1532) not taken.
✓ Branch 10 (627→628) taken 1 times.
✗ Branch 11 (627→1526) not taken.
✗ Branch 12 (628→629) not taken.
✓ Branch 13 (628→630) taken 1 times.
✓ Branch 14 (637→638) taken 3 times.
✓ Branch 15 (637→640) taken 1 times.
✓ Branch 16 (647→648) taken 1 times.
✗ Branch 17 (647→1575) not taken.
✗ Branch 18 (1535→1536) not taken.
✗ Branch 19 (1535→1538) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t1g", {"tree1", algo->GetConfig()->InRange("test_range", 10.1), "val"}) == 0)); // wrong type |
119 |
10/20✓ Branch 0 (648→649) taken 1 times.
✗ Branch 1 (648→1575) not taken.
✓ Branch 2 (649→650) taken 1 times.
✗ Branch 3 (649→1575) not taken.
✓ Branch 4 (650→651) taken 1 times.
✗ Branch 5 (650→1569) not taken.
✓ Branch 6 (654→655) taken 1 times.
✗ Branch 7 (654→1561) not taken.
✓ Branch 8 (655→656) taken 1 times.
✗ Branch 9 (655→1559) not taken.
✓ Branch 10 (656→657) taken 1 times.
✗ Branch 11 (656→1553) not taken.
✗ Branch 12 (657→658) not taken.
✓ Branch 13 (657→659) taken 1 times.
✓ Branch 14 (666→667) taken 3 times.
✓ Branch 15 (666→669) taken 1 times.
✓ Branch 16 (676→677) taken 1 times.
✗ Branch 17 (676→1602) not taken.
✗ Branch 18 (1562→1563) not taken.
✗ Branch 19 (1562→1565) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t1h", {"tree1", algo->GetConfig()->InRange("test_range", 3.7), "val"}) == 3)); // wrong type |
120 | // test InRange tree2 | ||
121 |
10/20✓ Branch 0 (677→678) taken 1 times.
✗ Branch 1 (677→1602) not taken.
✓ Branch 2 (678→679) taken 1 times.
✗ Branch 3 (678→1602) not taken.
✓ Branch 4 (679→680) taken 1 times.
✗ Branch 5 (679→1596) not taken.
✓ Branch 6 (684→685) taken 1 times.
✗ Branch 7 (684→1588) not taken.
✓ Branch 8 (685→686) taken 1 times.
✗ Branch 9 (685→1586) not taken.
✓ Branch 10 (686→687) taken 1 times.
✗ Branch 11 (686→1580) not taken.
✗ Branch 12 (687→688) not taken.
✓ Branch 13 (687→689) taken 1 times.
✓ Branch 14 (701→702) taken 4 times.
✓ Branch 15 (701→704) taken 1 times.
✓ Branch 16 (711→712) taken 1 times.
✗ Branch 17 (711→1629) not taken.
✗ Branch 18 (1589→1590) not taken.
✗ Branch 19 (1589→1592) not taken.
|
8 | assert((algo->GetOptionScalar<std::string>("t2a", {"tree2", algo->GetConfig()->InRange("test_range", 1.9), "subtree", "lizard"}) == "iguana")); |
122 |
10/20✓ Branch 0 (712→713) taken 1 times.
✗ Branch 1 (712→1629) not taken.
✓ Branch 2 (713→714) taken 1 times.
✗ Branch 3 (713→1629) not taken.
✓ Branch 4 (714→715) taken 1 times.
✗ Branch 5 (714→1623) not taken.
✓ Branch 6 (719→720) taken 1 times.
✗ Branch 7 (719→1615) not taken.
✓ Branch 8 (720→721) taken 1 times.
✗ Branch 9 (720→1613) not taken.
✓ Branch 10 (721→722) taken 1 times.
✗ Branch 11 (721→1607) not taken.
✗ Branch 12 (722→723) not taken.
✓ Branch 13 (722→724) taken 1 times.
✓ Branch 14 (731→732) taken 4 times.
✓ Branch 15 (731→734) taken 1 times.
✓ Branch 16 (741→742) taken 1 times.
✗ Branch 17 (741→1665) not taken.
✗ Branch 18 (1616→1617) not taken.
✗ Branch 19 (1616→1619) not taken.
|
8 | assert((algo->GetOptionScalar<int>("t2b", {"tree2", algo->GetConfig()->InRange("test_range", 1.9), "subtree", "number"}) == 7)); |
123 |
14/30✓ Branch 0 (742→743) taken 1 times.
✗ Branch 1 (742→1665) not taken.
✓ Branch 2 (743→744) taken 1 times.
✗ Branch 3 (743→1665) not taken.
✓ Branch 4 (744→745) taken 1 times.
✗ Branch 5 (744→1659) not taken.
✓ Branch 6 (748→749) taken 1 times.
✗ Branch 7 (748→1656) not taken.
✓ Branch 8 (749→750) taken 1 times.
✗ Branch 9 (749→1656) not taken.
✓ Branch 10 (750→751) taken 1 times.
✗ Branch 11 (750→1650) not taken.
✓ Branch 12 (754→755) taken 1 times.
✗ Branch 13 (754→1642) not taken.
✓ Branch 14 (755→756) taken 1 times.
✗ Branch 15 (755→1640) not taken.
✓ Branch 16 (756→757) taken 1 times.
✗ Branch 17 (756→1634) not taken.
✗ Branch 18 (757→758) not taken.
✓ Branch 19 (757→759) taken 1 times.
✓ Branch 20 (766→767) taken 5 times.
✓ Branch 21 (766→769) taken 1 times.
✗ Branch 22 (776→777) not taken.
✓ Branch 23 (776→778) taken 1 times.
✓ Branch 24 (783→784) taken 1 times.
✗ Branch 25 (783→1701) not taken.
✗ Branch 26 (1643→1644) not taken.
✗ Branch 27 (1643→1646) not taken.
✗ Branch 28 (1656→1657) not taken.
✗ Branch 29 (1656→1658) not taken.
|
11 | assert((algo->GetOptionScalar<int>("t2c", {"tree2", algo->GetConfig()->InRange("test_range", 3.0), "subtree", algo->GetConfig()->InRange("sub_range", 1), "val"}) == 7)); |
124 |
14/30✓ Branch 0 (784→785) taken 1 times.
✗ Branch 1 (784→1701) not taken.
✓ Branch 2 (785→786) taken 1 times.
✗ Branch 3 (785→1701) not taken.
✓ Branch 4 (786→787) taken 1 times.
✗ Branch 5 (786→1695) not taken.
✓ Branch 6 (790→791) taken 1 times.
✗ Branch 7 (790→1692) not taken.
✓ Branch 8 (791→792) taken 1 times.
✗ Branch 9 (791→1692) not taken.
✓ Branch 10 (792→793) taken 1 times.
✗ Branch 11 (792→1686) not taken.
✓ Branch 12 (796→797) taken 1 times.
✗ Branch 13 (796→1678) not taken.
✓ Branch 14 (797→798) taken 1 times.
✗ Branch 15 (797→1676) not taken.
✓ Branch 16 (798→799) taken 1 times.
✗ Branch 17 (798→1670) not taken.
✗ Branch 18 (799→800) not taken.
✓ Branch 19 (799→801) taken 1 times.
✓ Branch 20 (808→809) taken 5 times.
✓ Branch 21 (808→811) taken 1 times.
✗ Branch 22 (818→819) not taken.
✓ Branch 23 (818→820) taken 1 times.
✓ Branch 24 (825→826) taken 1 times.
✗ Branch 25 (825→1737) not taken.
✗ Branch 26 (1679→1680) not taken.
✗ Branch 27 (1679→1682) not taken.
✗ Branch 28 (1692→1693) not taken.
✗ Branch 29 (1692→1694) not taken.
|
11 | assert((algo->GetOptionScalar<int>("t2d", {"tree2", algo->GetConfig()->InRange("test_range", 3.0), "subtree", algo->GetConfig()->InRange("sub_range", 8), "val"}) == 8)); |
125 |
14/30✓ Branch 0 (826→827) taken 1 times.
✗ Branch 1 (826→1737) not taken.
✓ Branch 2 (827→828) taken 1 times.
✗ Branch 3 (827→1737) not taken.
✓ Branch 4 (828→829) taken 1 times.
✗ Branch 5 (828→1731) not taken.
✓ Branch 6 (832→833) taken 1 times.
✗ Branch 7 (832→1728) not taken.
✓ Branch 8 (833→834) taken 1 times.
✗ Branch 9 (833→1728) not taken.
✓ Branch 10 (834→835) taken 1 times.
✗ Branch 11 (834→1722) not taken.
✓ Branch 12 (838→839) taken 1 times.
✗ Branch 13 (838→1714) not taken.
✓ Branch 14 (839→840) taken 1 times.
✗ Branch 15 (839→1712) not taken.
✓ Branch 16 (840→841) taken 1 times.
✗ Branch 17 (840→1706) not taken.
✗ Branch 18 (841→842) not taken.
✓ Branch 19 (841→843) taken 1 times.
✓ Branch 20 (850→851) taken 5 times.
✓ Branch 21 (850→853) taken 1 times.
✗ Branch 22 (860→861) not taken.
✓ Branch 23 (860→862) taken 1 times.
✓ Branch 24 (867→868) taken 1 times.
✗ Branch 25 (867→1764) not taken.
✗ Branch 26 (1715→1716) not taken.
✗ Branch 27 (1715→1718) not taken.
✗ Branch 28 (1728→1729) not taken.
✗ Branch 29 (1728→1730) not taken.
|
11 | assert((algo->GetOptionScalar<int>("t2e", {"tree2", algo->GetConfig()->InRange("test_range", 3.5), "subtree", algo->GetConfig()->InRange("sub_range", 11), "val"}) == 1)); |
126 |
10/20✓ Branch 0 (868→869) taken 1 times.
✗ Branch 1 (868→1764) not taken.
✓ Branch 2 (869→870) taken 1 times.
✗ Branch 3 (869→1764) not taken.
✓ Branch 4 (870→871) taken 1 times.
✗ Branch 5 (870→1758) not taken.
✓ Branch 6 (874→875) taken 1 times.
✗ Branch 7 (874→1750) not taken.
✓ Branch 8 (875→876) taken 1 times.
✗ Branch 9 (875→1748) not taken.
✓ Branch 10 (876→877) taken 1 times.
✗ Branch 11 (876→1742) not taken.
✗ Branch 12 (877→878) not taken.
✓ Branch 13 (877→879) taken 1 times.
✓ Branch 14 (886→887) taken 3 times.
✓ Branch 15 (886→889) taken 1 times.
✓ Branch 16 (896→897) taken 1 times.
✗ Branch 17 (896→1791) not taken.
✗ Branch 18 (1751→1752) not taken.
✗ Branch 19 (1751→1754) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t2f", {"tree2", algo->GetConfig()->InRange("test_range", 4.0), "subtree"}) == 10)); |
127 | // test InRange tree3 | ||
128 |
10/22✓ Branch 0 (897→898) taken 1 times.
✗ Branch 1 (897→1791) not taken.
✓ Branch 2 (898→899) taken 1 times.
✗ Branch 3 (898→1791) not taken.
✓ Branch 4 (899→900) taken 1 times.
✗ Branch 5 (899→1785) not taken.
✓ Branch 6 (903→904) taken 1 times.
✗ Branch 7 (903→1777) not taken.
✓ Branch 8 (904→905) taken 1 times.
✗ Branch 9 (904→1775) not taken.
✓ Branch 10 (905→906) taken 1 times.
✗ Branch 11 (905→1769) not taken.
✗ Branch 12 (906→907) not taken.
✓ Branch 13 (906→908) taken 1 times.
✓ Branch 14 (915→916) taken 3 times.
✓ Branch 15 (915→918) taken 1 times.
✓ Branch 16 (925→926) taken 1 times.
✗ Branch 17 (925→1818) not taken.
✗ Branch 18 (1778→1779) not taken.
✗ Branch 19 (1778→1781) not taken.
✗ Branch 20 (1830→1831) not taken.
✗ Branch 21 (1830→1833) not taken.
|
7 | assert((algo->GetOptionScalar<int>("t3a", {"tree3", algo->GetConfig()->InRange("test_range", 3), "val"}) == 3)); |
129 | try { | ||
130 |
8/18✓ Branch 0 (926→927) taken 1 times.
✗ Branch 1 (926→1818) not taken.
✓ Branch 2 (927→928) taken 1 times.
✗ Branch 3 (927→1818) not taken.
✓ Branch 4 (928→929) taken 1 times.
✗ Branch 5 (928→1812) not taken.
✓ Branch 6 (932→933) taken 1 times.
✗ Branch 7 (932→1804) not taken.
✓ Branch 8 (933→934) taken 1 times.
✗ Branch 9 (933→1802) not taken.
✗ Branch 10 (934→935) not taken.
✓ Branch 11 (934→1796) taken 1 times.
✗ Branch 12 (935→936) not taken.
✗ Branch 13 (935→937) not taken.
✗ Branch 14 (944→945) not taken.
✗ Branch 15 (944→947) not taken.
✓ Branch 16 (1805→1806) taken 3 times.
✓ Branch 17 (1805→1808) taken 1 times.
|
7 | assert((algo->GetOptionScalar<int>("t3b", {"tree3", algo->GetConfig()->InRange("test_range", 11), "val"}) == 0)); |
131 | ✗ | fmt::print(stderr, "ERROR: accessing a missing default value for `InRange` did not throw exception\n"); | |
132 | ✗ | return 1; | |
133 | } | ||
134 |
1/2✗ Branch 0 (1823→1824) not taken.
✓ Branch 1 (1823→1825) taken 1 times.
|
1 | catch(std::exception const& ex) { |
135 | 1 | fmt::print("SUCCESS: accessing a missing default value for `InRange` threw expected exception\n"); | |
136 | 1 | } | |
137 | break; | ||
138 | } | ||
139 | |||
140 | default: | ||
141 | ✗ | fmt::print(stderr, "ERROR: unknown test number '{}'", test_num); | |
142 | ✗ | return 1; | |
143 | } | ||
144 | return 0; | ||
145 |
1/42✗ Branch 0 (1203→1204) not taken.
✗ Branch 1 (1203→1206) not taken.
✗ Branch 2 (1221→1222) not taken.
✗ Branch 3 (1221→1224) not taken.
✗ Branch 4 (1239→1240) not taken.
✗ Branch 5 (1239→1242) not taken.
✗ Branch 6 (1257→1258) not taken.
✗ Branch 7 (1257→1260) not taken.
✗ Branch 8 (1295→1296) not taken.
✗ Branch 9 (1295→1298) not taken.
✗ Branch 10 (1387→1388) not taken.
✗ Branch 11 (1387→1390) not taken.
✗ Branch 12 (1414→1415) not taken.
✗ Branch 13 (1414→1417) not taken.
✗ Branch 14 (1441→1442) not taken.
✗ Branch 15 (1441→1444) not taken.
✗ Branch 16 (1468→1469) not taken.
✗ Branch 17 (1468→1471) not taken.
✗ Branch 18 (1495→1496) not taken.
✗ Branch 19 (1495→1498) not taken.
✗ Branch 20 (1522→1523) not taken.
✗ Branch 21 (1522→1525) not taken.
✗ Branch 22 (1549→1550) not taken.
✗ Branch 23 (1549→1552) not taken.
✗ Branch 24 (1576→1577) not taken.
✗ Branch 25 (1576→1579) not taken.
✗ Branch 26 (1603→1604) not taken.
✗ Branch 27 (1603→1606) not taken.
✗ Branch 28 (1630→1631) not taken.
✗ Branch 29 (1630→1633) not taken.
✗ Branch 30 (1666→1667) not taken.
✗ Branch 31 (1666→1669) not taken.
✗ Branch 32 (1702→1703) not taken.
✗ Branch 33 (1702→1705) not taken.
✗ Branch 34 (1738→1739) not taken.
✗ Branch 35 (1738→1741) not taken.
✗ Branch 36 (1765→1766) not taken.
✗ Branch 37 (1765→1768) not taken.
✗ Branch 38 (1792→1793) not taken.
✗ Branch 39 (1792→1795) not taken.
✗ Branch 40 (1819→1820) not taken.
✓ Branch 41 (1819→1822) taken 1 times.
|
4 | } |
146 |