| 
									
										
										
										
											2008-08-19 15:06:20 -04:00
										 |  |  | USING: deques dlists dlists.private kernel tools.test random | 
					
						
							| 
									
										
										
										
											2008-06-10 19:32:44 -04:00
										 |  |  | assocs sets sequences namespaces sorting debugger io prettyprint | 
					
						
							| 
									
										
										
										
											2008-05-25 19:28:07 -04:00
										 |  |  | math accessors classes ;
 | 
					
						
							| 
									
										
										
										
											2008-03-01 17:00:45 -05:00
										 |  |  | IN: dlists.tests | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-19 15:06:20 -04:00
										 |  |  | [ t ] [ <dlist> deque-empty? ] unit-test | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-16 07:57:53 -05:00
										 |  |  | [ T{ dlist f T{ dlist-node f 1 f f } T{ dlist-node f 1 f f } } ] | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | [ <dlist> 1 over push-front ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ! Make sure empty lists are empty | 
					
						
							| 
									
										
										
										
											2008-08-19 15:06:20 -04:00
										 |  |  | [ t ] [ <dlist> deque-empty? ] unit-test | 
					
						
							|  |  |  | [ f ] [ <dlist> 1 over push-front deque-empty? ] unit-test | 
					
						
							|  |  |  | [ f ] [ <dlist> 1 over push-back deque-empty? ] unit-test | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ 1 ] [ <dlist> 1 over push-front pop-front ] unit-test | 
					
						
							|  |  |  | [ 1 ] [ <dlist> 1 over push-front pop-back ] unit-test | 
					
						
							|  |  |  | [ 1 ] [ <dlist> 1 over push-back pop-front ] unit-test | 
					
						
							|  |  |  | [ 1 ] [ <dlist> 1 over push-back pop-back ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-16 07:57:53 -05:00
										 |  |  | [ T{ dlist f f f } ] [ <dlist> 1 over push-front dup pop-front* ] unit-test | 
					
						
							|  |  |  | [ T{ dlist f f f } ] [ <dlist> 1 over push-front dup pop-back* ] unit-test | 
					
						
							|  |  |  | [ T{ dlist f f f } ] [ <dlist> 1 over push-back dup pop-front* ] unit-test | 
					
						
							|  |  |  | [ T{ dlist f f f } ] [ <dlist> 1 over push-back dup pop-back* ] unit-test | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | ! Test the prev,next links for two nodes | 
					
						
							|  |  |  | [ f ] [ | 
					
						
							|  |  |  |     <dlist> 1 over push-back 2 over push-back | 
					
						
							| 
									
										
										
										
											2008-06-10 19:32:44 -04:00
										 |  |  |     front>> prev>> | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ 2 ] [ | 
					
						
							|  |  |  |     <dlist> 1 over push-back 2 over push-back | 
					
						
							| 
									
										
										
										
											2008-06-10 19:32:44 -04:00
										 |  |  |     front>> next>> obj>> | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ 1 ] [ | 
					
						
							|  |  |  |     <dlist> 1 over push-back 2 over push-back | 
					
						
							| 
									
										
										
										
											2008-06-10 19:32:44 -04:00
										 |  |  |     front>> next>> prev>> obj>> | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ f ] [ | 
					
						
							|  |  |  |     <dlist> 1 over push-back 2 over push-back | 
					
						
							| 
									
										
										
										
											2008-06-10 19:32:44 -04:00
										 |  |  |     front>> next>> next>> | 
					
						
							| 
									
										
										
										
											2007-11-05 02:41:23 -05:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-20 21:14:07 -04:00
										 |  |  | [ f f ] [ <dlist> [ 1 = ] dlist-find ] unit-test | 
					
						
							|  |  |  | [ 1 t ] [ <dlist> 1 over push-back [ 1 = ] dlist-find ] unit-test | 
					
						
							|  |  |  | [ f f ] [ <dlist> 1 over push-back [ 2 = ] dlist-find ] unit-test | 
					
						
							| 
									
										
										
										
											2009-01-29 23:19:07 -05:00
										 |  |  | [ f ] [ <dlist> 1 over push-back [ 2 = ] dlist-any? ] unit-test | 
					
						
							|  |  |  | [ t ] [ <dlist> 1 over push-back [ 1 = ] dlist-any? ] unit-test | 
					
						
							| 
									
										
										
										
											2008-03-20 21:14:07 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ 1 ] [ <dlist> 1 over push-back [ 1 = ] delete-node-if ] unit-test | 
					
						
							| 
									
										
										
										
											2008-08-19 15:06:20 -04:00
										 |  |  | [ t ] [ <dlist> 1 over push-back dup [ 1 = ] delete-node-if drop deque-empty? ] unit-test | 
					
						
							|  |  |  | [ t ] [ <dlist> 1 over push-back dup [ 1 = ] delete-node-if drop deque-empty? ] unit-test | 
					
						
							| 
									
										
										
										
											2008-05-25 19:28:07 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ <dlist> 4 over push-back 5 over push-back [ obj>> 4 = ] dlist-find-node drop class dlist-node = ] unit-test | 
					
						
							|  |  |  | [ t ] [ <dlist> 4 over push-back 5 over push-back [ obj>> 5 = ] dlist-find-node drop class dlist-node = ] unit-test | 
					
						
							|  |  |  | [ t ] [ <dlist> 4 over push-back 5 over push-back* [ = ] curry dlist-find-node drop class dlist-node = ] unit-test | 
					
						
							|  |  |  | [ ] [ <dlist> 4 over push-back 5 over push-back [ drop ] dlist-each ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-10 19:32:44 -04:00
										 |  |  | [ <dlist> peek-front ] [ empty-dlist? ] must-fail-with | 
					
						
							|  |  |  | [ <dlist> peek-back ] [ empty-dlist? ] must-fail-with | 
					
						
							| 
									
										
										
										
											2008-05-25 21:43:17 -04:00
										 |  |  | [ <dlist> pop-front ] [ empty-dlist? ] must-fail-with | 
					
						
							|  |  |  | [ <dlist> pop-back ] [ empty-dlist? ] must-fail-with | 
					
						
							| 
									
										
										
										
											2008-07-28 18:55:41 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-19 15:06:20 -04:00
										 |  |  | [ t ] [ <dlist> 3 over push-front 4 over push-back 3 swap deque-member? ] unit-test | 
					
						
							| 
									
										
										
										
											2008-07-28 18:55:41 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-19 15:06:20 -04:00
										 |  |  | [ f ] [ <dlist> 3 over push-front 4 over push-back -1 swap deque-member? ] unit-test | 
					
						
							| 
									
										
										
										
											2008-07-28 18:55:41 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-19 15:06:20 -04:00
										 |  |  | [ f ] [ <dlist> 0 swap deque-member? ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-11 11:56:58 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | ! Make sure clone does the right thing | 
					
						
							|  |  |  | [ V{ 2 1 } V{ 2 1 3 } ] [ | 
					
						
							|  |  |  |     <dlist> 1 over push-front 2 over push-front | 
					
						
							|  |  |  |     dup clone 3 over push-back | 
					
						
							|  |  |  |     [ dlist>seq ] bi@
 | 
					
						
							|  |  |  | ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-29 21:15:04 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ V{ f 3 1 f } ] [ <dlist> 1 over push-front 3 over push-front f over push-front f over push-back dlist>seq ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ V{ } ] [ <dlist> dlist>seq ] unit-test | 
					
						
							| 
									
										
										
										
											2009-05-09 15:33:17 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ V{ 0 2 4 } ] [ <dlist> { 0 1 2 3 4 } over push-all-back [ even? ] dlist-filter dlist>seq ] unit-test | 
					
						
							|  |  |  | [ V{ 2 4 } ] [ <dlist> { 1 2 3 4 } over push-all-back [ even? ] dlist-filter dlist>seq ] unit-test | 
					
						
							|  |  |  | [ V{ 2 4 } ] [ <dlist> { 1 2 3 4 5 } over push-all-back [ even? ] dlist-filter dlist>seq ] unit-test | 
					
						
							|  |  |  | [ V{ 0 2 4 } ] [ <dlist> { 0 1 2 3 4 5 } over push-all-back [ even? ] dlist-filter dlist>seq ] unit-test |