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.
- package/lib/exercises/math/calcul/mentalCaluls/mentalAddAndSub.d.ts.map +1 -1
- package/lib/exercises/math/calcul/mentalCaluls/mentalAddAndSub.js +10 -0
- package/lib/exercises/math/calculLitteral/equation/equationWithDistributivity.js +1 -1
- package/lib/exercises/math/calculLitteral/inequations/index.d.ts +2 -0
- package/lib/exercises/math/calculLitteral/inequations/index.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/inequations/index.js +2 -0
- package/lib/exercises/math/calculLitteral/inequations/inverseInequality.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/inequations/inverseInequality.js +83 -5
- package/lib/exercises/math/calculLitteral/inequations/inverseInequalityWithGraph.d.ts +10 -0
- package/lib/exercises/math/calculLitteral/inequations/inverseInequalityWithGraph.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/inequations/inverseInequalityWithGraph.js +220 -0
- package/lib/exercises/math/conversion/hoursToDecimal.js +1 -1
- package/lib/exercises/math/functions/affines/affineExpressionFromTwoImages.js +1 -1
- package/lib/exercises/math/functions/affines/leadingCoefficient.js +1 -1
- package/lib/exercises/math/functions/basics/findZeroesProductQuotient.js +1 -1
- package/lib/exercises/math/functions/basics/graphicInequation.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/graphicInequation.js +37 -5
- package/lib/exercises/math/functions/basics/inverseImageFunctionTable.js +1 -1
- package/lib/exercises/math/functions/basics/isPointOnFunction.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/isPointOnFunction.js +1 -1
- package/lib/exercises/math/functions/basics/twoFunctionsInequation.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/twoFunctionsInequation.js +34 -0
- package/lib/exercises/math/functions/basics/valueTableFromGraph.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/valueTableFromGraph.js +1 -1
- package/lib/exercises/math/functions/inverse/index.d.ts +1 -0
- package/lib/exercises/math/functions/inverse/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/inverse/index.js +1 -0
- package/lib/exercises/math/functions/inverse/solveInverseEquation.d.ts +8 -0
- package/lib/exercises/math/functions/inverse/solveInverseEquation.d.ts.map +1 -0
- package/lib/exercises/math/functions/inverse/solveInverseEquation.js +147 -0
- package/lib/exercises/math/functions/sign/affineProductSignTable.js +1 -1
- package/lib/exercises/math/functions/sign/affineProductSignTableThirdLine.d.ts +9 -0
- package/lib/exercises/math/functions/sign/affineProductSignTableThirdLine.d.ts.map +1 -0
- package/lib/exercises/math/functions/sign/affineProductSignTableThirdLine.js +201 -0
- package/lib/exercises/math/functions/sign/affineSignTable.js +1 -1
- package/lib/exercises/math/functions/sign/index.d.ts +1 -0
- package/lib/exercises/math/functions/sign/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/sign/index.js +1 -0
- package/lib/exercises/math/functions/sign/readSignTable.d.ts.map +1 -1
- package/lib/exercises/math/functions/square/index.d.ts +2 -0
- package/lib/exercises/math/functions/square/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/square/index.js +2 -1
- package/lib/exercises/math/functions/square/squareFunctionInequationWithGraph.d.ts +9 -0
- package/lib/exercises/math/functions/square/squareFunctionInequationWithGraph.d.ts.map +1 -0
- package/lib/exercises/math/functions/square/squareFunctionInequationWithGraph.js +151 -0
- package/lib/exercises/math/functions/square/squareImageIntervalWithGraph.d.ts.map +1 -1
- package/lib/exercises/math/functions/square/squareImageIntervalWithGraph.js +19 -3
- package/lib/exercises/math/functions/variations/compareImagesInVarTable.js +1 -1
- package/lib/exercises/math/functions/variations/index.d.ts +4 -0
- package/lib/exercises/math/functions/variations/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/variations/index.js +4 -0
- package/lib/exercises/math/functions/variations/readExtremaOnGraph.d.ts +14 -0
- package/lib/exercises/math/functions/variations/readExtremaOnGraph.d.ts.map +1 -0
- package/lib/exercises/math/functions/variations/readExtremaOnGraph.js +215 -0
- package/lib/exercises/math/functions/variations/readVarOnGraph.d.ts +9 -0
- package/lib/exercises/math/functions/variations/readVarOnGraph.d.ts.map +1 -0
- package/lib/exercises/math/functions/variations/readVarOnGraph.js +128 -0
- package/lib/exercises/math/functions/variations/readVarOnGraph2.d.ts +9 -0
- package/lib/exercises/math/functions/variations/readVarOnGraph2.d.ts.map +1 -0
- package/lib/exercises/math/functions/variations/readVarOnGraph2.js +172 -0
- package/lib/exercises/math/functions/variations/varTableExtremaReading.d.ts +4 -1
- package/lib/exercises/math/functions/variations/varTableExtremaReading.d.ts.map +1 -1
- package/lib/exercises/math/functions/variations/varTableExtremaReading.js +108 -42
- package/lib/exercises/math/functions/variations/varTableFromSentences.d.ts +8 -0
- package/lib/exercises/math/functions/variations/varTableFromSentences.d.ts.map +1 -1
- package/lib/exercises/math/functions/variations/varTableFromSentences.js +182 -137
- package/lib/exercises/math/geometry/areas/triangleArea.js +1 -1
- package/lib/exercises/math/geometry/vectors/chasles.d.ts.map +1 -1
- package/lib/exercises/math/geometry/vectors/chasles.js +83 -4
- package/lib/exercises/math/geometry/vectors/determinant.d.ts.map +1 -1
- package/lib/exercises/math/geometry/vectors/determinant.js +44 -9
- package/lib/exercises/math/probaStat/basicStats/calculateFrequency.js +1 -1
- package/lib/exercises/math/probaStat/binomial/binomialInequation.js +2 -2
- package/lib/exercises/math/python/pyWhileLoop1Exercise.d.ts.map +1 -1
- package/lib/exercises/math/trigonometry/trigonometryAngleCalcul.js +1 -1
- package/lib/exercises/math/trigonometry/trigonometrySideCalcul.js +1 -1
- package/lib/geogebra/colors.d.ts +0 -1
- package/lib/geogebra/colors.d.ts.map +1 -1
- package/lib/geogebra/colors.js +2 -2
- package/lib/index.d.ts +43 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/math/inequations/inequation.d.ts +1 -0
- package/lib/math/inequations/inequation.d.ts.map +1 -1
- package/lib/math/inequations/inequation.js +12 -0
- package/lib/tests/pdfExo.test.d.ts.map +1 -1
- package/lib/tests/pdfExo.test.js +2 -2
- package/lib/tests/pdfs/buildPDFForExercise.d.ts.map +1 -1
- package/lib/tests/pdfs/buildPDFForExercise.js +59 -6
- package/lib/tests/pdfs/quizPdfPreambule.d.ts.map +1 -1
- package/lib/tests/pdfs/quizPdfPreambule.js +2 -1
- package/lib/tests/pdfs/signTableToLatex.d.ts +2 -0
- package/lib/tests/pdfs/signTableToLatex.d.ts.map +1 -0
- package/lib/tests/pdfs/signTableToLatex.js +32 -0
- package/lib/tests/pdfs/valueTableToLatex.d.ts +2 -0
- package/lib/tests/pdfs/valueTableToLatex.d.ts.map +1 -0
- package/lib/tests/pdfs/valueTableToLatex.js +18 -0
- package/lib/tests/pdfs/varTableToLatex.d.ts +2 -0
- package/lib/tests/pdfs/varTableToLatex.d.ts.map +1 -0
- package/lib/tests/pdfs/varTableToLatex.js +58 -0
- package/lib/tests/questionTest.d.ts.map +1 -1
- package/lib/tests/questionTest.js +8 -0
- package/lib/tree/nodes/operators/addNode.js +0 -1
- package/lib/tree/nodes/sets/intervalNode.d.ts +1 -0
- package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
- package/lib/tree/nodes/sets/intervalNode.js +3 -0
- package/lib/tree/parsers/intervalParser.d.ts +2 -0
- package/lib/tree/parsers/intervalParser.d.ts.map +1 -1
- package/lib/tree/parsers/intervalParser.js +2 -1
- 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 @@
|
|
|
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;;;
|
|
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":"
|
|
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,
|
|
36
|
+
return new IntervalNode(aParsed, bParsed, opts?.expectedClosure ??
|
|
37
|
+
Closure.fromBrackets(leftBracket, rightBracket));
|
|
37
38
|
}
|
|
38
39
|
catch (err) {
|
|
39
40
|
return handleVEAError(err);
|