| 
									
										
										
										
											2017-08-25 18:34:26 -04:00
										 |  |  | ! Copyright (C) 2011 Joe Groff. | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2011-09-19 19:41:41 -04:00
										 |  |  | USING: accessors fry kernel macros math namespaces sequences | 
					
						
							|  |  |  | source-files.errors tools.test tools.test.fuzz | 
					
						
							| 
									
										
										
										
											2011-10-10 21:03:52 -04:00
										 |  |  | tools.test.fuzz.private tools.test.private ;
 | 
					
						
							| 
									
										
										
										
											2011-09-19 19:41:41 -04:00
										 |  |  | IN: tools.test.fuzz.tests | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SYMBOL: generator-stack | 
					
						
							|  |  |  | : with-generator-stack ( seq quot -- )
 | 
					
						
							|  |  |  |     [ reverse V{ } like generator-stack ] dip with-variable ; inline
 | 
					
						
							|  |  |  | : generate-from-stack ( -- n )
 | 
					
						
							|  |  |  |     generator-stack get pop ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 6 fuzz-test-trials [ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     [ { } ] [ | 
					
						
							|  |  |  |         { -4 -2 0 2 4 6 } [ | 
					
						
							|  |  |  |             [ generate-from-stack ] [ even? ] fuzz-test-failures | 
					
						
							|  |  |  |         ] with-generator-stack | 
					
						
							|  |  |  |     ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     [ { { -1 } { 1 } { 5 } } ] [ | 
					
						
							|  |  |  |         { -4 -1 1 2 5 6 } [ | 
					
						
							|  |  |  |             [ generate-from-stack ] [ even? ] fuzz-test-failures | 
					
						
							|  |  |  |         ] with-generator-stack | 
					
						
							|  |  |  |     ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     { -4 -2 0 2 4 6 } [ | 
					
						
							|  |  |  |         [ generate-from-stack ] [ even? ] fuzz-test | 
					
						
							|  |  |  |     ] with-generator-stack | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         1
 | 
					
						
							|  |  |  |         T{ fuzz-test-failure | 
					
						
							|  |  |  |             { failures { { -1 } { 1 } { 5 } } } | 
					
						
							|  |  |  |             { predicate [ even? ] } | 
					
						
							|  |  |  |             { trials 6 } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } [ | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             { -4 -2 0 2 4 6 } [ | 
					
						
							|  |  |  |                 [ generate-from-stack ] [ even? ] fuzz-test | 
					
						
							|  |  |  |             ] with-generator-stack | 
					
						
							|  |  |  |             { -4 -1 1 2 5 6 } [ | 
					
						
							|  |  |  |                 [ generate-from-stack ] [ even? ] fuzz-test | 
					
						
							|  |  |  |             ] with-generator-stack | 
					
						
							|  |  |  |         ] fake-unit-test | 
					
						
							|  |  |  |         [ length ] [ first error>> ] bi
 | 
					
						
							|  |  |  |     ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ] with-variable
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | notify-error-observers |