1 #include <analysis/dbobjects/ParticleWeightingLookUpTable.h>
2 #include <framework/utilities/TestHelpers.h>
4 #include <gtest/gtest.h>
11 TEST(ParticleWeighting, BinLimits)
15 EXPECT_TRUE(a->first() == 0);
16 EXPECT_TRUE(a->second() == 1);
18 EXPECT_TRUE(b->first() == 0);
19 EXPECT_TRUE(b->second() == 1);
22 TEST(ParticleWeighting, Axis)
25 EXPECT_TRUE(a->getName() ==
"");
26 a->setName(
"Test axis name");
27 EXPECT_TRUE(a->getName() ==
"Test axis name");
36 int added_bin_id_1 = a->addBin(bin1);
37 EXPECT_EQ(added_bin_id_1 , 1);
38 int added_bin_id_2 = a->addBin(bin2);
39 EXPECT_EQ(added_bin_id_2 , 2);
40 EXPECT_B2FATAL(a->addBin(bin3));
41 EXPECT_B2FATAL(a->addBin(bin4));
42 EXPECT_B2FATAL(a->addBin(bin5));
43 EXPECT_TRUE(a->findBin(0.5) == 1);
44 EXPECT_TRUE(a->findBin(1.5) == -1);
45 EXPECT_TRUE(a->findBin(bin1) == 1);
46 EXPECT_TRUE(a->addBin(bin1b) == 3);
49 TEST(ParticleWeighting, KeyMap)
58 bin1.insert(make_pair(a1, bl1));
59 bin1.insert(make_pair(a2, bl1));
61 bin2.insert(make_pair(a1, bl2));
62 bin2.insert(make_pair(a2, bl2));
64 bin3.insert(make_pair(a1, bl3));
65 bin3.insert(make_pair(a2, bl3));
67 bin1a.insert(make_pair(a1, bl2));
68 bin1a.insert(make_pair(a2, bl2));
69 bin1a.insert(make_pair(a3, bl3));
71 bin1b.insert(make_pair(a1, bl1));
72 bin1b.insert(make_pair(a1, bl2));
74 bin1c.insert(make_pair(a3, bl3));
75 bin1c.insert(make_pair(a2, bl2));
76 map<string, double> entry1;
77 entry1.insert(make_pair(a1, 0.1));
78 entry1.insert(make_pair(a2, 0.2));
79 map<string, double> entry2;
80 entry2.insert(make_pair(a1, 1.1));
81 entry2.insert(make_pair(a2, 1.2));
82 map<string, double> entry3;
83 entry3.insert(make_pair(a1, 10));
84 entry3.insert(make_pair(a2, 10));
87 int added_bin_id_1 = kmp->addKey(bin1);
88 EXPECT_EQ(added_bin_id_1, 0);
89 int added_bin_id_2 = kmp->addKey(bin2);
90 EXPECT_EQ(added_bin_id_2, 1);
91 EXPECT_B2FATAL(kmp->addKey(bin1, 42));
92 EXPECT_B2FATAL(kmp->addKey(bin1a));
93 EXPECT_B2FATAL(kmp->addKey(bin1b));
94 EXPECT_B2FATAL(kmp->addKey(bin1c));
95 EXPECT_EQ(kmp->getKey(entry1), 0);
96 EXPECT_EQ(kmp->getKey(entry2), 1);
97 EXPECT_EQ(kmp->getKey(entry3), -1);
100 TEST(ParticleWeighting, LookUpTable)
110 bin1.insert(make_pair(a1, bl1));
111 bin1.insert(make_pair(a2, bl1));
113 bin2.insert(make_pair(a1, bl2));
114 bin2.insert(make_pair(a2, bl2));
116 bin3.insert(make_pair(a1, bl3));
117 bin3.insert(make_pair(a2, bl3));
119 info1.insert(make_pair(v1, 41));
120 info1.insert(make_pair(v2, 42));
122 info2.insert(make_pair(v1, 31));
123 info2.insert(make_pair(v2, 32));
125 info3.insert(make_pair(v1, 21));
126 info3.insert(make_pair(v2, 22));
127 map<string, double> entry1;
128 entry1.insert(make_pair(a1, 0.1));
129 entry1.insert(make_pair(a2, 0.2));
130 map<string, double> entry1a;
131 entry1a.insert(make_pair(a1, 100));
132 entry1a.insert(make_pair(a2, 200));
135 ltb->addEntry(info1, bin1);
136 ltb->addEntry(info2, bin2);
137 vector<string> axes = ltb->getAxesNames();
138 vector<string> known_axes;
139 known_axes.push_back(a1);
140 known_axes.push_back(a2);
141 EXPECT_TRUE(
equal(axes.begin(), axes.end(), known_axes.begin()));
142 WeightInfo obtained_info = ltb->getInfo(entry1);
143 double info_at_1 = obtained_info.at(v1);
144 EXPECT_EQ(info_at_1, 41);
145 double info_at_2 = obtained_info.at(v2);
146 EXPECT_EQ(info_at_2, 42);
148 EXPECT_B2FATAL(ltb->getInfo(entry1a));
150 ltb->defineOutOfRangeWeight(info3);
151 obtained_info = ltb->getInfo(entry1a);
152 info_at_2 = obtained_info.at(v2);
153 EXPECT_EQ(info_at_2, 22);