cskk 3.1.4

C ABIから使う事を目的とした SKK(Simple Kana Kanji henkan)方式のかな漢字変換ライブラリ
Documentation
extern crate cskk;

use crate::utils::{
    default_test_context, init_test_logger, test_context_with_dictionaries, transition_check,
};
use cskk::dictionary::CskkDictionary;
use cskk::skk_context_reset_rs;
use cskk::skk_modes::{CompositionMode, InputMode};
use std::sync::Arc;

mod utils;

#[test]
fn basic_abbreviation_mode() {
    init_test_logger();
    let dict =
        CskkDictionary::new_static_dict("tests/data/dictionaries/abbreviation.dat", "utf-8", false)
            .unwrap();
    let mut context = test_context_with_dictionaries(vec![Arc::new(dict)]);
    transition_check(
        &mut context,
        CompositionMode::Direct,
        InputMode::Hiragana,
        "slash c h a l a z a",
        "▽chalaza",
        "",
        InputMode::Hiragana,
    );
    skk_context_reset_rs(&mut context);
    transition_check(
        &mut context,
        CompositionMode::Direct,
        InputMode::Hiragana,
        "slash c h a l a z a space",
        "▼カラザ",
        "",
        InputMode::Hiragana,
    );
    skk_context_reset_rs(&mut context);
    transition_check(
        &mut context,
        CompositionMode::Direct,
        InputMode::Hiragana,
        "slash c h a l a z a space Return",
        "",
        "カラザ",
        InputMode::Hiragana,
    );
}

#[test]
fn confirm_on_abbreviation_mode() {
    init_test_logger();
    let mut context = default_test_context();
    transition_check(
        &mut context,
        CompositionMode::Direct,
        InputMode::Hiragana,
        "slash c h C-j",
        "",
        "ch",
        InputMode::Hiragana,
    );
}

#[test]
fn confirm_as_zenkaku_on_abbreviation_mode() {
    init_test_logger();
    let mut context = default_test_context();
    transition_check(
        &mut context,
        CompositionMode::Direct,
        InputMode::Hiragana,
        "slash C h C-q",
        "",
        "Ch",
        InputMode::Hiragana,
    );
}

#[test]
fn delete_on_abbreviation_mode() {
    init_test_logger();
    let mut context = default_test_context();
    transition_check(
        &mut context,
        CompositionMode::Direct,
        InputMode::Hiragana,
        "slash c h BackSpace",
        "▽c",
        "",
        InputMode::Hiragana,
    );
}

#[test]
fn abort_after_abbreviation_mode() {
    init_test_logger();
    let mut context = default_test_context();
    transition_check(
        &mut context,
        CompositionMode::Direct,
        InputMode::Hiragana,
        "slash c h a l a z a space C-g",
        "▽chalaza",
        "",
        InputMode::Hiragana,
    );
}