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