File: testtablerule.cpp

package info (click to toggle)
libime 1.1.13-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 51,612 kB
  • sloc: cpp: 40,794; ansic: 952; python: 130; sh: 32; makefile: 11
file content (60 lines) | stat: -rw-r--r-- 2,859 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
 * SPDX-FileCopyrightText: 2023-2023 CSSlayer <wengxt@gmail.com>
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#include <fcitx-utils/log.h>
#include "libime/table/tablerule.h"

using namespace libime;

int main() {
    {
        TableRule rule("e2=p11+p1z+p21+p2y+p2z", 5);
        FCITX_ASSERT(rule.codeLength() == 5);
        FCITX_ASSERT(rule.entries().size() == 5);
        FCITX_ASSERT(rule.flag() == TableRuleFlag::LengthEqual);
        FCITX_ASSERT(rule.toString() == "e2=p11+p1z+p21+p2y+p2z");
        FCITX_ASSERT(rule.phraseLength() == 2);
        FCITX_ASSERT(rule.entries()[0].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[0].index() == 1);
        FCITX_ASSERT(rule.entries()[0].character() == 1);
        FCITX_ASSERT(rule.entries()[1].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[1].index() == -1);
        FCITX_ASSERT(rule.entries()[1].character() == 1);
        FCITX_ASSERT(rule.entries()[2].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[2].index() == 1);
        FCITX_ASSERT(rule.entries()[2].character() == 2);
        FCITX_ASSERT(rule.entries()[3].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[3].index() == -2);
        FCITX_ASSERT(rule.entries()[3].character() == 2);
        FCITX_ASSERT(rule.entries()[4].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[4].index() == -1);
        FCITX_ASSERT(rule.entries()[4].character() == 2);
    }
    {
        TableRule rule("E3=P11+P1Z+P21+P2Z+P3Z", 5);
        FCITX_ASSERT(rule.codeLength() == 5);
        FCITX_ASSERT(rule.entries().size() == 5);
        FCITX_ASSERT(rule.flag() == TableRuleFlag::LengthEqual);
        FCITX_ASSERT(rule.toString() == "e3=p11+p1z+p21+p2z+p3z");
        FCITX_ASSERT(rule.phraseLength() == 3);
        FCITX_ASSERT(rule.entries()[0].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[0].index() == 1);
        FCITX_ASSERT(rule.entries()[0].character() == 1);
        FCITX_ASSERT(rule.entries()[1].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[1].index() == -1);
        FCITX_ASSERT(rule.entries()[1].character() == 1);
        FCITX_ASSERT(rule.entries()[2].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[2].index() == 1);
        FCITX_ASSERT(rule.entries()[2].character() == 2);
        FCITX_ASSERT(rule.entries()[3].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[3].index() == -1);
        FCITX_ASSERT(rule.entries()[3].character() == 2);
        FCITX_ASSERT(rule.entries()[4].flag() == TableRuleEntryFlag::FromFront);
        FCITX_ASSERT(rule.entries()[4].index() == -1);
        FCITX_ASSERT(rule.entries()[4].character() == 3);
    }
    return 0;
}