| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | //  Boost static_min_max.hpp test program  -----------------------------------//
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-07-30 04:46:56 +00:00
										 |  |  | //  (C) Copyright Daryle Walker 2001.
 | 
					
						
							|  |  |  | //  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)
 | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | //  See http://www.boost.org for most recent version including documentation.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //  Revision History
 | 
					
						
							|  |  |  | //  23 Sep 2001  Initial version (Daryle Walker)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  | #include <boost/detail/lightweight_test.hpp>  // for main, BOOST_TEST
 | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <boost/cstdlib.hpp>                 // for boost::exit_success
 | 
					
						
							|  |  |  | #include <boost/integer/static_min_max.hpp>  // for boost::static_signed_min, etc.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <iostream>  // for std::cout (std::endl indirectly)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Main testing function
 | 
					
						
							|  |  |  | int | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  | main | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | ( | 
					
						
							|  |  |  |     int         ,   // "argc" is unused
 | 
					
						
							|  |  |  |     char *      []  // "argv" is unused
 | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | {     | 
					
						
							|  |  |  |     using std::cout; | 
					
						
							|  |  |  |     using std::endl; | 
					
						
							|  |  |  |     using boost::static_signed_min; | 
					
						
							|  |  |  |     using boost::static_signed_max; | 
					
						
							|  |  |  |     using boost::static_unsigned_min; | 
					
						
							|  |  |  |     using boost::static_unsigned_max; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Two positives
 | 
					
						
							|  |  |  |     cout << "Doing tests with two positive values." << endl; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_signed_min< 9, 14>::value) ==  9 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max< 9, 14>::value) == 14 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_min<14,  9>::value) ==  9 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max<14,  9>::value) == 14 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_unsigned_min< 9, 14>::value) ==  9 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_max< 9, 14>::value) == 14 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_min<14,  9>::value) ==  9 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_max<14,  9>::value) == 14 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // Two negatives
 | 
					
						
							|  |  |  |     cout << "Doing tests with two negative values." << endl; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_signed_min<  -8, -101>::value) == -101 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max<  -8, -101>::value) ==   -8 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_min<-101,   -8>::value) == -101 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max<-101,   -8>::value) ==   -8 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // With zero
 | 
					
						
							|  |  |  |     cout << "Doing tests with zero and a positive or negative value." << endl; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_signed_min< 0, 14>::value) ==  0 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max< 0, 14>::value) == 14 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_min<14,  0>::value) ==  0 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max<14,  0>::value) == 14 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_unsigned_min< 0, 14>::value) ==  0 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_max< 0, 14>::value) == 14 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_min<14,  0>::value) ==  0 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_max<14,  0>::value) == 14 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_signed_min<   0, -101>::value) == -101 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max<   0, -101>::value) ==    0 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_min<-101,    0>::value) == -101 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max<-101,    0>::value) ==    0 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // With identical
 | 
					
						
							|  |  |  |     cout << "Doing tests with two identical values." << endl; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_signed_min<0, 0>::value) == 0 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max<0, 0>::value) == 0 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_min<0, 0>::value) == 0 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_max<0, 0>::value) == 0 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_signed_min<14, 14>::value) == 14 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max<14, 14>::value) == 14 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_min<14, 14>::value) == 14 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_unsigned_max<14, 14>::value) == 14 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 12:59:39 +00:00
										 |  |  |     BOOST_TEST( (static_signed_min< -101, -101>::value) == -101 ); | 
					
						
							|  |  |  |     BOOST_TEST( (static_signed_max< -101, -101>::value) == -101 ); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 13:35:03 +00:00
										 |  |  |     return boost::report_errors(); | 
					
						
							| 
									
										
										
										
											2001-12-07 13:19:38 +00:00
										 |  |  | } |