Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Typedefs | Functions
JetGroupProductTest.cxx File Reference
#include "gtest/gtest.h"
#include "TrigHLTJetHypo/../src/JetGroupProduct.h"
#include "TrigHLTJetHypo/../src/DebugInfoCollector.h"
#include <vector>
#include <map>
Include dependency graph for JetGroupProductTest.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 (JetGroupProductTester, empty)
 
 TEST (JetGroupProductTester, onecondition)
 
 TEST (JetGroupProductTester, repeatedcond)
 
 TEST (JetGroupProductTester, twocond)
 
 TEST (JetGroupProductTester, reallife)
 

Typedef Documentation

◆ res

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

Definition at line 11 of file JetGroupProductTest.cxx.

◆ vec

using vec = std::vector<unsigned int>

Definition at line 12 of file JetGroupProductTest.cxx.

Function Documentation

◆ TEST() [1/5]

TEST ( JetGroupProductTester  ,
empty   
)

Definition at line 14 of file JetGroupProductTest.cxx.

14  {
15  std::vector<std::size_t> siblings;
16  CondInd2JetGroupsInds satisfiedBy;
17  std::vector<std::size_t> condMult;
18  JetGroupInd2ElemInds jg2elemjgs;
19 
20  JetGroupProduct jgp(siblings, satisfiedBy, condMult, jg2elemjgs);
21  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
22 
23  EXPECT_FALSE(jgp.valid());
24  EXPECT_TRUE((jgp.next(collector)).empty());
25 }

◆ TEST() [2/5]

TEST ( JetGroupProductTester  ,
onecondition   
)

Definition at line 28 of file JetGroupProductTest.cxx.

28  {
29  std::vector<std::size_t> siblings{1};
30 
31  CondInd2JetGroupsInds satisfiedBy;
32  satisfiedBy[0] = std::vector<std::size_t>();
33  satisfiedBy[1] = std::vector<std::size_t> {0, 1, 2};
34 
35  std::vector<std::size_t> condMult{0, 1};
36 
37  JetGroupInd2ElemInds jg2elemjgs;
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};
41 
42  JetGroupProduct jgp(siblings, satisfiedBy, condMult, jg2elemjgs);
43 
44  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
45 
46  EXPECT_TRUE(jgp.valid());
47 
48  auto exp = std::vector<std::size_t>{0};
49  EXPECT_EQ(jgp.next(collector), exp);
50 
51  exp = std::vector<std::size_t>{1};
52  EXPECT_EQ(jgp.next(collector), exp);
53 
54  exp = std::vector<std::size_t>{2};
55  EXPECT_EQ(jgp.next(collector), exp);
56 
57  EXPECT_TRUE(jgp.next(collector).empty());
58 }

◆ TEST() [3/5]

TEST ( JetGroupProductTester  ,
reallife   
)

Definition at line 128 of file JetGroupProductTest.cxx.

128  {
129  std::vector<std::size_t> siblings{1, 2};
130 
131  CondInd2JetGroupsInds satisfiedBy;
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};
137 
138  std::vector<std::size_t> condMult{1, 1, 3};
139 
140  JetGroupInd2ElemInds jg2elemjgs;
141  for (const auto& i : satisfiedBy[2]){
142  jg2elemjgs[i] = std::vector<std::size_t> {i};
143  }
144  JetGroupProduct jgp(siblings, satisfiedBy, condMult, jg2elemjgs);
145 
146  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
147 
148  EXPECT_TRUE(jgp.valid());
149 
150  std::size_t ipass{0};
151 
152  while (true) {
153  auto indices = jgp.next(collector);
154  if (indices.empty()){break;}
155  ++ipass;
156  }
157 
158  // 2925 = 3*C(21,3) - overlaps and duplicates
159  EXPECT_EQ (ipass, 2925u);
160 
161 }

◆ TEST() [4/5]

TEST ( JetGroupProductTester  ,
repeatedcond   
)

Definition at line 60 of file JetGroupProductTest.cxx.

60  {
61  std::vector<std::size_t> siblings{1};
62 
63  CondInd2JetGroupsInds satisfiedBy;
64  satisfiedBy[0] = std::vector<std::size_t>();
65  satisfiedBy[1] = std::vector<std::size_t> {0, 1, 2};
66 
67  std::vector<std::size_t> condMult{1, 2};
68 
69  JetGroupInd2ElemInds jg2elemjgs;
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};
73 
74  JetGroupProduct jgp(siblings, satisfiedBy, condMult, jg2elemjgs);
75 
76  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
77 
78  EXPECT_TRUE(jgp.valid());
79 
80  auto exp = std::vector<std::size_t>{0, 1};
81  EXPECT_EQ(jgp.next(collector), exp);
82 
83  exp = std::vector<std::size_t>{0, 2};
84  EXPECT_EQ(jgp.next(collector), exp);
85 
86 
87  exp = std::vector<std::size_t>{1, 2};
88  EXPECT_EQ(jgp.next(collector), exp);
89 
90  EXPECT_TRUE(jgp.next(collector).empty());
91 }

◆ TEST() [5/5]

TEST ( JetGroupProductTester  ,
twocond   
)

Definition at line 93 of file JetGroupProductTest.cxx.

93  {
94  std::vector<std::size_t> siblings{1, 2};
95 
96  CondInd2JetGroupsInds satisfiedBy;
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};
100 
101  std::vector<std::size_t> condMult{1, 1, 1};
102 
103  JetGroupInd2ElemInds jg2elemjgs;
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};
107 
108  JetGroupProduct jgp(siblings, satisfiedBy, condMult, jg2elemjgs);
109 
110  auto collector = std::unique_ptr<ITrigJetHypoInfoCollector>(nullptr);
111 
112  EXPECT_TRUE(jgp.valid());
113 
114  auto exp = std::vector<std::size_t>{0, 1};
115  EXPECT_EQ(jgp.next(collector), exp);
116 
117  exp = std::vector<std::size_t>{0, 2};
118  EXPECT_EQ(jgp.next(collector), exp);
119 
120  exp = std::vector<std::size_t>{1, 2};
121  EXPECT_EQ(jgp.next(collector), exp);
122 
123  EXPECT_TRUE(jgp.next(collector).empty());
124  if(collector) {collector->write();}
125 
126 }
CondInd2JetGroupsInds
std::map< int, std::vector< std::size_t > > CondInd2JetGroupsInds
Definition: JetGroupProduct.h:15
Trk::indices
std::pair< long int, long int > indices
Definition: AlSymMatBase.h:24
JetGroupProduct
Definition: JetGroupProduct.h:20
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
lumiFormat.i
int i
Definition: lumiFormat.py:85
JetGroupInd2ElemInds
std::map< int, std::vector< std::size_t > > JetGroupInd2ElemInds
Definition: elementalJetGroups.h:11