43 template<
typename expected_t,
typename collection_t>
56 template<
typename expected_t,
typename collection_t>
69 template<
typename expected_t,
typename collection_t>
82 template<
typename expected_t,
typename collection_t>
84 for (
auto item : collection)
85 if (
dynamic_cast<expected_t
>(item) ==
nullptr) {
86 fail(
"all items instance of <" + typeof_<expected_t>().full_name() +
">", join_items(collection), message, stack_frame);
89 assert::succeed(message, stack_frame);
93 template<
typename expected_t,
typename item_t>
94 static void all_items_are_instances_of(
const std::initializer_list<item_t>& collection) {all_items_are_instances_of<expected_t>(collection,
"",
xtd::diagnostics::stack_frame::empty());}
95 template<
typename expected_t,
typename item_t>
96 static void all_items_are_instances_of(
const std::initializer_list<item_t>& collection,
const std::string& message) {all_items_are_instances_of<expected_t>(collection, message,
xtd::diagnostics::stack_frame::empty());}
97 template<
typename expected_t,
typename item_t>
98 static void all_items_are_instances_of(
const std::initializer_list<item_t>& collection,
const xtd::diagnostics::stack_frame& stack_frame) {all_items_are_instances_of<expected_t>(collection,
"", stack_frame);}
99 template<
typename expected_t,
typename item_t>
100 static void all_items_are_instances_of(
const std::initializer_list<item_t>& collection,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
101 for (
auto item : collection)
102 if (dynamic_cast<expected_t>(item) == nullptr) {
103 fail(
"all items instance of <" + typeof_<expected_t>().full_name() +
">", join_items(collection), message, stack_frame);
106 assert::succeed(message, stack_frame);
123 template<
typename collection_t>
138 template<
typename collection_t>
153 template<
typename collection_t>
168 template<
typename collection_t>
170 for (
auto item : collection)
171 if (item ==
nullptr) {
172 fail(
"all items are not null", join_items(collection), message, stack_frame);
175 assert::succeed(message, stack_frame);
179 template<
typename item_t>
181 template<
typename item_t>
182 static void all_items_are_not_null(
const std::initializer_list<item_t>& collection,
const std::string& message) {all_items_are_not_null(collection, message,
xtd::diagnostics::stack_frame::empty());}
183 template<
typename item_t>
184 static void all_items_are_not_null(
const std::initializer_list<item_t>& collection,
const xtd::diagnostics::stack_frame& stack_frame) {all_items_are_instances_of(collection,
"", stack_frame);}
185 template<
typename item_t>
186 static void all_items_are_not_null(
const std::initializer_list<item_t>& collection,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
187 for (
auto item : collection)
188 if (item == nullptr) {
189 fail(
"all items are not null", join_items(collection), message, stack_frame);
192 assert::succeed(message, stack_frame);
208 template<
typename collection_t>
222 template<
typename collection_t>
236 template<
typename collection_t>
250 template<
typename collection_t>
252 auto value = *collection.cbegin();
253 std::map<
decltype(value),
int32> counts;
254 for (
auto item : collection) {
255 auto result = counts.emplace(item, 1);
256 if (result.second ==
false)
257 fail(
"all items are unique", join_items(collection), message, stack_frame);
259 assert::succeed(message, stack_frame);
263 template<
typename item_t>
265 template<
typename item_t>
266 static void all_items_are_unique(
const std::initializer_list<item_t>& collection,
const xtd::diagnostics::stack_frame& stack_frame) {all_items_are_unique(collection,
"", stack_frame);}
267 template<
typename item_t>
268 static void all_items_are_unique(
const std::initializer_list<item_t>& collection,
const std::string& message) {all_items_are_unique(collection, message,
xtd::diagnostics::stack_frame::empty());}
269 template<
typename item_t>
270 static void all_items_are_unique(
const std::initializer_list<item_t>& collection,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
271 std::map<item_t, int32> counts;
272 for (
auto item : collection) {
273 auto result = counts.emplace(item, 1);
274 if (result.second ==
false)
275 fail(
"all items are unique", join_items(collection), message, stack_frame);
277 assert::succeed(message, stack_frame);
292 template<
typename expected_t,
typename actual_t>
305 template<
typename expected_t,
typename actual_t>
318 template<
typename expected_t,
typename actual_t>
331 template<
typename expected_t,
typename actual_t>
333 if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) ==
false)
334 fail(join_items(expected), join_items(actual), message, stack_frame);
336 assert::succeed(message, stack_frame);
340 template<
typename item_t>
341 static void are_equal(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual) {are_equal(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
342 template<
typename item_t>
343 static void are_equal(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_equal(expected, actual,
"", stack_frame);}
344 template<
typename item_t>
345 static void are_equal(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {are_equal(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
346 template<
typename item_t>
347 static void are_equal(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
348 if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) ==
false)
349 fail(join_items(expected), join_items(actual), message, stack_frame);
351 assert::succeed(message, stack_frame);
353 template<
typename collection_t,
typename item_t>
355 template<
typename collection_t,
typename item_t>
356 static void are_equal(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_equal(expected, actual,
"", stack_frame);}
357 template<
typename collection_t,
typename item_t>
358 static void are_equal(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {are_equal(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
359 template<
typename collection_t,
typename item_t>
360 static void are_equal(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
361 if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) ==
false)
362 fail(join_items(expected), join_items(actual), message, stack_frame);
364 assert::succeed(message, stack_frame);
366 template<
typename item_t,
typename collection_t>
368 template<
typename item_t,
typename collection_t>
369 static void are_equal(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_equal(expected, actual,
"", stack_frame);}
370 template<
typename item_t,
typename collection_t>
371 static void are_equal(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message) {are_equal(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
372 template<
typename item_t,
typename collection_t>
373 static void are_equal(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
374 if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) ==
false)
375 fail(join_items(expected), join_items(actual), message, stack_frame);
377 assert::succeed(message, stack_frame);
392 template<
typename expected_t,
typename actual_t>
405 template<
typename expected_t,
typename actual_t>
418 template<
typename expected_t,
typename actual_t>
431 template<
typename expected_t,
typename actual_t>
433 expected_t expect_sorted = expected;
434 std::sort(expect_sorted.begin(), expect_sorted.end());
435 expected_t actual_sorted = actual;
436 std::sort(actual_sorted.begin(), actual_sorted.end());
437 if (std::equal(actual_sorted.begin(), actual_sorted.end(), expect_sorted.begin(), expect_sorted.end()) ==
false)
438 fail(
"equivalent " + join_items(expected), join_items(actual), message, stack_frame);
440 assert::succeed(message, stack_frame);
444 template<
typename expected_t,
typename actual_t>
445 static void are_equivalent(
const std::initializer_list<expected_t>& expected,
const std::initializer_list<actual_t>& actual) {are_equivalent(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
446 template<
typename expected_t,
typename actual_t>
447 static void are_equivalent(
const std::initializer_list<expected_t>& expected,
const std::initializer_list<actual_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_equivalent(expected, actual,
"", stack_frame);}
448 template<
typename expected_t,
typename actual_t>
449 static void are_equivalent(
const std::initializer_list<expected_t>& expected,
const std::initializer_list<actual_t>& actual,
const std::string& message) {are_equal(are_equivalent, actual, message,
xtd::diagnostics::stack_frame::empty());}
450 template<
typename expected_t,
typename actual_t>
451 static void are_equivalent(
const std::initializer_list<expected_t>& expected,
const std::initializer_list<actual_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
452 std::vector<expected_t> expect_sorted = expected;
453 std::sort(expect_sorted.begin(), expect_sorted.end());
454 std::vector<actual_t> actual_sorted = actual;
455 std::sort(actual_sorted.begin(), actual_sorted.end());
456 if (std::equal(actual_sorted.begin(), actual_sorted.end(), expect_sorted.begin(), expect_sorted.end()) ==
false)
457 fail(
"equivalent " + join_items(expected), join_items(actual), message, stack_frame);
459 assert::succeed(message, stack_frame);
461 template<
typename collection_t,
typename item_t>
462 static void are_equivalent(
const collection_t& expected,
const std::initializer_list<item_t>& actual) {are_equivalent(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
463 template<
typename collection_t,
typename item_t>
464 static void are_equivalent(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_equivalent(expected, actual,
"", stack_frame);}
465 template<
typename collection_t,
typename item_t>
466 static void are_equivalent(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {are_equivalent(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
467 template<
typename collection_t,
typename item_t>
468 static void are_equivalent(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
469 collection_t expect_sorted = expected;
470 std::sort(expect_sorted.begin(), expect_sorted.end());
471 std::vector<item_t> actual_sorted = actual;
472 std::sort(actual_sorted.begin(), actual_sorted.end());
473 if (std::equal(actual_sorted.begin(), actual_sorted.end(), expect_sorted.begin(), expect_sorted.end()) ==
false)
474 fail(
"equivalent " + join_items(expected), join_items(actual), message, stack_frame);
476 assert::succeed(message, stack_frame);
478 template<
typename item_t,
typename collection_t>
479 static void are_equivalent(
const std::initializer_list<item_t>& expected,
const collection_t& actual) {are_equivalent(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
480 template<
typename item_t,
typename collection_t>
481 static void are_equivalent(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_equivalent(expected, actual,
"", stack_frame);}
482 template<
typename item_t,
typename collection_t>
483 static void are_equivalent(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message) {are_equivalent(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
484 template<
typename item_t,
typename collection_t>
485 static void are_equivalent(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
486 std::vector<item_t> expect_sorted = expected;
487 std::sort(expect_sorted.begin(), expect_sorted.end());
488 collection_t actual_sorted = actual;
489 std::sort(actual_sorted.begin(), actual_sorted.end());
490 if (std::equal(actual_sorted.begin(), actual_sorted.end(), expect_sorted.begin(), expect_sorted.end()) ==
false)
491 fail(
"equivalent " + join_items(expected), join_items(actual), message, stack_frame);
493 assert::succeed(message, stack_frame);
508 template<
typename expected_t,
typename actual_t>
521 template<
typename expected_t,
typename actual_t>
534 template<
typename expected_t,
typename actual_t>
547 template<
typename expected_t,
typename actual_t>
549 if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) ==
true)
550 fail(
"not " + join_items(expected), join_items(actual), message, stack_frame);
552 assert::succeed(message, stack_frame);
556 template<
typename item_t>
557 static void are_not_equal(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual) {are_not_equal(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
558 template<
typename item_t>
559 static void are_not_equal(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_not_equal(expected, actual,
"", stack_frame);}
560 template<
typename item_t>
561 static void are_not_equal(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {are_not_equal(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
562 template<
typename item_t>
563 static void are_not_equal(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
564 if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) ==
true)
565 fail(
"not " + join_items(expected), join_items(actual), message, stack_frame);
567 assert::succeed(message, stack_frame);
569 template<
typename collection_t,
typename item_t>
570 static void are_not_equal(
const collection_t& expected,
const std::initializer_list<item_t>& actual) {are_not_equal(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
571 template<
typename collection_t,
typename item_t>
572 static void are_not_equal(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_not_equal(expected, actual,
"", stack_frame);}
573 template<
typename collection_t,
typename item_t>
574 static void are_not_equal(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {are_not_equal(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
575 template<
typename collection_t,
typename item_t>
576 static void are_not_equal(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
577 if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) ==
true)
578 fail(
"not " + join_items(expected), join_items(actual), message, stack_frame);
580 assert::succeed(message, stack_frame);
582 template<
typename item_t,
typename collection_t>
583 static void are_not_equal(
const std::initializer_list<item_t>& expected,
const collection_t& actual) {are_not_equal(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
584 template<
typename item_t,
typename collection_t>
585 static void are_not_equal(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_not_equal(expected, actual,
"", stack_frame);}
586 template<
typename item_t,
typename collection_t>
587 static void are_not_equal(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message) {are_not_equal(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
588 template<
typename item_t,
typename collection_t>
589 static void are_not_equal(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
590 if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) ==
true)
591 fail(
"not " + join_items(expected), join_items(actual), message, stack_frame);
593 assert::succeed(message, stack_frame);
608 template<
typename expected_t,
typename actual_t>
621 template<
typename expected_t,
typename actual_t>
634 template<
typename expected_t,
typename actual_t>
647 template<
typename expected_t,
typename actual_t>
649 expected_t expect_sorted = expected;
650 std::sort(expect_sorted.begin(), expect_sorted.end());
651 expected_t actual_sorted = actual;
652 std::sort(actual_sorted.begin(), actual_sorted.end());
653 if (std::equal(actual_sorted.begin(), actual_sorted.end(), expect_sorted.begin(), expect_sorted.end()) ==
true)
654 fail(
"not equivalent " + join_items(expected), join_items(actual), message, stack_frame);
656 assert::succeed(message, stack_frame);
660 template<
typename expected_t,
typename actual_t>
661 static void are_not_equivalent(
const std::initializer_list<expected_t>& expected,
const std::initializer_list<actual_t>& actual) {are_not_equivalent(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
662 template<
typename expected_t,
typename actual_t>
663 static void are_not_equivalent(
const std::initializer_list<expected_t>& expected,
const std::initializer_list<actual_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_not_equivalent(expected, actual,
"", stack_frame);}
664 template<
typename expected_t,
typename actual_t>
665 static void are_not_equivalent(
const std::initializer_list<expected_t>& expected,
const std::initializer_list<actual_t>& actual,
const std::string& message) {are_not_equivalent(are_equivalent, actual, message,
xtd::diagnostics::stack_frame::empty());}
666 template<
typename expected_t,
typename actual_t>
667 static void are_not_equivalent(
const std::initializer_list<expected_t>& expected,
const std::initializer_list<actual_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
668 std::vector<expected_t> expect_sorted = expected;
669 std::sort(expect_sorted.begin(), expect_sorted.end());
670 std::vector<actual_t> actual_sorted = actual;
671 std::sort(actual_sorted.begin(), actual_sorted.end());
672 if (std::equal(actual_sorted.begin(), actual_sorted.end(), expect_sorted.begin(), expect_sorted.end()) ==
true)
673 fail(
"not equivalent " + join_items(expected), join_items(actual), message, stack_frame);
675 assert::succeed(message, stack_frame);
677 template<
typename collection_t,
typename item_t>
678 static void are_not_equivalent(
const collection_t& expected,
const std::initializer_list<item_t>& actual) {are_not_equivalent(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
679 template<
typename collection_t,
typename item_t>
680 static void are_not_equivalent(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_not_equivalent(expected, actual,
"", stack_frame);}
681 template<
typename collection_t,
typename item_t>
682 static void are_not_equivalent(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {are_not_equivalent(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
683 template<
typename collection_t,
typename item_t>
684 static void are_not_equivalent(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
685 collection_t expect_sorted = expected;
686 std::sort(expect_sorted.begin(), expect_sorted.end());
687 std::vector<item_t> actual_sorted = actual;
688 std::sort(actual_sorted.begin(), actual_sorted.end());
689 if (std::equal(actual_sorted.begin(), actual_sorted.end(), expect_sorted.begin(), expect_sorted.end()) ==
true)
690 fail(
"not equivalent " + join_items(expected), join_items(actual), message, stack_frame);
692 assert::succeed(message, stack_frame);
694 template<
typename item_t,
typename collection_t>
695 static void are_not_equivalent(
const std::initializer_list<item_t>& expected,
const collection_t& actual) {are_not_equivalent(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
696 template<
typename item_t,
typename collection_t>
697 static void are_not_equivalent(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const xtd::diagnostics::stack_frame& stack_frame) {are_not_equivalent(expected, actual,
"", stack_frame);}
698 template<
typename item_t,
typename collection_t>
699 static void are_not_equivalent(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message) {are_not_equivalent(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
700 template<
typename item_t,
typename collection_t>
701 static void are_not_equivalent(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
702 std::vector<item_t> expect_sorted = expected;
703 std::sort(expect_sorted.begin(), expect_sorted.end());
704 collection_t actual_sorted = actual;
705 std::sort(actual_sorted.begin(), actual_sorted.end());
706 if (std::equal(actual_sorted.begin(), actual_sorted.end(), expect_sorted.begin(), expect_sorted.end()) ==
true)
707 fail(
"not equivalent " + join_items(expected), join_items(actual), message, stack_frame);
709 assert::succeed(message, stack_frame);
724 template<
typename expected_t,
typename actual_t>
737 template<
typename expected_t,
typename actual_t>
750 template<
typename expected_t,
typename actual_t>
763 template<
typename expected_t,
typename actual_t>
765 for (
auto item : expected) {
766 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
767 fail(
"contains " + join_items(expected), join_items(actual), message, stack_frame);
771 assert::succeed(message, stack_frame);
775 template<
typename item_t>
776 static void contains(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual) {contains(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
777 template<
typename item_t>
778 static void contains(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {contains(expected, actual,
"", stack_frame);}
779 template<
typename item_t>
780 static void contains(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {contains(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
781 template<
typename item_t>
782 static void contains(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
783 for (
auto item : expected) {
784 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
785 fail(
"contains " + join_items(expected), join_items(actual), message, stack_frame);
789 assert::succeed(message, stack_frame);
791 template<
typename collection_t,
typename item_t>
793 template<
typename collection_t,
typename item_t>
794 static void contains(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {contains(expected, actual,
"", stack_frame);}
795 template<
typename collection_t,
typename item_t>
796 static void contains(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {contains(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
797 template<
typename collection_t,
typename item_t>
798 static void contains(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
799 for (
auto item : expected) {
800 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
801 fail(
"contains " + join_items(expected), join_items(actual), message, stack_frame);
805 assert::succeed(message, stack_frame);
807 template<
typename item_t,
typename collection_t>
809 template<
typename item_t,
typename collection_t>
810 static void contains(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const xtd::diagnostics::stack_frame& stack_frame) {contains(expected, actual,
"", stack_frame);}
811 template<
typename item_t,
typename collection_t>
812 static void contains(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message) {contains(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
813 template<
typename item_t,
typename collection_t>
814 static void contains(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
815 for (
auto item : expected) {
816 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
817 fail(
"contains " + join_items(expected), join_items(actual), message, stack_frame);
821 assert::succeed(message, stack_frame);
836 template<
typename expected_t,
typename actual_t>
849 template<
typename expected_t,
typename actual_t>
862 template<
typename expected_t,
typename actual_t>
875 template<
typename expected_t,
typename actual_t>
877 for (
auto item : expected) {
878 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
879 assert::succeed(message, stack_frame);
883 fail(
"not contains " + join_items(expected), join_items(actual), message, stack_frame);
887 template<
typename item_t>
888 static void does_not_contain(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual) {does_not_contain(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
889 template<
typename item_t>
890 static void does_not_contain(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {does_not_contain(expected, actual,
"", stack_frame);}
891 template<
typename item_t>
892 static void does_not_contain(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {does_not_contain(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
893 template<
typename item_t>
894 static void does_not_contain(
const std::initializer_list<item_t>& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
895 for (
auto item : expected) {
896 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
897 assert::succeed(message, stack_frame);
901 fail(
"not contains " + join_items(expected), join_items(actual), message, stack_frame);
903 template<
typename collection_t,
typename item_t>
904 static void does_not_contain(
const collection_t& expected,
const std::initializer_list<item_t>& actual) {does_not_contain(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
905 template<
typename collection_t,
typename item_t>
906 static void does_not_contain(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const xtd::diagnostics::stack_frame& stack_frame) {does_not_contain(expected, actual,
"", stack_frame);}
907 template<
typename collection_t,
typename item_t>
908 static void does_not_contain(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message) {does_not_contain(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
909 template<
typename collection_t,
typename item_t>
910 static void does_not_contain(
const collection_t& expected,
const std::initializer_list<item_t>& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
911 for (
auto item : expected) {
912 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
913 assert::succeed(message, stack_frame);
917 fail(
"not contains " + join_items(expected), join_items(actual), message, stack_frame);
919 template<
typename item_t,
typename collection_t>
920 static void does_not_contain(
const std::initializer_list<item_t>& expected,
const collection_t& actual) {does_not_contain(expected, actual,
"",
xtd::diagnostics::stack_frame::empty());}
921 template<
typename item_t,
typename collection_t>
922 static void does_not_contain(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const xtd::diagnostics::stack_frame& stack_frame) {does_not_contain(expected, actual,
"", stack_frame);}
923 template<
typename item_t,
typename collection_t>
924 static void does_not_contain(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message) {does_not_contain(expected, actual, message,
xtd::diagnostics::stack_frame::empty());}
925 template<
typename item_t,
typename collection_t>
926 static void does_not_contain(
const std::initializer_list<item_t>& expected,
const collection_t& actual,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
927 for (
auto item : expected) {
928 if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
929 assert::succeed(message, stack_frame);
933 fail(
"not contains " + join_items(expected), join_items(actual), message, stack_frame);
947 template<
typename value_t>
960 template<
typename value_t>
973 template<
typename value_t>
987 template<
typename value_t>
989 if (std::empty(value))
990 assert::succeed(message, stack_frame);
992 fail(
"<empty>", join_items(value), message, stack_frame);
996 template<
typename value_t>
998 template<
typename value_t>
999 static void is_empty(
const std::initializer_list<value_t>& value,
const xtd::diagnostics::stack_frame& stack_frame) {is_empty(value,
"", stack_frame);}
1000 template<
typename value_t>
1002 template<
typename value_t>
1003 static void is_empty(
const std::initializer_list<value_t>& value,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
1004 if (std::empty(value))
1005 assert::succeed(message, stack_frame);
1007 fail(
"<empty>", join_items(value), message, stack_frame);
1021 template<
typename value_t>
1034 template<
typename value_t>
1047 template<
typename value_t>
1061 template<
typename value_t>
1063 if (!std::empty(value))
1064 assert::succeed(message, stack_frame);
1066 fail(
"not <empty>",
"<empty>", message, stack_frame);
1070 template<
typename value_t>
1072 template<
typename value_t>
1073 static void is_not_empty(
const std::initializer_list<value_t>& value,
const xtd::diagnostics::stack_frame& stack_frame) {is_not_empty(value,
"", stack_frame);}
1074 template<
typename value_t>
1076 template<
typename value_t>
1077 static void is_not_empty(
const std::initializer_list<value_t>& value,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
1078 if (!std::empty(value))
1079 assert::succeed(message, stack_frame);
1081 fail(
"not <empty>",
"<empty>", message, stack_frame);
1095 template<
typename value_t>
1108 template<
typename value_t>
1121 template<
typename value_t>
1135 template<
typename value_t>
1137 if (std::is_sorted(value.begin(), value.end()))
1138 assert::succeed(message, stack_frame);
1140 fail(
"<ordered>", join_items(value), message, stack_frame);
1144 template<
typename value_t>
1146 template<
typename value_t>
1147 static void is_ordered(
const std::initializer_list<value_t>& value,
const xtd::diagnostics::stack_frame& stack_frame) {is_ordered(value,
"", stack_frame);}
1148 template<
typename value_t>
1150 template<
typename value_t>
1151 static void is_ordered(
const std::initializer_list<value_t>& value,
const std::string& message,
const xtd::diagnostics::stack_frame& stack_frame) {
1152 if (std::is_sorted(value.begin(), value.end()))
1153 assert::succeed(message, stack_frame);
1155 fail(
"<ordered>", join_items(value), message, stack_frame);
1179#define all_items_are_instances_of_(type_t, ...) __CMD_ASSERT_ARGS(all_items_are_instances_of<type_t>, __VA_ARGS__)
1199#define all_items_are_not_null_(...) __CMD_ASSERT_ARGS(all_items_are_not_null, __VA_ARGS__)
1218#define all_items_are_unique_(...) __CMD_ASSERT_ARGS(all_items_are_unique, __VA_ARGS__)
1236#define are_equivalent_(...) __CMD_ASSERT_ARGS(are_equivalent, __VA_ARGS__)
1254#define are_not_equivalent_(...) __CMD_ASSERT_ARGS(are_not_equivalent, __VA_ARGS__)
1273#define is_ordered_(...) __CMD_ASSERT_ARGS(is_ordered, __VA_ARGS__)
Provides information about a xtd::diagnostics::stack_frame, which represents a function call on the c...
Definition stack_frame.h:37
static stack_frame empty() noexcept
Return an empty stack frame.
The base class for assert.
Definition base_assert.h:29
The collection_assert class contains a collection of static methods that implement the most collectio...
Definition collection_assert.h:23
static void is_empty(const value_t &value, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection contains an item.
Definition collection_assert.h:961
static void all_items_are_not_null(const collection_t &collection, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are not null.
Definition collection_assert.h:154
static void are_not_equivalent(const expected_t &expected, const actual_t &actual, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are not equivalent.
Definition collection_assert.h:648
static void all_items_are_unique(const collection_t &collection, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are unique.
Definition collection_assert.h:251
static void does_not_contain(const expected_t &expected, const actual_t &actual)
Asserts that collection contains all items.
Definition collection_assert.h:837
static void are_not_equivalent(const expected_t &expected, const actual_t &actual, const std::string &message)
Asserts that all collection items are not equivalent.
Definition collection_assert.h:622
static void are_equal(const expected_t &expected, const actual_t &actual)
Asserts that all collection items are equal.
Definition collection_assert.h:293
static void are_not_equivalent(const expected_t &expected, const actual_t &actual, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are not equivalent.
Definition collection_assert.h:635
static void all_items_are_instances_of(const collection_t &collection, const std::string &message)
Asserts that all collection items are of the type supplied or a derived type.
Definition collection_assert.h:57
static void is_ordered(const value_t &value, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection is ordered.
Definition collection_assert.h:1136
static void all_items_are_unique(const collection_t &collection, const std::string &message)
Asserts that all collection items are unique.
Definition collection_assert.h:223
static void are_equivalent(const expected_t &expected, const actual_t &actual, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are equivalent.
Definition collection_assert.h:419
static void are_not_equal(const expected_t &expected, const actual_t &actual, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are not equal.
Definition collection_assert.h:535
static void is_not_empty(const value_t &value, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection or traits does not contain any item.
Definition collection_assert.h:1035
static void contains(const expected_t &expected, const actual_t &actual, const std::string &message)
Asserts that collection contains all items.
Definition collection_assert.h:738
static void is_ordered(const value_t &value, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection is ordered.
Definition collection_assert.h:1109
static void are_equal(const expected_t &expected, const actual_t &actual, const std::string &message)
Asserts that all collection items are equal.
Definition collection_assert.h:306
static void is_not_empty(const value_t &value, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection or traits does not contain any item.
Definition collection_assert.h:1062
static void is_not_empty(const value_t &value, const std::string &message)
Asserts that collection or traits does not contain any item.
Definition collection_assert.h:1048
static void are_equivalent(const expected_t &expected, const actual_t &actual)
Asserts that all collection items are equivalent.
Definition collection_assert.h:393
static void are_equivalent(const expected_t &expected, const actual_t &actual, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are equivalent.
Definition collection_assert.h:432
static void does_not_contain(const expected_t &expected, const actual_t &actual, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection contains all items.
Definition collection_assert.h:863
static void is_ordered(const value_t &value)
Asserts that collection is ordered.
Definition collection_assert.h:1096
static void are_equal(const expected_t &expected, const actual_t &actual, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are equal.
Definition collection_assert.h:332
static void all_items_are_unique(const collection_t &collection, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are unique.
Definition collection_assert.h:237
static void are_equivalent(const expected_t &expected, const actual_t &actual, const std::string &message)
Asserts that all collection items are equivalent.
Definition collection_assert.h:406
static void are_not_equivalent(const expected_t &expected, const actual_t &actual)
Asserts that all collection items are not equivalent.
Definition collection_assert.h:609
static void all_items_are_unique(const collection_t &collection)
Asserts that all collection items are unique.
Definition collection_assert.h:209
static void contains(const expected_t &expected, const actual_t &actual, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection contains all items.
Definition collection_assert.h:751
static void are_not_equal(const expected_t &expected, const actual_t &actual)
Asserts that all collection items are not equal.
Definition collection_assert.h:509
static void is_empty(const value_t &value, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection contains an item.
Definition collection_assert.h:988
static void all_items_are_not_null(const collection_t &collection, const std::string &message)
Asserts that all collection items are not null.
Definition collection_assert.h:139
static void is_empty(const value_t &value)
Asserts that collection contains an item.
Definition collection_assert.h:948
static void all_items_are_instances_of(const collection_t &collection, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are of the type supplied or a derived type.
Definition collection_assert.h:83
static void all_items_are_instances_of(const collection_t &collection, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are of the type supplied or a derived type.
Definition collection_assert.h:70
static void are_not_equal(const expected_t &expected, const actual_t &actual, const std::string &message)
Asserts that all collection items are not equal.
Definition collection_assert.h:522
static void contains(const expected_t &expected, const actual_t &actual)
Asserts that collection contains all items.
Definition collection_assert.h:725
static void contains(const expected_t &expected, const actual_t &actual, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection contains all items.
Definition collection_assert.h:764
static void are_equal(const expected_t &expected, const actual_t &actual, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are equal.
Definition collection_assert.h:319
static void is_ordered(const value_t &value, const std::string &message)
Asserts that collection is ordered.
Definition collection_assert.h:1122
static void all_items_are_instances_of(const collection_t &collection)
Asserts that all collection items are of the type supplied or a derived type.
Definition collection_assert.h:44
static void all_items_are_not_null(const collection_t &collection, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are not null.
Definition collection_assert.h:169
static void is_not_empty(const value_t &value)
Asserts that collection does not contain any item.
Definition collection_assert.h:1022
static void does_not_contain(const expected_t &expected, const actual_t &actual, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that collection contains all items.
Definition collection_assert.h:876
static void all_items_are_not_null(const collection_t &collection)
Asserts that all collection items are not null.
Definition collection_assert.h:124
static void does_not_contain(const expected_t &expected, const actual_t &actual, const std::string &message)
Asserts that collection contains all items.
Definition collection_assert.h:850
static void are_not_equal(const expected_t &expected, const actual_t &actual, const std::string &message, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are not equal.
Definition collection_assert.h:548
static void is_empty(const value_t &value, const std::string &message)
Asserts that collection contains an item.
Definition collection_assert.h:974
#define tunit_export_
Define shared library export.
Definition tunit_export.h:13
int_least32_t int32
Represents a 32-bit signed integer.
Definition types.h:131
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd::tunit::assert class.