binary-decision-diagram 1.4.0 → 2.0.1

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