]> gitweb.factorcode.org Git - factor.git/commitdiff
multisets: Fix multiset-clear (size was not reset)
authorDoug Coleman <doug.coleman@gmail.com>
Fri, 29 Jul 2022 17:19:40 +0000 (12:19 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 31 Jul 2022 18:47:21 +0000 (13:47 -0500)
extra/multisets/multisets-tests.factor
extra/multisets/multisets.factor

index a7272281262e14073294ad6be47c66e16ddd56bc..640b7e5dbeb1f6403bf74393033c1fd4301d1bc8 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2022 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel multisets prettyprint tools.test ;
+USING: accessors kernel multisets prettyprint tools.test ;
 IN: multisets.tests
 
 { multiset{ } } [
@@ -30,3 +30,7 @@ IN: multisets.tests
 
 
 { } [ multiset{ 100 100 } [ . ] multiset-each ] unit-test
+
+{ 0 } [ multiset{ } size>> ] unit-test
+{ 0 } [ multiset{ 100 100 } [ multiset-clear ] [ size>> ] bi ] unit-test
+{ 2 } [ multiset{ 100 100 } size>> ] unit-test
index 0c06eaf8be1c6c4a7186a3c3bd4a14145eb2e1d0..bcc4358265bd66362f83990610c57af0d376283b 100644 (file)
@@ -28,7 +28,8 @@ TUPLE: multiset size avl hash ;
 
 : multiset-clear ( multiset -- )
     [ hash>> clear-assoc ]
-    [ avl>> f >>root 0 >>count drop ] bi ;
+    [ avl>> f >>root 0 >>count drop ]
+    [ 0 >>size drop ] tri ;
 
 : multiset-empty? ( multiset -- ? ) avl>> assoc-size 0 eq? ; inline