1 ! Copyright (C) 2022 Raghu Ranganathan.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: byte-arrays compression.bzip3 math random sequences
6 ! Simple compression and decompression
8 0 0 0 0 0 0 0 12 66 90 51 118 49 0 4 1 0 1 0 0 0 20 0 0 0 12
9 0 0 0 177 144 125 228 255 255 255 255 72 101 108 108 111 32
10 87 111 114 108 100 33 0 0 0
11 } } [ B{ 72 101 108 108 111 32 87 111 114 108 100 33 } f compress ] unit-test
13 72 101 108 108 111 32 87 111 114 108 100 33
15 0 0 0 0 0 0 0 12 66 90 51 118 49 0 4 1 0 1 0 0 0 20 0 0 0 12 0 0 0 177 144
16 125 228 255 255 255 255 72 101 108 108 111 32 87 111 114 108
18 } decompress ] unit-test
20 ! Random byte sequences
22 36 [ 256 random ] B{ } replicate-as :> input
23 { input } [ input f compress decompress ] unit-test
26 ! Incorrect block sizes must error
27 [ B{ } 0 compress ] must-fail
28 [ B{ } 536870912 compress ] must-fail