DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
trgdataformats
scripts
TriggerActivity_binding_test.py
Go to the documentation of this file.
1
#!/usr/bin/env python3
2
3
from
trgdataformats
import
TriggerActivity, TriggerActivityData
4
5
6
def
test_trigger_activity_data_defaults
() -> int:
7
ta = TriggerActivityData()
8
9
if
ta
is
None
:
10
print(
"FAIL: TriggerActivityData default construction returned None"
)
11
return
1
12
13
size = TriggerActivityData.sizeof()
14
if
size != 80:
15
print(f
"FAIL: TriggerActivityData.sizeof() returned {size}, expected 80"
)
16
return
1
17
18
if
TriggerActivityData.s_trigger_activity_version != 2:
19
print(
20
"FAIL: TriggerActivityData.s_trigger_activity_version expected 2, "
21
f
"got {TriggerActivityData.s_trigger_activity_version}"
22
)
23
return
1
24
25
if
TriggerActivityData.s_invalid_channel != (2**32 - 1):
26
print(
27
"FAIL: TriggerActivityData.s_invalid_channel expected 2**32-1, "
28
f
"got {TriggerActivityData.s_invalid_channel}"
29
)
30
return
1
31
32
if
ta.version != 2:
33
print(f
"FAIL: TriggerActivityData.version expected 2, got {ta.version}"
)
34
return
1
35
36
if
ta.version != TriggerActivityData.s_trigger_activity_version:
37
print(
38
"FAIL: TriggerActivityData.version should match s_trigger_activity_version, "
39
f
"got {ta.version} vs {TriggerActivityData.s_trigger_activity_version}"
40
)
41
return
1
42
43
if
ta.time_start != (2**64 - 1):
44
print(f
"FAIL: TriggerActivityData.time_start expected 2**64-1, got {ta.time_start}"
)
45
return
1
46
47
if
ta.time_end != (2**64 - 1):
48
print(f
"FAIL: TriggerActivityData.time_end expected 2**64-1, got {ta.time_end}"
)
49
return
1
50
51
if
ta.time_peak != (2**64 - 1):
52
print(f
"FAIL: TriggerActivityData.time_peak expected 2**64-1, got {ta.time_peak}"
)
53
return
1
54
55
if
ta.time_activity != (2**64 - 1):
56
print(
57
"FAIL: TriggerActivityData.time_activity expected 2**64-1, "
58
f
"got {ta.time_activity}"
59
)
60
return
1
61
62
if
ta.channel_start != TriggerActivityData.s_invalid_channel:
63
print(
64
"FAIL: TriggerActivityData.channel_start expected invalid channel, "
65
f
"got {ta.channel_start}"
66
)
67
return
1
68
69
if
ta.channel_end != TriggerActivityData.s_invalid_channel:
70
print(
71
"FAIL: TriggerActivityData.channel_end expected invalid channel, "
72
f
"got {ta.channel_end}"
73
)
74
return
1
75
76
if
ta.channel_peak != TriggerActivityData.s_invalid_channel:
77
print(
78
"FAIL: TriggerActivityData.channel_peak expected invalid channel, "
79
f
"got {ta.channel_peak}"
80
)
81
return
1
82
83
if
ta.adc_integral != 0:
84
print(f
"FAIL: TriggerActivityData.adc_integral expected 0, got {ta.adc_integral}"
)
85
return
1
86
87
if
ta.adc_peak != 0:
88
print(f
"FAIL: TriggerActivityData.adc_peak expected 0, got {ta.adc_peak}"
)
89
return
1
90
91
if
ta.detid != 2**8 - 1:
92
print(f
"FAIL: TriggerActivityData.detid expected 2**8 - 1, got {ta.detid}"
)
93
return
1
94
95
if
ta.type != TriggerActivityData.Type.kUnknown:
96
print(f
"FAIL: TriggerActivityData.type expected kUnknown, got {ta.type}"
)
97
return
1
98
99
if
ta.algorithm != TriggerActivityData.Algorithm.kUnknown:
100
print(f
"FAIL: TriggerActivityData.algorithm expected kUnknown, got {ta.algorithm}"
)
101
return
1
102
103
print(
"PASS: TriggerActivityData default checks"
)
104
return
0
105
106
107
def
test_trigger_activity_data_enums
() -> int:
108
# Confirm expected enum names are available through bindings.
109
enum_checks = [
110
TriggerActivityData.Type.kUnknown,
111
TriggerActivityData.Type.kTPC,
112
TriggerActivityData.Type.kPDS,
113
TriggerActivityData.Algorithm.kUnknown,
114
TriggerActivityData.Algorithm.kSupernova,
115
TriggerActivityData.Algorithm.kSWIFT,
116
]
117
118
if
any(value
is
None
for
value
in
enum_checks):
119
print(
"FAIL: TriggerActivityData enum exposure appears incomplete"
)
120
return
1
121
122
print(
"PASS: TriggerActivityData enum exposure"
)
123
return
0
124
125
126
def
test_trigger_activity_holder_from_bytes
() -> int:
127
payload = bytes(TriggerActivityData.sizeof() + 8)
128
ta =
TriggerActivity
(payload)
129
130
if
ta.sizeof() != len(payload):
131
print(f
"FAIL: TriggerActivity sizeof mismatch, got {ta.sizeof()}, expected {len(payload)}"
)
132
return
1
133
134
if
len(ta) != 0:
135
print(f
"FAIL: TriggerActivity expected length 0 for zero payload, got {len(ta)}"
)
136
return
1
137
138
if
ta.n_inputs() != 0:
139
print(f
"FAIL: TriggerActivity n_inputs expected 0 for zero payload, got {ta.n_inputs()}"
)
140
return
1
141
142
if
len(ta.get_bytes()) != len(payload):
143
print(
"FAIL: TriggerActivity get_bytes length mismatch"
)
144
return
1
145
146
print(
"PASS: TriggerActivity holder bytes roundtrip with zero-input payload"
)
147
return
0
148
149
150
def
main
() -> int:
151
failures = 0
152
failures +=
test_trigger_activity_data_defaults
()
153
failures +=
test_trigger_activity_data_enums
()
154
failures +=
test_trigger_activity_holder_from_bytes
()
155
156
if
failures == 0:
157
print(
"TriggerActivity binding tests passed"
)
158
else
:
159
print(f
"TriggerActivity binding tests had {failures} failure(s)"
)
160
161
return
failures
162
163
164
if
__name__ ==
"__main__"
:
165
raise
SystemExit(
main
())
TriggerActivity
TriggerActivity
Definition
TriggerActivity_serialization.hpp:37
TriggerActivity_binding_test.test_trigger_activity_data_enums
int test_trigger_activity_data_enums()
Definition
TriggerActivity_binding_test.py:107
TriggerActivity_binding_test.main
int main()
Definition
TriggerActivity_binding_test.py:150
TriggerActivity_binding_test.test_trigger_activity_data_defaults
int test_trigger_activity_data_defaults()
Definition
TriggerActivity_binding_test.py:6
TriggerActivity_binding_test.test_trigger_activity_holder_from_bytes
int test_trigger_activity_holder_from_bytes()
Definition
TriggerActivity_binding_test.py:126
Generated on
for DUNE-DAQ by
1.18.0