ATLAS Offline Software
JetGroupUnionTest.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "gtest/gtest.h"
7 #include <vector>
8 #include <map>
9 
10 using res = std::pair<std::vector<unsigned int>, bool>;
11 using vec = std::vector<unsigned int>;
12 
13 TEST(JetGroupUnionTester, empty) {
14  std::vector<std::size_t> siblings;
15  CondInd2JetGroupsInds satisfiedBy;
16 
17  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
18 
19  JetGroupUnion jgu(siblings, satisfiedBy);
20 
21  EXPECT_TRUE(jgu.next(collector).empty());
22 }
23 
24 
25 TEST(JetGroupUnionTester, one_elementary_cond) {
26  std::vector<std::size_t> siblings{0};
27 
28  CondInd2JetGroupsInds satisfiedBy;
29  satisfiedBy[0] = std::vector<std::size_t> {0, 1, 2};
30 
31  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
32 
33  JetGroupUnion jgu(siblings, satisfiedBy);
34 
35  auto exp = std::vector<std::size_t>{0, 1, 2};
36  EXPECT_EQ(jgu.next(collector), exp);
37  EXPECT_TRUE(jgu.next(collector).empty());
38 }
39 
40 
41 TEST(JetGroupUnionTester, two_elem_nooverlap) {
42  std::vector<std::size_t> siblings{0, 1};
43 
44  CondInd2JetGroupsInds satisfiedBy;
45  satisfiedBy[0] = std::vector<std::size_t> {0, 1, 2};
46  satisfiedBy[1] = std::vector<std::size_t> {3, 4, 5};
47  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
48 
49  JetGroupUnion jgu(siblings, satisfiedBy);
50 
51  auto exp = std::vector<std::size_t>{0, 1, 2, 3, 4, 5};
52  EXPECT_EQ(jgu.next(collector), exp);
53  EXPECT_TRUE(jgu.next(collector).empty());
54 }
55 
56 TEST(JetGroupUnionTester, two_elem_withoverlap) {
57  std::vector<std::size_t> siblings{0, 1};
58 
59  CondInd2JetGroupsInds satisfiedBy;
60  satisfiedBy[0] = std::vector<std::size_t> {0, 1, 2};
61  satisfiedBy[1] = std::vector<std::size_t> {3, 1, 5};
62 
63  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
64 
65  JetGroupUnion jgu(siblings, satisfiedBy);
66 
67  auto exp = std::vector<std::size_t>{0, 1, 2, 3, 5};
68  EXPECT_EQ(jgu.next(collector), exp);
69  EXPECT_TRUE(jgu.next(collector).empty());
70 }
JetGroupUnion
Definition: JetGroupUnion.h:20
CondInd2JetGroupsInds
std::map< int, std::vector< std::size_t > > CondInd2JetGroupsInds
Definition: JetGroupProduct.h:15
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:9
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:11
JetGroupUnion.h
JetGroupUnion::next
virtual std::vector< std::size_t > next(const Collector &) override
Definition: JetGroupUnion.cxx:36
TEST
TEST(JetGroupUnionTester, empty)
Definition: JetGroupUnionTest.cxx:13