math-exercises 3.0.32 → 3.0.34

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 (91) hide show
  1. package/lib/exercises/exercise.d.ts +2 -1
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/exercise.js +18 -2
  4. package/lib/exercises/math/calcul/addAndSub.d.ts.map +1 -1
  5. package/lib/exercises/math/calcul/addAndSub.js +35 -17
  6. package/lib/exercises/math/calcul/arithmetics/commonDivisorsList.d.ts.map +1 -1
  7. package/lib/exercises/math/calcul/arithmetics/commonDivisorsList.js +35 -13
  8. package/lib/exercises/math/calcul/arithmetics/divisibiltyCriteria.d.ts.map +1 -1
  9. package/lib/exercises/math/calcul/arithmetics/divisibiltyCriteria.js +1 -4
  10. package/lib/exercises/math/calcul/arithmetics/primeNumbers.d.ts +5 -2
  11. package/lib/exercises/math/calcul/arithmetics/primeNumbers.d.ts.map +1 -1
  12. package/lib/exercises/math/calcul/arithmetics/primeNumbers.js +125 -48
  13. package/lib/exercises/math/calculLitteral/distributivity/canonicalFormDevelopment.d.ts.map +1 -1
  14. package/lib/exercises/math/calculLitteral/distributivity/canonicalFormDevelopment.js +57 -20
  15. package/lib/exercises/math/conversion/hoursToSecond.d.ts +9 -0
  16. package/lib/exercises/math/conversion/hoursToSecond.d.ts.map +1 -0
  17. package/lib/exercises/math/conversion/hoursToSecond.js +94 -0
  18. package/lib/exercises/math/conversion/index.d.ts +1 -0
  19. package/lib/exercises/math/conversion/index.d.ts.map +1 -1
  20. package/lib/exercises/math/conversion/index.js +1 -0
  21. package/lib/exercises/math/dataRepresentations/pieChartReading.d.ts.map +1 -1
  22. package/lib/exercises/math/dataRepresentations/pieChartReading.js +14 -3
  23. package/lib/exercises/math/derivation/derivative/thirdDegreeFunctionVariation.d.ts.map +1 -1
  24. package/lib/exercises/math/derivation/derivative/thirdDegreeFunctionVariation.js +41 -8
  25. package/lib/exercises/math/derivation/tangent/derivativeNumberReading.d.ts.map +1 -1
  26. package/lib/exercises/math/derivation/tangent/derivativeNumberReading.js +3 -1
  27. package/lib/exercises/math/derivation/tangent/derivativeTangentEquationReading.d.ts.map +1 -1
  28. package/lib/exercises/math/derivation/tangent/derivativeTangentEquationReading.js +3 -1
  29. package/lib/exercises/math/derivation/tangent/tangentEquations.d.ts.map +1 -1
  30. package/lib/exercises/math/derivation/tangent/tangentEquations.js +95 -26
  31. package/lib/exercises/math/functions/affines/leadingCoefficient.d.ts +4 -1
  32. package/lib/exercises/math/functions/affines/leadingCoefficient.d.ts.map +1 -1
  33. package/lib/exercises/math/functions/affines/leadingCoefficient.js +21 -7
  34. package/lib/exercises/math/functions/affines/leadingCoefficientCalculV1.d.ts.map +1 -1
  35. package/lib/exercises/math/functions/affines/leadingCoefficientCalculV1.js +63 -18
  36. package/lib/exercises/math/functions/affines/leadingCoefficientCalculV2.d.ts.map +1 -1
  37. package/lib/exercises/math/functions/affines/leadingCoefficientCalculV2.js +1 -1
  38. package/lib/exercises/math/functions/parity/parityFromGraph.d.ts.map +1 -1
  39. package/lib/exercises/math/functions/parity/parityFromGraph.js +0 -4
  40. package/lib/exercises/math/functions/trinoms/equation/solveSecondDegreeEquationByFactorisation.d.ts.map +1 -1
  41. package/lib/exercises/math/functions/trinoms/equation/solveSecondDegreeEquationFromCano.js +2 -2
  42. package/lib/exercises/math/functions/trinoms/factoForm/factorizedFormFromRoots.d.ts.map +1 -1
  43. package/lib/exercises/math/functions/trinoms/factoForm/factorizedFormFromRoots.js +39 -16
  44. package/lib/exercises/math/functions/trinoms/roots/niceRootsFromDevForm.d.ts.map +1 -1
  45. package/lib/exercises/math/functions/trinoms/roots/niceRootsFromDevForm.js +35 -16
  46. package/lib/exercises/math/functions/trinoms/roots/rootsFromDevForm.d.ts.map +1 -1
  47. package/lib/exercises/math/functions/trinoms/roots/rootsFromDevForm.js +31 -8
  48. package/lib/exercises/math/functions/trinoms/roots/rootsFromFactorizedForm.d.ts.map +1 -1
  49. package/lib/exercises/math/functions/trinoms/roots/rootsFromFactorizedForm.js +7 -5
  50. package/lib/exercises/math/geometry/triangles/index.d.ts +1 -0
  51. package/lib/exercises/math/geometry/triangles/index.d.ts.map +1 -1
  52. package/lib/exercises/math/geometry/triangles/index.js +1 -1
  53. package/lib/exercises/math/geometry/triangles/triangleNature.d.ts +1 -0
  54. package/lib/exercises/math/geometry/triangles/triangleNature.d.ts.map +1 -1
  55. package/lib/exercises/math/geometry/triangles/triangleNature.js +57 -18
  56. package/lib/exercises/math/percent/applyPercent.d.ts.map +1 -1
  57. package/lib/exercises/math/percent/applyPercent.js +8 -9
  58. package/lib/exercises/math/percent/averageEvolutionRate.d.ts.map +1 -1
  59. package/lib/exercises/math/percent/averageEvolutionRate.js +3 -3
  60. package/lib/exercises/math/percent/findStartValueAfterEvolution.d.ts.map +1 -1
  61. package/lib/exercises/math/percent/findStartValueAfterEvolution.js +4 -2
  62. package/lib/exercises/math/percent/percentWritings.js +1 -1
  63. package/lib/exercises/math/trigonometry/mainAngleMeasure.d.ts.map +1 -1
  64. package/lib/exercises/math/trigonometry/mainAngleMeasure.js +0 -1
  65. package/lib/index.d.ts +15 -3
  66. package/lib/index.d.ts.map +1 -1
  67. package/lib/math/geometry/angle.d.ts +1 -0
  68. package/lib/math/geometry/angle.d.ts.map +1 -1
  69. package/lib/math/geometry/spaceVector.d.ts.map +1 -1
  70. package/lib/math/geometry/spaceVector.js +2 -2
  71. package/lib/math/geometry/triangles/equilateralTriangle.d.ts +1 -0
  72. package/lib/math/geometry/triangles/equilateralTriangle.d.ts.map +1 -1
  73. package/lib/math/geometry/triangles/equilateralTriangle.js +6 -0
  74. package/lib/math/geometry/triangles/isoceleTriangle.d.ts +3 -1
  75. package/lib/math/geometry/triangles/isoceleTriangle.d.ts.map +1 -1
  76. package/lib/math/geometry/triangles/isoceleTriangle.js +7 -2
  77. package/lib/playground.d.ts.map +1 -1
  78. package/lib/playground.js +3 -1
  79. package/lib/tests/megaExosTest.d.ts +3 -0
  80. package/lib/tests/megaExosTest.d.ts.map +1 -0
  81. package/lib/tests/megaExosTest.js +6 -0
  82. package/lib/tests/megaml.test.d.ts +2 -0
  83. package/lib/tests/megaml.test.d.ts.map +1 -0
  84. package/lib/tests/megaml.test.js +10 -0
  85. package/lib/tests/questionTest.js +1 -1
  86. package/lib/tree/nodes/numbers/percentNode.d.ts +1 -1
  87. package/lib/tree/nodes/numbers/percentNode.d.ts.map +1 -1
  88. package/lib/tree/nodes/numbers/percentNode.js +5 -4
  89. package/lib/tree/parsers/latexParser.d.ts.map +1 -1
  90. package/lib/tree/parsers/latexParser.js +21 -4
  91. package/package.json +2 -1
