vietc/engine/tests/generated_bulk.rs

1065 lines
34 KiB
Rust

/// Auto-generated from gen_tests example
/// Generated: 2026-06-24T19:55:36.520158
/// Total cases: 1000
use vietc_engine::{Engine, EngineEvent, InputMethod};
fn get_display(events: &[EngineEvent]) -> String {
let mut display = String::new();
for ev in events {
match ev {
EngineEvent::Flush(text) => {
if !display.ends_with(text) { display.push_str(text); }
}
EngineEvent::Insert(text) => display.push_str(text),
EngineEvent::Replace { backspaces, insert } => {
for _ in 0..*backspaces { display.pop(); }
display.push_str(insert);
}
EngineEvent::AutoRestore(word) => {
for _ in 0..word.len() { display.pop(); }
display.push_str(word);
}
EngineEvent::UndoTones { backspaces, restored } => {
for _ in 0..*backspaces { display.pop(); }
display.push_str(restored);
}
}
}
display
}
fn process_input(e: &mut Engine, input: &str) -> Vec<EngineEvent> {
let mut events = Vec::new();
for ch in input.chars() {
if let Some(ev) = e.process_key(ch) { events.push(ev); }
}
events
}
const TEST_CASES: &[(&str, &str, &str)] = &[
("aaf", "", "telex"),
("aas", "", "telex"),
("aaj", "", "telex"),
("aar", "", "telex"),
("aax", "", "telex"),
("aaw", "ă", "telex"),
("aaa", "â", "telex"),
("eee", "ê", "telex"),
("ooo", "ô", "telex"),
("oow", "ơ", "telex"),
("uuw", "", "telex"),
("acaf", "ầc", "telex"),
("acas", "ấc", "telex"),
("acaj", "ậc", "telex"),
("acar", "ẩc", "telex"),
("acax", "ẫc", "telex"),
("acaw", "ăc", "telex"),
("acaa", "âc", "telex"),
("ecee", "êc", "telex"),
("ocoo", "ôc", "telex"),
("ocow", "ơc", "telex"),
("ucuw", "ucư", "telex"),
("amaf", "ầm", "telex"),
("amas", "ấm", "telex"),
("amaj", "ậm", "telex"),
("amar", "ẩm", "telex"),
("amax", "ẫm", "telex"),
("amaw", "ăm", "telex"),
("amaa", "âm", "telex"),
("emee", "êm", "telex"),
("omoo", "ôm", "telex"),
("omow", "ơm", "telex"),
("umuw", "umư", "telex"),
("anaf", "ần", "telex"),
("anas", "ấn", "telex"),
("anaj", "ận", "telex"),
("anar", "ẩn", "telex"),
("anax", "ẫn", "telex"),
("anaw", "ăn", "telex"),
("anaa", "ân", "telex"),
("enee", "ên", "telex"),
("onoo", "ôn", "telex"),
("onow", "ơn", "telex"),
("unuw", "unư", "telex"),
("angaf", "ầng", "telex"),
("angas", "ấng", "telex"),
("angaj", "ậng", "telex"),
("angar", "ẩng", "telex"),
("angax", "ẫng", "telex"),
("angaw", "ăng", "telex"),
("angaa", "âng", "telex"),
("engee", "êng", "telex"),
("ongoo", "ông", "telex"),
("ongow", "ơng", "telex"),
("unguw", "ungư", "telex"),
("apaf", "ầp", "telex"),
("apas", "ấp", "telex"),
("apaj", "ập", "telex"),
("apar", "ẩp", "telex"),
("apax", "ẫp", "telex"),
("apaw", "ăp", "telex"),
("apaa", "âp", "telex"),
("epee", "êp", "telex"),
("opoo", "ôp", "telex"),
("opow", "ơp", "telex"),
("upuw", "upư", "telex"),
("ataf", "ầt", "telex"),
("atas", "ất", "telex"),
("ataj", "ật", "telex"),
("atar", "ẩt", "telex"),
("atax", "ẫt", "telex"),
("ataw", "ăt", "telex"),
("ataa", "ât", "telex"),
("etee", "êt", "telex"),
("otoo", "ôt", "telex"),
("otow", "ơt", "telex"),
("utuw", "utư", "telex"),
("baaf", "bầ", "telex"),
("baas", "bấ", "telex"),
("baaj", "bậ", "telex"),
("baar", "bẩ", "telex"),
("baax", "bẫ", "telex"),
("baaw", "", "telex"),
("baaa", "", "telex"),
("beee", "", "telex"),
("booo", "", "telex"),
("boow", "", "telex"),
("buuw", "buư", "telex"),
("bacaf", "bầc", "telex"),
("bacas", "bấc", "telex"),
("bacaj", "bậc", "telex"),
("bacar", "bẩc", "telex"),
("bacax", "bẫc", "telex"),
("bacaw", "băc", "telex"),
("bacaa", "bâc", "telex"),
("becee", "bêc", "telex"),
("bocoo", "bôc", "telex"),
("bocow", "bơc", "telex"),
("bucuw", "bucư", "telex"),
("bachaf", "bầch", "telex"),
("bachas", "bấch", "telex"),
("bachaj", "bậch", "telex"),
("bachar", "bẩch", "telex"),
("bachax", "bẫch", "telex"),
("bachaw", "băch", "telex"),
("bachaa", "bâch", "telex"),
("bechee", "bêch", "telex"),
("bochoo", "bôch", "telex"),
("bochow", "bơch", "telex"),
("buchuw", "buchư", "telex"),
("bamaf", "bầm", "telex"),
("bamas", "bấm", "telex"),
("bamaj", "bậm", "telex"),
("bamar", "bẩm", "telex"),
("bamax", "bẫm", "telex"),
("bamaw", "băm", "telex"),
("bamaa", "bâm", "telex"),
("bemee", "bêm", "telex"),
("bomoo", "bôm", "telex"),
("bomow", "bơm", "telex"),
("bumuw", "bumư", "telex"),
("banaf", "bần", "telex"),
("banas", "bấn", "telex"),
("banaj", "bận", "telex"),
("banar", "bẩn", "telex"),
("banax", "bẫn", "telex"),
("banaw", "băn", "telex"),
("banaa", "bân", "telex"),
("benee", "bên", "telex"),
("bonoo", "bôn", "telex"),
("bonow", "bơn", "telex"),
("bunuw", "bunư", "telex"),
("bangaf", "bầng", "telex"),
("bangas", "bấng", "telex"),
("bangaj", "bậng", "telex"),
("bangar", "bẩng", "telex"),
("bangax", "bẫng", "telex"),
("bangaw", "băng", "telex"),
("bangaa", "bâng", "telex"),
("bengee", "bêng", "telex"),
("bongoo", "bông", "telex"),
("bongow", "bơng", "telex"),
("bunguw", "bungư", "telex"),
("banhaf", "bầnh", "telex"),
("banhas", "bấnh", "telex"),
("banhaj", "bậnh", "telex"),
("banhar", "bẩnh", "telex"),
("banhax", "bẫnh", "telex"),
("banhaw", "bănh", "telex"),
("banhaa", "bânh", "telex"),
("benhee", "bênh", "telex"),
("bonhoo", "bônh", "telex"),
("bonhow", "bơnh", "telex"),
("bunhuw", "bunhư", "telex"),
("bapaf", "bầp", "telex"),
("bapas", "bấp", "telex"),
("bapaj", "bập", "telex"),
("bapar", "bẩp", "telex"),
("bapax", "bẫp", "telex"),
("bapaw", "băp", "telex"),
("bapaa", "bâp", "telex"),
("bepee", "bêp", "telex"),
("bopoo", "bôp", "telex"),
("bopow", "bơp", "telex"),
("bupuw", "bupư", "telex"),
("bataf", "bầt", "telex"),
("batas", "bất", "telex"),
("bataj", "bật", "telex"),
("batar", "bẩt", "telex"),
("batax", "bẫt", "telex"),
("bataw", "băt", "telex"),
("bataa", "bât", "telex"),
("betee", "bêt", "telex"),
("botoo", "bôt", "telex"),
("botow", "bơt", "telex"),
("butuw", "butư", "telex"),
("caaf", "cầ", "telex"),
("caas", "cấ", "telex"),
("caaj", "cậ", "telex"),
("caar", "cẩ", "telex"),
("caax", "cẫ", "telex"),
("caaw", "", "telex"),
("caaa", "", "telex"),
("ceee", "", "telex"),
("cooo", "", "telex"),
("coow", "", "telex"),
("cuuw", "cuư", "telex"),
("cacaf", "cầc", "telex"),
("cacas", "cấc", "telex"),
("cacaj", "cậc", "telex"),
("cacar", "cẩc", "telex"),
("cacax", "cẫc", "telex"),
("cacaw", "căc", "telex"),
("cacaa", "câc", "telex"),
("cecee", "cêc", "telex"),
("cocoo", "côc", "telex"),
("cocow", "cơc", "telex"),
("cucuw", "cucư", "telex"),
("cachaf", "cầch", "telex"),
("cachas", "cấch", "telex"),
("cachaj", "cậch", "telex"),
("cachar", "cẩch", "telex"),
("cachax", "cẫch", "telex"),
("cachaw", "căch", "telex"),
("cachaa", "câch", "telex"),
("cechee", "cêch", "telex"),
("cochoo", "côch", "telex"),
("cochow", "cơch", "telex"),
("cuchuw", "cuchư", "telex"),
("camaf", "cầm", "telex"),
("camas", "cấm", "telex"),
("camaj", "cậm", "telex"),
("camar", "cẩm", "telex"),
("camax", "cẫm", "telex"),
("camaw", "căm", "telex"),
("camaa", "câm", "telex"),
("cemee", "cêm", "telex"),
("comoo", "côm", "telex"),
("comow", "cơm", "telex"),
("cumuw", "cumư", "telex"),
("canaf", "cần", "telex"),
("canas", "cấn", "telex"),
("canaj", "cận", "telex"),
("canar", "cẩn", "telex"),
("canax", "cẫn", "telex"),
("canaw", "căn", "telex"),
("canaa", "cân", "telex"),
("cenee", "cên", "telex"),
("conoo", "côn", "telex"),
("conow", "cơn", "telex"),
("cunuw", "cunư", "telex"),
("cangaf", "cầng", "telex"),
("cangas", "cấng", "telex"),
("cangaj", "cậng", "telex"),
("cangar", "cẩng", "telex"),
("cangax", "cẫng", "telex"),
("cangaw", "căng", "telex"),
("cangaa", "câng", "telex"),
("cengee", "cêng", "telex"),
("congoo", "công", "telex"),
("congow", "cơng", "telex"),
("cunguw", "cungư", "telex"),
("canhaf", "cầnh", "telex"),
("canhas", "cấnh", "telex"),
("canhaj", "cậnh", "telex"),
("canhar", "cẩnh", "telex"),
("canhax", "cẫnh", "telex"),
("canhaw", "cănh", "telex"),
("canhaa", "cânh", "telex"),
("cenhee", "cênh", "telex"),
("conhoo", "cônh", "telex"),
("conhow", "cơnh", "telex"),
("cunhuw", "cunhư", "telex"),
("capaf", "cầp", "telex"),
("capas", "cấp", "telex"),
("capaj", "cập", "telex"),
("capar", "cẩp", "telex"),
("capax", "cẫp", "telex"),
("capaw", "căp", "telex"),
("capaa", "câp", "telex"),
("cepee", "cêp", "telex"),
("copoo", "côp", "telex"),
("copow", "cơp", "telex"),
("cupuw", "cupư", "telex"),
("cataf", "cầt", "telex"),
("catas", "cất", "telex"),
("cataj", "cật", "telex"),
("catar", "cẩt", "telex"),
("catax", "cẫt", "telex"),
("cataw", "căt", "telex"),
("cataa", "cât", "telex"),
("cetee", "cêt", "telex"),
("cotoo", "côt", "telex"),
("cotow", "cơt", "telex"),
("cutuw", "cutư", "telex"),
("chaaf", "chầ", "telex"),
("chaas", "chấ", "telex"),
("chaaj", "chậ", "telex"),
("chaar", "chẩ", "telex"),
("chaax", "chẫ", "telex"),
("chaaw", "chă", "telex"),
("chaaa", "châ", "telex"),
("cheee", "chê", "telex"),
("chooo", "chô", "telex"),
("choow", "chơ", "telex"),
("chuuw", "chuư", "telex"),
("chacaf", "chầc", "telex"),
("chacas", "chấc", "telex"),
("chacaj", "chậc", "telex"),
("chacar", "chẩc", "telex"),
("chacax", "chẫc", "telex"),
("chacaw", "chăc", "telex"),
("chacaa", "châc", "telex"),
("checee", "chêc", "telex"),
("chocoo", "chôc", "telex"),
("chocow", "chơc", "telex"),
("chucuw", "chucư", "telex"),
("chachaf", "chầch", "telex"),
("chachas", "chấch", "telex"),
("chachaj", "chậch", "telex"),
("chachar", "chẩch", "telex"),
("chachax", "chẫch", "telex"),
("chachaw", "chăch", "telex"),
("chachaa", "châch", "telex"),
("chechee", "chêch", "telex"),
("chochoo", "chôch", "telex"),
("chochow", "chơch", "telex"),
("chuchuw", "chuchư", "telex"),
("chamaf", "chầm", "telex"),
("chamas", "chấm", "telex"),
("chamaj", "chậm", "telex"),
("chamar", "chẩm", "telex"),
("chamax", "chẫm", "telex"),
("chamaw", "chăm", "telex"),
("chamaa", "châm", "telex"),
("chemee", "chêm", "telex"),
("chomoo", "chôm", "telex"),
("chomow", "chơm", "telex"),
("chumuw", "chumư", "telex"),
("chanaf", "chần", "telex"),
("chanas", "chấn", "telex"),
("chanaj", "chận", "telex"),
("chanar", "chẩn", "telex"),
("chanax", "chẫn", "telex"),
("chanaw", "chăn", "telex"),
("chanaa", "chân", "telex"),
("chenee", "chên", "telex"),
("chonoo", "chôn", "telex"),
("chonow", "chơn", "telex"),
("chunuw", "chunư", "telex"),
("changaf", "chầng", "telex"),
("changas", "chấng", "telex"),
("changaj", "chậng", "telex"),
("changar", "chẩng", "telex"),
("changax", "chẫng", "telex"),
("changaw", "chăng", "telex"),
("changaa", "châng", "telex"),
("chengee", "chêng", "telex"),
("chongoo", "chông", "telex"),
("chongow", "chơng", "telex"),
("chunguw", "chungư", "telex"),
("chanhaf", "chầnh", "telex"),
("chanhas", "chấnh", "telex"),
("chanhaj", "chậnh", "telex"),
("chanhar", "chẩnh", "telex"),
("chanhax", "chẫnh", "telex"),
("chanhaw", "chănh", "telex"),
("chanhaa", "chânh", "telex"),
("chenhee", "chênh", "telex"),
("chonhoo", "chônh", "telex"),
("chonhow", "chơnh", "telex"),
("chunhuw", "chunhư", "telex"),
("chapaf", "chầp", "telex"),
("chapas", "chấp", "telex"),
("chapaj", "chập", "telex"),
("chapar", "chẩp", "telex"),
("chapax", "chẫp", "telex"),
("chapaw", "chăp", "telex"),
("chapaa", "châp", "telex"),
("chepee", "chêp", "telex"),
("chopoo", "chôp", "telex"),
("chopow", "chơp", "telex"),
("chupuw", "chupư", "telex"),
("chataf", "chầt", "telex"),
("chatas", "chất", "telex"),
("chataj", "chật", "telex"),
("chatar", "chẩt", "telex"),
("chatax", "chẫt", "telex"),
("chataw", "chăt", "telex"),
("chataa", "chât", "telex"),
("chetee", "chêt", "telex"),
("chotoo", "chôt", "telex"),
("chotow", "chơt", "telex"),
("chutuw", "chutư", "telex"),
("daaf", "dầ", "telex"),
("daas", "dấ", "telex"),
("daaj", "dậ", "telex"),
("daar", "dẩ", "telex"),
("daax", "dẫ", "telex"),
("daaw", "", "telex"),
("daaa", "", "telex"),
("deee", "", "telex"),
("dooo", "", "telex"),
("doow", "", "telex"),
("duuw", "duư", "telex"),
("dacaf", "dầc", "telex"),
("dacas", "dấc", "telex"),
("dacaj", "dậc", "telex"),
("dacar", "dẩc", "telex"),
("dacax", "dẫc", "telex"),
("dacaw", "dăc", "telex"),
("dacaa", "dâc", "telex"),
("decee", "dêc", "telex"),
("docoo", "dôc", "telex"),
("docow", "dơc", "telex"),
("ducuw", "ducư", "telex"),
("dachaf", "dầch", "telex"),
("dachas", "dấch", "telex"),
("dachaj", "dậch", "telex"),
("dachar", "dẩch", "telex"),
("dachax", "dẫch", "telex"),
("dachaw", "dăch", "telex"),
("dachaa", "dâch", "telex"),
("dechee", "dêch", "telex"),
("dochoo", "dôch", "telex"),
("dochow", "dơch", "telex"),
("duchuw", "duchư", "telex"),
("damaf", "dầm", "telex"),
("damas", "dấm", "telex"),
("damaj", "dậm", "telex"),
("damar", "dẩm", "telex"),
("damax", "dẫm", "telex"),
("damaw", "dăm", "telex"),
("damaa", "dâm", "telex"),
("demee", "dêm", "telex"),
("domoo", "dôm", "telex"),
("domow", "dơm", "telex"),
("dumuw", "dumư", "telex"),
("danaf", "dần", "telex"),
("danas", "dấn", "telex"),
("danaj", "dận", "telex"),
("danar", "dẩn", "telex"),
("danax", "dẫn", "telex"),
("danaw", "dăn", "telex"),
("danaa", "dân", "telex"),
("denee", "dên", "telex"),
("donoo", "dôn", "telex"),
("donow", "dơn", "telex"),
("dunuw", "dunư", "telex"),
("dangaf", "dầng", "telex"),
("dangas", "dấng", "telex"),
("dangaj", "dậng", "telex"),
("dangar", "dẩng", "telex"),
("dangax", "dẫng", "telex"),
("dangaw", "dăng", "telex"),
("dangaa", "dâng", "telex"),
("dengee", "dêng", "telex"),
("dongoo", "dông", "telex"),
("dongow", "dơng", "telex"),
("dunguw", "dungư", "telex"),
("danhaf", "dầnh", "telex"),
("danhas", "dấnh", "telex"),
("danhaj", "dậnh", "telex"),
("danhar", "dẩnh", "telex"),
("danhax", "dẫnh", "telex"),
("danhaw", "dănh", "telex"),
("danhaa", "dânh", "telex"),
("denhee", "dênh", "telex"),
("donhoo", "dônh", "telex"),
("donhow", "dơnh", "telex"),
("dunhuw", "dunhư", "telex"),
("dapaf", "dầp", "telex"),
("dapas", "dấp", "telex"),
("dapaj", "dập", "telex"),
("dapar", "dẩp", "telex"),
("dapax", "dẫp", "telex"),
("dapaw", "dăp", "telex"),
("dapaa", "dâp", "telex"),
("depee", "dêp", "telex"),
("dopoo", "dôp", "telex"),
("dopow", "dơp", "telex"),
("dupuw", "dupư", "telex"),
("dataf", "dầt", "telex"),
("datas", "dất", "telex"),
("dataj", "dật", "telex"),
("datar", "dẩt", "telex"),
("datax", "dẫt", "telex"),
("dataw", "dăt", "telex"),
("dataa", "dât", "telex"),
("detee", "dêt", "telex"),
("dotoo", "dôt", "telex"),
("dotow", "dơt", "telex"),
("dutuw", "dutư", "telex"),
("gaaf", "gầ", "telex"),
("gaas", "gấ", "telex"),
("gaaj", "gậ", "telex"),
("gaar", "gẩ", "telex"),
("gaax", "gẫ", "telex"),
("gaaw", "", "telex"),
("gaaa", "", "telex"),
("geee", "", "telex"),
("gooo", "", "telex"),
("goow", "", "telex"),
("guuw", "guư", "telex"),
("ganaf", "gần", "telex"),
("ganas", "gấn", "telex"),
("ganaj", "gận", "telex"),
("ganar", "gẩn", "telex"),
("ganax", "gẫn", "telex"),
("ganaw", "găn", "telex"),
("ganaa", "gân", "telex"),
("genee", "gên", "telex"),
("gonoo", "gôn", "telex"),
("gonow", "gơn", "telex"),
("gunuw", "gunư", "telex"),
("gangaf", "gầng", "telex"),
("gangas", "gấng", "telex"),
("gangaj", "gậng", "telex"),
("gangar", "gẩng", "telex"),
("gangax", "gẫng", "telex"),
("gangaw", "găng", "telex"),
("gangaa", "gâng", "telex"),
("gengee", "gêng", "telex"),
("gongoo", "gông", "telex"),
("gongow", "gơng", "telex"),
("gunguw", "gungư", "telex"),
("ghaaf", "ghầ", "telex"),
("ghaas", "ghấ", "telex"),
("ghaaj", "ghậ", "telex"),
("ghaar", "ghẩ", "telex"),
("ghaax", "ghẫ", "telex"),
("ghaaw", "ghă", "telex"),
("ghaaa", "ghâ", "telex"),
("gheee", "ghê", "telex"),
("ghooo", "ghô", "telex"),
("ghoow", "ghơ", "telex"),
("ghuuw", "ghuư", "telex"),
("haaf", "hầ", "telex"),
("haas", "hấ", "telex"),
("haaj", "hậ", "telex"),
("haar", "hẩ", "telex"),
("haax", "hẫ", "telex"),
("haaw", "", "telex"),
("haaa", "", "telex"),
("heee", "", "telex"),
("hooo", "", "telex"),
("hoow", "", "telex"),
("huuw", "huư", "telex"),
("hacaf", "hầc", "telex"),
("hacas", "hấc", "telex"),
("hacaj", "hậc", "telex"),
("hacar", "hẩc", "telex"),
("hacax", "hẫc", "telex"),
("hacaw", "hăc", "telex"),
("hacaa", "hâc", "telex"),
("hecee", "hêc", "telex"),
("hocoo", "hôc", "telex"),
("hocow", "hơc", "telex"),
("hucuw", "hucư", "telex"),
("hachaf", "hầch", "telex"),
("hachas", "hấch", "telex"),
("hachaj", "hậch", "telex"),
("hachar", "hẩch", "telex"),
("hachax", "hẫch", "telex"),
("hachaw", "hăch", "telex"),
("hachaa", "hâch", "telex"),
("hechee", "hêch", "telex"),
("hochoo", "hôch", "telex"),
("hochow", "hơch", "telex"),
("huchuw", "huchư", "telex"),
("hamaf", "hầm", "telex"),
("hamas", "hấm", "telex"),
("hamaj", "hậm", "telex"),
("hamar", "hẩm", "telex"),
("hamax", "hẫm", "telex"),
("hamaw", "hăm", "telex"),
("hamaa", "hâm", "telex"),
("hemee", "hêm", "telex"),
("homoo", "hôm", "telex"),
("homow", "hơm", "telex"),
("humuw", "humư", "telex"),
("hanaf", "hần", "telex"),
("hanas", "hấn", "telex"),
("hanaj", "hận", "telex"),
("hanar", "hẩn", "telex"),
("hanax", "hẫn", "telex"),
("hanaw", "hăn", "telex"),
("hanaa", "hân", "telex"),
("henee", "hên", "telex"),
("honoo", "hôn", "telex"),
("honow", "hơn", "telex"),
("hunuw", "hunư", "telex"),
("hangaf", "hầng", "telex"),
("hangas", "hấng", "telex"),
("hangaj", "hậng", "telex"),
("hangar", "hẩng", "telex"),
("hangax", "hẫng", "telex"),
("hangaw", "hăng", "telex"),
("hangaa", "hâng", "telex"),
("hengee", "hêng", "telex"),
("hongoo", "hông", "telex"),
("hongow", "hơng", "telex"),
("hunguw", "hungư", "telex"),
("hanhaf", "hầnh", "telex"),
("hanhas", "hấnh", "telex"),
("hanhaj", "hậnh", "telex"),
("hanhar", "hẩnh", "telex"),
("hanhax", "hẫnh", "telex"),
("hanhaw", "hănh", "telex"),
("hanhaa", "hânh", "telex"),
("henhee", "hênh", "telex"),
("honhoo", "hônh", "telex"),
("honhow", "hơnh", "telex"),
("hunhuw", "hunhư", "telex"),
("hapaf", "hầp", "telex"),
("hapas", "hấp", "telex"),
("hapaj", "hập", "telex"),
("hapar", "hẩp", "telex"),
("hapax", "hẫp", "telex"),
("hapaw", "hăp", "telex"),
("hapaa", "hâp", "telex"),
("hepee", "hêp", "telex"),
("hopoo", "hôp", "telex"),
("hopow", "hơp", "telex"),
("hupuw", "hupư", "telex"),
("hataf", "hầt", "telex"),
("hatas", "hất", "telex"),
("hataj", "hật", "telex"),
("hatar", "hẩt", "telex"),
("hatax", "hẫt", "telex"),
("hataw", "hăt", "telex"),
("hataa", "hât", "telex"),
("hetee", "hêt", "telex"),
("hotoo", "hôt", "telex"),
("hotow", "hơt", "telex"),
("hutuw", "hutư", "telex"),
("kaaf", "kầ", "telex"),
("kaas", "kấ", "telex"),
("kaaj", "kậ", "telex"),
("kaar", "kẩ", "telex"),
("kaax", "kẫ", "telex"),
("kaaw", "", "telex"),
("kaaa", "", "telex"),
("keee", "", "telex"),
("kooo", "", "telex"),
("koow", "", "telex"),
("kuuw", "kuư", "telex"),
("kacaf", "kầc", "telex"),
("kacas", "kấc", "telex"),
("kacaj", "kậc", "telex"),
("kacar", "kẩc", "telex"),
("kacax", "kẫc", "telex"),
("kacaw", "kăc", "telex"),
("kacaa", "kâc", "telex"),
("kecee", "kêc", "telex"),
("kocoo", "kôc", "telex"),
("kocow", "kơc", "telex"),
("kucuw", "kucư", "telex"),
("kachaf", "kầch", "telex"),
("kachas", "kấch", "telex"),
("kachaj", "kậch", "telex"),
("kachar", "kẩch", "telex"),
("kachax", "kẫch", "telex"),
("kachaw", "kăch", "telex"),
("kachaa", "kâch", "telex"),
("kechee", "kêch", "telex"),
("kochoo", "kôch", "telex"),
("kochow", "kơch", "telex"),
("kuchuw", "kuchư", "telex"),
("kamaf", "kầm", "telex"),
("kamas", "kấm", "telex"),
("kamaj", "kậm", "telex"),
("kamar", "kẩm", "telex"),
("kamax", "kẫm", "telex"),
("kamaw", "kăm", "telex"),
("kamaa", "kâm", "telex"),
("kemee", "kêm", "telex"),
("komoo", "kôm", "telex"),
("komow", "kơm", "telex"),
("kumuw", "kumư", "telex"),
("kanaf", "kần", "telex"),
("kanas", "kấn", "telex"),
("kanaj", "kận", "telex"),
("kanar", "kẩn", "telex"),
("kanax", "kẫn", "telex"),
("kanaw", "kăn", "telex"),
("kanaa", "kân", "telex"),
("kenee", "kên", "telex"),
("konoo", "kôn", "telex"),
("konow", "kơn", "telex"),
("kunuw", "kunư", "telex"),
("kangaf", "kầng", "telex"),
("kangas", "kấng", "telex"),
("kangaj", "kậng", "telex"),
("kangar", "kẩng", "telex"),
("kangax", "kẫng", "telex"),
("kangaw", "kăng", "telex"),
("kangaa", "kâng", "telex"),
("kengee", "kêng", "telex"),
("kongoo", "kông", "telex"),
("kongow", "kơng", "telex"),
("kunguw", "kungư", "telex"),
("kanhaf", "kầnh", "telex"),
("kanhas", "kấnh", "telex"),
("kanhaj", "kậnh", "telex"),
("kanhar", "kẩnh", "telex"),
("kanhax", "kẫnh", "telex"),
("kanhaw", "kănh", "telex"),
("kanhaa", "kânh", "telex"),
("kenhee", "kênh", "telex"),
("konhoo", "kônh", "telex"),
("konhow", "kơnh", "telex"),
("kunhuw", "kunhư", "telex"),
("kapaf", "kầp", "telex"),
("kapas", "kấp", "telex"),
("kapaj", "kập", "telex"),
("kapar", "kẩp", "telex"),
("kapax", "kẫp", "telex"),
("kapaw", "kăp", "telex"),
("kapaa", "kâp", "telex"),
("kepee", "kêp", "telex"),
("kopoo", "kôp", "telex"),
("kopow", "kơp", "telex"),
("kupuw", "kupư", "telex"),
("kataf", "kầt", "telex"),
("katas", "kất", "telex"),
("kataj", "kật", "telex"),
("katar", "kẩt", "telex"),
("katax", "kẫt", "telex"),
("kataw", "kăt", "telex"),
("kataa", "kât", "telex"),
("ketee", "kêt", "telex"),
("kotoo", "kôt", "telex"),
("kotow", "kơt", "telex"),
("kutuw", "kutư", "telex"),
("khaaf", "khầ", "telex"),
("khaas", "khấ", "telex"),
("khaaj", "khậ", "telex"),
("khaar", "khẩ", "telex"),
("khaax", "khẫ", "telex"),
("khaaw", "khă", "telex"),
("khaaa", "khâ", "telex"),
("kheee", "khê", "telex"),
("khooo", "khô", "telex"),
("khoow", "khơ", "telex"),
("khuuw", "khuư", "telex"),
("khacaf", "khầc", "telex"),
("khacas", "khấc", "telex"),
("khacaj", "khậc", "telex"),
("khacar", "khẩc", "telex"),
("khacax", "khẫc", "telex"),
("khacaw", "khăc", "telex"),
("khacaa", "khâc", "telex"),
("khecee", "khêc", "telex"),
("khocoo", "khôc", "telex"),
("khocow", "khơc", "telex"),
("khucuw", "khucư", "telex"),
("khachaf", "khầch", "telex"),
("khachas", "khấch", "telex"),
("khachaj", "khậch", "telex"),
("khachar", "khẩch", "telex"),
("khachax", "khẫch", "telex"),
("khachaw", "khăch", "telex"),
("khachaa", "khâch", "telex"),
("khechee", "khêch", "telex"),
("khochoo", "khôch", "telex"),
("khochow", "khơch", "telex"),
("khuchuw", "khuchư", "telex"),
("khamaf", "khầm", "telex"),
("khamas", "khấm", "telex"),
("khamaj", "khậm", "telex"),
("khamar", "khẩm", "telex"),
("khamax", "khẫm", "telex"),
("khamaw", "khăm", "telex"),
("khamaa", "khâm", "telex"),
("khemee", "khêm", "telex"),
("khomoo", "khôm", "telex"),
("khomow", "khơm", "telex"),
("khumuw", "khumư", "telex"),
("khanaf", "khần", "telex"),
("khanas", "khấn", "telex"),
("khanaj", "khận", "telex"),
("khanar", "khẩn", "telex"),
("khanax", "khẫn", "telex"),
("khanaw", "khăn", "telex"),
("khanaa", "khân", "telex"),
("khenee", "khên", "telex"),
("khonoo", "khôn", "telex"),
("khonow", "khơn", "telex"),
("khunuw", "khunư", "telex"),
("khangaf", "khầng", "telex"),
("khangas", "khấng", "telex"),
("khangaj", "khậng", "telex"),
("khangar", "khẩng", "telex"),
("khangax", "khẫng", "telex"),
("khangaw", "khăng", "telex"),
("khangaa", "khâng", "telex"),
("khengee", "khêng", "telex"),
("khongoo", "không", "telex"),
("khongow", "khơng", "telex"),
("khunguw", "khungư", "telex"),
("khanhaf", "khầnh", "telex"),
("khanhas", "khấnh", "telex"),
("khanhaj", "khậnh", "telex"),
("khanhar", "khẩnh", "telex"),
("khanhax", "khẫnh", "telex"),
("khanhaw", "khănh", "telex"),
("khanhaa", "khânh", "telex"),
("khenhee", "khênh", "telex"),
("khonhoo", "khônh", "telex"),
("khonhow", "khơnh", "telex"),
("khunhuw", "khunhư", "telex"),
("khapaf", "khầp", "telex"),
("khapas", "khấp", "telex"),
("khapaj", "khập", "telex"),
("khapar", "khẩp", "telex"),
("khapax", "khẫp", "telex"),
("khapaw", "khăp", "telex"),
("khapaa", "khâp", "telex"),
("khepee", "khêp", "telex"),
("khopoo", "khôp", "telex"),
("khopow", "khơp", "telex"),
("khupuw", "khupư", "telex"),
("khataf", "khầt", "telex"),
("khatas", "khất", "telex"),
("khataj", "khật", "telex"),
("khatar", "khẩt", "telex"),
("khatax", "khẫt", "telex"),
("khataw", "khăt", "telex"),
("khataa", "khât", "telex"),
("khetee", "khêt", "telex"),
("khotoo", "khôt", "telex"),
("khotow", "khơt", "telex"),
("khutuw", "khutư", "telex"),
("laaf", "lầ", "telex"),
("laas", "lấ", "telex"),
("laaj", "lậ", "telex"),
("laar", "lẩ", "telex"),
("laax", "lẫ", "telex"),
("laaw", "", "telex"),
("laaa", "", "telex"),
("leee", "", "telex"),
("looo", "", "telex"),
("loow", "", "telex"),
("luuw", "luư", "telex"),
("lacaf", "lầc", "telex"),
("lacas", "lấc", "telex"),
("lacaj", "lậc", "telex"),
("lacar", "lẩc", "telex"),
("lacax", "lẫc", "telex"),
("lacaw", "lăc", "telex"),
("lacaa", "lâc", "telex"),
("lecee", "lêc", "telex"),
("locoo", "lôc", "telex"),
("locow", "lơc", "telex"),
("lucuw", "lucư", "telex"),
("lachaf", "lầch", "telex"),
("lachas", "lấch", "telex"),
("lachaj", "lậch", "telex"),
("lachar", "lẩch", "telex"),
("lachax", "lẫch", "telex"),
("lachaw", "lăch", "telex"),
("lachaa", "lâch", "telex"),
("lechee", "lêch", "telex"),
("lochoo", "lôch", "telex"),
("lochow", "lơch", "telex"),
("luchuw", "luchư", "telex"),
("lamaf", "lầm", "telex"),
("lamas", "lấm", "telex"),
("lamaj", "lậm", "telex"),
("lamar", "lẩm", "telex"),
("lamax", "lẫm", "telex"),
("lamaw", "lăm", "telex"),
("lamaa", "lâm", "telex"),
("lemee", "lêm", "telex"),
("lomoo", "lôm", "telex"),
("lomow", "lơm", "telex"),
("lumuw", "lumư", "telex"),
("lanaf", "lần", "telex"),
("lanas", "lấn", "telex"),
("lanaj", "lận", "telex"),
("lanar", "lẩn", "telex"),
("lanax", "lẫn", "telex"),
("lanaw", "lăn", "telex"),
("lanaa", "lân", "telex"),
("lenee", "lên", "telex"),
("lonoo", "lôn", "telex"),
("lonow", "lơn", "telex"),
("lunuw", "lunư", "telex"),
("langaf", "lầng", "telex"),
("langas", "lấng", "telex"),
("langaj", "lậng", "telex"),
("langar", "lẩng", "telex"),
("langax", "lẫng", "telex"),
("langaw", "lăng", "telex"),
("langaa", "lâng", "telex"),
("lengee", "lêng", "telex"),
("longoo", "lông", "telex"),
("longow", "lơng", "telex"),
("lunguw", "lungư", "telex"),
("lanhaf", "lầnh", "telex"),
("lanhas", "lấnh", "telex"),
("lanhaj", "lậnh", "telex"),
("lanhar", "lẩnh", "telex"),
("lanhax", "lẫnh", "telex"),
("lanhaw", "lănh", "telex"),
("lanhaa", "lânh", "telex"),
("lenhee", "lênh", "telex"),
("lonhoo", "lônh", "telex"),
("lonhow", "lơnh", "telex"),
("lunhuw", "lunhư", "telex"),
("lapaf", "lầp", "telex"),
("lapas", "lấp", "telex"),
("lapaj", "lập", "telex"),
("lapar", "lẩp", "telex"),
("lapax", "lẫp", "telex"),
("lapaw", "lăp", "telex"),
("lapaa", "lâp", "telex"),
("lepee", "lêp", "telex"),
("lopoo", "lôp", "telex"),
("lopow", "lơp", "telex"),
("lupuw", "lupư", "telex"),
("lataf", "lầt", "telex"),
("latas", "lất", "telex"),
("lataj", "lật", "telex"),
("latar", "lẩt", "telex"),
("latax", "lẫt", "telex"),
("lataw", "lăt", "telex"),
("lataa", "lât", "telex"),
("letee", "lêt", "telex"),
("lotoo", "lôt", "telex"),
("lotow", "lơt", "telex"),
("lutuw", "lutư", "telex"),
("maaf", "mầ", "telex"),
("maas", "mấ", "telex"),
("maaj", "mậ", "telex"),
("maar", "mẩ", "telex"),
("maax", "mẫ", "telex"),
("maaw", "", "telex"),
("maaa", "", "telex"),
("meee", "", "telex"),
("mooo", "", "telex"),
("moow", "", "telex"),
("muuw", "muư", "telex"),
("macaf", "mầc", "telex"),
("macas", "mấc", "telex"),
("macaj", "mậc", "telex"),
("macar", "mẩc", "telex"),
("macax", "mẫc", "telex"),
("macaw", "măc", "telex"),
("macaa", "mâc", "telex"),
("mecee", "mêc", "telex"),
("mocoo", "môc", "telex"),
("mocow", "mơc", "telex"),
("mucuw", "mucư", "telex"),
("machaf", "mầch", "telex"),
("machas", "mấch", "telex"),
("machaj", "mậch", "telex"),
("machar", "mẩch", "telex"),
("machax", "mẫch", "telex"),
("machaw", "măch", "telex"),
("machaa", "mâch", "telex"),
("mechee", "mêch", "telex"),
("mochoo", "môch", "telex"),
("mochow", "mơch", "telex"),
("muchuw", "muchư", "telex"),
("mamaf", "mầm", "telex"),
("mamas", "mấm", "telex"),
("mamaj", "mậm", "telex"),
("mamar", "mẩm", "telex"),
("mamax", "mẫm", "telex"),
("mamaw", "măm", "telex"),
("mamaa", "mâm", "telex"),
("memee", "mêm", "telex"),
("momoo", "môm", "telex"),
("momow", "mơm", "telex"),
("mumuw", "mumư", "telex"),
("manaf", "mần", "telex"),
("manas", "mấn", "telex"),
("manaj", "mận", "telex"),
("manar", "mẩn", "telex"),
("manax", "mẫn", "telex"),
("manaw", "măn", "telex"),
("manaa", "mân", "telex"),
("menee", "mên", "telex"),
("monoo", "môn", "telex"),
("monow", "mơn", "telex"),
("munuw", "munư", "telex"),
("mangaf", "mầng", "telex"),
("mangas", "mấng", "telex"),
("mangaj", "mậng", "telex"),
("mangar", "mẩng", "telex"),
("mangax", "mẫng", "telex"),
("mangaw", "măng", "telex"),
("mangaa", "mâng", "telex"),
("mengee", "mêng", "telex"),
("mongoo", "mông", "telex"),
("mongow", "mơng", "telex"),
("munguw", "mungư", "telex"),
("manhaf", "mầnh", "telex"),
("manhas", "mấnh", "telex"),
("manhaj", "mậnh", "telex"),
("manhar", "mẩnh", "telex"),
("manhax", "mẫnh", "telex"),
("manhaw", "mănh", "telex"),
("manhaa", "mânh", "telex"),
("menhee", "mênh", "telex"),
("monhoo", "mônh", "telex"),
("monhow", "mơnh", "telex"),
("munhuw", "munhư", "telex"),
("mapaf", "mầp", "telex"),
("mapas", "mấp", "telex"),
("mapaj", "mập", "telex"),
("mapar", "mẩp", "telex"),
("mapax", "mẫp", "telex"),
("mapaw", "măp", "telex"),
("mapaa", "mâp", "telex"),
("mepee", "mêp", "telex"),
("mopoo", "môp", "telex"),
("mopow", "mơp", "telex"),
];
#[test]
fn test_generated_bulk() {
let mut failures = Vec::new();
for (i, &(input, expected, mode)) in TEST_CASES.iter().enumerate() {
let im = match mode {
"telex" => InputMethod::Telex,
"vni" => InputMethod::Vni,
_ => unreachable!(),
};
let mut e = Engine::new(im);
let actual = get_display(&process_input(&mut e, input));
if actual != expected {
failures.push(format!("[{}] '{}' -> '{}' (expected '{}')", i, input, actual, expected));
}
}
if !failures.is_empty() {
for f in &failures[..10.min(failures.len())] {
eprintln!("{}", f);
}
panic!("{}/{} tests FAILED", failures.len(), TEST_CASES.len());
}
eprintln!("All {} generated tests PASSED", TEST_CASES.len());
}