74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2010 Doug Coleman.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: destructors io io.encodings.binary io.encodings.utf8
 | 
						|
io.files io.streams.byte-array io.streams.string
 | 
						|
io.streams.throwing kernel namespaces tools.test ;
 | 
						|
IN: io.streams.throwing.tests
 | 
						|
 | 
						|
{ "asdf" }
 | 
						|
[
 | 
						|
    "asdf" [ [ 6 read-partial ] throw-on-eof ] with-string-reader
 | 
						|
] unit-test
 | 
						|
 | 
						|
[
 | 
						|
    "asdf" [ [ 4 read read1 ] throw-on-eof ] with-string-reader
 | 
						|
] [ stream-exhausted? ] must-fail-with
 | 
						|
 | 
						|
[
 | 
						|
    [
 | 
						|
        "asdf" <string-reader> [
 | 
						|
            4 read read1
 | 
						|
        ] stream-throw-on-eof
 | 
						|
    ] with-destructors
 | 
						|
] [ stream-exhausted? ] must-fail-with
 | 
						|
 | 
						|
[
 | 
						|
    "asdf" [ [ 5 read ] throw-on-eof ] with-string-reader
 | 
						|
] [ stream-exhausted? ] must-fail-with
 | 
						|
 | 
						|
[
 | 
						|
    "asdf" [ [ 4 read 4 read ] throw-on-eof ] with-string-reader
 | 
						|
] [ stream-exhausted? ] must-fail-with
 | 
						|
 | 
						|
{ "as" "df" } [
 | 
						|
    "asdf" [ [ 2 read ] throw-on-eof 3 read ] with-string-reader
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ "as" "df\n" } [
 | 
						|
    "vocab:io/streams/throwing/asdf.txt" utf8 [
 | 
						|
        [ 2 read ] throw-on-eof 20 read
 | 
						|
    ] with-file-reader
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ B{ 0 1 2 3 } B{ 0 1 2 3 } } [
 | 
						|
    B{ 0 1 2 3 } binary [
 | 
						|
        [ 4 read 0 seek-absolute seek-input 4 read ] throw-on-eof
 | 
						|
    ] with-byte-reader
 | 
						|
] unit-test
 | 
						|
 | 
						|
[
 | 
						|
    B{ 0 1 2 3 } binary [
 | 
						|
        [ 1 seek-absolute seek-input 4 read drop ] throw-on-eof
 | 
						|
    ] with-byte-reader
 | 
						|
] [ stream-exhausted? ] must-fail-with
 | 
						|
 | 
						|
{ "asd" CHAR: f } [
 | 
						|
    "asdf" [ [ "f" read-until ] throw-on-eof ] with-string-reader
 | 
						|
] unit-test
 | 
						|
 | 
						|
[
 | 
						|
    "asdf" [ [ "g" read-until ] throw-on-eof ] with-string-reader
 | 
						|
] [ stream-exhausted? ] must-fail-with
 | 
						|
 | 
						|
{ 1 } [
 | 
						|
    B{ 0 1 2 3 } binary [
 | 
						|
        [ 1 seek-absolute seek-input tell-input ] throw-on-eof
 | 
						|
    ] with-byte-reader
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ t 4 } [
 | 
						|
    B{ 0 1 2 3 } binary [ [
 | 
						|
        input-stream get [ stream-seekable? ] [ stream-length ] bi
 | 
						|
    ] throw-on-eof ] with-byte-reader
 | 
						|
] unit-test
 |