binary-decision-diagram 2.0.0 → 3.0.0

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