add focused unit and map checks
This commit is contained in:
53
tests/dict_test.c
Normal file
53
tests/dict_test.c
Normal file
@@ -0,0 +1,53 @@
|
||||
#include "test.h"
|
||||
|
||||
void
|
||||
dictionary_candidates(struct ct *t)
|
||||
{
|
||||
char many[512], item[8];
|
||||
char *p;
|
||||
Dictreq req;
|
||||
Dictres res;
|
||||
Hmap *saved;
|
||||
Lang *lang;
|
||||
Str key;
|
||||
int i;
|
||||
|
||||
lang = getlang(LangJP);
|
||||
saved = lang->dict;
|
||||
lang->dict = hmapalloc(1);
|
||||
key = mkstr("かな");
|
||||
hmapset(&lang->dict, &key, " 候補1 かな 候補2 ",
|
||||
strlen(" 候補1 かな 候補2 "));
|
||||
memset(&req, 0, sizeof req);
|
||||
req.key = key;
|
||||
req.pre = mkstr("preedit-one");
|
||||
req.lang = LangJP;
|
||||
dictlookup(&req, &res);
|
||||
if(!CT_EQ_INT(t, 2, res.nkouho))
|
||||
goto cleanup;
|
||||
CT_EQ_INT(t, 0, scmp(&req.pre, &res.key));
|
||||
checkstr(t, "candidate 1", "候補1", &res.kouho[0]);
|
||||
checkstr(t, "candidate 2", "候補2", &res.kouho[1]);
|
||||
key = mkstr("key");
|
||||
p = many;
|
||||
for(i = 0; i < Maxkouho+1; i++){
|
||||
snprint(item, sizeof item, "c%02d", i);
|
||||
if(i > 0)
|
||||
*p++ = ' ';
|
||||
memmove(p, item, strlen(item));
|
||||
p += strlen(item);
|
||||
}
|
||||
*p = '\0';
|
||||
hmapset(&lang->dict, &key, many, strlen(many));
|
||||
req.key = key;
|
||||
req.pre = mkstr("preedit-two");
|
||||
dictlookup(&req, &res);
|
||||
if(!CT_EQ_INT(t, Maxkouho, res.nkouho))
|
||||
goto cleanup;
|
||||
CT_EQ_INT(t, 0, scmp(&req.pre, &res.key));
|
||||
checkstr(t, "first capped candidate", "c00", &res.kouho[0]);
|
||||
checkstr(t, "last capped candidate", "c31", &res.kouho[31]);
|
||||
cleanup:
|
||||
hmapfree(lang->dict);
|
||||
lang->dict = saved;
|
||||
}
|
||||
Reference in New Issue
Block a user