factor/extra/io/streams/peek/peek-tests.factor

150 lines
3.3 KiB
Factor

! Copyright (C) 2011 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: byte-arrays destructors io io.encodings.ascii
io.encodings.binary io.files io.streams.byte-array
io.streams.memory io.streams.peek io.streams.string kernel make
namespaces sequences strings tools.test ;
IN: io.streams.peek.tests
{ CHAR: a }
[ "abc" <string-reader> <peek-stream> stream-read1 ] unit-test
{ CHAR: a }
[ "abc" <string-reader> <peek-stream> stream-peek1 ] unit-test
{ f }
[ "" <string-reader> <peek-stream> stream-peek1 ] unit-test
{ CHAR: a }
[ "abc" <string-reader> <peek-stream> stream-peek1 ] unit-test
{ "ab" 99 }
[ "abc" <string-reader> <peek-stream> "c" swap stream-read-until ] unit-test
{ "ab" f }
[ "ab" <string-reader> <peek-stream> "c" swap stream-read-until ] unit-test
{ CHAR: a }
[
"abc" <string-reader> <peek-stream>
[ stream-peek1 drop ]
[ stream-peek1 ] bi
] unit-test
{ "ab" }
[
"abc" <string-reader> <peek-stream>
2 swap stream-peek
] unit-test
{ "ab" }
[
"abc" <string-reader> <peek-stream>
2 over stream-peek drop
2 swap stream-peek
] unit-test
{
{
B{ 97 98 99 100 }
B{ 97 98 99 100 101 102 }
B{ 97 98 }
B{ 99 100 }
B{ 101 102 }
B{ 103 104 }
B{ 105 106 107 108 }
B{ 105 106 107 108 109 110 111 112 }
B{ 105 106 107 108 109 110 111 112 113 114 }
}
} [
[
"abcdefghijklmnopqrstuvwxyz" >byte-array binary <byte-reader> <peek-stream>
4 over stream-peek ,
6 over stream-peek ,
2 over stream-read ,
2 over stream-read ,
2 over stream-read ,
2 over stream-read ,
4 over stream-peek ,
8 over stream-peek ,
10 swap stream-read ,
] { } make
] unit-test
{
{
"abcd"
"abcdef"
"ab"
"cd"
"ef"
"gh"
"ijkl"
"ijklmnop"
"ijklmnopqr"
}
}
[
[
"abcdefghijklmnopqrstuvwxyz" >byte-array ascii <byte-reader> <peek-stream>
4 over stream-peek ,
6 over stream-peek ,
2 over stream-read ,
2 over stream-read ,
2 over stream-read ,
2 over stream-read ,
4 over stream-peek ,
8 over stream-peek ,
10 swap stream-read ,
] { } make
] unit-test
{
{
B{ 0 1 2 3 }
B{ 0 1 2 3 4 5 }
B{ 0 1 }
B{ 2 3 }
B{ 4 5 }
B{ 6 7 }
B{ 8 9 10 11 }
B{ 8 9 10 11 12 13 14 15 }
B{ 8 9 10 11 12 13 14 15 16 17 }
}
}
[
[
[
26 iota >byte-array <memory-stream> <peek-stream>
4 over stream-peek ,
6 over stream-peek ,
2 over stream-read ,
2 over stream-read ,
2 over stream-read ,
2 over stream-read ,
4 over stream-peek ,
8 over stream-peek ,
10 swap stream-read ,
] { } make
] with-destructors
] unit-test
! Issue #1317
{ "Red" } [
"resource:LICENSE.txt" binary [
input-stream [ <peek-stream> ] change
peek1 drop
3 read >string
] with-file-reader
] unit-test
{ "ist" } [
"resource:LICENSE.txt" binary [
input-stream [ <peek-stream> ] change
peek1 drop
3 read drop
2 peek drop
3 read >string
] with-file-reader
] unit-test