| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  | USING: tools.walker io io.streams.string kernel math | 
					
						
							|  |  |  | math.private namespaces prettyprint sequences tools.test | 
					
						
							| 
									
										
										
										
											2008-07-05 01:59:28 -04:00
										 |  |  | continuations math.parser threads arrays tools.walker.debug | 
					
						
							| 
									
										
										
										
											2009-04-30 20:06:54 -04:00
										 |  |  | generic.single sequences.private kernel.private | 
					
						
							| 
									
										
										
										
											2009-05-05 10:12:32 -04:00
										 |  |  | tools.continuations accessors words combinators ;
 | 
					
						
							| 
									
										
										
										
											2008-03-01 17:00:45 -05:00
										 |  |  | IN: tools.walker.tests | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 1 } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ 1 ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 1 2 3 } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ 1 2 3 ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { "Yo" 2 } } [ | 
					
						
							| 
									
										
										
										
											2008-11-23 22:40:54 -05:00
										 |  |  |     [ 2 [ "Yo" ] dip ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { "Yo" 2 3 } } [ | 
					
						
							| 
									
										
										
										
											2008-11-23 22:40:54 -05:00
										 |  |  |     [ 2 [ "Yo" ] dip 3 ] test-walker | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 2 } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ t [ 2 ] [ "hi" ] if ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { "hi" } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ f [ 2 ] [ "hi" ] if ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 4 } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ 2 2 fixnum+ ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-23 01:34:02 -04:00
										 |  |  | : foo ( -- x ) 2 2 fixnum+ ;
 | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 8 } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ foo 4 fixnum+ ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { C{ 1 1.5 } { } C{ 1 1.5 } { } } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ C{ 1 1.5 } { } 2dup ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { t } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ 5 5 number= ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { f } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ 5 6 number= ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 0 } } [ | 
					
						
							| 
									
										
										
										
											2008-07-07 20:26:58 -04:00
										 |  |  |     [ 0 { array-capacity } declare ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { f } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ "XYZ" "XYZ" mismatch ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { t } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ "XYZ" "XYZ" sequence= ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { t } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ "XYZ" "XYZ" = ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { f } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ "XYZ" "XuZ" = ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 4 } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ 2 2 + ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 3 } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ [ 3 "x" set "x" get ] with-scope ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { "hi\n" } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ [ "hi" print ] with-string-writer ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { "4\n" } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ [ 2 2 + number>string print ] with-string-writer ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							| 
									
										
										
										
											2015-07-02 13:34:01 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 1 2 3 } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ { 1 2 3 } set-datastack ] test-walker | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 6 } } | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  | [ [ 3 [ nip continue ] callcc0 2 * ] test-walker ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 6 } } | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  | [ [ [ 3 swap continue-with ] callcc1 2 * ] test-walker ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { } } | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  | [ [ [ ] [ ] recover ] test-walker ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 6 } } | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  | [ [ [ 3 throw ] [ 2 * ] recover ] test-walker ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { T{ no-method f + nth } } } | 
					
						
							| 
									
										
										
										
											2008-07-05 01:59:28 -04:00
										 |  |  | [ [ [ 0 \ + nth ] [ ] recover ] test-walker ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { } } [ | 
					
						
							| 
									
										
										
										
											2008-02-21 00:13:22 -05:00
										 |  |  |     [ "a" "b" set "c" "d" set [ ] test-walker ] with-scope
 | 
					
						
							|  |  |  | ] unit-test | 
					
						
							| 
									
										
										
										
											2009-04-17 00:14:26 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | : breakpoint-test ( -- x ) break 1 2 + ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \ breakpoint-test don't-step-into | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-15 14:47:03 -04:00
										 |  |  | { f } [ \ breakpoint-test word-optimized? ] unit-test | 
					
						
							| 
									
										
										
										
											2009-04-17 00:14:26 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 3 } } [ [ breakpoint-test ] test-walker ] unit-test | 
					
						
							| 
									
										
										
										
											2009-04-17 00:14:26 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | GENERIC: method-breakpoint-test ( x -- y )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TUPLE: method-breakpoint-tuple ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | M: method-breakpoint-tuple method-breakpoint-test break drop 1 2 + ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \ method-breakpoint-test don't-step-into | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 3 } } | 
					
						
							| 
									
										
										
										
											2009-05-05 10:12:32 -04:00
										 |  |  | [ [ T{ method-breakpoint-tuple } method-breakpoint-test ] test-walker ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : case-breakpoint-test ( -- x )
 | 
					
						
							|  |  |  |     5 { [ break 1 + ] } case ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \ case-breakpoint-test don't-step-into | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 6 } } [ [ case-breakpoint-test ] test-walker ] unit-test | 
					
						
							| 
									
										
										
										
											2009-05-05 10:12:32 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | : call(-breakpoint-test ( -- x )
 | 
					
						
							|  |  |  |     [ break 1 ] call( -- x ) 2 + ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \ call(-breakpoint-test don't-step-into | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 3 } } [ [ call(-breakpoint-test ] test-walker ] unit-test |