add focused unit and map checks
This commit is contained in:
84
tests/vi_test.c
Normal file
84
tests/vi_test.c
Normal file
@@ -0,0 +1,84 @@
|
||||
#include "test.h"
|
||||
|
||||
static void
|
||||
typevi(struct ct *t, char *keys, char *want)
|
||||
{
|
||||
Emit e;
|
||||
Im state;
|
||||
Str out, shown;
|
||||
char *p;
|
||||
|
||||
memset(&state, 0, sizeof state);
|
||||
state.l = &testvi;
|
||||
sclear(&out);
|
||||
for(p = keys; *p != '\0'; p++){
|
||||
e = transvi(&state, (uchar)*p);
|
||||
sappend(&out, &e.s);
|
||||
state.pre = e.next;
|
||||
if(!e.eat)
|
||||
sputr(&out, (uchar)*p);
|
||||
}
|
||||
shown = shownpre(&state);
|
||||
sappend(&out, &shown);
|
||||
checkstr(t, keys, want, &out);
|
||||
}
|
||||
|
||||
void
|
||||
vietnamese_transitions(struct ct *t)
|
||||
{
|
||||
static const struct { char *keys, *want; } cases[] = {
|
||||
{ "as", "á" },
|
||||
{ "As", "Á" },
|
||||
{ "ans", "án" },
|
||||
{ "Ans", "Án" },
|
||||
{ "aws", "ắ" },
|
||||
{ "asw", "ắ" },
|
||||
{ "aww", "aw" },
|
||||
{ "ddd", "dd" },
|
||||
{ "ddas", "đá" },
|
||||
{ "dds", "đs" },
|
||||
{ "quas", "quá" },
|
||||
{ "quaf", "quà" },
|
||||
{ "quar", "quả" },
|
||||
{ "quax", "quã" },
|
||||
{ "quaj", "quạ" },
|
||||
{ "Quas", "Quá" },
|
||||
{ "gias", "giá" },
|
||||
{ "Gias", "Giá" },
|
||||
{ "gif", "gì" },
|
||||
{ "\\s", "s" },
|
||||
{ "a\\s", "as" },
|
||||
};
|
||||
int i;
|
||||
|
||||
for(i = 0; i < nelem(cases); i++)
|
||||
typevi(t, cases[i].keys, cases[i].want);
|
||||
}
|
||||
|
||||
void
|
||||
vietnamese_backspace(struct ct *t)
|
||||
{
|
||||
static const struct {
|
||||
char *pre, *raw, *rawafter, *after;
|
||||
} cases[] = {
|
||||
{ "as", "as", "a", "a" },
|
||||
{ "quá", "quas", "qua", "qua" },
|
||||
{ "à", "asf", "as", "á" },
|
||||
{ "a", "asz", "as", "á" },
|
||||
{ "quà", "quasf", "quas", "quá" },
|
||||
};
|
||||
Im state;
|
||||
Str shown;
|
||||
int i;
|
||||
|
||||
for(i = 0; i < nelem(cases); i++){
|
||||
memset(&state, 0, sizeof state);
|
||||
state.l = &testvi;
|
||||
state.pre = mkstr(cases[i].pre);
|
||||
state.raw = mkstr(cases[i].raw);
|
||||
backvi(&state);
|
||||
checkstr(t, cases[i].raw, cases[i].rawafter, &state.raw);
|
||||
shown = shownpre(&state);
|
||||
checkstr(t, cases[i].raw, cases[i].after, &shown);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user