/
test.ts
33 lines (33 loc) · 1022 Bytes
/
test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { assertEquals } from "https://deno.land/std@0.157.0/testing/asserts.ts";
import braceExpansionII from "./index.ts";
Deno.test("brace-expansion-ii", () => {
const inputs = [
"{a,b}",
"{a,b}{c,{d,e}}",
"{{a,z},a{b,c},{ab,z}}",
"{a,b}c{d,e}f",
"abcd",
"{a,b,c}",
"zabcde{a,b,c}",
"zab",
"{a,b,c}{a,b,c}",
"{a,b}{c,{d,e}}",
"{z,{a,b}{c,{d,e}}}",
"{abc{x,y{m,n}},{p,q}}",
];
const outputs = [
["a", "b"],
["ac", "ad", "ae", "bc", "bd", "be"],
["a", "ab", "ac", "z"],
["acdf", "acef", "bcdf", "bcef"],
["abcd"],
["a", "b", "c"],
["zabcdea", "zabcdeb", "zabcdec"],
["zab"],
["aa", "ab", "ac", "ba", "bb", "bc", "ca", "cb", "cc"],
["ac", "ad", "ae", "bc", "bd", "be"],
["ac", "ad", "ae", "bc", "bd", "be", "z"],
["abcx", "abcym", "abcyn", "p", "q"],
];
assertEquals(inputs.map(braceExpansionII), outputs);
});