]> gitweb.factorcode.org Git - factor.git/commitdiff
assoc-heaps: adding / fixing test case.
authorJohn Benediktsson <mrjbq7@gmail.com>
Thu, 15 Feb 2018 00:52:53 +0000 (16:52 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 15 Feb 2018 00:52:53 +0000 (16:52 -0800)
basis/heaps/heaps.factor
extra/assoc-heaps/assoc-heaps-tests.factor
extra/assoc-heaps/assoc-heaps.factor

index b92bfe36687087cc668f8ca19fe2f674acb2e038..751e6b2a4a879e6f5b970e6df91cc5841fd0e59e 100644 (file)
@@ -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
 
index 6ea3fe14a44a73052212f505747fbd3ba97c7ecd..22f70d5e5d692948814469f87eaa767cd1e4faf6 100644 (file)
@@ -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
index a713ba7b50060c5655334bb8fcd0df44477079c6..af3fdfc32565cdb6f8e2abeda13a557848122f49 100644 (file)
@@ -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 ;