cmp_set.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. /* Boost test/cmp_set.cpp
  2. * test compare::set
  3. *
  4. * Copyright 2004 Guillaume Melquiond
  5. *
  6. * Distributed under the Boost Software License, Version 1.0.
  7. * (See accompanying file LICENSE_1_0.txt or
  8. * copy at http://www.boost.org/LICENSE_1_0.txt)
  9. */
  10. #include "cmp_header.hpp"
  11. using namespace boost::numeric::interval_lib::compare::set;
  12. // comparisons between [1,2] and [3,4]
  13. static void test_12_34() {
  14. const I a(1,2), b(3,4);
  15. BOOST_CHECK(!(a < b));
  16. BOOST_CHECK(!(a <= b));
  17. BOOST_CHECK(!(a > b));
  18. BOOST_CHECK(!(a >= b));
  19. BOOST_CHECK(!(b > a));
  20. BOOST_CHECK(!(b >= a));
  21. BOOST_CHECK(!(b < a));
  22. BOOST_CHECK(!(b <= a));
  23. BOOST_CHECK(!(a == b));
  24. BOOST_CHECK(a != b);
  25. # ifdef __BORLANDC__
  26. ::detail::ignore_unused_variable_warning(a);
  27. ::detail::ignore_unused_variable_warning(b);
  28. # endif
  29. }
  30. // comparisons between [1,3] and [2,4]
  31. static void test_13_24() {
  32. const I a(1,3), b(2,4);
  33. BOOST_CHECK(!(a < b));
  34. BOOST_CHECK(!(a <= b));
  35. BOOST_CHECK(!(a > b));
  36. BOOST_CHECK(!(a >= b));
  37. BOOST_CHECK(!(b < a));
  38. BOOST_CHECK(!(b <= a));
  39. BOOST_CHECK(!(b > a));
  40. BOOST_CHECK(!(b >= a));
  41. BOOST_CHECK(!(a == b));
  42. BOOST_CHECK(a != b);
  43. # ifdef __BORLANDC__
  44. ::detail::ignore_unused_variable_warning(a);
  45. ::detail::ignore_unused_variable_warning(b);
  46. # endif
  47. }
  48. // comparisons between [1,4] and [2,3]
  49. static void test_14_23() {
  50. const I a(1,4), b(2,3);
  51. BOOST_CHECK(!(a < b));
  52. BOOST_CHECK(!(a <= b));
  53. BOOST_CHECK(a > b);
  54. BOOST_CHECK(a >= b);
  55. BOOST_CHECK(b < a);
  56. BOOST_CHECK(b <= a);
  57. BOOST_CHECK(!(b > a));
  58. BOOST_CHECK(!(b >= a));
  59. BOOST_CHECK(!(a == b));
  60. BOOST_CHECK(a != b);
  61. # ifdef __BORLANDC__
  62. ::detail::ignore_unused_variable_warning(a);
  63. ::detail::ignore_unused_variable_warning(b);
  64. # endif
  65. }
  66. // comparisons between [1,2] and [2,3]
  67. static void test_12_23() {
  68. const I a(1,2), b(2,3);
  69. BOOST_CHECK(!(a < b));
  70. BOOST_CHECK(!(a <= b));
  71. BOOST_CHECK(!(a > b));
  72. BOOST_CHECK(!(a >= b));
  73. BOOST_CHECK(!(b < a));
  74. BOOST_CHECK(!(b <= a));
  75. BOOST_CHECK(!(b > a));
  76. BOOST_CHECK(!(b >= a));
  77. BOOST_CHECK(!(a == b));
  78. BOOST_CHECK(a != b);
  79. # ifdef __BORLANDC__
  80. ::detail::ignore_unused_variable_warning(a);
  81. ::detail::ignore_unused_variable_warning(b);
  82. # endif
  83. }
  84. // comparisons between [1,2] and empty set
  85. static void test_12_E() {
  86. I a(1, 2), b(I::empty());
  87. BOOST_CHECK(!(a < b));
  88. BOOST_CHECK(!(a <= b));
  89. BOOST_CHECK(a > b);
  90. BOOST_CHECK(a >= b);
  91. BOOST_CHECK(b < a);
  92. BOOST_CHECK(b <= a);
  93. BOOST_CHECK(!(b > a));
  94. BOOST_CHECK(!(b >= a));
  95. BOOST_CHECK(!(a == b));
  96. BOOST_CHECK(a != b);
  97. # ifdef __BORLANDC__
  98. ::detail::ignore_unused_variable_warning(a);
  99. ::detail::ignore_unused_variable_warning(b);
  100. # endif
  101. }
  102. // comparisons between two empty sets
  103. static void test_E_E() {
  104. I a(I::empty()), b(I::empty());
  105. BOOST_CHECK(!(a < b));
  106. BOOST_CHECK(a <= b);
  107. BOOST_CHECK(!(a > b));
  108. BOOST_CHECK(a >= b);
  109. BOOST_CHECK(!(b < a));
  110. BOOST_CHECK(b <= a);
  111. BOOST_CHECK(!(b > a));
  112. BOOST_CHECK(b >= a);
  113. BOOST_CHECK(a == b);
  114. BOOST_CHECK(!(a != b));
  115. # ifdef __BORLANDC__
  116. ::detail::ignore_unused_variable_warning(a);
  117. ::detail::ignore_unused_variable_warning(b);
  118. # endif
  119. }
  120. // comparisons between [1,2] and [1,2]
  121. static void test_12_12() {
  122. const I a(1,2), b(1,2);
  123. BOOST_CHECK(!(a < b));
  124. BOOST_CHECK(a <= b);
  125. BOOST_CHECK(!(a > b));
  126. BOOST_CHECK(a >= b);
  127. BOOST_CHECK(!(b < a));
  128. BOOST_CHECK(b <= a);
  129. BOOST_CHECK(!(b > a));
  130. BOOST_CHECK(b >= a);
  131. BOOST_CHECK(a == b);
  132. BOOST_CHECK(!(a != b));
  133. # ifdef __BORLANDC__
  134. ::detail::ignore_unused_variable_warning(a);
  135. ::detail::ignore_unused_variable_warning(b);
  136. # endif
  137. }
  138. // comparisons between [1,1] and [1,1]
  139. static void test_11_11() {
  140. const I a(1,1), b(1,1);
  141. BOOST_CHECK(!(a < b));
  142. BOOST_CHECK(a <= b);
  143. BOOST_CHECK(!(a > b));
  144. BOOST_CHECK(a >= b);
  145. BOOST_CHECK(!(b < a));
  146. BOOST_CHECK(b <= a);
  147. BOOST_CHECK(!(b > a));
  148. BOOST_CHECK(b >= a);
  149. BOOST_CHECK(a == b);
  150. BOOST_CHECK(!(a != b));
  151. # ifdef __BORLANDC__
  152. ::detail::ignore_unused_variable_warning(a);
  153. ::detail::ignore_unused_variable_warning(b);
  154. # endif
  155. }
  156. int test_main(int, char *[]) {
  157. test_12_34();
  158. test_13_24();
  159. test_14_23();
  160. test_12_23();
  161. test_12_E();
  162. test_E_E();
  163. test_12_12();
  164. test_11_11();
  165. return 0;
  166. }