assoc-heaps: adding / fixing test case.
							parent
							
								
									c0a8d0cf1f
								
							
						
					
					
						commit
						3a1fb4d588
					
				| 
						 | 
				
			
			@ -21,11 +21,6 @@ TUPLE: heap { data vector } ;
 | 
			
		|||
: <heap> ( class -- heap )
 | 
			
		||||
    V{ } clone swap boa ; inline
 | 
			
		||||
 | 
			
		||||
ERROR: not-a-heap object ;
 | 
			
		||||
 | 
			
		||||
: check-heap ( heap -- heap )
 | 
			
		||||
    dup heap? [ not-a-heap ] unless ; inline
 | 
			
		||||
 | 
			
		||||
TUPLE: entry value key heap index ;
 | 
			
		||||
 | 
			
		||||
: <entry> ( value key heap -- entry )
 | 
			
		||||
| 
						 | 
				
			
			@ -148,7 +143,6 @@ M: heap heap-pop
 | 
			
		|||
    [ data-first >entry< ] [ heap-pop* ] bi ;
 | 
			
		||||
 | 
			
		||||
: slurp-heap ( ... heap quot: ( ... value key -- ... ) -- ... )
 | 
			
		||||
    [ check-heap ] dip
 | 
			
		||||
    [ drop '[ _ heap-empty? ] ]
 | 
			
		||||
    [ '[ _ heap-pop @ ] until ] 2bi ; inline
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,11 @@
 | 
			
		|||
! Copyright (C) 2008 Doug Coleman.
 | 
			
		||||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: tools.test assoc-heaps ;
 | 
			
		||||
IN: assoc-heaps.tests
 | 
			
		||||
USING: assoc-heaps combinators heaps kernel tools.test ;
 | 
			
		||||
 | 
			
		||||
{ { { 0 "zero" } { 1 "one" } { 2 "two" } } } [
 | 
			
		||||
    <unique-min-heap>
 | 
			
		||||
    "two" 2 pick heap-push
 | 
			
		||||
    "zero" 0 pick heap-push
 | 
			
		||||
    "one" 1 pick heap-push
 | 
			
		||||
    heap-pop-all
 | 
			
		||||
] unit-test
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,3 +25,5 @@ M: assoc-heap heap-pop heap>> heap-pop ;
 | 
			
		|||
M: assoc-heap heap-peek heap>> heap-peek ;
 | 
			
		||||
 | 
			
		||||
M: assoc-heap heap-empty? heap>> heap-empty? ;
 | 
			
		||||
 | 
			
		||||
M: assoc-heap heap-size heap>> heap-size ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue