fix: tighten emoji lookup contracts

This commit is contained in:
2026-08-12 15:36:37 +09:00
parent d0def814ef
commit fabce14933
9 changed files with 157 additions and 9 deletions

View File

@@ -89,3 +89,28 @@ dictionary_misses_clear_result(struct ct *t)
hmapfree(lang->dict);
lang->dict = saved;
}
void
dictionary_emoji_identity(struct ct *t)
{
Dictreq req;
Dictres res;
Hmap *saved;
Lang *lang;
Str key;
lang = getlang(LangEMOJI);
saved = lang->dict;
lang->dict = hmapalloc(2);
key = mkstr("é");
hmapset(&lang->dict, &key, "é", strlen("é"));
memset(&req, 0, sizeof req);
req.key = key;
req.pre = key;
req.lang = LangEMOJI;
dictlookup(&req, &res);
if(CT_EQ_INT(t, 1, res.nkouho))
checkstr(t, "emoji identity candidate", "é", &res.kouho[0]);
hmapfree(lang->dict);
lang->dict = saved;
}