9 class TC_Character < Test::Unit::TestCase
10 def setup() @char = Character.get("字") end #UTF8で与えること
12 assert_equal(23383, char.char_id, "translate to char_id")
13 assert_equal(6, char.get_char_attribute('total_strokes'), "get total strokes by XEmacs UTF-2000 like method")
14 assert_equal(6, char['total_strokes'], "get total strokes by Hash like method") if char.is_a? Character
15 assert_equal(6, char.total_strokes, "get total strokes by method")
16 assert_equal(23383, char.ucs, "translate to ucs")
17 assert_equal(22358, char.chinese_gb2312, "get character code in chinese GB2312")
18 assert_equal(1777, char.shinjigen_2, "get shinjigen 2")
19 assert_equal(3, char.ideographic_strokes, "get")
20 assert_equal(39, char.ideographic_radical, "get")
23 test_char(Character.get("字"))
24 test_char(Character.new("字"))
28 assert_equal(23383, Character.parse_char_id("字"))
30 def test_put_attributes
31 @char.put_char_attribute('test_attribute', 'test')
32 assert_equal('test', @char.get_char_attribute('test_attribute'), "put, get")
33 @char['test_attribute'] = 'test'
34 assert_equal('test', @char['test_attribute'], "[]=, []")
37 assert_instance_of(Hash, @char.char_attribute_alist, "returns Hash")
38 assert_instance_of(Hash, @char.alist, ".alist returns Hash")
39 assert_instance_of(Array, @char.char_attribute_list, "returns Array")
40 assert_instance_of(Array, @char.list, ".list returns Array")
41 assert_instance_of(String, @char.inspect)
44 assert_equal(Character.get("&J90-3B7A;"), @char, "jisx0208")
45 # assert_equal("&J90-3B7A;", @char.to_er, "jisx0208")
46 assert_equal(Character.get("&MCS-00005B57;"), @char, "mcs")
47 assert_equal(Character.get("&M-06942;"), @char, "ideograph-daikanwa, Morohashi")
50 char = Character.get("A")
51 assert_equal(char.ascii, 65, "ascii")
52 assert_equal(char.bidi_category, "L", "bidi")
53 assert_equal(char.name, "LATIN CAPITAL LETTER A", "name")
54 assert_equal(char.ucs, 65, "ucs")
55 assert_equal(char.latin_jisx0201, 65, "jisx0201")
56 assert_equal(char.latin_viscii, 65, "viscii") #って何?
57 #->fullwidth: (((name . "FULLWIDTH LATIN CAPITAL LETTER A") (ucs . 65313)))
58 #->lowercase: (((name . "LATIN SMALL LETTER A") (ucs . 97)))
59 #general-category: (letter uppercase)
60 #このへんのS式の展開が必要なものは、また後程扱うべし。
63 char = Character.get("⿰")
64 assert_equal(char.name, "IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT", "ids name")
65 #assert_equal(char.to_er, "&U+2FF0;", "ids er")
66 assert_equal(char.to_er, "⿰", "ids er")
67 assert_equal(char.bidi_category, "ON", "ids bidi")
70 char = Character.get("逢")
71 assert_instance_of(String, char.get_attributes)
72 char = Character.get("学")
73 assert_instance_of(String, char.get_attributes)
76 char1 = Character.new("字")
77 char2 = Character.new("字") #.newで生成した場合は別々のinstanceになるのだ
78 assert_equal(char1, char2) #==ではある
79 assert_not_same(char1, char2) #equal?かというと違う
81 cf = CharacterFactory.instance
84 assert_equal(char1, char2, "factory") #==である
85 assert_same(char1, char2, "factory") #かつ同じinstanceであることが保証される
87 char1 = Character.get("字") #Character.newの代りにCharacter.getを使うとCharacterFactoryを使ったのと同じ効果がある。
88 char2 = Character.get("字")
89 assert_equal(char1, char2) #==ではある
90 assert_same(char1, char2) #equal?かというと違う
93 p er.de_er.char.inspect_all
95 def nu_test_has_attribute
96 assert("&J90-4833;".de_er.char.has_attribute?) #罪
97 assert(! "&MCS-00E06E9B;;".de_er.char.has_attribute?) #罪のisolated character, attributeを持ってない
98 assert("&C1-602E;".de_er.char.has_attribute?) #渡
99 assert("&J90-454F;".de_er.char.has_attribute?) #渡
102 p_er("&J83-4D63;") #翼
104 p_er("&J83-3958;") #購
108 assert_equal("字", "&U5B57;".de_er)
109 assert_equal("字", "&U-5B57;".de_er)
110 assert_equal("字", "&U+5B57;".de_er)
111 assert_equal("字", "B57;".de_er)
113 def teardown() @char = nil end
116 #===== PRINT_ALL [字] MCS-00005B57 &J90-3B7A; =====
117 #chinese-gb2312: 0x5756
118 #chinese-isoir165: 0x5756
119 #korean-ksc5601: 0x6D2E
121 #chinese-cns11643-1: 0x4773
122 #chinese-big5: 0xA672
124 # test_print(Character.get("&CDP-8B42;"))
125 # test_print(Character.get("&I-CDP-8AF6;"))
126 #===== PRINT_ALL [舛] MCS-00ECA524 &K0-743F; =====
128 #----------------------------------------------------------------------end.