binary-decision-diagram 1.3.1 → 2.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/.github/workflows/main.yml +22 -0
- package/README.md +3 -2
- package/dist/es/abstract-node.d.ts +1 -1
- package/dist/es/abstract-node.js +45 -51
- package/dist/es/abstract-node.js.map +1 -1
- package/dist/es/branches.d.ts +1 -1
- package/dist/es/branches.js +20 -22
- package/dist/es/branches.js.map +1 -1
- package/dist/es/create-bdd-from-truth-table.d.ts +1 -1
- package/dist/es/create-bdd-from-truth-table.js +19 -57
- package/dist/es/create-bdd-from-truth-table.js.map +1 -1
- package/dist/es/ensure-correct-bdd.js +26 -27
- package/dist/es/ensure-correct-bdd.js.map +1 -1
- package/dist/es/fill-truth-table.d.ts +1 -1
- package/dist/es/fill-truth-table.js +3 -3
- package/dist/es/fill-truth-table.js.map +1 -1
- package/dist/es/find-similar-node.js +3 -3
- package/dist/es/find-similar-node.js.map +1 -1
- package/dist/es/index.d.ts +7 -1
- package/dist/es/index.js.map +1 -1
- package/dist/es/internal-node.d.ts +1 -1
- package/dist/es/internal-node.js +15 -33
- package/dist/es/internal-node.js.map +1 -1
- package/dist/es/leaf-node.d.ts +1 -1
- package/dist/es/leaf-node.js +14 -32
- package/dist/es/leaf-node.js.map +1 -1
- package/dist/es/minimal-string/bdd-to-minimal-string.js +15 -15
- package/dist/es/minimal-string/bdd-to-minimal-string.js.map +1 -1
- package/dist/es/minimal-string/bdd-to-simple-bdd.js +2 -2
- package/dist/es/minimal-string/bdd-to-simple-bdd.js.map +1 -1
- package/dist/es/minimal-string/minimal-string-to-simple-bdd.js +27 -27
- package/dist/es/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
- package/dist/es/minimal-string/resolve-with-simple-bdd.js +4 -4
- package/dist/es/minimal-string/resolve-with-simple-bdd.js.map +1 -1
- package/dist/es/minimal-string/string-format.js +7 -7
- package/dist/es/minimal-string/string-format.js.map +1 -1
- package/dist/es/optimize-brute-force.d.ts +5 -5
- package/dist/es/optimize-brute-force.js +88 -186
- package/dist/es/optimize-brute-force.js.map +1 -1
- package/dist/es/parents.d.ts +1 -1
- package/dist/es/parents.js +19 -47
- package/dist/es/parents.js.map +1 -1
- package/dist/es/root-node.d.ts +1 -1
- package/dist/es/root-node.js +79 -131
- package/dist/es/root-node.js.map +1 -1
- package/dist/es/types.d.ts +9 -9
- package/dist/es/types.js +1 -0
- package/dist/es/util.d.ts +1 -1
- package/dist/es/util.js +21 -39
- package/dist/es/util.js.map +1 -1
- package/dist/lib/abstract-node.d.ts +1 -1
- package/dist/lib/abstract-node.js +48 -56
- package/dist/lib/abstract-node.js.map +1 -1
- package/dist/lib/branches.d.ts +1 -1
- package/dist/lib/branches.js +21 -26
- package/dist/lib/branches.js.map +1 -1
- package/dist/lib/create-bdd-from-truth-table.d.ts +1 -1
- package/dist/lib/create-bdd-from-truth-table.js +24 -65
- package/dist/lib/create-bdd-from-truth-table.js.map +1 -1
- package/dist/lib/ensure-correct-bdd.js +27 -32
- package/dist/lib/ensure-correct-bdd.js.map +1 -1
- package/dist/lib/fill-truth-table.d.ts +1 -1
- package/dist/lib/fill-truth-table.js +6 -9
- package/dist/lib/fill-truth-table.js.map +1 -1
- package/dist/lib/find-similar-node.js +4 -7
- package/dist/lib/find-similar-node.js.map +1 -1
- package/dist/lib/index.d.ts +7 -1
- package/dist/lib/index.js +13 -18
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/internal-node.d.ts +1 -1
- package/dist/lib/internal-node.js +18 -38
- package/dist/lib/internal-node.js.map +1 -1
- package/dist/lib/leaf-node.d.ts +1 -1
- package/dist/lib/leaf-node.js +17 -37
- package/dist/lib/leaf-node.js.map +1 -1
- package/dist/lib/minimal-string/bdd-to-minimal-string.js +21 -25
- package/dist/lib/minimal-string/bdd-to-minimal-string.js.map +1 -1
- package/dist/lib/minimal-string/bdd-to-simple-bdd.js +4 -8
- package/dist/lib/minimal-string/bdd-to-simple-bdd.js.map +1 -1
- package/dist/lib/minimal-string/index.js +5 -10
- package/dist/lib/minimal-string/index.js.map +1 -1
- package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js +30 -33
- package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
- package/dist/lib/minimal-string/resolve-with-simple-bdd.js +6 -9
- package/dist/lib/minimal-string/resolve-with-simple-bdd.js.map +1 -1
- package/dist/lib/minimal-string/string-format.js +12 -18
- package/dist/lib/minimal-string/string-format.js.map +1 -1
- package/dist/lib/optimize-brute-force.d.ts +5 -5
- package/dist/lib/optimize-brute-force.js +93 -197
- package/dist/lib/optimize-brute-force.js.map +1 -1
- package/dist/lib/parents.d.ts +1 -1
- package/dist/lib/parents.js +19 -49
- package/dist/lib/parents.js.map +1 -1
- package/dist/lib/root-node.d.ts +1 -1
- package/dist/lib/root-node.js +84 -138
- package/dist/lib/root-node.js.map +1 -1
- package/dist/lib/types.d.ts +9 -9
- package/dist/lib/types.js +1 -2
- package/dist/lib/util.d.ts +1 -1
- package/dist/lib/util.js +36 -71
- package/dist/lib/util.js.map +1 -1
- package/package.json +16 -11
- package/renovate.json +3 -2
- package/src/abstract-node.ts +1 -1
- package/src/branches.ts +1 -2
- package/src/create-bdd-from-truth-table.ts +1 -1
- package/src/ensure-correct-bdd.ts +1 -1
- package/src/fill-truth-table.ts +1 -1
- package/src/index.ts +19 -1
- package/src/internal-node.ts +1 -1
- package/src/leaf-node.ts +1 -1
- package/src/optimize-brute-force.ts +1 -1
- package/src/parents.ts +1 -1
- package/src/root-node.ts +1 -1
- package/src/types.ts +1 -1
- package/src/util.ts +1 -1
- package/tsconfig.json +2 -2
- package/.travis.yml +0 -13
package/dist/lib/root-node.js
CHANGED
|
@@ -1,142 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var __values = (this && this.__values) || function(o) {
|
|
16
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
17
|
-
if (m) return m.call(o);
|
|
18
|
-
if (o && typeof o.length === "number") return {
|
|
19
|
-
next: function () {
|
|
20
|
-
if (o && i >= o.length) o = void 0;
|
|
21
|
-
return { value: o && o[i++], done: !o };
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
25
|
-
};
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
var abstract_node_1 = require("./abstract-node");
|
|
28
|
-
var branches_1 = require("./branches");
|
|
29
|
-
var util_1 = require("./util");
|
|
30
|
-
var minimal_string_1 = require("./minimal-string");
|
|
31
|
-
var RootNode = /** @class */ (function (_super) {
|
|
32
|
-
__extends(RootNode, _super);
|
|
33
|
-
function RootNode() {
|
|
34
|
-
var _this = _super.call(this, 0, null, 'RootNode') || this;
|
|
35
|
-
_this.branches = new branches_1.Branches(_this);
|
|
36
|
-
_this.levels = [];
|
|
37
|
-
_this.nodesByLevel = new Map();
|
|
38
|
-
_this.levels.push(0);
|
|
39
|
-
var level0Set = new Set();
|
|
40
|
-
level0Set.add(_this);
|
|
41
|
-
_this.nodesByLevel.set(0, level0Set);
|
|
42
|
-
return _this;
|
|
1
|
+
import { AbstractNode } from './abstract-node';
|
|
2
|
+
import { Branches } from './branches';
|
|
3
|
+
import { lastOfArray, booleanToBooleanString } from './util';
|
|
4
|
+
import { bddToSimpleBdd } from './minimal-string';
|
|
5
|
+
export class RootNode extends AbstractNode {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(0, null, 'RootNode');
|
|
8
|
+
this.branches = new Branches(this);
|
|
9
|
+
this.levels = [];
|
|
10
|
+
this.nodesByLevel = new Map();
|
|
11
|
+
this.levels.push(0);
|
|
12
|
+
const level0Set = new Set();
|
|
13
|
+
level0Set.add(this);
|
|
14
|
+
this.nodesByLevel.set(0, level0Set);
|
|
43
15
|
}
|
|
44
|
-
|
|
45
|
-
|
|
16
|
+
addNode(node) {
|
|
17
|
+
const level = node.level;
|
|
46
18
|
if (!this.levels.includes(level)) {
|
|
47
19
|
this.levels.push(level);
|
|
48
20
|
}
|
|
49
21
|
this.ensureLevelSetExists(level);
|
|
50
|
-
|
|
22
|
+
const set = this.nodesByLevel.get(level);
|
|
51
23
|
set === null || set === void 0 ? void 0 : set.add(node);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
24
|
+
}
|
|
25
|
+
removeNode(node) {
|
|
26
|
+
const set = this.nodesByLevel.get(node.level);
|
|
55
27
|
if (!set.has(node)) {
|
|
56
28
|
throw new Error('removed non-existing node ' + node.id);
|
|
57
29
|
}
|
|
58
30
|
set.delete(node);
|
|
59
|
-
}
|
|
60
|
-
|
|
31
|
+
}
|
|
32
|
+
ensureLevelSetExists(level) {
|
|
61
33
|
if (!this.nodesByLevel.has(level)) {
|
|
62
34
|
this.nodesByLevel.set(level, new Set());
|
|
63
35
|
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return Array.from(this.levels).sort(
|
|
67
|
-
}
|
|
68
|
-
|
|
36
|
+
}
|
|
37
|
+
getLevels() {
|
|
38
|
+
return Array.from(this.levels).sort((a, b) => a - b);
|
|
39
|
+
}
|
|
40
|
+
getNodesOfLevel(level) {
|
|
69
41
|
this.ensureLevelSetExists(level);
|
|
70
|
-
|
|
42
|
+
const set = this.nodesByLevel.get(level);
|
|
71
43
|
return Array.from(set);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
var nodesAmount = _this.getNodesOfLevel(level).length;
|
|
44
|
+
}
|
|
45
|
+
countNodes() {
|
|
46
|
+
let ret = 0;
|
|
47
|
+
this.getLevels().forEach(level => {
|
|
48
|
+
const nodesAmount = this.getNodesOfLevel(level).length;
|
|
78
49
|
ret = ret + nodesAmount;
|
|
79
50
|
});
|
|
80
51
|
return ret;
|
|
81
|
-
}
|
|
52
|
+
}
|
|
82
53
|
/**
|
|
83
54
|
* applies the reduction rules to the whole bdd
|
|
84
55
|
*/
|
|
85
|
-
|
|
86
|
-
var e_1, _a;
|
|
87
|
-
if (logState === void 0) { logState = false; }
|
|
56
|
+
minimize(logState = false) {
|
|
88
57
|
// console.log('minimize(): START ###############');
|
|
89
|
-
|
|
58
|
+
let done = false;
|
|
90
59
|
while (!done) {
|
|
91
60
|
if (logState) {
|
|
92
61
|
console.log('minimize() itterate once');
|
|
93
62
|
}
|
|
94
|
-
|
|
95
|
-
|
|
63
|
+
let successCount = 0;
|
|
64
|
+
let lastLevel = lastOfArray(this.getLevels());
|
|
96
65
|
while (lastLevel > 0) {
|
|
97
|
-
|
|
66
|
+
const nodes = this.getNodesOfLevel(lastLevel);
|
|
98
67
|
if (logState) {
|
|
99
68
|
console.log('minimize() run for level ' + lastLevel +
|
|
100
69
|
' with ' + nodes.length + ' nodes');
|
|
101
70
|
// console.dir(nodes);
|
|
102
71
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
72
|
+
let nodeCount = 0;
|
|
73
|
+
for (const node of nodes) {
|
|
74
|
+
nodeCount++;
|
|
75
|
+
// do not run that often because it is expensive
|
|
76
|
+
if (logState && nodeCount % 4000 === 0) {
|
|
77
|
+
console.log('minimize() node #' + node.id);
|
|
78
|
+
}
|
|
79
|
+
if (node.isLeafNode()) {
|
|
80
|
+
// console.log('have leaf node ' + node.id);
|
|
81
|
+
const reductionDone = node.asLeafNode().applyEliminationRule();
|
|
82
|
+
if (reductionDone) {
|
|
83
|
+
successCount++;
|
|
111
84
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
85
|
+
}
|
|
86
|
+
if (!node.deleted && node.isInternalNode()) {
|
|
87
|
+
const useNode = node;
|
|
88
|
+
const reductionDone = useNode.applyReductionRule();
|
|
89
|
+
let eliminationDone = false;
|
|
90
|
+
if (!useNode.deleted) {
|
|
91
|
+
// not might now be deleted from reduction-rule
|
|
92
|
+
eliminationDone = useNode.applyEliminationRule(nodes);
|
|
118
93
|
}
|
|
119
|
-
if (
|
|
120
|
-
|
|
121
|
-
var reductionDone = useNode.applyReductionRule();
|
|
122
|
-
var eliminationDone = false;
|
|
123
|
-
if (!useNode.deleted) {
|
|
124
|
-
// not might now be deleted from reduction-rule
|
|
125
|
-
eliminationDone = useNode.applyEliminationRule(nodes);
|
|
126
|
-
}
|
|
127
|
-
if (reductionDone || eliminationDone) {
|
|
128
|
-
successCount++;
|
|
129
|
-
}
|
|
94
|
+
if (reductionDone || eliminationDone) {
|
|
95
|
+
successCount++;
|
|
130
96
|
}
|
|
131
97
|
}
|
|
132
98
|
}
|
|
133
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
134
|
-
finally {
|
|
135
|
-
try {
|
|
136
|
-
if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
|
|
137
|
-
}
|
|
138
|
-
finally { if (e_1) throw e_1.error; }
|
|
139
|
-
}
|
|
140
99
|
lastLevel--;
|
|
141
100
|
}
|
|
142
101
|
if (successCount === 0) {
|
|
@@ -150,59 +109,46 @@ var RootNode = /** @class */ (function (_super) {
|
|
|
150
109
|
}
|
|
151
110
|
}
|
|
152
111
|
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
112
|
+
}
|
|
113
|
+
getLeafNodes() {
|
|
114
|
+
const lastLevel = lastOfArray(this.getLevels());
|
|
115
|
+
const leafNodes = this.getNodesOfLevel(lastLevel).reverse();
|
|
157
116
|
return leafNodes;
|
|
158
|
-
}
|
|
117
|
+
}
|
|
159
118
|
/**
|
|
160
119
|
* strips all leaf-nodes
|
|
161
120
|
* with the given value
|
|
162
121
|
*/
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
var done = false;
|
|
122
|
+
removeIrrelevantLeafNodes(leafNodeValue) {
|
|
123
|
+
let done = false;
|
|
166
124
|
while (!done) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if (removed) {
|
|
174
|
-
countRemoved++;
|
|
175
|
-
}
|
|
125
|
+
let countRemoved = 0;
|
|
126
|
+
const leafNodes = this.getLeafNodes();
|
|
127
|
+
for (const leafNode of leafNodes) {
|
|
128
|
+
const removed = leafNode.removeIfValueEquals(leafNodeValue);
|
|
129
|
+
if (removed) {
|
|
130
|
+
countRemoved++;
|
|
176
131
|
}
|
|
177
132
|
}
|
|
178
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
179
|
-
finally {
|
|
180
|
-
try {
|
|
181
|
-
if (leafNodes_1_1 && !leafNodes_1_1.done && (_a = leafNodes_1.return)) _a.call(leafNodes_1);
|
|
182
|
-
}
|
|
183
|
-
finally { if (e_2) throw e_2.error; }
|
|
184
|
-
}
|
|
185
133
|
this.minimize();
|
|
186
134
|
if (countRemoved === 0) {
|
|
187
135
|
done = true;
|
|
188
136
|
}
|
|
189
137
|
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
|
|
138
|
+
}
|
|
139
|
+
resolve(fns, booleanFunctionInput) {
|
|
140
|
+
let currentNode = this;
|
|
193
141
|
while (true) {
|
|
194
|
-
|
|
195
|
-
|
|
142
|
+
const booleanResult = fns[currentNode.level](booleanFunctionInput);
|
|
143
|
+
const branchKey = booleanToBooleanString(booleanResult);
|
|
196
144
|
currentNode = currentNode.branches.getBranch(branchKey);
|
|
197
145
|
if (currentNode.isLeafNode()) {
|
|
198
146
|
return currentNode.asLeafNode().value;
|
|
199
147
|
}
|
|
200
148
|
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
return
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
}(abstract_node_1.AbstractNode));
|
|
207
|
-
exports.RootNode = RootNode;
|
|
149
|
+
}
|
|
150
|
+
toSimpleBdd() {
|
|
151
|
+
return bddToSimpleBdd(this);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
208
154
|
//# sourceMappingURL=root-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-node.js","sourceRoot":"","sources":["../../src/root-node.ts"],"names":[],"mappings":"
|
|
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
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { LeafNode } from './leaf-node';
|
|
2
2
|
import { InternalNode } from './internal-node';
|
|
3
3
|
import { RootNode } from './root-node';
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
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
11
|
[k: number]: ResolverFunction<T>;
|
|
12
12
|
};
|
|
13
|
-
export
|
|
13
|
+
export type SimpleBddLeafNode = number;
|
|
14
14
|
/**
|
|
15
15
|
* a simple bdd is a json-representation
|
|
16
16
|
* which could be parsed from the minimal string
|
|
17
17
|
* use this to have great performance
|
|
18
18
|
* when resolving values
|
|
19
19
|
*/
|
|
20
|
-
export
|
|
20
|
+
export type SimpleBdd = {
|
|
21
21
|
0: SimpleBdd | SimpleBddLeafNode;
|
|
22
22
|
1: SimpleBdd | SimpleBddLeafNode;
|
|
23
23
|
l: number;
|
package/dist/lib/types.js
CHANGED
package/dist/lib/util.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BooleanString } from './types';
|
|
1
|
+
import type { BooleanString } from './types';
|
|
2
2
|
export declare function booleanStringToBoolean(str: BooleanString): boolean;
|
|
3
3
|
export declare function booleanToBooleanString(b: boolean): BooleanString;
|
|
4
4
|
export declare function oppositeBoolean(input: BooleanString): BooleanString;
|
package/dist/lib/util.js
CHANGED
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
function booleanStringToBoolean(str) {
|
|
1
|
+
export function booleanStringToBoolean(str) {
|
|
20
2
|
if (str === '1') {
|
|
21
3
|
return true;
|
|
22
4
|
}
|
|
@@ -24,8 +6,7 @@ function booleanStringToBoolean(str) {
|
|
|
24
6
|
return false;
|
|
25
7
|
}
|
|
26
8
|
}
|
|
27
|
-
|
|
28
|
-
function booleanToBooleanString(b) {
|
|
9
|
+
export function booleanToBooleanString(b) {
|
|
29
10
|
if (b) {
|
|
30
11
|
return '1';
|
|
31
12
|
}
|
|
@@ -33,8 +14,7 @@ function booleanToBooleanString(b) {
|
|
|
33
14
|
return '0';
|
|
34
15
|
}
|
|
35
16
|
}
|
|
36
|
-
|
|
37
|
-
function oppositeBoolean(input) {
|
|
17
|
+
export function oppositeBoolean(input) {
|
|
38
18
|
if (input === '1') {
|
|
39
19
|
return '0';
|
|
40
20
|
}
|
|
@@ -42,42 +22,37 @@ function oppositeBoolean(input) {
|
|
|
42
22
|
return '1';
|
|
43
23
|
}
|
|
44
24
|
}
|
|
45
|
-
|
|
46
|
-
function lastChar(str) {
|
|
25
|
+
export function lastChar(str) {
|
|
47
26
|
return str.slice(-1);
|
|
48
27
|
}
|
|
49
|
-
exports.lastChar = lastChar;
|
|
50
28
|
/**
|
|
51
29
|
* @link https://stackoverflow.com/a/1349426
|
|
52
30
|
*/
|
|
53
|
-
function makeid(length) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
for (var i = 0; i < length; i++) {
|
|
31
|
+
function makeid(length = 6) {
|
|
32
|
+
let result = '';
|
|
33
|
+
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
34
|
+
const charactersLength = characters.length;
|
|
35
|
+
for (let i = 0; i < length; i++) {
|
|
59
36
|
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
60
37
|
}
|
|
61
38
|
return result;
|
|
62
39
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
function nextNodeId() {
|
|
66
|
-
|
|
40
|
+
const nodeIdPrefix = makeid(4);
|
|
41
|
+
let lastIdGen = 0;
|
|
42
|
+
export function nextNodeId() {
|
|
43
|
+
const ret = 'node_' + nodeIdPrefix + '_' + lastIdGen;
|
|
67
44
|
lastIdGen++;
|
|
68
45
|
return ret;
|
|
69
46
|
}
|
|
70
|
-
exports.nextNodeId = nextNodeId;
|
|
71
47
|
/**
|
|
72
48
|
* @link https://stackoverflow.com/a/16155417
|
|
73
49
|
*/
|
|
74
|
-
function decimalToPaddedBinary(decimal, padding) {
|
|
75
|
-
|
|
76
|
-
|
|
50
|
+
export function decimalToPaddedBinary(decimal, padding) {
|
|
51
|
+
const binary = (decimal >>> 0).toString(2);
|
|
52
|
+
const padded = binary.padStart(padding, '0');
|
|
77
53
|
return padded;
|
|
78
54
|
}
|
|
79
|
-
|
|
80
|
-
function oppositeBinary(i) {
|
|
55
|
+
export function oppositeBinary(i) {
|
|
81
56
|
if (i === '1') {
|
|
82
57
|
return '0';
|
|
83
58
|
}
|
|
@@ -88,57 +63,47 @@ function oppositeBinary(i) {
|
|
|
88
63
|
throw new Error('non-binary given');
|
|
89
64
|
}
|
|
90
65
|
}
|
|
91
|
-
|
|
92
|
-
function binaryToDecimal(binary) {
|
|
66
|
+
export function binaryToDecimal(binary) {
|
|
93
67
|
return parseInt(binary, 2);
|
|
94
68
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return new Array(length).fill(0).map(function () { return '0'; }).join('');
|
|
69
|
+
export function minBinaryWithLength(length) {
|
|
70
|
+
return new Array(length).fill(0).map(() => '0').join('');
|
|
98
71
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return new Array(length).fill(0).map(function () { return '1'; }).join('');
|
|
72
|
+
export function maxBinaryWithLength(length) {
|
|
73
|
+
return new Array(length).fill(0).map(() => '1').join('');
|
|
102
74
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
var binary = decimalToPaddedBinary(increase, stateSet.length);
|
|
75
|
+
export function getNextStateSet(stateSet) {
|
|
76
|
+
const decimal = binaryToDecimal(stateSet);
|
|
77
|
+
const increase = decimal + 1;
|
|
78
|
+
const binary = decimalToPaddedBinary(increase, stateSet.length);
|
|
108
79
|
return binary;
|
|
109
80
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
var iterator1 = map.keys();
|
|
81
|
+
export function firstKeyOfMap(map) {
|
|
82
|
+
const iterator1 = map.keys();
|
|
113
83
|
return iterator1.next().value;
|
|
114
84
|
}
|
|
115
|
-
exports.firstKeyOfMap = firstKeyOfMap;
|
|
116
85
|
/**
|
|
117
86
|
* Shuffles array in place. ES6 version
|
|
118
87
|
* @link https://stackoverflow.com/a/6274381
|
|
119
88
|
*/
|
|
120
|
-
function shuffleArray(a) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
_a = __read([a[j], a[i]], 2), a[i] = _a[0], a[j] = _a[1];
|
|
89
|
+
export function shuffleArray(a) {
|
|
90
|
+
for (let i = a.length - 1; i > 0; i--) {
|
|
91
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
92
|
+
[a[i], a[j]] = [a[j], a[i]];
|
|
125
93
|
}
|
|
126
94
|
return a;
|
|
127
95
|
}
|
|
128
|
-
|
|
129
|
-
function lastOfArray(ar) {
|
|
96
|
+
export function lastOfArray(ar) {
|
|
130
97
|
return ar[ar.length - 1];
|
|
131
98
|
}
|
|
132
|
-
exports.lastOfArray = lastOfArray;
|
|
133
99
|
/**
|
|
134
100
|
* @link https://stackoverflow.com/a/6259536
|
|
135
101
|
*/
|
|
136
|
-
function splitStringToChunks(str, chunkSize) {
|
|
137
|
-
|
|
138
|
-
for (
|
|
102
|
+
export function splitStringToChunks(str, chunkSize) {
|
|
103
|
+
const chunks = [];
|
|
104
|
+
for (let i = 0, charsLength = str.length; i < charsLength; i += chunkSize) {
|
|
139
105
|
chunks.push(str.substring(i, i + chunkSize));
|
|
140
106
|
}
|
|
141
107
|
return chunks;
|
|
142
108
|
}
|
|
143
|
-
exports.splitStringToChunks = splitStringToChunks;
|
|
144
109
|
//# sourceMappingURL=util.js.map
|
package/dist/lib/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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "binary-decision-diagram",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "A library to create, minimize and optimize binary decision diagrams",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"binary decision diagram",
|
|
@@ -18,28 +18,33 @@
|
|
|
18
18
|
"url": "https://github.com/pubkey/binary-decision-diagram/issues"
|
|
19
19
|
},
|
|
20
20
|
"homepage": "https://github.com/pubkey/binary-decision-diagram#readme",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"import": "./dist/es/index.js",
|
|
24
|
+
"default": "./dist/lib/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
21
27
|
"main": "./dist/lib/index.js",
|
|
22
|
-
"jsnext:main": "./dist/es/index.js",
|
|
23
28
|
"module": "./dist/es/index.js",
|
|
24
|
-
"sideEffects": false,
|
|
25
29
|
"types": "./dist/es/index.d.ts",
|
|
30
|
+
"sideEffects": false,
|
|
26
31
|
"scripts": {
|
|
27
32
|
"lint": "tslint --project .",
|
|
28
33
|
"lint:fix": "tslint --project . --fix",
|
|
29
34
|
"transpile": "tsc -p ./ && echo '# transpile es5 (require) sucess!'",
|
|
30
|
-
"transpile:es": "tsc -p ./ --
|
|
35
|
+
"transpile:es": "tsc -p ./ --module ES6 --outDir ./dist/es && echo '# transpile es (modules) sucess!'",
|
|
31
36
|
"build": "rimraf -r ./dist && npm run transpile && npm run transpile:es",
|
|
32
37
|
"test": "mocha -r ts-node/register test/unit/index.test.ts --timeout 40000 --bail"
|
|
33
38
|
},
|
|
34
39
|
"devDependencies": {
|
|
35
|
-
"@types/mocha": "
|
|
36
|
-
"@types/node": "
|
|
40
|
+
"@types/mocha": "10.0.1",
|
|
41
|
+
"@types/node": "18.11.18",
|
|
37
42
|
"assert": "2.0.0",
|
|
38
|
-
"async-test-util": "
|
|
39
|
-
"mocha": "
|
|
43
|
+
"async-test-util": "2.0.0",
|
|
44
|
+
"mocha": "10.2.0",
|
|
40
45
|
"rimraf": "3.0.2",
|
|
41
|
-
"ts-node": "
|
|
42
|
-
"tslint": "6.1.
|
|
43
|
-
"typescript": "
|
|
46
|
+
"ts-node": "10.9.1",
|
|
47
|
+
"tslint": "6.1.3",
|
|
48
|
+
"typescript": "4.9.4"
|
|
44
49
|
}
|
|
45
50
|
}
|
package/renovate.json
CHANGED
package/src/abstract-node.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { nextNodeId } from './util';
|
|
2
|
-
import { NonRootNode, NonLeafNode, NodeType } from './types';
|
|
2
|
+
import type { NonRootNode, NonLeafNode, NodeType } from './types';
|
|
3
3
|
import { Branches } from './branches';
|
|
4
4
|
import { RootNode } from './root-node';
|
|
5
5
|
import { InternalNode } from './internal-node';
|
package/src/branches.ts
CHANGED