29 template<
typename TExpected,
typename TCollection>
43 template<
typename TExpected,
typename TCollection>
57 template<
typename TExpected,
typename TCollection>
71 template<
typename TExpected,
typename TCollection>
73 for (
auto item : collection)
74 if (dynamic_cast<TExpected>(item) ==
nullptr) {
75 base_assert::fail(
"all items instance of <" + __tunit_demangle(
typeid(TExpected).name()) +
">", base_assert::join_items(collection), message, line_info);
82 template<
typename TExpected,
typename TItem>
84 template<
typename TExpected,
typename TItem>
85 static void all_items_are_instances_of(
const std::initializer_list<TItem>& collection,
const std::string& message) {all_items_are_instances_of<TExpected>(collection, message,
line_info());}
86 template<
typename TExpected,
typename TItem>
88 template<
typename TExpected,
typename TItem>
90 for (
auto item : collection)
91 if (dynamic_cast<TExpected>(item) ==
nullptr) {
92 base_assert::fail(
"all items instance of <" + __tunit_demangle(
typeid(TExpected).name()) +
">", base_assert::join_items(collection), message, line_info);
112 template<
typename TCollection>
128 template<
typename TCollection>
144 template<
typename TCollection>
160 template<
typename TCollection>
162 for (
auto item : collection)
163 if (item ==
nullptr) {
164 base_assert::fail(
"all items are not null", base_assert::join_items(collection), message, line_info);
171 template<
typename TItem>
173 template<
typename TItem>
175 template<
typename TItem>
177 template<
typename TItem>
179 for (
auto item : collection)
180 if (item ==
nullptr) {
181 base_assert::fail(
"all items are not null", base_assert::join_items(collection), message, line_info);
200 template<
typename TCollection>
215 template<
typename TCollection>
230 template<
typename TCollection>
245 template<
typename TCollection>
247 auto value = *collection.cbegin();
248 std::map<decltype(value), int> counts;
249 for (
auto item : collection) {
250 auto result = counts.insert(std::pair<decltype(item),
int>(item, 1));
251 if (result.second ==
false)
252 base_assert::fail(
"all items are unqiue", base_assert::join_items(collection), message, line_info);
258 template<
typename TItem>
260 template<
typename TItem>
262 template<
typename TItem>
264 template<
typename TItem>
266 std::map<TItem, int> counts;
267 for (
auto item : collection) {
268 auto result = counts.insert(std::pair<TItem, int>(item, 1));
269 if (result.second ==
false)
270 base_assert::fail(
"all items are unqiue", base_assert::join_items(collection), message, line_info);
287 template<
typename TExpected,
typename TAcutal>
288 static void are_equal(
const TExpected& expected,
const TAcutal& actual) {
are_equal(expected, actual,
"", line_info());}
301 template<
typename TExpected,
typename TAcutal>
302 static void are_equal(
const TExpected& expected,
const TAcutal& actual,
const std::string& message) {
are_equal(expected, actual, message, line_info());}
315 template<
typename TExpected,
typename TAcutal>
329 template<
typename TExpected,
typename TAcutal>
330 static void are_equal(
const TExpected& expected,
const TAcutal& actual,
const std::string& message,
const tunit::line_info& line_info) {
331 if (std::equal(expected.begin(), expected.end(), actual.begin(), actual.end()) ==
false)
332 base_assert::fail(base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
338 template<
typename TItem>
339 static void are_equal(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual) {
are_equal(expected, actual,
"", line_info());}
340 template<
typename TItem>
341 static void are_equal(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const tunit::line_info& line_info) {
are_equal(expected, actual,
"", line_info);}
342 template<
typename TItem>
343 static void are_equal(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
are_equal(expected, actual, message, line_info());}
344 template<
typename TItem>
345 static void are_equal(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
346 if (std::equal(expected.begin(), expected.end(), actual.begin(), actual.end()) ==
false)
347 base_assert::fail(base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
353 template<
typename TCollection,
typename TItem>
354 static void are_equal(
const TCollection& expected,
const std::initializer_list<TItem>& actual) {
are_equal(expected, actual,
"", line_info());}
355 template<
typename TCollection,
typename TItem>
356 static void are_equal(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const tunit::line_info& line_info) {
are_equal(expected, actual,
"", line_info);}
357 template<
typename TCollection,
typename TItem>
358 static void are_equal(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
are_equal(expected, actual, message, line_info());}
359 template<
typename TCollection,
typename TItem>
360 static void are_equal(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
361 if (std::equal(expected.begin(), expected.end(), actual.begin(), actual.end()) ==
false)
362 base_assert::fail(base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
368 template<
typename TItem,
typename TCollection>
369 static void are_equal(
const std::initializer_list<TItem>& expected,
const TCollection& actual) {
are_equal(expected, actual,
"", line_info());}
370 template<
typename TItem,
typename TCollection>
371 static void are_equal(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const tunit::line_info& line_info) {
are_equal(expected, actual,
"", line_info);}
372 template<
typename TItem,
typename TCollection>
373 static void are_equal(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message) {
are_equal(expected, actual, message, line_info());}
374 template<
typename TItem,
typename TCollection>
375 static void are_equal(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message,
const tunit::line_info& line_info) {
376 if (std::equal(expected.begin(), expected.end(), actual.begin(), actual.end()) ==
false)
377 base_assert::fail(base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
394 template<
typename TExpected,
typename TAcutal>
408 template<
typename TExpected,
typename TAcutal>
409 static void are_equivalent(
const TExpected& expected,
const TAcutal& actual,
const std::string& message) {
are_equivalent(expected, actual, message, line_info());}
422 template<
typename TExpected,
typename TAcutal>
436 template<
typename TExpected,
typename TAcutal>
438 TExpected expect_sorted = expected;
439 std::sort(expect_sorted.begin(), expect_sorted.end());
440 TExpected actual_sorted = actual;
441 std::sort(actual_sorted.begin(), actual_sorted.end());
442 if (std::equal(expect_sorted.begin(), expect_sorted.end(), actual_sorted.begin(), actual_sorted.end()) ==
false)
443 base_assert::fail(
"equivalent " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
449 template<
typename TExpected,
typename TActual>
450 static void are_equivalent(
const std::initializer_list<TExpected>& expected,
const std::initializer_list<TActual>& actual) {
are_equivalent(expected, actual,
"", line_info());}
451 template<
typename TExpected,
typename TActual>
453 template<
typename TExpected,
typename TActual>
454 static void are_equivalent(
const std::initializer_list<TExpected>& expected,
const std::initializer_list<TActual>& actual,
const std::string& message) {
are_equal(
are_equivalent, actual, message, line_info());}
455 template<
typename TExpected,
typename TActual>
456 static void are_equivalent(
const std::initializer_list<TExpected>& expected,
const std::initializer_list<TActual>& actual,
const std::string& message,
const tunit::line_info& line_info) {
457 std::vector<TExpected> expect_sorted = expected;
458 std::sort(expect_sorted.begin(), expect_sorted.end());
459 std::vector<TActual> actual_sorted = actual;
460 std::sort(actual_sorted.begin(), actual_sorted.end());
461 if (std::equal(expect_sorted.begin(), expect_sorted.end(), actual_sorted.begin(), actual_sorted.end()) ==
false)
462 base_assert::fail(
"equivalent " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
468 template<
typename TCollection,
typename TItem>
469 static void are_equivalent(
const TCollection& expected,
const std::initializer_list<TItem>& actual) {
are_equivalent(expected, actual,
"", line_info());}
470 template<
typename TCollection,
typename TItem>
472 template<
typename TCollection,
typename TItem>
473 static void are_equivalent(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
are_equivalent(expected, actual, message, line_info());}
474 template<
typename TCollection,
typename TItem>
475 static void are_equivalent(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
476 TCollection expect_sorted = expected;
477 std::sort(expect_sorted.begin(), expect_sorted.end());
478 std::vector<TItem> actual_sorted = actual;
479 std::sort(actual_sorted.begin(), actual_sorted.end());
480 if (std::equal(expect_sorted.begin(), expect_sorted.end(), actual_sorted.begin(), actual_sorted.end()) ==
false)
481 base_assert::fail(
"equivalent " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
487 template<
typename TItem,
typename TCollection>
488 static void are_equivalent(
const std::initializer_list<TItem>& expected,
const TCollection& actual) {
are_equivalent(expected, actual,
"", line_info());}
489 template<
typename TItem,
typename TCollection>
491 template<
typename TItem,
typename TCollection>
492 static void are_equivalent(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message) {
are_equivalent(expected, actual, message, line_info());}
493 template<
typename TItem,
typename TCollection>
494 static void are_equivalent(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message,
const tunit::line_info& line_info) {
495 std::vector<TItem> expect_sorted = expected;
496 std::sort(expect_sorted.begin(), expect_sorted.end());
497 TCollection actual_sorted = actual;
498 std::sort(actual_sorted.begin(), actual_sorted.end());
499 if (std::equal(expect_sorted.begin(), expect_sorted.end(), actual_sorted.begin(), actual_sorted.end()) ==
false)
500 base_assert::fail(
"equivalent " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
517 template<
typename TExpected,
typename TAcutal>
531 template<
typename TExpected,
typename TAcutal>
532 static void are_not_equal(
const TExpected& expected,
const TAcutal& actual,
const std::string& message) {
are_not_equal(expected, actual, message, line_info());}
545 template<
typename TExpected,
typename TAcutal>
559 template<
typename TExpected,
typename TAcutal>
561 if (std::equal(expected.begin(), expected.end(), actual.begin(), actual.end()) ==
true)
562 base_assert::fail(
"not " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
568 template<
typename TItem>
569 static void are_not_equal(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual) {
are_not_equal(expected, actual,
"", line_info());}
570 template<
typename TItem>
572 template<
typename TItem>
573 static void are_not_equal(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
are_not_equal(expected, actual, message, line_info());}
574 template<
typename TItem>
575 static void are_not_equal(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
576 if (std::equal(expected.begin(), expected.end(), actual.begin(), actual.end()) ==
true)
577 base_assert::fail(
"not " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
583 template<
typename TCollection,
typename TItem>
584 static void are_not_equal(
const TCollection& expected,
const std::initializer_list<TItem>& actual) {
are_not_equal(expected, actual,
"", line_info());}
585 template<
typename TCollection,
typename TItem>
587 template<
typename TCollection,
typename TItem>
588 static void are_not_equal(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
are_not_equal(expected, actual, message, line_info());}
589 template<
typename TCollection,
typename TItem>
590 static void are_not_equal(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
591 if (std::equal(expected.begin(), expected.end(), actual.begin(), actual.end()) ==
true)
592 base_assert::fail(
"not " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
598 template<
typename TItem,
typename TCollection>
599 static void are_not_equal(
const std::initializer_list<TItem>& expected,
const TCollection& actual) {
are_not_equal(expected, actual,
"", line_info());}
600 template<
typename TItem,
typename TCollection>
602 template<
typename TItem,
typename TCollection>
603 static void are_not_equal(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message) {
are_not_equal(expected, actual, message, line_info());}
604 template<
typename TItem,
typename TCollection>
605 static void are_not_equal(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message,
const tunit::line_info& line_info) {
606 if (std::equal(expected.begin(), expected.end(), actual.begin(), actual.end()) ==
true)
607 base_assert::fail(
"not " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
624 template<
typename TExpected,
typename TAcutal>
638 template<
typename TExpected,
typename TAcutal>
652 template<
typename TExpected,
typename TAcutal>
666 template<
typename TExpected,
typename TAcutal>
668 TExpected expect_sorted = expected;
669 std::sort(expect_sorted.begin(), expect_sorted.end());
670 TExpected actual_sorted = actual;
671 std::sort(actual_sorted.begin(), actual_sorted.end());
672 if (std::equal(expect_sorted.begin(), expect_sorted.end(), actual_sorted.begin(), actual_sorted.end()) ==
true)
673 base_assert::fail(
"not equivalent " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
679 template<
typename TExpected,
typename TActual>
680 static void are_not_equivalent(
const std::initializer_list<TExpected>& expected,
const std::initializer_list<TActual>& actual) {
are_not_equivalent(expected, actual,
"", line_info());}
681 template<
typename TExpected,
typename TActual>
683 template<
typename TExpected,
typename TActual>
685 template<
typename TExpected,
typename TActual>
686 static void are_not_equivalent(
const std::initializer_list<TExpected>& expected,
const std::initializer_list<TActual>& actual,
const std::string& message,
const tunit::line_info& line_info) {
687 std::vector<TExpected> expect_sorted = expected;
688 std::sort(expect_sorted.begin(), expect_sorted.end());
689 std::vector<TActual> actual_sorted = actual;
690 std::sort(actual_sorted.begin(), actual_sorted.end());
691 if (std::equal(expect_sorted.begin(), expect_sorted.end(), actual_sorted.begin(), actual_sorted.end()) ==
true)
692 base_assert::fail(
"not equivalent " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
698 template<
typename TCollection,
typename TItem>
700 template<
typename TCollection,
typename TItem>
702 template<
typename TCollection,
typename TItem>
703 static void are_not_equivalent(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
are_not_equivalent(expected, actual, message, line_info());}
704 template<
typename TCollection,
typename TItem>
705 static void are_not_equivalent(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
706 TCollection expect_sorted = expected;
707 std::sort(expect_sorted.begin(), expect_sorted.end());
708 std::vector<TItem> actual_sorted = actual;
709 std::sort(actual_sorted.begin(), actual_sorted.end());
710 if (std::equal(expect_sorted.begin(), expect_sorted.end(), actual_sorted.begin(), actual_sorted.end()) ==
true)
711 base_assert::fail(
"not equivalent " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
717 template<
typename TItem,
typename TCollection>
719 template<
typename TItem,
typename TCollection>
721 template<
typename TItem,
typename TCollection>
722 static void are_not_equivalent(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message) {
are_not_equivalent(expected, actual, message, line_info());}
723 template<
typename TItem,
typename TCollection>
724 static void are_not_equivalent(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message,
const tunit::line_info& line_info) {
725 std::vector<TItem> expect_sorted = expected;
726 std::sort(expect_sorted.begin(), expect_sorted.end());
727 TCollection actual_sorted = actual;
728 std::sort(actual_sorted.begin(), actual_sorted.end());
729 if (std::equal(expect_sorted.begin(), expect_sorted.end(), actual_sorted.begin(), actual_sorted.end()) ==
true)
730 base_assert::fail(
"not equivalent " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
747 template<
typename TExpected,
typename TAcutal>
748 static void contains(
const TExpected& expected,
const TAcutal& actual) {
contains(expected, actual,
"", line_info());}
761 template<
typename TExpected,
typename TAcutal>
762 static void contains(
const TExpected& expected,
const TAcutal& actual,
const std::string& message) {
contains(expected, actual, message, line_info());}
775 template<
typename TExpected,
typename TAcutal>
789 template<
typename TExpected,
typename TAcutal>
790 static void contains(
const TExpected& expected,
const TAcutal& actual,
const std::string& message,
const tunit::line_info& line_info) {
791 for (
auto item : expected) {
792 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
793 base_assert::fail(
"contains " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
801 template<
typename TItem>
802 static void contains(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual) {
contains(expected, actual,
"", line_info());}
803 template<
typename TItem>
804 static void contains(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const tunit::line_info& line_info) {
contains(expected, actual,
"", line_info);}
805 template<
typename TItem>
806 static void contains(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
contains(expected, actual, message, line_info());}
807 template<
typename TItem>
808 static void contains(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
809 for (
auto item : expected) {
810 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
811 base_assert::fail(
"contains " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
819 template<
typename TCollection,
typename TItem>
820 static void contains(
const TCollection& expected,
const std::initializer_list<TItem>& actual) {
contains(expected, actual,
"", line_info());}
821 template<
typename TCollection,
typename TItem>
822 static void contains(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const tunit::line_info& line_info) {
contains(expected, actual,
"", line_info);}
823 template<
typename TCollection,
typename TItem>
824 static void contains(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
contains(expected, actual, message, line_info());}
825 template<
typename TCollection,
typename TItem>
826 static void contains(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
827 for (
auto item : expected) {
828 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
829 base_assert::fail(
"contains " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
837 template<
typename TItem,
typename TCollection>
838 static void contains(
const std::initializer_list<TItem>& expected,
const TCollection& actual) {
contains(expected, actual,
"", line_info());}
839 template<
typename TItem,
typename TCollection>
840 static void contains(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const tunit::line_info& line_info) {
contains(expected, actual,
"", line_info);}
841 template<
typename TItem,
typename TCollection>
842 static void contains(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message) {
contains(expected, actual, message, line_info());}
843 template<
typename TItem,
typename TCollection>
844 static void contains(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message,
const tunit::line_info& line_info) {
845 for (
auto item : expected) {
846 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
847 base_assert::fail(
"contains " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
866 template<
typename TExpected,
typename TAcutal>
880 template<
typename TExpected,
typename TAcutal>
894 template<
typename TExpected,
typename TAcutal>
908 template<
typename TExpected,
typename TAcutal>
910 for (
auto item : expected) {
911 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
916 base_assert::fail(
"not contains " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
920 template<
typename TItem>
921 static void does_not_contain(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual) {
does_not_contain(expected, actual,
"", line_info());}
922 template<
typename TItem>
924 template<
typename TItem>
925 static void does_not_contain(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
does_not_contain(expected, actual, message, line_info());}
926 template<
typename TItem>
927 static void does_not_contain(
const std::initializer_list<TItem>& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
928 for (
auto item : expected) {
929 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
934 base_assert::fail(
"not contains " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
938 template<
typename TCollection,
typename TItem>
939 static void does_not_contain(
const TCollection& expected,
const std::initializer_list<TItem>& actual) {
does_not_contain(expected, actual,
"", line_info());}
940 template<
typename TCollection,
typename TItem>
942 template<
typename TCollection,
typename TItem>
943 static void does_not_contain(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message) {
does_not_contain(expected, actual, message, line_info());}
944 template<
typename TCollection,
typename TItem>
945 static void does_not_contain(
const TCollection& expected,
const std::initializer_list<TItem>& actual,
const std::string& message,
const tunit::line_info& line_info) {
946 for (
auto item : expected) {
947 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
952 base_assert::fail(
"not contains " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
956 template<
typename TItem,
typename TCollection>
957 static void does_not_contain(
const std::initializer_list<TItem>& expected,
const TCollection& actual) {
does_not_contain(expected, actual,
"", line_info());}
958 template<
typename TItem,
typename TCollection>
960 template<
typename TItem,
typename TCollection>
961 static void does_not_contain(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message) {
does_not_contain(expected, actual, message, line_info());}
962 template<
typename TItem,
typename TCollection>
963 static void does_not_contain(
const std::initializer_list<TItem>& expected,
const TCollection& actual,
const std::string& message,
const tunit::line_info& line_info) {
964 for (
auto item : expected) {
965 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
970 base_assert::fail(
"not contains " + base_assert::join_items(expected), base_assert::join_items(actual), message, line_info);
984 template<
typename TValue>
998 template<
typename TValue>
1012 template<
typename TValue>
1013 static void is_empty(
const TValue& value,
const std::string& message) {
is_empty(value, message, line_info());}
1027 template<
typename TValue>
1029 if (std::empty(value))
1032 base_assert::fail(
"<empty>", base_assert::join_items(value), message, line_info);
1036 template<
typename TValue>
1037 static void is_empty(
const std::initializer_list<TValue>& value) {
is_empty(value,
"", line_info());}
1038 template<
typename TValue>
1040 template<
typename TValue>
1041 static void is_empty(
const std::initializer_list<TValue>& value,
const std::string& message) {
is_empty(value, message, line_info());}
1042 template<
typename TValue>
1043 static void is_empty(
const std::initializer_list<TValue>& value,
const std::string& message,
const tunit::line_info& line_info) {
1044 if (std::empty(value))
1047 base_assert::fail(
"<empty>", base_assert::join_items(value), message, line_info);
1061 template<
typename TValue>
1075 template<
typename TValue>
1089 template<
typename TValue>
1104 template<
typename TValue>
1106 if (!std::empty(value))
1113 template<
typename TValue>
1115 template<
typename TValue>
1117 template<
typename TValue>
1118 static void is_not_empty(
const std::initializer_list<TValue>& value,
const std::string& message) {
is_not_empty(value, message, line_info());}
1119 template<
typename TValue>
1121 if (!std::empty(value))
1138 template<
typename TValue>
1152 template<
typename TValue>
1166 template<
typename TValue>
1181 template<
typename TValue>
1183 if (std::is_sorted(value.begin(), value.end()))
1186 base_assert::fail(
"<ordered>", base_assert::join_items(value), message, line_info);
1190 template<
typename TValue>
1191 static void is_ordered(
const std::initializer_list<TValue>& value) {
is_ordered(value,
"", line_info());}
1192 template<
typename TValue>
1194 template<
typename TValue>
1195 static void is_ordered(
const std::initializer_list<TValue>& value,
const std::string& message) {
is_ordered(value, message, line_info());}
1196 template<
typename TValue>
1197 static void is_ordered(
const std::initializer_list<TValue>& value,
const std::string& message,
const tunit::line_info& line_info) {
1198 if (std::is_sorted(value.begin(), value.end()))
1201 base_assert::fail(
"<ordered>", base_assert::join_items(value), message, line_info);
1207 #define all_items_are_instances_of_(...) __CMD_ASSERT_ARGS(all_items_are_instances_of, __VA_ARGS__) 1209 #define all_items_are_not_null_(...) __CMD_ASSERT_ARGS(all_items_are_not_null, __VA_ARGS__) 1211 #define all_items_are_unqiue_(...) __CMD_ASSERT_ARGS(all_items_are_unqiue, __VA_ARGS__) 1213 #define are_equivalent_(...) __CMD_ASSERT_ARGS(are_equivalent, __VA_ARGS__) 1215 #define are_not_equivalent_(...) __CMD_ASSERT_ARGS(are_not_equivalent, __VA_ARGS__) 1217 #define is_ordered_(...) __CMD_ASSERT_ARGS(is_ordered, __VA_ARGS__) The collection_assert class contains a collection of static methods that implement the most collectio...
Definition: collection_assert.h:12
static void is_not_empty(const TValue &value, const std::string &message)
Asserts that collection or traits does not contain any item.
Definition: collection_assert.h:1090
static void are_equivalent(const TExpected &expected, const TAcutal &actual, const tunit::line_info &line_info)
Asserts that all collection items are equivalent.
Definition: collection_assert.h:423
static void is_not_empty(const TValue &value)
Asserts that collection does not contain any item.
Definition: collection_assert.h:1062
static void all_items_are_instances_of(const TCollection &collection, const std::string &message)
Asserts that all collection items are of the type supplied or a derived type.
Definition: collection_assert.h:44
static void are_not_equal(const TExpected &expected, const TAcutal &actual, const tunit::line_info &line_info)
Asserts that all collection items are not equal.
Definition: collection_assert.h:546
static void all_items_are_not_null(const TCollection &collection)
Asserts that all collection items are not null.
Definition: collection_assert.h:113
static void are_equivalent(const TExpected &expected, const TAcutal &actual, const std::string &message, const tunit::line_info &line_info)
Asserts that all collection items are equivalent.
Definition: collection_assert.h:437
static void are_equivalent(const TExpected &expected, const TAcutal &actual)
Asserts that all collection items are equivalent.
Definition: collection_assert.h:395
static void is_empty(const TValue &value, const std::string &message)
Asserts that collection contains an item.
Definition: collection_assert.h:1013
static void is_ordered(const TValue &value, const std::string &message)
Asserts that collection is ordered.
Definition: collection_assert.h:1167
static void contains(const TExpected &expected, const TAcutal &actual)
Asserts that ollection contains all items.
Definition: collection_assert.h:748
static void all_items_are_instances_of(const TCollection &collection, const std::string &message, const tunit::line_info &line_info)
Asserts that all collection items are of the type supplied or a derived type.
Definition: collection_assert.h:72
Contains tunit::assert class.
static void is_ordered(const TValue &value, const tunit::line_info &line_info)
Asserts that collection is ordered.
Definition: collection_assert.h:1153
static void all_items_are_not_null(const TCollection &collection, const std::string &message, const tunit::line_info &line_info)
Asserts that all collection items are not null.
Definition: collection_assert.h:161
static void are_not_equal(const TExpected &expected, const TAcutal &actual, const std::string &message)
Asserts that all collection items are not equal.
Definition: collection_assert.h:532
static void contains(const TExpected &expected, const TAcutal &actual, const tunit::line_info &line_info)
Asserts that collection contains all items.
Definition: collection_assert.h:776
static void are_equal(const TExpected &expected, const TAcutal &actual, const std::string &message, const tunit::line_info &line_info)
Asserts that all collection items are equal.
Definition: collection_assert.h:330
static void all_items_are_not_null(const TCollection &collection, const std::string &message)
Asserts that all collection items are not null.
Definition: collection_assert.h:129
static void does_not_contain(const TExpected &expected, const TAcutal &actual, const tunit::line_info &line_info)
Asserts that collection contains all items.
Definition: collection_assert.h:895
static void is_ordered(const TValue &value, const std::string &message, const tunit::line_info &line_info)
Asserts that collection is ordered.
Definition: collection_assert.h:1182
static void is_not_empty(const TValue &value, const tunit::line_info &line_info)
Asserts that collection or traits does not contain any item.
Definition: collection_assert.h:1076
static void all_items_are_not_null(const TCollection &collection, const tunit::line_info &line_info)
Asserts that all collection items are not null.
Definition: collection_assert.h:145
static void all_items_are_instances_of(const TCollection &collection, const tunit::line_info &line_info)
Asserts that all collection items are of the type supplied or a derived type.
Definition: collection_assert.h:58
line_info information class is used to store current file, current line and current function informat...
Definition: line_info.h:13
static void fail()
Throws an tunit::assertion_error exception.
Definition: base_assert.h:60
static void all_items_are_unique(const TCollection &collection, const std::string &message)
Asserts that all collection items are unique.
Definition: collection_assert.h:216
static void does_not_contain(const TExpected &expected, const TAcutal &actual, const std::string &message)
Asserts that collection contains all items.
Definition: collection_assert.h:881
static void are_not_equivalent(const TExpected &expected, const TAcutal &actual, const std::string &message, const tunit::line_info &line_info)
Asserts that all collection items are not equivalent.
Definition: collection_assert.h:667
static void are_not_equivalent(const TExpected &expected, const TAcutal &actual)
Asserts that all collection items are not equivalent.
Definition: collection_assert.h:625
static void are_not_equivalent(const TExpected &expected, const TAcutal &actual, const std::string &message)
Asserts that all collection items are not equivalent.
Definition: collection_assert.h:639
static void does_not_contain(const TExpected &expected, const TAcutal &actual, const std::string &message, const tunit::line_info &line_info)
Asserts that collection contains all items.
Definition: collection_assert.h:909
static void is_empty(const TValue &value, const tunit::line_info &line_info)
Asserts that collection contains an item.
Definition: collection_assert.h:999
Definition: base_assert.h:15
static void is_empty(const TValue &value, const std::string &message, const tunit::line_info &line_info)
Asserts that collection contains an item.
Definition: collection_assert.h:1028
static void succeed()
Generates a success with a generic message.
Definition: base_assert.h:130
static void is_empty(const TValue &value)
Asserts that collection contains an item.
Definition: collection_assert.h:985
static void all_items_are_unique(const TCollection &collection, const std::string &message, const tunit::line_info &line_info)
Asserts that all collection items are unique.
Definition: collection_assert.h:246
The tunit namespace contains a unit test library.
Definition: abort_error.h:8
static void all_items_are_unique(const TCollection &collection)
Asserts that all collection items are unique.
Definition: collection_assert.h:201
static void is_not_empty(const TValue &value, const std::string &message, const tunit::line_info &line_info)
Asserts that collection or traits does not contain any item.
Definition: collection_assert.h:1105
static void all_items_are_unique(const TCollection &collection, const tunit::line_info &line_info)
Asserts that all collection items are unique.
Definition: collection_assert.h:231
static void contains(const TExpected &expected, const TAcutal &actual, const std::string &message)
Asserts that collection contains all items.
Definition: collection_assert.h:762
static void are_not_equivalent(const TExpected &expected, const TAcutal &actual, const tunit::line_info &line_info)
Asserts that all collection items are not equivalent.
Definition: collection_assert.h:653
static void is_ordered(const TValue &value)
Asserts that collection is ordered.
Definition: collection_assert.h:1139
static void does_not_contain(const TExpected &expected, const TAcutal &actual)
Asserts that ollection contains all items.
Definition: collection_assert.h:867
static void are_not_equal(const TExpected &expected, const TAcutal &actual, const std::string &message, const tunit::line_info &line_info)
Asserts that all collection items arenot equal.
Definition: collection_assert.h:560
static void are_not_equal(const TExpected &expected, const TAcutal &actual)
Asserts that all collection items are not equal.
Definition: collection_assert.h:518
static void are_equal(const TExpected &expected, const TAcutal &actual, const std::string &message)
Asserts that all collection items are equal.
Definition: collection_assert.h:302
static void are_equivalent(const TExpected &expected, const TAcutal &actual, const std::string &message)
Asserts that all collection items are equivalent.
Definition: collection_assert.h:409
static void contains(const TExpected &expected, const TAcutal &actual, const std::string &message, const tunit::line_info &line_info)
Asserts that collection contains all items.
Definition: collection_assert.h:790
static void are_equal(const TExpected &expected, const TAcutal &actual, const tunit::line_info &line_info)
Asserts that all collection items are equal.
Definition: collection_assert.h:316
static void all_items_are_instances_of(const TCollection &collection)
Asserts that all collection items are of the type supplied or a derived type.
Definition: collection_assert.h:30
static void are_equal(const TExpected &expected, const TAcutal &actual)
Asserts that all collection items are equal.
Definition: collection_assert.h:288