math-exercises 3.0.177 → 3.0.178

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.
Files changed (95) hide show
  1. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.js +1 -1
  2. package/lib/exercises/math/functions/trinoms/sign/index.d.ts +1 -0
  3. package/lib/exercises/math/functions/trinoms/sign/index.d.ts.map +1 -1
  4. package/lib/exercises/math/functions/trinoms/sign/index.js +1 -0
  5. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.d.ts +8 -0
  6. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.d.ts.map +1 -0
  7. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.js +233 -0
  8. package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.d.ts.map +1 -1
  9. package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.js +10 -10
  10. package/lib/exercises/math/geometry/quadrilaterals/parallelogramAngles.js +8 -8
  11. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.js +6 -6
  12. package/lib/exercises/math/geometry/triangles/triangleThirdAngleValue.js +8 -8
  13. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.js +1 -1
  14. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.js +2 -2
  15. package/lib/exercises/math/geometry/vectors/scalarProduct/angleFromScalarProduct.js +2 -2
  16. package/lib/exercises/math/probaStat/randomVariable/index.d.ts.map +1 -1
  17. package/lib/exercises/math/probaStat/randomVariable/index.js +1 -0
  18. package/lib/exercises/math/python/index.d.ts +1 -0
  19. package/lib/exercises/math/python/index.d.ts.map +1 -1
  20. package/lib/exercises/math/python/index.js +1 -0
  21. package/lib/exercises/math/python/sequences/pySequenceThresholdInstructionCompletion.d.ts.map +1 -1
  22. package/lib/exercises/math/python/sequences/pySequenceThresholdInstructionCompletion.js +11 -8
  23. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFromTwoTerms.d.ts.map +1 -1
  24. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFromTwoTerms.js +4 -3
  25. package/lib/exercises/math/sequences/arithmetic/index.d.ts +4 -3
  26. package/lib/exercises/math/sequences/arithmetic/index.d.ts.map +1 -1
  27. package/lib/exercises/math/sequences/arithmetic/index.js +4 -3
  28. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindExplicitFormulaFromSituation.d.ts.map +1 -1
  29. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindExplicitFormulaFromSituation.js +3 -2
  30. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindRankFromSituation.d.ts.map +1 -1
  31. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindRankFromSituation.js +8 -6
  32. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindThresholdFromSituation.d.ts.map +1 -1
  33. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindThresholdFromSituation.js +6 -5
  34. package/lib/exercises/math/sequences/arithmetic/situations/index.d.ts +0 -2
  35. package/lib/exercises/math/sequences/arithmetic/situations/index.d.ts.map +1 -1
  36. package/lib/exercises/math/sequences/arithmetic/situations/index.js +2 -2
  37. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.d.ts +1 -0
  38. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.d.ts.map +1 -1
  39. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.js +65 -14
  40. package/lib/exercises/math/sequences/arithmetic/sum/index.d.ts +0 -1
  41. package/lib/exercises/math/sequences/arithmetic/sum/index.d.ts.map +1 -1
  42. package/lib/exercises/math/sequences/arithmetic/sum/index.js +1 -1
  43. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.d.ts +14 -0
  44. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.d.ts.map +1 -0
  45. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.js +291 -0
  46. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoTerms.d.ts.map +1 -1
  47. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoTerms.js +4 -3
  48. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.d.ts +15 -0
  49. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.d.ts.map +1 -0
  50. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.js +249 -0
  51. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoTerms.js +1 -1
  52. package/lib/exercises/math/sequences/geometric/index.d.ts +6 -2
  53. package/lib/exercises/math/sequences/geometric/index.d.ts.map +1 -1
  54. package/lib/exercises/math/sequences/geometric/index.js +6 -2
  55. package/lib/exercises/math/sequences/geometric/situations/geometricFindExplicitFormulaFromSituation.d.ts.map +1 -1
  56. package/lib/exercises/math/sequences/geometric/situations/geometricFindExplicitFormulaFromSituation.js +3 -2
  57. package/lib/exercises/math/sequences/geometric/situations/geometricFindTermFromSituation.js +1 -1
  58. package/lib/exercises/math/sequences/geometric/sum/geometricComputeSumWithDots.js +2 -2
  59. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.js +2 -2
  60. package/lib/exercises/math/sequences/index.d.ts +1 -0
  61. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  62. package/lib/exercises/math/sequences/index.js +1 -0
  63. package/lib/exercises/math/sequences/seqArithmGeom/seqArithmGeomRecurrenceFormulaUsage.d.ts.map +1 -1
  64. package/lib/exercises/math/sequences/seqArithmGeom/seqArithmGeomRecurrenceFormulaUsage.js +5 -9
  65. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.js +1 -1
  66. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.js +2 -2
  67. package/lib/exercises/pc/snellDescartes.js +2 -2
  68. package/lib/index.d.ts +152 -21
  69. package/lib/index.d.ts.map +1 -1
  70. package/lib/latexTester.d.ts.map +1 -1
  71. package/lib/latexTester.js +8 -5
  72. package/lib/math/polynomials/affine.d.ts +1 -0
  73. package/lib/math/polynomials/affine.d.ts.map +1 -1
  74. package/lib/math/polynomials/affine.js +5 -0
  75. package/lib/math/utils/arithmetic/primeFactors.js +1 -1
  76. package/lib/math/utils/functions/functionComposition.d.ts.map +1 -1
  77. package/lib/math/utils/functions/functionComposition.js +18 -1
  78. package/lib/math/utils/sequences/situations/seqArithmeticSituations.d.ts +18 -4
  79. package/lib/math/utils/sequences/situations/seqArithmeticSituations.d.ts.map +1 -1
  80. package/lib/math/utils/sequences/situations/seqArithmeticSituations.js +437 -336
  81. package/lib/math/utils/sequences/situations/seqArithmeticUtils.d.ts.map +1 -1
  82. package/lib/math/utils/sequences/situations/seqArithmeticUtils.js +3 -1
  83. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts +5 -0
  84. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts.map +1 -1
  85. package/lib/math/utils/sequences/situations/seqGeometricSituations.js +58 -25
  86. package/lib/prototypesEnhancement.d.ts +1 -0
  87. package/lib/prototypesEnhancement.d.ts.map +1 -1
  88. package/lib/prototypesEnhancement.js +3 -0
  89. package/lib/tests/pdfs/mdCodeToLatex.d.ts.map +1 -1
  90. package/lib/tests/pdfs/mdCodeToLatex.js +8 -15
  91. package/lib/tests/questionTest.d.ts.map +1 -1
  92. package/lib/tests/questionTest.js +6 -3
  93. package/lib/tree/nodes/geometry/degree.js +1 -1
  94. package/lib/tree/parsers/degreeParser.js +2 -2
  95. package/package.json +1 -1
