5 #include "gtest/gtest.h"
11 using res = std::pair<std::vector<unsigned int>,
bool>;
12 using vec = std::vector<unsigned int>;
14 TEST(JetGroupProductTester, empty) {
15 std::vector<std::size_t> siblings;
17 std::vector<std::size_t> condMult;
21 auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(
nullptr);
23 EXPECT_FALSE(jgp.
valid());
24 EXPECT_TRUE((jgp.
next(collector)).empty());
28 TEST(JetGroupProductTester, onecondition) {
29 std::vector<std::size_t> siblings{1};
32 satisfiedBy[0] = std::vector<std::size_t>();
33 satisfiedBy[1] = std::vector<std::size_t> {0, 1, 2};
35 std::vector<std::size_t> condMult{0, 1};
38 jg2elemjgs[0] = std::vector<std::size_t> {0};
39 jg2elemjgs[1] = std::vector<std::size_t> {1};
40 jg2elemjgs[2] = std::vector<std::size_t> {2};
44 auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(
nullptr);
46 EXPECT_TRUE(jgp.
valid());
48 auto exp = std::vector<std::size_t>{0};
49 EXPECT_EQ(jgp.
next(collector),
exp);
51 exp = std::vector<std::size_t>{1};
52 EXPECT_EQ(jgp.
next(collector),
exp);
54 exp = std::vector<std::size_t>{2};
55 EXPECT_EQ(jgp.
next(collector),
exp);
57 EXPECT_TRUE(jgp.
next(collector).empty());
60 TEST(JetGroupProductTester, repeatedcond) {
61 std::vector<std::size_t> siblings{1};
64 satisfiedBy[0] = std::vector<std::size_t>();
65 satisfiedBy[1] = std::vector<std::size_t> {0, 1, 2};
67 std::vector<std::size_t> condMult{1, 2};
70 jg2elemjgs[0] = std::vector<std::size_t> {0};
71 jg2elemjgs[1] = std::vector<std::size_t> {1};
72 jg2elemjgs[2] = std::vector<std::size_t> {2};
76 auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(
nullptr);
78 EXPECT_TRUE(jgp.
valid());
80 auto exp = std::vector<std::size_t>{0, 1};
81 EXPECT_EQ(jgp.
next(collector),
exp);
83 exp = std::vector<std::size_t>{0, 2};
84 EXPECT_EQ(jgp.
next(collector),
exp);
87 exp = std::vector<std::size_t>{1, 2};
88 EXPECT_EQ(jgp.
next(collector),
exp);
90 EXPECT_TRUE(jgp.
next(collector).empty());
93 TEST(JetGroupProductTester, twocond) {
94 std::vector<std::size_t> siblings{1, 2};
97 satisfiedBy[0] = std::vector<std::size_t>();
98 satisfiedBy[1] = std::vector<std::size_t> {0, 1, 2};
99 satisfiedBy[2] = std::vector<std::size_t> {0, 1, 2};
101 std::vector<std::size_t> condMult{1, 1, 1};
104 jg2elemjgs[0] = std::vector<std::size_t> {0};
105 jg2elemjgs[1] = std::vector<std::size_t> {1};
106 jg2elemjgs[2] = std::vector<std::size_t> {2};
110 auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(
nullptr);
112 EXPECT_TRUE(jgp.
valid());
114 auto exp = std::vector<std::size_t>{0, 1};
115 EXPECT_EQ(jgp.
next(collector),
exp);
117 exp = std::vector<std::size_t>{0, 2};
118 EXPECT_EQ(jgp.
next(collector),
exp);
120 exp = std::vector<std::size_t>{1, 2};
121 EXPECT_EQ(jgp.
next(collector),
exp);
123 EXPECT_TRUE(jgp.
next(collector).empty());
124 if(collector) {collector->write();}
128 TEST(JetGroupProductTester, reallife) {
129 std::vector<std::size_t> siblings{1, 2};
132 satisfiedBy[0] = std::vector<std::size_t>();
133 satisfiedBy[1] = std::vector<std::size_t> {0, 1, 2};
134 satisfiedBy[2] = std::vector<std::size_t> {
135 0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13,
136 14, 15, 17, 19, 21, 25, 26, 29, 33};
138 std::vector<std::size_t> condMult{1, 1, 3};
141 for (
const auto&
i : satisfiedBy[2]){
142 jg2elemjgs[
i] = std::vector<std::size_t> {
i};
146 auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(
nullptr);
148 EXPECT_TRUE(jgp.
valid());
150 std::size_t ipass{0};
159 EXPECT_EQ (ipass, 2925
u);