ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigHypothesis
TrigHLTJetHypoUnitTests
tests
make_jetstreamTest.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"
6
#include "
TrigHLTJetHypo/../src/make_jetstream.h
"
7
#include <vector>
8
#include <memory>
9
10
using
vec
= std::vector<std::size_t>;
11
12
TEST
(make_jetstreamTester, SimpleSimpleSimpleChain) {
13
14
std::vector<std::vector<std::size_t>> v;
15
v.push_back(std::vector<std::size_t>{1,2});
16
v.push_back(std::vector<std::size_t>{3,4, 5});
17
v.push_back(std::vector<std::size_t>{6,7});
18
19
std::vector<std::size_t> repeats{1,1,1};
20
21
std::size_t sid{0};
22
23
auto
stream =
make_jetstream
(v, repeats, sid);
24
25
JetStreamer
streamer(std::move(stream));
26
27
vec
v0{1, 3, 6};
28
vec
v1{2, 3, 6};
29
vec
v2{1, 4, 6};
30
vec
v3{2, 4, 6};
31
vec
v4{1, 5, 6};
32
vec
v5{2, 5, 6};
33
vec
v6{1, 3, 7};
34
vec
v7{2, 3, 7};
35
vec
v8{1, 4, 7};
36
vec
v9{2, 4, 7};
37
vec
v10{1, 5, 7};
38
vec
v11{2, 5, 7};
39
40
41
EXPECT_EQ (v0, streamer.
next
());
42
EXPECT_EQ (v1, streamer.
next
());
43
EXPECT_EQ (v2, streamer.
next
());
44
EXPECT_EQ (v3, streamer.
next
());
45
EXPECT_EQ (v4, streamer.
next
());
46
EXPECT_EQ (v5, streamer.
next
());
47
EXPECT_EQ (v6, streamer.
next
());
48
EXPECT_EQ (v7, streamer.
next
());
49
EXPECT_EQ (v8, streamer.
next
());
50
EXPECT_EQ (v9, streamer.
next
());
51
EXPECT_EQ (v10, streamer.
next
());
52
EXPECT_EQ (v11, streamer.
next
());
53
54
EXPECT_EQ (
vec
{}, streamer.
next
());
55
}
56
57
58
TEST
(make_jetstreamTester, SimpleCompoundSimpleChain) {
59
std::vector<std::vector<std::size_t>> v;
60
v.push_back(std::vector<std::size_t>{1,2});
61
v.push_back(std::vector<std::size_t>{3,4, 5});
62
v.push_back(std::vector<std::size_t>{6,7});
63
64
std::vector<std::size_t> repeats{1,2,1};
65
66
std::size_t sid{0};
67
68
auto
stream =
make_jetstream
(v, repeats, sid);
69
70
JetStreamer
streamer(std::move(stream));
71
72
vec
v0{1, 3, 4, 6};
73
vec
v1{2, 3, 4, 6};
74
vec
v2{1, 3, 5, 6};
75
vec
v3{2, 3, 5, 6};
76
vec
v4{1, 4, 5, 6};
77
vec
v5{2, 4, 5, 6};
78
vec
v6{1, 3, 4, 7};
79
vec
v7{2, 3, 4, 7};
80
vec
v8{1, 3, 5, 7};
81
vec
v9{2, 3, 5, 7};
82
vec
v10{1, 4, 5, 7};
83
vec
v11{2, 4, 5, 7};
84
85
EXPECT_EQ (v0, streamer.
next
());
86
EXPECT_EQ (v1, streamer.
next
());
87
EXPECT_EQ (v2, streamer.
next
());
88
EXPECT_EQ (v3, streamer.
next
());
89
EXPECT_EQ (v4, streamer.
next
());
90
EXPECT_EQ (v5, streamer.
next
());
91
EXPECT_EQ (v6, streamer.
next
());
92
EXPECT_EQ (v7, streamer.
next
());
93
EXPECT_EQ (v8, streamer.
next
());
94
EXPECT_EQ (v9, streamer.
next
());
95
EXPECT_EQ (v10, streamer.
next
());
96
EXPECT_EQ (v11, streamer.
next
());
97
98
EXPECT_EQ (
vec
{}, streamer.
next
());
99
}
100
101
TEST
(make_jetstreamTester, reallife) {
102
std::vector<std::vector<std::size_t>> v;
103
v.push_back(std::vector<std::size_t>{0, 1, 2});
104
v.push_back(std::vector<std::size_t>{
105
0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13,
106
14, 15, 17, 19, 21, 25, 26, 29, 33});
107
108
109
110
std::vector<std::size_t> repeats{1,3};
111
112
std::size_t sid{0};
113
114
auto
stream =
make_jetstream
(v, repeats, sid);
115
116
JetStreamer
streamer(std::move(stream));
117
118
std::size_t ipass{0};
119
120
while
(
true
) {
121
auto
indices = streamer.
next
();
122
if
(indices.empty()){
break
;}
123
++ipass;
124
}
125
126
// 3990 = 3*C(21,3)
127
EXPECT_EQ (ipass, 3990u);
128
}
vec
std::vector< size_t > vec
Definition
CombinationsGeneratorTest.cxx:9
JetStreamer
Definition
JetStreamer.h:25
JetStreamer::next
std::vector< std::size_t > next()
Definition
JetStreamer.h:40
TEST
TEST(make_jetstreamTester, SimpleSimpleSimpleChain)
Definition
make_jetstreamTest.cxx:12
make_jetstream.h
make_jetstream
std::unique_ptr< IJetStream > make_jetstream(std::vector< std::vector< std::size_t > > indices, std::vector< std::size_t > repeats, std::size_t sid)
Definition
make_jetstream.h:28
Generated on
for ATLAS Offline Software by
1.17.0