Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
gtest_pred_impl.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file gtest_pred_impl.h
1
// Copyright 2006, Google Inc.
2
// All rights reserved.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are
6
// met:
7
//
8
// * Redistributions of source code must retain the above copyright
9
// notice, this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above
11
// copyright notice, this list of conditions and the following disclaimer
12
// in the documentation and/or other materials provided with the
13
// distribution.
14
// * Neither the name of Google Inc. nor the names of its
15
// contributors may be used to endorse or promote products derived from
16
// this software without specific prior written permission.
17
//
18
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30
// This file is AUTOMATICALLY GENERATED on 10/31/2011 by command
31
// 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND!
32
//
33
// Implements a family of generic predicate assertion macros.
34
35
#ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
36
#define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
37
38
// Makes sure this header is not included before gtest.h.
39
#ifndef GTEST_INCLUDE_GTEST_GTEST_H_
40
# error Do not include gtest_pred_impl.h directly. Include gtest.h instead.
41
#endif // GTEST_INCLUDE_GTEST_GTEST_H_
42
43
// This header implements a family of generic predicate assertion
44
// macros:
45
//
46
// ASSERT_PRED_FORMAT1(pred_format, v1)
47
// ASSERT_PRED_FORMAT2(pred_format, v1, v2)
48
// ...
49
//
50
// where pred_format is a function or functor that takes n (in the
51
// case of ASSERT_PRED_FORMATn) values and their source expression
52
// text, and returns a testing::AssertionResult. See the definition
53
// of ASSERT_EQ in gtest.h for an example.
54
//
55
// If you don't care about formatting, you can use the more
56
// restrictive version:
57
//
58
// ASSERT_PRED1(pred, v1)
59
// ASSERT_PRED2(pred, v1, v2)
60
// ...
61
//
62
// where pred is an n-ary function or functor that returns bool,
63
// and the values v1, v2, ..., must support the << operator for
64
// streaming to std::ostream.
65
//
66
// We also define the EXPECT_* variations.
67
//
68
// For now we only support predicates whose arity is at most 5.
69
// Please email googletestframework@googlegroups.com if you need
70
// support for higher arities.
71
72
// GTEST_ASSERT_ is the basic statement to which all of the assertions
73
// in this file reduce. Don't use this in your code.
74
75
#define GTEST_ASSERT_(expression, on_failure) \
76
GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
77
if (const ::testing::AssertionResult gtest_ar = (expression)) \
78
; \
79
else \
80
on_failure(gtest_ar.failure_message())
81
82
83
// Helper function for implementing {EXPECT|ASSERT}_PRED1. Don't use
84
// this in your code.
85
template
<
typename
Pred,
86
typename
T1
>
87
AssertionResult
AssertPred1Helper
(
const
char
* pred_text,
88
const
char
* e1,
89
Pred pred,
90
const
T1
&
v1
) {
91
if
(pred(v1))
return
AssertionSuccess
();
92
93
return
AssertionFailure
() << pred_text <<
"("
94
<< e1 <<
") evaluates to false, where"
95
<<
"\n"
<< e1 <<
" evaluates to "
<<
v1
;
96
}
97
98
// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1.
99
// Don't use this in your code.
100
#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\
101
GTEST_ASSERT_(pred_format(#v1, v1), \
102
on_failure)
103
104
// Internal macro for implementing {EXPECT|ASSERT}_PRED1. Don't use
105
// this in your code.
106
#define GTEST_PRED1_(pred, v1, on_failure)\
107
GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \
108
#v1, \
109
pred, \
110
v1), on_failure)
111
112
// Unary predicate assertion macros.
113
#define EXPECT_PRED_FORMAT1(pred_format, v1) \
114
GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
115
#define EXPECT_PRED1(pred, v1) \
116
GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_)
117
#define ASSERT_PRED_FORMAT1(pred_format, v1) \
118
GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
119
#define ASSERT_PRED1(pred, v1) \
120
GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_)
121
122
123
124
// Helper function for implementing {EXPECT|ASSERT}_PRED2. Don't use
125
// this in your code.
126
template
<
typename
Pred,
127
typename
T1
,
128
typename
T2
>
129
AssertionResult
AssertPred2Helper
(
const
char
* pred_text,
130
const
char
* e1,
131
const
char
* e2,
132
Pred pred,
133
const
T1
&
v1
,
134
const
T2
&
v2
) {
135
if
(pred(v1, v2))
return
AssertionSuccess
();
136
137
return
AssertionFailure
() << pred_text <<
"("
138
<< e1 <<
", "
139
<< e2 <<
") evaluates to false, where"
140
<<
"\n"
<< e1 <<
" evaluates to "
<< v1
141
<<
"\n"
<< e2 <<
" evaluates to "
<<
v2
;
142
}
143
144
// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2.
145
// Don't use this in your code.
146
#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\
147
GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \
148
on_failure)
149
150
// Internal macro for implementing {EXPECT|ASSERT}_PRED2. Don't use
151
// this in your code.
152
#define GTEST_PRED2_(pred, v1, v2, on_failure)\
153
GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \
154
#v1, \
155
#v2, \
156
pred, \
157
v1, \
158
v2), on_failure)
159
160
// Binary predicate assertion macros.
161
#define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \
162
GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_)
163
#define EXPECT_PRED2(pred, v1, v2) \
164
GTEST_PRED2_(pred, v1, v2, GTEST_NONFATAL_FAILURE_)
165
#define ASSERT_PRED_FORMAT2(pred_format, v1, v2) \
166
GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
167
#define ASSERT_PRED2(pred, v1, v2) \
168
GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_)
169
170
171
172
// Helper function for implementing {EXPECT|ASSERT}_PRED3. Don't use
173
// this in your code.
174
template
<
typename
Pred,
175
typename
T1
,
176
typename
T2
,
177
typename
T3
>
178
AssertionResult
AssertPred3Helper
(
const
char
* pred_text,
179
const
char
* e1,
180
const
char
* e2,
181
const
char
* e3,
182
Pred pred,
183
const
T1
&
v1
,
184
const
T2
&
v2
,
185
const
T3
&
v3
) {
186
if
(pred(v1, v2, v3))
return
AssertionSuccess
();
187
188
return
AssertionFailure
() << pred_text <<
"("
189
<< e1 <<
", "
190
<< e2 <<
", "
191
<< e3 <<
") evaluates to false, where"
192
<<
"\n"
<< e1 <<
" evaluates to "
<< v1
193
<<
"\n"
<< e2 <<
" evaluates to "
<< v2
194
<<
"\n"
<< e3 <<
" evaluates to "
<<
v3
;
195
}
196
197
// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3.
198
// Don't use this in your code.
199
#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\
200
GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \
201
on_failure)
202
203
// Internal macro for implementing {EXPECT|ASSERT}_PRED3. Don't use
204
// this in your code.
205
#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\
206
GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \
207
#v1, \
208
#v2, \
209
#v3, \
210
pred, \
211
v1, \
212
v2, \
213
v3), on_failure)
214
215
// Ternary predicate assertion macros.
216
#define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \
217
GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_NONFATAL_FAILURE_)
218
#define EXPECT_PRED3(pred, v1, v2, v3) \
219
GTEST_PRED3_(pred, v1, v2, v3, GTEST_NONFATAL_FAILURE_)
220
#define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3) \
221
GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_FATAL_FAILURE_)
222
#define ASSERT_PRED3(pred, v1, v2, v3) \
223
GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_)
224
225
226
227
// Helper function for implementing {EXPECT|ASSERT}_PRED4. Don't use
228
// this in your code.
229
template
<
typename
Pred,
230
typename
T1
,
231
typename
T2
,
232
typename
T3
,
233
typename
T4
>
234
AssertionResult
AssertPred4Helper
(
const
char
* pred_text,
235
const
char
* e1,
236
const
char
* e2,
237
const
char
* e3,
238
const
char
* e4,
239
Pred pred,
240
const
T1
&
v1
,
241
const
T2
&
v2
,
242
const
T3
&
v3
,
243
const
T4
&
v4
) {
244
if
(pred(v1, v2, v3, v4))
return
AssertionSuccess
();
245
246
return
AssertionFailure
() << pred_text <<
"("
247
<< e1 <<
", "
248
<< e2 <<
", "
249
<< e3 <<
", "
250
<< e4 <<
") evaluates to false, where"
251
<<
"\n"
<< e1 <<
" evaluates to "
<< v1
252
<<
"\n"
<< e2 <<
" evaluates to "
<< v2
253
<<
"\n"
<< e3 <<
" evaluates to "
<< v3
254
<<
"\n"
<< e4 <<
" evaluates to "
<<
v4
;
255
}
256
257
// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4.
258
// Don't use this in your code.
259
#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\
260
GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \
261
on_failure)
262
263
// Internal macro for implementing {EXPECT|ASSERT}_PRED4. Don't use
264
// this in your code.
265
#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\
266
GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \
267
#v1, \
268
#v2, \
269
#v3, \
270
#v4, \
271
pred, \
272
v1, \
273
v2, \
274
v3, \
275
v4), on_failure)
276
277
// 4-ary predicate assertion macros.
278
#define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \
279
GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_)
280
#define EXPECT_PRED4(pred, v1, v2, v3, v4) \
281
GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_)
282
#define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \
283
GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_FATAL_FAILURE_)
284
#define ASSERT_PRED4(pred, v1, v2, v3, v4) \
285
GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_)
286
287
288
289
// Helper function for implementing {EXPECT|ASSERT}_PRED5. Don't use
290
// this in your code.
291
template
<
typename
Pred,
292
typename
T1
,
293
typename
T2
,
294
typename
T3
,
295
typename
T4
,
296
typename
T5
>
297
AssertionResult
AssertPred5Helper
(
const
char
* pred_text,
298
const
char
* e1,
299
const
char
* e2,
300
const
char
* e3,
301
const
char
* e4,
302
const
char
* e5,
303
Pred pred,
304
const
T1
&
v1
,
305
const
T2
&
v2
,
306
const
T3
&
v3
,
307
const
T4
&
v4
,
308
const
T5
&
v5
) {
309
if
(pred(v1, v2, v3, v4, v5))
return
AssertionSuccess
();
310
311
return
AssertionFailure
() << pred_text <<
"("
312
<< e1 <<
", "
313
<< e2 <<
", "
314
<< e3 <<
", "
315
<< e4 <<
", "
316
<< e5 <<
") evaluates to false, where"
317
<<
"\n"
<< e1 <<
" evaluates to "
<< v1
318
<<
"\n"
<< e2 <<
" evaluates to "
<< v2
319
<<
"\n"
<< e3 <<
" evaluates to "
<< v3
320
<<
"\n"
<< e4 <<
" evaluates to "
<< v4
321
<<
"\n"
<< e5 <<
" evaluates to "
<<
v5
;
322
}
323
324
// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5.
325
// Don't use this in your code.
326
#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\
327
GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \
328
on_failure)
329
330
// Internal macro for implementing {EXPECT|ASSERT}_PRED5. Don't use
331
// this in your code.
332
#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\
333
GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \
334
#v1, \
335
#v2, \
336
#v3, \
337
#v4, \
338
#v5, \
339
pred, \
340
v1, \
341
v2, \
342
v3, \
343
v4, \
344
v5), on_failure)
345
346
// 5-ary predicate assertion macros.
347
#define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \
348
GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_)
349
#define EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \
350
GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_)
351
#define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \
352
GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_)
353
#define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \
354
GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_)
355
356
357
358
#endif // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
JETSCAPE
blob
main
external_packages
googletest
googletest
include
gtest
gtest_pred_impl.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:20
using
1.8.2 with
sPHENIX GitHub integration