]> gitweb.factorcode.org Git - factor.git/blob - extra/io/streams/peek/peek-tests.factor
core: Rename iota to <iota> so we can have TUPLE: iota ... ; instead of TUPLE: iota...
[factor.git] / extra / io / streams / peek / peek-tests.factor
1 ! Copyright (C) 2011 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: byte-arrays destructors io io.encodings.ascii
4 io.encodings.binary io.files io.streams.byte-array
5 io.streams.memory io.streams.peek io.streams.string kernel make
6 namespaces sequences strings tools.test ;
7 IN: io.streams.peek.tests
8
9 { CHAR: a }
10 [ "abc" <string-reader> <peek-stream> stream-read1 ] unit-test
11
12 { CHAR: a }
13 [ "abc" <string-reader> <peek-stream> stream-peek1 ] unit-test
14
15 { f }
16 [ "" <string-reader> <peek-stream> stream-peek1 ] unit-test
17
18 { CHAR: a }
19 [ "abc" <string-reader> <peek-stream> stream-peek1 ] unit-test
20
21 { "ab" 99 }
22 [ "abc" <string-reader> <peek-stream> "c" swap stream-read-until ] unit-test
23
24 { "ab" f }
25 [ "ab" <string-reader> <peek-stream> "c" swap stream-read-until ] unit-test
26
27 { CHAR: a }
28 [
29     "abc" <string-reader> <peek-stream>
30     [ stream-peek1 drop ]
31     [ stream-peek1 ] bi
32 ] unit-test
33
34 { "ab" }
35 [
36     "abc" <string-reader> <peek-stream>
37     2 swap stream-peek
38 ] unit-test
39
40 { "ab" }
41 [
42     "abc" <string-reader> <peek-stream>
43     2 over stream-peek drop
44     2 swap stream-peek
45 ] unit-test
46
47 {
48     {
49         B{ 97 98 99 100 }
50         B{ 97 98 99 100 101 102 }
51         B{ 97 98 }
52         B{ 99 100 }
53         B{ 101 102 }
54         B{ 103 104 }
55         B{ 105 106 107 108 }
56         B{ 105 106 107 108 109 110 111 112 }
57         B{ 105 106 107 108 109 110 111 112 113 114 }
58     }
59 } [
60     [
61         "abcdefghijklmnopqrstuvwxyz" >byte-array binary <byte-reader> <peek-stream>
62         4 over stream-peek ,
63         6 over stream-peek ,
64         2 over stream-read ,
65         2 over stream-read ,
66         2 over stream-read ,
67         2 over stream-read ,
68         4 over stream-peek ,
69         8 over stream-peek ,
70         10 swap stream-read ,
71     ] { } make
72 ] unit-test
73
74 {
75     {
76         "abcd"
77         "abcdef"
78         "ab"
79         "cd"
80         "ef"
81         "gh"
82         "ijkl"
83         "ijklmnop"
84         "ijklmnopqr"
85     }
86 }
87 [
88     [
89         "abcdefghijklmnopqrstuvwxyz" >byte-array ascii <byte-reader> <peek-stream>
90         4 over stream-peek ,
91         6 over stream-peek ,
92         2 over stream-read ,
93         2 over stream-read ,
94         2 over stream-read ,
95         2 over stream-read ,
96         4 over stream-peek ,
97         8 over stream-peek ,
98         10 swap stream-read ,
99     ] { } make
100 ] unit-test
101
102 {
103     {
104         B{ 0 1 2 3 }
105         B{ 0 1 2 3 4 5 }
106         B{ 0 1 }
107         B{ 2 3 }
108         B{ 4 5 }
109         B{ 6 7 }
110         B{ 8 9 10 11 }
111         B{ 8 9 10 11 12 13 14 15 }
112         B{ 8 9 10 11 12 13 14 15 16 17 }
113     }
114 }
115 [
116     [
117         [
118             26 <iota> >byte-array <memory-stream> <peek-stream>
119             4 over stream-peek ,
120             6 over stream-peek ,
121             2 over stream-read ,
122             2 over stream-read ,
123             2 over stream-read ,
124             2 over stream-read ,
125             4 over stream-peek ,
126             8 over stream-peek ,
127             10 swap stream-read ,
128         ] { } make
129     ] with-destructors
130 ] unit-test
131
132 ! Issue #1317
133 { "Red" } [
134     "resource:LICENSE.txt" binary [
135         input-stream [ <peek-stream> ] change
136         peek1 drop
137         3 read >string
138     ] with-file-reader
139 ] unit-test
140
141 { "ist" } [
142     "resource:LICENSE.txt" binary [
143         input-stream [ <peek-stream> ] change
144         peek1 drop
145         3 read drop
146         2 peek drop
147         3 read >string
148     ] with-file-reader
149 ] unit-test