math-exercises 2.2.81 → 2.2.83
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/calculLitteral/inequations/firstDegreeInequationsType2.d.ts +4 -1
- package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType2.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType2.js +79 -30
- package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.d.ts +4 -1
- package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.js +89 -39
- package/lib/exercises/math/calculLitteral/inequations/squareFunctionInequation.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/inequations/squareFunctionInequation.js +37 -17
- package/lib/exercises/math/calculLitteral/simplifying/evaluateExpression.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/simplifying/evaluateExpression.js +55 -15
- package/lib/exercises/math/derivation/derivative/convexityQuadrinomials.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/convexityQuadrinomials.js +9 -18
- package/lib/exercises/math/derivation/derivative/thirdDegreeFunctionVariation.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/thirdDegreeFunctionVariation.js +11 -11
- package/lib/exercises/math/functions/absolute/absolueValueInequationsSup.d.ts.map +1 -1
- package/lib/exercises/math/functions/absolute/absolueValueInequationsSup.js +10 -2
- package/lib/exercises/math/functions/absolute/absoluteValueInequations.d.ts.map +1 -1
- package/lib/exercises/math/functions/absolute/absoluteValueInequations.js +11 -4
- package/lib/exercises/math/functions/basics/graphicEquation.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/graphicEquation.js +46 -28
- package/lib/exercises/math/functions/basics/graphicInequation.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/graphicInequation.js +0 -1
- package/lib/exercises/math/functions/basics/graphicInequationAffine.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/graphicInequationAffine.js +10 -3
- package/lib/exercises/math/functions/basics/twoFunctionsInequation.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/twoFunctionsInequation.js +74 -58
- package/lib/exercises/math/functions/logarithm/log10Simplifying.d.ts.map +1 -1
- package/lib/exercises/math/functions/logarithm/log10Simplifying.js +1 -0
- package/lib/exercises/math/functions/square/squareImageInterval.d.ts.map +1 -1
- package/lib/exercises/math/functions/square/squareImageInterval.js +13 -4
- package/lib/exercises/math/functions/trinoms/secondDegreeInequation.d.ts.map +1 -1
- package/lib/exercises/math/functions/trinoms/secondDegreeInequation.js +10 -6
- package/lib/exercises/math/functions/trinoms/trinomSignFromRoots.d.ts.map +1 -1
- package/lib/exercises/math/functions/trinoms/trinomSignFromRoots.js +12 -6
- package/lib/exercises/math/geometry/convexity/convexityQuadrinomialsGeo.d.ts.map +1 -1
- package/lib/exercises/math/geometry/convexity/convexityQuadrinomialsGeo.js +9 -14
- package/lib/exercises/math/matrices/matrixInversibilityDomain.d.ts.map +1 -1
- package/lib/exercises/math/matrices/matrixInversibilityDomain.js +15 -2
- package/lib/exercises/math/probaStat/binomial/binomialInequation.d.ts.map +1 -1
- package/lib/exercises/math/python/pyForLoop1Exercise.d.ts.map +1 -1
- package/lib/exercises/math/sequences/genericSequenceVariations.d.ts.map +1 -1
- package/lib/exercises/math/sets/intervals/inequalityToInterval.d.ts +2 -4
- package/lib/exercises/math/sets/intervals/inequalityToInterval.d.ts.map +1 -1
- package/lib/exercises/math/sets/intervals/inequalityToInterval.js +30 -25
- package/lib/exercises/math/sets/intervals/intervalToInequality.d.ts +2 -4
- package/lib/exercises/math/sets/intervals/intervalToInequality.d.ts.map +1 -1
- package/lib/exercises/math/sets/intervals/intervalToInequality.js +42 -78
- package/lib/exercises/math/sets/intervals/intervalsIntersection.d.ts +3 -7
- package/lib/exercises/math/sets/intervals/intervalsIntersection.d.ts.map +1 -1
- package/lib/exercises/math/sets/intervals/intervalsIntersection.js +101 -31
- package/lib/exercises/math/sets/intervals/intervalsUnion.d.ts +3 -7
- package/lib/exercises/math/sets/intervals/intervalsUnion.d.ts.map +1 -1
- package/lib/exercises/math/sets/intervals/intervalsUnion.js +68 -19
- package/lib/exercises/pc/index.d.ts +4 -0
- package/lib/exercises/pc/index.d.ts.map +1 -1
- package/lib/exercises/pc/index.js +4 -6
- package/lib/exercises/vea/equationVEA.js +2 -2
- package/lib/geogebra/lagrange.d.ts.map +1 -1
- package/lib/geogebra/spline.d.ts.map +1 -1
- package/lib/index.d.ts +38 -20
- package/lib/index.d.ts.map +1 -1
- package/lib/math/geometry/point.d.ts.map +1 -1
- package/lib/math/inequations/inequation.d.ts +1 -1
- package/lib/math/inequations/inequation.d.ts.map +1 -1
- package/lib/math/numbers/integer/integer.d.ts.map +1 -1
- package/lib/math/numbers/rationals/rational.d.ts +2 -3
- package/lib/math/numbers/rationals/rational.d.ts.map +1 -1
- package/lib/math/polynomials/trinom.d.ts +2 -4
- package/lib/math/polynomials/trinom.d.ts.map +1 -1
- package/lib/playground.d.ts.map +1 -1
- package/lib/playground.js +4 -4
- package/lib/tree/nodes/equations/equationSolutionNode.d.ts +0 -1
- package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
- package/lib/tree/nodes/equations/equationSolutionNode.js +0 -3
- package/lib/tree/nodes/inequations/inequationNode.d.ts +2 -1
- package/lib/tree/nodes/inequations/inequationNode.d.ts.map +1 -1
- package/lib/tree/nodes/inequations/inequationNode.js +4 -3
- package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +0 -1
- package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
- package/lib/tree/nodes/inequations/inequationSolutionNode.js +0 -3
- package/lib/tree/nodes/numbers/numberNode.d.ts +1 -1
- package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/multiplyNode.js +6 -1
- package/lib/tree/nodes/sets/closure.d.ts +5 -0
- package/lib/tree/nodes/sets/closure.d.ts.map +1 -1
- package/lib/tree/nodes/sets/closure.js +32 -0
- package/lib/tree/nodes/sets/discreteSetNode.d.ts +4 -4
- package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
- package/lib/tree/nodes/sets/discreteSetNode.js +3 -4
- package/lib/tree/nodes/sets/intervalNode.d.ts +13 -1
- package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
- package/lib/tree/nodes/sets/intervalNode.js +154 -3
- package/lib/tree/parsers/discreteSetParser.d.ts +2 -2
- package/lib/tree/parsers/discreteSetParser.d.ts.map +1 -1
- package/lib/tree/parsers/discreteSetParser.js +2 -1
- package/lib/tree/parsers/equationSolutionParser.js +1 -1
- package/lib/tree/parsers/powerParser.d.ts +1 -1
- package/lib/tree/parsers/rationalParser.d.ts +1 -1
- package/lib/tree/parsers/unionIntervalParser.d.ts.map +1 -1
- package/lib/tree/parsers/unionIntervalParser.js +3 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrixInversibilityDomain.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/matrices/matrixInversibilityDomain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"matrixInversibilityDomain.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/matrices/matrixInversibilityDomain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AA0BlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAoGF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAc3D,CAAC"}
|
|
@@ -17,6 +17,7 @@ const intervalNode_1 = require("../../../tree/nodes/sets/intervalNode");
|
|
|
17
17
|
const unionIntervalNode_1 = require("../../../tree/nodes/sets/unionIntervalNode");
|
|
18
18
|
const variableNode_1 = require("../../../tree/nodes/variables/variableNode");
|
|
19
19
|
const latexParser_1 = require("../../../tree/parsers/latexParser");
|
|
20
|
+
const unionIntervalParser_1 = require("../../../tree/parsers/unionIntervalParser");
|
|
20
21
|
const intervalKeys_1 = require("../../utils/keys/intervalKeys");
|
|
21
22
|
const getMatrixInversibilityDomainQuestion = () => {
|
|
22
23
|
const elements = [[], []];
|
|
@@ -50,7 +51,9 @@ const getMatrixInversibilityDomainQuestion = () => {
|
|
|
50
51
|
]).toTex();
|
|
51
52
|
const question = {
|
|
52
53
|
answer,
|
|
53
|
-
instruction: `Soit $M = ${matrix.toTex()}$, où $x\\in \\mathbb{R}$.
|
|
54
|
+
instruction: `Soit $M = ${matrix.toTex()}$, où $x\\in \\mathbb{R}$.
|
|
55
|
+
|
|
56
|
+
Sur quel ensemble la matrice $M$ est-elle inversible ?
|
|
54
57
|
`,
|
|
55
58
|
keys: [...intervalKeys_1.intervalKeys, "reals", "varnothing"],
|
|
56
59
|
answerFormat: "tex",
|
|
@@ -78,7 +81,17 @@ const getPropositions = (n, { answer, a, b, c, d }) => {
|
|
|
78
81
|
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
79
82
|
};
|
|
80
83
|
const isAnswerValid = (ans, { answer }) => {
|
|
81
|
-
|
|
84
|
+
try {
|
|
85
|
+
if (answer === "\\mathbb{R}" || answer === "\\varnothing")
|
|
86
|
+
return ans === answer;
|
|
87
|
+
const parsed = (0, unionIntervalParser_1.unionIntervalParser)(ans);
|
|
88
|
+
if (!parsed)
|
|
89
|
+
return false;
|
|
90
|
+
return parsed.simplify().toTex() === answer;
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
82
95
|
};
|
|
83
96
|
exports.matrixInversibilityDomain = {
|
|
84
97
|
id: "matrixInversibilityDomain",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binomialInequation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/binomial/binomialInequation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"binomialInequation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/binomial/binomialInequation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAEL,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAEL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,eAAe,CAAC;IACnB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAgKF,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAgBF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAuB7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pyForLoop1Exercise.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/pyForLoop1Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"pyForLoop1Exercise.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/pyForLoop1Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AASlC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAOF,KAAK,cAAc,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AA6KF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAaxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genericSequenceVariations.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sequences/genericSequenceVariations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"genericSequenceVariations.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sequences/genericSequenceVariations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAMlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAmDF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAe3D,CAAC"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Exercise } from "../../../../exercises/exercise";
|
|
2
|
-
import {
|
|
2
|
+
import { IntervalNodeIdentifiers } from "../../../../tree/nodes/sets/intervalNode";
|
|
3
3
|
type Identifiers = {
|
|
4
|
-
|
|
5
|
-
intervalMax: number | string;
|
|
6
|
-
intervalClosure: ClosureType;
|
|
4
|
+
intervalIdentifiers: IntervalNodeIdentifiers;
|
|
7
5
|
};
|
|
8
6
|
export declare const inequalityToInterval: Exercise<Identifiers>;
|
|
9
7
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inequalityToInterval.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/inequalityToInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"inequalityToInterval.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/inequalityToInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAGL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAI5C,KAAK,WAAW,GAAG;IAIjB,mBAAmB,EAAE,uBAAuB,CAAC;CAC9C,CAAC;AAqFF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
|
|
@@ -3,14 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.inequalityToInterval = void 0;
|
|
4
4
|
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
5
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
|
-
const
|
|
6
|
+
const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
|
|
7
|
+
const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
|
|
7
8
|
const intervalParser_1 = require("../../../../tree/parsers/intervalParser");
|
|
8
9
|
const shuffle_1 = require("../../../../utils/alea/shuffle");
|
|
10
|
+
const rebuildIdentifiers = (oldIds) => {
|
|
11
|
+
if (!!oldIds.intervalIdentifiers)
|
|
12
|
+
return oldIds;
|
|
13
|
+
const a = oldIds.intervalMin === "-infty" || oldIds.intervalMin === -Infinity
|
|
14
|
+
? infiniteNode_1.MinusInfinityNode
|
|
15
|
+
: oldIds.intervalMin.toTree();
|
|
16
|
+
const b = oldIds.intervalMax === "infty" || oldIds.intervalMax === Infinity
|
|
17
|
+
? infiniteNode_1.PlusInfinityNode
|
|
18
|
+
: oldIds.intervalMax.toTree();
|
|
19
|
+
const closure = oldIds.intervalClosure;
|
|
20
|
+
const interval = new intervalNode_1.IntervalNode(a, b, closure);
|
|
21
|
+
return { intervalIdentifiers: interval.toIdentifiers() };
|
|
22
|
+
};
|
|
9
23
|
const getInequalityToIntervalQuestion = () => {
|
|
10
|
-
const interval =
|
|
11
|
-
const
|
|
24
|
+
const interval = intervalNode_1.IntervalNodeConstructor.random();
|
|
25
|
+
const inequality = interval.toInequality();
|
|
12
26
|
const answer = `x\\in\\ ${interval.toTex()}`;
|
|
13
|
-
const instruction = `Soit $${
|
|
27
|
+
const instruction = `Soit $${inequality.toTex()}$. Traduire cette inégalité en appartenance à un intervalle.`;
|
|
28
|
+
const identifiers = {
|
|
29
|
+
intervalIdentifiers: interval.toIdentifiers(),
|
|
30
|
+
};
|
|
14
31
|
const question = {
|
|
15
32
|
answer,
|
|
16
33
|
instruction: instruction,
|
|
@@ -27,34 +44,21 @@ const getInequalityToIntervalQuestion = () => {
|
|
|
27
44
|
"infty",
|
|
28
45
|
],
|
|
29
46
|
answerFormat: "tex",
|
|
30
|
-
identifiers
|
|
31
|
-
intervalMin: interval.min === -Infinity ? "-infty" : interval.min,
|
|
32
|
-
intervalMax: interval.max === Infinity ? "infty" : interval.max,
|
|
33
|
-
intervalClosure: interval.closure,
|
|
34
|
-
},
|
|
47
|
+
identifiers,
|
|
35
48
|
};
|
|
36
49
|
return question;
|
|
37
50
|
};
|
|
38
|
-
const getPropositions = (n, { answer,
|
|
39
|
-
const
|
|
40
|
-
return bracket === "[" ? "]" : "[";
|
|
41
|
-
};
|
|
42
|
-
const min = intervalMin === "-infty" ? -Infinity : intervalMin;
|
|
43
|
-
const max = intervalMax === "infty" ? Infinity : intervalMax;
|
|
44
|
-
const interval = new intervals_1.Interval(min.toTree(), max.toTree(), intervalClosure);
|
|
51
|
+
const getPropositions = (n, { answer, intervalIdentifiers }) => {
|
|
52
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
|
|
45
53
|
const propositions = [];
|
|
46
54
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
];
|
|
52
|
-
wrongStatements.forEach((ineq) => {
|
|
53
|
-
(0, exercise_1.addWrongProp)(propositions, ineq);
|
|
54
|
-
});
|
|
55
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " + interval.toLeftReversedClosure().toTex());
|
|
56
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " + interval.toRightReversedClosure().toTex());
|
|
57
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " +
|
|
58
|
+
interval.toLeftReversedClosure().toRightReversedClosure().toTex());
|
|
55
59
|
return (0, shuffle_1.shuffle)(propositions);
|
|
56
60
|
};
|
|
57
|
-
const isAnswerValid = (ans, {
|
|
61
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
58
62
|
try {
|
|
59
63
|
const parsed = (0, intervalParser_1.intervalParser)(ans.replaceAll("x\\in", ""));
|
|
60
64
|
if (!parsed)
|
|
@@ -78,4 +82,5 @@ exports.inequalityToInterval = {
|
|
|
78
82
|
getPropositions,
|
|
79
83
|
isAnswerValid,
|
|
80
84
|
subject: "Mathématiques",
|
|
85
|
+
rebuildIdentifiers,
|
|
81
86
|
};
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Exercise } from "../../../../exercises/exercise";
|
|
2
|
-
import {
|
|
2
|
+
import { IntervalNodeIdentifiers } from "../../../../tree/nodes/sets/intervalNode";
|
|
3
3
|
type Identifiers = {
|
|
4
|
-
|
|
5
|
-
intervalMax: number | string;
|
|
6
|
-
intervalClosure: ClosureType;
|
|
4
|
+
intervalIdentifiers: IntervalNodeIdentifiers;
|
|
7
5
|
};
|
|
8
6
|
export declare const intervalToInequality: Exercise<Identifiers>;
|
|
9
7
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intervalToInequality.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalToInequality.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"intervalToInequality.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalToInequality.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EAGL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IAIjB,mBAAmB,EAAE,uBAAuB,CAAC;CAC9C,CAAC;AAgFF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
|
|
@@ -3,97 +3,60 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.intervalToInequality = void 0;
|
|
4
4
|
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
5
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const numberNode_1 = require("../../../../tree/nodes/numbers/numberNode");
|
|
9
|
-
const variableNode_1 = require("../../../../tree/nodes/variables/variableNode");
|
|
6
|
+
const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
|
|
7
|
+
const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
|
|
10
8
|
const shuffle_1 = require("../../../../utils/alea/shuffle");
|
|
9
|
+
const rebuildIdentifiers = (oldIds) => {
|
|
10
|
+
if (!!oldIds.intervalIdentifiers)
|
|
11
|
+
return oldIds;
|
|
12
|
+
const a = oldIds.intervalMin === "-infty" || oldIds.intervalMin === -Infinity
|
|
13
|
+
? infiniteNode_1.MinusInfinityNode
|
|
14
|
+
: oldIds.intervalMin.toTree();
|
|
15
|
+
const b = oldIds.intervalMax === "infty" || oldIds.intervalMax === Infinity
|
|
16
|
+
? infiniteNode_1.PlusInfinityNode
|
|
17
|
+
: oldIds.intervalMax.toTree();
|
|
18
|
+
const closure = oldIds.intervalClosure;
|
|
19
|
+
const interval = new intervalNode_1.IntervalNode(a, b, closure);
|
|
20
|
+
return { intervalIdentifiers: interval.toIdentifiers() };
|
|
21
|
+
};
|
|
22
|
+
const getInstruction = (identifiers) => {
|
|
23
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.intervalIdentifiers);
|
|
24
|
+
return `Soit $x \\in ${interval.toTex()}$. Traduire cette appartenance en une inégalité.`;
|
|
25
|
+
};
|
|
26
|
+
const getAnswer = (identifiers) => {
|
|
27
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.intervalIdentifiers);
|
|
28
|
+
const inequality = interval.toInequality();
|
|
29
|
+
const answer = inequality.toTex();
|
|
30
|
+
return answer;
|
|
31
|
+
};
|
|
11
32
|
const getIntervalToInequalityQuestion = () => {
|
|
12
|
-
const interval =
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
33
|
+
const interval = intervalNode_1.IntervalNodeConstructor.random();
|
|
34
|
+
const identifiers = {
|
|
35
|
+
intervalIdentifiers: interval.toIdentifiers(),
|
|
36
|
+
};
|
|
16
37
|
const question = {
|
|
17
|
-
answer,
|
|
18
|
-
instruction:
|
|
38
|
+
answer: getAnswer(identifiers),
|
|
39
|
+
instruction: getInstruction(identifiers),
|
|
19
40
|
keys: ["x", "inf", "sup", "geq", "leq", "infty"],
|
|
20
41
|
answerFormat: "tex",
|
|
21
|
-
identifiers
|
|
22
|
-
intervalMin: interval.min === -Infinity ? "-infty" : interval.min,
|
|
23
|
-
intervalMax: interval.max === Infinity ? "infty" : interval.max,
|
|
24
|
-
intervalClosure: interval.closure,
|
|
25
|
-
},
|
|
42
|
+
identifiers,
|
|
26
43
|
};
|
|
27
44
|
return question;
|
|
28
45
|
};
|
|
29
|
-
const getPropositions = (n, { answer,
|
|
30
|
-
const
|
|
31
|
-
if (symbol === "\\le")
|
|
32
|
-
return "<";
|
|
33
|
-
if (symbol === "<")
|
|
34
|
-
return "\\le";
|
|
35
|
-
if (symbol === ">")
|
|
36
|
-
return "\\ge";
|
|
37
|
-
return ">";
|
|
38
|
-
};
|
|
39
|
-
const reverseInequality = (symbol) => {
|
|
40
|
-
if (symbol === "\\le")
|
|
41
|
-
return "\\ge";
|
|
42
|
-
if (symbol === "<")
|
|
43
|
-
return ">";
|
|
44
|
-
if (symbol === ">")
|
|
45
|
-
return "<";
|
|
46
|
-
return "\\le";
|
|
47
|
-
};
|
|
48
|
-
const min = intervalMin === "-infty" ? -Infinity : intervalMin;
|
|
49
|
-
const max = intervalMax === "infty" ? Infinity : intervalMax;
|
|
50
|
-
const interval = new intervals_1.Interval(min.toTree(), max.toTree(), intervalClosure);
|
|
46
|
+
const getPropositions = (n, { answer, intervalIdentifiers }) => {
|
|
47
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
|
|
51
48
|
const propositions = [];
|
|
52
49
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.max)], switchInclusion(interval.rightInequalitySymbol)),
|
|
58
|
-
new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.max)], reverseInequality(switchInclusion(interval.rightInequalitySymbol))),
|
|
59
|
-
new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.max)], reverseInequality(interval.rightInequalitySymbol)),
|
|
60
|
-
];
|
|
61
|
-
}
|
|
62
|
-
else if (interval.max === Infinity) {
|
|
63
|
-
wrongIneqs = [
|
|
64
|
-
new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.min)], switchInclusion(interval.leftInequalitySymbol)),
|
|
65
|
-
new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.min)], reverseInequality(switchInclusion(interval.leftInequalitySymbol))),
|
|
66
|
-
new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.min)], interval.leftInequalitySymbol),
|
|
67
|
-
];
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
wrongIneqs = [
|
|
71
|
-
new inequationNode_1.InequationNode([new numberNode_1.NumberNode(interval.min), xNode, new numberNode_1.NumberNode(interval.max)], [
|
|
72
|
-
switchInclusion(interval.leftInequalitySymbol),
|
|
73
|
-
interval.rightInequalitySymbol,
|
|
74
|
-
]),
|
|
75
|
-
new inequationNode_1.InequationNode([new numberNode_1.NumberNode(interval.min), xNode, new numberNode_1.NumberNode(interval.max)], [
|
|
76
|
-
interval.leftInequalitySymbol,
|
|
77
|
-
switchInclusion(interval.rightInequalitySymbol),
|
|
78
|
-
]),
|
|
79
|
-
new inequationNode_1.InequationNode([new numberNode_1.NumberNode(interval.min), xNode, new numberNode_1.NumberNode(interval.max)], [
|
|
80
|
-
switchInclusion(interval.leftInequalitySymbol),
|
|
81
|
-
switchInclusion(interval.rightInequalitySymbol),
|
|
82
|
-
]),
|
|
83
|
-
];
|
|
84
|
-
}
|
|
85
|
-
wrongIneqs.forEach((ineq) => {
|
|
86
|
-
(0, exercise_1.addWrongProp)(propositions, ineq.toTex());
|
|
87
|
-
});
|
|
50
|
+
const ineq = interval.toInequality();
|
|
51
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwicthedStrictness().toTex());
|
|
52
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwitched().toTex());
|
|
53
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwitched().toSwicthedStrictness().toTex());
|
|
88
54
|
return (0, shuffle_1.shuffle)(propositions);
|
|
89
55
|
};
|
|
90
|
-
const isAnswerValid = (ans, {
|
|
91
|
-
const
|
|
92
|
-
const max = intervalMax === "infty" ? Infinity : intervalMax;
|
|
93
|
-
const interval = new intervals_1.Interval(min.toTree(), max.toTree(), intervalClosure).toTree();
|
|
56
|
+
const isAnswerValid = (ans, { answer, intervalIdentifiers }) => {
|
|
57
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
|
|
94
58
|
const inequality = interval.toInequality();
|
|
95
|
-
const
|
|
96
|
-
const texs = answer.toAllValidTexs();
|
|
59
|
+
const texs = inequality.toAllValidTexs();
|
|
97
60
|
return texs.includes(ans);
|
|
98
61
|
};
|
|
99
62
|
exports.intervalToInequality = {
|
|
@@ -109,4 +72,5 @@ exports.intervalToInequality = {
|
|
|
109
72
|
getPropositions,
|
|
110
73
|
isAnswerValid,
|
|
111
74
|
subject: "Mathématiques",
|
|
75
|
+
rebuildIdentifiers,
|
|
112
76
|
};
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { Exercise } from "../../../../exercises/exercise";
|
|
2
|
-
import {
|
|
2
|
+
import { IntervalNodeIdentifiers } from "../../../../tree/nodes/sets/intervalNode";
|
|
3
3
|
type Identifiers = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
int1Closure: ClosureType;
|
|
7
|
-
int2Min: number;
|
|
8
|
-
int2Max: number;
|
|
9
|
-
int2Closure: ClosureType;
|
|
4
|
+
int1Identifiers: IntervalNodeIdentifiers;
|
|
5
|
+
int2Identifiers: IntervalNodeIdentifiers;
|
|
10
6
|
};
|
|
11
7
|
export declare const intervalsIntersection: Exercise<Identifiers>;
|
|
12
8
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intervalsIntersection.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalsIntersection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"intervalsIntersection.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalsIntersection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,0BAA0B,CAAC;AAYlC,OAAO,EAGL,uBAAuB,EAExB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IAOjB,eAAe,EAAE,uBAAuB,CAAC;IACzC,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAqJF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAgBvD,CAAC"}
|
|
@@ -3,17 +3,84 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.intervalsIntersection = void 0;
|
|
4
4
|
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
5
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
|
-
const
|
|
6
|
+
const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
|
|
7
7
|
const discreteSetNode_1 = require("../../../../tree/nodes/sets/discreteSetNode");
|
|
8
8
|
const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
|
|
9
|
+
const discreteSetParser_1 = require("../../../../tree/parsers/discreteSetParser");
|
|
10
|
+
const intervalParser_1 = require("../../../../tree/parsers/intervalParser");
|
|
9
11
|
const shuffle_1 = require("../../../../utils/alea/shuffle");
|
|
12
|
+
const rebuildIdentifiers = (oldIds) => {
|
|
13
|
+
if (!!oldIds.int1Identifiers)
|
|
14
|
+
return oldIds;
|
|
15
|
+
const a1 = oldIds.int1Min === "-infty" || oldIds.int2Min === -Infinity
|
|
16
|
+
? infiniteNode_1.MinusInfinityNode
|
|
17
|
+
: oldIds.int1Min.toTree();
|
|
18
|
+
const b1 = oldIds.int1Max === "infty" || oldIds.int1Max === Infinity
|
|
19
|
+
? infiniteNode_1.PlusInfinityNode
|
|
20
|
+
: oldIds.int1Max.toTree();
|
|
21
|
+
const closure1 = oldIds.int1Closure;
|
|
22
|
+
const interval1 = new intervalNode_1.IntervalNode(a1, b1, closure1);
|
|
23
|
+
const a2 = oldIds.int2Min === "-infty" || oldIds.int2Min === -Infinity
|
|
24
|
+
? infiniteNode_1.MinusInfinityNode
|
|
25
|
+
: oldIds.int2Min.toTree();
|
|
26
|
+
const b2 = oldIds.int2Max === "infty" || oldIds.int2Max === Infinity
|
|
27
|
+
? infiniteNode_1.PlusInfinityNode
|
|
28
|
+
: oldIds.int2Max.toTree();
|
|
29
|
+
const closure2 = oldIds.int2Closure;
|
|
30
|
+
const interval2 = new intervalNode_1.IntervalNode(a2, b2, closure2);
|
|
31
|
+
return {
|
|
32
|
+
int1Identifiers: interval1.toIdentifiers(),
|
|
33
|
+
int2Identifiers: interval2.toIdentifiers(),
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
const getInstruction = (identifiers) => {
|
|
37
|
+
const [int1, int2] = [
|
|
38
|
+
intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.int1Identifiers),
|
|
39
|
+
intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.int2Identifiers),
|
|
40
|
+
];
|
|
41
|
+
return `Soit $I = ${int1.toTex()}$ et $J = ${int2.toTex()}$.
|
|
42
|
+
|
|
43
|
+
Déterminer $I\\cap J$.`;
|
|
44
|
+
};
|
|
45
|
+
const getAnswer = (identifiers) => {
|
|
46
|
+
const [int1, int2] = [
|
|
47
|
+
intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.int1Identifiers),
|
|
48
|
+
intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.int2Identifiers),
|
|
49
|
+
];
|
|
50
|
+
const inter = int1.intersection(int2);
|
|
51
|
+
return inter.toTex();
|
|
52
|
+
};
|
|
53
|
+
const getCorrection = (identifiers) => {
|
|
54
|
+
const [int1, int2] = [
|
|
55
|
+
intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.int1Identifiers),
|
|
56
|
+
intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.int2Identifiers),
|
|
57
|
+
];
|
|
58
|
+
const inter = int1.intersection(int2);
|
|
59
|
+
const answer = inter.toTex();
|
|
60
|
+
return `$I$ contient les nombres ${int1.toText(true, false)}.
|
|
61
|
+
|
|
62
|
+
$J$ contient les nombres ${int2.toText(false, false)}.
|
|
63
|
+
|
|
64
|
+
${(0, discreteSetNode_1.isDiscreteSetNode)(inter) && inter.elements.length === 0
|
|
65
|
+
? `Il n'y a donc aucun nombre commun aux intervalles $I$ et $J$.`
|
|
66
|
+
: (0, discreteSetNode_1.isDiscreteSetNode)(inter) && inter.elements.length === 1
|
|
67
|
+
? `Il n'y a donc qu'un nombre commun aux intervalles $I$ et $J$ : $${inter.elements[0].toTex()}$.`
|
|
68
|
+
: (0, intervalNode_1.isIntervalNode)(inter) &&
|
|
69
|
+
`Les nombres communs à $I$ et $J$ sont donc les nombres ${inter.toText(true, false)}.`}
|
|
70
|
+
|
|
71
|
+
Ainsi, $I\\cap J = ${answer}$`;
|
|
72
|
+
};
|
|
10
73
|
const getIntervalsIntersectionQuestion = () => {
|
|
11
|
-
const [int1, int2] =
|
|
74
|
+
const [int1, int2] = intervalNode_1.IntervalNodeConstructor.differentRandoms(2);
|
|
12
75
|
const inter = int1.intersection(int2);
|
|
13
76
|
const answer = inter.toTex();
|
|
77
|
+
const identifiers = {
|
|
78
|
+
int1Identifiers: int1.toIdentifiers(),
|
|
79
|
+
int2Identifiers: int2.toIdentifiers(),
|
|
80
|
+
};
|
|
14
81
|
const question = {
|
|
15
|
-
answer,
|
|
16
|
-
instruction:
|
|
82
|
+
answer: getAnswer(identifiers),
|
|
83
|
+
instruction: getInstruction(identifiers),
|
|
17
84
|
keys: [
|
|
18
85
|
"infty",
|
|
19
86
|
"varnothing",
|
|
@@ -26,44 +93,46 @@ const getIntervalsIntersectionQuestion = () => {
|
|
|
26
93
|
"rbrace",
|
|
27
94
|
],
|
|
28
95
|
answerFormat: "tex",
|
|
29
|
-
identifiers
|
|
30
|
-
int1Closure: int1.closure,
|
|
31
|
-
int1Max: int1.max,
|
|
32
|
-
int1Min: int1.min,
|
|
33
|
-
int2Closure: int2.closure,
|
|
34
|
-
int2Max: int2.max,
|
|
35
|
-
int2Min: int2.min,
|
|
36
|
-
},
|
|
96
|
+
identifiers,
|
|
37
97
|
hint: `Détermine l'ensemble des nombres qui appartiennent à la fois à $I$ et à $J$.`,
|
|
38
|
-
correction:
|
|
39
|
-
|
|
40
|
-
$J$ contient les nombres ${int2.toTree().toText(false, false)}.
|
|
41
|
-
|
|
42
|
-
${(0, discreteSetNode_1.isDiscreteSetNode)(inter) && inter.elements.length === 0
|
|
43
|
-
? `Il n'y a donc aucun nombre commun aux intervalles $I$ et $J$.`
|
|
44
|
-
: (0, discreteSetNode_1.isDiscreteSetNode)(inter) && inter.elements.length === 1
|
|
45
|
-
? `Il n'y a donc qu'un nombre commun aux intervalles $I$ et $J$ : $${inter.elements[0].toTex()}$.`
|
|
46
|
-
: (0, intervalNode_1.isIntervalNode)(inter) &&
|
|
47
|
-
`Les nombres communs à $I$ et $J$ sont donc les nombres ${inter.toText(true, false)}.`}
|
|
48
|
-
|
|
49
|
-
Ainsi, $I\\cap J = ${answer}$`,
|
|
98
|
+
correction: getCorrection(identifiers),
|
|
50
99
|
};
|
|
51
100
|
return question;
|
|
52
101
|
};
|
|
53
|
-
const getPropositions = (n, { answer,
|
|
102
|
+
const getPropositions = (n, { answer, int1Identifiers, int2Identifiers }) => {
|
|
54
103
|
const propositions = [];
|
|
104
|
+
const [int1, int2] = [
|
|
105
|
+
intervalNode_1.IntervalNodeConstructor.fromIdentifiers(int1Identifiers),
|
|
106
|
+
intervalNode_1.IntervalNodeConstructor.fromIdentifiers(int2Identifiers),
|
|
107
|
+
];
|
|
55
108
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
56
|
-
|
|
57
|
-
const int2 = new intervals_1.Interval(int2Min.toTree(), int2Max.toTree(), int2Closure);
|
|
58
|
-
(0, exercise_1.tryToAddWrongProp)(propositions, int1.union(int2).tex);
|
|
109
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, int1.union(int2).toTex());
|
|
59
110
|
while (propositions.length < n) {
|
|
60
|
-
const wrongAnswer =
|
|
111
|
+
const wrongAnswer = intervalNode_1.IntervalNodeConstructor.random().toTex();
|
|
61
112
|
(0, exercise_1.tryToAddWrongProp)(propositions, wrongAnswer);
|
|
62
113
|
}
|
|
63
114
|
return (0, shuffle_1.shuffle)(propositions);
|
|
64
115
|
};
|
|
65
|
-
const isAnswerValid = (ans, { answer }) => {
|
|
66
|
-
|
|
116
|
+
const isAnswerValid = (ans, { answer, int1Identifiers, int2Identifiers }) => {
|
|
117
|
+
try {
|
|
118
|
+
if (answer === "\\varnothing")
|
|
119
|
+
return ans === answer;
|
|
120
|
+
if (answer.includes("\\{")) {
|
|
121
|
+
const setParsed = (0, discreteSetParser_1.discreteSetParser)(ans);
|
|
122
|
+
if (!setParsed)
|
|
123
|
+
return false;
|
|
124
|
+
return setParsed.simplify().toTex() === answer;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const parsed = (0, intervalParser_1.intervalParser)(ans);
|
|
128
|
+
if (!parsed)
|
|
129
|
+
return false;
|
|
130
|
+
return parsed.simplify().toTex() === answer;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
67
136
|
};
|
|
68
137
|
exports.intervalsIntersection = {
|
|
69
138
|
id: "intervalsIntersection",
|
|
@@ -79,4 +148,5 @@ exports.intervalsIntersection = {
|
|
|
79
148
|
isAnswerValid,
|
|
80
149
|
subject: "Mathématiques",
|
|
81
150
|
hasHintAndCorrection: true,
|
|
151
|
+
rebuildIdentifiers,
|
|
82
152
|
};
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { Exercise } from "../../../../exercises/exercise";
|
|
2
|
-
import {
|
|
2
|
+
import { IntervalNodeIdentifiers } from "../../../../tree/nodes/sets/intervalNode";
|
|
3
3
|
type Identifiers = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
int1Closure: ClosureType;
|
|
7
|
-
int2Min: number;
|
|
8
|
-
int2Max: number;
|
|
9
|
-
int2Closure: ClosureType;
|
|
4
|
+
int1Identifiers: IntervalNodeIdentifiers;
|
|
5
|
+
int2Identifiers: IntervalNodeIdentifiers;
|
|
10
6
|
};
|
|
11
7
|
export declare const intervalsUnion: Exercise<Identifiers>;
|
|
12
8
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intervalsUnion.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalsUnion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"intervalsUnion.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalsUnion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAGL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAI5C,KAAK,WAAW,GAAG;IAOjB,eAAe,EAAE,uBAAuB,CAAC;IACzC,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAkGF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAehD,CAAC"}
|