@@ -24,7 +24,7 @@ const getInstruction = (identifiers, optsIn) => {
24
24
  const situation = situations[situationIndex];
25
25
  return `${situation.getStrSituation(initial, reason, firstRank, superfluousData)}
26
26
 
27
- Que vaut $u_{${rankAsked}}$ ?`;
27
+ Quel calcul permet de trouver $u_{${rankAsked}}$ ?`;
28
28
  };
29
29
  const getAnswerNode = (identifiers, opts) => {
30
30
  const firstRank = opts?.firstTermRankOne ? 1 : 0;
@@ -185,7 +185,7 @@ const createRandomIdentifiers = (opts) => {
185
185
  const initial = randint(-9, 10, [0]);
186
186
  const signReason = coinFlip() ? 1 : -1;
187
187
  const reason = signReason * randint(2, 6);
188
- const nbTerms = randint(7, 15);
188
+ const nbTerms = randint(5, 9);
189
189
  const minRankDots = firstRank + 2;
190
190
  const lastRank = firstRank + nbTerms - 1;
191
191
  const lowRankDots = randint(minRankDots, Math.min(minRankDots + randint(1, 3), lastRank));
@@ -225,7 +225,7 @@ const options = [
225
225
  generatorOptionFirstTermRankOne,
226
226
  {
227
227
  id: "isGiveCount",
228
- label: "Donner $n$",
228
+ label: "Donner le nombre de termes de la somme dans la consigne",
229
229
  target: GeneratorOptionTarget.generation,
230
230
  type: GeneratorOptionType.checkbox,
231
231
  defaultValue: optsDefault.isGiveCount,
@@ -102,12 +102,12 @@ export const placeFirstSequencePoints = {
102
102
  isGGBAnswerValid,
103
103
  subject: "Mathématiques",
104
104
  getHint,
105
- getInstruction,
106
105
  getCorrection,
106
+ hasHintAndCorrection: true,
107
+ getInstruction,
107
108
  getGGBAnswer,
108
109
  getStudentGGBOptions,
109
110
  answerType: "GGB",
110
111
  getQuestionFromIdentifiers,
111
112
  options,
112
- hasHintAndCorrection: true,
113
113
  };
@@ -7,5 +7,6 @@ export * from "./sequenceEvaluation.js";
7
7
  export * from "./sequencePlot.js";
8
8
  export * from "./graph/index.js";
9
9
  export * from "./notation/index.js";
10
+ export * from "./seqArithmGeom/index.js";
10
11
  export * from "./variations/index.js";
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sequences/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sequences/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC"}
@@ -7,5 +7,6 @@ export * from "./sequenceEvaluation.js";
7
7
  export * from "./sequencePlot.js";
8
8
  export * from "./graph/index.js";
9
9
  export * from "./notation/index.js";
10
+ export * from "./seqArithmGeom/index.js";
10
11
  // export * from "./limits/index.js";
11
12
  export * from "./variations/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"seqArithmGeomRecurrenceFormulaUsage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/seqArithmGeom/seqArithmGeomRecurrenceFormulaUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,sBAAsB,EACvB,MAAM,mDAAmD,CAAC;AA8C3D,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAoMF,KAAK,OAAO,GAAG,sBAAsB,GAAG;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC;AAkBxE,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CACxD,WAAW,EACX,OAAO,CAoBR,CAAC"}
1
+ {"version":3,"file":"seqArithmGeomRecurrenceFormulaUsage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/seqArithmGeom/seqArithmGeomRecurrenceFormulaUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,sBAAsB,EACvB,MAAM,mDAAmD,CAAC;AA8C3D,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA+LF,KAAK,OAAO,GAAG,sBAAsB,GAAG;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC;AAkBxE,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CACxD,WAAW,EACX,OAAO,CAoBR,CAAC"}
@@ -26,9 +26,11 @@ const getDictSequenceSlice = (coeffs, rank1, value1, rankAsked) => {
26
26
  return acc;
27
27
  }, { [rank1]: value1.toTree() });
28
28
  };
29
- const getInstruction = (identifiers) => {
29
+ const getInstruction = (identifiers, optsIn) => {
30
+ const opts = optsIn ?? optsDefault;
31
+ const firstRank = opts.firstTermRankOne ? 1 : 0;
30
32
  const { rank1, value1, coeffs, rankAsked } = identifiers;
31
- return `$(u_n)$ est une suite définie par, pour $n\\geq 1$ :
33
+ return `$(u_n)$ est une suite définie par, pour $n\\geq ${firstRank}$ :
32
34
 
33
35
  $$
34
36
  u_{n+1} = ${getNodeUNext(coeffs).toTex()}
@@ -38,11 +40,6 @@ et $u_{${rank1}} = ${value1}$.
38
40
 
39
41
  Calculer le terme $u_{${rankAsked}}$.`;
40
42
  };
