| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // test an iguana algorithm validator | ||
| 2 | |||
| 3 | #include <filesystem> | ||
| 4 | #include <hipo4/reader.h> | ||
| 5 | #include <iguana/algorithms/Validator.h> | ||
| 6 | |||
| 7 | 10 | inline int TestValidator( | |
| 8 | std::string vdor_name, | ||
| 9 | std::vector<std::string> bank_names, | ||
| 10 | std::string data_file, | ||
| 11 | int num_events, | ||
| 12 | std::string output_dir, | ||
| 13 | bool verbose) | ||
| 14 | { | ||
| 15 | |||
| 16 | // check arguments | ||
| 17 |
2/4✓ Branch 2 → 3 taken 10 times.
✗ Branch 2 → 4 not taken.
✗ Branch 3 → 4 not taken.
✓ Branch 3 → 6 taken 10 times.
|
10 | if(vdor_name == "" || bank_names.empty()) { |
| 18 | ✗ | fmt::print(stderr, "ERROR: need validator name and banks\n"); | |
| 19 | ✗ | return 1; | |
| 20 | } | ||
| 21 |
1/2✗ Branch 6 → 8 not taken.
✓ Branch 6 → 10 taken 10 times.
|
10 | if(data_file == "") { |
| 22 | ✗ | fmt::print(stderr, "ERROR: need a data file for command 'validator'\n"); | |
| 23 | ✗ | return 1; | |
| 24 | } | ||
| 25 | |||
| 26 | // open the HIPO file | ||
| 27 | 10 | hipo::reader reader(data_file.c_str()); | |
| 28 |
3/6✓ Branch 11 → 12 taken 10 times.
✗ Branch 11 → 63 not taken.
✓ Branch 12 → 13 taken 10 times.
✗ Branch 12 → 47 not taken.
✓ Branch 14 → 15 taken 10 times.
✗ Branch 14 → 19 not taken.
|
10 | auto banks = reader.getBanks(bank_names); |
| 29 | |||
| 30 | // make the output directory | ||
| 31 |
1/2✓ Branch 14 → 15 taken 10 times.
✗ Branch 14 → 19 not taken.
|
10 | if(output_dir != "") |
| 32 |
2/4✓ Branch 15 → 16 taken 10 times.
✗ Branch 15 → 61 not taken.
✓ Branch 16 → 17 taken 10 times.
✗ Branch 16 → 49 not taken.
|
10 | std::filesystem::create_directories(output_dir); |
| 33 | |||
| 34 | // define the validator | ||
| 35 |
1/2✓ Branch 19 → 20 taken 10 times.
✗ Branch 19 → 61 not taken.
|
10 | auto vdor = iguana::AlgorithmFactory::Create(vdor_name); |
| 36 |
2/4✓ Branch 20 → 21 taken 10 times.
✗ Branch 20 → 22 not taken.
✓ Branch 24 → 25 taken 10 times.
✗ Branch 24 → 57 not taken.
|
20 | dynamic_cast<iguana::Validator*>(vdor.get())->SetOutputDirectory(output_dir); |
| 37 |
4/10✓ Branch 25 → 26 taken 10 times.
✗ Branch 25 → 27 not taken.
✓ Branch 27 → 28 taken 10 times.
✗ Branch 27 → 57 not taken.
✓ Branch 28 → 29 taken 10 times.
✗ Branch 28 → 51 not taken.
✓ Branch 34 → 35 taken 10 times.
✗ Branch 34 → 57 not taken.
✗ Branch 57 → 58 not taken.
✗ Branch 57 → 60 not taken.
|
30 | vdor->SetOption("log", verbose ? "trace" : "info"); |
| 38 | |||
| 39 | // event loop | ||
| 40 |
1/2✓ Branch 34 → 35 taken 10 times.
✗ Branch 34 → 57 not taken.
|
10 | vdor->Start(banks); |
| 41 | int it_ev = 0; | ||
| 42 |
5/8✓ Branch 35 → 36 taken 10010 times.
✗ Branch 35 → 57 not taken.
✓ Branch 36 → 37 taken 10010 times.
✗ Branch 36 → 40 not taken.
✓ Branch 37 → 38 taken 10010 times.
✗ Branch 37 → 39 not taken.
✓ Branch 38 → 39 taken 10000 times.
✓ Branch 38 → 40 taken 10 times.
|
10010 | while(reader.next(banks) && (num_events == 0 || it_ev++ < num_events)) { |
| 43 |
1/2✓ Branch 39 → 35 taken 10000 times.
✗ Branch 39 → 57 not taken.
|
10000 | vdor->Run(banks); |
| 44 | } | ||
| 45 |
1/2✓ Branch 40 → 41 taken 10 times.
✗ Branch 40 → 57 not taken.
|
10 | vdor->Stop(); |
| 46 | return 0; | ||
| 47 | 10 | } | |
| 48 |