binary-decision-diagram 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{es → src}/abstract-node.d.ts +4 -4
- package/dist/{lib → src}/abstract-node.js +7 -4
- package/dist/src/abstract-node.js.map +1 -0
- package/dist/{es → src}/branches.d.ts +2 -2
- package/dist/{es → src}/branches.js +3 -2
- package/dist/src/branches.js.map +1 -0
- package/dist/src/create-bdd-from-truth-table.d.ts +3 -0
- package/dist/{lib → src}/create-bdd-from-truth-table.js +4 -4
- package/dist/src/create-bdd-from-truth-table.js.map +1 -0
- package/dist/{es → src}/ensure-correct-bdd.d.ts +2 -2
- package/dist/{es → src}/ensure-correct-bdd.js +1 -1
- package/dist/src/ensure-correct-bdd.js.map +1 -0
- package/dist/{lib → src}/fill-truth-table.d.ts +1 -1
- package/dist/{lib → src}/fill-truth-table.js +1 -1
- package/dist/{es → src}/fill-truth-table.js.map +1 -1
- package/dist/{lib → src}/find-similar-node.d.ts +1 -1
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -0
- package/dist/{es → src}/internal-node.d.ts +5 -5
- package/dist/{lib → src}/internal-node.js +5 -5
- package/dist/{es → src}/internal-node.js.map +1 -1
- package/dist/{es → src}/leaf-node.d.ts +4 -4
- package/dist/{es → src}/leaf-node.js +5 -4
- package/dist/src/leaf-node.js.map +1 -0
- package/dist/{es → src}/minimal-string/bdd-to-minimal-string.d.ts +2 -2
- package/dist/{es → src}/minimal-string/bdd-to-minimal-string.js +2 -2
- package/dist/{es → src}/minimal-string/bdd-to-minimal-string.js.map +1 -1
- package/dist/{lib → src}/minimal-string/bdd-to-simple-bdd.d.ts +3 -3
- package/dist/src/minimal-string/index.d.ts +5 -0
- package/dist/src/minimal-string/index.js +6 -0
- package/dist/{es → src}/minimal-string/index.js.map +1 -1
- package/dist/{es → src}/minimal-string/minimal-string-to-simple-bdd.d.ts +1 -1
- package/dist/{es → src}/minimal-string/minimal-string-to-simple-bdd.js +2 -2
- package/dist/{es → src}/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
- package/dist/{es → src}/minimal-string/resolve-with-simple-bdd.d.ts +1 -1
- package/dist/{lib → src}/minimal-string/resolve-with-simple-bdd.js +1 -1
- package/dist/{es → src}/minimal-string/resolve-with-simple-bdd.js.map +1 -1
- package/dist/{lib → src}/optimize-brute-force.d.ts +2 -2
- package/dist/{lib → src}/optimize-brute-force.js +2 -2
- package/dist/{es → src}/optimize-brute-force.js.map +1 -1
- package/dist/{es → src}/parents.d.ts +1 -1
- package/dist/{es → src}/parents.js +2 -1
- package/dist/src/parents.js.map +1 -0
- package/dist/{lib → src}/root-node.d.ts +4 -4
- package/dist/{lib → src}/root-node.js +8 -8
- package/dist/src/root-node.js.map +1 -0
- package/dist/{es → src}/types.d.ts +3 -3
- package/dist/{es → src}/util.d.ts +1 -1
- package/package.json +18 -18
- package/src/abstract-node.ts +7 -7
- package/src/branches.ts +2 -2
- package/src/create-bdd-from-truth-table.ts +5 -5
- package/src/ensure-correct-bdd.ts +4 -4
- package/src/fill-truth-table.ts +2 -2
- package/src/find-similar-node.ts +1 -1
- package/src/index.ts +14 -32
- package/src/internal-node.ts +5 -5
- package/src/leaf-node.ts +6 -6
- package/src/minimal-string/bdd-to-minimal-string.ts +4 -4
- package/src/minimal-string/bdd-to-simple-bdd.ts +4 -4
- package/src/minimal-string/index.ts +5 -5
- package/src/minimal-string/minimal-string-to-simple-bdd.ts +3 -3
- package/src/minimal-string/resolve-with-simple-bdd.ts +2 -2
- package/src/optimize-brute-force.ts +5 -5
- package/src/parents.ts +1 -1
- package/src/root-node.ts +7 -7
- package/src/types.ts +3 -3
- package/src/util.ts +1 -1
- package/.github/workflows/main.yml +0 -22
- package/dist/es/abstract-node.js +0 -166
- package/dist/es/abstract-node.js.map +0 -1
- package/dist/es/branches.js.map +0 -1
- package/dist/es/create-bdd-from-truth-table.d.ts +0 -3
- package/dist/es/create-bdd-from-truth-table.js +0 -34
- package/dist/es/create-bdd-from-truth-table.js.map +0 -1
- package/dist/es/ensure-correct-bdd.js.map +0 -1
- package/dist/es/fill-truth-table.d.ts +0 -6
- package/dist/es/fill-truth-table.js +0 -22
- package/dist/es/find-similar-node.d.ts +0 -7
- package/dist/es/index.d.ts +0 -20
- package/dist/es/index.js +0 -14
- package/dist/es/index.js.map +0 -1
- package/dist/es/internal-node.js +0 -42
- package/dist/es/leaf-node.js.map +0 -1
- package/dist/es/minimal-string/bdd-to-simple-bdd.d.ts +0 -11
- package/dist/es/minimal-string/index.d.ts +0 -5
- package/dist/es/minimal-string/index.js +0 -6
- package/dist/es/minimal-string/resolve-with-simple-bdd.js +0 -17
- package/dist/es/optimize-brute-force.d.ts +0 -43
- package/dist/es/optimize-brute-force.js +0 -132
- package/dist/es/parents.js.map +0 -1
- package/dist/es/root-node.d.ts +0 -28
- package/dist/es/root-node.js +0 -154
- package/dist/es/root-node.js.map +0 -1
- package/dist/lib/abstract-node.d.ts +0 -33
- package/dist/lib/abstract-node.js.map +0 -1
- package/dist/lib/branches.d.ts +0 -20
- package/dist/lib/branches.js +0 -70
- package/dist/lib/branches.js.map +0 -1
- package/dist/lib/create-bdd-from-truth-table.d.ts +0 -3
- package/dist/lib/create-bdd-from-truth-table.js.map +0 -1
- package/dist/lib/ensure-correct-bdd.d.ts +0 -8
- package/dist/lib/ensure-correct-bdd.js +0 -97
- package/dist/lib/ensure-correct-bdd.js.map +0 -1
- package/dist/lib/fill-truth-table.js.map +0 -1
- package/dist/lib/find-similar-node.js +0 -18
- package/dist/lib/find-similar-node.js.map +0 -1
- package/dist/lib/index.d.ts +0 -20
- package/dist/lib/index.js +0 -14
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/internal-node.d.ts +0 -16
- package/dist/lib/internal-node.js.map +0 -1
- package/dist/lib/leaf-node.d.ts +0 -10
- package/dist/lib/leaf-node.js +0 -29
- package/dist/lib/leaf-node.js.map +0 -1
- package/dist/lib/minimal-string/bdd-to-minimal-string.d.ts +0 -8
- package/dist/lib/minimal-string/bdd-to-minimal-string.js +0 -55
- package/dist/lib/minimal-string/bdd-to-minimal-string.js.map +0 -1
- package/dist/lib/minimal-string/bdd-to-simple-bdd.js +0 -19
- package/dist/lib/minimal-string/bdd-to-simple-bdd.js.map +0 -1
- package/dist/lib/minimal-string/index.d.ts +0 -5
- package/dist/lib/minimal-string/index.js +0 -6
- package/dist/lib/minimal-string/index.js.map +0 -1
- package/dist/lib/minimal-string/minimal-string-to-simple-bdd.d.ts +0 -2
- package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js +0 -54
- package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js.map +0 -1
- package/dist/lib/minimal-string/resolve-with-simple-bdd.d.ts +0 -2
- package/dist/lib/minimal-string/resolve-with-simple-bdd.js.map +0 -1
- package/dist/lib/minimal-string/string-format.d.ts +0 -9
- package/dist/lib/minimal-string/string-format.js +0 -54
- package/dist/lib/minimal-string/string-format.js.map +0 -1
- package/dist/lib/optimize-brute-force.js.map +0 -1
- package/dist/lib/parents.d.ts +0 -15
- package/dist/lib/parents.js +0 -38
- package/dist/lib/parents.js.map +0 -1
- package/dist/lib/root-node.js.map +0 -1
- package/dist/lib/types.d.ts +0 -24
- package/dist/lib/types.js +0 -2
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/util.d.ts +0 -26
- package/dist/lib/util.js +0 -109
- package/dist/lib/util.js.map +0 -1
- package/renovate.json +0 -8
- package/test/helper/big-truth-table.json +0 -578
- package/test/helper/test-util.ts +0 -110
- package/test/unit/create-bdd-from-truth-table.test.ts +0 -24
- package/test/unit/find-similar-node.test.ts +0 -53
- package/test/unit/index.test.ts +0 -6
- package/test/unit/minimize.test.ts +0 -145
- package/test/unit/optimize-brute-force.test.ts +0 -114
- package/test/unit/resolve.test.ts +0 -74
- package/test/unit/simple-bdd.test.ts +0 -186
- package/tsconfig.json +0 -38
- package/tslint.json +0 -116
- /package/dist/{es → src}/find-similar-node.js +0 -0
- /package/dist/{es → src}/find-similar-node.js.map +0 -0
- /package/dist/{es → src}/minimal-string/bdd-to-simple-bdd.js +0 -0
- /package/dist/{es → src}/minimal-string/bdd-to-simple-bdd.js.map +0 -0
- /package/dist/{es → src}/minimal-string/string-format.d.ts +0 -0
- /package/dist/{es → src}/minimal-string/string-format.js +0 -0
- /package/dist/{es → src}/minimal-string/string-format.js.map +0 -0
- /package/dist/{es → src}/types.js +0 -0
- /package/dist/{es → src}/types.js.map +0 -0
- /package/dist/{es → src}/util.js +0 -0
- /package/dist/{es → src}/util.js.map +0 -0
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* run some tests on the bdd
|
|
3
|
-
* to ensure everything is correct
|
|
4
|
-
*/
|
|
5
|
-
export function ensureCorrectBdd(bdd) {
|
|
6
|
-
const jsonString = JSON.stringify(bdd.toJSON(true));
|
|
7
|
-
let allNodes = [];
|
|
8
|
-
const nodesById = new Map();
|
|
9
|
-
bdd.getLevels().forEach(level => {
|
|
10
|
-
const levelNodes = bdd.getNodesOfLevel(level);
|
|
11
|
-
levelNodes.forEach(node => {
|
|
12
|
-
nodesById.set(node.id, node);
|
|
13
|
-
});
|
|
14
|
-
allNodes = allNodes.concat(levelNodes);
|
|
15
|
-
});
|
|
16
|
-
const recursiveNodes = getNodesRecursive(bdd);
|
|
17
|
-
if (allNodes.length !== recursiveNodes.size) {
|
|
18
|
-
const allNodesIds = allNodes.map(n => n.id).sort();
|
|
19
|
-
const recursiveNodesIds = Array.from(recursiveNodes).map(n => n.id).sort();
|
|
20
|
-
const nodesOnlyInRecursive = recursiveNodesIds.filter(id => !allNodesIds.includes(id));
|
|
21
|
-
// console.log(JSON.stringify(allNodes.map(n => n.id).sort(), null, 2));
|
|
22
|
-
// console.log(JSON.stringify(Array.from(recursiveNodes).map(n => n.id).sort(), null, 2));
|
|
23
|
-
if (recursiveNodes.size > allNodes.length) {
|
|
24
|
-
const firstId = nodesOnlyInRecursive[0];
|
|
25
|
-
const referenceToFirst = allNodes.find(n => {
|
|
26
|
-
if (n.isInternalNode()) {
|
|
27
|
-
return n.branches.hasNodeIdAsBranch(firstId);
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
});
|
|
31
|
-
console.log('referenceToFirst:');
|
|
32
|
-
referenceToFirst === null || referenceToFirst === void 0 ? void 0 : referenceToFirst.log();
|
|
33
|
-
}
|
|
34
|
-
throw new Error('ensureCorrectBdd() ' +
|
|
35
|
-
'nodes in list not equal size to recursive nodes ' +
|
|
36
|
-
'allNodes: ' + allNodes.length + ' ' +
|
|
37
|
-
'recursiveNodes: ' + recursiveNodes.size + ' ' +
|
|
38
|
-
'nodesOnlyInRecursive: ' + nodesOnlyInRecursive.join(', ') + ' ');
|
|
39
|
-
}
|
|
40
|
-
allNodes.forEach(node => {
|
|
41
|
-
if (node.isRootNode()) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const useNode = node;
|
|
45
|
-
if (node.deleted) {
|
|
46
|
-
throw new Error('ensureCorrectBdd() ' +
|
|
47
|
-
'bdd includes a deleted node');
|
|
48
|
-
}
|
|
49
|
-
// each node should have a parent
|
|
50
|
-
if (useNode.parents.size === 0) {
|
|
51
|
-
throw new Error('ensureCorrectBdd() ' +
|
|
52
|
-
'node has no parent ' + useNode.id);
|
|
53
|
-
}
|
|
54
|
-
if (useNode.isInternalNode()) {
|
|
55
|
-
const internalNode = useNode;
|
|
56
|
-
const bothBranches = internalNode.branches.getBothBranches();
|
|
57
|
-
// a node should not have 2 equal branches
|
|
58
|
-
if (internalNode.branches.areBranchesStrictEqual()) {
|
|
59
|
-
throw new Error('ensureCorrectBdd() ' +
|
|
60
|
-
'node has two equal branches: ' +
|
|
61
|
-
bothBranches.map(n => n.id).join(', '));
|
|
62
|
-
}
|
|
63
|
-
// each branch should have the node as parent
|
|
64
|
-
bothBranches.forEach(branch => {
|
|
65
|
-
if (!branch.parents.has(internalNode)) {
|
|
66
|
-
throw new Error('ensureCorrectBdd() ' +
|
|
67
|
-
'branch must have the node as parent');
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
// each parent should have the child as branch
|
|
72
|
-
useNode.parents.getAll().forEach(parent => {
|
|
73
|
-
if (!parent.branches.hasBranchAsNode(useNode)) {
|
|
74
|
-
throw new Error('ensureCorrectBdd() ' +
|
|
75
|
-
'parent node does not have child as branch');
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
if (jsonString.includes('"deleted":true')) {
|
|
80
|
-
throw new Error('ensureCorrectBdd() ' +
|
|
81
|
-
'bdd includes a deleted node');
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
export function getNodesRecursive(node, set = new Set()) {
|
|
85
|
-
set.add(node);
|
|
86
|
-
if (!node.isLeafNode()) {
|
|
87
|
-
const useNode = node;
|
|
88
|
-
const branch1 = useNode.branches.getBranch('0');
|
|
89
|
-
set.add(branch1);
|
|
90
|
-
getNodesRecursive(branch1, set);
|
|
91
|
-
const branch2 = useNode.branches.getBranch('1');
|
|
92
|
-
set.add(branch2);
|
|
93
|
-
getNodesRecursive(branch2, set);
|
|
94
|
-
}
|
|
95
|
-
return set;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=ensure-correct-bdd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-correct-bdd.js","sourceRoot":"","sources":["../../src/ensure-correct-bdd.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAa;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAGpD,IAAI,QAAQ,GAAmB,EAAE,CAAC;IAClC,MAAM,SAAS,GAA8B,IAAI,GAAG,EAAE,CAAC;IACvD,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAGH,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,CAAC,IAAI,EAAE;QAEzC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,MAAM,oBAAoB,GAAa,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjG,+EAA+E;QAC/E,+FAA+F;QAE/F,IAAI,cAAc,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE;YACvC,MAAM,OAAO,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACvC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;oBACpB,OAAQ,CAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;iBAClE;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,EAAE,CAAC;SAC3B;QAED,MAAM,IAAI,KAAK,CACX,qBAAqB;YACrB,kDAAkD;YAClD,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,GAAG;YACpC,kBAAkB,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG;YAC9C,wBAAwB,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CACnE,CAAC;KACL;IAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpB,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB,OAAO;SACV;QACD,MAAM,OAAO,GAAG,IAAmB,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,MAAM,IAAI,KAAK,CACX,qBAAqB;gBACrB,6BAA6B,CAChC,CAAC;SACL;QAED,iCAAiC;QACjC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CACX,qBAAqB;gBACrB,qBAAqB,GAAG,OAAO,CAAC,EAAE,CACrC,CAAC;SACL;QAED,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YAC1B,MAAM,YAAY,GAAiB,OAAc,CAAC;YAClD,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAE7D,0CAA0C;YAC1C,IAAI,YAAY,CAAC,QAAQ,CAAC,sBAAsB,EAAE,EAAE;gBAChD,MAAM,IAAI,KAAK,CACX,qBAAqB;oBACrB,+BAA+B;oBAC/B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;aACL;YAED,6CAA6C;YAC7C,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;oBACnC,MAAM,IAAI,KAAK,CACX,qBAAqB;wBACrB,qCAAqC,CACxC,CAAC;iBACL;YACL,CAAC,CAAC,CAAC;SACN;QAED,8CAA8C;QAC9C,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;gBAC3C,MAAM,IAAI,KAAK,CACX,qBAAqB;oBACrB,2CAA2C,CAC9C,CAAC;aACL;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAGH,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CACX,qBAAqB;YACrB,6BAA6B,CAChC,CAAC;KACL;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,IAAkB,EAClB,MAAyB,IAAI,GAAG,EAAE;IAElC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACd,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG,IAAmB,CAAC;QAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KACnC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fill-truth-table.js","sourceRoot":"","sources":["../../src/fill-truth-table.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EAClB,MAAM,QAAQ,CAAC;AAGhB;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC1B,UAAsB,EACtB,WAAmB,EACnB,KAAa;IAEb,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,CAAC,IAAI,EAAE;QACV,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC/B,UAAU,CAAC,GAAG,CACV,YAAY,EACZ,KAAK,CACR,CAAC;SACL;QACD,IAAI,YAAY,KAAK,QAAQ,EAAE;YAC3B,IAAI,GAAG,IAAI,CAAC;SACf;aAAM;YACH,YAAY,GAAG,eAAe,CAC1B,YAAY,CACf,CAAC;SACL;KACJ;AACL,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* find an simliar node in a list of nodes
|
|
3
|
-
* which is not exactly the same node
|
|
4
|
-
* @hotpath
|
|
5
|
-
*/
|
|
6
|
-
export function findSimilarNode(own, others) {
|
|
7
|
-
const ownString = own.toString();
|
|
8
|
-
for (let i = 0; i < others.length; i++) {
|
|
9
|
-
const other = others[i];
|
|
10
|
-
if (own !== other &&
|
|
11
|
-
!other.deleted &&
|
|
12
|
-
own.isEqualToOtherNode(other, ownString)) {
|
|
13
|
-
return other;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=find-similar-node.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-similar-node.js","sourceRoot":"","sources":["../../src/find-similar-node.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC3B,GAAM,EACN,MAAW;IAEX,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IACI,GAAG,KAAK,KAAK;YACb,CAAC,KAAK,CAAC,OAAO;YACd,GAAG,CAAC,kBAAkB,CAClB,KAAY,EACZ,SAAS,CACZ,EACH;YACE,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
package/dist/lib/index.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export * from './minimal-string/index';
|
|
2
|
-
export * from './abstract-node';
|
|
3
|
-
export * from './branches';
|
|
4
|
-
export * from './create-bdd-from-truth-table';
|
|
5
|
-
export * from './ensure-correct-bdd';
|
|
6
|
-
export * from './fill-truth-table';
|
|
7
|
-
export * from './find-similar-node';
|
|
8
|
-
export * from './internal-node';
|
|
9
|
-
export * from './leaf-node';
|
|
10
|
-
export * from './optimize-brute-force';
|
|
11
|
-
export * from './parents';
|
|
12
|
-
export * from './root-node';
|
|
13
|
-
export * from './util';
|
|
14
|
-
/**
|
|
15
|
-
* There is no "export type * from 'xxx'"
|
|
16
|
-
* So we have to export each type by its own
|
|
17
|
-
* to ensure the types js file is not included
|
|
18
|
-
* into the bundle.
|
|
19
|
-
*/
|
|
20
|
-
export type { NodeType, NonLeafNode, NonRootNode, TruthTable, BooleanString, ResolverFunction, ResolverFunctions, SimpleBddLeafNode, SimpleBdd } from './types';
|
package/dist/lib/index.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export * from './minimal-string/index';
|
|
2
|
-
export * from './abstract-node';
|
|
3
|
-
export * from './branches';
|
|
4
|
-
export * from './create-bdd-from-truth-table';
|
|
5
|
-
export * from './ensure-correct-bdd';
|
|
6
|
-
export * from './fill-truth-table';
|
|
7
|
-
export * from './find-similar-node';
|
|
8
|
-
export * from './internal-node';
|
|
9
|
-
export * from './leaf-node';
|
|
10
|
-
export * from './optimize-brute-force';
|
|
11
|
-
export * from './parents';
|
|
12
|
-
export * from './root-node';
|
|
13
|
-
export * from './util';
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
package/dist/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Branches } from './branches';
|
|
2
|
-
import { Parents } from './parents';
|
|
3
|
-
import { RootNode } from './root-node';
|
|
4
|
-
import { AbstractNode } from './abstract-node';
|
|
5
|
-
import type { NonLeafNode } from './types';
|
|
6
|
-
export declare class InternalNode extends AbstractNode {
|
|
7
|
-
branches: Branches;
|
|
8
|
-
parents: Parents;
|
|
9
|
-
constructor(level: number, rootNode: RootNode, parent: NonLeafNode);
|
|
10
|
-
/**
|
|
11
|
-
* by the reduction-rule of bdd,
|
|
12
|
-
* if both branches are equal,
|
|
13
|
-
* we can remove this node from the bdd
|
|
14
|
-
*/
|
|
15
|
-
applyReductionRule(): boolean;
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal-node.js","sourceRoot":"","sources":["../../src/internal-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,YAAa,SAAQ,YAAY;IAI1C,YACI,KAAa,EACb,QAAkB,EAClB,MAAmB;QAEnB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QARpC,aAAQ,GAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,YAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAQ/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAID;;;;OAIG;IACH,kBAAkB;QAEd,kDAAkD;QAElD,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE;YAClC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAgB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAE7D,iCAAiC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACxB,0CAA0C;gBAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAEjD,+BAA+B;gBAC/B,+DAA+D;gBAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE5B,wCAAwC;gBACxC,uCAAuC;gBACvC,oCAAoC;gBACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE;oBACpE,MAAuB,CAAC,kBAAkB,EAAE,CAAC;iBACjD;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ"}
|
package/dist/lib/leaf-node.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Parents } from './parents';
|
|
2
|
-
import { AbstractNode } from './abstract-node';
|
|
3
|
-
import { RootNode } from './root-node';
|
|
4
|
-
import type { NonLeafNode } from './types';
|
|
5
|
-
export declare class LeafNode extends AbstractNode {
|
|
6
|
-
value: number;
|
|
7
|
-
parents: Parents;
|
|
8
|
-
constructor(level: number, rootNode: RootNode, value: number, parent: NonLeafNode);
|
|
9
|
-
removeIfValueEquals(value: number): boolean;
|
|
10
|
-
}
|
package/dist/lib/leaf-node.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Parents } from './parents';
|
|
2
|
-
import { AbstractNode } from './abstract-node';
|
|
3
|
-
import { oppositeBoolean } from './util';
|
|
4
|
-
export class LeafNode extends AbstractNode {
|
|
5
|
-
constructor(level, rootNode, value, parent) {
|
|
6
|
-
super(level, rootNode, 'LeafNode');
|
|
7
|
-
this.value = value;
|
|
8
|
-
this.parents = new Parents(this);
|
|
9
|
-
this.parents.add(parent);
|
|
10
|
-
}
|
|
11
|
-
removeIfValueEquals(value) {
|
|
12
|
-
this.ensureNotDeleted();
|
|
13
|
-
if (this.value !== value) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
const parents = this.parents.getAll();
|
|
17
|
-
parents.forEach(parent => {
|
|
18
|
-
const branchKey = parent.branches.getKeyOfNode(this);
|
|
19
|
-
const otherBranch = parent.branches.getBranch(oppositeBoolean(branchKey));
|
|
20
|
-
this.parents.remove(parent);
|
|
21
|
-
parent.branches.setBranch(branchKey, otherBranch);
|
|
22
|
-
if (parent.isInternalNode()) {
|
|
23
|
-
parent.applyReductionRule();
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=leaf-node.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"leaf-node.js","sourceRoot":"","sources":["../../src/leaf-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGzC,MAAM,OAAO,QAAS,SAAQ,YAAY;IAGtC,YACI,KAAa,EACb,QAAkB,EACX,KAAa,EACpB,MAAmB;QAEnB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAH5B,UAAK,GAAL,KAAK,CAAQ;QALjB,YAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAS/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACtB,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAClD,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE;gBACxB,MAAuB,CAAC,kBAAkB,EAAE,CAAC;aACjD;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;CAGJ"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { RootNode } from '../root-node';
|
|
2
|
-
import { AbstractNode } from '../abstract-node';
|
|
3
|
-
export declare function bddToMinimalString(bdd: RootNode): string;
|
|
4
|
-
export declare function nodeToString(node: AbstractNode, idByNode: Map<AbstractNode, string>, lastCode: number): {
|
|
5
|
-
id: string;
|
|
6
|
-
str: string;
|
|
7
|
-
nextCode: number;
|
|
8
|
-
};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { getCharOfLevel, getCharOfValue, getNextCharId } from './string-format';
|
|
2
|
-
import { FIRST_CHAR_CODE_FOR_ID } from './string-format';
|
|
3
|
-
export function bddToMinimalString(bdd) {
|
|
4
|
-
let ret = '';
|
|
5
|
-
let currentCharCode = FIRST_CHAR_CODE_FOR_ID;
|
|
6
|
-
// add leaf node count
|
|
7
|
-
const leafNodeAmount = bdd.getLeafNodes().length;
|
|
8
|
-
if (leafNodeAmount > 99) {
|
|
9
|
-
throw new Error('cannot build string with too many leaf nodes');
|
|
10
|
-
}
|
|
11
|
-
ret += leafNodeAmount.toString().padStart(2, '0');
|
|
12
|
-
const levelsHighestFirst = bdd.levels.slice().reverse();
|
|
13
|
-
const idByNode = new Map();
|
|
14
|
-
levelsHighestFirst.forEach(level => {
|
|
15
|
-
const nodes = bdd.getNodesOfLevel(level);
|
|
16
|
-
nodes.forEach(node => {
|
|
17
|
-
const stringRep = nodeToString(node, idByNode, currentCharCode);
|
|
18
|
-
currentCharCode = stringRep.nextCode;
|
|
19
|
-
idByNode.set(node, stringRep.id);
|
|
20
|
-
ret += stringRep.str;
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
return ret;
|
|
24
|
-
}
|
|
25
|
-
export function nodeToString(node, idByNode, lastCode) {
|
|
26
|
-
const nextId = getNextCharId(lastCode);
|
|
27
|
-
switch (node.type) {
|
|
28
|
-
case 'LeafNode':
|
|
29
|
-
const valueChar = getCharOfValue(node.asLeafNode().value);
|
|
30
|
-
return {
|
|
31
|
-
id: nextId.char,
|
|
32
|
-
nextCode: nextId.nextCode,
|
|
33
|
-
str: nextId.char + valueChar
|
|
34
|
-
};
|
|
35
|
-
case 'InternalNode':
|
|
36
|
-
const branch0Id = idByNode.get(node.asInternalNode().branches.getBranch('0'));
|
|
37
|
-
const branch1Id = idByNode.get(node.asInternalNode().branches.getBranch('1'));
|
|
38
|
-
return {
|
|
39
|
-
id: nextId.char,
|
|
40
|
-
nextCode: nextId.nextCode,
|
|
41
|
-
str: nextId.char + branch0Id + branch1Id + getCharOfLevel(node.level)
|
|
42
|
-
};
|
|
43
|
-
case 'RootNode':
|
|
44
|
-
const branch0IdRoot = idByNode.get(node.asRootNode().branches.getBranch('0'));
|
|
45
|
-
const branch1IdRoot = idByNode.get(node.asRootNode().branches.getBranch('1'));
|
|
46
|
-
return {
|
|
47
|
-
id: nextId.char,
|
|
48
|
-
nextCode: nextId.nextCode,
|
|
49
|
-
str: '' + branch0IdRoot + branch1IdRoot + getCharOfLevel(node.level)
|
|
50
|
-
};
|
|
51
|
-
default:
|
|
52
|
-
throw new Error('unknown node type');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=bdd-to-minimal-string.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bdd-to-minimal-string.js","sourceRoot":"","sources":["../../../src/minimal-string/bdd-to-minimal-string.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @recursive
|
|
3
|
-
*/
|
|
4
|
-
export function bddToSimpleBdd(bdd) {
|
|
5
|
-
return nodeToSimpleBddNode(bdd);
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* @recursive
|
|
9
|
-
*/
|
|
10
|
-
export function nodeToSimpleBddNode(node) {
|
|
11
|
-
const branch0 = node.branches.getBranch('0');
|
|
12
|
-
const branch1 = node.branches.getBranch('1');
|
|
13
|
-
return {
|
|
14
|
-
l: node.level,
|
|
15
|
-
0: branch0.isLeafNode() ? branch0.asLeafNode().value : nodeToSimpleBddNode(branch0),
|
|
16
|
-
1: branch1.isLeafNode() ? branch1.asLeafNode().value : nodeToSimpleBddNode(branch1),
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=bdd-to-simple-bdd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bdd-to-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/bdd-to-simple-bdd.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAa;IACxC,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAC/B,IAAkB;IAGlB,MAAM,OAAO,GAAkB,IAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAkB,IAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAE7E,OAAO;QACH,CAAC,EAAE,IAAI,CAAC,KAAK;QACb,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;QACnF,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;KACtF,CAAC;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/minimal-string/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { splitStringToChunks } from '../util';
|
|
2
|
-
import { getNumberOfChar } from './string-format';
|
|
3
|
-
export function minimalStringToSimpleBdd(str) {
|
|
4
|
-
const nodesById = new Map();
|
|
5
|
-
// parse leaf nodes
|
|
6
|
-
const leafNodeAmount = parseInt(str.charAt(0) + str.charAt(1), 10);
|
|
7
|
-
const lastLeafNodeChar = (2 + leafNodeAmount * 2);
|
|
8
|
-
const leafNodeChars = str.substring(2, lastLeafNodeChar);
|
|
9
|
-
const leafNodeChunks = splitStringToChunks(leafNodeChars, 2);
|
|
10
|
-
for (let i = 0; i < leafNodeChunks.length; i++) {
|
|
11
|
-
const chunk = leafNodeChunks[i];
|
|
12
|
-
const id = chunk.charAt(0);
|
|
13
|
-
const value = getNumberOfChar(chunk.charAt(1));
|
|
14
|
-
nodesById.set(id, value);
|
|
15
|
-
}
|
|
16
|
-
// parse internal nodes
|
|
17
|
-
const internalNodeChars = str.substring(lastLeafNodeChar, str.length - 3);
|
|
18
|
-
const internalNodeChunks = splitStringToChunks(internalNodeChars, 4);
|
|
19
|
-
for (let i = 0; i < internalNodeChunks.length; i++) {
|
|
20
|
-
const chunk = internalNodeChunks[i];
|
|
21
|
-
const id = chunk.charAt(0);
|
|
22
|
-
const idOf0Branch = chunk.charAt(1);
|
|
23
|
-
const idOf1Branch = chunk.charAt(2);
|
|
24
|
-
const level = getNumberOfChar(chunk.charAt(3));
|
|
25
|
-
if (!nodesById.has(idOf0Branch)) {
|
|
26
|
-
throw new Error('missing node with id ' + idOf0Branch);
|
|
27
|
-
}
|
|
28
|
-
if (!nodesById.has(idOf1Branch)) {
|
|
29
|
-
throw new Error('missing node with id ' + idOf1Branch);
|
|
30
|
-
}
|
|
31
|
-
const node0 = nodesById.get(idOf0Branch);
|
|
32
|
-
const node1 = nodesById.get(idOf1Branch);
|
|
33
|
-
const node = {
|
|
34
|
-
l: level,
|
|
35
|
-
0: node0,
|
|
36
|
-
1: node1
|
|
37
|
-
};
|
|
38
|
-
nodesById.set(id, node);
|
|
39
|
-
}
|
|
40
|
-
// parse root node
|
|
41
|
-
const last3 = str.slice(-3);
|
|
42
|
-
const idOf0 = last3.charAt(0);
|
|
43
|
-
const idOf1 = last3.charAt(1);
|
|
44
|
-
const levelOfRoot = getNumberOfChar(last3.charAt(2));
|
|
45
|
-
const nodeOf0 = nodesById.get(idOf0);
|
|
46
|
-
const nodeOf1 = nodesById.get(idOf1);
|
|
47
|
-
const rootNode = {
|
|
48
|
-
l: levelOfRoot,
|
|
49
|
-
0: nodeOf0,
|
|
50
|
-
1: nodeOf1,
|
|
51
|
-
};
|
|
52
|
-
return rootNode;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=minimal-string-to-simple-bdd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-string-to-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/minimal-string-to-simple-bdd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-with-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/resolve-with-simple-bdd.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAChC,SAAoB,EACpB,GAAsB,EACtB,KAAU;IAEV,IAAI,WAAW,GAAkC,SAAS,CAAC;IAC3D,IAAI,YAAY,GAAW,SAAS,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,EAAE;QACT,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACxD,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACpE,OAAO,WAAkB,CAAC;SAC7B;aAAM;YACH,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC;SAChC;KACJ;AACL,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const CHAR_CODE_OFFSET = 40;
|
|
2
|
-
export declare function getCharOfLevel(level: number): string;
|
|
3
|
-
export declare function getNumberOfChar(char: string): number;
|
|
4
|
-
export declare function getCharOfValue(value: number): string;
|
|
5
|
-
export declare const FIRST_CHAR_CODE_FOR_ID = 97;
|
|
6
|
-
export declare function getNextCharId(lastCode: number): {
|
|
7
|
-
char: string;
|
|
8
|
-
nextCode: number;
|
|
9
|
-
};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
let t = 0;
|
|
3
|
-
while (t < 10000) {
|
|
4
|
-
const char = String.fromCharCode(t);
|
|
5
|
-
console.log(t + ' : ' + char);
|
|
6
|
-
t++;
|
|
7
|
-
}
|
|
8
|
-
*/
|
|
9
|
-
/*
|
|
10
|
-
|
|
11
|
-
To have a really small string representation, we have to hack some stuff
|
|
12
|
-
which makes is complicated but effective.
|
|
13
|
-
|
|
14
|
-
Rules for the string:
|
|
15
|
-
- The string starts with a number like '23' that defines how many leaf-nodes we have
|
|
16
|
-
- leaf nodes consist of two chars like 'ab'
|
|
17
|
-
- the first char is the id
|
|
18
|
-
- the second the value is a number you can get via String.charCodeAt()
|
|
19
|
-
- Internal nodes have four chars like 'abcd'
|
|
20
|
-
- the first char is the id
|
|
21
|
-
- the second char is the id of the 0-branch
|
|
22
|
-
- the third char is the id of the 1-branch
|
|
23
|
-
- the last char is the id of the boolean-function (= level)
|
|
24
|
-
- The last 3 chars of the string is the root node like 'abc'
|
|
25
|
-
- it looks like the internal-node but without the id (first char)
|
|
26
|
-
|
|
27
|
-
*/
|
|
28
|
-
// we use this because 39 is the quotes which causes problems
|
|
29
|
-
export const CHAR_CODE_OFFSET = 40; // String.fromCharCode(33) === ')'
|
|
30
|
-
export function getCharOfLevel(level) {
|
|
31
|
-
const charCode = CHAR_CODE_OFFSET + level;
|
|
32
|
-
return String.fromCharCode(charCode);
|
|
33
|
-
}
|
|
34
|
-
export function getNumberOfChar(char) {
|
|
35
|
-
const charCode = char.charCodeAt(0);
|
|
36
|
-
return charCode - CHAR_CODE_OFFSET;
|
|
37
|
-
}
|
|
38
|
-
export function getCharOfValue(value) {
|
|
39
|
-
const charCode = CHAR_CODE_OFFSET + value;
|
|
40
|
-
return String.fromCharCode(charCode);
|
|
41
|
-
}
|
|
42
|
-
export const FIRST_CHAR_CODE_FOR_ID = 97; // String.fromCharCode(97) === 'a'
|
|
43
|
-
export function getNextCharId(lastCode) {
|
|
44
|
-
// jump these codes because they look strange
|
|
45
|
-
if (lastCode >= 128 && lastCode <= 160) {
|
|
46
|
-
lastCode = 161;
|
|
47
|
-
}
|
|
48
|
-
const char = String.fromCharCode(lastCode);
|
|
49
|
-
return {
|
|
50
|
-
char,
|
|
51
|
-
nextCode: lastCode + 1
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=string-format.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string-format.js","sourceRoot":"","sources":["../../../src/minimal-string/string-format.ts"],"names":[],"mappings":"AAAA;;;;;;;EAOE;AAEF;;;;;;;;;;;;;;;;;;EAkBE;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,kCAAkC;AAGtE,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,MAAM,QAAQ,GAAG,gBAAgB,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,QAAQ,GAAG,gBAAgB,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,MAAM,QAAQ,GAAG,gBAAgB,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAGD,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAC,kCAAkC;AAE5E,MAAM,UAAU,aAAa,CAAC,QAAgB;IAK1C,6CAA6C;IAC7C,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,EAAE;QACpC,QAAQ,GAAG,GAAG,CAAC;KAClB;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACH,IAAI;QACJ,QAAQ,EAAE,QAAQ,GAAG,CAAC;KACzB,CAAC;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optimize-brute-force.js","sourceRoot":"","sources":["../../src/optimize-brute-force.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/parents.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { NonLeafNode, NonRootNode } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* represents the parents of a single node
|
|
4
|
-
*/
|
|
5
|
-
export declare class Parents {
|
|
6
|
-
node: NonRootNode;
|
|
7
|
-
private parents;
|
|
8
|
-
constructor(node: NonRootNode);
|
|
9
|
-
remove(node: NonLeafNode): void;
|
|
10
|
-
getAll(): NonLeafNode[];
|
|
11
|
-
add(node: NonLeafNode): void;
|
|
12
|
-
has(node: NonLeafNode): boolean;
|
|
13
|
-
toString(): string;
|
|
14
|
-
get size(): number;
|
|
15
|
-
}
|
package/dist/lib/parents.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* represents the parents of a single node
|
|
3
|
-
*/
|
|
4
|
-
export class Parents {
|
|
5
|
-
constructor(node) {
|
|
6
|
-
this.node = node;
|
|
7
|
-
this.parents = new Set();
|
|
8
|
-
}
|
|
9
|
-
remove(node) {
|
|
10
|
-
this.parents.delete(node);
|
|
11
|
-
if (this.parents.size === 0) {
|
|
12
|
-
this.node.remove();
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
getAll() {
|
|
16
|
-
return Array.from(this.parents);
|
|
17
|
-
}
|
|
18
|
-
add(node) {
|
|
19
|
-
if (this.node.level === node.level) {
|
|
20
|
-
throw new Error('a node cannot be parent of a node with the same level');
|
|
21
|
-
}
|
|
22
|
-
this.parents.add(node);
|
|
23
|
-
}
|
|
24
|
-
has(node) {
|
|
25
|
-
return this.parents.has(node);
|
|
26
|
-
}
|
|
27
|
-
toString() {
|
|
28
|
-
const ret = [];
|
|
29
|
-
for (const parent of this.parents) {
|
|
30
|
-
ret.push(parent.id);
|
|
31
|
-
}
|
|
32
|
-
return ret.join(', ');
|
|
33
|
-
}
|
|
34
|
-
get size() {
|
|
35
|
-
return this.parents.size;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=parents.js.map
|
package/dist/lib/parents.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parents.js","sourceRoot":"","sources":["../../src/parents.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,OAAO,OAAO;IAIhB,YACW,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAHpB,YAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;IAI1C,CAAC;IAEE,MAAM,CAAC,IAAiB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACtB;IACL,CAAC;IAEM,MAAM;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,GAAG,CAAC,IAAiB;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC5E;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,GAAG,CAAC,IAAiB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;QACJ,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACvB;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"root-node.js","sourceRoot":"","sources":["../../src/root-node.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { LeafNode } from './leaf-node';
|
|
2
|
-
import { InternalNode } from './internal-node';
|
|
3
|
-
import { RootNode } from './root-node';
|
|
4
|
-
export type NodeType = 'LeafNode' | 'InternalNode' | 'RootNode';
|
|
5
|
-
export type NonLeafNode = InternalNode | RootNode;
|
|
6
|
-
export type NonRootNode = InternalNode | LeafNode;
|
|
7
|
-
export type TruthTable = Map<string, number>;
|
|
8
|
-
export type BooleanString = '0' | '1';
|
|
9
|
-
export type ResolverFunction<T> = (i: T) => boolean;
|
|
10
|
-
export type ResolverFunctions<T = any> = {
|
|
11
|
-
[k: number]: ResolverFunction<T>;
|
|
12
|
-
};
|
|
13
|
-
export type SimpleBddLeafNode = number;
|
|
14
|
-
/**
|
|
15
|
-
* a simple bdd is a json-representation
|
|
16
|
-
* which could be parsed from the minimal string
|
|
17
|
-
* use this to have great performance
|
|
18
|
-
* when resolving values
|
|
19
|
-
*/
|
|
20
|
-
export type SimpleBdd = {
|
|
21
|
-
0: SimpleBdd | SimpleBddLeafNode;
|
|
22
|
-
1: SimpleBdd | SimpleBddLeafNode;
|
|
23
|
-
l: number;
|
|
24
|
-
};
|
package/dist/lib/types.js
DELETED
package/dist/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|