blob: e3a12a3c89622c6a1b9263151431af7aec21c8dc [file] [log] [blame]
/* Boost test/cmp.cpp
* test standard comparison functions
*
* Copyright 2002-2003 Guillaume Melquiond
*
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or
* copy at http://www.boost.org/LICENSE_1_0.txt)
*/
#include "cmp_header.hpp"
// comparisons between [1,2] and [3,4]
static void test_12_34() {
const I a(1,2), b(3,4);
BOOST_CHECK(a < b);
BOOST_CHECK(a <= b);
BOOST_CHECK(!(a > b));
BOOST_CHECK(!(a >= b));
BOOST_CHECK(b > a);
BOOST_CHECK(b >= a);
BOOST_CHECK(!(b < a));
BOOST_CHECK(!(b <= a));
BOOST_CHECK(!(a == b));
BOOST_CHECK(a != b);
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,3] and [2,4]
static void test_13_24() {
const I a(1,3), b(2,4);
BOOST_C_EXN(a < b);
BOOST_C_EXN(a <= b);
BOOST_C_EXN(a > b);
BOOST_C_EXN(a >= b);
BOOST_C_EXN(b < a);
BOOST_C_EXN(b <= a);
BOOST_C_EXN(b > a);
BOOST_C_EXN(b >= a);
BOOST_C_EXN(a == b);
BOOST_C_EXN(a != b);
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,2] and [2,3]
static void test_12_23() {
const I a(1,2), b(2,3);
BOOST_C_EXN(a < b);
BOOST_CHECK(a <= b);
BOOST_CHECK(!(a > b));
BOOST_C_EXN(a >= b);
BOOST_CHECK(!(b < a));
BOOST_C_EXN(b <= a);
BOOST_C_EXN(b > a);
BOOST_CHECK(b >= a);
BOOST_C_EXN(a == b);
BOOST_C_EXN(a != b);
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,2] and 0
static void test_12_0() {
const I a(1,2);
const int b = 0;
BOOST_CHECK(!(a < b));
BOOST_CHECK(!(a <= b));
BOOST_CHECK(a > b);
BOOST_CHECK(a >= b);
BOOST_CHECK(!(a == b));
BOOST_CHECK(a != b);
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,2] and 1
static void test_12_1() {
const I a(1,2);
const int b = 1;
BOOST_CHECK(!(a < b));
BOOST_C_EXN(a <= b);
BOOST_C_EXN(a > b);
BOOST_CHECK(a >= b);
BOOST_C_EXN(a == b);
BOOST_C_EXN(a != b);
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,2] and 2
static void test_12_2() {
const I a(1,2);
const int b = 2;
BOOST_C_EXN(a < b);
BOOST_CHECK(a <= b);
BOOST_CHECK(!(a > b));
BOOST_C_EXN(a >= b);
BOOST_C_EXN(a == b);
BOOST_C_EXN(a != b);
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,2] and 3
static void test_12_3() {
const I a(1,2);
const int b = 3;
BOOST_CHECK(a < b);
BOOST_CHECK(a <= b);
BOOST_CHECK(!(a > b));
BOOST_CHECK(!(a >= b));
BOOST_CHECK(!(a == b));
BOOST_CHECK(a != b);
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,2] and [1,2]
static void test_12_12() {
const I a(1,2), b(1,2);
BOOST_C_EXN(a == b);
BOOST_C_EXN(a != b);
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,1] and [1,1]
static void test_11_11() {
const I a(1,1), b(1,1);
BOOST_CHECK(a == b);
BOOST_CHECK(!(a != b));
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
// comparisons between [1,1] and 1
static void test_11_1() {
const I a(1,1);
const int b = 1;
BOOST_CHECK(a == b);
BOOST_CHECK(!(a != b));
# ifdef __BORLANDC__
::detail::ignore_unused_variable_warning(a);
::detail::ignore_unused_variable_warning(b);
# endif
}
int test_main(int, char *[]) {
test_12_34();
test_13_24();
test_12_23();
test_12_0();
test_12_1();
test_12_2();
test_12_3();
test_12_12();
test_11_11();
test_11_1();
return 0;
}