mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04: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; | ||
|  | } |