8 #include <analysis/dbobjects/ParticleWeightingLookUpTable.h>
9 #include <framework/utilities/TestHelpers.h>
11 #include <gtest/gtest.h>
18 TEST(ParticleWeighting, BinLimits)
22 EXPECT_TRUE(a->first() == 0);
23 EXPECT_TRUE(a->second() == 1);
25 EXPECT_TRUE(b->first() == 0);
26 EXPECT_TRUE(b->second() == 1);
29 TEST(ParticleWeighting, Axis)
32 EXPECT_TRUE(a->getName() ==
"");
33 a->setName(
"Test axis name");
34 EXPECT_TRUE(a->getName() ==
"Test axis name");
43 int added_bin_id_1 = a->addBin(bin1);
44 EXPECT_EQ(added_bin_id_1 , 1);
45 int added_bin_id_2 = a->addBin(bin2);
46 EXPECT_EQ(added_bin_id_2 , 2);
47 EXPECT_B2FATAL(a->addBin(bin3));
48 EXPECT_B2FATAL(a->addBin(bin4));
49 EXPECT_B2FATAL(a->addBin(bin5));
50 EXPECT_TRUE(a->findBin(0.5) == 1);
51 EXPECT_TRUE(a->findBin(1.5) == -1);
52 EXPECT_TRUE(a->findBin(bin1) == 1);
53 EXPECT_TRUE(a->addBin(bin1b) == 3);
56 TEST(ParticleWeighting, KeyMap)
65 bin1.insert(make_pair(a1, bl1));
66 bin1.insert(make_pair(a2, bl1));
68 bin2.insert(make_pair(a1, bl2));
69 bin2.insert(make_pair(a2, bl2));
71 bin3.insert(make_pair(a1, bl3));
72 bin3.insert(make_pair(a2, bl3));
74 bin1a.insert(make_pair(a1, bl2));
75 bin1a.insert(make_pair(a2, bl2));
76 bin1a.insert(make_pair(a3, bl3));
78 bin1b.insert(make_pair(a1, bl1));
79 bin1b.insert(make_pair(a1, bl2));
81 bin1c.insert(make_pair(a3, bl3));
82 bin1c.insert(make_pair(a2, bl2));
83 map<string, double> entry1;
84 entry1.insert(make_pair(a1, 0.1));
85 entry1.insert(make_pair(a2, 0.2));
86 map<string, double> entry2;
87 entry2.insert(make_pair(a1, 1.1));
88 entry2.insert(make_pair(a2, 1.2));
89 map<string, double> entry3;
90 entry3.insert(make_pair(a1, 10));
91 entry3.insert(make_pair(a2, 10));
94 int added_bin_id_1 = kmp->addKey(bin1);
95 EXPECT_EQ(added_bin_id_1, 0);
96 int added_bin_id_2 = kmp->addKey(bin2);
97 EXPECT_EQ(added_bin_id_2, 1);
98 EXPECT_B2FATAL(kmp->addKey(bin1, 42));
99 EXPECT_B2FATAL(kmp->addKey(bin1a));
100 EXPECT_B2FATAL(kmp->addKey(bin1b));
101 EXPECT_B2FATAL(kmp->addKey(bin1c));
102 EXPECT_EQ(kmp->getKey(entry1), 0);
103 EXPECT_EQ(kmp->getKey(entry2), 1);
104 EXPECT_EQ(kmp->getKey(entry3), -1);
107 TEST(ParticleWeighting, LookUpTable)
117 bin1.insert(make_pair(a1, bl1));
118 bin1.insert(make_pair(a2, bl1));
120 bin2.insert(make_pair(a1, bl2));
121 bin2.insert(make_pair(a2, bl2));
123 bin3.insert(make_pair(a1, bl3));
124 bin3.insert(make_pair(a2, bl3));
126 info1.insert(make_pair(v1, 41));
127 info1.insert(make_pair(v2, 42));
129 info2.insert(make_pair(v1, 31));
130 info2.insert(make_pair(v2, 32));
132 info3.insert(make_pair(v1, 21));
133 info3.insert(make_pair(v2, 22));
134 map<string, double> entry1;
135 entry1.insert(make_pair(a1, 0.1));
136 entry1.insert(make_pair(a2, 0.2));
137 map<string, double> entry1a;
138 entry1a.insert(make_pair(a1, 100));
139 entry1a.insert(make_pair(a2, 200));
142 ltb->addEntry(info1, bin1);
143 ltb->addEntry(info2, bin2);
144 vector<string> axes = ltb->getAxesNames();
145 vector<string> known_axes;
146 known_axes.push_back(a1);
147 known_axes.push_back(a2);
148 EXPECT_TRUE(
equal(axes.begin(), axes.end(), known_axes.begin()));
149 WeightInfo obtained_info = ltb->getInfo(entry1);
150 double info_at_1 = obtained_info.at(v1);
151 EXPECT_EQ(info_at_1, 41);
152 double info_at_2 = obtained_info.at(v2);
153 EXPECT_EQ(info_at_2, 42);
155 EXPECT_B2FATAL(ltb->getInfo(entry1a));
157 ltb->defineOutOfRangeWeight(info3);
158 obtained_info = ltb->getInfo(entry1a);
159 info_at_2 = obtained_info.at(v2);
160 EXPECT_EQ(info_at_2, 22);
Class for handling LookUp tables.
Just pair of numbers - min and max values of bin border.
Class for handling KeyMap.
Class for handling LookUp tables.
std::map< std::string, ParticleWeightingBinLimits * > NDBin
N-dim bin: pairs of bin limits with name of the axis variable.
std::map< std::string, double > WeightInfo
Weight information: a line from the weight lookup table.
TEST(TestgetDetectorRegion, TestgetDetectorRegion)
Test Constructors.
Abstract base class for different kinds of events.
const std::vector< double > v2
MATLAB generated random vector.
const std::vector< double > v1
MATLAB generated random vector.