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.
Files changed (118) hide show
  1. package/.github/workflows/main.yml +22 -0
  2. package/README.md +3 -2
  3. package/dist/es/abstract-node.d.ts +1 -1
  4. package/dist/es/abstract-node.js +45 -51
  5. package/dist/es/abstract-node.js.map +1 -1
  6. package/dist/es/branches.d.ts +1 -1
  7. package/dist/es/branches.js +20 -22
  8. package/dist/es/branches.js.map +1 -1
  9. package/dist/es/create-bdd-from-truth-table.d.ts +1 -1
  10. package/dist/es/create-bdd-from-truth-table.js +19 -57
  11. package/dist/es/create-bdd-from-truth-table.js.map +1 -1
  12. package/dist/es/ensure-correct-bdd.js +26 -27
  13. package/dist/es/ensure-correct-bdd.js.map +1 -1
  14. package/dist/es/fill-truth-table.d.ts +1 -1
  15. package/dist/es/fill-truth-table.js +3 -3
  16. package/dist/es/fill-truth-table.js.map +1 -1
  17. package/dist/es/find-similar-node.js +3 -3
  18. package/dist/es/find-similar-node.js.map +1 -1
  19. package/dist/es/index.d.ts +7 -1
  20. package/dist/es/index.js.map +1 -1
  21. package/dist/es/internal-node.d.ts +1 -1
  22. package/dist/es/internal-node.js +15 -33
  23. package/dist/es/internal-node.js.map +1 -1
  24. package/dist/es/leaf-node.d.ts +1 -1
  25. package/dist/es/leaf-node.js +14 -32
  26. package/dist/es/leaf-node.js.map +1 -1
  27. package/dist/es/minimal-string/bdd-to-minimal-string.js +15 -15
  28. package/dist/es/minimal-string/bdd-to-minimal-string.js.map +1 -1
  29. package/dist/es/minimal-string/bdd-to-simple-bdd.js +2 -2
  30. package/dist/es/minimal-string/bdd-to-simple-bdd.js.map +1 -1
  31. package/dist/es/minimal-string/minimal-string-to-simple-bdd.js +27 -27
  32. package/dist/es/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
  33. package/dist/es/minimal-string/resolve-with-simple-bdd.js +4 -4
  34. package/dist/es/minimal-string/resolve-with-simple-bdd.js.map +1 -1
  35. package/dist/es/minimal-string/string-format.js +7 -7
  36. package/dist/es/minimal-string/string-format.js.map +1 -1
  37. package/dist/es/optimize-brute-force.d.ts +5 -5
  38. package/dist/es/optimize-brute-force.js +88 -186
  39. package/dist/es/optimize-brute-force.js.map +1 -1
  40. package/dist/es/parents.d.ts +1 -1
  41. package/dist/es/parents.js +19 -47
  42. package/dist/es/parents.js.map +1 -1
  43. package/dist/es/root-node.d.ts +1 -1
  44. package/dist/es/root-node.js +79 -131
  45. package/dist/es/root-node.js.map +1 -1
  46. package/dist/es/types.d.ts +9 -9
  47. package/dist/es/types.js +1 -0
  48. package/dist/es/util.d.ts +1 -1
  49. package/dist/es/util.js +21 -39
  50. package/dist/es/util.js.map +1 -1
  51. package/dist/lib/abstract-node.d.ts +1 -1
  52. package/dist/lib/abstract-node.js +48 -56
  53. package/dist/lib/abstract-node.js.map +1 -1
  54. package/dist/lib/branches.d.ts +1 -1
  55. package/dist/lib/branches.js +21 -26
  56. package/dist/lib/branches.js.map +1 -1
  57. package/dist/lib/create-bdd-from-truth-table.d.ts +1 -1
  58. package/dist/lib/create-bdd-from-truth-table.js +24 -65
  59. package/dist/lib/create-bdd-from-truth-table.js.map +1 -1
  60. package/dist/lib/ensure-correct-bdd.js +27 -32
  61. package/dist/lib/ensure-correct-bdd.js.map +1 -1
  62. package/dist/lib/fill-truth-table.d.ts +1 -1
  63. package/dist/lib/fill-truth-table.js +6 -9
  64. package/dist/lib/fill-truth-table.js.map +1 -1
  65. package/dist/lib/find-similar-node.js +4 -7
  66. package/dist/lib/find-similar-node.js.map +1 -1
  67. package/dist/lib/index.d.ts +7 -1
  68. package/dist/lib/index.js +13 -18
  69. package/dist/lib/index.js.map +1 -1
  70. package/dist/lib/internal-node.d.ts +1 -1
  71. package/dist/lib/internal-node.js +18 -38
  72. package/dist/lib/internal-node.js.map +1 -1
  73. package/dist/lib/leaf-node.d.ts +1 -1
  74. package/dist/lib/leaf-node.js +17 -37
  75. package/dist/lib/leaf-node.js.map +1 -1
  76. package/dist/lib/minimal-string/bdd-to-minimal-string.js +21 -25
  77. package/dist/lib/minimal-string/bdd-to-minimal-string.js.map +1 -1
  78. package/dist/lib/minimal-string/bdd-to-simple-bdd.js +4 -8
  79. package/dist/lib/minimal-string/bdd-to-simple-bdd.js.map +1 -1
  80. package/dist/lib/minimal-string/index.js +5 -10
  81. package/dist/lib/minimal-string/index.js.map +1 -1
  82. package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js +30 -33
  83. package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
  84. package/dist/lib/minimal-string/resolve-with-simple-bdd.js +6 -9
  85. package/dist/lib/minimal-string/resolve-with-simple-bdd.js.map +1 -1
  86. package/dist/lib/minimal-string/string-format.js +12 -18
  87. package/dist/lib/minimal-string/string-format.js.map +1 -1
  88. package/dist/lib/optimize-brute-force.d.ts +5 -5
  89. package/dist/lib/optimize-brute-force.js +93 -197
  90. package/dist/lib/optimize-brute-force.js.map +1 -1
  91. package/dist/lib/parents.d.ts +1 -1
  92. package/dist/lib/parents.js +19 -49
  93. package/dist/lib/parents.js.map +1 -1
  94. package/dist/lib/root-node.d.ts +1 -1
  95. package/dist/lib/root-node.js +84 -138
  96. package/dist/lib/root-node.js.map +1 -1
  97. package/dist/lib/types.d.ts +9 -9
  98. package/dist/lib/types.js +1 -2
  99. package/dist/lib/util.d.ts +1 -1
  100. package/dist/lib/util.js +36 -71
  101. package/dist/lib/util.js.map +1 -1
  102. package/package.json +16 -11
  103. package/renovate.json +3 -2
  104. package/src/abstract-node.ts +1 -1
  105. package/src/branches.ts +1 -2
  106. package/src/create-bdd-from-truth-table.ts +1 -1
  107. package/src/ensure-correct-bdd.ts +1 -1
  108. package/src/fill-truth-table.ts +1 -1
  109. package/src/index.ts +19 -1
  110. package/src/internal-node.ts +1 -1
  111. package/src/leaf-node.ts +1 -1
  112. package/src/optimize-brute-force.ts +1 -1
  113. package/src/parents.ts +1 -1
  114. package/src/root-node.ts +1 -1
  115. package/src/types.ts +1 -1
  116. package/src/util.ts +1 -1
  117. package/tsconfig.json +2 -2
  118. package/.travis.yml +0 -13
