]> gitweb.factorcode.org Git - factor.git/blob - basis/io/encodings/euc/euc-tests.factor
c89661c0fdcb74bfe12153b51b13669e8f9aeb57
[factor.git] / basis / io / encodings / euc / euc-tests.factor
1 ! Copyright (C) 2009 Yun, Jonghyouk.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: arrays byte-arrays io io.encodings io.encodings.euc-kr assocs
4 io.encodings.string io.streams.string io.encodings.euc.private words
5 kernel locals multiline namespaces sequences strings tools.test ;
6 IN: io.encodings.euc.tests
7
8 : euc-kr>unicode ( ch -- ch/f )
9     euc-kr euc-table word-prop at ;
10
11 : unicode>euc-kr ( ch -- ch/f )
12     euc-kr euc-table word-prop value-at ;
13
14 [ f ] [ HEX: 80 euc-kr>unicode ] unit-test
15 [ f ] [ HEX: ff euc-kr>unicode ] unit-test
16 [ HEX: ac02 ] [ HEX: 8141 euc-kr>unicode ] unit-test
17 [ HEX: 7f ] [ HEX: 7f euc-kr>unicode ] unit-test
18 [ HEX: c724 ] [ HEX: c0b1 euc-kr>unicode ] unit-test
19
20 [ HEX: 8141 ] [ HEX: ac02 unicode>euc-kr ] unit-test
21 [ HEX: 7f ] [ HEX: 7f unicode>euc-kr ] unit-test
22 [ HEX: c0b1 ] [ HEX: c724 unicode>euc-kr ] unit-test
23
24 : phrase-unicode ( -- s )
25     "\u00b3d9\u00d574\u00bb3c\u00acfc \u00bc31\u00b450\u00c0b0\u00c774!" ;
26
27 : phrase-euc-kr ( -- s )
28     {
29         HEX: b5 HEX: bf HEX: c7 HEX: d8
30         HEX: b9 HEX: b0 HEX: b0 HEX: fa
31         HEX: 20 HEX: b9 HEX: e9 HEX: b5
32         HEX: ce HEX: bb HEX: ea HEX: c0
33         HEX: cc HEX: 21
34     } ;
35
36 : phrase-unicode>euc-kr ( -- s )
37     phrase-unicode euc-kr encode ;
38
39 : phrase-euc-kr>unicode ( -- s )
40     phrase-euc-kr euc-kr decode ;
41
42 [ t ] [ phrase-unicode>euc-kr >array phrase-euc-kr = ] unit-test
43
44 [ t ]  [ phrase-euc-kr>unicode phrase-unicode = ] unit-test
45
46 [ t ] [ phrase-euc-kr 1 head* euc-kr decode phrase-unicode 1 head* = ] unit-test
47
48 [ t ] [ phrase-euc-kr 3 head* euc-kr decode phrase-unicode 2 head* = ] unit-test
49
50 [ t ] [ phrase-euc-kr 2 head* euc-kr decode phrase-unicode 2 head* CHAR: replacement-character suffix = ] unit-test