update.
[chise/ruby.git] / test / test-string.rb
1 #!/usr/bin/env ruby
2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
3
4 require "common"
5
6 class TestString < Test::Unit::TestCase
7   def test_string
8     # test_utf8
9     assert_equal(true,  "字".is_a_utf8?)
10     assert_equal(false, "字字".is_a_utf8?)
11     assert_raises(RuntimeError){ "字字".char }
12     assert_raises(RuntimeError){ "字字".ucs }
13
14     # test_feature
15     assert_equal(25991, "文".ucs)
16     assert_equal(23383, "字".ucs)
17   end
18
19   def test_er
20     assert_equal("字", CHISE::Character.get("&J90-3B7A;").to_s)
21     assert_equal("字", "字".de_er) # no effect
22     assert_equal("字", "&J90-3B7A;".de_er)
23     assert_equal("文字列", "文&J90-3B7A;列".de_er)
24     assert_equal("文字列", "文&M-06942;列".de_er)
25     assert_equal("文字列", "文&MCS-00005B57;列".de_er)
26     assert_equal("文字列", "文&U-5B57;列".de_er)
27     assert_equal("文字列", "文&U+5B57;列".de_er)
28     assert_raises(RuntimeError){ "文&nosucher;列".de_er }
29   end
30
31   def test_de_er_ccs
32     assert_equal("\346\270\241", "&C1-602E;".de_er) # 渡
33     assert_equal("\370\273\222\237\215", "&C1-6030;".de_er) # unknown
34     # test_hanziku
35     assert_equal("\360\240\210\264", "&HZK01-C947;".de_er)
36 #    assert_equal(1644203214, "&CDP-8CCE;".de_er)
37 #    assert_equal(1644202927, "&CDP-8BAF;".de_er)
38   end
39
40   def test_characters
41     assert_equal(["文","字","列"], "文字列".to_a)
42     ar = []
43     "文字列".each_char {|char| ar << char }
44     assert_equal(["文","字","列"], ar)
45
46     # test_map
47     str = "文字列".map_char {|ch|
48       ch+ch
49     }
50     assert_equal("文文字字列列", str)
51   end
52 end