15 #ifndef INCG_IRIS_IUTEST_PRED_HPP_ADF851F3_C89B_4CA4_B9A0_A2B2229945C6_
16 #define INCG_IRIS_IUTEST_PRED_HPP_ADF851F3_C89B_4CA4_B9A0_A2B2229945C6_
33 #define IUTEST_ASSERT_PRED1(pred, v1) \
34 IUTEST_PRED1_(pred, v1, IUTEST_ASSERT_FAILURE)
41 #define IUTEST_EXPECT_PRED1(pred, v1) \
42 IUTEST_PRED1_(pred, v1, IUTEST_EXPECT_FAILURE)
49 #define IUTEST_INFORM_PRED1(pred, v1) \
50 IUTEST_PRED1_(pred, v1, IUTEST_INFORM_FAILURE)
57 #define IUTEST_ASSUME_PRED1(pred, v1) \
58 IUTEST_PRED1_(pred, v1, IUTEST_ASSUME_FAILURE)
66 #define IUTEST_ASSERT_PRED_FORMAT1(pred_formatter, v1) \
67 IUTEST_PRED_FORMAT1_(pred_formatter, v1, IUTEST_ASSERT_FAILURE)
74 #define IUTEST_EXPECT_PRED_FORMAT1(pred_formatter, v1) \
75 IUTEST_PRED_FORMAT1_(pred_formatter, v1, IUTEST_EXPECT_FAILURE)
82 #define IUTEST_INFORM_PRED_FORMAT1(pred_formatter, v1) \
83 IUTEST_PRED_FORMAT1_(pred_formatter, v1, IUTEST_INFORM_FAILURE)
90 #define IUTEST_ASSUME_PRED_FORMAT1(pred_formatter, v1) \
91 IUTEST_PRED_FORMAT1_(pred_formatter, v1, IUTEST_ASSUME_FAILURE)
101 #define IUTEST_ASSERT_PRED2(pred, v1, v2) \
102 IUTEST_PRED2_(pred, v1, v2, IUTEST_ASSERT_FAILURE)
110 #define IUTEST_EXPECT_PRED2(pred, v1, v2) \
111 IUTEST_PRED2_(pred, v1, v2, IUTEST_EXPECT_FAILURE)
119 #define IUTEST_INFORM_PRED2(pred, v1, v2) \
120 IUTEST_PRED2_(pred, v1, v2, IUTEST_INFORM_FAILURE)
128 #define IUTEST_ASSUME_PRED2(pred, v1, v2) \
129 IUTEST_PRED2_(pred, v1, v2, IUTEST_ASSUME_FAILURE)
138 #define IUTEST_ASSERT_PRED_FORMAT2(pred_formatter, v1, v2) \
139 IUTEST_PRED_FORMAT2_(pred_formatter, v1, v2, IUTEST_ASSERT_FAILURE)
147 #define IUTEST_EXPECT_PRED_FORMAT2(pred_formatter, v1, v2) \
148 IUTEST_PRED_FORMAT2_(pred_formatter, v1, v2, IUTEST_EXPECT_FAILURE)
156 #define IUTEST_INFORM_PRED_FORMAT2(pred_formatter, v1, v2) \
157 IUTEST_PRED_FORMAT2_(pred_formatter, v1, v2, IUTEST_INFORM_FAILURE)
165 #define IUTEST_ASSUME_PRED_FORMAT2(pred_formatter, v1, v2) \
166 IUTEST_PRED_FORMAT2_(pred_formatter, v1, v2, IUTEST_ASSUME_FAILURE)
177 #define IUTEST_ASSERT_PRED3(pred, v1, v2, v3) \
178 IUTEST_PRED3_(pred, v1, v2, v3, IUTEST_ASSERT_FAILURE)
187 #define IUTEST_EXPECT_PRED3(pred, v1, v2, v3) \
188 IUTEST_PRED3_(pred, v1, v2, v3, IUTEST_EXPECT_FAILURE)
197 #define IUTEST_INFORM_PRED3(pred, v1, v2, v3) \
198 IUTEST_PRED3_(pred, v1, v2, v3, IUTEST_INFORM_FAILURE)
207 #define IUTEST_ASSUME_PRED3(pred, v1, v2, v3) \
208 IUTEST_PRED3_(pred, v1, v2, v3, IUTEST_ASSUME_FAILURE)
218 #define IUTEST_ASSERT_PRED_FORMAT3(pred_formatter, v1, v2, v3) \
219 IUTEST_PRED_FORMAT3_(pred_formatter, v1, v2, v3, IUTEST_ASSERT_FAILURE)
228 #define IUTEST_EXPECT_PRED_FORMAT3(pred_formatter, v1, v2, v3) \
229 IUTEST_PRED_FORMAT3_(pred_formatter, v1, v2, v3, IUTEST_EXPECT_FAILURE)
238 #define IUTEST_INFORM_PRED_FORMAT3(pred_formatter, v1, v2, v3) \
239 IUTEST_PRED_FORMAT3_(pred_formatter, v1, v2, v3, IUTEST_INFORM_FAILURE)
248 #define IUTEST_ASSUME_PRED_FORMAT3(pred_formatter, v1, v2, v3) \
249 IUTEST_PRED_FORMAT3_(pred_formatter, v1, v2, v3, IUTEST_ASSUME_FAILURE)
261 #define IUTEST_ASSERT_PRED4(pred, v1, v2, v3, v4) \
262 IUTEST_PRED4_(pred, v1, v2, v3, v4, IUTEST_ASSERT_FAILURE)
272 #define IUTEST_EXPECT_PRED4(pred, v1, v2, v3, v4) \
273 IUTEST_PRED4_(pred, v1, v2, v3, v4, IUTEST_EXPECT_FAILURE)
283 #define IUTEST_INFORM_PRED4(pred, v1, v2, v3, v4) \
284 IUTEST_PRED4_(pred, v1, v2, v3, v4, IUTEST_INFORM_FAILURE)
294 #define IUTEST_ASSUME_PRED4(pred, v1, v2, v3, v4) \
295 IUTEST_PRED4_(pred, v1, v2, v3, v4, IUTEST_ASSUME_FAILURE)
306 #define IUTEST_ASSERT_PRED_FORMAT4(pred_formatter, v1, v2, v3, v4) \
307 IUTEST_PRED_FORMAT4_(pred_formatter, v1, v2, v3, v4, IUTEST_ASSERT_FAILURE)
317 #define IUTEST_EXPECT_PRED_FORMAT4(pred_formatter, v1, v2, v3, v4) \
318 IUTEST_PRED_FORMAT4_(pred_formatter, v1, v2, v3, v4, IUTEST_EXPECT_FAILURE)
328 #define IUTEST_INFORM_PRED_FORMAT4(pred_formatter, v1, v2, v3, v4) \
329 IUTEST_PRED_FORMAT4_(pred_formatter, v1, v2, v3, v4, IUTEST_INFORM_FAILURE)
339 #define IUTEST_ASSUME_PRED_FORMAT4(pred_formatter, v1, v2, v3, v4) \
340 IUTEST_PRED_FORMAT4_(pred_formatter, v1, v2, v3, v4, IUTEST_ASSUME_FAILURE)
354 #define IUTEST_ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \
355 IUTEST_PRED5_(pred, v1, v2, v3, v4, v5, IUTEST_ASSERT_FAILURE)
366 #define IUTEST_EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \
367 IUTEST_PRED5_(pred, v1, v2, v3, v4, v5, IUTEST_EXPECT_FAILURE)
378 #define IUTEST_INFORM_PRED5(pred, v1, v2, v3, v4, v5) \
379 IUTEST_PRED5_(pred, v1, v2, v3, v4, v5, IUTEST_INFORM_FAILURE)
390 #define IUTEST_ASSUME_PRED5(pred, v1, v2, v3, v4, v5) \
391 IUTEST_PRED5_(pred, v1, v2, v3, v4, v5, IUTEST_ASSUME_FAILURE)
403 #define IUTEST_ASSERT_PRED_FORMAT5(pred_formatter, v1, v2, v3, v4, v5) \
404 IUTEST_PRED_FORMAT5_(pred_formatter, v1, v2, v3, v4, v5, IUTEST_ASSERT_FAILURE)
415 #define IUTEST_EXPECT_PRED_FORMAT5(pred_formatter, v1, v2, v3, v4, v5) \
416 IUTEST_PRED_FORMAT5_(pred_formatter, v1, v2, v3, v4, v5, IUTEST_EXPECT_FAILURE)
427 #define IUTEST_INFORM_PRED_FORMAT5(pred_formatter, v1, v2, v3, v4, v5) \
428 IUTEST_PRED_FORMAT5_(pred_formatter, v1, v2, v3, v4, v5, IUTEST_INFORM_FAILURE)
439 #define IUTEST_ASSUME_PRED_FORMAT5(pred_formatter, v1, v2, v3, v4, v5) \
440 IUTEST_PRED_FORMAT5_(pred_formatter, v1, v2, v3, v4, v5, IUTEST_ASSUME_FAILURE)
443 #ifndef IUTEST_NO_VARIADIC_MACROS
445 #if IUTEST_HAS_VARIADIC_TEMPLATES
453 #define IUTEST_ASSERT_PRED(pred, ...) \
454 IUTEST_PRED_(pred, IUTEST_ASSERT_FAILURE, __VA_ARGS__)
461 #define IUTEST_EXPECT_PRED(pred, ...) \
462 IUTEST_PRED_(pred, IUTEST_EXPECT_FAILURE, __VA_ARGS__)
469 #define IUTEST_INFORM_PRED(pred, ...) \
470 IUTEST_PRED_(pred, IUTEST_INFORM_FAILURE, __VA_ARGS__)
477 #define IUTEST_ASSUME_PRED(pred, ...) \
478 IUTEST_PRED_(pred, IUTEST_ASSUME_FAILURE, __VA_ARGS__)
488 #define IUTEST_ASSERT_PRED_FORMAT(pred_formatter, ...) \
489 IUTEST_PRED_FORMAT_(pred_formatter, IUTEST_ASSERT_FAILURE, __VA_ARGS__)
496 #define IUTEST_EXPECT_PRED_FORMAT(pred_formatter, ...) \
497 IUTEST_PRED_FORMAT_(pred_formatter, IUTEST_EXPECT_FAILURE, __VA_ARGS__)
504 #define IUTEST_INFORM_PRED_FORMAT(pred_formatter, ...) \
505 IUTEST_PRED_FORMAT_(pred_formatter, IUTEST_INFORM_FAILURE, __VA_ARGS__)
512 #define IUTEST_ASSUME_PRED_FORMAT(pred_formatter, ...) \
513 IUTEST_PRED_FORMAT_(pred_formatter, IUTEST_ASSUME_FAILURE, __VA_ARGS__)
526 #define IUTEST_ASSERT_THROW_PRED_FORMAT2(pred_formatter, statement, expected_exception, expected_exception_value) \
527 IUTEST_THROW_PRED_FORMAT2_(pred_formatter, statement, expected_exception, expected_exception_value, IUTEST_ASSERT_FAILURE)
536 #define IUTEST_EXPECT_THROW_PRED_FORMAT2(pred_formatter, statement, expected_exception, expected_exception_value) \
537 IUTEST_THROW_PRED_FORMAT2_(pred_formatter, statement, expected_exception, expected_exception_value, IUTEST_EXPECT_FAILURE)
546 #define IUTEST_INFORM_THROW_PRED_FORMAT2(pred_formatter, statement, expected_exception, expected_exception_value) \
547 IUTEST_THROW_PRED_FORMAT2_(pred_formatter, statement, expected_exception, expected_exception_value, IUTEST_INFORM_FAILURE)
556 #define IUTEST_ASSUME_THROW_PRED_FORMAT2(pred_formatter, statement, expected_exception, expected_exception_value) \
557 IUTEST_THROW_PRED_FORMAT2_(pred_formatter, statement, expected_exception, expected_exception_value, IUTEST_ASSUME_FAILURE)
565 #define IUTEST_PRED1_(pred, v1, on_failure) \
566 IUTEST_TEST_ASSERT_(::iutest::AssertPred1Helper(#pred, #v1, pred, v1), on_failure)
567 #define IUTEST_PRED_FORMAT1_(pred_formatter, v1, on_failure) \
568 IUTEST_TEST_ASSERT_(pred_formatter(#v1, v1), on_failure)
571 #define IUTEST_PRED2_(pred, v1, v2, on_failure) \
572 IUTEST_TEST_ASSERT_(::iutest::AssertPred2Helper(#pred, #v1, #v2, pred, v1, v2), on_failure)
573 #define IUTEST_PRED_FORMAT2_(pred_formatter, v1, v2, on_failure) \
574 IUTEST_TEST_ASSERT_(pred_formatter(#v1, #v2, v1, v2), on_failure)
577 #define IUTEST_PRED3_(pred, v1, v2, v3, on_failure) \
578 IUTEST_TEST_ASSERT_(::iutest::AssertPred3Helper(#pred, #v1, #v2, #v3, pred, v1, v2, v3), on_failure)
579 #define IUTEST_PRED_FORMAT3_(pred_formatter, v1, v2, v3, on_failure) \
580 IUTEST_TEST_ASSERT_(pred_formatter(#v1, #v2, #v3, v1, v2, v3), on_failure)
583 #define IUTEST_PRED4_(pred, v1, v2, v3, v4, on_failure) \
584 IUTEST_TEST_ASSERT_(::iutest::AssertPred4Helper(#pred, #v1, #v2, #v3, #v4, pred, v1, v2, v3, v4), on_failure)
585 #define IUTEST_PRED_FORMAT4_(pred_formatter, v1, v2, v3, v4, on_failure) \
586 IUTEST_TEST_ASSERT_(pred_formatter(#v1, #v2, #v3, #v4, v1, v2, v3, v4), on_failure)
589 #define IUTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure) \
590 IUTEST_TEST_ASSERT_(::iutest::AssertPred5Helper(#pred, #v1, #v2, #v3, #v4, #v5, pred, v1, v2, v3, v4, v5), on_failure)
591 #define IUTEST_PRED_FORMAT5_(pred_formatter, v1, v2, v3, v4, v5, on_failure) \
592 IUTEST_TEST_ASSERT_(pred_formatter(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), on_failure)
594 #ifndef IUTEST_NO_VARIADIC_MACROS
596 #if IUTEST_HAS_VARIADIC_TEMPLATES
598 #define IUTEST_PRED_(pred, on_failure, ...) \
599 IUTEST_TEST_ASSERT_(::iutest::AssertPredVariadicHelper(#pred, #__VA_ARGS__, pred, __VA_ARGS__), on_failure)
603 #define IUTEST_PRED_FORMAT_(pred_formatter, on_failure, ...) \
604 IUTEST_TEST_ASSERT_(pred_formatter(#__VA_ARGS__, __VA_ARGS__), on_failure)
608 #define IUTEST_THROW_PRED_FORMAT2_(pred_formatter, statement, expected_exception, expected_exception_value, on_failure) \
609 IUTEST_TEST_THROW_VALUE_(statement, expected_exception, expected_exception_value, on_failure, pred_formatter)
621 template<
typename PRED,
typename T1>
622 AssertionResult AssertPred1Helper(
const char* pred_str,
const char* expr1
623 , PRED pred, T1 val1)
625 if IUTEST_COND_LIKELY( (*pred)(val1) )
629 return AssertionFailure() <<
"error: " << pred_str <<
"(" << expr1 <<
") evaluates to false, where "
630 <<
"\n" << expr1 <<
" : " << val1;
634 template<
typename PRED,
typename T1,
typename T2>
635 AssertionResult AssertPred2Helper(
const char* pred_str,
const char* expr1,
const char* expr2
636 , PRED pred, T1 val1, T2 val2)
638 if IUTEST_COND_LIKELY( (*pred)(val1, val2) )
643 << expr1 <<
", " << expr2
644 <<
") evaluates to false, where "
645 <<
"\n" << expr1 <<
" : " << val1
646 <<
"\n" << expr2 <<
" : " << val2;
650 template<
typename PRED,
typename T1,
typename T2,
typename T3>
651 AssertionResult AssertPred3Helper(
const char* pred_str
652 ,
const char* expr1,
const char* expr2,
const char* expr3
653 , PRED pred, T1 val1, T2 val2, T3 val3)
655 if IUTEST_COND_LIKELY( (*pred)(val1, val2, val3) )
660 << expr1 <<
", " << expr2 <<
", " << expr3
661 <<
") evaluates to false, where "
662 <<
"\n" << expr1 <<
" : " << val1
663 <<
"\n" << expr2 <<
" : " << val2
664 <<
"\n" << expr3 <<
" : " << val3;
668 template<
typename PRED,
typename T1,
typename T2,
typename T3,
typename T4>
669 AssertionResult AssertPred4Helper(
const char* pred_str
670 ,
const char* expr1,
const char* expr2,
const char* expr3,
const char* expr4
671 , PRED pred, T1 val1, T2 val2, T3 val3, T4 val4)
673 if IUTEST_COND_LIKELY( (*pred)(val1, val2, val3, val4) )
678 << expr1 <<
", " << expr2 <<
", " << expr3 <<
", " << expr4
679 <<
") evaluates to false, where "
680 <<
"\n" << expr1 <<
" : " << val1
681 <<
"\n" << expr2 <<
" : " << val2
682 <<
"\n" << expr3 <<
" : " << val3
683 <<
"\n" << expr4 <<
" : " << val4;
687 template<
typename PRED,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
688 AssertionResult AssertPred5Helper(
const char* pred_str
689 ,
const char* expr1,
const char* expr2,
const char* expr3,
const char* expr4,
const char* expr5
690 , PRED pred, T1 val1, T2 val2, T3 val3, T4 val4, T5 val5)
692 if IUTEST_COND_LIKELY( (*pred)(val1, val2, val3, val4, val5) )
697 << expr1 <<
", " << expr2 <<
", " << expr3 <<
", " << expr4 <<
", " << expr5
698 <<
") evaluates to false, where "
699 <<
"\n" << expr1 <<
" : " << val1
700 <<
"\n" << expr2 <<
" : " << val2
701 <<
"\n" << expr3 <<
" : " << val3
702 <<
"\n" << expr4 <<
" : " << val4
703 <<
"\n" << expr5 <<
" : " << val5;
706 #if IUTEST_HAS_VARIADIC_TEMPLATES
709 template<
typename PRED,
typename ...Args>
710 AssertionResult AssertPredVariadicHelper(
const char* pred_str,
const char* params
711 , PRED pred, Args... args)
713 if IUTEST_COND_LIKELY( (*pred)(args...) )
718 << params <<
") evaluates to false, where "
iris unit test assertion 定義 ファイル
iutest root namespace
Definition: iutest_charcode.hpp:33
AssertionResult AssertionSuccess()
テスト成功を示す AssertionResult オブジェクトの取得
Definition: iutest_assertion.hpp:406
AssertionResult AssertionFailure()
テスト失敗を示す AssertionResult オブジェクトの取得
Definition: iutest_assertion.hpp:410
inline ::std::string PrintToStrings(const char *separate, const T &v)
文字列化
Definition: iutest_printers.hpp:779