File: decoder.vala

package info (click to toggle)
libkkc 0.3.5-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,728 kB
  • ctags: 136
  • sloc: ansic: 7,099; makefile: 920; cpp: 435; python: 233; sh: 124
file content (89 lines) | stat: -rw-r--r-- 2,929 bytes parent folder | download | duplicates (5)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
class DecoderTests : Kkc.TestCase {
    Kkc.Decoder text2_decoder;
    Kkc.Decoder text3_decoder;
    Kkc.Decoder sorted2_decoder;
    Kkc.Decoder sorted3_decoder;

    public DecoderTests () {
        base ("Decoder");

        /* Set up the tests */
        add_test ("conversion", this.test_conversion);
        add_test ("constraints", this.test_constraints);
    }

    void test_conversion () {
        string[] sentences = {
            "けいざいはきゅうこうか",
            "しごとのことをかんがえる",
            "さきにくる",
            "てつだったが",
            "わたしのなまえはなかのです"
        };
        foreach (var sentence in sentences) {
            text2_decoder.decode (sentence, 1, new int[0]);
            text3_decoder.decode (sentence, 1, new int[0]);
            sorted2_decoder.decode (sentence, 1, new int[0]);
            sorted3_decoder.decode (sentence, 1, new int[0]);
        }
    }

    void test_constraints () {
        int[] constraints = { 4, 5 };
        var text2_segments = text2_decoder.decode ("けいざいはきゅうこうか", 1, constraints);
        var text3_segments = text3_decoder.decode ("けいざいはきゅうこうか", 1, constraints);
        var sorted2_segments = sorted2_decoder.decode ("けいざいはきゅうこうか", 1, constraints);
        var sorted3_segments = sorted3_decoder.decode ("けいざいはきゅうこうか", 1, constraints);
    }

    public override void set_up () {
        try {
            Kkc.LanguageModel model = Kkc.LanguageModel.load ("text2");
            text2_decoder = Kkc.Decoder.create (model);
        } catch (Kkc.LanguageModelError e) {
            stderr.printf ("%s\n", e.message);
        }

        try {
            Kkc.LanguageModel model = Kkc.LanguageModel.load ("text3");
            text3_decoder = Kkc.Decoder.create (model);
        } catch (Kkc.LanguageModelError e) {
            stderr.printf ("%s\n", e.message);
        }

        try {
            Kkc.LanguageModel model = Kkc.LanguageModel.load ("sorted2");
            sorted2_decoder = Kkc.Decoder.create (model);
        } catch (Kkc.LanguageModelError e) {
            stderr.printf ("%s\n", e.message);
        }

        try {
            Kkc.LanguageModel model = Kkc.LanguageModel.load ("sorted3");
            sorted3_decoder = Kkc.Decoder.create (model);
        } catch (Kkc.LanguageModelError e) {
            stderr.printf ("%s\n", e.message);
        }
    }

    public override void tear_down () {
        text2_decoder = null;
        text3_decoder = null;
        sorted2_decoder = null;
        sorted3_decoder = null;
    }
}

int main (string[] args) {
    Intl.setlocale (LocaleCategory.ALL, "");

    Test.init (ref args);
    Kkc.init ();

    TestSuite root = TestSuite.get_root ();
    root.add_suite (new DecoderTests ().get_suite ());

    Test.run ();

    return 0;
}