85 lines
2.4 KiB
Vala
85 lines
2.4 KiB
Vala
class ContextTests : Kkc.TestCase {
|
|
struct Conversion {
|
|
string sequence;
|
|
string result;
|
|
}
|
|
const Conversion eras[] = {
|
|
{ "s h o u w a", "昭和" },
|
|
{ "h e i s e i", "平成" },
|
|
{ "r e i w a", "令和" },
|
|
};
|
|
Kkc.Context context;
|
|
|
|
public ContextTests() {
|
|
base("Context");
|
|
add_test("era candidate", this.test_eras_candidate);
|
|
add_test("era commit", this.test_eras_commit);
|
|
}
|
|
|
|
void test_eras_candidate() {
|
|
foreach (var era in eras)
|
|
test_era_candidate(era);
|
|
}
|
|
|
|
void test_eras_commit() {
|
|
foreach (var era in eras)
|
|
test_era_commit(era);
|
|
}
|
|
|
|
private void test_era_candidate(Conversion era) {
|
|
context.process_key_events(era.sequence + " SPC SPC");
|
|
assert(context.candidates.get(0).output == era.result);
|
|
context.process_key_events("SPC");
|
|
assert (context.candidates.get(0).output == era.result);
|
|
context.reset ();
|
|
context.clear_output ();
|
|
}
|
|
|
|
private void test_era_commit(Conversion era) {
|
|
context.process_key_events(era.sequence + " SPC RET");
|
|
assert(context.has_output());
|
|
assert(context.peek_output() == era.result);
|
|
assert(context.has_output());
|
|
context.reset();
|
|
context.clear_output();
|
|
}
|
|
|
|
public override void set_up() {
|
|
try {
|
|
// Loading /usr/lib64/libkkc/models/sorted3/metadata.json
|
|
var model = Kkc.LanguageModel.load("sorted3");
|
|
context = new Kkc.Context(model);
|
|
} catch(Kkc.LanguageModelError e) {
|
|
stderr.printf("%s\n", e.message);
|
|
}
|
|
|
|
#if 0
|
|
try {
|
|
var srcdir = Environment.get_variable("srcdir");
|
|
assert(srcdir != null);
|
|
var dictionary = new Kkc.SystemSegmentDictionary(
|
|
Path.build_filename(srcdir, "system-segment-dictionary"));
|
|
context.dictionaries.add(dictionary);
|
|
} catch(Error e) {
|
|
stderr.printf("%s\n", e.message);
|
|
}
|
|
#endif
|
|
|
|
context.dictionaries.add(new Kkc.EmptySegmentDictionary());
|
|
}
|
|
|
|
public override void tear_down() {
|
|
context = null;
|
|
}
|
|
}
|
|
|
|
int main(string[] args) {
|
|
Intl.setlocale(LocaleCategory.ALL, "");
|
|
Test.init(ref args);
|
|
Kkc.init();
|
|
TestSuite root = TestSuite.get_root();
|
|
root.add_suite(new ContextTests().get_suite());
|
|
Test.run();
|
|
return 0;
|
|
}
|