2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
6 class TestChiseDB < Test::Unit::TestCase
8 @cd = CHISE::ChiseDB.instance
10 @cd.each_feature_name {|f|
11 assert_instance_of(String, f)
16 feature = @cd.get_feature("ideographic-structure")
17 assert_instance_of(CHISE::FeatureDB, feature)
18 #assert_equal(true, feature.setup_db(0))
19 #assert_equal(true, feature.sync)
20 value = feature.get_value(char_id)
21 assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value)
24 value = @cd.load_feature(char_id, "ideographic-structure")
25 assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value)
28 feature = @cd.get_feature("test-chisedb")
29 assert_instance_of(CHISE::FeatureDB, feature)
30 v = "testvalue"+$$.to_s
31 assert_equal(true, feature.set_value(char_id, v))
32 assert_equal(v, feature.get_value(char_id))
35 feature = @cd.get_feature("numeric-value")
36 feature.each_char {|cid, valdatum|
37 assert_kind_of(Numeric, cid)
38 #assert_instance_of(String, valdatum)
41 # get a character by Daikanwa number 364.
42 ccs = @cd.get_ccs("=daikanwa")
43 assert_instance_of(CHISE::CCS_DB, ccs)
44 #assert_equal(true, ccs.setup_db(0))
45 #assert_equal(true, ccs.sync)
46 char_id = ccs.decode(364)
47 assert_equal(0x4ECF, char_id)
50 char_id = @cd.decode_char("=daikanwa", 364)
51 assert_equal(0x4ECF, char_id)
54 ccs = @cd.get_ccs("test-ccs")
55 assert_instance_of(CHISE::CCS_DB, ccs)
56 assert_equal(true, ccs.set($$, 0x4ECF))
57 assert_equal(0x4ECF, ccs.decode($$))
63 @cd = CHISE::ChiseDB.instance
65 value = @cd.load_feature(char_id, "=ucs")
66 assert_equal(20175, value)
70 @cd = CHISE::ChiseDB.instance
72 assert_instance_of(String, ccs)
73 ccsdb = @cd.get_ccs(ccs)
74 assert_instance_of(CHISE::CCS_DB, ccsdb)
78 def test_ccs_each_char
79 @cd = CHISE::ChiseDB.instance
80 ccs = @cd.get_ccs("=ucs")
81 ccs.each_char {|code_point, cid|
82 assert_kind_of(Integer, code_point)
83 assert_kind_of(Integer, cid)
88 @cd = CHISE::ChiseDB.instance
89 char_id = "字".char.char_id
90 feature = @cd.get_feature("test")
91 feature.setup_db(1) # writable
92 feature.set_value(char_id, "test1")
93 assert_equal("test1", feature.get_value(char_id))
96 ds = @cd.instance_eval { @ds }
97 path = CHISE::DataSource::DB_DIR.path+"character/feature/test"
98 assert_equal(true, path.exist?)
102 db_dir = CHISE::DataSource::DB_DIR
103 @ds = CHISE::DataSource.new(CHISE::DataSource::Berkeley_DB, db_dir, 0, 0755)
104 @feature = @ds.get_feature("nosuchfeature")
105 v = @feature.get_value(20175)
110 @cd = CHISE::ChiseDB.instance
111 char_id = @cd.decode_char("ascii", 65)
112 assert_equal(65, char_id)
113 assert_equal("A", CHISE::Character.get(char_id).to_s)