src/iguana/tests/include/TestConfig.h
| 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, std::string log_level) | |
| 7 | { | ||
| 8 |
1/2✗ Branch 2 → 3 not taken.
✓ Branch 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 6 → 7 taken 3 times.
✗ Branch 6 → 1464 not taken.
✓ Branch 7 → 8 taken 3 times.
✗ Branch 7 → 767 not taken.
|
3 | bad_config.AddDirectory("non_existent_directory"); |
| 15 | try { | ||
| 16 |
2/4✓ Branch 13 → 14 taken 3 times.
✗ Branch 13 → 779 not taken.
✗ Branch 14 → 15 not taken.
✓ Branch 14 → 773 taken 3 times.
|
3 | bad_config.AddFile("non_existent_file.yaml"); |
| 17 | } | ||
| 18 |
1/2✗ Branch 779 → 780 not taken.
✓ Branch 779 → 781 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 21 → 22 taken 3 times.
✗ Branch 21 → 1464 not taken.
|
3 | bad_config.PrintDirectories(); |
| 22 | |||
| 23 | // then test configuring an algorithm | ||
| 24 |
3/6✓ Branch 22 → 23 taken 3 times.
✗ Branch 22 → 1464 not taken.
✓ Branch 23 → 24 taken 3 times.
✗ Branch 23 → 786 not taken.
✗ Branch 29 → 30 not taken.
✓ Branch 29 → 31 taken 3 times.
|
6 | auto algo = iguana::AlgorithmFactory::Create("example::ExampleAlgorithm"); |
| 25 |
2/4✗ Branch 29 → 30 not taken.
✓ Branch 29 → 31 taken 3 times.
✓ Branch 31 → 32 taken 3 times.
✗ Branch 31 → 1460 not taken.
|
3 | algo->SetLogLevel(log_level); |
| 26 |
3/6✓ Branch 32 → 33 taken 3 times.
✗ Branch 32 → 1460 not taken.
✓ Branch 33 → 34 taken 3 times.
✗ Branch 33 → 792 not taken.
✓ Branch 39 → 40 taken 3 times.
✗ Branch 39 → 1460 not taken.
|
6 | algo->SetConfigDirectory("src/iguana/tests"); // must be relative to build directory |
| 27 |
2/4✓ Branch 40 → 41 taken 3 times.
✗ Branch 40 → 798 not taken.
✓ Branch 46 → 47 taken 3 times.
✗ Branch 46 → 1460 not taken.
|
6 | algo->SetConfigFile(fmt::format("test_{}.yaml", test_num)); |
| 28 |
1/2✓ Branch 46 → 47 taken 3 times.
✗ Branch 46 → 1460 not taken.
|
3 | algo->Start(); |
| 29 | |||
| 30 |
3/4✓ Branch 47 → 48 taken 1 time.
✓ Branch 47 → 237 taken 1 time.
✓ Branch 47 → 344 taken 1 time.
✗ Branch 47 → 760 not taken.
|
3 | switch(test_num) { |
| 31 | |||
| 32 | case 1: { | ||
| 33 | // test `GetOptionScalar` | ||
| 34 |
6/12✓ Branch 49 → 50 taken 1 time.
✗ Branch 49 → 806 not taken.
✓ Branch 50 → 51 taken 1 time.
✗ Branch 50 → 804 not taken.
✗ Branch 51 → 52 not taken.
✓ Branch 51 → 53 taken 1 time.
✓ Branch 55 → 56 taken 1 time.
✓ Branch 55 → 58 taken 1 time.
✓ Branch 58 → 59 taken 1 time.
✗ Branch 58 → 1460 not taken.
✗ Branch 807 → 808 not taken.
✗ Branch 807 → 810 not taken.
|
2 | assert((algo->GetOptionScalar<int>({"scalar_int"}) == 1)); |
| 35 |
6/12✓ Branch 59 → 60 taken 1 time.
✗ Branch 59 → 813 not taken.
✓ Branch 60 → 61 taken 1 time.
✗ Branch 60 → 811 not taken.
✗ Branch 61 → 62 not taken.
✓ Branch 61 → 63 taken 1 time.
✓ Branch 65 → 66 taken 1 time.
✓ Branch 65 → 68 taken 1 time.
✓ Branch 68 → 69 taken 1 time.
✗ Branch 68 → 1460 not taken.
✗ Branch 814 → 815 not taken.
✗ Branch 814 → 817 not taken.
|
2 | assert((algo->GetOptionScalar<double>({"scalar_double"}) == 2.5)); |
| 36 |
5/10✓ Branch 69 → 70 taken 1 time.
✗ Branch 69 → 820 not taken.
✓ Branch 70 → 71 taken 1 time.
✗ Branch 70 → 818 not taken.
✗ Branch 71 → 72 not taken.
✓ Branch 71 → 73 taken 1 time.
✓ Branch 80 → 81 taken 1 time.
✓ Branch 80 → 83 taken 1 time.
✗ Branch 821 → 822 not taken.
✗ Branch 821 → 824 not taken.
|
3 | assert((algo->GetOptionScalar<std::string>({"scalar_string"}) == "lizard")); |
| 37 | // test `GetOptionVector` | ||
| 38 |
7/16✓ Branch 83 → 84 taken 1 time.
✗ Branch 83 → 1460 not taken.
✓ Branch 85 → 86 taken 1 time.
✗ Branch 85 → 827 not taken.
✓ Branch 86 → 87 taken 1 time.
✗ Branch 86 → 825 not taken.
✗ Branch 87 → 88 not taken.
✓ Branch 87 → 89 taken 1 time.
✓ Branch 94 → 95 taken 1 time.
✓ Branch 94 → 97 taken 1 time.
✓ Branch 97 → 98 taken 1 time.
✗ Branch 97 → 100 not taken.
✗ Branch 828 → 829 not taken.
✗ Branch 828 → 831 not taken.
✗ Branch 832 → 833 not taken.
✗ Branch 832 → 835 not taken.
|
4 | assert((algo->GetOptionVector<int>({"vector_int"}) == std::vector<int>{1, 2, 3})); |
| 39 |
7/16✓ Branch 100 → 101 taken 1 time.
✗ Branch 100 → 1460 not taken.
✓ Branch 102 → 103 taken 1 time.
✗ Branch 102 → 838 not taken.
✓ Branch 103 → 104 taken 1 time.
✗ Branch 103 → 836 not taken.
✗ Branch 112 → 113 not taken.
✓ Branch 112 → 114 taken 1 time.
✓ Branch 119 → 120 taken 1 time.
✓ Branch 119 → 122 taken 1 time.
✓ Branch 122 → 123 taken 1 time.
✗ Branch 122 → 125 not taken.
✗ Branch 839 → 840 not taken.
✗ Branch 839 → 842 not taken.
✗ Branch 843 → 844 not taken.
✗ Branch 843 → 846 not taken.
|
5 | assert((algo->GetOptionVector<double>({"vector_double"}) == std::vector<double>{1.5, 2.5})); |
| 40 |
13/30✓ Branch 126 → 127 taken 4 times.
✗ Branch 126 → 865 not taken.
✓ Branch 128 → 126 taken 4 times.
✓ Branch 128 → 129 taken 1 time.
✓ Branch 129 → 130 taken 1 time.
✗ Branch 129 → 856 not taken.
✓ Branch 131 → 132 taken 1 time.
✗ Branch 131 → 849 not taken.
✓ Branch 132 → 133 taken 1 time.
✗ Branch 132 → 847 not taken.
✗ Branch 133 → 134 not taken.
✓ Branch 133 → 135 taken 1 time.
✓ Branch 138 → 139 taken 1 time.
✓ Branch 138 → 141 taken 1 time.
✓ Branch 143 → 144 taken 4 times.
✓ Branch 143 → 150 taken 1 time.
✓ Branch 144 → 145 taken 4 times.
✗ Branch 144 → 147 not taken.
✓ Branch 150 → 151 taken 1 time.
✗ Branch 150 → 1460 not taken.
✗ Branch 850 → 851 not taken.
✗ Branch 850 → 853 not taken.
✗ Branch 857 → 858 not taken.
✗ Branch 857 → 864 not taken.
✗ Branch 858 → 859 not taken.
✗ Branch 858 → 861 not taken.
✗ Branch 866 → 867 not taken.
✗ Branch 866 → 873 not taken.
✗ Branch 867 → 868 not taken.
✗ Branch 867 → 870 not taken.
|
11 | assert((algo->GetOptionVector<std::string>({"vector_string"}) == std::vector<std::string>{"spider", "bat", "chameleon", "spider"})); |
| 41 | // test `GetOptionSet` | ||
| 42 |
5/10✓ Branch 151 → 152 taken 1 time.
✗ Branch 151 → 876 not taken.
✓ Branch 152 → 153 taken 1 time.
✗ Branch 152 → 874 not taken.
✓ Branch 155 → 156 taken 1 time.
✓ Branch 155 → 158 taken 1 time.
✗ Branch 158 → 159 not taken.
✓ Branch 158 → 160 taken 1 time.
✗ Branch 877 → 878 not taken.
✗ Branch 877 → 880 not taken.
|
2 | auto s = algo->GetOptionSet<std::string>({"vector_string"}); |
| 43 |
1/2✗ Branch 158 → 159 not taken.
✓ Branch 158 → 160 taken 1 time.
|
1 | assert((s.size() == 3)); |
| 44 |
2/4✓ Branch 160 → 161 taken 1 time.
✗ Branch 160 → 977 not taken.
✗ Branch 161 → 162 not taken.
✓ Branch 161 → 163 taken 1 time.
|
1 | assert((s.find("spider") != s.end())); |
| 45 |
3/6✓ Branch 168 → 169 taken 1 time.
✗ Branch 168 → 977 not taken.
✗ Branch 169 → 170 not taken.
✓ Branch 169 → 171 taken 1 time.
✓ Branch 176 → 177 taken 1 time.
✗ Branch 176 → 888 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 |
4/8✓ Branch 177 → 178 taken 1 time.
✗ Branch 177 → 883 not taken.
✗ Branch 178 → 179 not taken.
✓ Branch 178 → 881 taken 1 time.
✗ Branch 181 → 182 not taken.
✗ Branch 181 → 184 not taken.
✓ Branch 884 → 885 taken 1 time.
✓ Branch 884 → 887 taken 1 time.
|
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 888 → 889 not taken.
✓ Branch 888 → 890 taken 1 time.
|
1 | catch(std::exception const& ex) { |
| 53 | 1 | fmt::print("SUCCESS: accessing 'scalar_empty' threw an expected exception\n"); | |
| 54 | 1 | } | |
| 55 | try { | ||
| 56 |
4/8✗ Branch 186 → 187 not taken.
✓ Branch 186 → 897 taken 1 time.
✗ Branch 192 → 193 not taken.
✗ Branch 192 → 195 not taken.
✓ Branch 894 → 186 taken 1 time.
✗ Branch 894 → 899 not taken.
✓ Branch 900 → 901 taken 1 time.
✓ Branch 900 → 903 taken 1 time.
|
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 904 → 905 not taken.
✓ Branch 904 → 906 taken 1 time.
|
1 | catch(std::exception const& ex) { |
| 61 | 1 | fmt::print("SUCCESS: accessing 'vector_empty' threw an expected exception\n"); | |
| 62 | 1 | } | |
| 63 | try { | ||
| 64 |
4/8✗ Branch 197 → 198 not taken.
✓ Branch 197 → 913 taken 1 time.
✗ Branch 201 → 202 not taken.
✗ Branch 201 → 204 not taken.
✓ Branch 910 → 197 taken 1 time.
✗ Branch 910 → 915 not taken.
✓ Branch 916 → 917 taken 1 time.
✓ Branch 916 → 919 taken 1 time.
|
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 920 → 921 not taken.
✓ Branch 920 → 922 taken 1 time.
|
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 |
4/8✗ Branch 206 → 207 not taken.
✓ Branch 206 → 929 taken 1 time.
✗ Branch 209 → 210 not taken.
✗ Branch 209 → 212 not taken.
✓ Branch 926 → 206 taken 1 time.
✗ Branch 926 → 931 not taken.
✓ Branch 932 → 933 taken 1 time.
✓ Branch 932 → 935 taken 1 time.
|
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 936 → 937 not taken.
✓ Branch 936 → 938 taken 1 time.
|
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 |
4/8✗ Branch 214 → 215 not taken.
✓ Branch 214 → 945 taken 1 time.
✗ Branch 220 → 221 not taken.
✗ Branch 220 → 223 not taken.
✓ Branch 942 → 214 taken 1 time.
✗ Branch 942 → 947 not taken.
✓ Branch 948 → 949 taken 1 time.
✓ Branch 948 → 951 taken 1 time.
|
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 952 → 953 not taken.
✓ Branch 952 → 954 taken 1 time.
|
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 |
4/8✗ Branch 225 → 226 not taken.
✓ Branch 225 → 961 taken 1 time.
✗ Branch 229 → 230 not taken.
✗ Branch 229 → 232 not taken.
✓ Branch 958 → 225 taken 1 time.
✗ Branch 958 → 963 not taken.
✓ Branch 964 → 965 taken 1 time.
✓ Branch 964 → 967 taken 1 time.
|
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 968 → 969 not taken.
✓ Branch 968 → 970 taken 1 time.
|
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 |
6/12✓ Branch 239 → 240 taken 1 time.
✗ Branch 239 → 981 not taken.
✓ Branch 240 → 241 taken 1 time.
✗ Branch 240 → 979 not taken.
✗ Branch 241 → 242 not taken.
✓ Branch 241 → 243 taken 1 time.
✓ Branch 245 → 246 taken 2 times.
✓ Branch 245 → 248 taken 1 time.
✓ Branch 248 → 249 taken 1 time.
✗ Branch 248 → 998 not taken.
✗ Branch 982 → 983 not taken.
✗ Branch 982 → 985 not taken.
|
3 | assert((algo->GetOptionScalar<double>({"tree1", "scalar1"}) == 1.5)); |
| 101 |
6/12✓ Branch 250 → 251 taken 1 time.
✗ Branch 250 → 993 not taken.
✓ Branch 251 → 252 taken 1 time.
✗ Branch 251 → 991 not taken.
✗ Branch 252 → 253 not taken.
✓ Branch 252 → 254 taken 1 time.
✓ Branch 256 → 257 taken 2 times.
✓ Branch 256 → 259 taken 1 time.
✓ Branch 259 → 260 taken 1 time.
✗ Branch 259 → 1010 not taken.
✗ Branch 994 → 995 not taken.
✗ Branch 994 → 997 not taken.
|
3 | assert((algo->GetOptionScalar<double>({"tree1", "scalar2"}) == 2.5)); |
| 102 |
5/10✓ Branch 262 → 263 taken 1 time.
✗ Branch 262 → 1005 not taken.
✓ Branch 263 → 264 taken 1 time.
✗ Branch 263 → 1003 not taken.
✗ Branch 264 → 265 not taken.
✓ Branch 264 → 266 taken 1 time.
✓ Branch 268 → 269 taken 3 times.
✓ Branch 268 → 271 taken 1 time.
✗ Branch 1006 → 1007 not taken.
✗ Branch 1006 → 1009 not taken.
|
4 | assert((algo->GetOptionScalar<double>({"tree2", "tree1", "scalar1"}) == 3.5)); |
| 103 |
12/28✓ Branch 272 → 273 taken 2 times.
✗ Branch 272 → 1038 not taken.
✓ Branch 274 → 272 taken 2 times.
✓ Branch 274 → 275 taken 1 time.
✓ Branch 275 → 276 taken 1 time.
✗ Branch 275 → 1029 not taken.
✓ Branch 280 → 281 taken 1 time.
✗ Branch 280 → 1017 not taken.
✓ Branch 281 → 282 taken 1 time.
✗ Branch 281 → 1015 not taken.
✗ Branch 282 → 283 not taken.
✓ Branch 282 → 284 taken 1 time.
✓ Branch 287 → 288 taken 4 times.
✓ Branch 287 → 290 taken 1 time.
✓ Branch 292 → 293 taken 2 times.
✓ Branch 292 → 299 taken 1 time.
✓ Branch 293 → 294 taken 2 times.
✗ Branch 293 → 296 not taken.
✗ Branch 1018 → 1019 not taken.
✗ Branch 1018 → 1021 not taken.
✗ Branch 1030 → 1031 not taken.
✗ Branch 1030 → 1037 not taken.
✗ Branch 1031 → 1032 not taken.
✗ Branch 1031 → 1034 not taken.
✗ Branch 1039 → 1040 not taken.
✗ Branch 1039 → 1046 not taken.
✗ Branch 1040 → 1041 not taken.
✗ Branch 1040 → 1043 not taken.
|
10 | assert((algo->GetOptionVector<std::string>({"tree2", "tree2", "tree3", "vector1"}) == std::vector<std::string>{"gecko", "snake"})); |
| 104 |
7/16✓ Branch 299 → 300 taken 1 time.
✗ Branch 299 → 1460 not taken.
✓ Branch 302 → 303 taken 1 time.
✗ Branch 302 → 1049 not taken.
✓ Branch 303 → 304 taken 1 time.
✗ Branch 303 → 1047 not taken.
✗ Branch 304 → 305 not taken.
✓ Branch 304 → 306 taken 1 time.
✓ Branch 311 → 312 taken 2 times.
✓ Branch 311 → 314 taken 1 time.
✓ Branch 314 → 315 taken 1 time.
✗ Branch 314 → 317 not taken.
✗ Branch 1050 → 1051 not taken.
✗ Branch 1050 → 1053 not taken.
✗ Branch 1059 → 1060 not taken.
✗ Branch 1059 → 1062 not taken.
|
5 | assert((algo->GetOptionVector<int>({"tree2", "vector2"}) == std::vector<int>{3, -4, 5})); |
| 105 |
12/28✓ Branch 318 → 319 taken 1 time.
✗ Branch 318 → 1081 not taken.
✓ Branch 320 → 318 taken 1 time.
✓ Branch 320 → 321 taken 1 time.
✓ Branch 321 → 322 taken 1 time.
✗ Branch 321 → 1072 not taken.
✓ Branch 323 → 324 taken 1 time.
✗ Branch 323 → 1065 not taken.
✓ Branch 324 → 325 taken 1 time.
✗ Branch 324 → 1063 not taken.
✗ Branch 325 → 326 not taken.
✓ Branch 325 → 327 taken 1 time.
✓ Branch 330 → 331 taken 1 time.
✓ Branch 330 → 333 taken 1 time.
✓ Branch 335 → 336 taken 1 time.
✓ Branch 335 → 342 taken 1 time.
✓ Branch 336 → 337 taken 1 time.
✗ Branch 336 → 339 not taken.
✗ Branch 1066 → 1067 not taken.
✗ Branch 1066 → 1069 not taken.
✗ Branch 1073 → 1074 not taken.
✗ Branch 1073 → 1080 not taken.
✗ Branch 1074 → 1075 not taken.
✗ Branch 1074 → 1077 not taken.
✗ Branch 1082 → 1083 not taken.
✗ Branch 1082 → 1089 not taken.
✗ Branch 1083 → 1084 not taken.
✗ Branch 1083 → 1086 not taken.
|
5 | assert((algo->GetOptionVector<std::string>({"vector1"}) == std::vector<std::string>{"bee"})); |
| 106 | 1 | break; | |
| 107 | } | ||
| 108 | |||
| 109 | case 3: { | ||
| 110 | // test InRange tree1 | ||
| 111 |
9/18✓ Branch 345 → 346 taken 1 time.
✗ Branch 345 → 1106 not taken.
✓ Branch 346 → 347 taken 1 time.
✗ Branch 346 → 1106 not taken.
✓ Branch 347 → 348 taken 1 time.
✗ Branch 347 → 1100 not taken.
✓ Branch 351 → 352 taken 1 time.
✗ Branch 351 → 1092 not taken.
✓ Branch 352 → 353 taken 1 time.
✗ Branch 352 → 1090 not taken.
✗ Branch 353 → 354 not taken.
✓ Branch 353 → 355 taken 1 time.
✓ Branch 357 → 358 taken 3 times.
✓ Branch 357 → 360 taken 1 time.
✓ Branch 367 → 368 taken 1 time.
✗ Branch 367 → 1127 not taken.
✗ Branch 1093 → 1094 not taken.
✗ Branch 1093 → 1096 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree1", algo->GetConfig()->InRange("test_range", 1), "val"}) == 3)); |
| 112 |
9/18✓ Branch 368 → 369 taken 1 time.
✗ Branch 368 → 1127 not taken.
✓ Branch 369 → 370 taken 1 time.
✗ Branch 369 → 1127 not taken.
✓ Branch 370 → 371 taken 1 time.
✗ Branch 370 → 1121 not taken.
✓ Branch 374 → 375 taken 1 time.
✗ Branch 374 → 1113 not taken.
✓ Branch 375 → 376 taken 1 time.
✗ Branch 375 → 1111 not taken.
✗ Branch 376 → 377 not taken.
✓ Branch 376 → 378 taken 1 time.
✓ Branch 380 → 381 taken 3 times.
✓ Branch 380 → 383 taken 1 time.
✓ Branch 390 → 391 taken 1 time.
✗ Branch 390 → 1148 not taken.
✗ Branch 1114 → 1115 not taken.
✗ Branch 1114 → 1117 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree1", algo->GetConfig()->InRange("test_range", 3), "val"}) == 3)); |
| 113 |
9/18✓ Branch 391 → 392 taken 1 time.
✗ Branch 391 → 1148 not taken.
✓ Branch 392 → 393 taken 1 time.
✗ Branch 392 → 1148 not taken.
✓ Branch 393 → 394 taken 1 time.
✗ Branch 393 → 1142 not taken.
✓ Branch 397 → 398 taken 1 time.
✗ Branch 397 → 1134 not taken.
✓ Branch 398 → 399 taken 1 time.
✗ Branch 398 → 1132 not taken.
✗ Branch 399 → 400 not taken.
✓ Branch 399 → 401 taken 1 time.
✓ Branch 403 → 404 taken 3 times.
✓ Branch 403 → 406 taken 1 time.
✓ Branch 413 → 414 taken 1 time.
✗ Branch 413 → 1169 not taken.
✗ Branch 1135 → 1136 not taken.
✗ Branch 1135 → 1138 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree1", algo->GetConfig()->InRange("test_range", 5), "val"}) == 3)); // at a border |
| 114 |
9/18✓ Branch 414 → 415 taken 1 time.
✗ Branch 414 → 1169 not taken.
✓ Branch 415 → 416 taken 1 time.
✗ Branch 415 → 1169 not taken.
✓ Branch 416 → 417 taken 1 time.
✗ Branch 416 → 1163 not taken.
✓ Branch 420 → 421 taken 1 time.
✗ Branch 420 → 1155 not taken.
✓ Branch 421 → 422 taken 1 time.
✗ Branch 421 → 1153 not taken.
✗ Branch 422 → 423 not taken.
✓ Branch 422 → 424 taken 1 time.
✓ Branch 426 → 427 taken 3 times.
✓ Branch 426 → 429 taken 1 time.
✓ Branch 436 → 437 taken 1 time.
✗ Branch 436 → 1190 not taken.
✗ Branch 1156 → 1157 not taken.
✗ Branch 1156 → 1159 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree1", algo->GetConfig()->InRange("test_range", 6), "val"}) == 4)); |
| 115 |
9/18✓ Branch 437 → 438 taken 1 time.
✗ Branch 437 → 1190 not taken.
✓ Branch 438 → 439 taken 1 time.
✗ Branch 438 → 1190 not taken.
✓ Branch 439 → 440 taken 1 time.
✗ Branch 439 → 1184 not taken.
✓ Branch 443 → 444 taken 1 time.
✗ Branch 443 → 1176 not taken.
✓ Branch 444 → 445 taken 1 time.
✗ Branch 444 → 1174 not taken.
✗ Branch 445 → 446 not taken.
✓ Branch 445 → 447 taken 1 time.
✓ Branch 449 → 450 taken 3 times.
✓ Branch 449 → 452 taken 1 time.
✓ Branch 459 → 460 taken 1 time.
✗ Branch 459 → 1211 not taken.
✗ Branch 1177 → 1178 not taken.
✗ Branch 1177 → 1180 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree1", algo->GetConfig()->InRange("test_range", 10), "val"}) == 4)); |
| 116 |
9/18✓ Branch 460 → 461 taken 1 time.
✗ Branch 460 → 1211 not taken.
✓ Branch 461 → 462 taken 1 time.
✗ Branch 461 → 1211 not taken.
✓ Branch 462 → 463 taken 1 time.
✗ Branch 462 → 1205 not taken.
✓ Branch 466 → 467 taken 1 time.
✗ Branch 466 → 1197 not taken.
✓ Branch 467 → 468 taken 1 time.
✗ Branch 467 → 1195 not taken.
✗ Branch 468 → 469 not taken.
✓ Branch 468 → 470 taken 1 time.
✓ Branch 472 → 473 taken 3 times.
✓ Branch 472 → 475 taken 1 time.
✓ Branch 482 → 483 taken 1 time.
✗ Branch 482 → 1232 not taken.
✗ Branch 1198 → 1199 not taken.
✗ Branch 1198 → 1201 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree1", algo->GetConfig()->InRange("test_range", 11), "val"}) == 0)); // default fallback |
| 117 |
9/18✓ Branch 483 → 484 taken 1 time.
✗ Branch 483 → 1232 not taken.
✓ Branch 484 → 485 taken 1 time.
✗ Branch 484 → 1232 not taken.
✓ Branch 485 → 486 taken 1 time.
✗ Branch 485 → 1226 not taken.
✓ Branch 489 → 490 taken 1 time.
✗ Branch 489 → 1218 not taken.
✓ Branch 490 → 491 taken 1 time.
✗ Branch 490 → 1216 not taken.
✗ Branch 491 → 492 not taken.
✓ Branch 491 → 493 taken 1 time.
✓ Branch 495 → 496 taken 3 times.
✓ Branch 495 → 498 taken 1 time.
✓ Branch 505 → 506 taken 1 time.
✗ Branch 505 → 1253 not taken.
✗ Branch 1219 → 1220 not taken.
✗ Branch 1219 → 1222 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree1", algo->GetConfig()->InRange("test_range", 10.1), "val"}) == 0)); // wrong type |
| 118 |
9/18✓ Branch 506 → 507 taken 1 time.
✗ Branch 506 → 1253 not taken.
✓ Branch 507 → 508 taken 1 time.
✗ Branch 507 → 1253 not taken.
✓ Branch 508 → 509 taken 1 time.
✗ Branch 508 → 1247 not taken.
✓ Branch 512 → 513 taken 1 time.
✗ Branch 512 → 1239 not taken.
✓ Branch 513 → 514 taken 1 time.
✗ Branch 513 → 1237 not taken.
✗ Branch 514 → 515 not taken.
✓ Branch 514 → 516 taken 1 time.
✓ Branch 518 → 519 taken 3 times.
✓ Branch 518 → 521 taken 1 time.
✓ Branch 528 → 529 taken 1 time.
✗ Branch 528 → 1274 not taken.
✗ Branch 1240 → 1241 not taken.
✗ Branch 1240 → 1243 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree1", algo->GetConfig()->InRange("test_range", 3.7), "val"}) == 3)); // wrong type |
| 119 | // test InRange tree2 | ||
| 120 |
9/18✓ Branch 529 → 530 taken 1 time.
✗ Branch 529 → 1274 not taken.
✓ Branch 530 → 531 taken 1 time.
✗ Branch 530 → 1274 not taken.
✓ Branch 531 → 532 taken 1 time.
✗ Branch 531 → 1268 not taken.
✓ Branch 536 → 537 taken 1 time.
✗ Branch 536 → 1260 not taken.
✓ Branch 537 → 538 taken 1 time.
✗ Branch 537 → 1258 not taken.
✗ Branch 538 → 539 not taken.
✓ Branch 538 → 540 taken 1 time.
✓ Branch 547 → 548 taken 4 times.
✓ Branch 547 → 550 taken 1 time.
✓ Branch 557 → 558 taken 1 time.
✗ Branch 557 → 1295 not taken.
✗ Branch 1261 → 1262 not taken.
✗ Branch 1261 → 1264 not taken.
|
8 | assert((algo->GetOptionScalar<std::string>({"tree2", algo->GetConfig()->InRange("test_range", 1.9), "subtree", "lizard"}) == "iguana")); |
| 121 |
9/18✓ Branch 558 → 559 taken 1 time.
✗ Branch 558 → 1295 not taken.
✓ Branch 559 → 560 taken 1 time.
✗ Branch 559 → 1295 not taken.
✓ Branch 560 → 561 taken 1 time.
✗ Branch 560 → 1289 not taken.
✓ Branch 565 → 566 taken 1 time.
✗ Branch 565 → 1281 not taken.
✓ Branch 566 → 567 taken 1 time.
✗ Branch 566 → 1279 not taken.
✗ Branch 567 → 568 not taken.
✓ Branch 567 → 569 taken 1 time.
✓ Branch 571 → 572 taken 4 times.
✓ Branch 571 → 574 taken 1 time.
✓ Branch 581 → 582 taken 1 time.
✗ Branch 581 → 1325 not taken.
✗ Branch 1282 → 1283 not taken.
✗ Branch 1282 → 1285 not taken.
|
7 | assert((algo->GetOptionScalar<int>({"tree2", algo->GetConfig()->InRange("test_range", 1.9), "subtree", "number"}) == 7)); |
| 122 |
13/28✓ Branch 582 → 583 taken 1 time.
✗ Branch 582 → 1325 not taken.
✓ Branch 583 → 584 taken 1 time.
✗ Branch 583 → 1325 not taken.
✓ Branch 584 → 585 taken 1 time.
✗ Branch 584 → 1319 not taken.
✓ Branch 588 → 589 taken 1 time.
✗ Branch 588 → 1316 not taken.
✓ Branch 589 → 590 taken 1 time.
✗ Branch 589 → 1316 not taken.
✓ Branch 590 → 591 taken 1 time.
✗ Branch 590 → 1310 not taken.
✓ Branch 594 → 595 taken 1 time.
✗ Branch 594 → 1302 not taken.
✓ Branch 595 → 596 taken 1 time.
✗ Branch 595 → 1300 not taken.
✗ Branch 596 → 597 not taken.
✓ Branch 596 → 598 taken 1 time.
✓ Branch 600 → 601 taken 5 times.
✓ Branch 600 → 603 taken 1 time.
✗ Branch 610 → 611 not taken.
✓ Branch 610 → 612 taken 1 time.
✓ Branch 617 → 618 taken 1 time.
✗ Branch 617 → 1355 not taken.
✗ Branch 1303 → 1304 not taken.
✗ Branch 1303 → 1306 not taken.
✗ Branch 1316 → 1317 not taken.
✗ Branch 1316 → 1318 not taken.
|
10 | assert((algo->GetOptionScalar<int>({"tree2", algo->GetConfig()->InRange("test_range", 3.0), "subtree", algo->GetConfig()->InRange("sub_range", 1), "val"}) == 7)); |
| 123 |
13/28✓ Branch 618 → 619 taken 1 time.
✗ Branch 618 → 1355 not taken.
✓ Branch 619 → 620 taken 1 time.
✗ Branch 619 → 1355 not taken.
✓ Branch 620 → 621 taken 1 time.
✗ Branch 620 → 1349 not taken.
✓ Branch 624 → 625 taken 1 time.
✗ Branch 624 → 1346 not taken.
✓ Branch 625 → 626 taken 1 time.
✗ Branch 625 → 1346 not taken.
✓ Branch 626 → 627 taken 1 time.
✗ Branch 626 → 1340 not taken.
✓ Branch 630 → 631 taken 1 time.
✗ Branch 630 → 1332 not taken.
✓ Branch 631 → 632 taken 1 time.
✗ Branch 631 → 1330 not taken.
✗ Branch 632 → 633 not taken.
✓ Branch 632 → 634 taken 1 time.
✓ Branch 636 → 637 taken 5 times.
✓ Branch 636 → 639 taken 1 time.
✗ Branch 646 → 647 not taken.
✓ Branch 646 → 648 taken 1 time.
✓ Branch 653 → 654 taken 1 time.
✗ Branch 653 → 1385 not taken.
✗ Branch 1333 → 1334 not taken.
✗ Branch 1333 → 1336 not taken.
✗ Branch 1346 → 1347 not taken.
✗ Branch 1346 → 1348 not taken.
|
10 | assert((algo->GetOptionScalar<int>({"tree2", algo->GetConfig()->InRange("test_range", 3.0), "subtree", algo->GetConfig()->InRange("sub_range", 8), "val"}) == 8)); |
| 124 |
13/28✓ Branch 654 → 655 taken 1 time.
✗ Branch 654 → 1385 not taken.
✓ Branch 655 → 656 taken 1 time.
✗ Branch 655 → 1385 not taken.
✓ Branch 656 → 657 taken 1 time.
✗ Branch 656 → 1379 not taken.
✓ Branch 660 → 661 taken 1 time.
✗ Branch 660 → 1376 not taken.
✓ Branch 661 → 662 taken 1 time.
✗ Branch 661 → 1376 not taken.
✓ Branch 662 → 663 taken 1 time.
✗ Branch 662 → 1370 not taken.
✓ Branch 666 → 667 taken 1 time.
✗ Branch 666 → 1362 not taken.
✓ Branch 667 → 668 taken 1 time.
✗ Branch 667 → 1360 not taken.
✗ Branch 668 → 669 not taken.
✓ Branch 668 → 670 taken 1 time.
✓ Branch 672 → 673 taken 5 times.
✓ Branch 672 → 675 taken 1 time.
✗ Branch 682 → 683 not taken.
✓ Branch 682 → 684 taken 1 time.
✓ Branch 689 → 690 taken 1 time.
✗ Branch 689 → 1406 not taken.
✗ Branch 1363 → 1364 not taken.
✗ Branch 1363 → 1366 not taken.
✗ Branch 1376 → 1377 not taken.
✗ Branch 1376 → 1378 not taken.
|
10 | assert((algo->GetOptionScalar<int>({"tree2", algo->GetConfig()->InRange("test_range", 3.5), "subtree", algo->GetConfig()->InRange("sub_range", 11), "val"}) == 1)); |
| 125 |
9/18✓ Branch 690 → 691 taken 1 time.
✗ Branch 690 → 1406 not taken.
✓ Branch 691 → 692 taken 1 time.
✗ Branch 691 → 1406 not taken.
✓ Branch 692 → 693 taken 1 time.
✗ Branch 692 → 1400 not taken.
✓ Branch 696 → 697 taken 1 time.
✗ Branch 696 → 1392 not taken.
✓ Branch 697 → 698 taken 1 time.
✗ Branch 697 → 1390 not taken.
✗ Branch 698 → 699 not taken.
✓ Branch 698 → 700 taken 1 time.
✓ Branch 702 → 703 taken 3 times.
✓ Branch 702 → 705 taken 1 time.
✓ Branch 712 → 713 taken 1 time.
✗ Branch 712 → 1427 not taken.
✗ Branch 1393 → 1394 not taken.
✗ Branch 1393 → 1396 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree2", algo->GetConfig()->InRange("test_range", 4.0), "subtree"}) == 10)); |
| 126 | // test InRange tree3 | ||
| 127 |
9/20✓ Branch 713 → 714 taken 1 time.
✗ Branch 713 → 1427 not taken.
✓ Branch 714 → 715 taken 1 time.
✗ Branch 714 → 1427 not taken.
✓ Branch 715 → 716 taken 1 time.
✗ Branch 715 → 1421 not taken.
✓ Branch 719 → 720 taken 1 time.
✗ Branch 719 → 1413 not taken.
✓ Branch 720 → 721 taken 1 time.
✗ Branch 720 → 1411 not taken.
✗ Branch 721 → 722 not taken.
✓ Branch 721 → 723 taken 1 time.
✓ Branch 725 → 726 taken 3 times.
✓ Branch 725 → 728 taken 1 time.
✓ Branch 735 → 736 taken 1 time.
✗ Branch 735 → 1448 not taken.
✗ Branch 1414 → 1415 not taken.
✗ Branch 1414 → 1417 not taken.
✗ Branch 1460 → 1461 not taken.
✗ Branch 1460 → 1463 not taken.
|
6 | assert((algo->GetOptionScalar<int>({"tree3", algo->GetConfig()->InRange("test_range", 3), "val"}) == 3)); |
| 128 | try { | ||
| 129 |
7/16✓ Branch 736 → 737 taken 1 time.
✗ Branch 736 → 1448 not taken.
✓ Branch 737 → 738 taken 1 time.
✗ Branch 737 → 1448 not taken.
✓ Branch 738 → 739 taken 1 time.
✗ Branch 738 → 1442 not taken.
✓ Branch 742 → 743 taken 1 time.
✗ Branch 742 → 1434 not taken.
✗ Branch 743 → 744 not taken.
✓ Branch 743 → 1432 taken 1 time.
✗ Branch 744 → 745 not taken.
✗ Branch 744 → 746 not taken.
✗ Branch 748 → 749 not taken.
✗ Branch 748 → 751 not taken.
✓ Branch 1435 → 1436 taken 3 times.
✓ Branch 1435 → 1438 taken 1 time.
|
6 | assert((algo->GetOptionScalar<int>({"tree3", algo->GetConfig()->InRange("test_range", 11), "val"}) == 0)); |
| 130 | ✗ | fmt::print(stderr, "ERROR: accessing a missing default value for `InRange` did not throw exception\n"); | |
| 131 | ✗ | return 1; | |
| 132 | } | ||
| 133 |
1/2✗ Branch 1453 → 1454 not taken.
✓ Branch 1453 → 1455 taken 1 time.
|
1 | catch(std::exception const& ex) { |
| 134 | 1 | fmt::print("SUCCESS: accessing a missing default value for `InRange` threw expected exception\n"); | |
| 135 | 1 | } | |
| 136 | break; | ||
| 137 | } | ||
| 138 | |||
| 139 | default: | ||
| 140 | ✗ | fmt::print(stderr, "ERROR: unknown test number '{}'", test_num); | |
| 141 | ✗ | return 1; | |
| 142 | } | ||
| 143 | return 0; | ||
| 144 |
1/42✗ Branch 987 → 988 not taken.
✗ Branch 987 → 990 not taken.
✗ Branch 999 → 1000 not taken.
✗ Branch 999 → 1002 not taken.
✗ Branch 1011 → 1012 not taken.
✗ Branch 1011 → 1014 not taken.
✗ Branch 1023 → 1024 not taken.
✗ Branch 1023 → 1026 not taken.
✗ Branch 1055 → 1056 not taken.
✗ Branch 1055 → 1058 not taken.
✗ Branch 1107 → 1108 not taken.
✗ Branch 1107 → 1110 not taken.
✗ Branch 1128 → 1129 not taken.
✗ Branch 1128 → 1131 not taken.
✗ Branch 1149 → 1150 not taken.
✗ Branch 1149 → 1152 not taken.
✗ Branch 1170 → 1171 not taken.
✗ Branch 1170 → 1173 not taken.
✗ Branch 1191 → 1192 not taken.
✗ Branch 1191 → 1194 not taken.
✗ Branch 1212 → 1213 not taken.
✗ Branch 1212 → 1215 not taken.
✗ Branch 1233 → 1234 not taken.
✗ Branch 1233 → 1236 not taken.
✗ Branch 1254 → 1255 not taken.
✗ Branch 1254 → 1257 not taken.
✗ Branch 1275 → 1276 not taken.
✗ Branch 1275 → 1278 not taken.
✗ Branch 1296 → 1297 not taken.
✗ Branch 1296 → 1299 not taken.
✗ Branch 1326 → 1327 not taken.
✗ Branch 1326 → 1329 not taken.
✗ Branch 1356 → 1357 not taken.
✗ Branch 1356 → 1359 not taken.
✗ Branch 1386 → 1387 not taken.
✗ Branch 1386 → 1389 not taken.
✗ Branch 1407 → 1408 not taken.
✗ Branch 1407 → 1410 not taken.
✗ Branch 1428 → 1429 not taken.
✗ Branch 1428 → 1431 not taken.
✗ Branch 1449 → 1450 not taken.
✓ Branch 1449 → 1452 taken 1 time.
|
4 | } |
| 145 |