Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Typedefs | Functions
JetGroupReducerTest.cxx File Reference
#include "gtest/gtest.h"
#include "TrigHLTJetHypo/../src/JetGroupReducer.h"
#include <vector>
#include <map>
Include dependency graph for JetGroupReducerTest.cxx:

Go to the source code of this file.

Typedefs

using res = std::pair< std::vector< unsigned int >, bool >
 
using vec = std::vector< unsigned int >
 

Functions

 TEST (JetGroupReducerTester, empty)
 
 TEST (JetGroupReducerTester, emptyCondition)
 
 TEST (JetGroupReducerTester, one_condition_elem)
 
 TEST (JetGroupReducerTester, one_condition_non_elem)
 
 TEST (JetGroupReducerTester, two_conditions_nooverlap_elem_elem)
 
 TEST (JetGroupReducerTester, two_conditions_nooverlap_elem_non_elem)
 
 TEST (JetGroupReducerTester, two_conditions_overlap_elem_non_elem)
 
 TEST (JetGroupReducerTester, two_conditions_no_overlap_non_elem_non_elem)
 
 TEST (JetGroupReducerTester, two_conditions_overlap_non_elem_non_elem)
 

Typedef Documentation

◆ res

using res = std::pair<std::vector<unsigned int>, bool>

Definition at line 10 of file JetGroupReducerTest.cxx.

◆ vec

using vec = std::vector<unsigned int>

Definition at line 11 of file JetGroupReducerTest.cxx.

Function Documentation

◆ TEST() [1/9]

TEST ( JetGroupReducerTester  ,
empty   
)

Definition at line 13 of file JetGroupReducerTest.cxx.

13  {
14  std::vector<std::size_t> siblings;
15  CondInd2JetGroupsInds satisfiedBy;
16  JetGroupInd2ElemInds jg2elem;
17 
18  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
19 
20  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
21 
22  EXPECT_TRUE(jgr.valid());
23  EXPECT_TRUE(jgr.next(collector).empty());
24 }

◆ TEST() [2/9]

TEST ( JetGroupReducerTester  ,
emptyCondition   
)

Definition at line 26 of file JetGroupReducerTest.cxx.

26  {
27  std::vector<std::size_t> siblings{1, 2, 3};
28  CondInd2JetGroupsInds satisfiedBy;
29  satisfiedBy[0] = std::vector<std::size_t> {0, 1, 2};
30  satisfiedBy[1] = std::vector<std::size_t> {};
31  satisfiedBy[2] = std::vector<std::size_t> {3, 4, 5};
32  JetGroupInd2ElemInds jg2elem;
33 
34 
35 
36  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
37 
38  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
39 
40  EXPECT_TRUE(jgr.valid());
41  EXPECT_TRUE(jgr.next(collector).empty());
42 }

◆ TEST() [3/9]

TEST ( JetGroupReducerTester  ,
one_condition_elem   
)

Definition at line 45 of file JetGroupReducerTest.cxx.

45  {
46 
47  // condition is satisfied by an elementary jet group
48  std::vector<std::size_t> siblings{1};
49 
50  CondInd2JetGroupsInds satisfiedBy;
51  satisfiedBy[1] = std::vector<std::size_t> {0};
52  JetGroupInd2ElemInds jg2elem;
53  jg2elem[0] = std::vector<std::size_t> {0};
54  jg2elem[1] = std::vector<std::size_t> {1};
55  jg2elem[2] = std::vector<std::size_t> {0, 1};
56 
57 
58  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
59 
60  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
61 
62  auto exp = std::vector<std::size_t>{0};
63  EXPECT_EQ(jgr.next(collector), exp);
64  EXPECT_TRUE(jgr.next(collector).empty());
65 }

◆ TEST() [4/9]

TEST ( JetGroupReducerTester  ,
one_condition_non_elem   
)

Definition at line 68 of file JetGroupReducerTest.cxx.

