mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			367 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			367 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/* Boost test/cmp_exp.cpp
 | 
						|
 * test explicit 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(cerlt(a, b));
 | 
						|
  BOOST_CHECK(cerle(a, b));
 | 
						|
  BOOST_CHECK(!cergt(a, b));
 | 
						|
  BOOST_CHECK(!cerge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cerlt(b, a));
 | 
						|
  BOOST_CHECK(!cerle(b, a));
 | 
						|
  BOOST_CHECK(cergt(b, a));
 | 
						|
  BOOST_CHECK(cerge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(poslt(a, b));
 | 
						|
  BOOST_CHECK(posle(a, b));
 | 
						|
  BOOST_CHECK(!posgt(a, b));
 | 
						|
  BOOST_CHECK(!posge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!poslt(b, a));
 | 
						|
  BOOST_CHECK(!posle(b, a));
 | 
						|
  BOOST_CHECK(posgt(b, a));
 | 
						|
  BOOST_CHECK(posge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(a, b));
 | 
						|
  BOOST_CHECK(cerne(a, b));
 | 
						|
  BOOST_CHECK(!poseq(a, b));
 | 
						|
  BOOST_CHECK(posne(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(b, a));
 | 
						|
  BOOST_CHECK(cerne(b, a));
 | 
						|
  BOOST_CHECK(!poseq(b, a));
 | 
						|
  BOOST_CHECK(posne(b, a));
 | 
						|
 | 
						|
# 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_CHECK(!cerlt(a, b));
 | 
						|
  BOOST_CHECK(!cerle(a, b));
 | 
						|
  BOOST_CHECK(!cergt(a, b));
 | 
						|
  BOOST_CHECK(!cerge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cerlt(b, a));
 | 
						|
  BOOST_CHECK(!cerle(b, a));
 | 
						|
  BOOST_CHECK(!cergt(b, a));
 | 
						|
  BOOST_CHECK(!cerge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(poslt(a, b));
 | 
						|
  BOOST_CHECK(posle(a, b));
 | 
						|
  BOOST_CHECK(posgt(a, b));
 | 
						|
  BOOST_CHECK(posge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(poslt(b, a));
 | 
						|
  BOOST_CHECK(posle(b, a));
 | 
						|
  BOOST_CHECK(posgt(b, a));
 | 
						|
  BOOST_CHECK(posge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(a, b));
 | 
						|
  BOOST_CHECK(!cerne(a, b));
 | 
						|
  BOOST_CHECK(poseq(a, b));
 | 
						|
  BOOST_CHECK(posne(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(b, a));
 | 
						|
  BOOST_CHECK(!cerne(b, a));
 | 
						|
  BOOST_CHECK(poseq(b, a));
 | 
						|
  BOOST_CHECK(posne(b, a));
 | 
						|
 | 
						|
# 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_CHECK(!cerlt(a, b));
 | 
						|
  BOOST_CHECK(cerle(a, b));
 | 
						|
  BOOST_CHECK(!cergt(a, b));
 | 
						|
  BOOST_CHECK(!cerge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cerlt(b, a));
 | 
						|
  BOOST_CHECK(!cerle(b, a));
 | 
						|
  BOOST_CHECK(!cergt(b, a));
 | 
						|
  BOOST_CHECK(cerge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(poslt(a, b));
 | 
						|
  BOOST_CHECK(posle(a, b));
 | 
						|
  BOOST_CHECK(!posgt(a, b));
 | 
						|
  BOOST_CHECK(posge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!poslt(b, a));
 | 
						|
  BOOST_CHECK(posle(b, a));
 | 
						|
  BOOST_CHECK(posgt(b, a));
 | 
						|
  BOOST_CHECK(posge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(a, b));
 | 
						|
  BOOST_CHECK(!cerne(a, b));
 | 
						|
  BOOST_CHECK(poseq(a, b));
 | 
						|
  BOOST_CHECK(posne(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(b, a));
 | 
						|
  BOOST_CHECK(!cerne(b, a));
 | 
						|
  BOOST_CHECK(poseq(b, a));
 | 
						|
  BOOST_CHECK(posne(b, a));
 | 
						|
 | 
						|
# 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(!cerlt(a, b));
 | 
						|
  BOOST_CHECK(!cerle(a, b));
 | 
						|
  BOOST_CHECK(cergt(a, b));
 | 
						|
  BOOST_CHECK(cerge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(cerlt(b, a));
 | 
						|
  BOOST_CHECK(cerle(b, a));
 | 
						|
  BOOST_CHECK(!cergt(b, a));
 | 
						|
  BOOST_CHECK(!cerge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!poslt(a, b));
 | 
						|
  BOOST_CHECK(!posle(a, b));
 | 
						|
  BOOST_CHECK(posgt(a, b));
 | 
						|
  BOOST_CHECK(posge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(poslt(b, a));
 | 
						|
  BOOST_CHECK(posle(b, a));
 | 
						|
  BOOST_CHECK(!posgt(b, a));
 | 
						|
  BOOST_CHECK(!posge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(a, b));
 | 
						|
  BOOST_CHECK(cerne(a, b));
 | 
						|
  BOOST_CHECK(!poseq(a, b));
 | 
						|
  BOOST_CHECK(posne(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(b, a));
 | 
						|
  BOOST_CHECK(cerne(b, a));
 | 
						|
  BOOST_CHECK(!poseq(b, a));
 | 
						|
  BOOST_CHECK(posne(b, a));
 | 
						|
 | 
						|
# 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(!cerlt(a, b));
 | 
						|
  BOOST_CHECK(!cerle(a, b));
 | 
						|
  BOOST_CHECK(!cergt(a, b));
 | 
						|
  BOOST_CHECK(cerge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cerlt(b, a));
 | 
						|
  BOOST_CHECK(cerle(b, a));
 | 
						|
  BOOST_CHECK(!cergt(b, a));
 | 
						|
  BOOST_CHECK(!cerge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!poslt(a, b));
 | 
						|
  BOOST_CHECK(posle(a, b));
 | 
						|
  BOOST_CHECK(posgt(a, b));
 | 
						|
  BOOST_CHECK(posge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(poslt(b, a));
 | 
						|
  BOOST_CHECK(posle(b, a));
 | 
						|
  BOOST_CHECK(!posgt(b, a));
 | 
						|
  BOOST_CHECK(posge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(a, b));
 | 
						|
  BOOST_CHECK(!cerne(a, b));
 | 
						|
  BOOST_CHECK(poseq(a, b));
 | 
						|
  BOOST_CHECK(posne(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(b, a));
 | 
						|
  BOOST_CHECK(!cerne(b, a));
 | 
						|
  BOOST_CHECK(poseq(b, a));
 | 
						|
  BOOST_CHECK(posne(b, a));
 | 
						|
 | 
						|
# 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_CHECK(!cerlt(a, b));
 | 
						|
  BOOST_CHECK(cerle(a, b));
 | 
						|
  BOOST_CHECK(!cergt(a, b));
 | 
						|
  BOOST_CHECK(!cerge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cerlt(b, a));
 | 
						|
  BOOST_CHECK(!cerle(b, a));
 | 
						|
  BOOST_CHECK(!cergt(b, a));
 | 
						|
  BOOST_CHECK(cerge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(poslt(a, b));
 | 
						|
  BOOST_CHECK(posle(a, b));
 | 
						|
  BOOST_CHECK(!posgt(a, b));
 | 
						|
  BOOST_CHECK(posge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!poslt(b, a));
 | 
						|
  BOOST_CHECK(posle(b, a));
 | 
						|
  BOOST_CHECK(posgt(b, a));
 | 
						|
  BOOST_CHECK(posge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(a, b));
 | 
						|
  BOOST_CHECK(!cerne(a, b));
 | 
						|
  BOOST_CHECK(poseq(a, b));
 | 
						|
  BOOST_CHECK(posne(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(b, a));
 | 
						|
  BOOST_CHECK(!cerne(b, a));
 | 
						|
  BOOST_CHECK(poseq(b, a));
 | 
						|
  BOOST_CHECK(posne(b, a));
 | 
						|
 | 
						|
# 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(cerlt(a, b));
 | 
						|
  BOOST_CHECK(cerle(a, b));
 | 
						|
  BOOST_CHECK(!cergt(a, b));
 | 
						|
  BOOST_CHECK(!cerge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cerlt(b, a));
 | 
						|
  BOOST_CHECK(!cerle(b, a));
 | 
						|
  BOOST_CHECK(cergt(b, a));
 | 
						|
  BOOST_CHECK(cerge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(poslt(a, b));
 | 
						|
  BOOST_CHECK(posle(a, b));
 | 
						|
  BOOST_CHECK(!posgt(a, b));
 | 
						|
  BOOST_CHECK(!posge(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!poslt(b, a));
 | 
						|
  BOOST_CHECK(!posle(b, a));
 | 
						|
  BOOST_CHECK(posgt(b, a));
 | 
						|
  BOOST_CHECK(posge(b, a));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(a, b));
 | 
						|
  BOOST_CHECK(cerne(a, b));
 | 
						|
  BOOST_CHECK(!poseq(a, b));
 | 
						|
  BOOST_CHECK(posne(a, b));
 | 
						|
 | 
						|
  BOOST_CHECK(!cereq(b, a));
 | 
						|
  BOOST_CHECK(cerne(b, a));
 | 
						|
  BOOST_CHECK(!poseq(b, a));
 | 
						|
  BOOST_CHECK(posne(b, a));
 | 
						|
 | 
						|
# ifdef __BORLANDC__
 | 
						|
  ::detail::ignore_unused_variable_warning(a);
 | 
						|
  ::detail::ignore_unused_variable_warning(b);
 | 
						|
# endif
 | 
						|
}
 | 
						|
 | 
						|
static void test_12_12() {
 | 
						|
  const I a(1,2), b(1,2);
 | 
						|
  BOOST_CHECK(!cereq(a, b));
 | 
						|
  BOOST_CHECK(!cerne(a, b));
 | 
						|
  BOOST_CHECK(poseq(a, b));
 | 
						|
  BOOST_CHECK(posne(a, b));
 | 
						|
  BOOST_CHECK(!cereq(b, a));
 | 
						|
  BOOST_CHECK(!cerne(b, a));
 | 
						|
  BOOST_CHECK(poseq(b, a));
 | 
						|
  BOOST_CHECK(posne(b, a));
 | 
						|
# ifdef __BORLANDC__
 | 
						|
  ::detail::ignore_unused_variable_warning(a);
 | 
						|
  ::detail::ignore_unused_variable_warning(b);
 | 
						|
# endif
 | 
						|
}
 | 
						|
 | 
						|
static void test_11_11() {
 | 
						|
  const I a(1,1), b(1,1);
 | 
						|
  BOOST_CHECK(cereq(a, b));
 | 
						|
  BOOST_CHECK(!cerne(a, b));
 | 
						|
  BOOST_CHECK(poseq(a, b));
 | 
						|
  BOOST_CHECK(!posne(a, b));
 | 
						|
  BOOST_CHECK(cereq(b, a));
 | 
						|
  BOOST_CHECK(!cerne(b, a));
 | 
						|
  BOOST_CHECK(poseq(b, a));
 | 
						|
  BOOST_CHECK(!posne(b, a));
 | 
						|
# ifdef __BORLANDC__
 | 
						|
  ::detail::ignore_unused_variable_warning(a);
 | 
						|
  ::detail::ignore_unused_variable_warning(b);
 | 
						|
# endif
 | 
						|
}
 | 
						|
 | 
						|
static void test_11_1() {
 | 
						|
  const I a(1,1);
 | 
						|
  const int b = 1;
 | 
						|
  BOOST_CHECK(cereq(a, b));
 | 
						|
  BOOST_CHECK(!cerne(a, b));
 | 
						|
  BOOST_CHECK(poseq(a, b));
 | 
						|
  BOOST_CHECK(!posne(a, b));
 | 
						|
  BOOST_CHECK(cereq(b, a));
 | 
						|
  BOOST_CHECK(!cerne(b, a));
 | 
						|
  BOOST_CHECK(poseq(b, a));
 | 
						|
  BOOST_CHECK(!posne(b, a));
 | 
						|
# 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;
 | 
						|
}
 |