math-exercises 3.0.97 → 3.0.99

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 (109) hide show
  1. package/lib/exercises/math/calcul/mentalCaluls/mentalAddAndSub.d.ts.map +1 -1
  2. package/lib/exercises/math/calcul/mentalCaluls/mentalAddAndSub.js +10 -0
  3. package/lib/exercises/math/calculLitteral/equation/equationWithDistributivity.js +1 -1
  4. package/lib/exercises/math/calculLitteral/inequations/index.d.ts +2 -0
  5. package/lib/exercises/math/calculLitteral/inequations/index.d.ts.map +1 -1
  6. package/lib/exercises/math/calculLitteral/inequations/index.js +2 -0
  7. package/lib/exercises/math/calculLitteral/inequations/inverseInequality.d.ts.map +1 -1
  8. package/lib/exercises/math/calculLitteral/inequations/inverseInequality.js +83 -5
  9. package/lib/exercises/math/calculLitteral/inequations/inverseInequalityWithGraph.d.ts +10 -0
  10. package/lib/exercises/math/calculLitteral/inequations/inverseInequalityWithGraph.d.ts.map +1 -0
  11. package/lib/exercises/math/calculLitteral/inequations/inverseInequalityWithGraph.js +220 -0
  12. package/lib/exercises/math/conversion/hoursToDecimal.js +1 -1
  13. package/lib/exercises/math/functions/affines/affineExpressionFromTwoImages.js +1 -1
  14. package/lib/exercises/math/functions/affines/leadingCoefficient.js +1 -1
  15. package/lib/exercises/math/functions/basics/findZeroesProductQuotient.js +1 -1
  16. package/lib/exercises/math/functions/basics/graphicInequation.d.ts.map +1 -1
  17. package/lib/exercises/math/functions/basics/graphicInequation.js +37 -5
  18. package/lib/exercises/math/functions/basics/inverseImageFunctionTable.js +1 -1
  19. package/lib/exercises/math/functions/basics/isPointOnFunction.d.ts.map +1 -1
  20. package/lib/exercises/math/functions/basics/isPointOnFunction.js +1 -1
  21. package/lib/exercises/math/functions/basics/twoFunctionsInequation.d.ts.map +1 -1
  22. package/lib/exercises/math/functions/basics/twoFunctionsInequation.js +34 -0
  23. package/lib/exercises/math/functions/basics/valueTableFromGraph.d.ts.map +1 -1
  24. package/lib/exercises/math/functions/basics/valueTableFromGraph.js +1 -1
  25. package/lib/exercises/math/functions/inverse/index.d.ts +1 -0
  26. package/lib/exercises/math/functions/inverse/index.d.ts.map +1 -1
  27. package/lib/exercises/math/functions/inverse/index.js +1 -0
  28. package/lib/exercises/math/functions/inverse/solveInverseEquation.d.ts +8 -0
  29. package/lib/exercises/math/functions/inverse/solveInverseEquation.d.ts.map +1 -0
  30. package/lib/exercises/math/functions/inverse/solveInverseEquation.js +147 -0
  31. package/lib/exercises/math/functions/sign/affineProductSignTable.js +1 -1
  32. package/lib/exercises/math/functions/sign/affineProductSignTableThirdLine.d.ts +9 -0
  33. package/lib/exercises/math/functions/sign/affineProductSignTableThirdLine.d.ts.map +1 -0
  34. package/lib/exercises/math/functions/sign/affineProductSignTableThirdLine.js +201 -0
  35. package/lib/exercises/math/functions/sign/affineSignTable.js +1 -1
  36. package/lib/exercises/math/functions/sign/index.d.ts +1 -0
  37. package/lib/exercises/math/functions/sign/index.d.ts.map +1 -1
  38. package/lib/exercises/math/functions/sign/index.js +1 -0
  39. package/lib/exercises/math/functions/sign/readSignTable.d.ts.map +1 -1
  40. package/lib/exercises/math/functions/square/index.d.ts +2 -0
  41. package/lib/exercises/math/functions/square/index.d.ts.map +1 -1
  42. package/lib/exercises/math/functions/square/index.js +2 -1
  43. package/lib/exercises/math/functions/square/squareFunctionInequationWithGraph.d.ts +9 -0
  44. package/lib/exercises/math/functions/square/squareFunctionInequationWithGraph.d.ts.map +1 -0
  45. package/lib/exercises/math/functions/square/squareFunctionInequationWithGraph.js +151 -0
  46. package/lib/exercises/math/functions/square/squareImageIntervalWithGraph.d.ts.map +1 -1
  47. package/lib/exercises/math/functions/square/squareImageIntervalWithGraph.js +19 -3
  48. package/lib/exercises/math/functions/variations/compareImagesInVarTable.js +1 -1
  49. package/lib/exercises/math/functions/variations/index.d.ts +4 -0
  50. package/lib/exercises/math/functions/variations/index.d.ts.map +1 -1
  51. package/lib/exercises/math/functions/variations/index.js +4 -0
  52. package/lib/exercises/math/functions/variations/readExtremaOnGraph.d.ts +14 -0
  53. package/lib/exercises/math/functions/variations/readExtremaOnGraph.d.ts.map +1 -0
  54. package/lib/exercises/math/functions/variations/readExtremaOnGraph.js +215 -0
  55. package/lib/exercises/math/functions/variations/readVarOnGraph.d.ts +9 -0
  56. package/lib/exercises/math/functions/variations/readVarOnGraph.d.ts.map +1 -0
  57. package/lib/exercises/math/functions/variations/readVarOnGraph.js +128 -0
  58. package/lib/exercises/math/functions/variations/readVarOnGraph2.d.ts +9 -0
  59. package/lib/exercises/math/functions/variations/readVarOnGraph2.d.ts.map +1 -0
  60. package/lib/exercises/math/functions/variations/readVarOnGraph2.js +172 -0
  61. package/lib/exercises/math/functions/variations/varTableExtremaReading.d.ts +4 -1
  62. package/lib/exercises/math/functions/variations/varTableExtremaReading.d.ts.map +1 -1
  63. package/lib/exercises/math/functions/variations/varTableExtremaReading.js +108 -42
  64. package/lib/exercises/math/functions/variations/varTableFromSentences.d.ts +8 -0
  65. package/lib/exercises/math/functions/variations/varTableFromSentences.d.ts.map +1 -1
  66. package/lib/exercises/math/functions/variations/varTableFromSentences.js +182 -137
  67. package/lib/exercises/math/geometry/areas/triangleArea.js +1 -1
  68. package/lib/exercises/math/geometry/vectors/chasles.d.ts.map +1 -1
  69. package/lib/exercises/math/geometry/vectors/chasles.js +83 -4
  70. package/lib/exercises/math/geometry/vectors/determinant.d.ts.map +1 -1
  71. package/lib/exercises/math/geometry/vectors/determinant.js +44 -9
  72. package/lib/exercises/math/probaStat/basicStats/calculateFrequency.js +1 -1
  73. package/lib/exercises/math/probaStat/binomial/binomialInequation.js +2 -2
  74. package/lib/exercises/math/python/pyWhileLoop1Exercise.d.ts.map +1 -1
  75. package/lib/exercises/math/trigonometry/trigonometryAngleCalcul.js +1 -1
  76. package/lib/exercises/math/trigonometry/trigonometrySideCalcul.js +1 -1
  77. package/lib/geogebra/colors.d.ts +0 -1
  78. package/lib/geogebra/colors.d.ts.map +1 -1
  79. package/lib/geogebra/colors.js +2 -2
  80. package/lib/index.d.ts +43 -1
  81. package/lib/index.d.ts.map +1 -1
  82. package/lib/math/inequations/inequation.d.ts +1 -0
  83. package/lib/math/inequations/inequation.d.ts.map +1 -1
  84. package/lib/math/inequations/inequation.js +12 -0
  85. package/lib/tests/pdfExo.test.d.ts.map +1 -1
  86. package/lib/tests/pdfExo.test.js +2 -2
  87. package/lib/tests/pdfs/buildPDFForExercise.d.ts.map +1 -1
  88. package/lib/tests/pdfs/buildPDFForExercise.js +59 -6
  89. package/lib/tests/pdfs/quizPdfPreambule.d.ts.map +1 -1
  90. package/lib/tests/pdfs/quizPdfPreambule.js +2 -1
  91. package/lib/tests/pdfs/signTableToLatex.d.ts +2 -0
  92. package/lib/tests/pdfs/signTableToLatex.d.ts.map +1 -0
  93. package/lib/tests/pdfs/signTableToLatex.js +32 -0
  94. package/lib/tests/pdfs/valueTableToLatex.d.ts +2 -0
  95. package/lib/tests/pdfs/valueTableToLatex.d.ts.map +1 -0
  96. package/lib/tests/pdfs/valueTableToLatex.js +18 -0
  97. package/lib/tests/pdfs/varTableToLatex.d.ts +2 -0
  98. package/lib/tests/pdfs/varTableToLatex.d.ts.map +1 -0
  99. package/lib/tests/pdfs/varTableToLatex.js +58 -0
  100. package/lib/tests/questionTest.d.ts.map +1 -1
  101. package/lib/tests/questionTest.js +8 -0
  102. package/lib/tree/nodes/operators/addNode.js +0 -1
  103. package/lib/tree/nodes/sets/intervalNode.d.ts +1 -0
  104. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  105. package/lib/tree/nodes/sets/intervalNode.js +3 -0
  106. package/lib/tree/parsers/intervalParser.d.ts +2 -0
  107. package/lib/tree/parsers/intervalParser.d.ts.map +1 -1
  108. package/lib/tree/parsers/intervalParser.js +2 -1
  109. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ export const valueTableToLatex = (arr) => {
2
+ const width = arr[0].length;
3
+ const alignement = "|c".repeat(width) + "|";
4
+ let res = `\n \n \\begin{center}\\begin{tabular}{${alignement}} \n ` +
5
+ arr.map((row, i) => formatRow(row, i)).join(" \\tabularnewline ") +
6
+ "\\tabularnewline \\hline \\end{tabular}\\end{center} \n \n";
7
+ return res;
8
+ };
9
+ const dollarize = (s) => {
10
+ if (s === " " || s === "")
11
+ return s;
12
+ if (s[0] === "$" && s[s.length - 1] === "$")
13
+ return s;
14
+ return "$" + s + "$";
15
+ };
16
+ const formatRow = (row, i) => {
17
+ return "\\hline " + row.map((el) => dollarize(el)).join(" & ");
18
+ };
@@ -0,0 +1,2 @@
1
+ export declare const varTableToLatex: (arr: string[][], isInput?: boolean) => string;
2
+ //# sourceMappingURL=varTableToLatex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"varTableToLatex.d.ts","sourceRoot":"","sources":["../../../src/tests/pdfs/varTableToLatex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,QAAS,MAAM,EAAE,EAAE,8BA2C9C,CAAC"}
@@ -0,0 +1,58 @@
1
+ export const varTableToLatex = (arr, isInput = false) => {
2
+ if (isInput)
3
+ return getInputVarTable(arr);
4
+ const formated = arr.map((row) => row.map((e) => (e === "" || e === "\\ " ? " " : e)));
5
+ const final = [formated[0], [formated[2][0]]];
6
+ for (let i = 1; i < arr[0].length; i++) {
7
+ const data = formated[1][i] !== " "
8
+ ? formated[1][i]
9
+ : formated[2][i] !== " "
10
+ ? formated[2][i]
11
+ : formated[3][i];
12
+ final[1][i] = data;
13
+ }
14
+ const varLine = [];
15
+ for (let i = 1; i < final[1].length; i++) {
16
+ const current = final[1][i];
17
+ if (current === "\\nearrow" || current === "\\searrow")
18
+ continue;
19
+ if (i === final[1].length - 1) {
20
+ const prev = final[1][i - 1];
21
+ varLine.push(`${prev === "\\nearrow" ? "+" : "-"}/ ${dollarize(current)}`);
22
+ }
23
+ else {
24
+ const next = final[1][i + 1];
25
+ varLine.push(`${next === "\\nearrow" ? "-" : "+"}/ ${dollarize(current)}`);
26
+ }
27
+ }
28
+ return `\n \n
29
+ \\begin{tikzpicture}
30
+ \\tkzTabInit[lgt=1.5,espcl=1.5]{${final
31
+ .map((row, i) => `${dollarize(row[0])} /${i === 0 ? "1" : "1.5"}`)
32
+ .join(",")}}{${final[0]
33
+ .slice(1)
34
+ .filter((e) => e !== " ")
35
+ .map((e) => dollarize(e))
36
+ .join(",")}}
37
+ \\tkzTabVar{${varLine.join(",")}}
38
+ \\end{tikzpicture} \n \n
39
+ `;
40
+ };
41
+ const dollarize = (s) => {
42
+ if (s === " " || s === "")
43
+ return s;
44
+ if (s[0] === "$" && s[s.length - 1] === "$")
45
+ return s;
46
+ return "$" + s + "$";
47
+ };
48
+ const getInputVarTable = (arr) => {
49
+ const width = arr[0].length;
50
+ const alignement = "|c|" + "c".repeat(width - 1) + "|";
51
+ let res = ` \\begin{center}\\begin{tabular}{${alignement}} \n \\hline ` +
52
+ arr.map((row, i) => formatRow(row, i)).join(" \\tabularnewline ") +
53
+ "\\tabularnewline \\hline \\end{tabular}\\end{center} ";
54
+ return res;
55
+ };
56
+ const formatRow = (row, i) => {
57
+ return ((i === 1 ? "\\hline " : "") + row.map((el) => dollarize(el)).join(" & "));
58
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"questionTest.d.ts","sourceRoot":"","sources":["../../src/tests/questionTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAIjE,eAAO,MAAM,YAAY,QAAS,QAAQ,YAAY,QAAQ;;;CAkN7D,CAAC"}
1
+ {"version":3,"file":"questionTest.d.ts","sourceRoot":"","sources":["../../src/tests/questionTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAIjE,eAAO,MAAM,YAAY,QAAS,QAAQ,YAAY,QAAQ;;;CA4N7D,CAAC"}
@@ -37,6 +37,12 @@ export const questionTest = (exo, question) => {
37
37
  throw new Error(`exo ${exo.id} has studentGgbOptions but answerType is not GGB`);
38
38
  }
39
39
  }
40
+ if (question.initTable?.length &&
41
+ exo.answerType !== "valueTable" &&
42
+ exo.answerType !== "varTable" &&
43
+ exo.answerType !== "signTable") {
44
+ throw new Error(`exo ${exo.id} has init table but is not tableExo`);
45
+ }
40
46
  if (exo.answerType === "GGB") {
41
47
  if (!question.ggbAnswer?.length)
42
48
  throw new Error(`exo ${exo.id} has no ggbAnswer`);
@@ -48,6 +54,8 @@ export const questionTest = (exo, question) => {
48
54
  exo.answerType === "signTable") {
49
55
  if (!question.answerTable?.length)
50
56
  throw new Error(`exo ${exo.id} has no answerTable`);
57
+ if (!question.initTable?.length)
58
+ throw new Error(`exo ${exo.id} has no initTable`);
51
59
  }
52
60
  else if (exo.answerType !== "QCU" && exo.answerType !== "QCM") {
53
61
  if (!question.answer)
@@ -304,7 +304,6 @@ const addSort = (a, b) => {
304
304
  return Number(a.isNumeric) - Number(b.isNumeric);
305
305
  }
306
306
  if (isMonom(a) && isMonom(b)) {
307
- console.log("passed", a.toTex(), b.toTex());
308
307
  const parsedA = parseToMonomNode(a);
309
308
  const parsedB = parseToMonomNode(b);
310
309
  if (parsedA && parsedB) {
@@ -53,6 +53,7 @@ export declare class IntervalNode implements SetNode {
53
53
  isDisjoint(otherInt: IntervalNode): void;
54
54
  intersection(otherInt: IntervalNode): DiscreteSetNode | IntervalNode;
55
55
  toClosedForm(): IntervalNode;
56
+ toClosure(c: ClosureType): IntervalNode;
56
57
  union(otherInt: IntervalNode): IntervalNode | UnionIntervalNode;
57
58
  }
58
59
  //# sourceMappingURL=intervalNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"intervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/intervalNode.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAOxE,OAAO,EAAW,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,8BAAsB,uBAAuB;IAC3C,MAAM,CAAC,MAAM;IA2Cb,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAYlC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,uBAAuB;CAQpD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AACF,qBAAa,YAAa,YAAW,OAAO;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBAGjB,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW;IAYpB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW;IAMjC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAoBpC,YAAY,CAAC,WAAW,CAAC,EAAE,aAAa;IA4BxC,YAAY;IAIZ,MAAM,CAAC,CAAC,EAAE,aAAa;IASvB,iBAAiB;IAGjB,qBAAqB;IAGrB,sBAAsB;IAGtB,wBAAwB;IAYxB,YAAY;IAkCZ,KAAK;IAWL,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAOvC,aAAa,IAAI,uBAAuB;IAUxC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAiB7C,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAQ/B,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa;IAG3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe;IAG9D,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IASxD,YAAY;IAGZ,aAAa;IAGb,QAAQ,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;IAanC,UAAU,CAAC,QAAQ,EAAE,YAAY;IAEjC,YAAY,CAAC,QAAQ,EAAE,YAAY;IA0DnC,YAAY;IAIZ,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,iBAAiB;CAkDhE"}
1
+ {"version":3,"file":"intervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/intervalNode.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAOxE,OAAO,EAAW,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,8BAAsB,uBAAuB;IAC3C,MAAM,CAAC,MAAM;IA2Cb,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAYlC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,uBAAuB;CAQpD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AACF,qBAAa,YAAa,YAAW,OAAO;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBAGjB,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW;IAYpB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW;IAMjC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAoBpC,YAAY,CAAC,WAAW,CAAC,EAAE,aAAa;IA4BxC,YAAY;IAIZ,MAAM,CAAC,CAAC,EAAE,aAAa;IASvB,iBAAiB;IAGjB,qBAAqB;IAGrB,sBAAsB;IAGtB,wBAAwB;IAYxB,YAAY;IAkCZ,KAAK;IAWL,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAOvC,aAAa,IAAI,uBAAuB;IAUxC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAiB7C,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAQ/B,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa;IAG3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe;IAG9D,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IASxD,YAAY;IAGZ,aAAa;IAGb,QAAQ,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;IAanC,UAAU,CAAC,QAAQ,EAAE,YAAY;IAEjC,YAAY,CAAC,QAAQ,EAAE,YAAY;IA0DnC,YAAY;IAIZ,SAAS,CAAC,CAAC,EAAE,WAAW;IAGxB,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,iBAAiB;CAkDhE"}
@@ -281,6 +281,9 @@ export class IntervalNode {
281
281
  toClosedForm() {
282
282
  return new IntervalNode(this.a, this.b, ClosureType.FF, this.opts);
283
283
  }
284
+ toClosure(c) {
285
+ return new IntervalNode(this.a, this.b, c, this.opts);
286
+ }
284
287
  union(otherInt) {
285
288
  const [thisA, thisB] = [this.a.evaluate(), this.b.evaluate()];
286
289
  const [otherA, otherB] = [otherInt.a.evaluate(), otherInt.b.evaluate()];
@@ -1,7 +1,9 @@
1
+ import { ClosureType } from "../nodes/sets/closure.js";
1
2
  import { IntervalNode } from "../nodes/sets/intervalNode.js";
2
3
  type Opts = {
3
4
  allowCommaInsteadOfSemicolon?: boolean;
4
5
  allowNoBrackets?: boolean;
6
+ expectedClosure?: ClosureType;
5
7
  };
6
8
  export declare const intervalParser: (ans: string, opts?: Opts) => false | IntervalNode;
7
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"intervalParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/intervalParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,KAAK,IAAI,GAAG;IACV,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AACF,eAAO,MAAM,cAAc,QAAS,MAAM,SAAS,IAAI,yBA8CtD,CAAC"}
1
+ {"version":3,"file":"intervalParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/intervalParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,KAAK,IAAI,GAAG;IACV,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,WAAW,CAAC;CAC/B,CAAC;AACF,eAAO,MAAM,cAAc,QAAS,MAAM,SAAS,IAAI,yBAkDtD,CAAC"}
@@ -33,7 +33,8 @@ export const intervalParser = (ans, opts) => {
33
33
  const bParsed = parseAlgebraic(bornes[1]);
34
34
  if (!bParsed)
35
35
  return false;
36
- return new IntervalNode(aParsed, bParsed, Closure.fromBrackets(leftBracket, rightBracket));
36
+ return new IntervalNode(aParsed, bParsed, opts?.expectedClosure ??
37
+ Closure.fromBrackets(leftBracket, rightBracket));
37
38
  }
38
39
  catch (err) {
39
40
  return handleVEAError(err);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "math-exercises",
3
3
  "type": "module",
4
- "version": "3.0.97",
4
+ "version": "3.0.99",
5
5
  "description": "Math exercises generator for middle school and high school",
6
6
  "main": "lib/index.js",
7
7
  "files": [