1 #include <framework/dataobjects/EventMetaData.h>
2 #include <framework/dataobjects/ProfileInfo.h>
3 #include <framework/datastore/RelationArray.h>
4 #include <framework/datastore/StoreArray.h>
6 #include <gtest/gtest.h>
13 class RelationConsolidateTest :
public ::testing::Test {
20 DataStore::Instance().setInitializeActive(
true);
21 evtData->registerInDataStore();
22 profileData->registerInDataStore();
24 DataStore::Instance().setInitializeActive(
false);
26 for (
int i = 0; i < 10; ++i) {
28 profileData->appendNew();
32 relArray->add(0, 0, 1.0);
33 relArray->add(0, 1, 2.0);
34 relArray->add(0, 1, 3.0);
35 relArray->add(1, 0, 1.0);
36 relArray->add(1, 1, 2.0);
37 relArray->add(1, 2, 3.0);
41 void TearDown()
override
43 DataStore::Instance().reset();
55 TEST_F(RelationConsolidateTest, RelationConsolidateDefault)
60 EXPECT_EQ(relation[0].getSize(), 2u);
61 EXPECT_EQ(relation[0].getWeight(0), 1.0);
62 EXPECT_EQ(relation[0].getWeight(1), 5.0);
63 EXPECT_EQ(relation[1].getSize(), 3u);
64 EXPECT_EQ(relation[1].getWeight(0), 1.0);
65 EXPECT_EQ(relation[1].getWeight(1), 2.0);
66 EXPECT_EQ(relation[1].getWeight(2), 3.0);
68 std::map<unsigned int, std::pair<unsigned int, bool> > replace;
69 replace[0] = std::make_pair(1,
true);
70 replace[2] = std::make_pair(3,
false);
74 EXPECT_EQ(relation[0].getSize(), 2u);
75 EXPECT_EQ(relation[0].getWeight(0), 9.0);
76 EXPECT_EQ(relation[0].getWeight(1), 3.0);
77 EXPECT_EQ(relation[0].getFromIndex(), 1u);
78 EXPECT_EQ(relation[0].getToIndex(0), 1u);
79 EXPECT_EQ(relation[0].getToIndex(1), 3u);
83 TEST_F(RelationConsolidateTest, RelationConsolidateZero)
86 std::map<unsigned int, std::pair<unsigned int, bool> > replace;
87 replace[0] = std::make_pair(1,
true);
88 replace[2] = std::make_pair(3,
false);
90 relation.
consolidate(replaceMap, replaceMap, RelationArray::c_zeroWeight);
92 EXPECT_EQ(relation[0].getSize(), 2u);
93 EXPECT_EQ(relation[0].getWeight(0), 2.0);
94 EXPECT_EQ(relation[0].getWeight(1), 3.0);
95 EXPECT_EQ(relation[0].getFromIndex(), 1u);
96 EXPECT_EQ(relation[0].getToIndex(0), 1u);
97 EXPECT_EQ(relation[0].getToIndex(1), 3u);
100 std::map<unsigned int, std::pair<unsigned int, bool> > replace2;
101 replace2[3] = std::make_pair(2,
true);
103 relation.
consolidate(replaceMap2, replaceMap2, RelationArray::c_zeroWeight);
105 EXPECT_EQ(relation[0].getSize(), 2u);
106 EXPECT_EQ(relation[0].getWeight(0), 2.0);
107 EXPECT_EQ(relation[0].getWeight(1), 0.0);
108 EXPECT_EQ(relation[0].getFromIndex(), 1u);
109 EXPECT_EQ(relation[0].getToIndex(0), 1u);
110 EXPECT_EQ(relation[0].getToIndex(1), 2u);
114 TEST_F(RelationConsolidateTest, RelationConsolidateNegative)
117 std::map<unsigned int, std::pair<unsigned int, bool> > replace;
118 replace[0] = std::make_pair(1,
true);
119 replace[2] = std::make_pair(3,
false);
121 relation.
consolidate(replaceMap, replaceMap, RelationArray::c_negativeWeight);
123 EXPECT_EQ(relation[0].getSize(), 2u);
125 EXPECT_EQ(relation[0].getWeight(0), -5.0);
126 EXPECT_EQ(relation[0].getWeight(1), 3.0);
127 EXPECT_EQ(relation[0].getFromIndex(), 1u);
128 EXPECT_EQ(relation[0].getToIndex(0), 1u);
129 EXPECT_EQ(relation[0].getToIndex(1), 3u);
132 std::map<unsigned int, std::pair<unsigned int, bool> > replace2;
133 replace2[1] = std::make_pair(1,
true);
134 replace2[3] = std::make_pair(2,
true);
136 relation.
consolidate(replaceMap2, replaceMap2, RelationArray::c_negativeWeight);
138 EXPECT_EQ(relation[0].getSize(), 2u);
139 EXPECT_EQ(relation[0].getWeight(0), -5.0);
140 EXPECT_EQ(relation[0].getWeight(1), -3.0);
141 EXPECT_EQ(relation[0].getFromIndex(), 1u);
142 EXPECT_EQ(relation[0].getToIndex(0), 1u);
143 EXPECT_EQ(relation[0].getToIndex(1), 2u);
147 TEST_F(RelationConsolidateTest, RelationConsolidateDelete)
150 std::map<unsigned int, std::pair<unsigned int, bool> > replace;
151 replace[0] = std::make_pair(1,
true);
152 replace[2] = std::make_pair(3,
false);
154 relation.
consolidate(replaceMap, replaceMap, RelationArray::c_deleteElement);
156 EXPECT_EQ(relation[0].getSize(), 2u);
157 EXPECT_EQ(relation[0].getWeight(0), 2.0);
158 EXPECT_EQ(relation[0].getWeight(1), 3.0);
159 EXPECT_EQ(relation[0].getFromIndex(), 1u);
160 EXPECT_EQ(relation[0].getToIndex(0), 1u);
161 EXPECT_EQ(relation[0].getToIndex(1), 3u);
164 std::map<unsigned int, std::pair<unsigned int, bool> > replace2;
165 replace2[3] = std::make_pair(3,
true);
167 relation.
consolidate(replaceMap2, replaceMap2, RelationArray::c_deleteElement);
169 EXPECT_EQ(relation[0].getSize(), 1u);
170 EXPECT_EQ(relation[0].getWeight(0), 2.0);
171 EXPECT_EQ(relation[0].getFromIndex(), 1u);
172 EXPECT_EQ(relation[0].getToIndex(0), 1u);
175 std::map<unsigned int, std::pair<unsigned int, bool> > replace3;
176 replace3[1] = std::make_pair(2,
true);
178 relation.
consolidate(replaceMap3, replaceMap3, RelationArray::c_deleteElement);