cmp_lex.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. /* Boost test/cmp_lex.cpp
  2. * test compare::lexicographic
  3. *
  4. * Copyright 2002-2003 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::lexicographic;
  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,2] and [2,3]
  49. static void test_12_23() {
  50. const I a(1,2), 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 0
  67. static void test_12_0() {
  68. const I a(1,2);
  69. const int b = 0;
  70. BOOST_CHECK(!(a < b));
  71. BOOST_CHECK(!(a <= b));
  72. BOOST_CHECK(a > b);
  73. BOOST_CHECK(a >= b);
  74. BOOST_CHECK(!(a == b));
  75. BOOST_CHECK(a != b);
  76. # ifdef __BORLANDC__
  77. ::detail::ignore_unused_variable_warning(a);
  78. ::detail::ignore_unused_variable_warning(b);
  79. # endif
  80. }
  81. // comparisons between [1,2] and 1
  82. static void test_12_1() {
  83. const I a(1,2);
  84. const int b = 1;
  85. BOOST_CHECK(!(a < b));
  86. BOOST_CHECK(!(a <= b));
  87. BOOST_CHECK(a > b);
  88. BOOST_CHECK(a >= b);
  89. BOOST_CHECK(!(a == b));
  90. BOOST_CHECK(a != b);
  91. # ifdef __BORLANDC__
  92. ::detail::ignore_unused_variable_warning(a);
  93. ::detail::ignore_unused_variable_warning(b);
  94. # endif
  95. }
  96. // comparisons between [1,2] and 2
  97. static void test_12_2() {
  98. const I a(1,2);
  99. const int b = 2;
  100. BOOST_CHECK(a < b);
  101. BOOST_CHECK(a <= b);
  102. BOOST_CHECK(!(a > b));
  103. BOOST_CHECK(!(a >= b));
  104. BOOST_CHECK(!(a == b));
  105. BOOST_CHECK(a != b);
  106. # ifdef __BORLANDC__
  107. ::detail::ignore_unused_variable_warning(a);
  108. ::detail::ignore_unused_variable_warning(b);
  109. # endif
  110. }
  111. // comparisons between [1,2] and 3
  112. static void test_12_3() {
  113. const I a(1,2);
  114. const int b = 3;
  115. BOOST_CHECK(a < b);
  116. BOOST_CHECK(a <= b);
  117. BOOST_CHECK(!(a > b));
  118. BOOST_CHECK(!(a >= b));
  119. BOOST_CHECK(!(a == b));
  120. BOOST_CHECK(a != b);
  121. # ifdef __BORLANDC__
  122. ::detail::ignore_unused_variable_warning(a);
  123. ::detail::ignore_unused_variable_warning(b);
  124. # endif
  125. }
  126. static void test_12_12() {
  127. const I a(1,2), b(1,2);
  128. BOOST_CHECK(a == b);
  129. BOOST_CHECK(!(a != b));
  130. # ifdef __BORLANDC__
  131. ::detail::ignore_unused_variable_warning(a);
  132. ::detail::ignore_unused_variable_warning(b);
  133. # endif
  134. }
  135. static void test_11_11() {
  136. const I a(1,1), b(1,1);
  137. BOOST_CHECK(a == b);
  138. BOOST_CHECK(!(a != b));
  139. # ifdef __BORLANDC__
  140. ::detail::ignore_unused_variable_warning(a);
  141. ::detail::ignore_unused_variable_warning(b);
  142. # endif
  143. }
  144. static void test_11_1() {
  145. const I a(1,1);
  146. const int b = 1;
  147. BOOST_CHECK(a == b);
  148. BOOST_CHECK(!(a != b));
  149. # ifdef __BORLANDC__
  150. ::detail::ignore_unused_variable_warning(a);
  151. ::detail::ignore_unused_variable_warning(b);
  152. # endif
  153. }
  154. int test_main(int, char *[]) {
  155. test_12_34();
  156. test_13_24();
  157. test_12_23();
  158. test_12_0();
  159. test_12_1();
  160. test_12_2();
  161. test_12_3();
  162. test_12_12();
  163. test_11_11();
  164. test_11_1();
  165. return 0;
  166. }