Skip to content

Commit

Permalink
bit-sets: adjust M\ bit-set set-like to match capacity
Browse files Browse the repository at this point in the history
  • Loading branch information
mrjbq7 committed Nov 1, 2023
1 parent 487d1dd commit 4c374aa
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 15 deletions.
16 changes: 2 additions & 14 deletions basis/bit-sets/bit-sets.factor
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,6 @@ M: bit-set delete
! of the same length.
<PRIVATE

ERROR: check-bit-set-failed ;

: check-bit-set ( bit-set -- bit-set )
dup bit-set? [ check-bit-set-failed ] unless ; inline

: bit-set-map ( seq1 seq2 quot -- seq )
[ drop 2length [ assert= ] keep ]
[ [ [ underlying>> ] bi@ ] dip 2map ] 3bi
Expand Down Expand Up @@ -62,21 +57,14 @@ M: bit-set subset?
M: bit-set members
table>> [ length <iota> ] keep '[ _ nth-unsafe ] filter ;

<PRIVATE

: bit-set-like ( set bit-set -- bit-set' )
M: bit-set set-like
! Throws an error if there are keys that can't be put
! in the bit set
over bit-set? [ 2dup [ table>> length ] same? ] [ f ] if
[ drop ] [
[ members ] dip table>> length <bit-set>
[ adjoin-all ] keep
] if ;

PRIVATE>

M: bit-set set-like
bit-set-like check-bit-set ; inline
] if ; inline

M: bit-set clone
table>> clone bit-set boa ;
Expand Down
2 changes: 1 addition & 1 deletion core/sets/sets-tests.factor
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ IN: sets.tests
{ { 1 2 3 } } [ HS{ 1 2 3 } { } set-like sort ] unit-test
{ { 1 2 3 } } [ { 1 2 2 3 3 } { } set-like ] unit-test
{ { 3 2 1 } } [ { 3 3 2 2 1 } { } set-like ] unit-test
{ t } [ 4 <bit-set> 1 <bit-set> set-like 4 <bit-set> = ] unit-test
{ t } [ 4 <bit-set> 1 <bit-set> set-like 1 <bit-set> = ] unit-test
{ t } [ { 1 2 3 } HS{ } set-like HS{ 1 2 3 } = ] unit-test

{ HS{ 1 2 3 } } [ { 1 2 3 } fast-set ] unit-test
Expand Down

0 comments on commit 4c374aa

Please sign in to comment.