]> gitweb.factorcode.org Git - factor.git/blob - basis/io/encodings/iso2022/iso2022-tests.factor
6197f7ea697448466d94bffb3aec95e28a624322
[factor.git] / basis / io / encodings / iso2022 / iso2022-tests.factor
1 ! Copyright (C) 2009 Daniel Ehrenberg
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: io.encodings.string io.encodings.iso2022 tools.test
4 io.encodings.iso2022.private literals strings byte-arrays ;
5 IN: io.encodings.iso2022
6
7 { "hello" } [ "hello" >byte-array iso2022 decode ] unit-test
8 { "hello" } [ "hello" iso2022 encode >string ] unit-test
9
10 { "hi" } [ B{ CHAR: h ESC CHAR: ( CHAR: B CHAR: i } iso2022 decode ] unit-test
11 { "hi" } [ B{ CHAR: h CHAR: i ESC CHAR: ( CHAR: B } iso2022 decode ] unit-test
12 { "hi\u00fffd" } [ B{ CHAR: h CHAR: i ESC CHAR: ( } iso2022 decode ] unit-test
13 { "hi\u00fffd" } [ B{ CHAR: h CHAR: i ESC } iso2022 decode ] unit-test
14
15 { B{ CHAR: h ESC CHAR: ( CHAR: J 0xD8 } } [ "h\u00ff98" iso2022 encode ] unit-test
16 { "h\u00ff98" } [ B{ CHAR: h ESC CHAR: ( CHAR: J 0xD8 } iso2022 decode ] unit-test
17 { "hi" } [ B{ CHAR: h ESC CHAR: ( CHAR: J CHAR: i } iso2022 decode ] unit-test
18 { "h" } [ B{ CHAR: h ESC CHAR: ( CHAR: J } iso2022 decode ] unit-test
19 { "h\u00fffd" } [ B{ CHAR: h ESC CHAR: ( CHAR: J 0x80 } iso2022 decode ] unit-test
20
21 { B{ CHAR: h ESC CHAR: $ CHAR: B 0x3E 0x47 } } [ "h\u007126" iso2022 encode ] unit-test
22 { "h\u007126" } [ B{ CHAR: h ESC CHAR: $ CHAR: B 0x3E 0x47 } iso2022 decode ] unit-test
23 { "h\u00fffd" } [ B{ CHAR: h ESC CHAR: $ CHAR: B 0x3E } iso2022 decode ] unit-test
24 { "h" } [ B{ CHAR: h ESC CHAR: $ CHAR: B } iso2022 decode ] unit-test
25 { "h\u00fffd" } [ B{ CHAR: h ESC CHAR: $ } iso2022 decode ] unit-test
26 { "h\u00fffd" } [ B{ CHAR: h ESC } iso2022 decode ] unit-test
27 { "h\u00fffd" } [ B{ CHAR: h ESC CHAR: $ CHAR: B 0x80 0x80 } iso2022 decode ] unit-test
28
29 { B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D 0x38 0x54 } } [ "h\u0058ce" iso2022 encode ] unit-test
30 { "h\u0058ce" } [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D 0x38 0x54 } iso2022 decode ] unit-test
31 { "h\u00fffd" } [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D 0x38 } iso2022 decode ] unit-test
32 { "h" } [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D } iso2022 decode ] unit-test
33 { "h\u00fffd" } [ B{ CHAR: h ESC CHAR: $ CHAR: ( } iso2022 decode ] unit-test
34 { "h\u00fffd" } [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D 0x70 0x70 } iso2022 decode ] unit-test
35
36 [ "\u{syriac-music}" iso2022 encode ] must-fail