xtd 0.2.0
collection_assert.h
Go to the documentation of this file.
1 #pragma once
5 #include "assert.h"
6 
8 namespace xtd {
10  namespace tunit {
23  class tunit_export_ collection_assert final : private base_assert {
24  public:
26  collection_assert() = delete;
28 
30 
43  template<typename expected_t, typename collection_t>
44  static void all_items_are_instances_of(const collection_t& collection) {all_items_are_instances_of<expected_t>(collection, "", xtd::diagnostics::stack_frame::empty());}
56  template<typename expected_t, typename collection_t>
57  static void all_items_are_instances_of(const collection_t& collection, const std::string& message) {all_items_are_instances_of<expected_t>(collection, message, xtd::diagnostics::stack_frame::empty());}
69  template<typename expected_t, typename collection_t>
70  static void all_items_are_instances_of(const collection_t& collection, const xtd::diagnostics::stack_frame& stack_frame) {all_items_are_instances_of<expected_t>(collection, "", stack_frame);}
82  template<typename expected_t, typename collection_t>
83  static void all_items_are_instances_of(const collection_t& collection, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
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);
87  return;
88  }
89  assert::succeed(message, stack_frame);
90  }
91 
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);
104  return;
105  }
106  assert::succeed(message, stack_frame);
107  }
109 
123  template<typename collection_t>
124  static void all_items_are_not_null(const collection_t& collection) {all_items_are_not_null(collection, "", xtd::diagnostics::stack_frame::empty());}
138  template<typename collection_t>
139  static void all_items_are_not_null(const collection_t& collection, const std::string& message) {all_items_are_not_null(collection, message, xtd::diagnostics::stack_frame::empty());}
153  template<typename collection_t>
154  static void all_items_are_not_null(const collection_t& collection, const xtd::diagnostics::stack_frame& stack_frame) {all_items_are_instances_of(collection, "", stack_frame);}
168  template<typename collection_t>
169  static void all_items_are_not_null(const collection_t& collection, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
170  for (auto item : collection)
171  if (item == nullptr) {
172  fail("all items are not null", join_items(collection), message, stack_frame);
173  return;
174  }
175  assert::succeed(message, stack_frame);
176  }
177 
179  template<typename item_t>
180  static void all_items_are_not_null(const std::initializer_list<item_t>& collection) {all_items_are_not_null(collection, "", xtd::diagnostics::stack_frame::empty());}
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);
190  return;
191  }
192  assert::succeed(message, stack_frame);
193  }
195 
208  template<typename collection_t>
209  static void all_items_are_unique(const collection_t& collection) {all_items_are_unique(collection, "", xtd::diagnostics::stack_frame::empty());}
222  template<typename collection_t>
223  static void all_items_are_unique(const collection_t& collection, const std::string& message) {all_items_are_unique(collection, message, xtd::diagnostics::stack_frame::empty());}
236  template<typename collection_t>
237  static void all_items_are_unique(const collection_t& collection, const xtd::diagnostics::stack_frame& stack_frame) {all_items_are_unique(collection, "", stack_frame);}
250  template<typename collection_t>
251  static void all_items_are_unique(const collection_t& collection, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
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);
258  }
259  assert::succeed(message, stack_frame);
260  }
261 
263  template<typename item_t>
264  static void all_items_are_unique(const std::initializer_list<item_t>& collection) {all_items_are_unique(collection, "", xtd::diagnostics::stack_frame::empty());}
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);
276  }
277  assert::succeed(message, stack_frame);
278  }
280 
292  template<typename expected_t, typename actual_t>
293  static void are_equal(const expected_t& expected, const actual_t& actual) {are_equal(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
305  template<typename expected_t, typename actual_t>
306  static void are_equal(const expected_t& expected, const actual_t& actual, const std::string& message) {are_equal(expected, actual, message, xtd::diagnostics::stack_frame::empty());}
318  template<typename expected_t, typename actual_t>
319  static void are_equal(const expected_t& expected, const actual_t& actual, const xtd::diagnostics::stack_frame& stack_frame) {are_equal(expected, actual, "", stack_frame);}
331  template<typename expected_t, typename actual_t>
332  static void are_equal(const expected_t& expected, const actual_t& actual, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
333  if (std::equal(actual.begin(), actual.end(), expected.begin(), expected.end()) == false)
334  fail(join_items(expected), join_items(actual), message, stack_frame);
335  else
336  assert::succeed(message, stack_frame);
337  }
338 
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);
350  else
351  assert::succeed(message, stack_frame);
352  }
353  template<typename collection_t, typename item_t>
354  static void are_equal(const collection_t& expected, const std::initializer_list<item_t>& actual) {are_equal(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
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);
363  else
364  assert::succeed(message, stack_frame);
365  }
366  template<typename item_t, typename collection_t>
367  static void are_equal(const std::initializer_list<item_t>& expected, const collection_t& actual) {are_equal(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
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);
376  else
377  assert::succeed(message, stack_frame);
378  }
380 
392  template<typename expected_t, typename actual_t>
393  static void are_equivalent(const expected_t& expected, const actual_t& actual) {are_equivalent(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
405  template<typename expected_t, typename actual_t>
406  static void are_equivalent(const expected_t& expected, const actual_t& actual, const std::string& message) {are_equivalent(expected, actual, message, xtd::diagnostics::stack_frame::empty());}
418  template<typename expected_t, typename actual_t>
419  static void are_equivalent(const expected_t& expected, const actual_t& actual, const xtd::diagnostics::stack_frame& stack_frame) {are_equivalent(expected, actual, "", stack_frame);}
431  template<typename expected_t, typename actual_t>
432  static void are_equivalent(const expected_t& expected, const actual_t& actual, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
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);
439  else
440  assert::succeed(message, stack_frame);
441  }
442 
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);
458  else
459  assert::succeed(message, stack_frame);
460  }
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);
475  else
476  assert::succeed(message, stack_frame);
477  }
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);
492  else
493  assert::succeed(message, stack_frame);
494  }
496 
508  template<typename expected_t, typename actual_t>
509  static void are_not_equal(const expected_t& expected, const actual_t& actual) {are_not_equal(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
521  template<typename expected_t, typename actual_t>
522  static void are_not_equal(const expected_t& expected, const actual_t& actual, const std::string& message) {are_not_equal(expected, actual, message, xtd::diagnostics::stack_frame::empty());}
534  template<typename expected_t, typename actual_t>
535  static void are_not_equal(const expected_t& expected, const actual_t& actual, const xtd::diagnostics::stack_frame& stack_frame) {are_not_equal(expected, actual, "", stack_frame);}
547  template<typename expected_t, typename actual_t>
548  static void are_not_equal(const expected_t& expected, const actual_t& actual, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
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);
551  else
552  assert::succeed(message, stack_frame);
553  }
554 
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);
566  else
567  assert::succeed(message, stack_frame);
568  }
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);
579  else
580  assert::succeed(message, stack_frame);
581  }
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);
592  else
593  assert::succeed(message, stack_frame);
594  }
596 
608  template<typename expected_t, typename actual_t>
609  static void are_not_equivalent(const expected_t& expected, const actual_t& actual) {are_not_equivalent(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
621  template<typename expected_t, typename actual_t>
622  static void are_not_equivalent(const expected_t& expected, const actual_t& actual, const std::string& message) {are_not_equivalent(expected, actual, message, xtd::diagnostics::stack_frame::empty());}
634  template<typename expected_t, typename actual_t>
635  static void are_not_equivalent(const expected_t& expected, const actual_t& actual, const xtd::diagnostics::stack_frame& stack_frame) {are_not_equivalent(expected, actual, "", stack_frame);}
647  template<typename expected_t, typename actual_t>
648  static void are_not_equivalent(const expected_t& expected, const actual_t& actual, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
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);
655  else
656  assert::succeed(message, stack_frame);
657  }
658 
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);
674  else
675  assert::succeed(message, stack_frame);
676  }
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);
691  else
692  assert::succeed(message, stack_frame);
693  }
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);
708  else
709  assert::succeed(message, stack_frame);
710  }
712 
724  template<typename expected_t, typename actual_t>
725  static void contains(const expected_t& expected, const actual_t& actual) {contains(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
737  template<typename expected_t, typename actual_t>
738  static void contains(const expected_t& expected, const actual_t& actual, const std::string& message) {contains(expected, actual, message, xtd::diagnostics::stack_frame::empty());}
750  template<typename expected_t, typename actual_t>
751  static void contains(const expected_t& expected, const actual_t& actual, const xtd::diagnostics::stack_frame& stack_frame) {contains(expected, actual, "", stack_frame);}
763  template<typename expected_t, typename actual_t>
764  static void contains(const expected_t& expected, const actual_t& actual, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
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);
768  return;
769  }
770  }
771  assert::succeed(message, stack_frame);
772  }
773 
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);
786  return;
787  }
788  }
789  assert::succeed(message, stack_frame);
790  }
791  template<typename collection_t, typename item_t>
792  static void contains(const collection_t& expected, const std::initializer_list<item_t>& actual) {contains(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
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);
802  return;
803  }
804  }
805  assert::succeed(message, stack_frame);
806  }
807  template<typename item_t, typename collection_t>
808  static void contains(const std::initializer_list<item_t>& expected, const collection_t& actual) {contains(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
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);
818  return;
819  }
820  }
821  assert::succeed(message, stack_frame);
822  }
824 
836  template<typename expected_t, typename actual_t>
837  static void does_not_contain(const expected_t& expected, const actual_t& actual) {does_not_contain(expected, actual, "", xtd::diagnostics::stack_frame::empty());}
849  template<typename expected_t, typename actual_t>
850  static void does_not_contain(const expected_t& expected, const actual_t& actual, const std::string& message) {does_not_contain(expected, actual, message, xtd::diagnostics::stack_frame::empty());}
862  template<typename expected_t, typename actual_t>
863  static void does_not_contain(const expected_t& expected, const actual_t& actual, const xtd::diagnostics::stack_frame& stack_frame) {does_not_contain(expected, actual, "", stack_frame);}
875  template<typename expected_t, typename actual_t>
876  static void does_not_contain(const expected_t& expected, const actual_t& actual, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
877  for (auto item : expected) {
878  if (std::find(actual.begin(), actual.end(), item) == actual.end()) {
879  assert::succeed(message, stack_frame);
880  return;
881  }
882  }
883  fail("not contains " + join_items(expected), join_items(actual), message, stack_frame);
884  }
885 
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);
898  return;
899  }
900  }
901  fail("not contains " + join_items(expected), join_items(actual), message, stack_frame);
902  }
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);
914  return;
915  }
916  }
917  fail("not contains " + join_items(expected), join_items(actual), message, stack_frame);
918  }
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);
930  return;
931  }
932  }
933  fail("not contains " + join_items(expected), join_items(actual), message, stack_frame);
934  }
936 
947  template<typename value_t>
948  static void is_empty(const value_t& value) {is_empty(value, "", xtd::diagnostics::stack_frame::empty());}
960  template<typename value_t>
961  static void is_empty(const value_t& value, const xtd::diagnostics::stack_frame& stack_frame) {is_empty(value, "", stack_frame);}
973  template<typename value_t>
974  static void is_empty(const value_t& value, const std::string& message) {is_empty(value, message, xtd::diagnostics::stack_frame::empty());}
987  template<typename value_t>
988  static void is_empty(const value_t& value, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
989  if (std::empty(value))
990  assert::succeed(message, stack_frame);
991  else
992  fail("<empty>", join_items(value), message, stack_frame);
993  }
994 
996  template<typename value_t>
997  static void is_empty(const std::initializer_list<value_t>& value) {is_empty(value, "", xtd::diagnostics::stack_frame::empty());}
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>
1001  static void is_empty(const std::initializer_list<value_t>& value, const std::string& message) {is_empty(value, message, xtd::diagnostics::stack_frame::empty());}
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);
1006  else
1007  fail("<empty>", join_items(value), message, stack_frame);
1008  }
1010 
1021  template<typename value_t>
1022  static void is_not_empty(const value_t& value) {is_not_empty(value, "", xtd::diagnostics::stack_frame::empty());}
1034  template<typename value_t>
1035  static void is_not_empty(const value_t& value, const xtd::diagnostics::stack_frame& stack_frame) {is_not_empty(value, "", stack_frame);}
1047  template<typename value_t>
1048  static void is_not_empty(const value_t& value, const std::string& message) {is_not_empty(value, message, xtd::diagnostics::stack_frame::empty());}
1061  template<typename value_t>
1062  static void is_not_empty(const value_t& value, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
1063  if (!std::empty(value))
1064  assert::succeed(message, stack_frame);
1065  else
1066  fail("not <empty>", "<empty>", message, stack_frame);
1067  }
1068 
1070  template<typename value_t>
1071  static void is_not_empty(const std::initializer_list<value_t>& value) {is_not_empty(value, "", xtd::diagnostics::stack_frame::empty());}
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>
1075  static void is_not_empty(const std::initializer_list<value_t>& value, const std::string& message) {is_not_empty(value, message, xtd::diagnostics::stack_frame::empty());}
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);
1080  else
1081  fail("not <empty>", "<empty>", message, stack_frame);
1082  }
1084 
1095  template<typename value_t>
1096  static void is_ordered(const value_t& value) {is_ordered(value, "", xtd::diagnostics::stack_frame::empty());}
1108  template<typename value_t>
1109  static void is_ordered(const value_t& value, const xtd::diagnostics::stack_frame& stack_frame) {is_ordered(value, "", stack_frame);}
1121  template<typename value_t>
1122  static void is_ordered(const value_t& value, const std::string& message) {is_ordered(value, message, xtd::diagnostics::stack_frame::empty());}
1135  template<typename value_t>
1136  static void is_ordered(const value_t& value, const std::string& message, const xtd::diagnostics::stack_frame& stack_frame) {
1137  if (std::is_sorted(value.begin(), value.end()))
1138  assert::succeed(message, stack_frame);
1139  else
1140  fail("<ordered>", join_items(value), message, stack_frame);
1141  }
1142 
1144  template<typename value_t>
1145  static void is_ordered(const std::initializer_list<value_t>& value) {is_ordered(value, "", xtd::diagnostics::stack_frame::empty());}
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>
1149  static void is_ordered(const std::initializer_list<value_t>& value, const std::string& message) {is_ordered(value, message, xtd::diagnostics::stack_frame::empty());}
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);
1154  else
1155  fail("<ordered>", join_items(value), message, stack_frame);
1156  }
1159  };
1160  }
1161 }
1162 
1179 #define all_items_are_instances_of_(type_t, ...) __CMD_ASSERT_ARGS(all_items_are_instances_of<type_t>, __VA_ARGS__)
1180 
1199 #define all_items_are_not_null_(...) __CMD_ASSERT_ARGS(all_items_are_not_null, __VA_ARGS__)
1200 
1218 #define all_items_are_unique_(...) __CMD_ASSERT_ARGS(all_items_are_unique, __VA_ARGS__)
1219 
1236 #define are_equivalent_(...) __CMD_ASSERT_ARGS(are_equivalent, __VA_ARGS__)
1237 
1254 #define are_not_equivalent_(...) __CMD_ASSERT_ARGS(are_not_equivalent, __VA_ARGS__)
1255 
1273 #define is_ordered_(...) __CMD_ASSERT_ARGS(is_ordered, __VA_ARGS__)
static void are_equivalent(const expected_t &expected, const actual_t &actual)
Asserts that all collection items are equivalent.
Definition: collection_assert.h:393
The base class for assert.
Definition: base_assert.h:29
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 is_ordered(const value_t &value)
Asserts that collection is ordered.
Definition: collection_assert.h:1096
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 succeed()
Generates a success with a generic message. This is used by the other assert functions.
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 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 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 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 are_not_equal(const expected_t &expected, const actual_t &actual)
Asserts that all collection items are not equal.
Definition: collection_assert.h:509
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
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 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 contains(const expected_t &expected, const actual_t &actual)
Asserts that collection contains all items.
Definition: collection_assert.h:725
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 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 is_empty(const value_t &value)
Asserts that collection contains an item.
Definition: collection_assert.h:948
static void is_ordered(const value_t &value, const std::string &message)
Asserts that collection is ordered.
Definition: collection_assert.h:1122
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 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, const xtd::diagnostics::stack_frame &stack_frame)
Asserts that all collection items are not equivalent.
Definition: collection_assert.h:635
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 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_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 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 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 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 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 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_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 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 is_empty(const value_t &value, const std::string &message)
Asserts that collection contains an item.
Definition: collection_assert.h:974
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
Provides information about a xtd::diagnostics::stack_frame, which represents a function call on the c...
Definition: stack_frame.h:37
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 stack_frame empty() noexcept
Return an empty stack frame.
Contains xtd::tunit::assert class.
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
The collection_assert class contains a collection of static methods that implement the most collectio...
Definition: collection_assert.h:23
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 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 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 all_items_are_unique(const collection_t &collection)
Asserts that all collection items are unique.
Definition: collection_assert.h:209
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_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 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 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 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 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 does_not_contain(const expected_t &expected, const actual_t &actual)
Asserts that collection contains all items.
Definition: collection_assert.h:837
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 is_not_empty(const value_t &value)
Asserts that collection does not contain any item.
Definition: collection_assert.h:1022
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