{ 0xa } [ ?{ f t f t } bit-array>integer ] unit-test
{ 0x100 } [ ?{ f f f f f f f f t } bit-array>integer ] unit-test
+
+{ t } [
+ 2 B{ 0b011 } bit-array boa
+ 2 B{ 0b111 } bit-array boa =
+] unit-test
+
+{ f } [
+ 3 B{ 0b0 } bit-array boa
+ 2 B{ 0b0 } bit-array boa =
+] unit-test
M: bit-array new-sequence drop <bit-array> ; inline
M: bit-array equal?
- over bit-array? [ [ underlying>> ] bi@ sequence= ] [ 2drop f ] if ;
+ over bit-array? [
+ 2dup 2length dupd = [
+ [ [ underlying>> ] bi@ ] dip 8 mod [ sequence= ] [
+ [ [ unclip-slice ] bi@ swapd ] dip
+ '[ _ bits ] bi@ = [ sequence= ] [ 2drop f ] if
+ ] if-zero
+ ] [ 3drop f ] if
+ ] [ 2drop f ] if ;
M: bit-array resize
dupd [ bits>bytes ] [ underlying>> ] bi*