2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
6 class TestChiseDB < Test::Unit::TestCase
8 db_dir = CHISE::DataSource::DB_DIR
9 assert_match(/chise-db\Z/, db_dir)
11 @ds = CHISE::DataSource.new(CHISE::DataSource::Berkeley_DB, db_dir, 0, 0755)
12 assert_instance_of(CHISE::DataSource, @ds)
14 @ct = @ds.get_ccs("=daikanwa")
15 assert_instance_of(CHISE::CCS, @ct)
16 char_id = @ct.decode(364) # get a character by Daikanwa number 364.
17 assert_equal(20175, char_id)
18 #str = format_char_id(20175)
19 #assert_equal("?\344\273\217", str)
21 char_id = @ds.decode_char("=daikanwa", 364)
22 assert_equal(20175, char_id)
24 @ft = @ds.get_feature("ideographic-structure")
25 assert_instance_of(CHISE::Feature, @ft)
26 value = @ft.get_value(char_id)
27 assert_instance_of(String, value)
28 assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value)
30 value = @ds.load_feature(char_id, "ideographic-structure")
31 assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value)
34 @ds.each_feature_name {|f|
35 assert_instance_of(String, f)
36 ft = @ds.get_feature(f)
37 v = ft.get_value(23383)
42 assert_kind_of(Integer, k)
43 assert_instance_of(String, v)
46 ft = @ds.get_feature("numeric-value")
48 assert_kind_of(Integer, k)
49 assert_instance_of(String, v)
54 @ds = CHISE::DataSource.new
56 assert_instance_of(String, ccs)
58 assert_instance_of(CHISE::CCSTable, ct)
61 ct = @ds.get_ccs("=ucs")
63 assert_kind_of(Integer, k)
64 assert_kind_of(Integer, v)
70 db_dir = CHISE::DataSource::DB_DIR
71 @ds = CHISE::DataSource.new(CHISE::DataSource::Berkeley_DB, db_dir, 0, 0755)
72 @ft = @ds.get_feature("nosuchfeature")
73 v = @ft.get_value(20175)
78 @cd = CHISE::ChiseDB.instance
80 char_id = @cd.decode_char("=daikanwa", 364)
81 assert_equal(20175, char_id)
83 value = @cd.load_feature(char_id, "ideographic-structure")
84 assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value)
86 value = @cd.load_feature(char_id, "=ucs")
87 assert_equal("20175", value)
89 @cd.each_feature_name {|f|
90 assert_instance_of(String, f)
93 ft = @cd.get_feature("numeric-value")
95 assert_kind_of(Integer, k)
96 assert_instance_of(String, v)
101 @cd = CHISE::ChiseDB.instance
102 ct = @cd.get_ccs("ascii")
103 char_id = ct.decode(65)
104 assert_equal(65, char_id)
105 assert_equal("A", CHISE::Character.get(char_id).to_s)
106 # assert_equal("A", char.to_s)
110 @cd = CHISE::ChiseDB.instance
111 char_id = "字".char.char_id
112 ft = @cd.get_feature("test")
114 ft.set_value(char_id, "test1")
115 assert_equal("test1", ft.get_value(char_id))
118 ds = @cd.instance_eval { @ds }
119 path = CHISE::DataSource::DB_DIR.path+"character/feature/test"
120 assert_equal(true, path.exist?)