update.
[chise/ruby.git] / test / 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_each_db(db)
14     assert_instance_of(Array, db.keys)
15   end
16
17   def test_make_db(db)
18     h = {"a" => 1, "b" => 2, "c" => 3}
19     db.remove_db("test-db") #\82Ü\82¸\8dÅ\8f\89\82É\8fÁ\82µ\82Ä\82¨\82­
20     assert_not_nil(db.make_db("test-db", h))
21     assert_not_nil(db.open_db("test-db"))
22     assert_equal(1, db.get("test-db", "a"))
23     assert_equal(2, db.get("test-db", "b"))
24     assert_equal(3, db.get("test-db", "c"))
25     db.remove_db("test-db") #\8dÅ\8cã\82É\82Ü\82½\8fÁ\82µ\82Ä\82¨\82­
26   end
27
28   def test_dbs
29     test_each_db(@cdb)
30     test_each_db(@sdb)
31 #    test_make_db(@cdb)
32 #    test_make_db(@sdb)
33   end
34 end
35
36 class TestCodesys < Test::Unit::TestCase
37   def setup
38     @db = CHISE::CodesysDB.instance
39   end
40
41   def test_db_length
42     assert_equal(6287, @db.get("=jis-x0208").keys.length)
43     assert_equal(590,  @db.get("japanese-jisx0208").keys.length)
44     assert_equal(499,  @db.get("japanese-jisx0208-1978").keys.length)
45     assert_equal(593,  @db.get("japanese-jisx0208-1990").keys.length)
46     assert_equal(6067, @db.get("japanese-jisx0212").keys.length)
47     assert_equal(1697, @db.get("japanese-jisx0213-1").keys.length)
48     assert_equal(2345, @db.get("japanese-jisx0213-2").keys.length)
49     assert_equal(4270, @db.get("ucs-jis").keys.length)
50   end
51
52   def test_db
53     keys = @db.keys
54     assert_instance_of(Array, @db.keys, "db.keys")
55     db = @db.get("ascii")
56     assert_equal(128, db.keys.length, "can get keys")
57     assert_equal(63,   @db.get("katakana-jisx0201").keys.length)
58     assert_equal(94,   @db.get("latin-jisx0201").keys.length)
59
60     counter = 0
61     @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é
62       er0 = sprintf("&J90-%04X;", k)
63       er1 = CHISE::Character.new(v).to_er
64       counter += 1; break if 10 < counter
65     }
66   end
67
68   def test_jis_codesys
69     db = CHISE::CodesysDB.instance
70     codesys = db.get_codesys("=jis-x0208")
71     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é
72 #   assert_equal(6880, ks.length)
73     assert_equal(8481, ks.first)
74     assert_equal(29566, ks.last)
75     char = codesys.get(15226) #"\8e\9a"
76     assert_equal("\8e\9a".su, char.to_s)
77
78     assert_equal("\88\9f".su, codesys.get(12321))
79     jis = "\88\9f".su.char.japanese_jisx0208_1990
80 #    assert_equal("\88\9f", codesys.get(jis))
81 #    assert_equal("\88\9f", sprintf("&J90-%04X;", jis).de_er)
82
83 #    codesys = db.get_codesys("japanese-jisx0208-1990") #\8b\8c\96¼
84     codesys = db.get_codesys("=jis-x0208-1990")
85     assert_equal(8481, ks.first)
86     assert_equal(29566, ks.last)
87   end
88
89 end