i
[chise/ruby.git] / test / org / org-test-db.rb
1 #!/usr/bin/env ruby
2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
3 # This file is in SJIS charset.  Japanese Character -> \8a¿\8e\9a.
4
5 require "common"
6
7 class TestDataBase < Test::Unit::TestCase
8   def setup
9     @cdb = CHISE::CharDB.instance
10     @sdb = CHISE::CodesysDB.instance
11   end
12
13   def test_db
14     assert_equal("()+!", CHISE::DB.unix_to_win("<>*?"))
15     assert_equal("<>*?", CHISE::DB.win_to_unix("()+!"))
16   end
17
18   def test_each_db(db)
19     assert_instance_of(Array, db.keys)
20   end
21
22   def test_make_db(db)
23     h = {"a" => 1, "b" => 2, "c" => 3}
24     db.remove_db("test-db") #\82Ü\82¸\8dÅ\8f\89\82É\8fÁ\82µ\82Ä\82¨\82­
25     assert_not_nil(db.make_db("test-db", h))
26     assert_not_nil(db.open_db("test-db"))
27     assert_equal(1, db.get("test-db", "a"))
28     assert_equal(2, db.get("test-db", "b"))
29     assert_equal(3, db.get("test-db", "c"))
30     db.remove_db("test-db") #\8dÅ\8cã\82É\82Ü\82½\8fÁ\82µ\82Ä\82¨\82­
31   end
32
33   def test_dbs
34     test_each_db(@cdb)
35     test_each_db(@sdb)
36 #    test_make_db(@cdb)
37 #    test_make_db(@sdb)
38   end
39
40   def test_db_put
41     char = "\8e\9a".char
42     char.put_char_attribute("test-attribute", "test")
43     assert_equal("test", char.test_attribute)
44   end
45
46 end
47
48 class TestCodesys < Test::Unit::TestCase
49   def setup
50     @db = CHISE::CodesysDB.instance
51   end
52
53   def test_dummy
54   end
55
56   def nu_test_db_length
57     assert_equal(6287, @db.get("=jis-x0208").keys.length, "keys")
58     assert_equal(590,  @db.get("japanese-jisx0208").keys.length, "keys")
59     assert_equal(499,  @db.get("japanese-jisx0208-1978").keys.length, "keys")
60     assert_equal(593,  @db.get("japanese-jisx0208-1990").keys.length, "keys")
61     assert_equal(6067, @db.get("japanese-jisx0212").keys.length, "keys")
62     assert_equal(1697, @db.get("japanese-jisx0213-1").keys.length, "keys")
63     assert_equal(2345, @db.get("japanese-jisx0213-2").keys.length, "keys")
64     assert_equal(4270, @db.get("ucs-jis").keys.length, "keys")
65   end
66
67   def nutest_db
68     keys = @db.keys
69     assert_instance_of(Array, @db.keys, "db.keys")
70     db = @db.get("ascii")
71     assert_equal(128, db.keys.length, "can get keys")
72     assert_equal(63,   @db.get("katakana-jisx0201").keys.length, "keys")
73     assert_equal(94,   @db.get("latin-jisx0201").keys.length, "keys")
74
75     counter = 0
76     @db.each("=jis-x0208"){|k, v| #\88ø\90\94\82ÌCodesys\83f\81[\83^\83x\81[\83X\82Ì\82»\82ê\82¼\82ê\82É\91Î\82µ\82Ä\8eÀ\8ds\82·\82é
77       er0 = sprintf("&J90-%04X;", k)
78       er1 = CHISE::Character.new(v).to_er
79       counter += 1; break if 10 < counter
80     }
81   end
82
83   def nutest_ascii
84     db = CHISE::CodesysDB.instance
85     codesys = db.get_codesys("ascii")
86     char = codesys.get(65)
87     assert_equal("A", char.to_s)
88     assert_equal(128, codesys.keys.length)
89     ks = codesys.keys
90   end
91
92   def nutest_jis_codesys
93     db = CHISE::CodesysDB.instance
94     codesys = db.get_codesys("=jis-x0208")
95     ks = codesys.keys.sort #\82Æ\82·\82é\82±\82Æ\82É\82æ\82Á\82Ä\81AJISX0208 1990\82Ì\8fW\8d\87\91S\95\94\82Ìkeys\82ª\93¾\82ç\82ê\82é
96 #    assert_equal(6880, ks.length)
97     assert_equal(8481, ks.first)
98     assert_equal(29566, ks.last)
99     char = codesys.get(15226) #"\8e\9a"
100     assert_equal("\8e\9a".su, char.to_s)
101
102     assert_equal("\88\9f".su, codesys.get(12321))
103     jis = "\88\9f".su.char.japanese_jisx0208_1990
104 #    assert_equal("\88\9f", codesys.get(jis))
105 #    assert_equal("\88\9f", sprintf("&J90-%04X;", jis).de_er)
106
107 #    codesys = db.get_codesys("japanese-jisx0208-1990") #\8b\8c\96¼
108     codesys = db.get_codesys("=jis-x0208-1990")
109     assert_equal(8481, ks.first)
110     assert_equal(29566, ks.last)
111   end
112
113 end
114
115 class TestCodesys < Test::Unit::TestCase
116   def setup
117     @db = CHISE::CodesysDB.instance
118   end
119
120   def test_dummy
121   end
122
123   def nu_test_db_length
124     assert_equal(6287, @db.get("=jis-x0208").keys.length, "keys")
125     assert_equal(590,  @db.get("japanese-jisx0208").keys.length, "keys")
126     assert_equal(499,  @db.get("japanese-jisx0208-1978").keys.length, "keys")
127     assert_equal(593,  @db.get("japanese-jisx0208-1990").keys.length, "keys")
128     assert_equal(6067, @db.get("japanese-jisx0212").keys.length, "keys")
129     assert_equal(1697, @db.get("japanese-jisx0213-1").keys.length, "keys")
130     assert_equal(2345, @db.get("japanese-jisx0213-2").keys.length, "keys")
131     assert_equal(4270, @db.get("ucs-jis").keys.length, "keys")
132   end
133
134   def nutest_db
135     keys = @db.keys
136     assert_instance_of(Array, @db.keys, "db.keys")
137     db = @db.get("ascii")
138     assert_equal(128, db.keys.length, "can get keys")
139     assert_equal(63,   @db.get("katakana-jisx0201").keys.length, "keys")
140     assert_equal(94,   @db.get("latin-jisx0201").keys.length, "keys")
141
142     counter = 0
143     @db.each("=jis-x0208"){|k, v| #\88ø\90\94\82ÌCodesys\83f\81[\83^\83x\81[\83X\82Ì\82»\82ê\82¼\82ê\82É\91Î\82µ\82Ä\8eÀ\8ds\82·\82é
144       er0 = sprintf("&J90-%04X;", k)
145       er1 = CHISE::Character.new(v).to_er
146       counter += 1; break if 10 < counter
147     }
148   end
149
150   def nutest_ascii
151     db = CHISE::CodesysDB.instance
152     codesys = db.get_codesys("ascii")
153     char = codesys.get(65)
154     assert_equal("A", char.to_s)
155     assert_equal(128, codesys.keys.length)
156     ks = codesys.keys
157   end
158
159   def nutest_jis_codesys
160     db = CHISE::CodesysDB.instance
161     codesys = db.get_codesys("=jis-x0208")
162     ks = codesys.keys.sort #\82Æ\82·\82é\82±\82Æ\82É\82æ\82Á\82Ä\81AJISX0208 1990\82Ì\8fW\8d\87\91S\95\94\82Ìkeys\82ª\93¾\82ç\82ê\82é
163 #    assert_equal(6880, ks.length)
164     assert_equal(8481, ks.first)
165     assert_equal(29566, ks.last)
166     char = codesys.get(15226) #"\8e\9a"
167     assert_equal("\8e\9a".su, char.to_s)
168
169     assert_equal("\88\9f".su, codesys.get(12321))
170     jis = "\88\9f".su.char.japanese_jisx0208_1990
171 #    assert_equal("\88\9f", codesys.get(jis))
172 #    assert_equal("\88\9f", sprintf("&J90-%04X;", jis).de_er)
173
174 #    codesys = db.get_codesys("japanese-jisx0208-1990") #\8b\8c\96¼
175     codesys = db.get_codesys("=jis-x0208-1990")
176     assert_equal(8481, ks.first)
177     assert_equal(29566, ks.last)
178   end
179 end