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))
38 feature = @cd.get_feature("numeric-value")
39 feature.each_char {|cid, valdatum|
40 assert_kind_of(Numeric, cid)
41 #assert_instance_of(String, valdatum)
44 # get a character by Daikanwa number 364.
45 ccs = @cd.get_ccs("=daikanwa")
46 assert_instance_of(CHISE::CCS_DB, ccs)
47 #assert_equal(true, ccs.setup_db(0))
48 #assert_equal(true, ccs.sync)
49 char_id = ccs.decode(364)
50 assert_equal(0x4ECF, char_id)
53 char_id = @cd.decode_char("=daikanwa", 364)
54 assert_equal(0x4ECF, char_id)
57 ccs = @cd.get_ccs("test-ccs")
58 assert_instance_of(CHISE::CCS_DB, ccs)
59 assert_equal(true, ccs.set($$, 0x4ECF))
60 assert_equal(0x4ECF, ccs.decode($$))
66 @cd = CHISE::ChiseDB.instance
68 value = @cd.load_feature(char_id, "=ucs")
69 assert_equal(20175, value)
73 @cd = CHISE::ChiseDB.instance
75 assert_instance_of(String, ccs)
76 ccsdb = @cd.get_ccs(ccs)
77 assert_instance_of(CHISE::CCS_DB, ccsdb)
81 def test_ccs_each_char
82 @cd = CHISE::ChiseDB.instance
83 ccs = @cd.get_ccs("=ucs")
84 ccs.each_char {|code_point, cid|
85 assert_kind_of(Integer, code_point)
86 assert_kind_of(Integer, cid)
91 @cd = CHISE::ChiseDB.instance
92 char_id = "字".char.char_id
93 feature = @cd.get_feature("test")
94 feature.setup_db(1) # writable
95 feature.set_value(char_id, "test1")
96 assert_equal("test1", feature.get_value(char_id))
99 ds = @cd.instance_eval { @ds }
100 path = CHISE::DataSource::DB_DIR.path+"character/feature/test"
101 assert_equal(true, path.exist?)
105 db_dir = CHISE::DataSource::DB_DIR
106 @ds = CHISE::DataSource.new(CHISE::DataSource::Berkeley_DB, db_dir, 0, 0755)
107 @feature = @ds.get_feature("nosuchfeature")
108 v = @feature.get_value(20175)
113 @cd = CHISE::ChiseDB.instance
114 char_id = @cd.decode_char("ascii", 65)
115 assert_equal(65, char_id)
116 assert_equal("A", CHISE::Character.get(char_id).to_s)