@@ -1,11 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var util_1 = require("./util");
4
- var find_similar_node_1 = require("./find-similar-node");
5
- var AbstractNode = /** @class */ (function () {
6
- function AbstractNode(level, rootNode, type) {
1
+ import { nextNodeId } from './util';
2
+ import { findSimilarNode } from './find-similar-node';
3
+ export class AbstractNode {
4
+ constructor(level, rootNode, type) {
7
5
  this.level = level;
8
- this.id = util_1.nextNodeId();
6
+ this.id = nextNodeId();
9
7
  this.deleted = false;
10
8
  this.type = type;
11
9
  this.rootNode = rootNode;
@@ -13,26 +11,25 @@ var AbstractNode = /** @class */ (function () {
13
11
  this.rootNode.addNode(this);
14
12
  }
15
13
  }
16
- AbstractNode.prototype.isEqualToOtherNode = function (otherNode,
14
+ isEqualToOtherNode(otherNode,
17
15
  // optimisation shortcut, is faster if own string already known
18
- ownString) {
19
- if (ownString === void 0) { ownString = this.toString(); }
20
- var ret = ownString === otherNode.toString();
16
+ ownString = this.toString()) {
17
+ const ret = ownString === otherNode.toString();
21
18
  return ret;
22
- };
19
+ }
23
20
  // deletes the whole node
24
- AbstractNode.prototype.remove = function () {
21
+ remove() {
25
22
  this.ensureNotDeleted('remove');
26
23
  // console.log('AbstractNode().remove() node: ' + this.id);
27
24
  // console.log(this.toJSON(true));
28
25
  if (this.isInternalNode()) {
29
- var useNode = this;
26
+ const useNode = this;
30
27
  if (useNode.parents.size > 0) {
31
28
  throw new Error('cannot remove node with parents ' + this.id);
32
29
  }
33
30
  }
34
31
  if (this.branches) {
35
- var useNode = this;
32
+ const useNode = this;
36
33
  if (useNode.branches.areBranchesStrictEqual()) {
37
34
  useNode.branches.getBranch('0').parents.remove(useNode);
38
35
  }
@@ -43,10 +40,9 @@ var AbstractNode = /** @class */ (function () {
43
40
  }
44
41
  this.deleted = true;
45
42
  this.rootNode.removeNode(this);
46
- };
47
- AbstractNode.prototype.toJSON = function (withId) {
48
- if (withId === void 0) { withId = false; }
49
- var ret = {
43
+ }
44
+ toJSON(withId = false) {
45
+ const ret = {
50
46
  id: withId ? this.id : undefined,
51
47
  deleted: withId ? this.deleted : undefined,
52
48
  type: this.type,
@@ -59,22 +55,22 @@ var AbstractNode = /** @class */ (function () {
59
55
  ret.value = this.asLeafNode().value;
60
56
  }
61
57
  if (this.branches && !this.branches.deleted) {
62
- var branches = this.branches;
58
+ const branches = this.branches;
63
59
  ret.branches = {
64
60
  '0': branches.getBranch('0').toJSON(withId),
65
61
  '1': branches.getBranch('1').toJSON(withId)
66
62
  };
67
63
  }
68
64
  return ret;
69
- };
65
+ }
70
66
  // a strange string-representation
71
67
  // to make an equal check between nodes
72
- AbstractNode.prototype.toString = function () {
73
- var ret = '' +
68
+ toString() {
69
+ let ret = '' +
74
70
  '<' +
75
71
  this.type + ':' + this.level;
76
72
  if (this.branches) {
77
- var branches = this.branches;
73
+ const branches = this.branches;
78
74
  ret += '|0:' + branches.getBranch('0');
79
75
  ret += '|1:' + branches.getBranch('1');
80
76
  }
@@ -83,43 +79,42 @@ var AbstractNode = /** @class */ (function () {
83
79
  }
84
80
  ret += '>';
85
81
  return ret;
86
- };
87
- AbstractNode.prototype.isRootNode = function () {
82
+ }
83
+ isRootNode() {
88
84
  return this.type === 'RootNode';
89
- };
90
- AbstractNode.prototype.isInternalNode = function () {
85
+ }
86
+ isInternalNode() {
91
87
  return this.type === 'InternalNode';
92
- };
93
- AbstractNode.prototype.isLeafNode = function () {
88
+ }
89
+ isLeafNode() {
94
90
  return this.type === 'LeafNode';
95
- };
96
- AbstractNode.prototype.asRootNode = function () {
91
+ }
92
+ asRootNode() {
97
93
  if (!this.isRootNode()) {
98
94
  throw new Error('ouch');
99
95
  }
100
96
  return this;
101
- };
102
- AbstractNode.prototype.asInternalNode = function () {
97
+ }
98
+ asInternalNode() {
103
99
  if (!this.isInternalNode()) {
104
100
  throw new Error('ouch');
105
101
  }
106
102
  return this;
107
- };
108
- AbstractNode.prototype.asLeafNode = function () {
103
+ }
104
+ asLeafNode() {
109
105
  if (!this.isLeafNode()) {
110
106
  throw new Error('ouch');
111
107
  }
112
108
  return this;
113
- };
114
- AbstractNode.prototype.ensureNotDeleted = function (op) {
115
- if (op === void 0) { op = 'unknown'; }
109
+ }
110
+ ensureNotDeleted(op = 'unknown') {
116
111
  if (this.deleted) {
117
112
  throw new Error('forbidden operation ' + op + ' on deleted node ' + this.id);
118
113
  }
119
- };
120
- AbstractNode.prototype.log = function () {
114
+ }
115
+ log() {
121
116
  console.log(JSON.stringify(this.toJSON(true), null, 2));
122
- };
117
+ }
123
118
  /**
124
119
  * by the elimination-rule of bdd,
125
120
  * if two branches of the same level are equal,
@@ -128,35 +123,34 @@ var AbstractNode = /** @class */ (function () {
128
123
  * See page 21 at:
129
124
  * @link https://people.eecs.berkeley.edu/~sseshia/219c/lectures/BinaryDecisionDiagrams.pdf
130
125
  */
131
- AbstractNode.prototype.applyEliminationRule = function (
126
+ applyEliminationRule(
132
127
  // can be provided for better performance
133
128
  nodesOfSameLevel) {
134
- var _this = this;
135
129
  this.ensureNotDeleted('applyEliminationRule');
136
130
  if (!nodesOfSameLevel) {
137
131
  nodesOfSameLevel = this.rootNode.getNodesOfLevel(this.level);
138
132
  }
139
- var other = find_similar_node_1.findSimilarNode(this, nodesOfSameLevel);
133
+ const other = findSimilarNode(this, nodesOfSameLevel);
140
134
  if (other) {
141
135
  // console.log('applyEliminationRule() remove:' + this.id + '; other: ' + other.id);
142
136
  // keep 'other', remove 'this'
143
137
  // move own parents to other
144
- var ownParents = this.parents.getAll();
145
- var parentsWithStrictEqualBranches_1 = [];
146
- ownParents.forEach(function (parent) {
138
+ const ownParents = this.parents.getAll();
139
+ const parentsWithStrictEqualBranches = [];
140
+ ownParents.forEach((parent) => {
147
141
  // console.log('ownParent: ' + parent.id);
148
- var branchKey = parent.branches.getKeyOfNode(_this);
142
+ const branchKey = parent.branches.getKeyOfNode(this);
149
143
  // console.log('branchKey: ' + branchKey);
150
144
  parent.branches.setBranch(branchKey, other);
151
145
  if (parent.branches.areBranchesStrictEqual()) {
152
- parentsWithStrictEqualBranches_1.push(parent);
146
+ parentsWithStrictEqualBranches.push(parent);
153
147
  }
154
148
  // remove parents from own list
155
149
  // this will auto-remove the connection to the other '1'-branch
156
- _this.parents.remove(parent);
150
+ this.parents.remove(parent);
157
151
  });
158
152
  // parents that now have equal branches, must be removed again
159
- parentsWithStrictEqualBranches_1.forEach(function (node) {
153
+ parentsWithStrictEqualBranches.forEach(node => {
160
154
  if (node.isInternalNode()) {
161
155
  // console.log('trigger applyReductionRule from applyEliminationRule');
162
156
  node.applyReductionRule();
@@ -167,8 +161,6 @@ var AbstractNode = /** @class */ (function () {
167
161
  else {
168
162
  return false;
169
163
  }
170
- };
171
- return AbstractNode;
172
- }());
173
- exports.AbstractNode = AbstractNode;
164
+ }
165
+ }
174
166
  //# sourceMappingURL=abstract-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-node.js","sourceRoot":"","sources":["../../src/abstract-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-node.js","sourceRoot":"","sources":["../../src/abstract-node.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { BooleanString, NonRootNode, NonLeafNode } from './types';
1
+ import type { BooleanString, NonRootNode, NonLeafNode } from './types';
2
2
  import { AbstractNode } from './abstract-node';
3
3
  /**
4
4
  * represents the branches of a single node
@@ -1,24 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  /**
4
2
  * represents the branches of a single node
5
3
  */
6
- var Branches = /** @class */ (function () {
7
- function Branches(node) {
4
+ export class Branches {
5
+ constructor(node) {
8
6
  this.node = node;
9
7
  this.deleted = false;
10
8
  this.branches = {};
11
9
  }
12
- Branches.prototype.setBranch = function (which, branchNode) {
13
- var previous = this.branches[which];
10
+ setBranch(which, branchNode) {
11
+ const previous = this.branches[which];
14
12
  if (previous === branchNode) {
15
13
  return;
16
14
  }
17
15
  // set new branch
18
16
  this.branches[which] = branchNode;
19
17
  branchNode.parents.add(this.node);
20
- };
21
- Branches.prototype.getKeyOfNode = function (node) {
18
+ }
19
+ getKeyOfNode(node) {
22
20
  if (this.getBranch('0') === node) {
23
21
  return '0';
24
22
  }
@@ -28,17 +26,17 @@ var Branches = /** @class */ (function () {
28
26
  else {
29
27
  throw new Error('none matched');
30
28
  }
31
- };
32
- Branches.prototype.getBranch = function (which) {
29
+ }
30
+ getBranch(which) {
33
31
  return this.branches[which];
34
- };
35
- Branches.prototype.getBothBranches = function () {
32
+ }
33
+ getBothBranches() {
36
34
  return [
37
35
  this.getBranch('0'),
38
36
  this.getBranch('1')
39
37
  ];
40
- };
41
- Branches.prototype.hasBranchAsNode = function (node) {
38
+ }
39
+ hasBranchAsNode(node) {
42
40
  if (this.getBranch('0') === node ||
43
41
  this.getBranch('1') === node) {
44
42
  return true;
@@ -46,8 +44,8 @@ var Branches = /** @class */ (function () {
46
44
  else {
47
45
  return false;
48
46
  }
49
- };
50
- Branches.prototype.hasNodeIdAsBranch = function (id) {
47
+ }
48
+ hasNodeIdAsBranch(id) {
51
49
  if (this.getBranch('0').id === id ||
52
50
  this.getBranch('1').id === id) {
53
51
  return true;
@@ -55,21 +53,18 @@ var Branches = /** @class */ (function () {
55
53
  else {
56
54
  return false;
57
55
  }
58
- };
59
- Branches.prototype.areBranchesStrictEqual = function () {
56
+ }
57
+ areBranchesStrictEqual() {
60
58
  return this.branches['0'] === this.branches['1'];
61
- };
62
- Branches.prototype.hasEqualBranches = function () {
59
+ }
60
+ hasEqualBranches() {
63
61
  return JSON.stringify(this.branches['0']) ===
64
62
  JSON.stringify(this.branches['1']);
65
- };
66
- return Branches;
67
- }());
68
- exports.Branches = Branches;
69
- function ensureNodesNotStrictEqual(node1, node2) {
63
+ }
64
+ }
65
+ export function ensureNodesNotStrictEqual(node1, node2) {
70
66
  if (node1 === node2) {
71
67
  throw new Error('cannot have two strict equal branches');
72
68
  }
73
69
  }
74
- exports.ensureNodesNotStrictEqual = ensureNodesNotStrictEqual;
75
70
  //# sourceMappingURL=branches.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"branches.js","sourceRoot":"","sources":["../../src/branches.ts"],"names":[],"mappings":";;AAIA;;GAEG;AACH;IAMI,kBACY,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QANtB,YAAO,GAAY,KAAK,CAAC;QACxB,aAAQ,GAEZ,EAAS,CAAC;IAIV,CAAC;IAEE,4BAAS,GAAhB,UAAiB,KAAoB,EAAE,UAAuB;QAC1D,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,UAAU,EAAE;YACzB,OAAO;SACV;QAED,iBAAiB;QACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QAClC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,+BAAY,GAAnB,UAAoB,IAAiB;QACjC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAC9B,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACrC,OAAO,GAAG,CAAC;SACd;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;SACnC;IACL,CAAC;IAEM,4BAAS,GAAhB,UAAiB,KAAoB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEM,kCAAe,GAAtB;QACI,OAAO;YACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SACtB,CAAC;IACN,CAAC;IAEM,kCAAe,GAAtB,UAAuB,IAAkB;QACrC,IACI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI;YAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAC9B;YACE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,oCAAiB,GAAxB,UAAyB,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;YACE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,yCAAsB,GAA7B;QACI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAEM,mCAAgB,GAAvB;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IACL,eAAC;AAAD,CAAC,AAxED,IAwEC;AAxEY,4BAAQ;AA0ErB,SAAgB,yBAAyB,CACrC,KAAkB,EAClB,KAAkB;IAElB,IAAI,KAAK,KAAK,KAAK,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC5D;AACL,CAAC;AAPD,8DAOC"}
1
+ {"version":3,"file":"branches.js","sourceRoot":"","sources":["../../src/branches.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAMjB,YACY,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QANtB,YAAO,GAAY,KAAK,CAAC;QACxB,aAAQ,GAEZ,EAAS,CAAC;IAIV,CAAC;IAEE,SAAS,CAAC,KAAoB,EAAE,UAAuB;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,UAAU,EAAE;YACzB,OAAO;SACV;QAED,iBAAiB;QACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QAClC,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;YAC9B,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACrC,OAAO,GAAG,CAAC;SACd;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;SACnC;IACL,CAAC;IAEM,SAAS,CAAC,KAAoB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,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;YACE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;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;YACE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,sBAAsB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,UAAU,yBAAyB,CACrC,KAAkB,EAClB,KAAkB;IAElB,IAAI,KAAK,KAAK,KAAK,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC5D;AACL,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { RootNode } from './root-node';
2
- import { TruthTable } from './types';
2
+ import type { TruthTable } from './types';
3
3
  export declare function createBddFromTruthTable(truthTable: TruthTable): RootNode;
@@ -1,75 +1,34 @@
1
- "use strict";
2
- var __values = (this && this.__values) || function(o) {
3
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
- if (m) return m.call(o);
5
- if (o && typeof o.length === "number") return {
6
- next: function () {
7
- if (o && i >= o.length) o = void 0;
8
- return { value: o && o[i++], done: !o };
9
- }
10
- };
11
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
- };
13
- var __read = (this && this.__read) || function (o, n) {
14
- var m = typeof Symbol === "function" && o[Symbol.iterator];
15
- if (!m) return o;
16
- var i = m.call(o), r, ar = [], e;
17
- try {
18
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
- }
20
- catch (error) { e = { error: error }; }
21
- finally {
22
- try {
23
- if (r && !r.done && (m = i["return"])) m.call(i);
24
- }
25
- finally { if (e) throw e.error; }
26
- }
27
- return ar;
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- var root_node_1 = require("./root-node");
31
- var util_1 = require("./util");
32
- var internal_node_1 = require("./internal-node");
33
- var leaf_node_1 = require("./leaf-node");
34
- function createBddFromTruthTable(truthTable) {
35
- var e_1, _a;
36
- var root = new root_node_1.RootNode();
37
- var firstKey = truthTable.keys().next().value;
38
- var keyLength = firstKey.length;
39
- var mustBeSize = Math.pow(2, keyLength);
1
+ import { RootNode } from './root-node';
2
+ import { lastChar } from './util';
3
+ import { InternalNode } from './internal-node';
4
+ import { LeafNode } from './leaf-node';
5
+ export function createBddFromTruthTable(truthTable) {
6
+ const root = new RootNode();
7
+ const firstKey = truthTable.keys().next().value;
8
+ const keyLength = firstKey.length;
9
+ const mustBeSize = Math.pow(2, keyLength);
40
10
  if (truthTable.size !== mustBeSize) {
41
11
  throw new Error('truth table has missing entries');
42
12
  }
43
- try {
44
- for (var truthTable_1 = __values(truthTable), truthTable_1_1 = truthTable_1.next(); !truthTable_1_1.done; truthTable_1_1 = truthTable_1.next()) {
45
- var _b = __read(truthTable_1_1.value, 2), stateSet = _b[0], value = _b[1];
46
- var lastNode = root;
47
- // itterate over each char of the state
48
- for (var i = 0; i < (stateSet.length - 1); i++) {
49
- var level = i + 1;
50
- var state = stateSet.charAt(i);
51
- // if node for this state-char not exists, add new one
52
- if (!lastNode.branches.getBranch(state)) {
53
- lastNode.branches.setBranch(state, new internal_node_1.InternalNode(level, root, lastNode));
54
- }
55
- lastNode = lastNode.branches.getBranch(state);
56
- }
57
- // last node is leaf-node
58
- var lastState = util_1.lastChar(stateSet);
59
- if (lastNode.branches.getBranch(lastState)) {
60
- throw new Error('leafNode already exists, this should not happen');
13
+ for (const [stateSet, value] of truthTable) {
14
+ let lastNode = root;
15
+ // itterate over each char of the state
16
+ for (let i = 0; i < (stateSet.length - 1); i++) {
17
+ const level = i + 1;
18
+ const state = stateSet.charAt(i);
19
+ // if node for this state-char not exists, add new one
20
+ if (!lastNode.branches.getBranch(state)) {
21
+ lastNode.branches.setBranch(state, new InternalNode(level, root, lastNode));
61
22
  }
62
- lastNode.branches.setBranch(lastState, new leaf_node_1.LeafNode(stateSet.length, root, value, lastNode));
23
+ lastNode = lastNode.branches.getBranch(state);
63
24
  }
64
- }
65
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
66
- finally {
67
- try {
68
- if (truthTable_1_1 && !truthTable_1_1.done && (_a = truthTable_1.return)) _a.call(truthTable_1);
25
+ // last node is leaf-node
26
+ const lastState = lastChar(stateSet);
27
+ if (lastNode.branches.getBranch(lastState)) {
28
+ throw new Error('leafNode already exists, this should not happen');
69
29
  }
70
- finally { if (e_1) throw e_1.error; }
30
+ lastNode.branches.setBranch(lastState, new LeafNode(stateSet.length, root, value, lastNode));
71
31
  }
72
32
  return root;
73
33
  }
74
- exports.createBddFromTruthTable = createBddFromTruthTable;
75
34
  //# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAuC;AACvC,+BAAkC;AAClC,iDAA+C;AAC/C,yCAAuC;AAGvC,SAAgB,uBAAuB,CACnC,UAAsB;;IAEtB,IAAM,IAAI,GAAG,IAAI,oBAAQ,EAAE,CAAC;IAE5B,IAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IAChD,IAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACtD;;QAGD,KAAgC,IAAA,eAAA,SAAA,UAAU,CAAA,sCAAA,8DAAE;YAAjC,IAAA,oCAAiB,EAAhB,gBAAQ,EAAE,aAAK;YACvB,IAAI,QAAQ,GAAgB,IAAI,CAAC;YAEjC,uCAAuC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC5C,IAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,IAAM,KAAK,GAAkB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAkB,CAAC;gBAEjE,sDAAsD;gBACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACrC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CACvB,KAAK,EACL,IAAI,4BAAY,CACZ,KAAK,EACL,IAAI,EACJ,QAAQ,CACX,CACJ,CAAC;iBACL;gBACD,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAgB,CAAC;aAChE;YAED,yBAAyB;YACzB,IAAM,SAAS,GAAG,eAAQ,CAAC,QAAQ,CAAkB,CAAC;YACtD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;aACtE;YACD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CACvB,SAAS,EACT,IAAI,oBAAQ,CACR,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,KAAK,EACL,QAAQ,CACX,CACJ,CAAC;SACL;;;;;;;;;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AApDD,0DAoDC"}
1
+ {"version":3,"file":"create-bdd-from-truth-table.js","sourceRoot":"","sources":["../../src/create-bdd-from-truth-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,UAAU,uBAAuB,CACnC,UAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,QAAQ,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;QAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACtD;IAGD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE;QACxC,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;YAC5C,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;gBACrC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CACvB,KAAK,EACL,IAAI,YAAY,CACZ,KAAK,EACL,IAAI,EACJ,QAAQ,CACX,CACJ,CAAC;aACL;YACD,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAgB,CAAC;SAChE;QAED,yBAAyB;QACzB,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAkB,CAAC;QACtD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;SACtE;QACD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CACvB,SAAS,EACT,IAAI,QAAQ,CACR,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,KAAK,EACL,QAAQ,CACX,CACJ,CAAC;KACL;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -1,32 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  /**
4
2
  * run some tests on the bdd
5
3
  * to ensure everything is correct
6
4
  */
7
- function ensureCorrectBdd(bdd) {
8
- var jsonString = JSON.stringify(bdd.toJSON(true));
9
- var allNodes = [];
10
- var nodesById = new Map();
11
- bdd.getLevels().forEach(function (level) {
12
- var levelNodes = bdd.getNodesOfLevel(level);
13
- levelNodes.forEach(function (node) {
5
+ export function ensureCorrectBdd(bdd) {
6
+ const jsonString = JSON.stringify(bdd.toJSON(true));
7
+ let allNodes = [];
8
+ const nodesById = new Map();
9
+ bdd.getLevels().forEach(level => {
10
+ const levelNodes = bdd.getNodesOfLevel(level);
11
+ levelNodes.forEach(node => {
14
12
  nodesById.set(node.id, node);
15
13
  });
16
14
  allNodes = allNodes.concat(levelNodes);
17
15
  });
18
- var recursiveNodes = getNodesRecursive(bdd);
16
+ const recursiveNodes = getNodesRecursive(bdd);
19
17
  if (allNodes.length !== recursiveNodes.size) {
20
- var allNodesIds_1 = allNodes.map(function (n) { return n.id; }).sort();
21
- var recursiveNodesIds = Array.from(recursiveNodes).map(function (n) { return n.id; }).sort();
22
- var nodesOnlyInRecursive = recursiveNodesIds.filter(function (id) { return !allNodesIds_1.includes(id); });
18
+ const allNodesIds = allNodes.map(n => n.id).sort();
19
+ const recursiveNodesIds = Array.from(recursiveNodes).map(n => n.id).sort();
20
+ const nodesOnlyInRecursive = recursiveNodesIds.filter(id => !allNodesIds.includes(id));
23
21
  // console.log(JSON.stringify(allNodes.map(n => n.id).sort(), null, 2));
24
22
  // console.log(JSON.stringify(Array.from(recursiveNodes).map(n => n.id).sort(), null, 2));
25
23
  if (recursiveNodes.size > allNodes.length) {
26
- var firstId_1 = nodesOnlyInRecursive[0];
27
- var referenceToFirst = allNodes.find(function (n) {
24
+ const firstId = nodesOnlyInRecursive[0];
25
+ const referenceToFirst = allNodes.find(n => {
28
26
  if (n.isInternalNode()) {
29
- return n.branches.hasNodeIdAsBranch(firstId_1);
27
+ return n.branches.hasNodeIdAsBranch(firstId);
30
28
  }
31
29
  return false;
32
30
  });
@@ -39,11 +37,11 @@ function ensureCorrectBdd(bdd) {
39
37
  'recursiveNodes: ' + recursiveNodes.size + ' ' +
40
38
  'nodesOnlyInRecursive: ' + nodesOnlyInRecursive.join(', ') + ' ');
41
39
  }
42
- allNodes.forEach(function (node) {
40
+ allNodes.forEach(node => {
43
41
  if (node.isRootNode()) {
44
42
  return;
45
43
  }
46
- var useNode = node;
44
+ const useNode = node;
47
45
  if (node.deleted) {
48
46
  throw new Error('ensureCorrectBdd() ' +
49
47
  'bdd includes a deleted node');
@@ -54,24 +52,24 @@ function ensureCorrectBdd(bdd) {
54
52
  'node has no parent ' + useNode.id);
55
53
  }
56
54
  if (useNode.isInternalNode()) {
57
- var internalNode_1 = useNode;
58
- var bothBranches = internalNode_1.branches.getBothBranches();
55
+ const internalNode = useNode;
56
+ const bothBranches = internalNode.branches.getBothBranches();
59
57
  // a node should not have 2 equal branches
60
- if (internalNode_1.branches.areBranchesStrictEqual()) {
58
+ if (internalNode.branches.areBranchesStrictEqual()) {
61
59
  throw new Error('ensureCorrectBdd() ' +
62
60
  'node has two equal branches: ' +
63
- bothBranches.map(function (n) { return n.id; }).join(', '));
61
+ bothBranches.map(n => n.id).join(', '));
64
62
  }
65
63
  // each branch should have the node as parent
66
- bothBranches.forEach(function (branch) {
67
- if (!branch.parents.has(internalNode_1)) {
64
+ bothBranches.forEach(branch => {
65
+ if (!branch.parents.has(internalNode)) {
68
66
  throw new Error('ensureCorrectBdd() ' +
69
67
  'branch must have the node as parent');
70
68
  }
71
69
  });
72
70
  }
73
71
  // each parent should have the child as branch
74
- useNode.parents.getAll().forEach(function (parent) {
72
+ useNode.parents.getAll().forEach(parent => {
75
73
  if (!parent.branches.hasBranchAsNode(useNode)) {
76
74
  throw new Error('ensureCorrectBdd() ' +
77
75
  'parent node does not have child as branch');
@@ -83,20 +81,17 @@ function ensureCorrectBdd(bdd) {
83
81
  'bdd includes a deleted node');
84
82
  }
85
83
  }
86
- exports.ensureCorrectBdd = ensureCorrectBdd;
87
- function getNodesRecursive(node, set) {
88
- if (set === void 0) { set = new Set(); }
84
+ export function getNodesRecursive(node, set = new Set()) {
89
85
  set.add(node);
90
86
  if (!node.isLeafNode()) {
91
- var useNode = node;
92
- var branch1 = useNode.branches.getBranch('0');
87
+ const useNode = node;
88
+ const branch1 = useNode.branches.getBranch('0');
93
89
  set.add(branch1);
94
90
  getNodesRecursive(branch1, set);
95
- var branch2 = useNode.branches.getBranch('1');
91
+ const branch2 = useNode.branches.getBranch('1');
96
92
  set.add(branch2);
97
93
  getNodesRecursive(branch2, set);
98
94
  }
99
95
  return set;
100
96
  }
101
- exports.getNodesRecursive = getNodesRecursive;
102
97
  //# 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":";;AAKA;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,GAAa;IAC1C,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAGpD,IAAI,QAAQ,GAAmB,EAAE,CAAC;IAClC,IAAM,SAAS,GAA8B,IAAI,GAAG,EAAE,CAAC;IACvD,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,UAAA,KAAK;QACzB,IAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,UAAU,CAAC,OAAO,CAAC,UAAA,IAAI;YACnB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAGH,IAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,CAAC,IAAI,EAAE;QAEzC,IAAM,aAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,IAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,IAAM,oBAAoB,GAAa,iBAAiB,CAAC,MAAM,CAAC,UAAA,EAAE,IAAI,OAAA,CAAC,aAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAzB,CAAyB,CAAC,CAAC;QAEjG,+EAA+E;QAC/E,+FAA+F;QAE/F,IAAI,cAAc,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE;YACvC,IAAM,SAAO,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACxC,IAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAA,CAAC;gBACpC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;oBACpB,OAAQ,CAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAO,CAAC,CAAC;iBAClE;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,GAAG;SAC3B;QAED,MAAM,IAAI,KAAK,CACX,qBAAqB;YACrB,kDAAkD;YAClD,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,GAAG;YACpC,kBAAkB,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG;YAC9C,wBAAwB,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CACnE,CAAC;KACL;IAED,QAAQ,CAAC,OAAO,CAAC,UAAA,IAAI;QACjB,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB,OAAO;SACV;QACD,IAAM,OAAO,GAAG,IAAmB,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,MAAM,IAAI,KAAK,CACX,qBAAqB;gBACrB,6BAA6B,CAChC,CAAC;SACL;QAED,iCAAiC;QACjC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CACX,qBAAqB;gBACrB,qBAAqB,GAAG,OAAO,CAAC,EAAE,CACrC,CAAC;SACL;QAED,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YAC1B,IAAM,cAAY,GAAiB,OAAc,CAAC;YAClD,IAAM,YAAY,GAAG,cAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAE7D,0CAA0C;YAC1C,IAAI,cAAY,CAAC,QAAQ,CAAC,sBAAsB,EAAE,EAAE;gBAChD,MAAM,IAAI,KAAK,CACX,qBAAqB;oBACrB,+BAA+B;oBAC/B,YAAY,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;aACL;YAED,6CAA6C;YAC7C,YAAY,CAAC,OAAO,CAAC,UAAA,MAAM;gBACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAY,CAAC,EAAE;oBACnC,MAAM,IAAI,KAAK,CACX,qBAAqB;wBACrB,qCAAqC,CACxC,CAAC;iBACL;YACL,CAAC,CAAC,CAAC;SACN;QAED,8CAA8C;QAC9C,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAA,MAAM;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;gBAC3C,MAAM,IAAI,KAAK,CACX,qBAAqB;oBACrB,2CAA2C,CAC9C,CAAC;aACL;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAGH,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CACX,qBAAqB;YACrB,6BAA6B,CAChC,CAAC;KACL;AACL,CAAC;AA9GD,4CA8GC;AAED,SAAgB,iBAAiB,CAC7B,IAAkB,EAClB,GAAkC;IAAlC,oBAAA,EAAA,UAA6B,GAAG,EAAE;IAElC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACd,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;QACpB,IAAM,OAAO,GAAG,IAAmB,CAAC;QAEpC,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEhC,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KACnC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAlBD,8CAkBC"}
1
+ {"version":3,"file":"ensure-correct-bdd.js","sourceRoot":"","sources":["../../src/ensure-correct-bdd.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TruthTable } from './types';
1
+ import type { TruthTable } from './types';
2
2
  /**
3
3
  * fills each missing row of a table
4
4
  * with the given value