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