math-exercises 3.0.127 → 3.0.129
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/isMultipleOrDivisor.d.ts.map +1 -1
- package/lib/exercises/math/calcul/arithmetics/isMultipleOrDivisor.js +0 -10
- package/lib/exercises/math/calcul/mentalCaluls/mentalProgramSolve.d.ts.map +1 -1
- package/lib/exercises/math/calcul/mentalCaluls/mentalProgramSolve.js +14 -4
- package/lib/exercises/math/calcul/operations/expressionNature.d.ts.map +1 -1
- package/lib/exercises/math/calcul/operations/expressionNature.js +0 -4
- package/lib/exercises/math/calcul/ordering/compareA10N.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/compareA10N.js +0 -1
- package/lib/exercises/math/calcul/ordering/compareABUsingQuotient.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/compareABUsingQuotient.js +3 -19
- package/lib/exercises/math/calcul/ordering/compareFracABWithFracAPlusCBPlusC.d.ts +4 -1
- package/lib/exercises/math/calcul/ordering/compareFracABWithFracAPlusCBPlusC.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/compareFracABWithFracAPlusCBPlusC.js +34 -11
- package/lib/exercises/math/calcul/ordering/compareFracAndDec.d.ts +2 -6
- package/lib/exercises/math/calcul/ordering/compareFracAndDec.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/compareFracAndDec.js +81 -192
- package/lib/exercises/math/calcul/ordering/compareWithSquareRoots.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/compareWithSquareRoots.js +20 -11
- package/lib/exercises/math/calcul/ordering/decimalOrdering.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/decimalOrdering.js +0 -4
- package/lib/exercises/math/calcul/ordering/decimalOrderingNoRelatives.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/decimalOrderingNoRelatives.js +0 -4
- package/lib/exercises/math/calcul/ordering/integerOrdering.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/integerOrdering.js +0 -4
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.js +0 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportional.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportional.js +0 -4
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.js +0 -4
- package/lib/exercises/math/calcul/rounding/estimateAroundPow10NTimesAroundPow10N.d.ts.map +1 -1
- package/lib/exercises/math/calcul/rounding/estimateAroundPow10NTimesAroundPow10N.js +0 -1
- package/lib/exercises/math/calcul/rounding/estimatePow10NPlusPow10MinusN.d.ts.map +1 -1
- package/lib/exercises/math/calcul/rounding/estimatePow10NPlusPow10MinusN.js +0 -1
- package/lib/exercises/math/calcul/rounding/getPhysicalOrderOfMagnitude.d.ts.map +1 -1
- package/lib/exercises/math/calcul/rounding/getPhysicalOrderOfMagnitude.js +28 -14
- package/lib/exercises/math/calcul/sign/signFromAx.d.ts.map +1 -1
- package/lib/exercises/math/calcul/sign/signFromAx.js +0 -10
- package/lib/exercises/math/calculLitteral/equation/equationFromProblem.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/equation/equationFromProblem.js +6 -7
- package/lib/exercises/math/calculLitteral/inequations/isInequalityTrue.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/inequations/isInequalityTrue.js +0 -10
- package/lib/exercises/math/calculLitteral/ordering/compareAMinusB.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/ordering/compareAMinusB.js +38 -34
- package/lib/exercises/math/calculLitteral/ordering/compareFromPiMinusFrac.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/ordering/compareFromPiMinusFrac.js +1 -5
- package/lib/exercises/math/calculLitteral/simplifying/valuateExpression.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/simplifying/valuateExpression.js +0 -10
- package/lib/exercises/math/calculLitteral/writing/writeLitExpFromFrenchExp.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/writing/writeLitExpFromFrenchExp.js +0 -1
- package/lib/exercises/math/conversion/kmPerMinToKmPerHourConversion.d.ts.map +1 -1
- package/lib/exercises/math/conversion/kmPerMinToKmPerHourConversion.js +1 -2
- package/lib/exercises/math/conversion/minutesToHours.d.ts.map +1 -1
- package/lib/exercises/math/conversion/minutesToHours.js +6 -4
- package/lib/exercises/math/conversion/secondsToHours.d.ts.map +1 -1
- package/lib/exercises/math/conversion/secondsToHours.js +6 -4
- package/lib/exercises/math/dataRepresentations/barChartInterpreting.d.ts.map +1 -1
- package/lib/exercises/math/dataRepresentations/barChartInterpreting.js +5 -5
- package/lib/exercises/math/dataRepresentations/compareBoxPlot.d.ts.map +1 -1
- package/lib/exercises/math/dataRepresentations/compareBoxPlot.js +0 -1
- package/lib/exercises/math/derivation/convexity/convexityQuadrinomials.d.ts.map +1 -1
- package/lib/exercises/math/derivation/convexity/convexityQuadrinomials.js +0 -1
- package/lib/exercises/math/equaDiff/equaDiffCheckSolutionFirstOrder.d.ts.map +1 -1
- package/lib/exercises/math/equaDiff/equaDiffCheckSolutionFirstOrder.js +0 -4
- package/lib/exercises/math/functions/affines/affineAdjustmentComplete.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/affineAdjustmentComplete.js +0 -1
- package/lib/exercises/math/functions/affines/coordsOfPointOnAffineFindX.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/coordsOfPointOnAffineFindX.js +0 -1
- package/lib/exercises/math/functions/affines/coordsOfPointOnAffineFindY.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/coordsOfPointOnAffineFindY.js +0 -1
- package/lib/exercises/math/functions/affines/drawAffineFromProgCalc.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/recognizeAffineGraph.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/recognizeAffineGraph.js +0 -4
- package/lib/exercises/math/functions/basics/coordsOfPointOnCurveFindY.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/coordsOfPointOnCurveFindY.js +0 -1
- package/lib/exercises/math/functions/basics/isPointOnFunction.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/isPointOnFunction.js +0 -10
- package/lib/exercises/math/functions/basics/signOfFunction.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/signOfFunction.js +0 -10
- package/lib/exercises/math/functions/cube/isPointOnCubicFunction.d.ts.map +1 -1
- package/lib/exercises/math/functions/cube/isPointOnCubicFunction.js +0 -10
- package/lib/exercises/math/functions/exponentials/exponentialsVariations.d.ts.map +1 -1
- package/lib/exercises/math/functions/exponentials/exponentialsVariations.js +0 -4
- package/lib/exercises/math/functions/inverse/compareInverseValues.d.ts.map +1 -1
- package/lib/exercises/math/functions/inverse/compareInverseValues.js +0 -1
- package/lib/exercises/math/functions/inverse/isPointOnReciprocalFunction.d.ts.map +1 -1
- package/lib/exercises/math/functions/inverse/isPointOnReciprocalFunction.js +0 -10
- package/lib/exercises/math/functions/parity/parityFromAlgebra.d.ts.map +1 -1
- package/lib/exercises/math/functions/parity/parityFromAlgebra.js +0 -4
- package/lib/exercises/math/functions/square/compareSquaredValues.d.ts.map +1 -1
- package/lib/exercises/math/functions/square/compareSquaredValues.js +0 -10
- package/lib/exercises/math/geometry/convexity/convexityTrinomialsGeo.d.ts.map +1 -1
- package/lib/exercises/math/geometry/convexity/convexityTrinomialsGeo.js +0 -4
- package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.d.ts.map +1 -1
- package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.js +0 -4
- package/lib/exercises/math/geometry/lines/isPointOnCartesianLine.d.ts.map +1 -1
- package/lib/exercises/math/geometry/lines/isPointOnCartesianLine.js +0 -4
- package/lib/exercises/math/geometry/lines/isPointOnLine.d.ts.map +1 -1
- package/lib/exercises/math/geometry/lines/isPointOnLine.js +0 -4
- package/lib/exercises/math/geometry/lines/linesRelativePositions.d.ts.map +1 -1
- package/lib/exercises/math/geometry/lines/linesRelativePositions.js +0 -4
- package/lib/exercises/math/geometry/parametric/pointFromParametricLine.d.ts.map +1 -1
- package/lib/exercises/math/geometry/parametric/pointFromParametricLine.js +0 -4
- package/lib/exercises/math/geometry/pythagore/isTriangleRight.d.ts.map +1 -1
- package/lib/exercises/math/geometry/pythagore/isTriangleRight.js +0 -4
- package/lib/exercises/math/geometry/quadrilaterals/parallelogramRectangle.d.ts.map +1 -1
- package/lib/exercises/math/geometry/quadrilaterals/parallelogramRectangle.js +0 -4
- package/lib/exercises/math/geometry/quadrilaterals/parallelogramRhombus.d.ts.map +1 -1
- package/lib/exercises/math/geometry/quadrilaterals/parallelogramRhombus.js +0 -4
- package/lib/exercises/math/geometry/quadrilaterals/quadrilateralRecognition.d.ts.map +1 -1
- package/lib/exercises/math/geometry/quadrilaterals/quadrilateralRecognition.js +0 -4
- package/lib/exercises/math/geometry/shapes/basicShapesRecognition.d.ts.map +1 -1
- package/lib/exercises/math/geometry/shapes/basicShapesRecognition.js +6 -7
- package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.d.ts.map +1 -1
- package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.js +0 -10
- package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromPicture.d.ts.map +1 -1
- package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromPicture.js +0 -10
- package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.d.ts.map +1 -1
- package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.js +0 -4
- package/lib/exercises/math/percent/evolutions/findRightCalculForPriceEvolution.d.ts.map +1 -1
- package/lib/exercises/math/percent/evolutions/findRightCalculForPriceEvolution.js +0 -4
- package/lib/exercises/math/probaStat/basicProbas/mostLeastProbable.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/basicProbas/mostLeastProbable.js +0 -10
- package/lib/exercises/math/probaStat/checkEquiprobability.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/checkEquiprobability.js +0 -10
- package/lib/exercises/math/probaStat/conditionalProbaWriteFromFrench.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/conditionalProbaWriteFromFrench.js +0 -1
- package/lib/exercises/math/probaStat/events/describeEvent.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/events/describeEvent.js +0 -10
- package/lib/exercises/math/probaStat/events/eventNotation.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/events/eventNotation.js +0 -10
- package/lib/exercises/math/probaStat/stats1var/compareSeriesDispersion.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/stats1var/compareSeriesDispersion.js +0 -4
- package/lib/exercises/math/probaStat/stats1var/getQuartileProportionQuestion.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/stats1var/getQuartileProportionQuestion.js +0 -10
- package/lib/exercises/math/probaStat/stats2var/fineAdjustementExercise.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/stats2var/fineAdjustementExercise.js +0 -4
- package/lib/exercises/math/python/pythonForLoopInstructionCompletion.d.ts.map +1 -1
- package/lib/exercises/math/python/pythonForLoopInstructionCompletion.js +0 -10
- package/lib/exercises/math/python/pythonIfStatementCompletion.d.ts.map +1 -1
- package/lib/exercises/math/python/pythonIfStatementCompletion.js +7 -8
- package/lib/exercises/math/python/pythonSimpleFunctionInstructionCompletion.d.ts.map +1 -1
- package/lib/exercises/math/python/pythonSimpleFunctionInstructionCompletion.js +0 -10
- package/lib/exercises/math/python/pythonWhileStatementCompletion.d.ts.map +1 -1
- package/lib/exercises/math/python/pythonWhileStatementCompletion.js +5 -6
- package/lib/exercises/math/python/pythonWhileStatementOperationCompletion.d.ts.map +1 -1
- package/lib/exercises/math/python/pythonWhileStatementOperationCompletion.js +5 -6
- package/lib/exercises/math/python/variableType.d.ts.map +1 -1
- package/lib/exercises/math/python/variableType.js +0 -10
- package/lib/exercises/math/sampling/isSamplingRepresentative.d.ts.map +1 -1
- package/lib/exercises/math/sampling/isSamplingRepresentative.js +0 -4
- package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.js +0 -4
- package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +0 -4
- package/lib/exercises/math/sequences/geometric/geometricVariations.d.ts.map +1 -1
- package/lib/exercises/math/sequences/geometric/geometricVariations.js +0 -4
- package/lib/exercises/math/sets/intervals/isNumberInInterval.d.ts.map +1 -1
- package/lib/exercises/math/sets/intervals/isNumberInInterval.js +0 -10
- package/lib/exercises/math/sets/isNumberDecimal.d.ts.map +1 -1
- package/lib/exercises/math/sets/isNumberDecimal.js +0 -10
- package/lib/exercises/math/sets/nameOfNumberSets.d.ts.map +1 -1
- package/lib/exercises/math/sets/nameOfNumberSets.js +0 -10
- package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.d.ts.map +1 -1
- package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.js +0 -1
- package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.d.ts.map +1 -1
- package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.js +0 -4
- package/lib/exercises/pc/chemicalReactions/identifyLimitingReagent.d.ts.map +1 -1
- package/lib/exercises/pc/chemicalReactions/identifyLimitingReagent.js +0 -4
- package/lib/exercises/pc/chemicalReactions/identifyStoichiometricMixture.d.ts.map +1 -1
- package/lib/exercises/pc/chemicalReactions/identifyStoichiometricMixture.js +0 -4
- package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.d.ts.map +1 -1
- package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.js +0 -4
- package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.d.ts.map +1 -1
- package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.js +0 -4
- package/lib/exercises/pc/moleculeNomenclature.d.ts.map +1 -1
- package/lib/exercises/pc/moleculeNomenclature.js +0 -4
- package/lib/exercises/pc/motion/motionReference.d.ts.map +1 -1
- package/lib/exercises/pc/motion/motionReference.js +0 -4
- package/lib/exercises/pc/motion/typeOfAcceleration.d.ts.map +1 -1
- package/lib/exercises/pc/motion/typeOfAcceleration.js +0 -4
- package/lib/exercises/pc/sound/frequencyComparison.d.ts.map +1 -1
- package/lib/exercises/pc/sound/frequencyComparison.js +0 -4
- package/lib/index.d.ts +6 -8
- package/lib/index.d.ts.map +1 -1
- package/lib/math/progCalc/progCalc.d.ts +3 -3
- package/lib/math/progCalc/progCalc.d.ts.map +1 -1
- package/lib/math/progCalc/progCalc.js +13 -3
- package/lib/tests/exoTest.d.ts.map +1 -1
- package/lib/tests/exoTest.js +7 -0
- package/lib/tests/questionTest.d.ts.map +1 -1
- package/lib/tests/questionTest.js +7 -4
- package/package.json +1 -1
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { addValidProp, shuffleProps, tryToAddWrongProp, propWhile, } from "../../../../exercises/exercise.js";
|
|
2
2
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
3
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
4
|
-
import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
|
|
5
4
|
import { doWhile } from "../../../../utils/doWhile.js";
|
|
6
|
-
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
7
5
|
const physicalFacts = [
|
|
8
6
|
{
|
|
9
7
|
question: "du diamètre d'un atome d'hydrogène",
|
|
@@ -132,7 +130,7 @@ const getPropositions = (n, { answer, factIndex }) => {
|
|
|
132
130
|
};
|
|
133
131
|
const getAnswer = ({ factIndex }) => {
|
|
134
132
|
const item = physicalFacts[factIndex];
|
|
135
|
-
const power = Math.
|
|
133
|
+
const power = Math.round(Math.log10(item.value));
|
|
136
134
|
return `10^{${power}}\\ ${item.unit}`;
|
|
137
135
|
};
|
|
138
136
|
const getInstruction = ({ factIndex }) => {
|
|
@@ -151,16 +149,33 @@ On cherche la puissance de $10$ la plus proche : c'est $10^{${power}}$.
|
|
|
151
149
|
Un ordre de grandeur ${item.question} est donc $10^{${power}}\\ ${item.unit}$.`;
|
|
152
150
|
};
|
|
153
151
|
const getKeys = () => [];
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
152
|
+
// const getKeys: GetKeys<Identifiers> = ({ factIndex }) => {
|
|
153
|
+
// const item = physicalFacts[factIndex];
|
|
154
|
+
// return [
|
|
155
|
+
// {
|
|
156
|
+
// id: "custom",
|
|
157
|
+
// label: item.unit,
|
|
158
|
+
// labelType: "tex",
|
|
159
|
+
// mathfieldInstructions: {
|
|
160
|
+
// method: "write",
|
|
161
|
+
// content: `\\ ${item.unit}`,
|
|
162
|
+
// },
|
|
163
|
+
// },
|
|
164
|
+
// ] as KeyProps[];
|
|
165
|
+
// };
|
|
166
|
+
// const isAnswerValid: VEA<Identifiers> = (ans, { answer, factIndex }) => {
|
|
167
|
+
// const item = physicalFacts[factIndex];
|
|
168
|
+
// if (!ans.includes(item.unit.replaceAll("textrm", "text"))) {
|
|
169
|
+
// return false;
|
|
170
|
+
// }
|
|
171
|
+
// try {
|
|
172
|
+
// const ansNode = parseAlgebraic(ans.split("\\")[0]);
|
|
173
|
+
// const answerNode = parseAlgebraic(answer.split("\\")[0]);
|
|
174
|
+
// return substract(ansNode, answerNode).simplify().evaluate() === 0;
|
|
175
|
+
// } catch (err) {
|
|
176
|
+
// return handleVEAError(err);
|
|
177
|
+
// }
|
|
178
|
+
// };
|
|
164
179
|
const getGetPhysicalOrderOfMagnitudeQuestion = () => {
|
|
165
180
|
const factIndex = Math.floor(Math.random() * physicalFacts.length);
|
|
166
181
|
const identifiers = { factIndex };
|
|
@@ -185,7 +200,6 @@ export const getPhysicalOrderOfMagnitude = {
|
|
|
185
200
|
qcmTimer: 60,
|
|
186
201
|
freeTimer: 60,
|
|
187
202
|
getPropositions,
|
|
188
|
-
isAnswerValid,
|
|
189
203
|
subject: "Mathématiques",
|
|
190
204
|
getInstruction,
|
|
191
205
|
getHint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signFromAx.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/sign/signFromAx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"signFromAx.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/sign/signFromAx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAsGF,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAiB5C,CAAC"}
|
|
@@ -4,7 +4,6 @@ import { randint } from "../../../../math/utils/random/randint.js";
|
|
|
4
4
|
import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
5
5
|
import { monom } from "../../../../tree/nodes/polynomials/monomNode.js";
|
|
6
6
|
import { probaLawFlip } from "../../../../utils/alea/probaLawFlip.js";
|
|
7
|
-
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
8
7
|
//-x pos/nég/nul
|
|
9
8
|
//ax pos/nég/nul avec a>0 donné ou <0
|
|
10
9
|
const getPropositions = (n, { answer }) => {
|
|
@@ -63,14 +62,6 @@ const getCorrection = (identifiers) => {
|
|
|
63
62
|
const getKeys = () => {
|
|
64
63
|
return [];
|
|
65
64
|
};
|
|
66
|
-
const isAnswerValid = () => {
|
|
67
|
-
try {
|
|
68
|
-
throw Error("VEA not implemented");
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
return handleVEAError(err);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
65
|
const getSignFromAxQuestion = () => {
|
|
75
66
|
const identifiers = {
|
|
76
67
|
a: randint(-9, 10, [0, 1]),
|
|
@@ -102,7 +93,6 @@ export const signFromAx = {
|
|
|
102
93
|
qcmTimer: 60,
|
|
103
94
|
freeTimer: 60,
|
|
104
95
|
getPropositions,
|
|
105
|
-
isAnswerValid,
|
|
106
96
|
subject: "Mathématiques",
|
|
107
97
|
getInstruction,
|
|
108
98
|
getHint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equationFromProblem.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equationFromProblem.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"equationFromProblem.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equationFromProblem.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAKlE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAetE,KAAK,WAAW,GAAG;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC;IAC1B,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;AA6qBF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAcrD,CAAC"}
|
|
@@ -10,7 +10,6 @@ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
|
10
10
|
import { substract } from "../../../../tree/nodes/operators/substractNode.js";
|
|
11
11
|
import { random, randomMany } from "../../../../utils/alea/random.js";
|
|
12
12
|
import { isOperatorNode, OperatorIds, } from "../../../../tree/nodes/operators/operatorNode.js";
|
|
13
|
-
import { parseLatex } from "../../../../tree/parsers/latexParser.js";
|
|
14
13
|
import { mdTable } from "../../../../utils/markdown/mdTable.js";
|
|
15
14
|
import { alignTex } from "../../../../utils/latex/alignTex.js";
|
|
16
15
|
class ProblemConstructor {
|
|
@@ -433,11 +432,11 @@ const getPropositions = (n, { answer, ...identifiers }) => {
|
|
|
433
432
|
}
|
|
434
433
|
return shuffleProps(propositions, n);
|
|
435
434
|
};
|
|
436
|
-
const isAnswerValid = (ans, { answer, ...identifiers }) => {
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
};
|
|
435
|
+
// const isAnswerValid: VEA<Identifiers> = (ans, { answer, ...identifiers }) => {
|
|
436
|
+
// const answerNode = getAnswerNode(identifiers); //!TODO: this call crashes but it's a mystery
|
|
437
|
+
// const ansNode = parseLatex(ans);
|
|
438
|
+
// return substract(ansNode, answerNode).evaluate() === 0;
|
|
439
|
+
// };
|
|
441
440
|
export const equationFromProblem = {
|
|
442
441
|
id: "equationFromProblem",
|
|
443
442
|
label: "Traduire un problème en une équation mathématique",
|
|
@@ -446,7 +445,7 @@ export const equationFromProblem = {
|
|
|
446
445
|
qcmTimer: 60,
|
|
447
446
|
freeTimer: 60,
|
|
448
447
|
getPropositions,
|
|
449
|
-
isAnswerValid,
|
|
448
|
+
// isAnswerValid,
|
|
450
449
|
subject: "Mathématiques",
|
|
451
450
|
getQuestionFromIdentifiers,
|
|
452
451
|
answerType: "QCU",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isInequalityTrue.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/inequations/isInequalityTrue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"isInequalityTrue.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/inequations/isInequalityTrue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAE7C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAyJF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAiBlD,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
2
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
3
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
4
|
-
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
5
4
|
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
6
5
|
import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
7
6
|
import { add } from "../../../../tree/nodes/operators/addNode.js";
|
|
@@ -106,14 +105,6 @@ Puisque $${leftSimTex} ${isTrue ? sign : reverseSign(sign)} ${rightSimTex}$, l'i
|
|
|
106
105
|
const getKeys = () => {
|
|
107
106
|
return [];
|
|
108
107
|
};
|
|
109
|
-
const isAnswerValid = (ans, { answer }) => {
|
|
110
|
-
try {
|
|
111
|
-
return ans === answer;
|
|
112
|
-
}
|
|
113
|
-
catch (err) {
|
|
114
|
-
return handleVEAError(err);
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
108
|
const getIsInequalityTrueQuestion = () => {
|
|
118
109
|
const a = randint(-10, 10, [0]);
|
|
119
110
|
const b = randint(-10, 10, [0]);
|
|
@@ -156,7 +147,6 @@ export const isInequalityTrue = {
|
|
|
156
147
|
qcmTimer: 60,
|
|
157
148
|
freeTimer: 60,
|
|
158
149
|
getPropositions,
|
|
159
|
-
isAnswerValid,
|
|
160
150
|
subject: "Mathématiques",
|
|
161
151
|
getInstruction,
|
|
162
152
|
getHint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compareAMinusB.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/ordering/compareAMinusB.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"compareAMinusB.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/ordering/compareAMinusB.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAyMF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAchD,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exer
|
|
|
2
2
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
3
|
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
4
4
|
import { random, randomMany } from "../../../../utils/alea/random.js";
|
|
5
|
+
import { shuffle } from "../../../../utils/alea/shuffle.js";
|
|
5
6
|
const getInstruction = (identifiers) => {
|
|
6
7
|
const { names, texInstruction } = identifiers;
|
|
7
8
|
return `Si $${names[0]}$ et $${names[1]}$ sont deux nombres tels que
|
|
@@ -43,24 +44,28 @@ $$
|
|
|
43
44
|
};
|
|
44
45
|
const getPropositions = (n, { names, texsAnswer }) => {
|
|
45
46
|
const propositions = [];
|
|
46
|
-
texsAnswer
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
`${names[0]}
|
|
51
|
-
`${names[0]}
|
|
52
|
-
`${names[0]}
|
|
53
|
-
`${names[
|
|
54
|
-
`${names[1]}
|
|
55
|
-
`${names[1]}
|
|
56
|
-
`${names[1]}
|
|
57
|
-
|
|
58
|
-
|
|
47
|
+
const validSample = shuffle(texsAnswer)[0];
|
|
48
|
+
addValidProp(propositions, validSample);
|
|
49
|
+
const allPossibleProps = [
|
|
50
|
+
`${names[0]}<${names[1]}`,
|
|
51
|
+
`${names[0]}>${names[1]}`,
|
|
52
|
+
`${names[0]}\\le ${names[1]}`,
|
|
53
|
+
`${names[0]}\\ge ${names[1]}`,
|
|
54
|
+
`${names[1]}<${names[0]}`,
|
|
55
|
+
`${names[1]}>${names[0]}`,
|
|
56
|
+
`${names[1]}\\le ${names[0]}`,
|
|
57
|
+
`${names[1]}\\ge ${names[0]}`,
|
|
58
|
+
];
|
|
59
|
+
const invalidProps = allPossibleProps.filter((tex) => !texsAnswer.includes(tex));
|
|
59
60
|
invalidProps.forEach((tex) => {
|
|
60
61
|
tryToAddWrongProp(propositions, tex);
|
|
61
62
|
});
|
|
62
63
|
return shuffleProps(propositions, n);
|
|
63
64
|
};
|
|
65
|
+
const getAnswer = (identifiers) => {
|
|
66
|
+
const { texsAnswer } = identifiers;
|
|
67
|
+
return texsAnswer[0];
|
|
68
|
+
};
|
|
64
69
|
const isAnswerValid = (ans, { texsAnswer }) => {
|
|
65
70
|
return texsAnswer.includes(ans);
|
|
66
71
|
};
|
|
@@ -75,13 +80,13 @@ const getCompareAMinusBQuestion = () => {
|
|
|
75
80
|
texsObjectArray = [
|
|
76
81
|
{
|
|
77
82
|
texInstruction: `x - y < 0`,
|
|
78
|
-
texsCorrection: [`x
|
|
79
|
-
texsAnswer: [`x
|
|
83
|
+
texsCorrection: [`x<y`, `x\\le y`],
|
|
84
|
+
texsAnswer: [`x<y`, `x\\le y`, `y>x`, `y\\ge x`],
|
|
80
85
|
},
|
|
81
86
|
{
|
|
82
87
|
texInstruction: `0 > x - y`,
|
|
83
|
-
texsCorrection: [`y
|
|
84
|
-
texsAnswer: [`x
|
|
88
|
+
texsCorrection: [`y>x`, `y\\ge x`],
|
|
89
|
+
texsAnswer: [`x<y`, `x\\le y`, `y>x`, `y\\ge x`],
|
|
85
90
|
},
|
|
86
91
|
];
|
|
87
92
|
}
|
|
@@ -91,13 +96,13 @@ const getCompareAMinusBQuestion = () => {
|
|
|
91
96
|
texsObjectArray = [
|
|
92
97
|
{
|
|
93
98
|
texInstruction: `x - y > 0`,
|
|
94
|
-
texsCorrection: [`x
|
|
95
|
-
texsAnswer: [`x
|
|
99
|
+
texsCorrection: [`x>y`, `x\\ge y`],
|
|
100
|
+
texsAnswer: [`x>y`, `x\\ge y`, `y<x`, `y\\le x`],
|
|
96
101
|
},
|
|
97
102
|
{
|
|
98
103
|
texInstruction: `0 < x - y`,
|
|
99
|
-
texsCorrection: [`y
|
|
100
|
-
texsAnswer: [`x
|
|
104
|
+
texsCorrection: [`y<x`, `y\\le x`],
|
|
105
|
+
texsAnswer: [`x>y`, `x\\ge y`, `y<x`, `y\\le x`],
|
|
101
106
|
},
|
|
102
107
|
];
|
|
103
108
|
}
|
|
@@ -106,14 +111,14 @@ const getCompareAMinusBQuestion = () => {
|
|
|
106
111
|
{
|
|
107
112
|
texsObjectArray = [
|
|
108
113
|
{
|
|
109
|
-
texInstruction: `x - y \\
|
|
110
|
-
texsCorrection: [`x
|
|
111
|
-
texsAnswer: [`x
|
|
114
|
+
texInstruction: `x - y \\le 0`,
|
|
115
|
+
texsCorrection: [`x\\le y`],
|
|
116
|
+
texsAnswer: [`x\\le y`, `y\\ge x`],
|
|
112
117
|
},
|
|
113
118
|
{
|
|
114
|
-
texInstruction: `0 \\
|
|
115
|
-
texsCorrection: [`y
|
|
116
|
-
texsAnswer: [`x
|
|
119
|
+
texInstruction: `0 \\ge x - y`,
|
|
120
|
+
texsCorrection: [`y\\ge x`],
|
|
121
|
+
texsAnswer: [`x\\le y`, `y\\ge x`],
|
|
117
122
|
},
|
|
118
123
|
];
|
|
119
124
|
}
|
|
@@ -122,14 +127,14 @@ const getCompareAMinusBQuestion = () => {
|
|
|
122
127
|
{
|
|
123
128
|
texsObjectArray = [
|
|
124
129
|
{
|
|
125
|
-
texInstruction: `x - y \\
|
|
126
|
-
texsCorrection: [`x
|
|
127
|
-
texsAnswer: [`x
|
|
130
|
+
texInstruction: `x - y \\ge 0`,
|
|
131
|
+
texsCorrection: [`x\\ge y`],
|
|
132
|
+
texsAnswer: [`x\\ge y`, `y\\le x`],
|
|
128
133
|
},
|
|
129
134
|
{
|
|
130
135
|
texInstruction: `0 \\leq x - y`,
|
|
131
|
-
texsCorrection: [`y
|
|
132
|
-
texsAnswer: [`x
|
|
136
|
+
texsCorrection: [`y\\le x`],
|
|
137
|
+
texsAnswer: [`x\\ge y`, `y\\le x`],
|
|
133
138
|
},
|
|
134
139
|
];
|
|
135
140
|
}
|
|
@@ -152,6 +157,7 @@ const getCompareAMinusBQuestion = () => {
|
|
|
152
157
|
};
|
|
153
158
|
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
154
159
|
const question = {
|
|
160
|
+
answer: getAnswer(identifiers),
|
|
155
161
|
instruction: getInstruction(identifiers),
|
|
156
162
|
keys: ["inf", "sup", "leq", "geq", ...identifiers.names],
|
|
157
163
|
answerFormat: "tex",
|
|
@@ -175,6 +181,4 @@ export const compareAMinusB = {
|
|
|
175
181
|
maxAllowedQuestions: 30,
|
|
176
182
|
getQuestionFromIdentifiers,
|
|
177
183
|
hasHintAndCorrection: true,
|
|
178
|
-
answerType: "QCM",
|
|
179
|
-
isQCM: true,
|
|
180
184
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compareFromPiMinusFrac.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/ordering/compareFromPiMinusFrac.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"compareFromPiMinusFrac.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/ordering/compareFromPiMinusFrac.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AA+IF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAexD,CAAC"}
|
|
@@ -50,9 +50,6 @@ const getAnswer = (identifiers) => {
|
|
|
50
50
|
const { texAnswers } = identifiers;
|
|
51
51
|
return texAnswers[0];
|
|
52
52
|
};
|
|
53
|
-
const isAnswerValid = (ans, { texAnswers }) => {
|
|
54
|
-
return texAnswers.includes(ans);
|
|
55
|
-
};
|
|
56
53
|
const getCompareFromPiMinusFracQuestion = () => {
|
|
57
54
|
const fracsPool = [
|
|
58
55
|
frac(31, 10),
|
|
@@ -134,11 +131,10 @@ export const compareFromPiMinusFrac = {
|
|
|
134
131
|
generator: (nb, opts) => getDistinctQuestions(() => getCompareFromPiMinusFracQuestion(opts), nb, 30),
|
|
135
132
|
qcmTimer: 60,
|
|
136
133
|
freeTimer: 60,
|
|
137
|
-
isAnswerValid,
|
|
138
134
|
getPropositions,
|
|
139
135
|
subject: "Mathématiques",
|
|
140
136
|
maxAllowedQuestions: 30,
|
|
141
137
|
getQuestionFromIdentifiers,
|
|
142
|
-
answerType: "QCU",
|
|
143
138
|
hasHintAndCorrection: true,
|
|
139
|
+
answerType: "QCU",
|
|
144
140
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valuateExpression.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/simplifying/valuateExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"valuateExpression.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/simplifying/valuateExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAyGF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAiBnD,CAAC"}
|
|
@@ -5,7 +5,6 @@ import { add } from "../../../../tree/nodes/operators/addNode.js";
|
|
|
5
5
|
import { power } from "../../../../tree/nodes/operators/powerNode.js";
|
|
6
6
|
import { monom } from "../../../../tree/nodes/polynomials/monomNode.js";
|
|
7
7
|
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
8
|
-
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
9
8
|
const getExpression = (identifiers) => {
|
|
10
9
|
const { a, b, monomFirst } = identifiers;
|
|
11
10
|
return add(monomFirst ? monom(a, 1) : b, monomFirst ? b : monom(a, 1));
|
|
@@ -53,14 +52,6 @@ $$`;
|
|
|
53
52
|
const getKeys = () => {
|
|
54
53
|
return [];
|
|
55
54
|
};
|
|
56
|
-
const isAnswerValid = () => {
|
|
57
|
-
try {
|
|
58
|
-
throw Error("VEA not implemented");
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
return handleVEAError(err);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
55
|
const getValuateExpressionQuestion = () => {
|
|
65
56
|
const a = randint(-9, 10, [0, 1, -1]);
|
|
66
57
|
const b = randint(-9, 10, [0]);
|
|
@@ -93,7 +84,6 @@ export const valuateExpression = {
|
|
|
93
84
|
qcmTimer: 60,
|
|
94
85
|
freeTimer: 60,
|
|
95
86
|
getPropositions,
|
|
96
|
-
isAnswerValid,
|
|
97
87
|
subject: "Mathématiques",
|
|
98
88
|
getInstruction,
|
|
99
89
|
getHint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeLitExpFromFrenchExp.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/writing/writeLitExpFromFrenchExp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAmCrC,KAAK,QAAQ,GACT,UAAU,GACV,SAAS,GACT,KAAK,GACL,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAoEb,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,QAAQ,CAAC;IACvB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/B,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC;AAuRF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"writeLitExpFromFrenchExp.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/writing/writeLitExpFromFrenchExp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAmCrC,KAAK,QAAQ,GACT,UAAU,GACV,SAAS,GACT,KAAK,GACL,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAoEb,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,QAAQ,CAAC;IACvB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/B,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC;AAuRF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAkBxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmPerMinToKmPerHourConversion.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/conversion/kmPerMinToKmPerHourConversion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA2IF,KAAK,OAAO,GAAG;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAgBF,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"kmPerMinToKmPerHourConversion.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/conversion/kmPerMinToKmPerHourConversion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA2IF,KAAK,OAAO,GAAG;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAgBF,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAoBxE,CAAC"}
|
|
@@ -100,7 +100,7 @@ const options = [
|
|
|
100
100
|
export const kmPerMinToKmPerHourConversion = {
|
|
101
101
|
id: "kmPerMinToKmPerHourConversion",
|
|
102
102
|
connector: "=",
|
|
103
|
-
label: "Effectuer des conversions de vitesse ( $x$ km en $y$ min donne une vitesse $V$ en
|
|
103
|
+
label: "Effectuer des conversions de vitesse ( $x$ $\\textrm{km}$ en $y$ $\\textrm{min}$ donne une vitesse $V$ en $\\textrm{km/h}$)",
|
|
104
104
|
isSingleStep: true,
|
|
105
105
|
generator: (nb, opts) => getDistinctQuestions(() => getKmPerMinToKmPerHourConversionQuestion(opts), nb),
|
|
106
106
|
options,
|
|
@@ -112,5 +112,4 @@ export const kmPerMinToKmPerHourConversion = {
|
|
|
112
112
|
getQuestionFromIdentifiers,
|
|
113
113
|
hasHintAndCorrection: true,
|
|
114
114
|
shouldHaveCalculator: true,
|
|
115
|
-
answerType: "QCU",
|
|
116
115
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minutesToHours.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/conversion/minutesToHours.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"minutesToHours.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/conversion/minutesToHours.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;AA8LF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAehD,CAAC"}
|
|
@@ -76,13 +76,16 @@ const getPropositions = (n, { answer, ...identifiers }) => {
|
|
|
76
76
|
addValidProp(propositions, answer);
|
|
77
77
|
if (isMinutesToHours) {
|
|
78
78
|
const roundedValue = round(hours.evaluate(), 2);
|
|
79
|
-
const texDecimal = roundedValue.frenchify().split(",")[1];
|
|
80
79
|
tryToAddWrongProp(propositions, `${roundedValue.frenchify()}\\text{h}`);
|
|
81
80
|
tryToAddWrongProp(propositions, `${multiply(minutes.evaluate(), 60).simplify().toTex()}\\text{h}`);
|
|
82
81
|
tryToAddWrongProp(propositions, `${frac(60, minutes).toTex()}\\text{h}`);
|
|
83
82
|
propWhile(propositions, n, () => {
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
const texDecimal = roundedValue.frenchify().split(",")[1];
|
|
84
|
+
if (texDecimal) {
|
|
85
|
+
tryToAddWrongProp(propositions, `${0},${texDecimal}\\text{h}`);
|
|
86
|
+
tryToAddWrongProp(propositions, `${1},${texDecimal}\\text{h}`);
|
|
87
|
+
}
|
|
88
|
+
tryToAddWrongProp(propositions, `${randint(1, 20)}\\text{h}`);
|
|
86
89
|
});
|
|
87
90
|
}
|
|
88
91
|
else {
|
|
@@ -146,5 +149,4 @@ export const minutesToHours = {
|
|
|
146
149
|
getQuestionFromIdentifiers,
|
|
147
150
|
hasHintAndCorrection: true,
|
|
148
151
|
shouldHaveCalculator: true,
|
|
149
|
-
answerType: "QCU",
|
|
150
152
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secondsToHours.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/conversion/secondsToHours.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"secondsToHours.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/conversion/secondsToHours.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;AA8LF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAgBhD,CAAC"}
|
|
@@ -76,13 +76,16 @@ const getPropositions = (n, { answer, ...identifiers }) => {
|
|
|
76
76
|
addValidProp(propositions, answer);
|
|
77
77
|
if (isSecondsToHours) {
|
|
78
78
|
const roundedValue = round(hours.evaluate(), 2);
|
|
79
|
-
const texDecimal = roundedValue.frenchify().split(",")[1];
|
|
80
79
|
tryToAddWrongProp(propositions, `${roundedValue.frenchify()}\\text{h}`);
|
|
81
80
|
tryToAddWrongProp(propositions, `${multiply(seconds.evaluate(), 3600).simplify().toTex()}\\text{h}`);
|
|
82
81
|
tryToAddWrongProp(propositions, `${frac(3600, seconds).toTex()}\\text{h}`);
|
|
83
82
|
propWhile(propositions, n, () => {
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
const texDecimal = roundedValue.frenchify().split(",")[1];
|
|
84
|
+
if (texDecimal) {
|
|
85
|
+
tryToAddWrongProp(propositions, `${0},${texDecimal}\\text{h}`);
|
|
86
|
+
tryToAddWrongProp(propositions, `${1},${texDecimal}\\text{h}`);
|
|
87
|
+
}
|
|
88
|
+
tryToAddWrongProp(propositions, `${randint(1, 20)}\\text{h}`);
|
|
86
89
|
});
|
|
87
90
|
}
|
|
88
91
|
else {
|
|
@@ -146,5 +149,4 @@ export const secondsToHours = {
|
|
|
146
149
|
getQuestionFromIdentifiers,
|
|
147
150
|
hasHintAndCorrection: true,
|
|
148
151
|
shouldHaveCalculator: true,
|
|
149
|
-
answerType: "QCU",
|
|
150
152
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"barChartInterpreting.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/dataRepresentations/barChartInterpreting.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,QAAQ,EAKT,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"barChartInterpreting.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/dataRepresentations/barChartInterpreting.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,QAAQ,EAKT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAE5C,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,GAAG,GAAG;IACT,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB,CAAC;AAktBF,KAAK,OAAO,GAAG;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAsBF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAgB/D,CAAC"}
|
|
@@ -8,7 +8,6 @@ import { getDistinctQuestions } from "../../../exercises/utils/getDistinctQuesti
|
|
|
8
8
|
import { randint } from "../../../math/utils/random/randint.js";
|
|
9
9
|
import { GeogebraConstructor } from "../../../geogebra/geogebraConstructor.js";
|
|
10
10
|
import { capitalize } from "../../../utils/strings/capitalize.js";
|
|
11
|
-
import { shuffle } from "../../../utils/alea/shuffle.js";
|
|
12
11
|
class BarChartConstructor {
|
|
13
12
|
static stylesPools = {
|
|
14
13
|
color: [
|
|
@@ -98,7 +97,7 @@ class BarChartConstructor {
|
|
|
98
97
|
}
|
|
99
98
|
static createRandomCategories(dictIsUsingCategory, categoryPropsPool, styleType) {
|
|
100
99
|
const nbCategUsed = Object.keys(dictIsUsingCategory).length;
|
|
101
|
-
const styles =
|
|
100
|
+
const styles = this.stylesPools[styleType].slice(0, nbCategUsed);
|
|
102
101
|
return categoryPropsPool
|
|
103
102
|
.filter((_, i) => dictIsUsingCategory[i])
|
|
104
103
|
.map((props, i) => {
|
|
@@ -357,7 +356,8 @@ const getGGBOptionsVertStacked = (identifiers) => {
|
|
|
357
356
|
}
|
|
358
357
|
function createCommandsForBar(barChart, barIndex) {
|
|
359
358
|
//const bar = barChart.bars[barIndex];
|
|
360
|
-
const
|
|
359
|
+
const categoriesReversed = barChart.categories.toReversed();
|
|
360
|
+
const commands = categoriesReversed.flatMap((categ, categIndex) => {
|
|
361
361
|
const xRange = getXRangeForBarIndex(barIndex);
|
|
362
362
|
const yRange = getYRangeForCategory(barIndex, categIndex);
|
|
363
363
|
const style = categ.style;
|
|
@@ -366,8 +366,8 @@ const getGGBOptionsVertStacked = (identifiers) => {
|
|
|
366
366
|
`${B} = Polygon((${xRange.min}, ${yRange.min}), (${xRange.min}, ${yRange.max}),(${xRange.max}, ${yRange.max}),(${xRange.max}, ${yRange.min}))`,
|
|
367
367
|
`ShowLabel(${B},false)`,
|
|
368
368
|
style.type === "color"
|
|
369
|
-
? `SetColor(${B}, "${
|
|
370
|
-
: `SetDecoration(${B}, ${
|
|
369
|
+
? `SetColor(${B}, "${categ.style.color}")`
|
|
370
|
+
: `SetDecoration(${B}, ${categ.style.fill})`,
|
|
371
371
|
];
|
|
372
372
|
return barChartCommand;
|
|
373
373
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compareBoxPlot.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/dataRepresentations/compareBoxPlot.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAKF,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAmQF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"compareBoxPlot.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/dataRepresentations/compareBoxPlot.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAKF,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAmQF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAmBhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convexityQuadrinomials.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/convexity/convexityQuadrinomials.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAoBrC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAwIF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"convexityQuadrinomials.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/convexity/convexityQuadrinomials.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAoBrC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAwIF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAcxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equaDiffCheckSolutionFirstOrder.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/equaDiff/equaDiffCheckSolutionFirstOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"equaDiffCheckSolutionFirstOrder.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/equaDiff/equaDiffCheckSolutionFirstOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,6BAA6B,CAAC;AAcrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAE7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,eAAe,CAAC;IACrC,mBAAmB,EAAE,eAAe,CAAC;IACrC,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AA8IF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAajE,CAAC"}
|
|
@@ -106,9 +106,6 @@ const getPropositions = (n, { answer }) => {
|
|
|
106
106
|
tryToAddWrongProp(propositions, "On ne peut pas savoir", "raw");
|
|
107
107
|
return shuffleProps(propositions, n);
|
|
108
108
|
};
|
|
109
|
-
const isAnswerValid = (ans, { answer }) => {
|
|
110
|
-
return ans === answer;
|
|
111
|
-
};
|
|
112
109
|
export const equaDiffCheckSolutionFirstOrder = {
|
|
113
110
|
id: "equaDiffCheckSolutionFirstOrder",
|
|
114
111
|
label: "Vérifier si une fonction est solution d'une équation différentielle du premier ordre",
|
|
@@ -117,7 +114,6 @@ export const equaDiffCheckSolutionFirstOrder = {
|
|
|
117
114
|
qcmTimer: 60,
|
|
118
115
|
freeTimer: 60,
|
|
119
116
|
getPropositions,
|
|
120
|
-
isAnswerValid,
|
|
121
117
|
answerType: "QCU",
|
|
122
118
|
subject: "Mathématiques",
|
|
123
119
|
getQuestionFromIdentifiers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affineAdjustmentComplete.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/affines/affineAdjustmentComplete.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAmBrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AA0JF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"affineAdjustmentComplete.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/affines/affineAdjustmentComplete.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAmBrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AA0JF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,WAAW,CAalE,CAAC"}
|
|
@@ -96,7 +96,6 @@ export const affineAdjustmentCompleteExercise = {
|
|
|
96
96
|
label: "Déterminer l'équation de la droite d'ajustement et le coefficient de détermination",
|
|
97
97
|
isSingleStep: true,
|
|
98
98
|
generator: (nb) => getDistinctQuestions(getAffineAdjustmentCompleteQuestion, nb),
|
|
99
|
-
answerType: "QCU",
|
|
100
99
|
qcmTimer: 60,
|
|
101
100
|
freeTimer: 60,
|
|
102
101
|
getPropositions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordsOfPointOnAffineFindX.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/affines/coordsOfPointOnAffineFindX.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAqIF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"coordsOfPointOnAffineFindX.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/affines/coordsOfPointOnAffineFindX.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAqIF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAc5D,CAAC"}
|