math-exercises 2.2.80 → 2.2.82
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/arithmetics/divisibiltyCriteria.d.ts.map +1 -1
- package/lib/exercises/math/calcul/arithmetics/divisibiltyCriteria.js +1 -0
- 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/lnDerivativeThree.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/lnDerivativeThree.js +3 -0
- 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/exponentials/exponentialsVariations.d.ts.map +1 -1
- package/lib/exercises/math/functions/exponentials/exponentialsVariations.js +1 -0
- package/lib/exercises/math/functions/logarithm/log10Simplifying.d.ts +5 -2
- package/lib/exercises/math/functions/logarithm/log10Simplifying.d.ts.map +1 -1
- package/lib/exercises/math/functions/logarithm/log10Simplifying.js +2 -0
- package/lib/exercises/math/functions/logarithm/logEquation.d.ts.map +1 -1
- package/lib/exercises/math/functions/logarithm/logEquation.js +1 -0
- package/lib/exercises/math/functions/logarithm/logPowerEquation.d.ts +5 -2
- package/lib/exercises/math/functions/logarithm/logPowerEquation.d.ts.map +1 -1
- package/lib/exercises/math/functions/logarithm/logPowerEquation.js +2 -0
- package/lib/exercises/math/functions/logarithm/logSimplifiying.d.ts.map +1 -1
- package/lib/exercises/math/functions/logarithm/logSimplifiying.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 +28 -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 +40 -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 +91 -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 +58 -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 +49 -23
- 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
|
@@ -12,6 +12,7 @@ const numberNode_1 = require("../../../../tree/nodes/numbers/numberNode");
|
|
|
12
12
|
const closure_1 = require("../../../../tree/nodes/sets/closure");
|
|
13
13
|
const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
|
|
14
14
|
const unionIntervalNode_1 = require("../../../../tree/nodes/sets/unionIntervalNode");
|
|
15
|
+
const unionIntervalParser_1 = require("../../../../tree/parsers/unionIntervalParser");
|
|
15
16
|
const getAnswer = ({ a, roots, ineqType }) => {
|
|
16
17
|
const aPositive = a > 0;
|
|
17
18
|
const insideInterval = new intervalNode_1.IntervalNode(roots[0], roots[1], ineqType.isStrict ? closure_1.ClosureType.OO : closure_1.ClosureType.FF);
|
|
@@ -76,12 +77,15 @@ const getPropositions = (n, { answer, a, b, c, ineqType }) => {
|
|
|
76
77
|
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
77
78
|
};
|
|
78
79
|
const isAnswerValid = (ans, { answer, a, b, c, ineqType }) => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
try {
|
|
81
|
+
const parsed = (0, unionIntervalParser_1.unionIntervalParser)(ans.replaceAll("S", "").replaceAll("=", ""));
|
|
82
|
+
if (!parsed)
|
|
83
|
+
return false;
|
|
84
|
+
return "S=\\ " + parsed.simplify().toTex() === answer;
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
85
89
|
};
|
|
86
90
|
exports.secondDegreeInequation = {
|
|
87
91
|
id: "secondDegreeInequation",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trinomSignFromRoots.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/trinoms/trinomSignFromRoots.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"trinomSignFromRoots.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/trinoms/trinomSignFromRoots.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,0BAA0B,CAAC;AAiBlC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAuHF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAgBrD,CAAC"}
|
|
@@ -4,12 +4,12 @@ exports.trinomSignFromRoots = void 0;
|
|
|
4
4
|
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
5
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
6
|
const trinomNode_1 = require("../../../../tree/nodes/polynomials/trinomNode");
|
|
7
|
-
const intervals_1 = require("../../../../math/sets/intervals/intervals");
|
|
8
7
|
const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
|
|
9
8
|
const closure_1 = require("../../../../tree/nodes/sets/closure");
|
|
10
9
|
const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
|
|
11
10
|
const unionIntervalNode_1 = require("../../../../tree/nodes/sets/unionIntervalNode");
|
|
12
11
|
const coinFlip_1 = require("../../../../utils/alea/coinFlip");
|
|
12
|
+
const unionIntervalParser_1 = require("../../../../tree/parsers/unionIntervalParser");
|
|
13
13
|
const getPropositions = (n, { answer, trinomCoeffs, isAskingPositive }) => {
|
|
14
14
|
const propositions = [];
|
|
15
15
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
@@ -20,8 +20,8 @@ const getPropositions = (n, { answer, trinomCoeffs, isAskingPositive }) => {
|
|
|
20
20
|
(0, exercise_1.tryToAddWrongProp)(propositions, getAnswer({ trinomCoeffs, isAskingPositive: !isAskingPositive }));
|
|
21
21
|
(0, exercise_1.tryToAddWrongProp)(propositions, new intervalNode_1.IntervalNode(trinom.a, trinom.b, closure_1.ClosureType.FF).toTex());
|
|
22
22
|
while (propositions.length < n) {
|
|
23
|
-
const interval =
|
|
24
|
-
(0, exercise_1.tryToAddWrongProp)(propositions, interval.
|
|
23
|
+
const interval = intervalNode_1.IntervalNodeConstructor.random();
|
|
24
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, interval.toTex());
|
|
25
25
|
}
|
|
26
26
|
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
27
27
|
};
|
|
@@ -74,9 +74,15 @@ const getKeys = (identifiers) => {
|
|
|
74
74
|
return ["lbracket", "semicolon", "rbracket", "infty", "cup"];
|
|
75
75
|
};
|
|
76
76
|
const isAnswerValid = (ans, { answer, isAskingPositive, trinomCoeffs }) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
try {
|
|
78
|
+
const parsed = (0, unionIntervalParser_1.unionIntervalParser)(ans);
|
|
79
|
+
if (!parsed)
|
|
80
|
+
return false;
|
|
81
|
+
return parsed.simplify().toTex() === answer;
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
80
86
|
};
|
|
81
87
|
const getTrinomSignFromRootsQuestion = () => {
|
|
82
88
|
const trinom = trinomNode_1.TrinomNodeConstructor.randomNiceRoots(2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convexityQuadrinomialsGeo.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/convexity/convexityQuadrinomialsGeo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"convexityQuadrinomialsGeo.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/convexity/convexityQuadrinomialsGeo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAqBlC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AA8JF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAc3D,CAAC"}
|
|
@@ -11,6 +11,7 @@ const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
|
|
|
11
11
|
const numberNode_1 = require("../../../../tree/nodes/numbers/numberNode");
|
|
12
12
|
const closure_1 = require("../../../../tree/nodes/sets/closure");
|
|
13
13
|
const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
|
|
14
|
+
const intervalParser_1 = require("../../../../tree/parsers/intervalParser");
|
|
14
15
|
const coinFlip_1 = require("../../../../utils/alea/coinFlip");
|
|
15
16
|
function generatePolynomialWithIntegerInflexionPoint(degree, inflexionPointX) {
|
|
16
17
|
let a, b, c, discriminant;
|
|
@@ -95,22 +96,16 @@ const getPropositions = (n, { answer, inflexionPoint }) => {
|
|
|
95
96
|
(0, exercise_1.tryToAddWrongProp)(propositions, wrongInterval4);
|
|
96
97
|
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
97
98
|
};
|
|
98
|
-
const isAnswerValid = (ans, {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
: new intervalNode_1.IntervalNode(infiniteNode_1.MinusInfinityNode, inflexionPoint.toTree(), closure_1.ClosureType.OO);
|
|
99
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
100
|
+
try {
|
|
101
|
+
const parsed = (0, intervalParser_1.intervalParser)(ans);
|
|
102
|
+
if (!parsed)
|
|
103
|
+
return false;
|
|
104
|
+
return parsed.simplify().toTex() === answer;
|
|
105
105
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
quadcoeffs[3] <= 0
|
|
109
|
-
? new intervalNode_1.IntervalNode(inflexionPoint.toTree(), infiniteNode_1.PlusInfinityNode, closure_1.ClosureType.OO)
|
|
110
|
-
: new intervalNode_1.IntervalNode(infiniteNode_1.MinusInfinityNode, inflexionPoint.toTree(), closure_1.ClosureType.OO);
|
|
106
|
+
catch (err) {
|
|
107
|
+
return false;
|
|
111
108
|
}
|
|
112
|
-
const latexs = interval.toAllValidTexs({});
|
|
113
|
-
return latexs.includes(ans);
|
|
114
109
|
};
|
|
115
110
|
exports.convexityQuadrinomialsGeo = {
|
|
116
111
|
id: "convexityQuadrinomialsGeo",
|
|
@@ -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;AAoFF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
|
|
@@ -3,14 +3,29 @@ 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
|
+
const a = oldIds.intervalMin === "-infty"
|
|
12
|
+
? infiniteNode_1.MinusInfinityNode
|
|
13
|
+
: oldIds.intervalMin.toTree();
|
|
14
|
+
const b = oldIds.intervalMax === "infty"
|
|
15
|
+
? infiniteNode_1.PlusInfinityNode
|
|
16
|
+
: oldIds.intervalMax.toTree();
|
|
17
|
+
const closure = oldIds.intervalClosure;
|
|
18
|
+
const interval = new intervalNode_1.IntervalNode(a, b, closure);
|
|
19
|
+
return { intervalIdentifiers: interval.toIdentifiers() };
|
|
20
|
+
};
|
|
9
21
|
const getInequalityToIntervalQuestion = () => {
|
|
10
|
-
const interval =
|
|
11
|
-
const
|
|
22
|
+
const interval = intervalNode_1.IntervalNodeConstructor.random();
|
|
23
|
+
const inequality = interval.toInequality();
|
|
12
24
|
const answer = `x\\in\\ ${interval.toTex()}`;
|
|
13
|
-
const instruction = `Soit $${
|
|
25
|
+
const instruction = `Soit $${inequality.toTex()}$. Traduire cette inégalité en appartenance à un intervalle.`;
|
|
26
|
+
const identifiers = {
|
|
27
|
+
intervalIdentifiers: interval.toIdentifiers(),
|
|
28
|
+
};
|
|
14
29
|
const question = {
|
|
15
30
|
answer,
|
|
16
31
|
instruction: instruction,
|
|
@@ -27,34 +42,21 @@ const getInequalityToIntervalQuestion = () => {
|
|
|
27
42
|
"infty",
|
|
28
43
|
],
|
|
29
44
|
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
|
-
},
|
|
45
|
+
identifiers,
|
|
35
46
|
};
|
|
36
47
|
return question;
|
|
37
48
|
};
|
|
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);
|
|
49
|
+
const getPropositions = (n, { answer, intervalIdentifiers }) => {
|
|
50
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
|
|
45
51
|
const propositions = [];
|
|
46
52
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
];
|
|
52
|
-
wrongStatements.forEach((ineq) => {
|
|
53
|
-
(0, exercise_1.addWrongProp)(propositions, ineq);
|
|
54
|
-
});
|
|
53
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " + interval.toLeftReversedClosure().toTex());
|
|
54
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " + interval.toRightReversedClosure().toTex());
|
|
55
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " +
|
|
56
|
+
interval.toLeftReversedClosure().toRightReversedClosure().toTex());
|
|
55
57
|
return (0, shuffle_1.shuffle)(propositions);
|
|
56
58
|
};
|
|
57
|
-
const isAnswerValid = (ans, {
|
|
59
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
58
60
|
try {
|
|
59
61
|
const parsed = (0, intervalParser_1.intervalParser)(ans.replaceAll("x\\in", ""));
|
|
60
62
|
if (!parsed)
|
|
@@ -78,4 +80,5 @@ exports.inequalityToInterval = {
|
|
|
78
80
|
getPropositions,
|
|
79
81
|
isAnswerValid,
|
|
80
82
|
subject: "Mathématiques",
|
|
83
|
+
rebuildIdentifiers,
|
|
81
84
|
};
|
|
@@ -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;AA+EF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
|
|
@@ -3,97 +3,58 @@ 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
|
+
const a = oldIds.intervalMin === "-infty"
|
|
11
|
+
? infiniteNode_1.MinusInfinityNode
|
|
12
|
+
: oldIds.intervalMin.toTree();
|
|
13
|
+
const b = oldIds.intervalMax === "infty"
|
|
14
|
+
? infiniteNode_1.PlusInfinityNode
|
|
15
|
+
: oldIds.intervalMax.toTree();
|
|
16
|
+
const closure = oldIds.intervalClosure;
|
|
17
|
+
const interval = new intervalNode_1.IntervalNode(a, b, closure);
|
|
18
|
+
return { intervalIdentifiers: interval.toIdentifiers() };
|
|
19
|
+
};
|
|
20
|
+
const getInstruction = (identifiers) => {
|
|
21
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.intervalIdentifiers);
|
|
22
|
+
return `Soit $x \\in ${interval.toTex()}$. Traduire cette appartenance en une inégalité.`;
|
|
23
|
+
};
|
|
24
|
+
const getAnswer = (identifiers) => {
|
|
25
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.intervalIdentifiers);
|
|
26
|
+
const inequality = interval.toInequality();
|
|
27
|
+
const answer = inequality.toTex();
|
|
28
|
+
return answer;
|
|
29
|
+
};
|
|
11
30
|
const getIntervalToInequalityQuestion = () => {
|
|
12
|
-
const interval =
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
31
|
+
const interval = intervalNode_1.IntervalNodeConstructor.random();
|
|
32
|
+
const identifiers = {
|
|
33
|
+
intervalIdentifiers: interval.toIdentifiers(),
|
|
34
|
+
};
|
|
16
35
|
const question = {
|
|
17
|
-
answer,
|
|
18
|
-
instruction:
|
|
36
|
+
answer: getAnswer(identifiers),
|
|
37
|
+
instruction: getInstruction(identifiers),
|
|
19
38
|
keys: ["x", "inf", "sup", "geq", "leq", "infty"],
|
|
20
39
|
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
|
-
},
|
|
40
|
+
identifiers,
|
|
26
41
|
};
|
|
27
42
|
return question;
|
|
28
43
|
};
|
|
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);
|
|
44
|
+
const getPropositions = (n, { answer, intervalIdentifiers }) => {
|
|
45
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
|
|
51
46
|
const propositions = [];
|
|
52
47
|
(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
|
-
});
|
|
48
|
+
const ineq = interval.toInequality();
|
|
49
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwicthedStrictness().toTex());
|
|
50
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwitched().toTex());
|
|
51
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwitched().toSwicthedStrictness().toTex());
|
|
88
52
|
return (0, shuffle_1.shuffle)(propositions);
|
|
89
53
|
};
|
|
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();
|
|
54
|
+
const isAnswerValid = (ans, { answer, intervalIdentifiers }) => {
|
|
55
|
+
const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
|
|
94
56
|
const inequality = interval.toInequality();
|
|
95
|
-
const
|
|
96
|
-
const texs = answer.toAllValidTexs();
|
|
57
|
+
const texs = inequality.toAllValidTexs();
|
|
97
58
|
return texs.includes(ans);
|
|
98
59
|
};
|
|
99
60
|
exports.intervalToInequality = {
|
|
@@ -109,4 +70,5 @@ exports.intervalToInequality = {
|
|
|
109
70
|
getPropositions,
|
|
110
71
|
isAnswerValid,
|
|
111
72
|
subject: "Mathématiques",
|
|
73
|
+
rebuildIdentifiers,
|
|
112
74
|
};
|
|
@@ -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;AA4IF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAgBvD,CAAC"}
|