math-exercises 2.2.40 → 2.2.42
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/exercise.d.ts +42 -36
- package/lib/exercises/exercise.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSum.d.ts +4 -1
- package/lib/exercises/math/calcul/fractions/fractionsSum.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSum.js +23 -4
- package/lib/exercises/math/calcul/rounding/rounding.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/distributivity/firstIdentity.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/distributivity/firstIdentity.js +3 -0
- package/lib/exercises/math/derivation/derivative/sqrtCompositionDerivation.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/sqrtCompositionDerivation.js +0 -1
- package/lib/exercises/math/functions/logarithm/log10Simplifying.d.ts.map +1 -1
- package/lib/exercises/math/functions/logarithm/logPowerEquation.d.ts.map +1 -1
- package/lib/exercises/math/percent/evolutionRateFromValues.d.ts.map +1 -1
- package/lib/exercises/math/percent/evolutionRateFromValues.js +2 -2
- package/lib/exercises/math/percent/evolutionToCM.d.ts.map +1 -1
- package/lib/exercises/math/percent/evolutionToCM.js +3 -1
- package/lib/exercises/math/powers/powersDivision.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersPower.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersProduct.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/arithmeticReasonUsage.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/arithmeticReasonUsage.js +1 -0
- package/lib/exercises/math/sequences/arithmetic/recognizeReasonFromFirstTerms.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/recognizeReasonFromFirstTerms.js +3 -1
- package/lib/exercises/math/trigonometry/arcLength.js +1 -1
- package/lib/exercises/math/trigonometry/mainAngleMeasure.d.ts.map +1 -1
- package/lib/exercises/math/trigonometry/mainAngleMeasure.js +22 -9
- package/lib/exercises/utils/getDistinctQuestions.d.ts +1 -1
- package/lib/exercises/utils/getDistinctQuestions.d.ts.map +1 -1
- package/lib/index.d.ts +512 -510
- package/lib/index.d.ts.map +1 -1
- package/lib/math/sets/intervals/intervals.js +1 -1
- package/lib/math/systems/system.d.ts.map +1 -1
- package/lib/math/systems/system.js +29 -7
- package/lib/playground.d.ts.map +1 -1
- package/lib/playground.js +7 -1
- package/lib/server.js +9 -2
- package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/addNode.js +41 -0
- package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/fractionNode.js +19 -7
- package/lib/tree/parsers/latexParser.d.ts.map +1 -1
- package/lib/tree/parsers/latexParser.js +8 -1
- package/lib/tree/parsers/numberParser.js +1 -1
- package/lib/tree/parsers/rationalParser.d.ts +1 -0
- package/lib/tree/parsers/rationalParser.d.ts.map +1 -0
- package/lib/tree/parsers/rationalParser.js +9 -0
- package/package.json +1 -1
|
@@ -4,7 +4,11 @@ export declare const addValidProp: (props: Proposition[], statement: string, for
|
|
|
4
4
|
export declare const addWrongProp: (props: Proposition[], statement: string, format?: "tex" | "raw") => void;
|
|
5
5
|
export declare const tryToAddWrongProp: (props: Proposition[], statement: string, format?: "tex" | "raw") => void;
|
|
6
6
|
export declare const shuffleProps: (props: Proposition[], n: number) => Proposition[];
|
|
7
|
-
export type GeneratorOptions = {
|
|
7
|
+
export type GeneratorOptions = {
|
|
8
|
+
id: string;
|
|
9
|
+
label: string;
|
|
10
|
+
type: "checkbox" | "select";
|
|
11
|
+
};
|
|
8
12
|
export type Proposition = {
|
|
9
13
|
id: string;
|
|
10
14
|
statement: string;
|
|
@@ -37,7 +41,7 @@ export type GeogebraOptions = {
|
|
|
37
41
|
export type KeyboardOptions = {
|
|
38
42
|
parenthesisShouldNotProduceLeftRight?: boolean;
|
|
39
43
|
};
|
|
40
|
-
export interface Question<TIdentifiers = {}> {
|
|
44
|
+
export interface Question<TIdentifiers = {}, TOptions = {}> {
|
|
41
45
|
instruction: string;
|
|
42
46
|
hint?: string;
|
|
43
47
|
correction?: string;
|
|
@@ -54,40 +58,42 @@ export interface Question<TIdentifiers = {}> {
|
|
|
54
58
|
};
|
|
55
59
|
divisionFormat?: "fraction" | "obelus";
|
|
56
60
|
identifiers: TIdentifiers;
|
|
61
|
+
options?: TOptions;
|
|
57
62
|
}
|
|
58
|
-
export type QCMGenerator<TIdentifiers> = (n: number, args: {
|
|
63
|
+
export type QCMGenerator<TIdentifiers, TOptions = {}> = (n: number, args: {
|
|
59
64
|
answer: string;
|
|
60
|
-
} & TIdentifiers) => Proposition[];
|
|
61
|
-
export type VEA<TIdentifiers> = (studentAnswer: string, args: {
|
|
65
|
+
} & TIdentifiers, options?: TOptions) => Proposition[];
|
|
66
|
+
export type VEA<TIdentifiers, TOptions = {}> = (studentAnswer: string, args: {
|
|
62
67
|
answer: string;
|
|
63
|
-
} & TIdentifiers) => boolean;
|
|
64
|
-
export type GGBVEA<TIdentifiers> = (studentAnswer: string[], args: {
|
|
68
|
+
} & TIdentifiers, options?: TOptions) => boolean;
|
|
69
|
+
export type GGBVEA<TIdentifiers, TOptions = {}> = (studentAnswer: string[], args: {
|
|
65
70
|
ggbAnswer: string[];
|
|
66
|
-
} & TIdentifiers) => boolean;
|
|
67
|
-
export type QuestionGenerator<TIdentifiers = {}, TOptions =
|
|
68
|
-
export type GetHint<TIdentifiers,
|
|
69
|
-
export type GetCorrection<TIdentifiers> = (args: TIdentifiers) => string;
|
|
70
|
-
export type GetInstruction<TIdentifiers> = (args: TIdentifiers) => string;
|
|
71
|
-
export type GetAnswer<TIdentifiers> = (args: TIdentifiers) => string;
|
|
72
|
-
export type GetKeys<TIdentifiers> = (args: TIdentifiers) => (KeyId | KeyProps)[];
|
|
73
|
-
export type GetGGBAnswer<TIdentifiers> = (args: TIdentifiers) => string[];
|
|
74
|
-
export type GetGGBOptions<TIdentifiers> = (args: TIdentifiers) => GeogebraOptions;
|
|
75
|
-
export type GetStudentGGBOptions<TIdentifiers> = (args: TIdentifiers) => GeogebraOptions;
|
|
76
|
-
export type RebuildIdentifiers<TIdentifiers> = (oldIdentifiers: any) => TIdentifiers;
|
|
77
|
-
export type GetQuestionFromIdentifiers<TIdentifiers> = (identifiers: TIdentifiers) => Question<TIdentifiers>;
|
|
78
|
-
export type QuestionHotFix<TIdentifiers> = (q: Question<TIdentifiers
|
|
71
|
+
} & TIdentifiers, options?: TOptions) => boolean;
|
|
72
|
+
export type QuestionGenerator<TIdentifiers = {}, TOptions = any> = (opts?: TOptions) => Question<TIdentifiers, TOptions>;
|
|
73
|
+
export type GetHint<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
74
|
+
export type GetCorrection<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
75
|
+
export type GetInstruction<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
76
|
+
export type GetAnswer<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
77
|
+
export type GetKeys<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => (KeyId | KeyProps)[];
|
|
78
|
+
export type GetGGBAnswer<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string[];
|
|
79
|
+
export type GetGGBOptions<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => GeogebraOptions;
|
|
80
|
+
export type GetStudentGGBOptions<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => GeogebraOptions;
|
|
81
|
+
export type RebuildIdentifiers<TIdentifiers, TOptions = {}> = (oldIdentifiers: any, options?: TOptions) => TIdentifiers;
|
|
82
|
+
export type GetQuestionFromIdentifiers<TIdentifiers, TOptions = {}> = (identifiers: TIdentifiers, options?: TOptions) => Question<TIdentifiers>;
|
|
83
|
+
export type QuestionHotFix<TIdentifiers, TOptions = {}> = (q: Question<TIdentifiers>, options?: TOptions) => Question<TIdentifiers>;
|
|
79
84
|
type PDFOptions = {
|
|
80
85
|
shouldSpreadPropositions?: boolean;
|
|
81
86
|
};
|
|
82
|
-
export interface Exercise<TIdentifiers = {}> {
|
|
87
|
+
export interface Exercise<TIdentifiers = {}, TOptions = {}> {
|
|
83
88
|
id: string;
|
|
84
89
|
isSingleStep: boolean;
|
|
85
90
|
label: string;
|
|
86
91
|
pdfOptions?: PDFOptions;
|
|
92
|
+
options?: GeneratorOptions[];
|
|
87
93
|
sections?: (MathSection | PCSection)[];
|
|
88
94
|
levels?: MathLevel[];
|
|
89
95
|
connector?: "=" | "\\iff" | "\\approx";
|
|
90
|
-
generator: (n: number) => Question<TIdentifiers>[];
|
|
96
|
+
generator: (n: number, opts?: TOptions) => Question<TIdentifiers, TOptions>[];
|
|
91
97
|
maxAllowedQuestions?: number;
|
|
92
98
|
answerType?: "GGB" | "QCM" | "free" | "QCU";
|
|
93
99
|
isQCM?: boolean;
|
|
@@ -96,23 +102,23 @@ export interface Exercise<TIdentifiers = {}> {
|
|
|
96
102
|
ggbTimer?: number;
|
|
97
103
|
getPropositions?: QCMGenerator<{
|
|
98
104
|
answer: string;
|
|
99
|
-
} & TIdentifiers>;
|
|
100
|
-
isAnswerValid?: VEA<TIdentifiers>;
|
|
101
|
-
isGGBAnswerValid?: GGBVEA<TIdentifiers>;
|
|
105
|
+
} & TIdentifiers, TOptions>;
|
|
106
|
+
isAnswerValid?: VEA<TIdentifiers, TOptions>;
|
|
107
|
+
isGGBAnswerValid?: GGBVEA<TIdentifiers, TOptions>;
|
|
102
108
|
hasGeogebra?: boolean;
|
|
103
109
|
subject: "Mathématiques" | "Chimie" | "Physique";
|
|
104
110
|
hasHintAndCorrection?: boolean;
|
|
105
|
-
getInstruction?: GetInstruction<TIdentifiers>;
|
|
106
|
-
getHint?: GetHint<TIdentifiers>;
|
|
107
|
-
getCorrection?: GetCorrection<TIdentifiers>;
|
|
108
|
-
getKeys?: GetKeys<TIdentifiers>;
|
|
109
|
-
getAnswer?: GetAnswer<TIdentifiers>;
|
|
110
|
-
getGGBAnswer?: GetGGBAnswer<TIdentifiers>;
|
|
111
|
-
getGGBOptions?: GetGGBOptions<TIdentifiers>;
|
|
112
|
-
getStudentGGBOptions?: GetStudentGGBOptions<TIdentifiers>;
|
|
113
|
-
rebuildIdentifiers?: RebuildIdentifiers<TIdentifiers>;
|
|
114
|
-
getQuestionFromIdentifiers?: GetQuestionFromIdentifiers<TIdentifiers>;
|
|
115
|
-
hotFix?: QuestionHotFix<TIdentifiers>;
|
|
111
|
+
getInstruction?: GetInstruction<TIdentifiers, TOptions>;
|
|
112
|
+
getHint?: GetHint<TIdentifiers, TOptions>;
|
|
113
|
+
getCorrection?: GetCorrection<TIdentifiers, TOptions>;
|
|
114
|
+
getKeys?: GetKeys<TIdentifiers, TOptions>;
|
|
115
|
+
getAnswer?: GetAnswer<TIdentifiers, TOptions>;
|
|
116
|
+
getGGBAnswer?: GetGGBAnswer<TIdentifiers, TOptions>;
|
|
117
|
+
getGGBOptions?: GetGGBOptions<TIdentifiers, TOptions>;
|
|
118
|
+
getStudentGGBOptions?: GetStudentGGBOptions<TIdentifiers, TOptions>;
|
|
119
|
+
rebuildIdentifiers?: RebuildIdentifiers<TIdentifiers, TOptions>;
|
|
120
|
+
getQuestionFromIdentifiers?: GetQuestionFromIdentifiers<TIdentifiers, TOptions>;
|
|
121
|
+
hotFix?: QuestionHotFix<TIdentifiers, TOptions>;
|
|
116
122
|
}
|
|
117
123
|
export type MathLevel = "6ème" | "5ème" | "4ème" | "3ème" | "2nde" | "1reTech" | "1reESM" | "1reSpé" | "TermSpé" | "TermTech" | "MathExp" | "MathComp" | "CAP" | "2ndPro" | "1rePro" | "TermPro";
|
|
118
124
|
export type MathSection = "Aires" | "Arithmétique" | "Calcul littéral" | "Calculs" | "Combinatoire et dénombrement" | "Conversions" | "Dérivation" | "Droites" | "Ensembles et intervalles" | "Équations" | "Équations différentielles" | "Exponentielle" | "Fonction cube" | "Fonction inverse" | "Fonctions" | "Fonctions affines" | "Fonctions de référence" | "Fractions" | "Géométrie cartésienne" | "Géométrie euclidienne" | "Inéquations" | "Intégration" | "Limites" | "Logarithme népérien" | "Logarithme décimal" | "Matrices" | "Nombres complexes" | "Périmètres" | "Pourcentages" | "Primitives" | "Probabilités" | "Produit scalaire" | "Proportionnalité" | "Python" | "Puissances" | "Python" | "Racines carrées" | "Second degré" | "Statistiques" | "Suites" | "Systèmes" | "Théorème de Pythagore" | "Théorème de Thalès" | "Trigonométrie" | "Valeur absolue" | "Vecteurs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,eAAO,MAAM,YAAY,UAChB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAQtB,CAAC;AACF,eAAO,MAAM,YAAY,UAChB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAQtB,CAAC;AACF,eAAO,MAAM,iBAAiB,UACrB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAUtB,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,WAAW,EAAE,KAAK,MAAM,kBAE3D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,9 @@ type Identifiers = {
|
|
|
3
3
|
rational: [number, number];
|
|
4
4
|
rational2: [number, number];
|
|
5
5
|
};
|
|
6
|
-
|
|
6
|
+
type Options = {
|
|
7
|
+
allowNonIrreductible: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const fractionsSum: Exercise<Identifiers, Options>;
|
|
7
10
|
export {};
|
|
8
11
|
//# sourceMappingURL=fractionsSum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fractionsSum.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionsSum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"fractionsSum.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionsSum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AA+EF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAevD,CAAC"}
|
|
@@ -5,8 +5,9 @@ const exercise_1 = require("../../../../exercises/exercise");
|
|
|
5
5
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
6
|
const rational_1 = require("../../../../math/numbers/rationals/rational");
|
|
7
7
|
const addNode_1 = require("../../../../tree/nodes/operators/addNode");
|
|
8
|
+
const latexParser_1 = require("../../../../tree/parsers/latexParser");
|
|
8
9
|
const shuffle_1 = require("../../../../utils/alea/shuffle");
|
|
9
|
-
const getFractionsSum = () => {
|
|
10
|
+
const getFractionsSum = (opts) => {
|
|
10
11
|
const rational = rational_1.RationalConstructor.randomIrreductible();
|
|
11
12
|
const rational2 = rational_1.RationalConstructor.randomIrreductible();
|
|
12
13
|
const statementTree = new addNode_1.AddNode(rational.toTree(), rational2.toTree());
|
|
@@ -36,15 +37,32 @@ const getPropositions = (n, { answer, rational, rational2 }) => {
|
|
|
36
37
|
}
|
|
37
38
|
return (0, shuffle_1.shuffle)(propositions);
|
|
38
39
|
};
|
|
39
|
-
const isAnswerValid = (ans, { rational, rational2 }) => {
|
|
40
|
+
const isAnswerValid = (ans, { rational, rational2 }, opts) => {
|
|
40
41
|
const rationalA = new rational_1.Rational(rational[0], rational[1]);
|
|
41
42
|
const rationalB = new rational_1.Rational(rational2[0], rational2[1]);
|
|
43
|
+
const allow = opts?.allowNonIrreductible;
|
|
42
44
|
const answerTree = rationalA
|
|
43
45
|
.add(rationalB)
|
|
44
46
|
.toTree({ allowFractionToDecimal: true });
|
|
45
47
|
const texs = answerTree.toAllValidTexs();
|
|
46
|
-
|
|
48
|
+
if (allow)
|
|
49
|
+
try {
|
|
50
|
+
const parsed = (0, latexParser_1.parseLatex)(ans).simplify().toTex();
|
|
51
|
+
return texs.includes(parsed);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
else
|
|
57
|
+
return texs.includes(ans);
|
|
47
58
|
};
|
|
59
|
+
const options = [
|
|
60
|
+
{
|
|
61
|
+
id: "allowNonIrreductible",
|
|
62
|
+
label: "Autoriser les fractions non réduites",
|
|
63
|
+
type: "checkbox",
|
|
64
|
+
},
|
|
65
|
+
];
|
|
48
66
|
exports.fractionsSum = {
|
|
49
67
|
id: "fractionsSum",
|
|
50
68
|
connector: "=",
|
|
@@ -52,10 +70,11 @@ exports.fractionsSum = {
|
|
|
52
70
|
levels: ["4ème", "3ème", "2nde", "CAP", "2ndPro", "1rePro"],
|
|
53
71
|
sections: ["Fractions"],
|
|
54
72
|
isSingleStep: false,
|
|
55
|
-
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFractionsSum, nb),
|
|
73
|
+
generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getFractionsSum(opts), nb),
|
|
56
74
|
qcmTimer: 60,
|
|
57
75
|
freeTimer: 60,
|
|
58
76
|
getPropositions,
|
|
59
77
|
isAnswerValid,
|
|
60
78
|
subject: "Mathématiques",
|
|
79
|
+
options,
|
|
61
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rounding.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/rounding/rounding.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"rounding.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/rounding/rounding.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AA+ElC,KAAK,WAAW,GAAG;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAgDF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAe7C,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAehD,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAejD,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAejD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAkB9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firstIdentity.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/distributivity/firstIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,YAAY,EAEZ,iBAAiB,EACjB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAYlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,WAAW,CA6DnE,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,WAAW,CAkClE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,GAAG,CAAC,WAAW,CAKvD,CAAC;
|
|
1
|
+
{"version":3,"file":"firstIdentity.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/distributivity/firstIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,YAAY,EAEZ,iBAAiB,EACjB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAYlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,WAAW,CA6DnE,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,WAAW,CAkClE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,GAAG,CAAC,WAAW,CAKvD,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAc/C,CAAC"}
|
|
@@ -85,6 +85,9 @@ const isFirstIdentityAnswerValid = (ans, { a, b }) => {
|
|
|
85
85
|
return texs.includes(ans);
|
|
86
86
|
};
|
|
87
87
|
exports.isFirstIdentityAnswerValid = isFirstIdentityAnswerValid;
|
|
88
|
+
const tests = () => {
|
|
89
|
+
//si identifiers = x,y alors questions devrait etre x,y et vea devrait accepter x,y,z
|
|
90
|
+
};
|
|
88
91
|
exports.firstIdentity = {
|
|
89
92
|
id: "idRmq1",
|
|
90
93
|
connector: "=",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqrtCompositionDerivation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/derivative/sqrtCompositionDerivation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AASlC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"sqrtCompositionDerivation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/derivative/sqrtCompositionDerivation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AASlC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAmEF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAc3D,CAAC"}
|
|
@@ -41,7 +41,6 @@ const isAnswerValid = (ans, { answer, affineA, affineB }) => {
|
|
|
41
41
|
try {
|
|
42
42
|
const parsed = (0, latexParser_1.parseLatex)(ans);
|
|
43
43
|
const simplified = parsed.simplify();
|
|
44
|
-
console.log(simplified.toTex());
|
|
45
44
|
return simplified.toTex() === answer;
|
|
46
45
|
}
|
|
47
46
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log10Simplifying.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/logarithm/log10Simplifying.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"log10Simplifying.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/logarithm/log10Simplifying.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AA8FF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAiBrD,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAiBnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logPowerEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/logarithm/logPowerEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAgBlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"logPowerEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/logarithm/logPowerEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAgBlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AA0GF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAelD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAkBpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolutionRateFromValues.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/evolutionRateFromValues.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;
|
|
1
|
+
{"version":3,"file":"evolutionRateFromValues.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/evolutionRateFromValues.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAoGF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAiBzD,CAAC"}
|
|
@@ -38,7 +38,7 @@ t = \\frac{V_a-V_d}{V_d}\\times 100
|
|
|
38
38
|
$$`;
|
|
39
39
|
};
|
|
40
40
|
const getCorrection = (identifiers) => {
|
|
41
|
-
const answer =
|
|
41
|
+
const answer = (0, round_1.round)(((identifiers.vf - identifiers.vd) / identifiers.vd) * 100, 2).frenchify();
|
|
42
42
|
return `Si une valeur passe d'une valeur de départ $V_d$ à une valeur d'arrivée $V_a$, alors le taux d'évolution $t$ en pourcentage est donné par la formule :
|
|
43
43
|
|
|
44
44
|
$$
|
|
@@ -47,7 +47,7 @@ $$
|
|
|
47
47
|
|
|
48
48
|
Ici, on a $V_d = ${identifiers.vd.frenchify()}$ et $V_a = ${identifiers.vf.frenchify()}$.
|
|
49
49
|
|
|
50
|
-
Donc, le taux d'évolution est :
|
|
50
|
+
Donc, le taux d'évolution, en pourcentage, est :
|
|
51
51
|
|
|
52
52
|
${(0, alignTex_1.alignTex)([
|
|
53
53
|
[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolutionToCM.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/evolutionToCM.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"evolutionToCM.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/evolutionToCM.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAQlC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAuEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAc/C,CAAC"}
|
|
@@ -5,6 +5,7 @@ const exercise_1 = require("../../../exercises/exercise");
|
|
|
5
5
|
const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
|
|
6
6
|
const randint_1 = require("../../../math/utils/random/randint");
|
|
7
7
|
const round_1 = require("../../../math/utils/round");
|
|
8
|
+
const numberParser_1 = require("../../../tree/parsers/numberParser");
|
|
8
9
|
const getEvolutionToCmQuestion = () => {
|
|
9
10
|
const evolution = (0, randint_1.randint)(-99, 101, [0]);
|
|
10
11
|
const isHausse = evolution > 0;
|
|
@@ -42,7 +43,8 @@ const getPropositions = (n, { answer, evolution }) => {
|
|
|
42
43
|
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
43
44
|
};
|
|
44
45
|
const isAnswerValid = (ans, { answer }) => {
|
|
45
|
-
|
|
46
|
+
const parsed = (0, numberParser_1.numberParser)(ans);
|
|
47
|
+
return parsed === answer;
|
|
46
48
|
};
|
|
47
49
|
exports.evolutionToCM = {
|
|
48
50
|
id: "evolutionToCM",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersDivision.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersDivision.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,QAAQ,EAQT,MAAM,gBAAgB,CAAC;AAGxB,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;
|
|
1
|
+
{"version":3,"file":"powersDivision.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersDivision.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,QAAQ,EAQT,MAAM,gBAAgB,CAAC;AAGxB,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAyFF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CA6BhD,CAAC;AACF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAkBrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersPower.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersPower.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACL,QAAQ,EAST,MAAM,gBAAgB,CAAC;AAExB,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;
|
|
1
|
+
{"version":3,"file":"powersPower.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersPower.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACL,QAAQ,EAST,MAAM,gBAAgB,CAAC;AAExB,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAyDF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CA6BlD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAiB7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersProduct.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,QAAQ,EAQT,MAAM,gBAAgB,CAAC;AAIxB,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;
|
|
1
|
+
{"version":3,"file":"powersProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersProduct.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,QAAQ,EAQT,MAAM,gBAAgB,CAAC;AAIxB,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA+EF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CA8BpD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAkB/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arithmeticReasonUsage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticReasonUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAIlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"arithmeticReasonUsage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticReasonUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAIlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAoCF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAavD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recognizeReasonFromFirstTerms.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/recognizeReasonFromFirstTerms.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"recognizeReasonFromFirstTerms.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/recognizeReasonFromFirstTerms.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAKlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAqCF,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,WAAW,CAc/D,CAAC"}
|
|
@@ -4,6 +4,7 @@ exports.recognizeReasonFromFirstTerms = void 0;
|
|
|
4
4
|
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
5
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
6
|
const randint_1 = require("../../../../math/utils/random/randint");
|
|
7
|
+
const numberParser_1 = require("../../../../tree/parsers/numberParser");
|
|
7
8
|
const getRecognizeReasonFromFirstTermsQuestion = () => {
|
|
8
9
|
const firstTerm = (0, randint_1.randint)(1, 20);
|
|
9
10
|
const reason = (0, randint_1.randint)(-5, 6, [0]);
|
|
@@ -28,7 +29,8 @@ const getPropositions = (n, { answer }) => {
|
|
|
28
29
|
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
29
30
|
};
|
|
30
31
|
const isAnswerValid = (ans, { answer }) => {
|
|
31
|
-
|
|
32
|
+
const parsed = (0, numberParser_1.numberParser)(ans);
|
|
33
|
+
return parsed === answer;
|
|
32
34
|
};
|
|
33
35
|
exports.recognizeReasonFromFirstTerms = {
|
|
34
36
|
id: "recognizeReasonFromFirstTerms",
|
|
@@ -37,7 +37,7 @@ const getAnswer = (identifiers) => {
|
|
|
37
37
|
return getAnswerNode(identifiers).toTex();
|
|
38
38
|
};
|
|
39
39
|
const getInstruction = (identifiers) => {
|
|
40
|
-
return `Soit $\\mathcal C$ un cercle de centre $O$ et de rayon $${identifiers.radius}$. Soient $A$ et $B$ deux points sur ce cercle. L'angle au centre $\\widehat{
|
|
40
|
+
return `Soit $\\mathcal C$ un cercle de centre $O$ et de rayon $${identifiers.radius}$. Soient $A$ et $B$ deux points sur ce cercle. L'angle au centre $\\widehat{AOB}$ vaut $${identifiers.isThetaInDegree
|
|
41
41
|
? new degree_1.DegreeNode(identifiers.thetaInDegree).toTex()
|
|
42
42
|
: nodeConstructor_1.NodeConstructor.fromIdentifiers(identifiers.thetaInRadNodeIds).toTex() +
|
|
43
43
|
"\\ \\text{rad}"}$. Quelle est la longueur de l'arc de cercle $\\overset{\\Large \\frown}{AB}$ ?`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mainAngleMeasure.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/mainAngleMeasure.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"mainAngleMeasure.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/mainAngleMeasure.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,0BAA0B,CAAC;AAelC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AA4FF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAiBlD,CAAC"}
|
|
@@ -9,6 +9,7 @@ const nodeConstructor_1 = require("../../../tree/nodes/nodeConstructor");
|
|
|
9
9
|
const piNode_1 = require("../../../tree/nodes/numbers/piNode");
|
|
10
10
|
const addNode_1 = require("../../../tree/nodes/operators/addNode");
|
|
11
11
|
const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
|
|
12
|
+
const latexParser_1 = require("../../../tree/parsers/latexParser");
|
|
12
13
|
const random_1 = require("../../../utils/alea/random");
|
|
13
14
|
const getPropositions = (n, { answer, degree }) => {
|
|
14
15
|
const propositions = [];
|
|
@@ -42,16 +43,27 @@ ${angle.toTex()}
|
|
|
42
43
|
$$
|
|
43
44
|
`;
|
|
44
45
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
const getHint = (identifiers) => {
|
|
47
|
+
const angle = nodeConstructor_1.NodeConstructor.fromIdentifiers(identifiers.nodeIds);
|
|
48
|
+
return `La mesure principale d'un angle en radian est sa valeur appartenant à l'intervalle $]-\\pi; \\pi]$. Il faut donc ajouter (ou retirer) $2\\pi$ à $${angle.toTex()}$ jusqu'à ce que le résultat soit dans cet intervalle.`;
|
|
49
|
+
};
|
|
50
|
+
const getCorrection = (identifiers) => {
|
|
51
|
+
return `a`;
|
|
52
|
+
};
|
|
49
53
|
const getKeys = (identifiers) => {
|
|
50
54
|
return ["pi"];
|
|
51
55
|
};
|
|
52
56
|
const isAnswerValid = (ans, { answer, degree }) => {
|
|
53
57
|
const value = remarkableValues_1.mainTrigoValues.find((e) => e.degree === degree);
|
|
54
|
-
|
|
58
|
+
try {
|
|
59
|
+
const parsed = (0, latexParser_1.parseLatex)(ans);
|
|
60
|
+
const simplified = parsed.simplify().toTex();
|
|
61
|
+
return simplified === answer;
|
|
62
|
+
// return value.angle.toAllValidTexs().includes(ans);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
55
67
|
};
|
|
56
68
|
const getMainAngleMeasureQuestion = () => {
|
|
57
69
|
const value = (0, random_1.random)(remarkableValues_1.mainTrigoValues);
|
|
@@ -68,8 +80,8 @@ const getMainAngleMeasureQuestion = () => {
|
|
|
68
80
|
keys: getKeys(identifiers),
|
|
69
81
|
answerFormat: "tex",
|
|
70
82
|
identifiers,
|
|
71
|
-
|
|
72
|
-
|
|
83
|
+
hint: getHint(identifiers),
|
|
84
|
+
correction: getCorrection(identifiers),
|
|
73
85
|
};
|
|
74
86
|
return question;
|
|
75
87
|
};
|
|
@@ -85,7 +97,8 @@ exports.mainAngleMeasure = {
|
|
|
85
97
|
getPropositions,
|
|
86
98
|
isAnswerValid,
|
|
87
99
|
subject: "Mathématiques",
|
|
88
|
-
|
|
89
|
-
|
|
100
|
+
getHint,
|
|
101
|
+
getCorrection,
|
|
90
102
|
getAnswer,
|
|
103
|
+
hasHintAndCorrection: true,
|
|
91
104
|
};
|
|
@@ -7,5 +7,5 @@ export declare function equalTab<T>(array1: T[], array2: T[]): boolean;
|
|
|
7
7
|
* @param max included
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
|
-
export declare const getDistinctQuestions: (generator: () => Question<any>, nb: number, max?: number, discriminator?: ((q1: Question<any>, q2: Question<any>) => boolean) | undefined) => Question<any>[];
|
|
10
|
+
export declare const getDistinctQuestions: (generator: () => Question<any, any>, nb: number, max?: number, discriminator?: ((q1: Question<any, any>, q2: Question<any, any>) => boolean) | undefined) => Question<any, any>[];
|
|
11
11
|
//# sourceMappingURL=getDistinctQuestions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDistinctQuestions.d.ts","sourceRoot":"","sources":["../../../src/exercises/utils/getDistinctQuestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAOnD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,cACpB,MAAM,SAAS,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"getDistinctQuestions.d.ts","sourceRoot":"","sources":["../../../src/exercises/utils/getDistinctQuestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAOnD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,cACpB,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,MAC/B,MAAM,QACJ,MAAM,wBACS,SAAS,GAAG,EAAE,GAAG,CAAC,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,kBAC1E,SAAS,GAAG,EAAE,GAAG,CAAC,EAapB,CAAC"}
|