binary-decision-diagram 3.2.0 → 4.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/cjs/src/branches.d.ts +3 -1
- package/dist/cjs/src/branches.js +9 -9
- package/dist/cjs/src/branches.js.map +1 -1
- package/dist/cjs/src/create-bdd-from-truth-table.js +1 -2
- package/dist/cjs/src/create-bdd-from-truth-table.js.map +1 -1
- package/dist/cjs/src/ensure-correct-bdd.js +2 -3
- package/dist/cjs/src/ensure-correct-bdd.js.map +1 -1
- package/dist/cjs/src/fill-truth-table.js +1 -2
- package/dist/cjs/src/fill-truth-table.js.map +1 -1
- package/dist/cjs/src/find-similar-node.js +1 -2
- package/dist/cjs/src/find-similar-node.js.map +1 -1
- package/dist/cjs/src/minimal-string/bdd-to-minimal-string.js +2 -3
- package/dist/cjs/src/minimal-string/bdd-to-minimal-string.js.map +1 -1
- package/dist/cjs/src/minimal-string/bdd-to-simple-bdd.js +2 -3
- package/dist/cjs/src/minimal-string/bdd-to-simple-bdd.js.map +1 -1
- package/dist/cjs/src/minimal-string/minimal-string-to-simple-bdd.js +1 -2
- package/dist/cjs/src/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
- package/dist/cjs/src/minimal-string/resolve-with-simple-bdd.js +2 -5
- package/dist/cjs/src/minimal-string/resolve-with-simple-bdd.js.map +1 -1
- package/dist/cjs/src/minimal-string/string-format.js +5 -5
- package/dist/cjs/src/minimal-string/string-format.js.map +1 -1
- package/dist/cjs/src/optimize-brute-force.js +5 -5
- package/dist/cjs/src/optimize-brute-force.js.map +1 -1
- package/dist/cjs/src/root-node.js +3 -4
- package/dist/cjs/src/root-node.js.map +1 -1
- package/dist/cjs/src/util.js +15 -16
- package/dist/cjs/src/util.js.map +1 -1
- package/dist/esm/src/branches.d.ts +3 -1
- package/dist/esm/src/branches.js +7 -7
- package/dist/esm/src/branches.js.map +1 -1
- package/dist/esm/src/minimal-string/resolve-with-simple-bdd.js +1 -3
- package/dist/esm/src/minimal-string/resolve-with-simple-bdd.js.map +1 -1
- package/dist/esm/src/root-node.js +4 -5
- package/dist/esm/src/root-node.js.map +1 -1
- package/package.json +8 -7
- package/src/branches.ts +7 -7
- package/src/minimal-string/resolve-with-simple-bdd.ts +2 -4
- package/src/root-node.ts +6 -9
|
@@ -6,7 +6,9 @@ import { AbstractNode } from './abstract-node.js';
|
|
|
6
6
|
export declare class Branches {
|
|
7
7
|
private node;
|
|
8
8
|
deleted: boolean;
|
|
9
|
-
|
|
9
|
+
data: {
|
|
10
|
+
[k in BooleanString]: NonRootNode;
|
|
11
|
+
};
|
|
10
12
|
constructor(node: NonLeafNode);
|
|
11
13
|
setBranch(which: BooleanString, branchNode: NonRootNode): void;
|
|
12
14
|
getKeyOfNode(node: NonRootNode): BooleanString;
|
package/dist/cjs/src/branches.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.Branches = void 0;
|
|
4
|
+
exports.ensureNodesNotStrictEqual = ensureNodesNotStrictEqual;
|
|
4
5
|
/**
|
|
5
6
|
* represents the branches of a single node
|
|
6
7
|
*/
|
|
7
8
|
class Branches {
|
|
8
9
|
node;
|
|
9
10
|
deleted = false;
|
|
10
|
-
|
|
11
|
+
data = {};
|
|
11
12
|
constructor(node) {
|
|
12
13
|
this.node = node;
|
|
13
14
|
}
|
|
14
15
|
setBranch(which, branchNode) {
|
|
15
|
-
const previous = this.
|
|
16
|
+
const previous = this.data[which];
|
|
16
17
|
if (previous === branchNode) {
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
// set new branch
|
|
20
|
-
this.
|
|
21
|
+
this.data[which] = branchNode;
|
|
21
22
|
branchNode.parents.add(this.node);
|
|
22
23
|
}
|
|
23
24
|
getKeyOfNode(node) {
|
|
@@ -32,7 +33,7 @@ class Branches {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
getBranch(which) {
|
|
35
|
-
return this.
|
|
36
|
+
return this.data[which];
|
|
36
37
|
}
|
|
37
38
|
getBothBranches() {
|
|
38
39
|
return [
|
|
@@ -59,11 +60,11 @@ class Branches {
|
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
62
|
areBranchesStrictEqual() {
|
|
62
|
-
return this.
|
|
63
|
+
return this.data['0'] === this.data['1'];
|
|
63
64
|
}
|
|
64
65
|
hasEqualBranches() {
|
|
65
|
-
return JSON.stringify(this.
|
|
66
|
-
JSON.stringify(this.
|
|
66
|
+
return JSON.stringify(this.data['0']) ===
|
|
67
|
+
JSON.stringify(this.data['1']);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
exports.Branches = Branches;
|
|
@@ -72,5 +73,4 @@ function ensureNodesNotStrictEqual(node1, node2) {
|
|
|
72
73
|
throw new Error('cannot have two strict equal branches');
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
|
-
exports.ensureNodesNotStrictEqual = ensureNodesNotStrictEqual;
|
|
76
76
|
//# sourceMappingURL=branches.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../../src/branches.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../../src/branches.ts"],"names":[],"mappings":";;;AAgFA,8DAOC;AApFD;;GAEG;AACH,MAAa,QAAQ;IAOL;IANL,OAAO,GAAY,KAAK,CAAC;IACzB,IAAI,GAEP,EAAS,CAAC;IAEd,YACY,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IACzB,CAAC;IAEE,SAAS,CAAC,KAAoB,EAAE,UAAuB;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QAC9B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,YAAY,CAAC,IAAiB;QACjC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,KAAoB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEM,eAAe;QAClB,OAAO;YACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SACtB,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,IAAkB;QACrC,IACI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI;YAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAC9B,CAAC;YACC,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,iBAAiB,CAAC,EAAU;QAC/B,IACI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAC/B,CAAC;YACC,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,sBAAsB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;CACJ;AAxED,4BAwEC;AAED,SAAgB,yBAAyB,CACrC,KAAkB,EAClB,KAAkB;IAElB,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createBddFromTruthTable =
|
|
3
|
+
exports.createBddFromTruthTable = createBddFromTruthTable;
|
|
4
4
|
const root_node_js_1 = require("./root-node.js");
|
|
5
5
|
const util_js_1 = require("./util.js");
|
|
6
6
|
const internal_node_js_1 = require("./internal-node.js");
|
|
@@ -34,5 +34,4 @@ function createBddFromTruthTable(truthTable) {
|
|
|
34
34
|
}
|
|
35
35
|
return root;
|
|
36
36
|
}
|
|
37
|
-
exports.createBddFromTruthTable = createBddFromTruthTable;
|
|
38
37
|
//# sourceMappingURL=create-bdd-from-truth-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-bdd-from-truth-table.js","sourceRoot":"","sources":["../../../src/create-bdd-from-truth-table.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-bdd-from-truth-table.js","sourceRoot":"","sources":["../../../src/create-bdd-from-truth-table.ts"],"names":[],"mappings":";;AAMA,0DAoDC;AA1DD,iDAA0C;AAC1C,uCAAqC;AACrC,yDAAkD;AAClD,iDAA0C;AAG1C,SAAgB,uBAAuB,CACnC,UAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,uBAAQ,EAAE,CAAC;IAE5B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IAGD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,IAAI,QAAQ,GAAgB,IAAI,CAAC;QAEjC,uCAAuC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,MAAM,KAAK,GAAkB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAkB,CAAC;YAEjE,sDAAsD;YACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CACvB,KAAK,EACL,IAAI,+BAAY,CACZ,KAAK,EACL,IAAI,EACJ,QAAQ,CACX,CACJ,CAAC;YACN,CAAC;YACD,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAgB,CAAC;QACjE,CAAC;QAED,yBAAyB;QACzB,MAAM,SAAS,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAkB,CAAC;QACtD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;QACD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CACvB,SAAS,EACT,IAAI,uBAAQ,CACR,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,KAAK,EACL,QAAQ,CACX,CACJ,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ensureCorrectBdd = ensureCorrectBdd;
|
|
4
|
+
exports.getNodesRecursive = getNodesRecursive;
|
|
4
5
|
/**
|
|
5
6
|
* run some tests on the bdd
|
|
6
7
|
* to ensure everything is correct
|
|
@@ -84,7 +85,6 @@ function ensureCorrectBdd(bdd) {
|
|
|
84
85
|
'bdd includes a deleted node');
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
|
-
exports.ensureCorrectBdd = ensureCorrectBdd;
|
|
88
88
|
function getNodesRecursive(node, set = new Set()) {
|
|
89
89
|
set.add(node);
|
|
90
90
|
if (!node.isLeafNode()) {
|
|
@@ -98,5 +98,4 @@ function getNodesRecursive(node, set = new Set()) {
|
|
|
98
98
|
}
|
|
99
99
|
return set;
|
|
100
100
|
}
|
|
101
|
-
exports.getNodesRecursive = getNodesRecursive;
|
|
102
101
|
//# sourceMappingURL=ensure-correct-bdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-correct-bdd.js","sourceRoot":"","sources":["../../../src/ensure-correct-bdd.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ensure-correct-bdd.js","sourceRoot":"","sources":["../../../src/ensure-correct-bdd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fillTruthTable =
|
|
3
|
+
exports.fillTruthTable = fillTruthTable;
|
|
4
4
|
const util_js_1 = require("./util.js");
|
|
5
5
|
/**
|
|
6
6
|
* fills each missing row of a table
|
|
@@ -22,5 +22,4 @@ function fillTruthTable(truthTable, inputLength, value) {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
exports.fillTruthTable = fillTruthTable;
|
|
26
25
|
//# sourceMappingURL=fill-truth-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill-truth-table.js","sourceRoot":"","sources":["../../../src/fill-truth-table.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fill-truth-table.js","sourceRoot":"","sources":["../../../src/fill-truth-table.ts"],"names":[],"mappings":";;AAWA,wCAuBC;AAlCD,uCAImB;AAGnB;;;GAGG;AACH,SAAgB,cAAc,CAC1B,UAAsB,EACtB,WAAmB,EACnB,KAAa;IAEb,MAAM,QAAQ,GAAG,IAAA,6BAAmB,EAAC,WAAW,CAAC,CAAC;IAClD,IAAI,YAAY,GAAG,IAAA,6BAAmB,EAAC,WAAW,CAAC,CAAC;IACpD,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,CAAC,IAAI,EAAE,CAAC;QACX,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,UAAU,CAAC,GAAG,CACV,YAAY,EACZ,KAAK,CACR,CAAC;QACN,CAAC;QACD,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,YAAY,GAAG,IAAA,yBAAe,EAC1B,YAAY,CACf,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findSimilarNode =
|
|
3
|
+
exports.findSimilarNode = findSimilarNode;
|
|
4
4
|
/**
|
|
5
5
|
* find an simliar node in a list of nodes
|
|
6
6
|
* which is not exactly the same node
|
|
@@ -18,5 +18,4 @@ function findSimilarNode(own, others) {
|
|
|
18
18
|
}
|
|
19
19
|
return null;
|
|
20
20
|
}
|
|
21
|
-
exports.findSimilarNode = findSimilarNode;
|
|
22
21
|
//# sourceMappingURL=find-similar-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-similar-node.js","sourceRoot":"","sources":["../../../src/find-similar-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"find-similar-node.js","sourceRoot":"","sources":["../../../src/find-similar-node.ts"],"names":[],"mappings":";;AAOA,0CAmBC;AAxBD;;;;GAIG;AACH,SAAgB,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,CAAC;QACrC,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,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.bddToMinimalString = bddToMinimalString;
|
|
4
|
+
exports.nodeToString = nodeToString;
|
|
4
5
|
const string_format_js_1 = require("./string-format.js");
|
|
5
6
|
const string_format_js_2 = require("./string-format.js");
|
|
6
7
|
function bddToMinimalString(bdd) {
|
|
@@ -25,7 +26,6 @@ function bddToMinimalString(bdd) {
|
|
|
25
26
|
});
|
|
26
27
|
return ret;
|
|
27
28
|
}
|
|
28
|
-
exports.bddToMinimalString = bddToMinimalString;
|
|
29
29
|
function nodeToString(node, idByNode, lastCode) {
|
|
30
30
|
const nextId = (0, string_format_js_1.getNextCharId)(lastCode);
|
|
31
31
|
switch (node.type) {
|
|
@@ -56,5 +56,4 @@ function nodeToString(node, idByNode, lastCode) {
|
|
|
56
56
|
throw new Error('unknown node type');
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
exports.nodeToString = nodeToString;
|
|
60
59
|
//# sourceMappingURL=bdd-to-minimal-string.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bdd-to-minimal-string.js","sourceRoot":"","sources":["../../../../src/minimal-string/bdd-to-minimal-string.ts"],"names":[],"mappings":"
|
|
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,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.bddToSimpleBdd = bddToSimpleBdd;
|
|
4
|
+
exports.nodeToSimpleBddNode = nodeToSimpleBddNode;
|
|
4
5
|
/**
|
|
5
6
|
* @recursive
|
|
6
7
|
*/
|
|
7
8
|
function bddToSimpleBdd(bdd) {
|
|
8
9
|
return nodeToSimpleBddNode(bdd);
|
|
9
10
|
}
|
|
10
|
-
exports.bddToSimpleBdd = bddToSimpleBdd;
|
|
11
11
|
/**
|
|
12
12
|
* @recursive
|
|
13
13
|
*/
|
|
@@ -20,5 +20,4 @@ function nodeToSimpleBddNode(node) {
|
|
|
20
20
|
1: branch1.isLeafNode() ? branch1.asLeafNode().value : nodeToSimpleBddNode(branch1),
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
exports.nodeToSimpleBddNode = nodeToSimpleBddNode;
|
|
24
23
|
//# sourceMappingURL=bdd-to-simple-bdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bdd-to-simple-bdd.js","sourceRoot":"","sources":["../../../../src/minimal-string/bdd-to-simple-bdd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bdd-to-simple-bdd.js","sourceRoot":"","sources":["../../../../src/minimal-string/bdd-to-simple-bdd.ts"],"names":[],"mappings":";;AAUA,wCAEC;AAMD,kDAYC;AAvBD;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAa;IACxC,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAGD;;GAEG;AACH,SAAgB,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,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.minimalStringToSimpleBdd =
|
|
3
|
+
exports.minimalStringToSimpleBdd = minimalStringToSimpleBdd;
|
|
4
4
|
const util_js_1 = require("../util.js");
|
|
5
5
|
const string_format_js_1 = require("./string-format.js");
|
|
6
6
|
function minimalStringToSimpleBdd(str) {
|
|
@@ -54,5 +54,4 @@ function minimalStringToSimpleBdd(str) {
|
|
|
54
54
|
};
|
|
55
55
|
return rootNode;
|
|
56
56
|
}
|
|
57
|
-
exports.minimalStringToSimpleBdd = minimalStringToSimpleBdd;
|
|
58
57
|
//# sourceMappingURL=minimal-string-to-simple-bdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-string-to-simple-bdd.js","sourceRoot":"","sources":["../../../../src/minimal-string/minimal-string-to-simple-bdd.ts"],"names":[],"mappings":"
|
|
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,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveWithSimpleBdd =
|
|
4
|
-
const util_js_1 = require("../util.js");
|
|
3
|
+
exports.resolveWithSimpleBdd = resolveWithSimpleBdd;
|
|
5
4
|
function resolveWithSimpleBdd(simpleBdd, fns, input) {
|
|
6
5
|
let currentNode = simpleBdd;
|
|
7
6
|
let currentLevel = simpleBdd.l;
|
|
8
7
|
while (true) {
|
|
9
8
|
const booleanResult = fns[currentLevel](input);
|
|
10
|
-
|
|
11
|
-
currentNode = currentNode[branchKey];
|
|
9
|
+
currentNode = currentNode[booleanResult ? '1' : '0'];
|
|
12
10
|
if (typeof currentNode === 'number' || typeof currentNode === 'string') {
|
|
13
11
|
return currentNode;
|
|
14
12
|
}
|
|
@@ -17,5 +15,4 @@ function resolveWithSimpleBdd(simpleBdd, fns, input) {
|
|
|
17
15
|
}
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
|
-
exports.resolveWithSimpleBdd = resolveWithSimpleBdd;
|
|
21
18
|
//# sourceMappingURL=resolve-with-simple-bdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-with-simple-bdd.js","sourceRoot":"","sources":["../../../../src/minimal-string/resolve-with-simple-bdd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-with-simple-bdd.js","sourceRoot":"","sources":["../../../../src/minimal-string/resolve-with-simple-bdd.ts"],"names":[],"mappings":";;AAMA,oDAgBC;AAhBD,SAAgB,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,CAAC;QACV,MAAM,aAAa,GAAY,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;QACxD,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,WAAkB,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -8,7 +8,11 @@ while (t < 10000) {
|
|
|
8
8
|
}
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.
|
|
11
|
+
exports.FIRST_CHAR_CODE_FOR_ID = exports.CHAR_CODE_OFFSET = void 0;
|
|
12
|
+
exports.getCharOfLevel = getCharOfLevel;
|
|
13
|
+
exports.getNumberOfChar = getNumberOfChar;
|
|
14
|
+
exports.getCharOfValue = getCharOfValue;
|
|
15
|
+
exports.getNextCharId = getNextCharId;
|
|
12
16
|
/*
|
|
13
17
|
|
|
14
18
|
To have a really small string representation, we have to hack some stuff
|
|
@@ -34,17 +38,14 @@ function getCharOfLevel(level) {
|
|
|
34
38
|
const charCode = exports.CHAR_CODE_OFFSET + level;
|
|
35
39
|
return String.fromCharCode(charCode);
|
|
36
40
|
}
|
|
37
|
-
exports.getCharOfLevel = getCharOfLevel;
|
|
38
41
|
function getNumberOfChar(char) {
|
|
39
42
|
const charCode = char.charCodeAt(0);
|
|
40
43
|
return charCode - exports.CHAR_CODE_OFFSET;
|
|
41
44
|
}
|
|
42
|
-
exports.getNumberOfChar = getNumberOfChar;
|
|
43
45
|
function getCharOfValue(value) {
|
|
44
46
|
const charCode = exports.CHAR_CODE_OFFSET + value;
|
|
45
47
|
return String.fromCharCode(charCode);
|
|
46
48
|
}
|
|
47
|
-
exports.getCharOfValue = getCharOfValue;
|
|
48
49
|
exports.FIRST_CHAR_CODE_FOR_ID = 97; // String.fromCharCode(97) === 'a'
|
|
49
50
|
function getNextCharId(lastCode) {
|
|
50
51
|
// jump these codes because they look strange
|
|
@@ -57,5 +58,4 @@ function getNextCharId(lastCode) {
|
|
|
57
58
|
nextCode: lastCode + 1
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
|
-
exports.getNextCharId = getNextCharId;
|
|
61
61
|
//# sourceMappingURL=string-format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-format.js","sourceRoot":"","sources":["../../../../src/minimal-string/string-format.ts"],"names":[],"mappings":";AAAA;;;;;;;EAOE;;;
|
|
1
|
+
{"version":3,"file":"string-format.js","sourceRoot":"","sources":["../../../../src/minimal-string/string-format.ts"],"names":[],"mappings":";AAAA;;;;;;;EAOE;;;AA0BF,wCAGC;AAED,0CAGC;AAED,wCAGC;AAKD,sCAeC;AAzDD;;;;;;;;;;;;;;;;;;EAkBE;AAEF,6DAA6D;AAChD,QAAA,gBAAgB,GAAG,EAAE,CAAC,CAAC,kCAAkC;AAGtE,SAAgB,cAAc,CAAC,KAAa;IACxC,MAAM,QAAQ,GAAG,wBAAgB,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,QAAQ,GAAG,wBAAgB,CAAC;AACvC,CAAC;AAED,SAAgB,cAAc,CAAC,KAAa;IACxC,MAAM,QAAQ,GAAG,wBAAgB,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAGY,QAAA,sBAAsB,GAAG,EAAE,CAAC,CAAC,kCAAkC;AAE5E,SAAgB,aAAa,CAAC,QAAgB;IAK1C,6CAA6C;IAC7C,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACrC,QAAQ,GAAG,GAAG,CAAC;IACnB,CAAC;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,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.defaultCompareResults = void 0;
|
|
4
|
+
exports.optimizeBruteForce = optimizeBruteForce;
|
|
5
|
+
exports.shuffleBooleanOrdering = shuffleBooleanOrdering;
|
|
6
|
+
exports.changeKeyOrder = changeKeyOrder;
|
|
7
|
+
exports.getArrayWithIndexes = getArrayWithIndexes;
|
|
4
8
|
const create_bdd_from_truth_table_js_1 = require("./create-bdd-from-truth-table.js");
|
|
5
9
|
const util_js_1 = require("./util.js");
|
|
6
10
|
/**
|
|
@@ -89,7 +93,6 @@ async function optimizeBruteForce({ truthTable, iterations = Infinity, onBetterB
|
|
|
89
93
|
}
|
|
90
94
|
return currentBestResult;
|
|
91
95
|
}
|
|
92
|
-
exports.optimizeBruteForce = optimizeBruteForce;
|
|
93
96
|
function shuffleBooleanOrdering(truthTable) {
|
|
94
97
|
const firstKey = (0, util_js_1.firstKeyOfMap)(truthTable);
|
|
95
98
|
const arrayWithIndexes = getArrayWithIndexes(firstKey.length);
|
|
@@ -111,7 +114,6 @@ function shuffleBooleanOrdering(truthTable) {
|
|
|
111
114
|
mappingBeforeToAfter
|
|
112
115
|
};
|
|
113
116
|
}
|
|
114
|
-
exports.shuffleBooleanOrdering = shuffleBooleanOrdering;
|
|
115
117
|
function changeKeyOrder(oldKey, mappingBeforeToAfter) {
|
|
116
118
|
const chars = oldKey
|
|
117
119
|
.split('')
|
|
@@ -127,7 +129,6 @@ function changeKeyOrder(oldKey, mappingBeforeToAfter) {
|
|
|
127
129
|
.join('');
|
|
128
130
|
return chars;
|
|
129
131
|
}
|
|
130
|
-
exports.changeKeyOrder = changeKeyOrder;
|
|
131
132
|
function getArrayWithIndexes(size) {
|
|
132
133
|
const ret = [];
|
|
133
134
|
let last = 0;
|
|
@@ -137,5 +138,4 @@ function getArrayWithIndexes(size) {
|
|
|
137
138
|
}
|
|
138
139
|
return ret;
|
|
139
140
|
}
|
|
140
|
-
exports.getArrayWithIndexes = getArrayWithIndexes;
|
|
141
141
|
//# sourceMappingURL=optimize-brute-force.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize-brute-force.js","sourceRoot":"","sources":["../../../src/optimize-brute-force.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"optimize-brute-force.js","sourceRoot":"","sources":["../../../src/optimize-brute-force.ts"],"names":[],"mappings":";;;AAiDA,gDA0FC;AAWD,wDAmCC;AAED,wCAiBC;AAED,kDAQC;AApND,qFAA2E;AAC3E,uCAAqE;AAgBrE;;GAEG;AACI,MAAM,qBAAqB,GAA2B,UACzD,CAAW,EACX,CAAW;IAEX,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACb,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,CAAC;IACb,CAAC;AACL,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC;AAaF;;;;GAIG;AACI,KAAK,UAAU,kBAAkB,CAAC,EACrC,UAAU,EACV,UAAU,GAAG,QAAQ,EACrB,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,EACxB,cAAc,GAAG,6BAAqB,EACtC,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC7B,UAAU,EACV,GAAG,GAAG,KAAK,EACW;IACtB,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,IAAA,wDAAuB,EAAC,UAAU,CAAC,CAAC;IACjF,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7B,UAAU,CAAC,QAAQ,EAAE,CAAC;IACtB,IAAI,iBAAiB,GAAuB;QACxC,UAAU;QACV,GAAG,EAAE,UAAU;KAClB,CAAC;IACF,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAE/B,IAAI,GAAG,EAAE,CAAC;QACN,UAAU,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,UAAU,EAAE,CAAC;QACpB,CAAC,EAAE,CAAC;QAEJ,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAA,wDAAuB,EAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEnE,iCAAiC;QACjC,MAAM,eAAe,GAAmC,IAAI,GAAG,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,IAAA,qBAAW,EAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACnD,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,OAAO,CAAC,SAAS,EAAE;aACd,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aACpC,OAAO,CAAC,KAAK,CAAC,EAAE;YACb,MAAM,QAAQ,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9D,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAsB,IAAI,GAAG,EAAE,CAAC;YAC9C,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACxC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1C,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACP,MAAM,YAAY,GAAsB,IAAI,GAAG,EAAE,CAAC;QAClD,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC7C,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC;QACvC,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC;QAEjC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEnB,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YACxE,4BAA4B;YAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAClC,iBAAiB,CAAC,GAAG,EACrB,OAAO,CACV,CAAC;QACF,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,iBAAiB,GAAG;gBAChB,GAAG,EAAE,OAAO;gBACZ,UAAU,EAAE,gBAAgB,CAAC,QAAQ;aACxC,CAAC;YACF,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAGD,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAWD,SAAgB,sBAAsB,CAClC,UAAsB;IAMtB,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAA,sBAAY,EAAC,gBAAgB,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,MAAM,oBAAoB,GAAyC,EAAE,CAAC;IACtE,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;QACzC,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;QAClC,oBAAoB,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAe,IAAI,GAAG,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,cAAc,CACzB,GAAG,EACH,OAAO,CACV,CAAC;QACF,QAAQ,CAAC,GAAG,CACR,MAAM,EACN,KAAK,CACR,CAAC;IACN,CAAC;IAED,OAAO;QACH,QAAQ;QACR,OAAO;QACP,oBAAoB;KACvB,CAAC;AACN,CAAC;AAED,SAAgB,cAAc,CAC1B,MAAc,EACd,oBAAmD;IAEnD,MAAM,KAAK,GAAG,MAAM;SACf,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE;QACvB,OAAO;YACH,IAAI;YACJ,WAAW;YACX,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;SAChD,CAAC;IACN,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;SAC3C,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,IAAI,GAAG,IAAI,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,EAAE,CAAC;IACX,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -143,10 +143,9 @@ class RootNode extends abstract_node_js_1.AbstractNode {
|
|
|
143
143
|
let currentNode = this;
|
|
144
144
|
while (true) {
|
|
145
145
|
const booleanResult = fns[currentNode.level](booleanFunctionInput);
|
|
146
|
-
|
|
147
|
-
currentNode
|
|
148
|
-
|
|
149
|
-
return currentNode.asLeafNode().value;
|
|
146
|
+
currentNode = currentNode.branches.data[booleanResult ? '1' : '0'];
|
|
147
|
+
if (currentNode.type === 'LeafNode') {
|
|
148
|
+
return currentNode.value;
|
|
150
149
|
}
|
|
151
150
|
}
|
|
152
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-node.js","sourceRoot":"","sources":["../../../src/root-node.ts"],"names":[],"mappings":";;;AAAA,yDAAkD;AAClD,+CAAyC;
|
|
1
|
+
{"version":3,"file":"root-node.js","sourceRoot":"","sources":["../../../src/root-node.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/src/util.js
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.booleanStringToBoolean = booleanStringToBoolean;
|
|
4
|
+
exports.booleanToBooleanString = booleanToBooleanString;
|
|
5
|
+
exports.oppositeBoolean = oppositeBoolean;
|
|
6
|
+
exports.lastChar = lastChar;
|
|
7
|
+
exports.nextNodeId = nextNodeId;
|
|
8
|
+
exports.decimalToPaddedBinary = decimalToPaddedBinary;
|
|
9
|
+
exports.oppositeBinary = oppositeBinary;
|
|
10
|
+
exports.binaryToDecimal = binaryToDecimal;
|
|
11
|
+
exports.minBinaryWithLength = minBinaryWithLength;
|
|
12
|
+
exports.maxBinaryWithLength = maxBinaryWithLength;
|
|
13
|
+
exports.getNextStateSet = getNextStateSet;
|
|
14
|
+
exports.firstKeyOfMap = firstKeyOfMap;
|
|
15
|
+
exports.shuffleArray = shuffleArray;
|
|
16
|
+
exports.lastOfArray = lastOfArray;
|
|
17
|
+
exports.splitStringToChunks = splitStringToChunks;
|
|
4
18
|
function booleanStringToBoolean(str) {
|
|
5
19
|
if (str === '1') {
|
|
6
20
|
return true;
|
|
@@ -9,7 +23,6 @@ function booleanStringToBoolean(str) {
|
|
|
9
23
|
return false;
|
|
10
24
|
}
|
|
11
25
|
}
|
|
12
|
-
exports.booleanStringToBoolean = booleanStringToBoolean;
|
|
13
26
|
function booleanToBooleanString(b) {
|
|
14
27
|
if (b) {
|
|
15
28
|
return '1';
|
|
@@ -18,7 +31,6 @@ function booleanToBooleanString(b) {
|
|
|
18
31
|
return '0';
|
|
19
32
|
}
|
|
20
33
|
}
|
|
21
|
-
exports.booleanToBooleanString = booleanToBooleanString;
|
|
22
34
|
function oppositeBoolean(input) {
|
|
23
35
|
if (input === '1') {
|
|
24
36
|
return '0';
|
|
@@ -27,11 +39,9 @@ function oppositeBoolean(input) {
|
|
|
27
39
|
return '1';
|
|
28
40
|
}
|
|
29
41
|
}
|
|
30
|
-
exports.oppositeBoolean = oppositeBoolean;
|
|
31
42
|
function lastChar(str) {
|
|
32
43
|
return str.slice(-1);
|
|
33
44
|
}
|
|
34
|
-
exports.lastChar = lastChar;
|
|
35
45
|
/**
|
|
36
46
|
* @link https://stackoverflow.com/a/1349426
|
|
37
47
|
*/
|
|
@@ -51,7 +61,6 @@ function nextNodeId() {
|
|
|
51
61
|
lastIdGen++;
|
|
52
62
|
return ret;
|
|
53
63
|
}
|
|
54
|
-
exports.nextNodeId = nextNodeId;
|
|
55
64
|
/**
|
|
56
65
|
* @link https://stackoverflow.com/a/16155417
|
|
57
66
|
*/
|
|
@@ -60,7 +69,6 @@ function decimalToPaddedBinary(decimal, padding) {
|
|
|
60
69
|
const padded = binary.padStart(padding, '0');
|
|
61
70
|
return padded;
|
|
62
71
|
}
|
|
63
|
-
exports.decimalToPaddedBinary = decimalToPaddedBinary;
|
|
64
72
|
function oppositeBinary(i) {
|
|
65
73
|
if (i === '1') {
|
|
66
74
|
return '0';
|
|
@@ -72,31 +80,25 @@ function oppositeBinary(i) {
|
|
|
72
80
|
throw new Error('non-binary given');
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
|
-
exports.oppositeBinary = oppositeBinary;
|
|
76
83
|
function binaryToDecimal(binary) {
|
|
77
84
|
return parseInt(binary, 2);
|
|
78
85
|
}
|
|
79
|
-
exports.binaryToDecimal = binaryToDecimal;
|
|
80
86
|
function minBinaryWithLength(length) {
|
|
81
87
|
return new Array(length).fill(0).map(() => '0').join('');
|
|
82
88
|
}
|
|
83
|
-
exports.minBinaryWithLength = minBinaryWithLength;
|
|
84
89
|
function maxBinaryWithLength(length) {
|
|
85
90
|
return new Array(length).fill(0).map(() => '1').join('');
|
|
86
91
|
}
|
|
87
|
-
exports.maxBinaryWithLength = maxBinaryWithLength;
|
|
88
92
|
function getNextStateSet(stateSet) {
|
|
89
93
|
const decimal = binaryToDecimal(stateSet);
|
|
90
94
|
const increase = decimal + 1;
|
|
91
95
|
const binary = decimalToPaddedBinary(increase, stateSet.length);
|
|
92
96
|
return binary;
|
|
93
97
|
}
|
|
94
|
-
exports.getNextStateSet = getNextStateSet;
|
|
95
98
|
function firstKeyOfMap(map) {
|
|
96
99
|
const iterator1 = map.keys();
|
|
97
100
|
return iterator1.next().value;
|
|
98
101
|
}
|
|
99
|
-
exports.firstKeyOfMap = firstKeyOfMap;
|
|
100
102
|
/**
|
|
101
103
|
* Shuffles array in place. ES6 version
|
|
102
104
|
* @link https://stackoverflow.com/a/6274381
|
|
@@ -108,11 +110,9 @@ function shuffleArray(a) {
|
|
|
108
110
|
}
|
|
109
111
|
return a;
|
|
110
112
|
}
|
|
111
|
-
exports.shuffleArray = shuffleArray;
|
|
112
113
|
function lastOfArray(ar) {
|
|
113
114
|
return ar[ar.length - 1];
|
|
114
115
|
}
|
|
115
|
-
exports.lastOfArray = lastOfArray;
|
|
116
116
|
/**
|
|
117
117
|
* @link https://stackoverflow.com/a/6259536
|
|
118
118
|
*/
|
|
@@ -123,5 +123,4 @@ function splitStringToChunks(str, chunkSize) {
|
|
|
123
123
|
}
|
|
124
124
|
return chunks;
|
|
125
125
|
}
|
|
126
|
-
exports.splitStringToChunks = splitStringToChunks;
|
|
127
126
|
//# sourceMappingURL=util.js.map
|
package/dist/cjs/src/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@ import { AbstractNode } from './abstract-node.js';
|
|
|
6
6
|
export declare class Branches {
|
|
7
7
|
private node;
|
|
8
8
|
deleted: boolean;
|
|
9
|
-
|
|
9
|
+
data: {
|
|
10
|
+
[k in BooleanString]: NonRootNode;
|
|
11
|
+
};
|
|
10
12
|
constructor(node: NonLeafNode);
|
|
11
13
|
setBranch(which: BooleanString, branchNode: NonRootNode): void;
|
|
12
14
|
getKeyOfNode(node: NonRootNode): BooleanString;
|
package/dist/esm/src/branches.js
CHANGED
|
@@ -4,17 +4,17 @@
|
|
|
4
4
|
export class Branches {
|
|
5
5
|
node;
|
|
6
6
|
deleted = false;
|
|
7
|
-
|
|
7
|
+
data = {};
|
|
8
8
|
constructor(node) {
|
|
9
9
|
this.node = node;
|
|
10
10
|
}
|
|
11
11
|
setBranch(which, branchNode) {
|
|
12
|
-
const previous = this.
|
|
12
|
+
const previous = this.data[which];
|
|
13
13
|
if (previous === branchNode) {
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
// set new branch
|
|
17
|
-
this.
|
|
17
|
+
this.data[which] = branchNode;
|
|
18
18
|
branchNode.parents.add(this.node);
|
|
19
19
|
}
|
|
20
20
|
getKeyOfNode(node) {
|
|
@@ -29,7 +29,7 @@ export class Branches {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
getBranch(which) {
|
|
32
|
-
return this.
|
|
32
|
+
return this.data[which];
|
|
33
33
|
}
|
|
34
34
|
getBothBranches() {
|
|
35
35
|
return [
|
|
@@ -56,11 +56,11 @@ export class Branches {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
areBranchesStrictEqual() {
|
|
59
|
-
return this.
|
|
59
|
+
return this.data['0'] === this.data['1'];
|
|
60
60
|
}
|
|
61
61
|
hasEqualBranches() {
|
|
62
|
-
return JSON.stringify(this.
|
|
63
|
-
JSON.stringify(this.
|
|
62
|
+
return JSON.stringify(this.data['0']) ===
|
|
63
|
+
JSON.stringify(this.data['1']);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
export function ensureNodesNotStrictEqual(node1, node2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../../src/branches.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAOL;IANL,OAAO,GAAY,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../../src/branches.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAOL;IANL,OAAO,GAAY,KAAK,CAAC;IACzB,IAAI,GAEP,EAAS,CAAC;IAEd,YACY,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IACzB,CAAC;IAEE,SAAS,CAAC,KAAoB,EAAE,UAAuB;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QAC9B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,YAAY,CAAC,IAAiB;QACjC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,KAAoB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEM,eAAe;QAClB,OAAO;YACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SACtB,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,IAAkB;QACrC,IACI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI;YAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAC9B,CAAC;YACC,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,iBAAiB,CAAC,EAAU;QAC/B,IACI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAC/B,CAAC;YACC,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,sBAAsB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;CACJ;AAED,MAAM,UAAU,yBAAyB,CACrC,KAAkB,EAClB,KAAkB;IAElB,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { booleanToBooleanString } from '../util.js';
|
|
2
1
|
export function resolveWithSimpleBdd(simpleBdd, fns, input) {
|
|
3
2
|
let currentNode = simpleBdd;
|
|
4
3
|
let currentLevel = simpleBdd.l;
|
|
5
4
|
while (true) {
|
|
6
5
|
const booleanResult = fns[currentLevel](input);
|
|
7
|
-
|
|
8
|
-
currentNode = currentNode[branchKey];
|
|
6
|
+
currentNode = currentNode[booleanResult ? '1' : '0'];
|
|
9
7
|
if (typeof currentNode === 'number' || typeof currentNode === 'string') {
|
|
10
8
|
return currentNode;
|
|
11
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-with-simple-bdd.js","sourceRoot":"","sources":["../../../../src/minimal-string/resolve-with-simple-bdd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-with-simple-bdd.js","sourceRoot":"","sources":["../../../../src/minimal-string/resolve-with-simple-bdd.ts"],"names":[],"mappings":"AAMA,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,CAAC;QACV,MAAM,aAAa,GAAY,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;QACxD,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,WAAkB,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AbstractNode } from './abstract-node.js';
|
|
2
2
|
import { Branches } from './branches.js';
|
|
3
|
-
import { lastOfArray
|
|
3
|
+
import { lastOfArray } from './util.js';
|
|
4
4
|
import { bddToSimpleBdd } from './minimal-string/index.js';
|
|
5
5
|
export class RootNode extends AbstractNode {
|
|
6
6
|
branches = new Branches(this);
|
|
@@ -140,10 +140,9 @@ export class RootNode extends AbstractNode {
|
|
|
140
140
|
let currentNode = this;
|
|
141
141
|
while (true) {
|
|
142
142
|
const booleanResult = fns[currentNode.level](booleanFunctionInput);
|
|
143
|
-
|
|
144
|
-
currentNode
|
|
145
|
-
|
|
146
|
-
return currentNode.asLeafNode().value;
|
|
143
|
+
currentNode = currentNode.branches.data[booleanResult ? '1' : '0'];
|
|
144
|
+
if (currentNode.type === 'LeafNode') {
|
|
145
|
+
return currentNode.value;
|
|
147
146
|
}
|
|
148
147
|
}
|
|
149
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-node.js","sourceRoot":"","sources":["../../../src/root-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"root-node.js","sourceRoot":"","sources":["../../../src/root-node.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "binary-decision-diagram",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "A library to create, minimize and optimize binary decision diagrams",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"binary decision diagram",
|
|
@@ -46,16 +46,17 @@
|
|
|
46
46
|
"transpile": "tsc -p ./ --module commonjs && echo '# transpile es5 (require) sucess!'",
|
|
47
47
|
"transpile:es": "tsc -p ./ --outDir ./dist/esm && echo '{ \"type\": \"module\", \"sideEffects\": false }' > dist/esm/src/package.json && echo '# transpile esm (modules) sucess!'",
|
|
48
48
|
"build": "rimraf -r ./dist && npm run transpile && npm run transpile:es",
|
|
49
|
-
"test": "npm run build && mocha ./dist/cjs/test/unit/index.test.js --timeout 40000 --bail"
|
|
49
|
+
"test": "npm run build && mocha ./dist/cjs/test/unit/index.test.js --timeout 40000 --bail",
|
|
50
|
+
"test:performance": "npm run build && mocha ./dist/cjs/test/performance/index.test.js --timeout 120000 --bail"
|
|
50
51
|
},
|
|
51
52
|
"devDependencies": {
|
|
52
|
-
"@types/mocha": "10.0.
|
|
53
|
-
"@types/node": "
|
|
53
|
+
"@types/mocha": "10.0.10",
|
|
54
|
+
"@types/node": "24.12.0",
|
|
54
55
|
"assert": "2.1.0",
|
|
55
|
-
"async-test-util": "2.
|
|
56
|
-
"mocha": "
|
|
56
|
+
"async-test-util": "2.5.0",
|
|
57
|
+
"mocha": "11.7.5",
|
|
57
58
|
"rimraf": "3.0.2",
|
|
58
59
|
"tslint": "6.1.3",
|
|
59
|
-
"typescript": "5.
|
|
60
|
+
"typescript": "5.5.4"
|
|
60
61
|
}
|
|
61
62
|
}
|
package/src/branches.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { AbstractNode } from './abstract-node.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export class Branches {
|
|
8
8
|
public deleted: boolean = false;
|
|
9
|
-
|
|
9
|
+
public data: {
|
|
10
10
|
[k in BooleanString]: NonRootNode
|
|
11
11
|
} = {} as any;
|
|
12
12
|
|
|
@@ -15,13 +15,13 @@ export class Branches {
|
|
|
15
15
|
) { }
|
|
16
16
|
|
|
17
17
|
public setBranch(which: BooleanString, branchNode: NonRootNode) {
|
|
18
|
-
const previous = this.
|
|
18
|
+
const previous = this.data[which];
|
|
19
19
|
if (previous === branchNode) {
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
// set new branch
|
|
24
|
-
this.
|
|
24
|
+
this.data[which] = branchNode;
|
|
25
25
|
branchNode.parents.add(this.node);
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -36,7 +36,7 @@ export class Branches {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
public getBranch(which: BooleanString): NonRootNode {
|
|
39
|
-
return this.
|
|
39
|
+
return this.data[which];
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
public getBothBranches(): NonRootNode[] {
|
|
@@ -69,12 +69,12 @@ export class Branches {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
public areBranchesStrictEqual() {
|
|
72
|
-
return this.
|
|
72
|
+
return this.data['0'] === this.data['1'];
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
public hasEqualBranches() {
|
|
76
|
-
return JSON.stringify(this.
|
|
77
|
-
JSON.stringify(this.
|
|
76
|
+
return JSON.stringify(this.data['0']) ===
|
|
77
|
+
JSON.stringify(this.data['1']);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
@@ -3,7 +3,6 @@ import {
|
|
|
3
3
|
ResolverFunctions,
|
|
4
4
|
SimpleBddLeafNode
|
|
5
5
|
} from '../types.js';
|
|
6
|
-
import { booleanToBooleanString } from '../util.js';
|
|
7
6
|
|
|
8
7
|
export function resolveWithSimpleBdd(
|
|
9
8
|
simpleBdd: SimpleBdd,
|
|
@@ -13,9 +12,8 @@ export function resolveWithSimpleBdd(
|
|
|
13
12
|
let currentNode: SimpleBdd | SimpleBddLeafNode = simpleBdd;
|
|
14
13
|
let currentLevel: number = simpleBdd.l;
|
|
15
14
|
while (true) {
|
|
16
|
-
const booleanResult = fns[currentLevel](input);
|
|
17
|
-
|
|
18
|
-
currentNode = currentNode[branchKey];
|
|
15
|
+
const booleanResult: boolean = fns[currentLevel](input);
|
|
16
|
+
currentNode = currentNode[booleanResult ? '1' : '0'];
|
|
19
17
|
if (typeof currentNode === 'number' || typeof currentNode === 'string') {
|
|
20
18
|
return currentNode as any;
|
|
21
19
|
} else {
|
package/src/root-node.ts
CHANGED
|
@@ -3,12 +3,10 @@ import { Branches } from './branches.js';
|
|
|
3
3
|
import type {
|
|
4
4
|
NonRootNode,
|
|
5
5
|
ResolverFunctions,
|
|
6
|
-
NonLeafNode,
|
|
7
6
|
SimpleBdd
|
|
8
7
|
} from './types.js';
|
|
9
8
|
import {
|
|
10
|
-
lastOfArray
|
|
11
|
-
booleanToBooleanString
|
|
9
|
+
lastOfArray
|
|
12
10
|
} from './util.js';
|
|
13
11
|
import { InternalNode } from './internal-node.js';
|
|
14
12
|
import { LeafNode } from './leaf-node.js';
|
|
@@ -178,13 +176,12 @@ export class RootNode extends AbstractNode {
|
|
|
178
176
|
fns: ResolverFunctions,
|
|
179
177
|
booleanFunctionInput: any
|
|
180
178
|
): number {
|
|
181
|
-
let currentNode:
|
|
179
|
+
let currentNode: any = this;
|
|
182
180
|
while (true) {
|
|
183
|
-
const booleanResult = fns[currentNode.level](booleanFunctionInput);
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
return currentNode.asLeafNode().value;
|
|
181
|
+
const booleanResult: boolean = fns[currentNode.level](booleanFunctionInput);
|
|
182
|
+
currentNode = currentNode.branches.data[booleanResult ? '1' : '0'];
|
|
183
|
+
if (currentNode.type === 'LeafNode') {
|
|
184
|
+
return currentNode.value;
|
|
188
185
|
}
|
|
189
186
|
}
|
|
190
187
|
}
|