@@ -57,7 +57,6 @@ const isAnswerValid = (ans, { answer, degree }) => {
57
57
  const parsed = parseAlgebraic(ans);
58
58
  const simplified = parsed.simplify().toTex();
59
59
  return simplified === answer;
60
- // return value.angle.toAllValidTexs().includes(ans);
61
60
  }
62
61
  catch (err) {
63
62
  return handleVEAError(err);
package/lib/index.d.ts CHANGED
@@ -13,8 +13,10 @@ declare const mathExercises: (Exercise<{
13
13
  }, {}> | Exercise<{
14
14
  type: number;
15
15
  }, {}> | Exercise<{
16
- chosenNumbers: number[];
17
- }, {}> | Exercise<{
16
+ nb: number;
17
+ }, {
18
+ usePowers?: boolean;
19
+ }> | Exercise<{
18
20
  a: number;
19
21
  b: number;
20
22
  }, {}> | Exercise<{
@@ -501,6 +503,10 @@ declare const mathExercises: (Exercise<{
501
503
  }, {}> | Exercise<{
502
504
  dec: number;
503
505
  isDecimalToHours: boolean;
506
+ }, {}> | Exercise<{
507
+ hours: number;
508
+ mins: number;
509
+ seconds: number;
504
510
  }, {}> | Exercise<{
505
511
  tex: string;
506
512
  }, {}> | Exercise<{
@@ -639,7 +645,9 @@ declare const mathExercises: (Exercise<{
639
645
  yA: number;
640
646
  xB: number;
641
647
  yB: number;
642
- }, {}> | Exercise<{
648
+ }, {
649
+ functionType?: string;
650
+ }> | Exercise<{
643
651
  xA: number;
644
652
  xB: number;
645
653
  yA: number;
@@ -1298,6 +1306,10 @@ declare const mathExercises: (Exercise<{
1298
1306
  label: string;
1299
1307
  }[];
1300
1308
  coupleAsked: number;
1309
+ }, {}> | Exercise<{
1310
+ triangleIdentifiers: import("./math/geometry/triangles/triangle.js").TriangleIdentifiers;
1311
+ type: number;
1312
+ useAngles: boolean;
1301
1313
  }, {}> | Exercise<{
1302
1314
  triangleIdentifiers: import("./math/geometry/triangles/triangle.js").TriangleIdentifiers;
1303
1315
  angleAsked: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,7 @@ export declare class Angle {
49
49
  color?: string;
50
50
  showValue?: boolean;
51
51
  thickness?: number;
52
+ decoration?: number;
52
53
  }): string[];
53
54
  }
54
55
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"angle.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/angle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAMlE,OAAO,EAAE,KAAK,EAAoB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAK7C,8BAAsB,gBAAgB;IACpC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,gBAAgB;CAUrD;AACD,KAAK,UAAU,GAAG;IAChB,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,eAAe,CAAC,EAAE,aAAa,CAAC;CACjC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AACF,qBAAa,KAAK;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;gBACS,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU;IAmB/C,aAAa,IAAI,gBAAgB;IASjC,WAAW,CAAC,CAAC,EAAE,KAAK;IAIpB,MAAM,CAAC,CAAC,EAAE,KAAK;IAqBf,SAAS,CAAC,CAAC,EAAE,KAAK;IASlB,gBAAgB,CAAC,CAAC,EAAE,KAAK;IAwCzB,MAAM;IAMN,eAAe,CAAC,CAAC,EAAE,KAAK;IAsCxB,gBAAgB,CAAC,CAAC,EAAE,KAAK;IAoBzB,QAAQ,CAAC,QAAQ,UAAQ;IAiBzB,YAAY,CAAC,QAAQ,UAAQ;IAW7B,OAAO;IAIP,KAAK;IAIL,qBAAqB,CAAC,EACpB,IAAI,EACJ,KAAK,EACL,IAAI,GACL,GAAE;QACD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;KAC7C;IAgBN,UAAU,CAAC,IAAI,CAAC,EAAE;QAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;CA2BF"}
1
+ {"version":3,"file":"angle.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/angle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAMlE,OAAO,EAAE,KAAK,EAAoB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAK7C,8BAAsB,gBAAgB;IACpC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,gBAAgB;CAUrD;AACD,KAAK,UAAU,GAAG;IAChB,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,eAAe,CAAC,EAAE,aAAa,CAAC;CACjC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AACF,qBAAa,KAAK;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;gBACS,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU;IAmB/C,aAAa,IAAI,gBAAgB;IASjC,WAAW,CAAC,CAAC,EAAE,KAAK;IAIpB,MAAM,CAAC,CAAC,EAAE,KAAK;IAqBf,SAAS,CAAC,CAAC,EAAE,KAAK;IASlB,gBAAgB,CAAC,CAAC,EAAE,KAAK;IAwCzB,MAAM;IAMN,eAAe,CAAC,CAAC,EAAE,KAAK;IAsCxB,gBAAgB,CAAC,CAAC,EAAE,KAAK;IAoBzB,QAAQ,CAAC,QAAQ,UAAQ;IAiBzB,YAAY,CAAC,QAAQ,UAAQ;IAW7B,OAAO;IAIP,KAAK;IAIL,qBAAqB,CAAC,EACpB,IAAI,EACJ,KAAK,EACL,IAAI,GACL,GAAE;QACD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;KAC7C;IAgBN,UAAU,CAAC,IAAI,CAAC,EAAE;QAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;CA2BF"}
@@ -1 +1 @@
1
- {"version":3,"file":"spaceVector.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/spaceVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,IAAI,EAAY,MAAM,0BAA0B,CAAC;AAY1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,8BAAsB,sBAAsB;IAC1C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,WAAW;IAQnE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,WAAW;IAY1D,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAO,GAAG,WAAW,EAAE;IAWzE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE;CAWjC;AAED,qBAAa,WAAW;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;gBAEf,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa;IAQlB,SAAS;IAGT,kBAAkB;IAGlB,KAAK,IAAI,MAAM;IAIf,WAAW,IAAI,MAAM;IAGrB,iBAAiB,IAAI,MAAM;IAK3B,eAAe,IAAI,MAAM;IAMzB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW;IAiB5C,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO;IAMnC,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO;IAGnC,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa;IAI1C,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM;IAQrC,aAAa,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAInC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW;IAShC,OAAO,IAAI,aAAa;IAYxB,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM;IAQjD,MAAM,CAAC,CAAC,EAAE,WAAW;CAGtB"}
1
+ {"version":3,"file":"spaceVector.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/spaceVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,IAAI,EAAY,MAAM,0BAA0B,CAAC;AAY1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,8BAAsB,sBAAsB;IAC1C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,WAAW;IAQnE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,WAAW;IAY3D,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,GAAG,WAAW,EAAE;IAW1E,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE;CAWjC;AAED,qBAAa,WAAW;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;gBAEf,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa;IAQlB,SAAS;IAGT,kBAAkB;IAGlB,KAAK,IAAI,MAAM;IAIf,WAAW,IAAI,MAAM;IAGrB,iBAAiB,IAAI,MAAM;IAK3B,eAAe,IAAI,MAAM;IAMzB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW;IAiB5C,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO;IAMnC,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO;IAGnC,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa;IAI1C,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM;IAQrC,aAAa,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAInC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW;IAShC,OAAO,IAAI,aAAa;IAYxB,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM;IAQjD,MAAM,CAAC,CAAC,EAAE,WAAW;CAGtB"}
@@ -10,7 +10,7 @@ export class SpaceVectorConstructor {
10
10
  static fromPoints(origin, end) {
11
11
  return new SpaceVector(`${origin.name}${end.name}`, new SubstractNode(end.x, origin.x).simplify(), new SubstractNode(end.y, origin.y).simplify(), new SubstractNode(end.z, origin.z).simplify());
12
12
  }
13
- static random(name, allowNull = true) {
13
+ static random(name, allowNull = false) {
14
14
  let x;
15
15
  let y;
16
16
  let z;
@@ -21,7 +21,7 @@ export class SpaceVectorConstructor {
21
21
  } while (!allowNull && x === 0 && y === 0 && z === 0);
22
22
  return new SpaceVector(name, x.toTree(), y.toTree(), z.toTree());
23
23
  }
24
- static randomDifferents(names, allowNull = true) {
24
+ static randomDifferents(names, allowNull = false) {
25
25
  const res = [];
26
26
  for (let i = 0; i < names.length; i++) {
27
27
  let vec;
@@ -16,6 +16,7 @@ export declare class EquilateralTriangle extends Triangle {
16
16
  */
17
17
  constructor(points: Point[], props?: EquilateralTriangleProps);
18
18
  drawSidesDecoration(): void;
19
+ drawAnglesDecoration(): void;
19
20
  }
20
21
  export {};
21
22
  //# sourceMappingURL=equilateralTriangle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"equilateralTriangle.d.ts","sourceRoot":"","sources":["../../../../src/math/geometry/triangles/equilateralTriangle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAoB,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,QAAQ,EAER,mBAAmB,EACnB,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,8BAAsB,8BAA8B;IAClD,MAAM,CAAC,eAAe,CACpB,WAAW,EAAE,mBAAmB,GAC/B,mBAAmB;IAgBtB,MAAM,CAAC,eAAe,CAAC,EACrB,KAAuB,EACvB,UAAkB,EAClB,QAAgB,EAChB,QAAY,GACb;;;;;KAAA,GAAG,QAAQ;CAkCb;AAED,KAAK,wBAAwB,GAAG,EAAE,GAAG,aAAa,CAAC;AACnD,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C;;OAEG;gBACS,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,wBAAwB;IAa7D,mBAAmB,IAAI,IAAI;CAO5B"}
1
+ {"version":3,"file":"equilateralTriangle.d.ts","sourceRoot":"","sources":["../../../../src/math/geometry/triangles/equilateralTriangle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAoB,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,QAAQ,EAER,mBAAmB,EACnB,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,8BAAsB,8BAA8B;IAClD,MAAM,CAAC,eAAe,CACpB,WAAW,EAAE,mBAAmB,GAC/B,mBAAmB;IAgBtB,MAAM,CAAC,eAAe,CAAC,EACrB,KAAuB,EACvB,UAAkB,EAClB,QAAgB,EAChB,QAAY,GACb;;;;;KAAA,GAAG,QAAQ;CAkCb;AAED,KAAK,wBAAwB,GAAG,EAAE,GAAG,aAAa,CAAC;AACnD,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C;;OAEG;gBACS,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,wBAAwB;IAa7D,mBAAmB,IAAI,IAAI;IAO3B,oBAAoB,IAAI,IAAI;CAe7B"}
@@ -49,4 +49,10 @@ export class EquilateralTriangle extends Triangle {
49
49
  drawSidesDecoration() {
50
50
  this.commands.push(`SetDecoration(${this.sides[1].ggbName}, 2)`, `SetDecoration(${this.sides[2].ggbName}, 2)`, `SetDecoration(${this.sides[0].ggbName}, 2)`);
51
51
  }
52
+ drawAnglesDecoration() {
53
+ const angle1Cmds = this.angles[0].toCommands();
54
+ const angle2Cmds = this.angles[1].toCommands();
55
+ const angle3Cmds = this.angles[2].toCommands();
56
+ this.commands.push(...angle1Cmds, ...angle2Cmds, ...angle3Cmds, `SetDecoration(${this.angles[0].name}, 4)`, `SetDecoration(${this.angles[1].name}, 4)`, `SetDecoration(${this.angles[2].name}, 4)`);
57
+ }
52
58
  }
@@ -2,11 +2,12 @@ import { Point } from "../point.js";
2
2
  import { Triangle, TriangleIdentifiers, TriangleProps } from "./triangle.js";
3
3
  export declare abstract class IsoceleTriangleConstructor {
4
4
  static fromIdentifiers(identifiers: TriangleIdentifiers): IsoceleTriangle;
5
- static randomNiceSides({ names, randomName, intSides, minAngle, }: {
5
+ static randomNiceSides({ names, randomName, intSides, minAngle, isRight, }: {
6
6
  names?: string[] | undefined;
7
7
  randomName?: boolean | undefined;
8
8
  intSides?: boolean | undefined;
9
9
  minAngle?: number | undefined;
10
+ isRight?: boolean | undefined;
10
11
  }): Triangle;
11
12
  }
12
13
  type IsoceleTriangleProps = {} & TriangleProps;
@@ -18,6 +19,7 @@ export declare class IsoceleTriangle extends Triangle {
18
19
  */
19
20
  constructor(points: Point[], props?: IsoceleTriangleProps);
20
21
  drawSidesDecoration(): void;
22
+ drawAnglesDecoration(): void;
21
23
  }
22
24
  export {};
23
25
  //# sourceMappingURL=isoceleTriangle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isoceleTriangle.d.ts","sourceRoot":"","sources":["../../../../src/math/geometry/triangles/isoceleTriangle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAoB,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,QAAQ,EAER,mBAAmB,EACnB,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,8BAAsB,0BAA0B;IAC9C,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,mBAAmB,GAAG,eAAe;IAgBzE,MAAM,CAAC,eAAe,CAAC,EACrB,KAAuB,EACvB,UAAkB,EAClB,QAAgB,EAChB,QAAY,GACb;;;;;KAAA,GAAG,QAAQ;CA8Cb;AAED,KAAK,oBAAoB,GAAG,EAAE,GAAG,aAAa,CAAC;AAC/C,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C;;;;OAIG;gBACS,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,oBAAoB;IAUzD,mBAAmB,IAAI,IAAI;CAM5B"}
1
+ {"version":3,"file":"isoceleTriangle.d.ts","sourceRoot":"","sources":["../../../../src/math/geometry/triangles/isoceleTriangle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAoB,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,QAAQ,EAER,mBAAmB,EACnB,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,8BAAsB,0BAA0B;IAC9C,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,mBAAmB,GAAG,eAAe;IAgBzE,MAAM,CAAC,eAAe,CAAC,EACrB,KAAuB,EACvB,UAAkB,EAClB,QAAgB,EAChB,QAAY,EACZ,OAAe,GAChB;;;;;;KAAA,GAAG,QAAQ;CA8Cb;AAED,KAAK,oBAAoB,GAAG,EAAE,GAAG,aAAa,CAAC;AAC/C,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C;;;;OAIG;gBACS,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,oBAAoB;IAUzD,mBAAmB,IAAI,IAAI;IAO3B,oBAAoB,IAAI,IAAI;CAU7B"}
@@ -12,7 +12,7 @@ export class IsoceleTriangleConstructor {
12
12
  sidesLengths: identifiers.props?.sidesLengths?.map((n) => n ? reifyAlgebraic(n) : undefined),
13
13
  });
14
14
  }
15
- static randomNiceSides({ names = ["A", "B", "C"], randomName = false, intSides = false, minAngle = 0, }) {
15
+ static randomNiceSides({ names = ["A", "B", "C"], randomName = false, intSides = false, minAngle = 0, isRight = false, }) {
16
16
  let vertices = [];
17
17
  if (randomName)
18
18
  vertices = TriangleConstructor.randomName();
@@ -35,7 +35,7 @@ export class IsoceleTriangleConstructor {
35
35
  const origin = new Point("O", (0).toTree(), (0).toTree());
36
36
  const angle = randfloat(0, 2 * Math.PI);
37
37
  const midBase = randfloat(3, 8, 1);
38
- const height = randfloat(3, 8, 1, [2 * midBase]);
38
+ const height = isRight ? midBase : randfloat(3, 8, 1, [2 * midBase]);
39
39
  C = new Point(vertices[2], midBase.toTree(), (0).toTree()).rotate(angle, origin);
40
40
  B = new Point(vertices[1], (-midBase).toTree(), (0).toTree()).rotate(angle, origin);
41
41
  A = new Point(vertices[0], (0).toTree(), height.toTree()).rotate(angle, origin);
@@ -63,4 +63,9 @@ export class IsoceleTriangle extends Triangle {
63
63
  drawSidesDecoration() {
64
64
  this.commands.push(`SetDecoration(${this.sides[1].ggbName}, 2)`, `SetDecoration(${this.sides[2].ggbName}, 2)`);
65
65
  }
66
+ drawAnglesDecoration() {
67
+ const angle1Cmds = this.angles[1].toCommands();
68
+ const angle2Cmds = this.angles[2].toCommands();
69
+ this.commands.push(...angle1Cmds, ...angle2Cmds, `SetDecoration(${this.angles[1].name}, 4)`, `SetDecoration(${this.angles[2].name}, 4)`);
70
+ }
66
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,UAAU,YAEtB,CAAC"}
1
+ {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU,YAGtB,CAAC"}
package/lib/playground.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { parseAlgebraic } from "./tree/parsers/latexParser.js";
1
2
  export const playground = () => {
2
- // console.log(parseAlgebraic(tex).simplify().toTex());
3
+ const tex = "3\\%";
4
+ console.log(parseAlgebraic(tex).simplify({}).toTex());
3
5
  };
@@ -0,0 +1,3 @@
1
+ import { Exercise } from "../exercises/exercise.js";
2
+ export declare const megaExosTest: (exos: Exercise[]) => void;
3
+ //# sourceMappingURL=megaExosTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"megaExosTest.d.ts","sourceRoot":"","sources":["../../src/tests/megaExosTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,eAAO,MAAM,YAAY,SAAU,QAAQ,EAAE,SAI5C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { exosTest } from "./exosTest.js";
2
+ export const megaExosTest = (exos) => {
3
+ for (let i = 0; i < 100; i++) {
4
+ exosTest(exos);
5
+ }
6
+ };
@@ -0,0 +1,2 @@
1
+ import "../prototypesEnhancement.js";
2
+ //# sourceMappingURL=megaml.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"megaml.test.d.ts","sourceRoot":"","sources":["../../src/tests/megaml.test.ts"],"names":[],"mappings":"AACA,OAAO,6BAA6B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import "../prototypesEnhancement.js";
2
+ import { mathExercises } from "../index.js";
3
+ import { megaExosTest } from "./megaExosTest.js";
4
+ const mathExos = Object.values(mathExercises);
5
+ try {
6
+ megaExosTest(mathExos);
7
+ }
8
+ catch (err) {
9
+ throw err;
10
+ }
@@ -38,7 +38,7 @@ export const questionTest = (exo, question) => {
38
38
  if (!question.studentGgbOptions?.coords?.length)
39
39
  throw new Error(`exo ${exo.id} has no studentGgbOptions Coords`);
40
40
  }
41
- else {
41
+ else if (exo.answerType !== "QCU" && exo.answerType !== "QCM") {
42
42
  if (!question.answer)
43
43
  throw new Error(`exo ${exo.id} has no answer`);
44
44
  }
@@ -5,12 +5,12 @@ export declare class PercentNode implements Node {
5
5
  constructor(value: number);
6
6
  toMathString(): string;
7
7
  toTex(): string;
8
- toMathjs(): string;
9
8
  toAllValidTexs(): string[];
10
9
  toIdentifiers(): {
11
10
  id: NodeIds;
12
11
  value: number;
13
12
  };
13
+ toNumber(): number;
14
14
  toEquivalentNodes(): this[];
15
15
  simplify(): this;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"percentNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/numbers/percentNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,WAAY,YAAW,IAAI;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;gBAEH,KAAK,EAAE,MAAM;IAKzB,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAGf,QAAQ;IAGR,cAAc;IAGd,aAAa;;;;IAMb,iBAAiB;IAGjB,QAAQ;CAGT"}
1
+ {"version":3,"file":"percentNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/numbers/percentNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,WAAY,YAAW,IAAI;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;gBAEH,KAAK,EAAE,MAAM;IAKzB,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAIf,cAAc;IAGd,aAAa;;;;IAMb,QAAQ;IAGR,iBAAiB;IAGjB,QAAQ;CAGT"}
@@ -1,3 +1,4 @@
1
+ import { round } from "../../../math/utils/round.js";
1
2
  import { NodeIds, NodeType } from "../node.js";
2
3
  export class PercentNode {
3
4
  value;
@@ -10,10 +11,7 @@ export class PercentNode {
10
11
  return `${this.value}%`;
11
12
  }
12
13
  toTex() {
13
- return `${(this.value + "").replace(".", ",")}\\%`;
14
- }
15
- toMathjs() {
16
- return this.toMathString();
14
+ return `${this.value.frenchify()}\\%`;
17
15
  }
18
16
  toAllValidTexs() {
19
17
  return [this.toTex()];
@@ -24,6 +22,9 @@ export class PercentNode {
24
22
  value: this.value,
25
23
  };
26
24
  }
25
+ toNumber() {
26
+ return round(this.value / 100, 10);
27
+ }
27
28
  toEquivalentNodes() {
28
29
  return [this];
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"latexParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/latexParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAQ5D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAmExE,eAAO,MAAM,QAAQ,UAAW,MAAM,aA2CrC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AACF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,kBA0BjE,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,MAAM,+CA6CvC,CAAC"}
1
+ {"version":3,"file":"latexParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/latexParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAQ5D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AA0ExE,eAAO,MAAM,QAAQ,UAAW,MAAM,aAkDrC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AACF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,kBA2BjE,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,MAAM,+CA6CvC,CAAC"}
@@ -35,6 +35,11 @@ const symbols = [
35
35
  { tex: "+\\infty", node: PlusInfinityNode },
36
36
  { tex: "-\\infty", node: MinusInfinityNode },
37
37
  ];
38
+ // const specialChars = [
39
+ // {
40
+ // tex: "\\%", node: PercentNode
41
+ // }
42
+ // ]
38
43
  //separators between trees
39
44
  const separators = ["=", "<", ">", "\\leq", "\\geq"];
40
45
  //le nombre de parentheses est il respecté
@@ -101,6 +106,12 @@ export const tokenize = (latex) => {
101
106
  i += cmdMatch[0].length - 1;
102
107
  continue;
103
108
  }
109
+ // const specialCharMatch = substring.match(/^\\%/);
110
+ // if (specialCharMatch) {
111
+ // tokens.push(specialCharMatch[0]);
112
+ // i += specialCharMatch[0].length - 1;
113
+ // continue;
114
+ // }
104
115
  }
105
116
  return tokens;
106
117
  };
@@ -122,7 +133,8 @@ export const parseAlgebraic = (latex, opts) => {
122
133
  }
123
134
  formatedLatex = formatedLatex
124
135
  .replaceAll("\\left", "")
125
- .replaceAll("\\right", "");
136
+ .replaceAll("\\right", "")
137
+ .replaceAll("\\ ", "");
126
138
  try {
127
139
  const tokens = tokenize(formatedLatex);
128
140
  if (!isDyck(tokens))
@@ -307,11 +319,16 @@ const buildTreeForSameDepthTokens = (tokens) => {
307
319
  }
308
320
  }
309
321
  if (token === "^") {
310
- if (!tempTokens[i - 1] ||
311
- typeof tempTokens[i - 1] === "string" ||
312
- !tempTokens[i + 1] ||
322
+ if (
323
+ // !tempTokens[i - 1] ||
324
+ // typeof tempTokens[i - 1] === "string" ||
325
+ !tempTokens[i + 1] ||
313
326
  typeof tempTokens[i + 1] === "string")
314
327
  throw Error("Error parsing power node");
328
+ if (!tempTokens[i - 1] || typeof tempTokens[i - 1] === "string") {
329
+ tempTokens[i - 1] = tempTokens[i + 1];
330
+ tempTokens.splice(i, 1);
331
+ }
315
332
  else {
316
333
  tempTokens[i - 1] = new PowerNode(tempTokens[i - 1], tempTokens[i + 1]);
317
334
  tempTokens.splice(i, 2);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "math-exercises",
3
3
  "type": "module",
4
- "version": "3.0.32",
4
+ "version": "3.0.34",
5
5
  "description": "Math exercises generator for middle school and high school",
6
6
  "main": "lib/index.js",
7
7
  "files": [
@@ -13,6 +13,7 @@
13
13
  "testexo": "npm run build && node lib/tests/singleExo.test.js",
14
14
  "test": "npm run build && node lib/tests/global.test.js",
15
15
  "testml": "npm run build && node lib/tests/ml.test.js",
16
+ "testmegaml": "npm run build && node lib/tests/megaml.test.js",
16
17
  "testxl": "npm run build && node lib/tests/xl.test.js",
17
18
  "testlatex": "npm run build && node lib/tests/latexParser.test.js",
18
19
  "testpdf": "npm run build && node lib/tests/pdfExo.test.js",