1 #include <pocketsphinx.h>
2 #include "test_macros.h"
3
test_reinit_fsg()4 static void test_reinit_fsg()
5 {
6 ps_decoder_t *ps;
7 cmd_ln_t *config;
8 config = cmd_ln_init(NULL, ps_args(), TRUE,
9 "-hmm", MODELDIR "/hmm/en_US/hub4wsj_sc_8k",
10 "-lm", MODELDIR "/lm/en_US/wsj0vp.5000.DMP",
11 "-dict", MODELDIR "/lm/en_US/cmu07a.dic",
12 NULL);
13 ps = ps_init(config);
14 ps_update_fsgset (ps);
15 ps_update_fsgset (ps);
16 ps_free(ps);
17 cmd_ln_free_r(config);
18 }
19
test_reinit_fsg_missing()20 static void test_reinit_fsg_missing()
21 {
22 ps_decoder_t *ps;
23 cmd_ln_t *config;
24 config = cmd_ln_init(NULL, ps_args(), TRUE,
25 "-hmm", MODELDIR "/hmm/en_US/hub4wsj_sc_8k",
26 "-dict", MODELDIR "/lm/en_US/cmu07a.dic",
27 NULL);
28 ps = ps_init(config);
29 cmd_ln_set_str_r(config, "-fsg", "/some/fsg");
30 ps_update_fsgset (ps);
31 ps_free(ps);
32 cmd_ln_free_r(config);
33 }
34
test_reinit_lm()35 static void test_reinit_lm()
36 {
37 ps_decoder_t *ps;
38 cmd_ln_t *config;
39 ngram_model_t *model;
40 config = cmd_ln_init(NULL, ps_args(), TRUE,
41 "-hmm", MODELDIR "/hmm/en_US/hub4wsj_sc_8k",
42 "-lm", MODELDIR "/lm/en_US/wsj0vp.5000.DMP",
43 "-dict", MODELDIR "/lm/en_US/cmu07a.dic",
44 NULL);
45 ps = ps_init(config);
46 model = ps_update_lmset (ps, NULL);
47 ps_free(ps);
48 cmd_ln_free_r(config);
49 }
50
51 /**
52 * Test for NULL in ps_update_lmset return the existing lmset as
53 * specified in API reference
54 */
test_switch_fsg_lm()55 static void test_switch_fsg_lm()
56 {
57 ps_decoder_t *ps;
58 cmd_ln_t *config;
59 ngram_model_t *model;
60 config = cmd_ln_init(NULL, ps_args(), TRUE,
61 "-hmm", MODELDIR "/hmm/en_US/hub4wsj_sc_8k",
62 "-lm", MODELDIR "/lm/en_US/wsj0vp.5000.DMP",
63 "-dict", MODELDIR "/lm/en_US/cmu07a.dic",
64 NULL);
65 ps = ps_init(config);
66 ps_update_fsgset (ps);
67 TEST_ASSERT(ps_get_lmset(ps) == NULL);
68 model = ps_update_lmset (ps, NULL);
69 TEST_ASSERT(model != NULL);
70 TEST_ASSERT(ps_get_lmset(ps) != NULL);
71 ps_free(ps);
72 cmd_ln_free_r(config);
73 }
74
75
main(int argc,char * argv[])76 int main(int argc, char* argv[])
77 {
78 test_reinit_fsg();
79 test_reinit_fsg_missing();
80 test_reinit_lm();
81 test_switch_fsg_lm();
82 return 0;
83 }
84