68  {
69 
70  // condition is satisfied by an non-elementary jet group
71  std::vector<std::size_t> siblings{1};
72 
73  CondInd2JetGroupsInds satisfiedBy;
74  satisfiedBy[1] = std::vector<std::size_t> {2};
75  JetGroupInd2ElemInds jg2elem;
76  jg2elem[0] = std::vector<std::size_t> {0};
77  jg2elem[1] = std::vector<std::size_t> {1};
78  jg2elem[2] = std::vector<std::size_t> {0, 1};
79 
80 
81  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
82 
83  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
84 
85  auto exp = std::vector<std::size_t>{0, 1};
86  EXPECT_EQ(jgr.next(collector), exp);
87  EXPECT_TRUE(jgr.next(collector).empty());
88 }

◆ TEST() [5/9]

TEST ( JetGroupReducerTester  ,
two_conditions_no_overlap_non_elem_non_elem   
)

Definition at line 174 of file JetGroupReducerTest.cxx.

174  {
175  std::vector<std::size_t> siblings{1, 2};
176 
177  CondInd2JetGroupsInds satisfiedBy;
178  satisfiedBy[1] = std::vector<std::size_t> {6, 7};
179  satisfiedBy[2] = std::vector<std::size_t> {8};
180  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
181 
182  JetGroupInd2ElemInds jg2elem;
183 
184  jg2elem[0] = std::vector<std::size_t> {0};
185  jg2elem[1] = std::vector<std::size_t> {1};
186  jg2elem[2] = std::vector<std::size_t> {2};
187  jg2elem[3] = std::vector<std::size_t> {3};
188  jg2elem[4] = std::vector<std::size_t> {4};
189  jg2elem[5] = std::vector<std::size_t> {5};
190  jg2elem[6] = std::vector<std::size_t> {0, 1};
191  jg2elem[7] = std::vector<std::size_t> {2, 3};
192  jg2elem[8] = std::vector<std::size_t> {4, 5};
193 
194 
195  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
196 
197  auto exp = std::vector<std::size_t>{0, 1, 2, 3, 4, 5};
198  EXPECT_EQ(jgr.next(collector), exp);
199  EXPECT_TRUE(jgr.next(collector).empty());
200 }

◆ TEST() [6/9]

TEST ( JetGroupReducerTester  ,
two_conditions_nooverlap_elem_elem   
)

Definition at line 90 of file JetGroupReducerTest.cxx.

90  {
91  std::vector<std::size_t> siblings{1, 2};
92 
93  CondInd2JetGroupsInds satisfiedBy;
94  satisfiedBy[1] = std::vector<std::size_t> {0, 1};
95  satisfiedBy[2] = std::vector<std::size_t> {2};
96  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
97 
98  JetGroupInd2ElemInds jg2elem;
99 
100  jg2elem[0] = std::vector<std::size_t> {0};
101  jg2elem[1] = std::vector<std::size_t> {1};
102  jg2elem[2] = std::vector<std::size_t> {2};
103  jg2elem[3] = std::vector<std::size_t> {3};
104  jg2elem[4] = std::vector<std::size_t> {4};
105  jg2elem[5] = std::vector<std::size_t> {5};
106  jg2elem[6] = std::vector<std::size_t> {0, 1};
107  jg2elem[7] = std::vector<std::size_t> {2, 3};
108  jg2elem[8] = std::vector<std::size_t> {4, 5};
109 
110 
111  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
112 
113  auto exp = std::vector<std::size_t>{0, 1, 2};
114  EXPECT_EQ(jgr.next(collector), exp);
115  EXPECT_TRUE(jgr.next(collector).empty());
116 }

◆ TEST() [7/9]

TEST ( JetGroupReducerTester  ,
two_conditions_nooverlap_elem_non_elem   
)

Definition at line 118 of file JetGroupReducerTest.cxx.

