28TEST(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());
60TEST(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());
93TEST(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());
127TEST(JetGroupProductTester, reallife) {
128 std::vector<std::size_t> siblings{1, 2};
131 satisfiedBy[0] = std::vector<std::size_t>();
132 satisfiedBy[1] = std::vector<std::size_t> {0, 1, 2};
133 satisfiedBy[2] = std::vector<std::size_t> {
134 0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13,
135 14, 15, 17, 19, 21, 25, 26, 29, 33};
137 std::vector<std::size_t> condMult{1, 1, 3};
140 for (
const auto& i : satisfiedBy[2]){
141 jg2elemjgs[i] = std::vector<std::size_t> {i};
145 auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(
nullptr);
147 EXPECT_TRUE(jgp.
valid());
149 std::size_t ipass{0};
152 auto indices = jgp.
next(collector);
153 if (indices.empty()){
break;}
158 EXPECT_EQ (ipass, 2925u);