]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/bitstreams/bitstreams-tests.factor
use radix literals
[factor.git] / basis / bitstreams / bitstreams-tests.factor
index 2aadf7b02d5d42d7aa0f21e5e6b46f78bc7c6fa0..19961825de9261d0d5d2c54626911360b8847c32 100644 (file)
@@ -1,31 +1,54 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors bitstreams io io.streams.string kernel tools.test
-grouping compression.lzw multiline byte-arrays ;
+grouping compression.lzw multiline byte-arrays io.encodings.binary
+io.streams.byte-array ;
 IN: bitstreams.tests
 
-[ 1 ]
-[ B{ 254 } <string-reader> <bitstream-reader> read-bit ] unit-test
+[ 0b1111111111 ]
+[
+    B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
+    2 >>byte-pos 6 >>bit-pos
+    10 swap peek
+] unit-test
 
-[ 254 ]
-[ B{ 254 } <string-reader> <bitstream-reader> 8 swap read-bits ] unit-test
+[ 0b111111111 ]
+[
+    B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
+    2 >>byte-pos 6 >>bit-pos
+    9 swap peek
+] unit-test
 
-[ 4095 ]
-[ B{ 255 255 } <string-reader> <bitstream-reader> 12 swap read-bits ] unit-test
+[ 0b11111111 ]
+[
+    B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
+    2 >>byte-pos 6 >>bit-pos
+    8 swap peek
+] unit-test
 
-[ B{ 254 } ]
+[ 0b1111111 ]
 [
-    <string-writer> <bitstream-writer> 254 8 rot
-    [ write-bits ] keep output>> >byte-array
+    B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
+    2 >>byte-pos 6 >>bit-pos
+    7 swap peek
 ] unit-test
 
+[ 0b111111 ]
+[
+    B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
+    2 >>byte-pos 6 >>bit-pos
+    6 swap peek
+] unit-test
 
-/*
+[ 0b11111 ]
 [
-    
-] [
-    B{ 7 7 7 8 8 7 7 9 7 }
-    [ byte-array>bignum >bin 72 CHAR: 0 pad-head 9 group [ bin> ] map ]
-    [ lzw-compress ] bi
+    B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
+    2 >>byte-pos 6 >>bit-pos
+    5 swap peek
 ] unit-test
-*/
+
+[ B{ } <msb0-bit-reader> 5 swap peek ] must-fail
+[ B{ } <msb0-bit-reader> 1 swap peek ] must-fail
+[ B{ } <msb0-bit-reader> 8 swap peek ] must-fail
+
+[ 0 ] [ B{ } <msb0-bit-reader> 0 swap peek ] unit-test