2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
6 class TestLibChise < 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 @ds.each_feature_name {|name|
15 #assert_instance_of(String, name)
20 feature = @ds.get_feature("ideographic-structure")
21 assert_instance_of(CHISE::Feature, feature)
22 assert_equal(true, feature.setup_db(0))
23 assert_equal(true, feature.sync)
24 value = feature.get_value(char_id)
25 assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value)
28 value = @ds.load_feature(char_id, "ideographic-structure")
29 assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value)
32 feature = @ds.get_feature("test-libchise")
33 assert_instance_of(CHISE::Feature, feature)
34 v = "testvalue"+$$.to_s
35 assert_equal(true, feature.set_value(char_id, v))
36 assert_equal(v, feature.get_value(char_id))
39 feature = @ds.get_feature("numeric-value")
40 feature.each_char {|cid, valdatum|
41 assert_kind_of(Numeric, cid)
42 assert_instance_of(String, valdatum)
44 ucs = @ds.get_feature("=ucs").get_value(cid)
46 assert_instance_of(String, ucs)
48 ucs = @ds.get_feature("=>ucs").get_value(cid)
50 assert_instance_of(String, ucs)
54 name = @ds.get_feature("name").get_value(cid)
56 assert_instance_of(String, name)
60 # get a character by Daikanwa number 364.
61 ccs = @ds.get_ccs("=daikanwa")
62 assert_instance_of(CHISE::CCS, ccs)
63 assert_equal(true, ccs.setup_db(0))
64 assert_equal(true, ccs.sync)
65 char_id = ccs.decode(364)
66 assert_equal(0x4ECF, char_id)
69 char_id = @ds.decode_char("=daikanwa", 364)
70 assert_equal(0x4ECF, char_id)
73 ccs = @ds.get_ccs("test-ccs")
74 assert_instance_of(CHISE::CCS, ccs)
75 assert_equal(true, ccs.set($$, 0x4ECF))
76 assert_equal(0x4ECF, ccs.decode($$))