2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
6 class TestString < Test::Unit::TestCase
13 @str.each_char {|char| ar << char }
14 assert_equal(["文","字","列"], ar)
15 assert_equal(["文","字","列"], @str.to_a)
16 assert_equal("文", @str.char_at(0))
17 assert_equal("字", @str.char_at(1))
18 assert_equal("列", @str.char_at(2))
19 assert_equal(nil, @str.char_at(3))
20 assert_equal("列", @str.char_at(-1))
24 assert_equal(23383, "字".ucs)
25 assert_raises(NameError, message=""){
26 assert_equal(23383, "字字".ucs) #エラーが発生する
28 assert_equal(25991, "文".ucs)
29 assert_raises(NameError, message=""){
30 assert_equal(25991, @str.ucs) #エラーが発生する
35 @char = @str.char_at(1)
36 assert_equal(@char, CHISE::Character.get("&J90-3B7A;").to_s, "jisx0208")
37 assert_equal("字", CHISE::Character.get("&J90-3B7A;").to_s, "jisx0208")
38 assert_equal("字", "&J90-3B7A;".de_er, "jisx0208")
39 assert_equal("文字", "文&J90-3B7A;".de_er, "with other character, at the bottom")
40 assert_equal("字文", "&J90-3B7A;文".de_er, "at the top")
41 assert_equal("文字字", "文&J90-3B7A;&J90-3B7A;".de_er, "two ERs")
42 assert_equal("文字文字", "文&J90-3B7A;文&J90-3B7A;".de_er, "two ERs")
43 assert_equal("文字", "文&MCS-00005B57;".de_er, "mcs")
44 assert_equal("文字", "文&M-06942;".de_er, "morohashi")
45 assert_equal("字", "字".de_er)
48 str2 = str.de_er #本体に変更無し
49 assert_equal("文&J90-3B7A;", str)
50 assert_equal("文字", str2)
51 str3 = str.de_er! #本体が変わります
52 assert_equal("文字", str)
53 assert_equal("文字", str3)
55 assert_equal("字", "&MCS-00005B57;".de_er)
56 assert_equal("字", "&U-5B57;".de_er)
57 assert_equal("字", "&U+5B57;".de_er)
58 # assert_equal("", "&nosucher;".de_er)
59 assert_equal("字", "&U-5b57;".de_er)
63 str = @str.map_char {|ch|
66 assert_equal("文文字字列列", str)
67 assert_equal("文字列", @str)
68 str = @str.map_char! {|ch|
71 assert_equal("文文字字列列", str)
72 assert_equal("文文字字列列", @str)
73 assert_equal("文文字字列列", @str)
75 # assert_equal("<文,C1-4546>", "文".inspect_x)
76 # assert_equal("<字,J90-3B7A>", "字".inspect_x)
77 # assert_equal("<列,J90-4E73>", "列".inspect_x)
78 # assert_equal("<文,C1-4546><字,J90-3B7A><列,J90-4E73>", "文字列".inspect_x)
81 # assert_match(/^<字,J90-3B7A,/, ins)
82 assert_match(/^<字,#x5b57,/, ins)
83 assert_match(/=big5:42610/, ins)
84 assert_match(/=cns11643-1:18291/, ins)
85 assert_match(/=gb2312:22358/, ins)
86 assert_match(/=daikanwa:6942/, ins)
87 assert_match(/ideographic-radical:39/, ins)
88 assert_match(/ideographic-strokes:3/, ins)
89 assert_match(/=ks-x1001:27950/, ins)
90 assert_match(/shinjigen-2:1777/, ins)
91 assert_match(/total-strokes:6/, ins)
92 assert_match(/=ucs:23383/, ins)
93 assert_match(/=gt:8734/, ins)
94 assert_match(/=gt-k:1624/, ins)
95 assert_match(/=gt-pj-1:15226/, ins)
96 assert_match(/=jis-x0208:15226/, ins)