18TEST (egamma1BDTTester, testvecs) {
20 "/eos/atlas/atlascerngroupdisk/data-art/large-input/trig-val/GlobalSimTest";
22 auto tv_fn = path +
"/Egamma1BDT_testVecs.txt";
26 auto get_test_vectors =
27 [&tv_fn]()->std::optional<std::vector<std::vector<double>>> {
28 std::ifstream ifs(tv_fn);
32 return std::optional<std::vector<std::vector<double>>>();
35 auto line = std::string();
38 std::vector<std::vector<double>> inputs;
40 while (std::getline(ifs, line)) {
41 auto ss = std::stringstream(line);
42 std::vector<double> input;
44 while (std::getline(
ss, tok,
',')) {
45 input.push_back(std::stod(tok));
48 constexpr int exp_size{18};
49 if (input.size() != exp_size) {
50 return std::optional<std::vector<std::vector<double>>>();
53 inputs.push_back(input);
56 return std::optional(inputs);
60 auto test_vectors_opt = get_test_vectors();
62 EXPECT_EQ(test_vectors_opt.has_value(),
true);
65 auto test_vectors = *test_vectors_opt;
67 std::string fn_exp = path +
"/Egamma1BDT_testExps_hls.txt";
70 auto get_expectations =
71 [&fn_exp]() -> std::optional<std::vector<double>> {
73 std::ifstream ifs(fn_exp);
75 return std::optional<std::vector<double>>();
78 auto line = std::string();
80 std::vector<double> exps;
82 while (std::getline(ifs, line)) {
83 auto ss = std::stringstream(line);
84 while (std::getline(
ss, tok)) {
85 exps.push_back(std::stod(tok));
94 auto expectations_opt = get_expectations();
96 EXPECT_EQ(expectations_opt.has_value(),
true);
98 auto expectations = *expectations_opt;
100 EXPECT_EQ(test_vectors.size(), expectations.size());
102 const auto tv_sz = test_vectors.size();
104 std::size_t i_vec{0};
105 for (std::size_t i_test = 0; i_test != tv_sz; ++i_test) {
106 const auto& tv = test_vectors[i_test];
107 const auto& exp = expectations[i_test];
109 auto tv_size = tv.size();
110 for(std::size_t j = 0; j != tv_size; ++j) {
119 EXPECT_EQ(score[0], exp);
123 EXPECT_EQ(i_vec, 32602u);