X-Git-Url: https://git.kianting.info/?a=blobdiff_plain;f=tests%2Findex.js;fp=tests%2Findex.js;h=891511cc0da8b6c121cfca83346032f3d20a378f;hb=a722e739575012ebad8cd0a7d2c12df478a54eb8;hp=933dfccd53ed98619f7e6d64f51dc39e86d0691a;hpb=8eefbaef8dc4c2dcf0554bab82125fcf1b459168;p=uann diff --git a/tests/index.js b/tests/index.js index 933dfcc..891511c 100644 --- a/tests/index.js +++ b/tests/index.js @@ -1,4 +1,6 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const src_1 = require("../src"); let assert = require("assert"); let cloMain = require("../src"); let a = cloMain.match1Char("我"); @@ -9,6 +11,9 @@ assert(example1.value.remained == "的"); let example2 = a({ matched: "", remained: "妳的" }); assert(example2._tag == "None"); let thenDo = cloMain.thenDo; +let orDo = cloMain.orDo; +let zeroOrMoreDo = cloMain.zeroOrMoreDo; +let notDo = cloMain.notDo; // composed part x let compPart1 = cloMain.match1Char("我"); let compPart2 = cloMain.match1Char("的"); @@ -20,6 +25,38 @@ assert(doTestRes1.value.remained == "貓"); let doThenTestee2 = { _tag: "Some", value: { matched: "", remained: "我們" } }; let doTestRes2 = thenDo(thenDo(doThenTestee2, compPart1), compPart2); assert(doTestRes2._tag == "None"); +let doThenTestee3 = { _tag: "Some", value: { matched: "", remained: "我的貓" } }; +let doTestRes3 = thenDo(thenDo(doThenTestee3, orDo(compPart1, compPart2)), compPart2); +assert(doTestRes3._tag == "Some"); +assert(doTestRes3.value.matched == "我的"); +assert(doTestRes3.value.remained == "貓"); +let doThenTestee4 = { _tag: "Some", value: { matched: "", remained: "的的貓" } }; +let doTestRes4 = thenDo(thenDo(doThenTestee4, orDo(compPart1, compPart2)), compPart2); +assert(doTestRes4._tag == "Some"); +assert(doTestRes4.value.matched == "的的"); +assert(doTestRes4.value.remained == "貓"); +let doThenTestee5 = { _tag: "Some", value: { matched: "", remained: "的貓" } }; +let doTestRes5 = thenDo(thenDo(doThenTestee5, zeroOrMoreDo(compPart1)), compPart2); +assert(doTestRes5._tag == "Some"); +assert(doTestRes5.value.matched == "的"); +assert(doTestRes5.value.remained == "貓"); +let doThenTestee6 = { _tag: "Some", value: { matched: "", remained: "我我我的貓" } }; +let doTestRes6 = thenDo(thenDo(doThenTestee6, zeroOrMoreDo(compPart1)), compPart2); +assert(doTestRes6._tag == "Some"); +assert(doTestRes6.value.matched == "我我我的"); +assert(doTestRes6.value.remained == "貓"); +let doThenTestee7 = { _tag: "Some", value: { matched: "", remained: "我的" } }; +let doTestRes7 = thenDo(thenDo(doThenTestee7, notDo(compPart1)), compPart2); +assert(doTestRes7._tag == "None"); +let doThenTestee8 = { _tag: "Some", value: { matched: "", remained: "妳的" } }; +let doTestRes8 = thenDo(thenDo(doThenTestee8, notDo(compPart1)), compPart2); +assert(doTestRes8._tag == "Some"); +assert(doTestRes8.value.matched == "妳的"); +let doThenTestee9 = { _tag: "Some", value: { matched: "", remained: "妳的" } }; +let doTestRes9 = thenDo(doThenTestee9, src_1.matchAny); +assert(doTestRes9._tag == "Some"); +assert(doTestRes9.value.matched == "妳"); +assert(doTestRes9.value.remained == "的"); // harfbuzz test let harfbuzz = require("../src/harfbuzz.js"); harfbuzz.harfbuzzTest("123.abc");