2010-07-09 14:22:05 -04:00
|
|
|
USING: accessors io io.encodings io.encodings.ascii
|
2014-10-31 03:58:53 -04:00
|
|
|
io.encodings.string io.encodings.utf8 io.files
|
|
|
|
io.streams.byte-array io.streams.string kernel namespaces
|
|
|
|
tools.test ;
|
2010-07-09 14:22:05 -04:00
|
|
|
IN: io.encodings.tests
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{ { } }
|
2009-02-15 21:45:06 -05:00
|
|
|
[ "vocab:io/test/empty-file.txt" ascii file-lines ]
|
2007-09-20 18:09:08 -04:00
|
|
|
unit-test
|
|
|
|
|
2009-02-15 21:45:06 -05:00
|
|
|
: lines-test ( file encoding -- line1 line2 )
|
|
|
|
[ readln readln ] with-file-reader ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{
|
2007-09-20 18:09:08 -04:00
|
|
|
"This is a line."
|
|
|
|
"This is another line."
|
2015-07-02 20:28:17 -04:00
|
|
|
} [
|
2009-02-15 20:53:21 -05:00
|
|
|
"vocab:io/test/windows-eol.txt"
|
2009-02-15 21:45:06 -05:00
|
|
|
ascii lines-test
|
2007-09-20 18:09:08 -04:00
|
|
|
] unit-test
|
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{
|
2007-09-20 18:09:08 -04:00
|
|
|
"This is a line."
|
|
|
|
"This is another line."
|
2015-07-02 20:28:17 -04:00
|
|
|
} [
|
2009-02-15 20:53:21 -05:00
|
|
|
"vocab:io/test/mac-os-eol.txt"
|
2009-02-15 21:45:06 -05:00
|
|
|
ascii lines-test
|
2007-09-20 18:09:08 -04:00
|
|
|
] unit-test
|
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{
|
2007-09-20 18:09:08 -04:00
|
|
|
"This is a line."
|
|
|
|
"This is another line."
|
2015-07-02 20:28:17 -04:00
|
|
|
} [
|
2009-02-15 20:53:21 -05:00
|
|
|
"vocab:io/test/unix-eol.txt"
|
2009-02-15 21:45:06 -05:00
|
|
|
ascii lines-test
|
2007-09-20 18:09:08 -04:00
|
|
|
] unit-test
|
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{
|
2007-09-20 18:09:08 -04:00
|
|
|
"1234"
|
2015-07-02 20:28:17 -04:00
|
|
|
} [
|
2007-09-20 18:09:08 -04:00
|
|
|
"Hello world\r\n1234" <string-reader>
|
|
|
|
dup stream-readln drop
|
|
|
|
4 swap stream-read
|
|
|
|
] unit-test
|
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{
|
2007-11-21 03:39:34 -05:00
|
|
|
"1234"
|
2015-07-02 20:28:17 -04:00
|
|
|
} [
|
2007-11-21 03:39:34 -05:00
|
|
|
"Hello world\r\n1234" <string-reader>
|
|
|
|
dup stream-readln drop
|
|
|
|
4 swap stream-read-partial
|
|
|
|
] unit-test
|
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{
|
2007-09-20 18:09:08 -04:00
|
|
|
CHAR: 1
|
2015-07-02 20:28:17 -04:00
|
|
|
} [
|
2007-09-20 18:09:08 -04:00
|
|
|
"Hello world\r\n1234" <string-reader>
|
|
|
|
dup stream-readln drop
|
|
|
|
stream-read1
|
|
|
|
] unit-test
|
2008-05-10 21:17:24 -04:00
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{ utf8 ascii } [
|
2008-05-10 21:17:24 -04:00
|
|
|
"foo" utf8 [
|
|
|
|
input-stream get code>>
|
|
|
|
ascii decode-input
|
|
|
|
input-stream get code>>
|
|
|
|
] with-byte-reader
|
|
|
|
] unit-test
|
|
|
|
|
2015-07-02 20:28:17 -04:00
|
|
|
{ utf8 ascii } [
|
2008-05-10 21:17:24 -04:00
|
|
|
utf8 [
|
|
|
|
output-stream get code>>
|
|
|
|
ascii encode-output
|
|
|
|
output-stream get code>>
|
|
|
|
] with-byte-writer drop
|
|
|
|
] unit-test
|
2014-10-31 03:58:53 -04:00
|
|
|
|
|
|
|
! Bug 1177.
|
|
|
|
{
|
|
|
|
"! lol"
|
|
|
|
"! wat"
|
|
|
|
13
|
|
|
|
} [
|
|
|
|
"! lol\r\n! wat\r\n" utf8 encode
|
|
|
|
utf8 [
|
|
|
|
readln
|
|
|
|
"\r\n" read-until
|
|
|
|
] with-byte-reader
|
|
|
|
] unit-test
|
2014-10-31 12:33:59 -04:00
|
|
|
|
|
|
|
{
|
|
|
|
"! lol"
|
|
|
|
"! wa"
|
|
|
|
116
|
|
|
|
} [
|
|
|
|
"! lol\r\n! wat\r\n" utf8 encode
|
|
|
|
utf8 [
|
|
|
|
readln
|
|
|
|
"t" read-until
|
|
|
|
] with-byte-reader
|
|
|
|
] unit-test
|
2016-03-30 18:19:04 -04:00
|
|
|
|
|
|
|
! shouldn't be able to tell on (underlying) stream of a decoder
|
|
|
|
! because it's confusing when you read1 character and tell is
|
|
|
|
! greater than 1.
|
|
|
|
[
|
|
|
|
"hello world" utf8 encode
|
|
|
|
utf8 [ tell-input ] with-byte-reader
|
|
|
|
] must-fail
|