2010-11-29 19:40:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Created  by  Phil  on  29 / 11 / 2010. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Copyright  2010  Two  Blue  Cubes  Ltd .  All  rights  reserved . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   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)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-16 18:47:41 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifdef __clang__ 
  
						 
					
						
							
								
									
										
										
										
											2012-08-13 07:46:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# pragma clang diagnostic ignored "-Wpadded" 
  
						 
					
						
							
								
									
										
										
										
											2012-08-16 18:47:41 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2010-11-29 19:40:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-04-26 08:32:40 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "catch.hpp" 
  
						 
					
						
							
								
									
										
										
										
											2012-05-04 07:55:11 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "catch_self_test.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-07 10:22:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  <iostream> 
  
						 
					
						
							
								
									
										
										
										
											2010-11-29 19:40:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-14 08:47:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " ./succeeding/Misc/Sections " ,  " random SECTION tests "  )  
						 
					
						
							
								
									
										
										
										
											2010-11-29 19:40:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int  a  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int  b  =  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SECTION (  " s1 " ,  " doesn't equal "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-14 09:00:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        REQUIRE (  a  ! =  b  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        REQUIRE (  b  ! =  a  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-29 19:40:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-30 06:48:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-29 19:40:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SECTION (  " s2 " ,  " not equal "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-17 20:15:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        REQUIRE (  a  ! =  b ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-29 19:40:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2010-11-30 06:48:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-14 08:47:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " ./succeeding/Misc/Sections/nested " ,  " nested SECTION tests "  )  
						 
					
						
							
								
									
										
										
										
											2010-12-15 19:36:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int  a  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int  b  =  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SECTION (  " s1 " ,  " doesn't equal "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-28 17:21:29 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        REQUIRE (  a  ! =  b  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-15 19:36:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        REQUIRE (  b  ! =  a  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        SECTION (  " s2 " ,  " not equal "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-17 20:15:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            REQUIRE (  a  ! =  b ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-21 18:50:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " ./mixed/Misc/Sections/nested2 " ,  " nested SECTION tests "  )  
						 
					
						
							
								
									
										
										
										
											2011-02-17 20:15:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int  a  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int  b  =  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SECTION (  " s1 " ,  " doesn't equal "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        SECTION (  " s2 " ,  " equal "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-21 08:50:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            REQUIRE (  a  = =  b  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-17 20:15:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        SECTION (  " s3 " ,  " not equal "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-21 08:50:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            REQUIRE (  a  ! =  b  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        SECTION (  " s4 " ,  " less than "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-28 08:18:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            REQUIRE (  a  <  b  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-15 19:36:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-04 07:55:11 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " ./Sections/nested/a/b " ,  " nested SECTION tests "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SECTION (  " c " ,  " "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        SECTION (  " d (leaf) " ,  " "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        SECTION (  " e (leaf) " ,  " "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SECTION (  " f (leaf) " ,  " "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-14 08:47:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " ./mixed/Misc/Sections/loops " ,  " looped SECTION tests "  )  
						 
					
						
							
								
									
										
										
										
											2010-12-28 14:41:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int  a  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    for (  int  b  =  0 ;  b  <  10 ;  + + b  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        std : : ostringstream  oss ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        oss  < <  " b is currently:  "  < <  b ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        SECTION (  " s1 " ,  oss . str ( )  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            CHECK (  b  >  a  ) ;             
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-14 08:47:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " ./mixed/Misc/loops " ,  " looped tests "  )  
						 
					
						
							
								
									
										
										
										
											2010-12-28 14:41:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  const  int  fib [ ]   =  {  1 ,  1 ,  2 ,  3 ,  5 ,  8 ,  13 ,  21  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    for (  size_t  i = 0 ;  i  <  sizeof ( fib ) / sizeof ( int ) ;  + + i  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        INFO (  " Testing if fib[ "  < <  i  < <  " ] ( "  < <  fib [ i ]  < <  " ) is even "  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        CHECK (  (  fib [ i ]  %  2  )  = =  0  ) ;                 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-14 08:47:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " ./succeeding/Misc/stdout,stderr " ,  " Sends stuff to stdout and stderr "  )  
						 
					
						
							
								
									
										
										
										
											2010-11-30 06:48:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-02-22 09:42:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    std : : cout  < <  " Some information "  < <  std : : endl ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-30 06:48:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2012-02-22 09:42:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    std : : cerr  < <  " An error "  < <  std : : endl ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-28 14:41:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2011-02-23 20:02:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-12-27 10:59:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								inline  const  char *  makeString (  bool  makeNull  )  
						 
					
						
							
								
									
										
										
										
											2011-02-23 20:02:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  makeNull  ?  NULL  :  " valid string " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " ./succeeding/Misc/null strings " ,  " "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    REQUIRE (  makeString (  false  )  ! =  static_cast < char * > ( NULL ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    REQUIRE (  makeString (  true  )  = =  static_cast < char * > ( NULL ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2011-03-09 19:45:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " ./failing/info " ,  " sends information to INFO "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    INFO (  " hi "  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int  i  =  7 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CAPTURE (  i  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    REQUIRE (  false  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-02-10 08:30:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								inline  bool  testCheckedIf (  bool  flag  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECKED_IF (  flag  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " ./succeeding/checkedif " ,  " "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    REQUIRE (  testCheckedIf (  true  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " ./failing/checkedif " ,  " "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    REQUIRE (  testCheckedIf (  false  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								inline  bool  testCheckedElse (  bool  flag  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECKED_ELSE (  flag  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " ./succeeding/checkedelse " ,  " "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    REQUIRE (  testCheckedElse (  true  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " ./failing/checkedelse " ,  " "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    REQUIRE (  testCheckedElse (  false  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-02-10 18:58:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " ./misc/xmlentitycheck " ,  " "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SECTION (  " embedded xml " ,  " <test>it should be possible to embed xml characters, such as <,  \"  or &, or even whole <xml>documents</xml> within an attribute</test> "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // No test
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SECTION (  " encoded chars " ,  " these should all be encoded: &&& \" \" \" <<<& \" <<& \" "  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // No test
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-02-28 20:04:25 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " ./manual/onechar " ,  " send a single char to INFO "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    INFO ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    REQUIRE ( false ) ;     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-02-29 08:39:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE ( " ./succeeding/atomic if " ,  " " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    size_t  x  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if (  x  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        REQUIRE ( x  >  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        REQUIRE ( x  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-03-04 11:14:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-03-04 20:10:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								inline  const  char *  testStringForMatching ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  " this string contains 'abc' as a substring " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE ( " ./succeeding/matchers " ,  " " )   
						 
					
						
							
								
									
										
										
										
											2012-03-17 18:20:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-03-04 20:10:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    REQUIRE_THAT (  testStringForMatching ( ) ,  Contains (  " string "  )  ) ;     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  Contains (  " abc "  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  StartsWith (  " this "  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  EndsWith (  " substring "  )  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-04 11:14:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-03-04 20:10:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE ( " ./failing/matchers/Contains " ,  " " )   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  Contains (  " not there "  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-03-04 11:14:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-03-04 20:10:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE ( " ./failing/matchers/StartsWith " ,  " " )   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  StartsWith (  " string "  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-03-04 11:14:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-03-04 20:10:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE ( " ./failing/matchers/EndsWith " ,  " " )   
						 
					
						
							
								
									
										
										
										
											2012-03-04 11:14:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-03-04 20:10:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  EndsWith (  " this "  )  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-04 11:14:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-05-24 08:29:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE ( " ./failing/matchers/Equals " ,  " " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  Equals (  " something else "  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-12-14 18:17:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								//TEST_CASE("string", "Equals with NULL")
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//{
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//    REQUIRE_THAT("", Equals(NULL));
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//}
  
						 
					
						
							
								
									
										
										
										
											2013-02-19 18:45:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE ( " ./succeeding/matchers/AllOf " ,  " " )  
						 
					
						
							
								
									
										
										
										
											2012-10-12 07:58:17 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  AllOf (  Catch : : Contains (  " string "  ) ,  Catch : : Contains (  " abc "  )  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2013-02-19 18:45:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE ( " ./succeeding/matchers/AnyOf " ,  " " )  
						 
					
						
							
								
									
										
										
										
											2012-10-12 07:58:17 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  AnyOf (  Catch : : Contains (  " string "  ) ,  Catch : : Contains (  " not there "  )  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  AnyOf (  Catch : : Contains (  " not there "  ) ,  Catch : : Contains (  " string "  )  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-24 08:29:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE ( " ./succeeding/matchers/Equals " ,  " " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CHECK_THAT (  testStringForMatching ( ) ,  Equals (  " this string contains 'abc' as a substring "  )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-05-31 19:40:26 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								inline  unsigned  int  Factorial (  unsigned  int  number  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  return number <= 1 ? number : Factorial(number-1)*number;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  number  >  1  ?  Factorial ( number - 1 ) * number  :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " example/factorial " ,  " The Factorial function should return the factorial of the number passed in "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  REQUIRE (  Factorial ( 0 )  = =  1  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  REQUIRE (  Factorial ( 1 )  = =  1  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  REQUIRE (  Factorial ( 2 )  = =  2  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  REQUIRE (  Factorial ( 3 )  = =  6  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  REQUIRE (  Factorial ( 10 )  = =  3628800  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-08-31 08:10:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " empty " ,  " An empty test with no assertions "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-09-15 17:53:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-09-26 18:38:26 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " Nice descriptive name " ,  " [tag1][tag2][tag3][hide] "  )  
						 
					
						
							
								
									
										
										
										
											2012-09-15 17:53:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    WARN (  " This one ran "  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-09-26 18:38:26 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TEST_CASE (  " first tag " ,  " [tag1] "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								TEST_CASE (  " second tag " ,  " [tag2] "  )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-10-04 08:19:09 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								//
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//TEST_CASE( "spawn a new process", "[hide]" )
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//{
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//    // !TBD Work in progress
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//    char line[200];
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//    FILE* output = popen("./CatchSelfTest ./failing/matchers/StartsWith", "r");
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//    while ( fgets(line, 199, output) )
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//        std::cout << line;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//}