118  {
119  std::vector<std::size_t> siblings{1, 2};
120 
121  CondInd2JetGroupsInds satisfiedBy;
122  satisfiedBy[1] = std::vector<std::size_t> {0, 1};
123  satisfiedBy[2] = std::vector<std::size_t> {7};
124  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
125 
126  JetGroupInd2ElemInds jg2elem;
127 
128  jg2elem[0] = std::vector<std::size_t> {0};
129  jg2elem[1] = std::vector<std::size_t> {1};
130  jg2elem[2] = std::vector<std::size_t> {2};
131  jg2elem[3] = std::vector<std::size_t> {3};
132  jg2elem[4] = std::vector<std::size_t> {4};
133  jg2elem[5] = std::vector<std::size_t> {5};
134  jg2elem[6] = std::vector<std::size_t> {0, 1};
135  jg2elem[7] = std::vector<std::size_t> {2, 3};
136  jg2elem[8] = std::vector<std::size_t> {4, 5};
137 
138 
139  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
140 
141  auto exp = std::vector<std::size_t>{0, 1, 2, 3};
142  EXPECT_EQ(jgr.next(collector), exp);
143  EXPECT_TRUE(jgr.next(collector).empty());
144 }

◆ TEST() [8/9]

TEST ( JetGroupReducerTester  ,
two_conditions_overlap_elem_non_elem   
)

Definition at line 146 of file JetGroupReducerTest.cxx.

146  {
147  std::vector<std::size_t> siblings{1, 2};
148 
149  CondInd2JetGroupsInds satisfiedBy;
150  satisfiedBy[1] = std::vector<std::size_t> {0, 1};
151  satisfiedBy[2] = std::vector<std::size_t> {6};
152  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
153 
154  JetGroupInd2ElemInds jg2elem;
155 
156  jg2elem[0] = std::vector<std::size_t> {0};
157  jg2elem[1] = std::vector<std::size_t> {1};
158  jg2elem[2] = std::vector<std::size_t> {2};
159  jg2elem[3] = std::vector<std::size_t> {3};
160  jg2elem[4] = std::vector<std::size_t> {4};
161  jg2elem[5] = std::vector<std::size_t> {5};
162  jg2elem[6] = std::vector<std::size_t> {0, 1};
163  jg2elem[7] = std::vector<std::size_t> {2, 3};
164  jg2elem[8] = std::vector<std::size_t> {4, 5};
165 
166 
167  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
168 
169  auto exp = std::vector<std::size_t>{0, 1};
170  EXPECT_EQ(jgr.next(collector), exp);
171  EXPECT_TRUE(jgr.next(collector).empty());
172 }

◆ TEST() [9/9]

TEST ( JetGroupReducerTester  ,
two_conditions_overlap_non_elem_non_elem   
)

Definition at line 202 of file JetGroupReducerTest.cxx.

202  {
203  std::vector<std::size_t> siblings{1, 2};
204 
205  CondInd2JetGroupsInds satisfiedBy;
206  satisfiedBy[1] = std::vector<std::size_t> {6, 7};
207  satisfiedBy[2] = std::vector<std::size_t> {9};
208  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
209 
210  JetGroupInd2ElemInds jg2elem;
211 
212  jg2elem[0] = std::vector<std::size_t> {0};
213  jg2elem[1] = std::vector<std::size_t> {1};
214  jg2elem[2] = std::vector<std::size_t> {2};
215  jg2elem[3] = std::vector<std::size_t> {3};
216  jg2elem[4] = std::vector<std::size_t> {4};
217  jg2elem[5] = std::vector<std::size_t> {5};
218  jg2elem[6] = std::vector<std::size_t> {0, 1};
219  jg2elem[7] = std::vector<std::size_t> {2, 3};
220  jg2elem[8] = std::vector<std::size_t> {4, 5};
221  jg2elem[9] = std::vector<std::size_t> {1, 5};
222 
223 
224  JetGroupReducer jgr(siblings, satisfiedBy, jg2elem);
225 
226  auto exp = std::vector<std::size_t>{0, 1, 2, 3, 5};
227  EXPECT_EQ(jgr.next(collector), exp);
228  EXPECT_TRUE(jgr.next(collector).empty());
229 }
CondInd2JetGroupsInds
std::map< int, std::vector< std::size_t > > CondInd2JetGroupsInds
Definition: JetGroupProduct.h:15
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
JetGroupReducer
Definition: JetGroupReducer.h:29
JetGroupInd2ElemInds
std::map< int, std::vector< std::size_t > > JetGroupInd2ElemInds
Definition: elementalJetGroups.h:11