X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fruby.git;a=blobdiff_plain;f=test%2Ftest-chisedb.rb;fp=test%2Ftest-chisedb.rb;h=02d9f2c0f9ce87e7319a574f083854551fede951;hp=f52547a343b59ff532c97ff9784f800513ffb20d;hb=98b534b0449bdeedcba40a1f692764569fe63ac7;hpb=9b4963acbdbc25c39a502d98a77e7de43d7d1c77 diff --git a/test/test-chisedb.rb b/test/test-chisedb.rb index f52547a..02d9f2c 100755 --- a/test/test-chisedb.rb +++ b/test/test-chisedb.rb @@ -4,119 +4,112 @@ require "common" class TestChiseDB < Test::Unit::TestCase - def test_libchise_r - db_dir = CHISE::DataSource::DB_DIR - assert_match(/chise-db\Z/, db_dir) + def test_chisedb + @cd = CHISE::ChiseDB.instance - @ds = CHISE::DataSource.new(CHISE::DataSource::Berkeley_DB, db_dir, 0, 0755) - assert_instance_of(CHISE::DataSource, @ds) - - @ct = @ds.get_ccs("=daikanwa") - assert_instance_of(CHISE::CCS, @ct) - char_id = @ct.decode(364) # get a character by Daikanwa number 364. - assert_equal(20175, char_id) - #str = format_char_id(20175) - #assert_equal("?\344\273\217", str) - - char_id = @ds.decode_char("=daikanwa", 364) - assert_equal(20175, char_id) - - @ft = @ds.get_feature("ideographic-structure") - assert_instance_of(CHISE::Feature, @ft) - value = @ft.get_value(char_id) - assert_instance_of(String, value) - assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value) + @cd.each_feature_name {|f| + assert_instance_of(String, f) + } - value = @ds.load_feature(char_id, "ideographic-structure") + # get a feature value + char_id = 0x4ECF + feature = @cd.get_feature("ideographic-structure") + assert_instance_of(CHISE::FeatureDB, feature) + #assert_equal(true, feature.setup_db(0)) + #assert_equal(true, feature.sync) + value = feature.get_value(char_id) assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value) - return - @ds.each_feature_name {|f| - assert_instance_of(String, f) - ft = @ds.get_feature(f) - v = ft.get_value(23383) - #ft.close - } + # shortcut + value = @cd.load_feature(char_id, "ideographic-structure") + assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value) - @ft.each_char {|k, v| - assert_kind_of(Integer, k) - assert_instance_of(String, v) + # set a value + feature = @cd.get_feature("test-chisedb") + assert_instance_of(CHISE::FeatureDB, feature) + v = "testvalue"+$$.to_s + assert_equal(true, feature.set_value(char_id, v)) + assert_equal(v, feature.get_value(char_id)) + + # each char + feature = @cd.get_feature("numeric-value") + feature.each_char {|cid, valdatum| + assert_kind_of(Numeric, cid) + #assert_instance_of(String, valdatum) } - ft = @ds.get_feature("numeric-value") - ft.each {|k, v| - assert_kind_of(Integer, k) - assert_instance_of(String, v) - } - end + # get a character by Daikanwa number 364. + ccs = @cd.get_ccs("=daikanwa") + assert_instance_of(CHISE::CCS_DB, ccs) + #assert_equal(true, ccs.setup_db(0)) + #assert_equal(true, ccs.sync) + char_id = ccs.decode(364) + assert_equal(0x4ECF, char_id) - def nu_test_each_ccs - @ds = CHISE::DataSource.new - @ds.each_ccs {|ccs| - assert_instance_of(String, ccs) - ct = @ds.get_ccs(ccs) - assert_instance_of(CHISE::CCSTable, ct) - } + # shortcut + char_id = @cd.decode_char("=daikanwa", 364) + assert_equal(0x4ECF, char_id) - ct = @ds.get_ccs("=ucs") - ct.each {|k, v| - assert_kind_of(Integer, k) - assert_kind_of(Integer, v) - } - #ct.close - end + # set a code_point + ccs = @cd.get_ccs("test-ccs") + assert_instance_of(CHISE::CCS_DB, ccs) + assert_equal(true, ccs.set($$, 0x4ECF)) + assert_equal(0x4ECF, ccs.decode($$)) - def test_error - db_dir = CHISE::DataSource::DB_DIR - @ds = CHISE::DataSource.new(CHISE::DataSource::Berkeley_DB, db_dir, 0, 0755) - @ft = @ds.get_feature("nosuchfeature") - v = @ft.get_value(20175) - assert_equal(nil, v) + @cd.close end - def test_chisedb + def test_chisedb2 @cd = CHISE::ChiseDB.instance - - char_id = @cd.decode_char("=daikanwa", 364) - assert_equal(20175, char_id) - - value = @cd.load_feature(char_id, "ideographic-structure") - assert_equal("(?\342\277\260 ?\344\272\273 ?\345\216\266)", value) - + char_id = 0x4ECF value = @cd.load_feature(char_id, "=ucs") - assert_equal("20175", value) - - @cd.each_feature_name {|f| - assert_instance_of(String, f) - } + assert_equal(20175, value) + end - ft = @cd.get_feature("numeric-value") - ft.each_char {|k, v| - assert_kind_of(Integer, k) - assert_instance_of(String, v) + def test_each_ccs + @cd = CHISE::ChiseDB.instance + @cd.each_ccs {|ccs| + assert_instance_of(String, ccs) + ccsdb = @cd.get_ccs(ccs) + assert_instance_of(CHISE::CCS_DB, ccsdb) } end - def test_ascii + def test_ccs_each_char @cd = CHISE::ChiseDB.instance - ct = @cd.get_ccs("ascii") - char_id = ct.decode(65) - assert_equal(65, char_id) - assert_equal("A", CHISE::Character.get(char_id).to_s) -# assert_equal("A", char.to_s) + ccs = @cd.get_ccs("=ucs") + ccs.each_char {|code_point, cid| + assert_kind_of(Integer, code_point) + assert_kind_of(Integer, cid) + } end - def test_put + def test_set @cd = CHISE::ChiseDB.instance char_id = "字".char.char_id - ft = @cd.get_feature("test") - ft.setup_db(1) - ft.set_value(char_id, "test1") - assert_equal("test1", ft.get_value(char_id)) - ft.sync + feature = @cd.get_feature("test") + feature.setup_db(1) # writable + feature.set_value(char_id, "test1") + assert_equal("test1", feature.get_value(char_id)) + #feature.sync ds = @cd.instance_eval { @ds } path = CHISE::DataSource::DB_DIR.path+"character/feature/test" assert_equal(true, path.exist?) end + + def test_error + db_dir = CHISE::DataSource::DB_DIR + @ds = CHISE::DataSource.new(CHISE::DataSource::Berkeley_DB, db_dir, 0, 0755) + @feature = @ds.get_feature("nosuchfeature") + v = @feature.get_value(20175) + assert_equal(nil, v) + end + + def test_ascii + @cd = CHISE::ChiseDB.instance + char_id = @cd.decode_char("ascii", 65) + assert_equal(65, char_id) + assert_equal("A", CHISE::Character.get(char_id).to_s) + end end