8 #include "gtest/gtest.h"
10 #include "../Egamma1BDT/parameters.h"
18 TEST (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>>>();
56 return std::optional(
inputs);
60 auto test_vectors_opt = get_test_vectors();
62 EXPECT_EQ(test_vectors_opt.has_value(),
true);
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;
104 std::size_t i_vec{0};
105 for (std::size_t i_test = 0; i_test != tv_sz; ++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) {
117 GlobalSim::bdt.decision_function(
x,
score);
123 EXPECT_EQ(i_vec, 32602
u);