]> git.kianting.info Git - clo/blob - tests/index.ts
e4c7344d16b9bae8700ee7c4fbf6bc6d63436c13
[clo] / tests / index.ts
1 import { matchAny, tokenize } from "../src";
2
3 let assert = require("assert");
4 let cloMain = require("../src");
5
6 let a = cloMain.match1Char("我");
7
8 let example1 = a({matched: "", remained: "我的"});
9 assert(example1._tag == "Some");
10 assert(example1.value.matched == "我");
11 assert(example1.value.remained == "的");
12
13 let example2 = a({matched: "", remained: "妳的"});
14 assert(example2._tag == "None");
15
16
17
18 let thenDo = cloMain.thenDo;
19 let orDo = cloMain.orDo;
20 let zeroOrMoreDo = cloMain.zeroOrMoreDo;
21 let notDo = cloMain.notDo;
22
23 // composed part x
24 let compPart1 = cloMain.match1Char("我");
25 let compPart2 = cloMain.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("+123");
78 tokenize("123");
79 tokenize("-123");
80 tokenize(" 123");
81 try {
82 tokenize("c123");
83
84 } catch (error) {
85 console.log(error);
86 }
87
88 tokenize(" ");
89 tokenize(" ");
90 tokenize(" \t");
91 tokenize(" \t123");
92
93 try {
94 tokenize(" \t123aaa456");
95
96
97 } catch (error) {
98 console.log(error);
99 }
100 tokenize(" \t123\n456");
101
102
103 // harfbuzz test
104 let harfbuzz = require("../src/harfbuzz.js");
105 harfbuzz.harfbuzzTest("123.abc");
106
107 // pdf test
108 let pdfManipulate = require("../src/pdfManipulate.js");
109 pdfManipulate.pdfGenerate("123.abc");
110 console.log("/tmp/test.pdf產出ah");
111