41
- const getStartStatement = (identifiers) => {
42
- const { rank1 } = identifiers;
43
- const askedRank = rank1 + 1;
44
- return `u_{${askedRank}}`;
45
- };
46
43
  const getAnswerStuff = (identifiers) => {
47
44
  const { rank1, value1, coeffs, rankAsked } = identifiers;
48
45
  const dictSequenceSlice = getDictSequenceSlice(coeffs, rank1, value1, rankAsked);
@@ -149,7 +146,7 @@ const getSeqArithmGeomRecurrenceFormulaUsageQuestion = (optsIn) => {
149
146
  const distanceOfRankAsked = Number(opts.distanceOfRankAsked);
150
147
  const rank1 = randint(firstRank, 20);
151
148
  const value1 = randint(-10, 10);
152
- const a = randint(-10, 10, [0]);
149
+ const a = randint(-10, 10, [0, 1]);
153
150
  const b = randint(-10, 10, [0]);
154
151
  const coeffs = [a, b];
155
152
  const rankAsked = rank1 + distanceOfRankAsked;
@@ -159,7 +156,6 @@ const getSeqArithmGeomRecurrenceFormulaUsageQuestion = (optsIn) => {
159
156
  const getQuestionFromIdentifiers = (identifiers, opts) => {
160
157
  const question = {
161
158
  instruction: getInstruction(identifiers, opts),
162
- startStatement: getStartStatement(identifiers, opts),
163
159
  answer: getAnswer(identifiers, opts),
164
160
  keys: [],
165
161
  answerFormat: "tex",
@@ -152,7 +152,7 @@ const getKeys = () => {
152
152
  return ["degree", "N", "O", "S", "E"];
153
153
  };
154
154
  const isAnswerValid = (ans, { answer }) => {
155
- const ansRefined = ans.replace("^{\\circ}", "°");
155
+ const ansRefined = ans.replace("^{\\circ}", "°").replace("^\\circ", "°");
156
156
  return ansRefined === answer;
157
157
  };
158
158
  const getSphereLatLonReading2dQuestion = () => {
@@ -21,7 +21,7 @@ const getAnswer = (identifiers) => {
21
21
  const { randAngle, triangleIdentifiers } = identifiers;
22
22
  const triangle = RightTriangleConstructor.fromIdentifiers(triangleIdentifiers);
23
23
  const answer = round(triangle.angles[randAngle].evaluate(), 0);
24
- return answer + "^{\\circ}";
24
+ return answer + "^\\circ";
25
25
  };
26
26
  const getHint = () => {
27
27
  return `On peut utiliser :
@@ -149,7 +149,7 @@ const getPropositions = (n, { answer }) => {
149
149
  const propositions = [];
150
150
  addValidProp(propositions, answer);
151
151
  propWhile(propositions, n, () => {
152
- tryToAddWrongProp(propositions, randint(20, 80) + "^{\\circ}");
152
+ tryToAddWrongProp(propositions, randint(20, 80) + "^\\circ");
153
153
  });
154
154
  return shuffle(propositions);
155
155
  };
@@ -73,7 +73,7 @@ const getAnswer = (identifiers) => {
73
73
  const angleIncidenceRad = (ramdonAngleIncidenceDeg * Math.PI) / 180;
74
74
  const angleRefractionRad = Math.asin((n1 / n2) * Math.sin(angleIncidenceRad));
75
75
  const angleRefractionDeg = (angleRefractionRad * 180) / Math.PI;
76
- const answer = `${frenchify(round(angleRefractionDeg, 1))}^{\\circ}`;
76
+ const answer = `${frenchify(round(angleRefractionDeg, 1))}^\\circ`;
77
77
  return answer;
78
78
  };
79
79
  const getQuestionFromIdentifiers = (identifiers) => {
@@ -103,7 +103,7 @@ const getPropositions = (n, { answer }) => {
103
103
  const propositions = [];
104
104
  addValidProp(propositions, answer);
105
105
  propWhile(propositions, n, () => {
106
- tryToAddWrongProp(propositions, frenchify(round(randint(100, 900) / 10, 1)) + "^{\\circ}");
106
+ tryToAddWrongProp(propositions, frenchify(round(randint(100, 900) / 10, 1)) + "^\\circ");
107
107
  });
108
108
  return shuffle(propositions);
109
109
  };
package/lib/index.d.ts CHANGED
@@ -1480,6 +1480,9 @@ declare const mathExercises: (Exercise<{
1480
1480
  a: number;
1481
1481
  b: number;
1482
1482
  c: number;
1483
+ }, Record<string, string | boolean | string[]>> | Exercise<{
1484
+ affineCoeffs: number[];
1485
+ trinomCoeffs: number[];
1483
1486
  }, Record<string, string | boolean | string[]>> | Exercise<{
1484
1487
  param: string;
1485
1488
  coeffs: number[];
@@ -3252,8 +3255,6 @@ declare const mathExercises: (Exercise<{
3252
3255
  firstValue: number;
3253
3256
  reason: number;
3254
3257
  randValue: number;
3255
- }, Record<string, string | boolean | string[]>> | Exercise<{
3256
- final: number;
3257
3258
  }, Record<string, string | boolean | string[]>> | Exercise<{
3258
3259
  sequences: number[][];
3259
3260
  answerIndex: number;
@@ -3270,13 +3271,6 @@ declare const mathExercises: (Exercise<{
3270
3271
  sequence: number[];
3271
3272
  }, {
3272
3273
  firstTermRankOne?: boolean;
3273
- }> | Exercise<{
3274
- firstRank: number;
3275
- firstValue: number;
3276
- reason: number;
3277
- nbTerms: number;
3278
- }, {
3279
- firstTermRank: string;
3280
3274
  }> | Exercise<{
3281
3275
  firstValue: number;
3282
3276
  reason: number;
@@ -3286,12 +3280,6 @@ declare const mathExercises: (Exercise<{
3286
3280
  rank2: number;
3287
3281
  reason: number;
3288
3282
  value1: number;
3289
- }, Record<string, string | boolean | string[]>> | Exercise<{
3290
- rank1: number;
3291
- value1: number;
3292
- rank2: number;
3293
- value2: number;
3294
- rankAsked: number;
3295
3283
  }, Record<string, string | boolean | string[]>> | Exercise<{
3296
3284
  firstRank: number;
3297
3285
  firstTerm: number;
@@ -3305,7 +3293,52 @@ declare const mathExercises: (Exercise<{
3305
3293
  a: number;
3306
3294
  b: number;
3307
3295
  n: number;
3296
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3297
+ rank1: number;
3298
+ value1: number;
3299
+ rank2: number;
3300
+ value2: number;
3301
+ rankAsked: number;
3302
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3303
+ rank1: number;
3304
+ value1: number;
3305
+ rank2: number;
3306
+ value2: number;
3307
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne> | Exercise<{
3308
+ situationIndex: number;
3309
+ initial: number;
3310
+ reason: number;
3311
+ superfluousData?: import("./math/utils/sequences/situations/seqArithmeticSituations.js").SituationArithmeticSuperfluousData;
3312
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsWithSuperfluousData.js").OptionIsWithSuperfluousData> | Exercise<{
3313
+ situationIndex: number;
3314
+ initial: number;
3315
+ reason: number;
3316
+ superfluousData?: import("./math/utils/sequences/situations/seqArithmeticSituations.js").SituationArithmeticSuperfluousData;
3317
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsWithSuperfluousData.js").OptionIsWithSuperfluousData> | Exercise<{
3318
+ situationIndex: number;
3319
+ initial: number;
3320
+ reason: number;
3321
+ superfluousData?: import("./math/utils/sequences/situations/seqArithmeticSituations.js").SituationArithmeticSuperfluousData;
3322
+ rankAsked: number;
3323
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsWithSuperfluousData.js").OptionIsWithSuperfluousData> | Exercise<{
3324
+ final: number;
3308
3325
  }, Record<string, string | boolean | string[]>> | Exercise<{
3326
+ firstRank: number;
3327
+ firstValue: number;
3328
+ reason: number;
3329
+ nbTerms: number;
3330
+ }, {
3331
+ firstTermRank: string;
3332
+ }> | Exercise<{
3333
+ initial: number;
3334
+ reason: number;
3335
+ nbTerms: number;
3336
+ lowRankDots: number;
3337
+ highRankDots: number;
3338
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & {
3339
+ isGiveCount: boolean;
3340
+ isForceWriteSumWithPlusSymbol: boolean;
3341
+ }> | Exercise<{
3309
3342
  firstRank: number;
3310
3343
  firstTerm: number;
3311
3344
  reason: number;
@@ -3326,9 +3359,6 @@ declare const mathExercises: (Exercise<{
3326
3359
  value1: number;
3327
3360
  reason: number;
3328
3361
  rank1: number;
3329
- }, Record<string, string | boolean | string[]>> | Exercise<{
3330
- raison: number;
3331
- final: number;
3332
3362
  }, Record<string, string | boolean | string[]>> | Exercise<{
3333
3363
  reason: number;
3334
3364
  startRank: number;
@@ -3356,6 +3386,42 @@ declare const mathExercises: (Exercise<{
3356
3386
  }, Record<string, string | boolean | string[]>> | Exercise<{
3357
3387
  sequence: number[];
3358
3388
  reason: number;
3389
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3390
+ q: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3391
+ a: number;
3392
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3393
+ rank1: number;
3394
+ value1: number;
3395
+ rank2: number;
3396
+ value2: number;
3397
+ precisionInitial: number;
3398
+ precisionReason: number;
3399
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne> | Exercise<{
3400
+ rank1: number;
3401
+ value1: number;
3402
+ rank2: number;
3403
+ value2: number;
3404
+ precisionInitial: number;
3405
+ precisionReason: number;
3406
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne> | Exercise<{
3407
+ rank1: number;
3408
+ value1: number;
3409
+ rank2: number;
3410
+ value2: number;
3411
+ precisionInitial: number;
3412
+ precisionReason: number;
3413
+ rankAsked: number;
3414
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne> | Exercise<{
3415
+ rank1: number;
3416
+ value1: number;
3417
+ rank2: number;
3418
+ value2: number;
3419
+ precisionInitial: number;
3420
+ precisionReason: number;
3421
+ rankAsked: number;
3422
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne> | Exercise<{
3423
+ raison: number;
3424
+ final: number;
3359
3425
  }, Record<string, string | boolean | string[]>> | Exercise<{
3360
3426
  firstRank: number;
3361
3427
  firstValue: number;
@@ -3365,9 +3431,30 @@ declare const mathExercises: (Exercise<{
3365
3431
  positiveReason: boolean;
3366
3432
  firstRankOne: boolean;
3367
3433
  }> | Exercise<{
3368
- q: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3369
- a: number;
3370
- }, Record<string, string | boolean | string[]>> | Exercise<{
3434
+ initial: number;
3435
+ reason: number;
3436
+ nbTerms: number;
3437
+ lowRankDots: number;
3438
+ highRankDots: number;
3439
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & {
3440
+ isGiveCount: boolean;
3441
+ }> | Exercise<{
3442
+ situationIndex: number;
3443
+ initial: number;
3444
+ reason: number;
3445
+ superfluousData?: import("./math/utils/sequences/situations/seqGeometricSituations.js").SituationGeometricSuperfluousData;
3446
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsWithSuperfluousData.js").OptionIsWithSuperfluousData> | Exercise<{
3447
+ situationIndex: number;
3448
+ initial: number;
3449
+ reason: number;
3450
+ superfluousData?: import("./math/utils/sequences/situations/seqGeometricSituations.js").SituationGeometricSuperfluousData;
3451
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsWithSuperfluousData.js").OptionIsWithSuperfluousData> | Exercise<{
3452
+ situationIndex: number;
3453
+ initial: number;
3454
+ reason: number;
3455
+ superfluousData?: import("./math/utils/sequences/situations/seqGeometricSituations.js").SituationGeometricSuperfluousData;
3456
+ rankAsked: number;
3457
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsWithSuperfluousData.js").OptionIsWithSuperfluousData> | Exercise<{
3371
3458
  rank: number;
3372
3459
  coeffs: number[];
3373
3460
  }, Record<string, string | boolean | string[]>> | Exercise<{
@@ -3402,6 +3489,13 @@ declare const mathExercises: (Exercise<{
3402
3489
  askedTerm: number;
3403
3490
  }, {
3404
3491
  firstRank: string;
3492
+ }> | Exercise<{
3493
+ rank1: number;
3494
+ value1: number;
3495
+ coeffs: number[];
3496
+ rankAsked: number;
3497
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & {
3498
+ distanceOfRankAsked: string;
3405
3499
  }> | Exercise<{
3406
3500
  formulaIds: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3407
3501
  }, {
@@ -3784,6 +3878,43 @@ declare const mathExercises: (Exercise<{
3784
3878
  m: number;
3785
3879
  p: number;
3786
3880
  }, Record<string, string | boolean | string[]>> | Exercise<{
3881
+ firstValue: number;
3882
+ rankAsked: number;
3883
+ coeffs: number[];
3884
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne> | Exercise<{
3885
+ firstValue: number;
3886
+ coeffs: number[];
3887
+ rankAsked: number;
3888
+ keyIncomplete: string;
3889
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne> | Exercise<{
3890
+ firstValue: number;
3891
+ lengthAsked: number;
3892
+ coeffs: number[];
3893
+ isUseFuncRecur: boolean;
3894
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne> | Exercise<{
3895
+ firstValue: number;
3896
+ lengthAsked: number;
3897
+ coeffs: number[];
3898
+ isAnswerAlternative: boolean;
3899
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsUsePythonDef.js").OptionIsUsePythonDef> | Exercise<{
3900
+ firstValue: number;
3901
+ coeffs: number[];
3902
+ rankAsked: number;
3903
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsUsePythonDef.js").OptionIsUsePythonDef & {
3904
+ typeAsked: string;
3905
+ }> | Exercise<{
3906
+ nAsked: number;
3907
+ cyRandModFour?: number;
3908
+ arrRandForStr: number[];
3909
+ }, import("./exercises/options/optionIsUsePythonDef.js").OptionIsUsePythonDef> | Exercise<{
3910
+ valueThreshold: number;
3911
+ valueLimit: number;
3912
+ nodeIdsDistanceMax: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3913
+ keyIncomplete: string;
3914
+ }, import("./exercises/options/optionFirstTermRankOne.js").OptionFirstTermRankOne & import("./exercises/options/optionIsUsePythonDef.js").OptionIsUsePythonDef & {
3915
+ isUsePythonList: boolean;
3916
+ typeSequence: string;
3917
+ }> | Exercise<{
3787
3918
  p: number;
3788
3919
  n: number;
3789
3920
  wordingType: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAE3D,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAA+B,CAAC;AACnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAA6B,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAE3D,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAA+B,CAAC;AACnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAA6B,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"latexTester.d.ts","sourceRoot":"","sources":["../src/latexTester.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,6BAA2B,YAuLrE,CAAC"}
1
+ {"version":3,"file":"latexTester.d.ts","sourceRoot":"","sources":["../src/latexTester.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,6BAA2B,YA+LrE,CAAC"}
@@ -23,8 +23,10 @@ export const latexTester = (latex, isDefaultInMathMode = false) => {
23
23
  if (inPython || inInlinePython)
24
24
  throw new Error("Dollar in python mode");
25
25
  if (nextChar === "$") {
26
- if (inDollarMode)
27
- throw new Error("Double dollar instead of single");
26
+ if (inDollarMode) {
27
+ const strAround = `${prevChar}${char}${nextChar}${nextNextChar}`;
28
+ throw new Error(`Double dollar instead of single, around ${strAround}, ${latex}`);
29
+ }
28
30
  inDoubleDollarMode = !inDoubleDollarMode;
29
31
  if (inDoubleDollarMode &&
30
32
  nextNextChar !== undefined &&
@@ -57,7 +59,8 @@ export const latexTester = (latex, isDefaultInMathMode = false) => {
57
59
  char !== "\n" &&
58
60
  char !== "\t") {
59
61
  if (!inDollarMode && !inDoubleDollarMode) {
60
- throw new Error(`Number not in math mode, ${char}, ${latex}`);
62
+ const strAround = `${prevChar}${char}${nextChar}${nextNextChar}`;
63
+ throw new Error(`Number not in math mode, ${char}, ${strAround}, ${latex}`);
61
64
  }
62
65
  }
63
66
  //check si charactere spécial
@@ -230,6 +233,8 @@ const validCmds = [
230
233
  "\\newline",
231
234
  "\\lVert",
232
235
  "\\rVert",
236
+ "\\lvert",
237
+ "\\rvert",
233
238
  "\\hline",
234
239
  "\\mathrm",
235
240
  "\\overline",
@@ -265,6 +270,4 @@ const validCmds = [
265
270
  "\\searrow",
266
271
  "\\mapsto",
267
272
  "\\color",
268
- "\\lvert",
269
- "\\rvert",
270
273
  ];
@@ -4,6 +4,7 @@ import { Polynomial } from "./polynomial.js";
4
4
  import { Trinom } from "./trinom.js";
5
5
  export declare abstract class AffineConstructor {
6
6
  static fromCoeffs(coeffs: number[]): Affine;
7
+ static randomNiceRoot(): Affine;
7
8
  static random(aOpts?: {
8
9
  min?: number;
9
10
  max?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"affine.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/affine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,8BAAsB,iBAAiB;IACrC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;IAG3C,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;IAcT,MAAM,CAAC,gBAAgB,CACrB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1D,MAAM,EAAE;CAcZ;AAED,qBAAa,MAAO,SAAQ,UAAU;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;gBAEL,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY;IAOxD,OAAO,IAAI,MAAM;IAGjB,KAAK,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAG/B,MAAM,IAAI,MAAM;IAMhB,KAAK,CAAC,CAAC,EAAE,MAAM;IAIf,iBAAiB,IAAI,MAAM;IAI3B,QAAQ,IAAI,MAAM;IAMlB,aAAa;CAGd"}
1
+ {"version":3,"file":"affine.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/affine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,8BAAsB,iBAAiB;IACrC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;IAG3C,MAAM,CAAC,cAAc,IAAI,MAAM;IAK/B,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;IAcT,MAAM,CAAC,gBAAgB,CACrB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1D,MAAM,EAAE;CAcZ;AAED,qBAAa,MAAO,SAAQ,UAAU;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;gBAEL,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY;IAOxD,OAAO,IAAI,MAAM;IAGjB,KAAK,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAG/B,MAAM,IAAI,MAAM;IAMhB,KAAK,CAAC,CAAC,EAAE,MAAM;IAIf,iBAAiB,IAAI,MAAM;IAI3B,QAAQ,IAAI,MAAM;IAMlB,aAAa;CAGd"}
@@ -9,6 +9,11 @@ export class AffineConstructor {
9
9
  static fromCoeffs(coeffs) {
10
10
  return new Affine(coeffs[1], coeffs[0]);
11
11
  }
12
+ static randomNiceRoot() {
13
+ const root = randint(-10, 10, [0]);
14
+ const a = randint(-10, 10, [0]);
15
+ return new Affine(a, -root * a);
16
+ }
12
17
  static random(aOpts, bOpts, variable) {
13
18
  const a = randint(aOpts?.min ?? -9, aOpts?.max ?? 10, aOpts?.excludes ?? [0]);
14
19
  const b = randint(bOpts?.min ?? -9, bOpts?.max ?? 10, bOpts?.excludes ?? []);
@@ -5,7 +5,7 @@
5
5
  export const primeFactors = (n) => {
6
6
  // Validate input
7
7
  if (!Number.isInteger(n) || n <= 0) {
8
- throw new Error("Input must be an integer greater than 1.");
8
+ // throw new Error("Input must be an integer greater than 1.");
9
9
  return [];
10
10
  }
11
11
  if (n === 1)
@@ -1 +1 @@
1
- {"version":3,"file":"functionComposition.d.ts","sourceRoot":"","sources":["../../../../src/math/utils/functions/functionComposition.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EAEL,YAAY,EACb,MAAM,4CAA4C,CAAC;AAEpD,eAAO,MAAM,qBAAqB,GAChC,aAAa,aAAa,EAC1B,cAAc,aAAa,EAC3B,eAAc,YAA2C,kBAiB1D,CAAC;AAMF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,aAAa,wBA4ClD,CAAC;AAMF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,CAAC,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;CAChD,CAAC;AA6BF,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,aAAa,EAC1B,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,aAAa,EAC3B,iBAAiB,GAAE,MAAW,EAC9B,eAAe,GAAE,eAAoB,iBAsDtC"}
1
+ {"version":3,"file":"functionComposition.d.ts","sourceRoot":"","sources":["../../../../src/math/utils/functions/functionComposition.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAc3C,OAAO,EAEL,YAAY,EACb,MAAM,4CAA4C,CAAC;AAEpD,eAAO,MAAM,qBAAqB,GAChC,aAAa,aAAa,EAC1B,cAAc,aAAa,EAC3B,eAAc,YAA2C,kBAiB1D,CAAC;AAMF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,aAAa,wBA4ClD,CAAC;AAMF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,CAAC,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;CAChD,CAAC;AA+CF,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,aAAa,EAC1B,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,aAAa,EAC3B,iBAAiB,GAAE,MAAW,EAC9B,eAAe,GAAE,eAAoB,iBA0DtC"}
@@ -1,3 +1,4 @@
1
+ import { isEqualNode, } from "../../../tree/nodes/equations/equalNode.js";
1
2
  import { isFunctionNode, } from "../../../tree/nodes/functions/functionNode.js";
2
3
  import { NodeConstructor } from "../../../tree/nodes/nodeConstructor.js";
3
4
  import { isOperatorNode, } from "../../../tree/nodes/operators/operatorNode.js";
@@ -11,7 +12,7 @@ export const nodeBySubstitutingVar = (nodeCarrier, nodeInjected, variableNode =
11
12
  };
12
13
  export const getAllNodePaths = (node) => {
13
14
  const arrNodePaths = [];
14
- if (isOperatorNode(node)) {
15
+ if (isOperatorNode(node) || isEqualNode(node)) {
15
16
  getAllNodePaths(node.leftChild).forEach((nodePathWithNodes) => {
16
17
  arrNodePaths.push({
17
18
  arrNode: [node, ...nodePathWithNodes.arrNode],
@@ -64,6 +65,16 @@ function operatorNodeByReplacingRightChild(opNode, nodeRightChildNew) {
64
65
  nodeIds.rightChild = nodeRightChildNew.toIdentifiers();
65
66
  return NodeConstructor.fromIdentifiers(nodeIds);
66
67
  }
68
+ function equalNodeByReplacingLeftChild(equalNode, nodeLeftChildNew) {
69
+ const nodeIds = equalNode.toIdentifiers();
70
+ nodeIds.leftChild = nodeLeftChildNew.toIdentifiers();
71
+ return NodeConstructor.fromIdentifiers(nodeIds);
72
+ }
73
+ function equalNodeByReplacingRightChild(equalNode, nodeRightChildNew) {
74
+ const nodeIds = equalNode.toIdentifiers();
75
+ nodeIds.rightChild = nodeRightChildNew.toIdentifiers();
76
+ return NodeConstructor.fromIdentifiers(nodeIds);
77
+ }
67
78
  export function nodeByReplacingNodeAtPath(nodeCarrier, path, nodeInjected, simplifyUpToLevel = -1, simplifyOptions = {}) {
68
79
  function getNodeForKey(node, key) {
69
80
  if (key === "leftChild" || key === "rightChild") {
@@ -83,6 +94,12 @@ export function nodeByReplacingNodeAtPath(nodeCarrier, path, nodeInjected, simpl
83
94
  else if (key === "rightChild" && isOperatorNode(node)) {
84
95
  return operatorNodeByReplacingRightChild(node, nodeInjected);
85
96
  }
97
+ else if (key === "leftChild" && isEqualNode(node)) {
98
+ return equalNodeByReplacingLeftChild(node, nodeInjected);
99
+ }
100
+ else if (key === "rightChild" && isEqualNode(node)) {
101
+ return equalNodeByReplacingRightChild(node, nodeInjected);
102
+ }
86
103
  else if (key === "child" && isFunctionNode(node)) {
87
104
  return functionNodeByReplacingChild(node, nodeInjected);
88
105
  }
@@ -5,6 +5,19 @@ export type SituationArithmeticVariation = {
5
5
  getHint: (firstRank: number, ...otherArgs: unknown[]) => string;
6
6
  getCorrectionStuff: (initial: number, reason: number, firstRank: number, ...otherArgs: unknown[]) => Record<string, unknown>;
7
7
  };
8
+ export type RankDecoder = {
9
+ rankFromTarget: (nodeTarget: AlgebraicNode, firstRank: number) => number;
10
+ targetFromRank: (rank: number, firstRank: number) => AlgebraicNode;
11
+ };
12
+ export type SituationArithmeticVariationUsingRankDecoder = {
13
+ getStrQuestion?: (initial: number, reason: number, firstRank: number, ...otherArgs: unknown[]) => string;
14
+ getAnswerStuff: (initial: number, reason: number, firstRank: number, ...otherArgs: unknown[]) => {
15
+ answerNode: AlgebraicNode;
16
+ rankNode: AlgebraicNode;
17
+ };
18
+ getHint: (firstRank: number, ...otherArgs: unknown[]) => string;
19
+ getCorrectionStuff: (initial: number, reason: number, firstRank: number, ...otherArgs: unknown[]) => Record<string, unknown>;
20
+ };
8
21
  export type SituationArithmeticSuperfluousData = {
9
22
  rand: number;
10
23
  values: number[];
@@ -14,12 +27,13 @@ export type SituationArithmetic = {
14
27
  randReason: () => number;
15
28
  randSuperfluousData: () => SituationArithmeticSuperfluousData;
16
29
  randThreshold: (initial: number, reason: number, firstRank: number) => number;
30
+ rankDecoder: RankDecoder;
17
31
  getStrSituation: (initial: number, reason: number, firstRank: number, superfluousData?: SituationArithmeticSuperfluousData) => string;
18
32
  variationFindExplicitFormula: SituationArithmeticVariation;
19
33
  variationFindRecurrenceFormula: SituationArithmeticVariation;
20
34
  variationFindRandomTerm: SituationArithmeticVariation;
21
- variationFindRank: SituationArithmeticVariation;
22
- variationFindThreshold: SituationArithmeticVariation;
35
+ variationFindRank: SituationArithmeticVariationUsingRankDecoder;
36
+ variationFindThreshold: SituationArithmeticVariationUsingRankDecoder;
23
37
  };
24
38
  export declare const situationsArithmetic: (SituationArithmetic & {
25
39
  variationFindExplicitFormula: SituationArithmeticVariation & {
@@ -39,12 +53,12 @@ export declare const situationsArithmetic: (SituationArithmetic & {
39
53
  str: string;
40
54
  };
41
55
  };
42
- variationFindRank: SituationArithmeticVariation & {
56
+ variationFindRank: SituationArithmeticVariationUsingRankDecoder & {
43
57
  getCorrectionStuff: (initial: number, reason: number, firstRank: number, ...otherArgs: unknown[]) => {
44
58
  str: string;
45
59
  };
46
60
  };
47
- variationFindThreshold: SituationArithmeticVariation & {
61
+ variationFindThreshold: SituationArithmeticVariationUsingRankDecoder & {
48
62
  getCorrectionStuff: (initial: number, reason: number, firstRank: number, ...otherArgs: unknown[]) => {
49
63
  str: string;
50
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"seqArithmeticSituations.d.ts","sourceRoot":"","sources":["../../../../../src/math/utils/sequences/situations/seqArithmeticSituations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAiBlE,MAAM,MAAM,4BAA4B,GAAG;IACzC,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB,MAAM,CAAC;IAEZ,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB,aAAa,CAAC;IACnB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC;IAChE,kBAAkB,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;IAC9D,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAE9E,eAAe,EAAE,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,kCAAkC,KACjD,MAAM,CAAC;IAEZ,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D,8BAA8B,EAAE,4BAA4B,CAAC;IAC7D,uBAAuB,EAAE,4BAA4B,CAAC;IAEtD,iBAAiB,EAAE,4BAA4B,CAAC;IAChD,sBAAsB,EAAE,4BAA4B,CAAC;CACtD,CAAC;AAw8FF,eAAO,MAAM,oBAAoB;;sCAr7Fd,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;;sCA2Bd,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;;;;sCAiChB,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;;sCAsCd,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;;sCA0Cd,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;IA4xF9B,CAAC"}
1
+ {"version":3,"file":"seqArithmeticSituations.d.ts","sourceRoot":"","sources":["../../../../../src/math/utils/sequences/situations/seqArithmeticSituations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAiBlE,MAAM,MAAM,4BAA4B,GAAG;IACzC,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB,MAAM,CAAC;IAEZ,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB,aAAa,CAAC;IAEnB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC;IAChE,kBAAkB,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,aAAa,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,4CAA4C,GAAG;IACzD,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB,MAAM,CAAC;IAEZ,cAAc,EAAE,CACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB;QAAE,UAAU,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC;IAE5D,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC;IAChE,kBAAkB,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,OAAO,EAAE,KACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;IAC9D,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9E,WAAW,EAAE,WAAW,CAAC;IAEzB,eAAe,EAAE,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,kCAAkC,KACjD,MAAM,CAAC;IAEZ,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D,8BAA8B,EAAE,4BAA4B,CAAC;IAE7D,uBAAuB,EAAE,4BAA4B,CAAC;IAEtD,iBAAiB,EAAE,4CAA4C,CAAC;IAChE,sBAAsB,EAAE,4CAA4C,CAAC;CACtE,CAAC;AA8jHF,eAAO,MAAM,oBAAoB;;sCA3iHd,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;;sCA2Bd,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;;;;sCAiChB,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;;sCAsCd,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;;sCAoDd,MAAM,UACP,MAAM,aACH,MAAM,gBACH,OAAO,EAAE;;;;IAw4G9B,CAAC"}