]> git.kianting.info Git - clo/blob - tests/index.ts
temp snapshot
[clo] / tests / index.ts
1
2 let assert = require("assert");
3 let tokenize = require("../src/tokenize");
4
5 let a = tokenize.match1Char("我");
6
7 let example1 = a({matched: "", remained: "我的"});
8 assert(example1._tag == "Some");
9 assert(example1.value.matched == "我");
10 assert(example1.value.remained == "的");
11
12 let example2 = a({matched: "", remained: "妳的"});
13 assert(example2._tag == "None");
14
15
16
17 let thenDo = tokenize.thenDo;
18 let orDo = tokenize.orDo;
19 let zeroOrMoreDo = tokenize.zeroOrMoreDo;
20 let notDo = tokenize.notDo;
21 let matchAny = tokenize.matchAny;
22
23 // composed part x
24 let compPart1 = tokenize.match1Char("我");
25 let compPart2 = tokenize.match1Char("的");
26
27 let doThenTestee1 = {_tag : "Some",value : {matched: "", remained: "我的貓"}};
28 let doTestRes1 = thenDo(thenDo(doThenTestee1, compPart1), compPart2);
29 assert(doTestRes1._tag == "Some");
30 assert(doTestRes1.value.matched == "我的");
31 assert(doTestRes1.value.remained == "貓");
32
33
34 let doThenTestee2 = {_tag : "Some",value : {matched: "", remained: "我們"}};
35 let doTestRes2 = thenDo(thenDo(doThenTestee2, compPart1), compPart2);
36 assert(doTestRes2._tag == "None");
37
38 let doThenTestee3 = {_tag : "Some",value : {matched: "", remained: "我的貓"}};
39 let doTestRes3 = thenDo(thenDo(doThenTestee3, orDo(compPart1, compPart2)), compPart2);
40 assert(doTestRes3._tag == "Some");
41 assert(doTestRes3.value.matched == "我的");
42 assert(doTestRes3.value.remained == "貓");
43
44 let doThenTestee4 = {_tag : "Some",value : {matched: "", remained: "的的貓"}};
45 let doTestRes4 = thenDo(thenDo(doThenTestee4, orDo(compPart1, compPart2)), compPart2);
46 assert(doTestRes4._tag == "Some");
47 assert(doTestRes4.value.matched == "的的");
48 assert(doTestRes4.value.remained == "貓");
49
50 let doThenTestee5 = {_tag : "Some",value : {matched: "", remained: "的貓"}};
51 let doTestRes5 = thenDo(thenDo(doThenTestee5, zeroOrMoreDo(compPart1)), compPart2);
52 assert(doTestRes5._tag == "Some");
53 assert(doTestRes5.value.matched == "的");
54 assert(doTestRes5.value.remained == "貓");
55
56 let doThenTestee6 = {_tag : "Some",value : {matched: "", remained: "我我我的貓"}};
57 let doTestRes6 = thenDo(thenDo(doThenTestee6, zeroOrMoreDo(compPart1)), compPart2);
58 assert(doTestRes6._tag == "Some");
59 assert(doTestRes6.value.matched == "我我我的");
60 assert(doTestRes6.value.remained == "貓");
61
62 let doThenTestee7 = {_tag : "Some",value : {matched: "", remained: "我的"}};
63 let doTestRes7 = thenDo(thenDo(doThenTestee7, notDo(compPart1)), compPart2);
64 assert(doTestRes7._tag == "None");
65
66 let doThenTestee8 = {_tag : "Some",value : {matched: "", remained: "妳的"}};
67 let doTestRes8 = thenDo(thenDo(doThenTestee8, notDo(compPart1)), compPart2);
68 assert(doTestRes8._tag == "Some");
69 assert(doTestRes8.value.matched == "妳的");
70
71 let doThenTestee9 = {_tag : "Some",value : {matched: "", remained: "妳的"}};
72 let doTestRes9 = thenDo(doThenTestee9, matchAny);
73 assert(doTestRes9._tag == "Some");
74 assert(doTestRes9.value.matched == "妳");
75 assert(doTestRes9.value.remained == "的");
76
77 tokenize.tokenize("+123");
78 tokenize.tokenize("123");
79 tokenize.tokenize("-123");
80 tokenize.tokenize(" 123");
81 try {
82 tokenize.tokenize("c123");
83
84 } catch (error) {
85 console.log(error);
86 }
87
88 tokenize.tokenize(" ");
89 tokenize.tokenize(" ");
90 tokenize.tokenize(" \t");
91 tokenize.tokenize(" \t123");
92
93 try {
94 tokenize.tokenize(" \t123aaa456");
95
96
97 } catch (error) {
98 console.log(error);
99 }
100 tokenize.tokenize(" \t123\n456");
101
102 tokenize.tokenize("\"\"");
103 tokenize.tokenize("\"123\"");
104 tokenize.tokenize("\"1\\\"23\"");
105 tokenize.tokenize("\"1\\\"23\" abc123");
106
107 tokenize.tokenize("+0.012");
108 tokenize.tokenize("0.0");
109 tokenize.tokenize("-222.0");
110 tokenize.tokenize("1+1 ==2; 3+8 foo(12)");
111
112 console.log(tokenize.tokenize("2+2"));
113
114 // harfbuzz test
115 let harfbuzz = require("../src/harfbuzz.js");
116 harfbuzz.harfbuzzTest("123.abc");
117
118 // pdf test
119 let pdfManipulate = require("../src/pdfManipulate.js");
120 pdfManipulate.pdfGenerate("123.abc");
121 console.log("/tmp/test.pdf產出ah");
122