math-exercises 3.0.131 → 3.0.133

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 (109) hide show
  1. package/lib/exercises/exercise.d.ts +37 -30
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/mentalCaluls/mentalProgramSolve.d.ts +2 -2
  4. package/lib/exercises/math/calcul/mentalCaluls/mentalProgramSolve.d.ts.map +1 -1
  5. package/lib/exercises/math/calcul/mentalCaluls/mentalProgramSolve.js +44 -40
  6. package/lib/exercises/math/calcul/ordering/compareA10N.d.ts +1 -1
  7. package/lib/exercises/math/calcul/ordering/compareA10N.d.ts.map +1 -1
  8. package/lib/exercises/math/calcul/ordering/compareA10N.js +15 -10
  9. package/lib/exercises/math/calcul/ordering/compareFracABWithFracAPlusCBPlusC.d.ts.map +1 -1
  10. package/lib/exercises/math/calcul/ordering/compareFracABWithFracAPlusCBPlusC.js +0 -1
  11. package/lib/exercises/math/calcul/ordering/compareFracAndDec.d.ts +1 -1
  12. package/lib/exercises/math/calcul/ordering/compareFracAndDec.js +1 -1
  13. package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.js +1 -1
  14. package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts.map +1 -1
  15. package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.js +2 -0
  16. package/lib/exercises/math/calcul/rounding/estimatePow10NPlusPow10MinusN.d.ts.map +1 -1
  17. package/lib/exercises/math/calcul/rounding/estimatePow10NPlusPow10MinusN.js +8 -6
  18. package/lib/exercises/math/calcul/rounding/rounding.d.ts +1 -1
  19. package/lib/exercises/math/calcul/rounding/rounding.d.ts.map +1 -1
  20. package/lib/exercises/math/calcul/rounding/rounding.js +7 -6
  21. package/lib/exercises/math/calculLitteral/equation/equationFromProblem.d.ts.map +1 -1
  22. package/lib/exercises/math/calculLitteral/equation/equationFromProblem.js +8 -9
  23. package/lib/exercises/math/calculLitteral/simplifying/compareATimes0.d.ts.map +1 -1
  24. package/lib/exercises/math/calculLitteral/simplifying/compareATimes0.js +4 -4
  25. package/lib/exercises/math/calculLitteral/writing/writeLitExpFromFrenchExp.d.ts.map +1 -1
  26. package/lib/exercises/math/calculLitteral/writing/writeLitExpFromFrenchExp.js +15 -60
  27. package/lib/exercises/math/conversion/kmPerMinToKmPerHourConversion.js +14 -10
  28. package/lib/exercises/math/conversion/lengthConversion.d.ts.map +1 -1
  29. package/lib/exercises/math/conversion/lengthConversion.js +1 -0
  30. package/lib/exercises/math/conversion/prefixToNumber.d.ts +0 -2
  31. package/lib/exercises/math/conversion/prefixToNumber.d.ts.map +1 -1
  32. package/lib/exercises/math/conversion/prefixToNumber.js +31 -24
  33. package/lib/exercises/math/conversion/secondsToHours.js +1 -1
  34. package/lib/exercises/math/functions/affines/drawAffineFromPointAndLeadingCoeff.js +2 -2
  35. package/lib/exercises/math/functions/affines/drawAffineFromProgCalc.d.ts +1 -1
  36. package/lib/exercises/math/functions/affines/drawAffineFromProgCalc.d.ts.map +1 -1
  37. package/lib/exercises/math/functions/affines/drawAffineFromProgCalc.js +4 -5
  38. package/lib/exercises/math/functions/affines/leadingCoefficient.js +1 -1
  39. package/lib/exercises/math/geometry/angles/anglesUsingIsParallel.d.ts +1 -1
  40. package/lib/exercises/math/geometry/angles/anglesUsingIsParallel.d.ts.map +1 -1
  41. package/lib/exercises/math/geometry/angles/anglesUsingIsParallel.js +10 -11
  42. package/lib/exercises/math/geometry/angles/isParallelUsingAngles.d.ts +1 -1
  43. package/lib/exercises/math/geometry/angles/isParallelUsingAngles.d.ts.map +1 -1
  44. package/lib/exercises/math/geometry/angles/isParallelUsingAngles.js +8 -8
  45. package/lib/exercises/math/geometry/cartesian/index.d.ts +1 -0
  46. package/lib/exercises/math/geometry/cartesian/index.d.ts.map +1 -1
  47. package/lib/exercises/math/geometry/cartesian/index.js +1 -0
  48. package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLine.d.ts +6 -9
  49. package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLine.d.ts.map +1 -1
  50. package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLine.js +60 -137
  51. package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLineV2.d.ts +16 -0
  52. package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLineV2.d.ts.map +1 -0
  53. package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLineV2.js +213 -0
  54. package/lib/exercises/math/percent/evolutions/globalPercent.d.ts +4 -1
  55. package/lib/exercises/math/percent/evolutions/globalPercent.d.ts.map +1 -1
  56. package/lib/exercises/math/percent/evolutions/globalPercent.js +37 -21
  57. package/lib/exercises/math/percent/findProportion.d.ts.map +1 -1
  58. package/lib/exercises/math/percent/findProportion.js +24 -26
  59. package/lib/exercises/math/percent/percentToDecimal.d.ts +4 -1
  60. package/lib/exercises/math/percent/percentToDecimal.d.ts.map +1 -1
  61. package/lib/exercises/math/percent/percentToDecimal.js +55 -35
  62. package/lib/exercises/math/powers/calculateNegativePower.d.ts +1 -1
  63. package/lib/exercises/math/powers/calculateNegativePower.d.ts.map +1 -1
  64. package/lib/exercises/math/powers/calculateNegativePower.js +17 -10
  65. package/lib/exercises/math/probaStat/basicProbas/possibleValuesForProba.js +2 -2
  66. package/lib/exercises/math/probaStat/basicStats/calculateFrequencyInList.d.ts +5 -1
  67. package/lib/exercises/math/probaStat/basicStats/calculateFrequencyInList.d.ts.map +1 -1
  68. package/lib/exercises/math/probaStat/basicStats/calculateFrequencyInList.js +76 -12
  69. package/lib/exercises/math/probaStat/conditionalProbaWriteFromFrench.js +7 -7
  70. package/lib/exercises/math/probaStat/probaAsSumOfProbas.d.ts +2 -3
  71. package/lib/exercises/math/probaStat/probaAsSumOfProbas.d.ts.map +1 -1
  72. package/lib/exercises/math/probaStat/probaAsSumOfProbas.js +60 -95
  73. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts +12 -5
  74. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
  75. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +354 -94
  76. package/lib/exercises/math/probaStat/stats1var/medianWithList.d.ts +4 -1
  77. package/lib/exercises/math/probaStat/stats1var/medianWithList.d.ts.map +1 -1
  78. package/lib/exercises/math/probaStat/stats1var/medianWithList.js +43 -23
  79. package/lib/exercises/math/probaStat/stats1var/plausibilityOfAverage.d.ts.map +1 -1
  80. package/lib/exercises/math/probaStat/stats1var/plausibilityOfAverage.js +70 -23
  81. package/lib/exercises/math/probaStat/stats1var/quartilesList.d.ts +1 -1
  82. package/lib/exercises/math/probaStat/stats1var/quartilesList.d.ts.map +1 -1
  83. package/lib/exercises/math/probaStat/stats1var/quartilesList.js +4 -4
  84. package/lib/exercises/pc/index.d.ts +0 -1
  85. package/lib/exercises/pc/index.d.ts.map +1 -1
  86. package/lib/exercises/pc/index.js +0 -1
  87. package/lib/exercises/pc/motion/averageSpeed.d.ts +0 -2
  88. package/lib/exercises/pc/motion/averageSpeed.d.ts.map +1 -1
  89. package/lib/exercises/pc/motion/averageSpeed.js +40 -45
  90. package/lib/exercises/pc/optics/lensFormula.d.ts +1 -2
  91. package/lib/exercises/pc/optics/lensFormula.d.ts.map +1 -1
  92. package/lib/exercises/pc/optics/lensFormula.js +7 -10
  93. package/lib/exercises/pc/weight/calculateWeight.d.ts +1 -3
  94. package/lib/exercises/pc/weight/calculateWeight.d.ts.map +1 -1
  95. package/lib/exercises/pc/weight/calculateWeight.js +38 -30
  96. package/lib/index.d.ts +932 -948
  97. package/lib/index.d.ts.map +1 -1
  98. package/lib/math/progCalc/progCalc.d.ts +2 -2
  99. package/lib/math/progCalc/progCalc.d.ts.map +1 -1
  100. package/lib/math/progCalc/progCalc.js +4 -11
  101. package/lib/playgroundUtils.d.ts +3 -0
  102. package/lib/playgroundUtils.d.ts.map +1 -0
  103. package/lib/playgroundUtils.js +13 -0
  104. package/lib/server.js +121 -0
  105. package/lib/tests/exoTest.d.ts.map +1 -1
  106. package/lib/tests/exoTest.js +13 -0
  107. package/lib/types/keyIds.d.ts +1 -1
  108. package/lib/types/keyIds.d.ts.map +1 -1
  109. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  import { randint } from "../../../../math/utils/random/randint.js";
2
2
  import { median } from "../../../../math/utils/stats/median.js";
3
- import { addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../exercise.js";
3
+ import { random } from "../../../../utils/alea/random.js";
4
+ import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../exercise.js";
4
5
  import { getDistinctQuestions } from "../../../utils/getDistinctQuestions.js";
5
6
  const getInstruction = (identifiers) => {
6
7
  const { sortedValues } = identifiers;
@@ -16,15 +17,6 @@ const getAnswer = (identifiers) => {
16
17
  const { sortedValues } = identifiers;
17
18
  return median(sortedValues).frenchify();
18
19
  };
19
- const getMedianList = () => {
20
- const randomValues = [];
21
- const length = randint(6, 10);
22
- for (let i = 0; i < length; i++)
23
- randomValues.push(randint(1, 20));
24
- const sortedValues = randomValues.sort((a, b) => a - b);
25
- const identifiers = { sortedValues };
26
- return getQuestionFromIdentifiers(identifiers);
27
- };
28
20
  const getHint = () => {
29
21
  return `La médiane est la valeur centrale de la série : il y a autant de valeur inférieures à la médiane que de valeurs supérieures à la médiane.`;
30
22
  };
@@ -40,18 +32,6 @@ Puisque $\\frac{${total}}{2} = ${rank.frenchify()}$, la médiane est ${rank % 1
40
32
 
41
33
  La médiane est donc $${getAnswer(identifiers)}$.`;
42
34
  };
43
- const getQuestionFromIdentifiers = (identifiers) => {
44
- const question = {
45
- instruction: getInstruction(identifiers),
46
- answer: getAnswer(identifiers),
47
- keys: [],
48
- answerFormat: "tex",
49
- identifiers,
50
- hint: getHint(identifiers),
51
- correction: getCorrection(identifiers),
52
- };
53
- return question;
54
- };
55
35
  const getPropositions = (n, { answer, sortedValues }) => {
56
36
  const propositions = [];
57
37
  addValidProp(propositions, answer);
@@ -64,12 +44,52 @@ const getPropositions = (n, { answer, sortedValues }) => {
64
44
  const isAnswerValid = (ans, { answer }) => {
65
45
  return ans === answer;
66
46
  };
47
+ const getMedianList = (optsIn) => {
48
+ const arrayedOptions = optsIn ?? optsDefault;
49
+ const opts = {
50
+ nbValues: random(arrayedOptions.nbValues),
51
+ };
52
+ const randomValues = [];
53
+ const length = Number(opts.nbValues);
54
+ for (let i = 0; i < length; i++)
55
+ randomValues.push(randint(1, 20));
56
+ const sortedValues = randomValues.sort((a, b) => a - b);
57
+ const identifiers = { sortedValues };
58
+ return getQuestionFromIdentifiers(identifiers);
59
+ };
60
+ const getQuestionFromIdentifiers = (identifiers, opts) => {
61
+ const question = {
62
+ instruction: getInstruction(identifiers),
63
+ answer: getAnswer(identifiers),
64
+ keys: [],
65
+ answerFormat: "tex",
66
+ identifiers,
67
+ hint: getHint(identifiers),
68
+ correction: getCorrection(identifiers),
69
+ options: opts,
70
+ };
71
+ return question;
72
+ };
73
+ const optsDefault = {
74
+ nbValues: ["7", "8"],
75
+ };
76
+ const options = [
77
+ {
78
+ id: "nbValues",
79
+ label: "Nombre de valeurs dans la liste",
80
+ target: GeneratorOptionTarget.generation,
81
+ type: GeneratorOptionType.multiselect,
82
+ values: ["4", "5", "7", "8", "11", "12", "19", "20"],
83
+ defaultValue: optsDefault.nbValues,
84
+ },
85
+ ];
67
86
  export const medianWithList = {
68
87
  id: "medianWithList",
69
88
  connector: "=",
70
89
  label: "Calcul de la médiane d'une liste de valeurs",
71
90
  isSingleStep: false,
72
- generator: (nb) => getDistinctQuestions(getMedianList, nb),
91
+ generator: (nb, opts) => getDistinctQuestions(() => getMedianList(opts), nb),
92
+ options,
73
93
  qcmTimer: 60,
74
94
  freeTimer: 60,
75
95
  getPropositions,
@@ -1 +1 @@
1
- {"version":3,"file":"plausibilityOfAverage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/plausibilityOfAverage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAoKF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAkBvD,CAAC"}
1
+ {"version":3,"file":"plausibilityOfAverage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/plausibilityOfAverage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAiOF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAkBvD,CAAC"}
@@ -3,7 +3,6 @@ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQue
3
3
  import { randint } from "../../../../math/utils/random/randint.js";
4
4
  import { coinFlip } from "../../../../utils/alea/coinFlip.js";
5
5
  import { random } from "../../../../utils/alea/random.js";
6
- import { mdTable } from "../../../../utils/markdown/mdTable.js";
7
6
  const getInstruction = (identifiers) => {
8
7
  const { a, values, isQuestionIsAboveA } = identifiers;
9
8
  return `Si on considère la série suivante :
@@ -20,36 +19,84 @@ La proposition suivante est-elle vraie ?
20
19
  const getHint = ({ a }) => {
21
20
  return `Regarde l'écart des valeurs par rapport à $${a.frenchify()}$.`;
22
21
  };
22
+ // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {
23
+ // const { a, values, isAboveA } = identifiers;
24
+ // const answer = getAnswer(identifiers);
25
+ // const valuesBelowA = values.filter((v) => v < a);
26
+ // const valuesAboveA = values.filter((v) => v > a);
27
+ // return `${answer}, car si l'on regarde les écarts par rapport à $${a.frenchify()}$ :
28
+ // $\\ $
29
+ // ${mdTable(
30
+ // [
31
+ // ["\\text{Valeur}", "\\text{Écart}"],
32
+ // [`\\text{Valeurs inférieures à } ${a.frenchify()}`, "\\text{}"],
33
+ // ...valuesBelowA.map((v) => [v.frenchify(), (v - a).frenchify()]),
34
+ // [
35
+ // "\\text{Total inférieur}",
36
+ // valuesBelowA
37
+ // .map((v) => v - a)
38
+ // .reduce((acc, v) => acc + v, 0)
39
+ // .frenchify(),
40
+ // ],
41
+ // [`\\text{Valeurs supérieures à } ${a.frenchify()}`, "\\text{}"],
42
+ // ...valuesAboveA.map((v) => [v.frenchify(), `+${(v - a).frenchify()}`]),
43
+ // [
44
+ // "\\text{Total supérieur}",
45
+ // `+${valuesAboveA
46
+ // .map((v) => v - a)
47
+ // .reduce((acc, v) => acc + v, 0)
48
+ // .frenchify()}`,
49
+ // ],
50
+ // ],
51
+ // true,
52
+ // )}
53
+ // $\\ $
54
+ // Le total ${
55
+ // isAboveA ? `supérieur` : `inférieur`
56
+ // } est plus grand, en valeur absolue, que le total ${
57
+ // isAboveA ? `inférieur` : `supérieur`
58
+ // } donc on peut affirmer que la moyenne de cette série est strictement ${
59
+ // isAboveA ? `supérieure` : `inférieure`
60
+ // } à $${a.frenchify()}$.`;
61
+ // };
23
62
  const getCorrection = (identifiers) => {
24
63
  const { a, values, isAboveA } = identifiers;
25
64
  const answer = getAnswer(identifiers);
26
65
  const valuesBelowA = values.filter((v) => v < a);
27
66
  const valuesAboveA = values.filter((v) => v > a);
28
- return `${answer}, car si l'on regarde les écarts par rapport à $${a.frenchify()}$ :
67
+ return `${answer}. En effet :
29
68
 
30
69
  $\\ $
70
+
71
+ Si l'on regarde les valeurs strictement inférieures à $${a.frenchify()}$ :
72
+
73
+ ${valuesBelowA
74
+ .map((v) => `
75
+
76
+ $${v.frenchify()}$ est $${(a - v).frenchify()}$ points en dessous de $${a.frenchify()}$
31
77
 
32
- ${mdTable([
33
- ["\\text{Valeur}", "\\text{Écart}"],
34
- [`\\text{Valeurs inférieures à } ${a.frenchify()}`, "\\text{}"],
35
- ...valuesBelowA.map((v) => [v.frenchify(), (v - a).frenchify()]),
36
- [
37
- "\\text{Total inférieur}",
38
- valuesBelowA
39
- .map((v) => v - a)
40
- .reduce((acc, v) => acc + v, 0)
41
- .frenchify(),
42
- ],
43
- [`\\text{Valeurs supérieures à } ${a.frenchify()}`, "\\text{}"],
44
- ...valuesAboveA.map((v) => [v.frenchify(), `+${(v - a).frenchify()}`]),
45
- [
46
- "\\text{Total supérieur}",
47
- `+${valuesAboveA
48
- .map((v) => v - a)
49
- .reduce((acc, v) => acc + v, 0)
50
- .frenchify()}`,
51
- ],
52
- ], true)}
78
+ `)
79
+ .join("")}
80
+ Ce qui fait en tout $${valuesBelowA
81
+ .map((v) => a - v)
82
+ .reduce((acc, v) => acc + v, 0)
83
+ .frenchify()}$ points en dessous de $${a.frenchify()}$.
84
+
85
+ $\\ $
86
+
87
+ Si l'on regarde les valeurs strictement supérieures à $${a.frenchify()}$ :
88
+
89
+ ${valuesAboveA
90
+ .map((v) => `
91
+
92
+ $${v.frenchify()}$ est $${(v - a).frenchify()}$ points en dessus de $${a.frenchify()}$
93
+
94
+ `)
95
+ .join("")}
96
+ Ce qui fait en tout $${valuesAboveA
97
+ .map((v) => v - a)
98
+ .reduce((acc, v) => acc + v, 0)
99
+ .frenchify()}$ points au dessus de $${a.frenchify()}$.
53
100
 
54
101
  $\\ $
55
102
 
@@ -4,7 +4,7 @@ type Identifiers = {
4
4
  randomQuartile: number;
5
5
  };
6
6
  type Options = {
7
- nbValues: number;
7
+ nbValues: string;
8
8
  };
9
9
  export declare const quartilesList: Exercise<Identifiers, Options>;
10
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"quartilesList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/quartilesList.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,QAAQ,EAkBT,MAAM,sBAAsB,CAAC;AAG9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAyGF,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAeF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAgBxD,CAAC"}
1
+ {"version":3,"file":"quartilesList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/quartilesList.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,QAAQ,EAkBT,MAAM,sBAAsB,CAAC;AAG9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AA2GF,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAeF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAgBxD,CAAC"}
@@ -61,9 +61,9 @@ const isAnswerValid = (ans, { answer }) => {
61
61
  const getQuartiles = (optsIn) => {
62
62
  const opts = optsIn ?? optsDefault;
63
63
  const randomValues = [];
64
- const length = Array.isArray(opts.nbValues)
64
+ const length = Number(Array.isArray(opts.nbValues)
65
65
  ? random(opts.nbValues.map((v) => +v))
66
- : opts.nbValues;
66
+ : opts.nbValues);
67
67
  for (let i = 0; i < length; i++)
68
68
  randomValues.push(randint(1, 20));
69
69
  const randomQuartile = randint(0, 2);
@@ -87,7 +87,7 @@ const getQuestionFromIdentifiers = (identifiers, opts) => {
87
87
  return question;
88
88
  };
89
89
  const optsDefault = {
90
- nbValues: 12,
90
+ nbValues: "12",
91
91
  };
92
92
  const options = [
93
93
  {
@@ -95,7 +95,7 @@ const options = [
95
95
  label: "Nombre de valeurs dans la liste",
96
96
  target: GeneratorOptionTarget.generation,
97
97
  type: GeneratorOptionType.multiselect,
98
- values: [4, 5, 7, 8, 11, 12, 19, 20],
98
+ values: ["4", "5", "7", "8", "11", "12", "19", "20"],
99
99
  defaultValue: [optsDefault.nbValues],
100
100
  },
101
101
  ];
@@ -28,6 +28,5 @@ export * from "./motion/index.js";
28
28
  export * from "./dosage/index.js";
29
29
  export * from "./spectral/index.js";
30
30
  export * from "./power/index.js";
31
- export * from "./optics/index.js";
32
31
  export * from "./mathExosInPC.js";
33
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AAEtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AAEtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -28,5 +28,4 @@ export * from "./motion/index.js";
28
28
  export * from "./dosage/index.js";
29
29
  export * from "./spectral/index.js";
30
30
  export * from "./power/index.js";
31
- export * from "./optics/index.js";
32
31
  export * from "./mathExosInPC.js";
@@ -6,10 +6,8 @@ type Msr = {
6
6
  type Identifiers = {
7
7
  distance: Msr;
8
8
  time: Msr;
9
- opts: Options;
10
9
  };
11
10
  type Options = {
12
- acceptedInputType: string;
13
11
  unitTex: string;
14
12
  };
15
13
  export declare const averageSpeed: Exercise<Identifiers, Options>;
@@ -1 +1 @@
1
- {"version":3,"file":"averageSpeed.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/averageSpeed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAerC,KAAK,GAAG,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AA0NF,KAAK,OAAO,GAAG;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAsBF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAcvD,CAAC"}
1
+ {"version":3,"file":"averageSpeed.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/averageSpeed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAerC,KAAK,GAAG,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAkOF,KAAK,OAAO,GAAG;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqBF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAcvD,CAAC"}
@@ -11,20 +11,23 @@ import { VariableNode } from "../../../tree/nodes/variables/variableNode.js";
11
11
  import { parseAlgebraic } from "../../../tree/parsers/latexParser.js";
12
12
  const timeUnits = [TimeUnit.h, TimeUnit.min];
13
13
  const distanceUnitValues = [DistanceUnit.km, DistanceUnit.m];
14
- const getAcceptedInputTypesSentence = (identifiers) => {
15
- const { opts } = identifiers;
14
+ const getAcceptedInputTypesSentence = (acceptedInputType) => {
16
15
  return `Donner le résultat
17
16
  ${(() => {
18
- switch (opts.acceptedInputType) {
17
+ switch (acceptedInputType) {
19
18
  case "exact":
20
19
  return "sous forme exacte";
21
- case "significant(3)":
20
+ default:
21
+ case "arrondi avec 3 chiffres significatifs":
22
22
  return "approché avec $3$ chiffres significatifs";
23
23
  }
24
24
  })()}.`;
25
25
  };
26
- const getInstruction = (identifiers) => {
27
- const { distance, time, opts } = identifiers;
26
+ const getInstruction = (identifiers, optsIn) => {
27
+ const opts = optsIn ?? optsDefault;
28
+ const acceptedInputType = "arrondi avec 3 chiffres significatifs";
29
+ const { distance, time } = identifiers;
30
+ const { unitTex } = opts;
28
31
  const distanceMeasure = new Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]);
29
32
  const timeMeasure = new Measure(time.value, 0, timeUnits[time.unitIndex]);
30
33
  const instruction = `Soit un objet parcourant $${distanceMeasure.toTex({
@@ -32,26 +35,30 @@ const getInstruction = (identifiers) => {
32
35
  })}$ en $${timeMeasure.toTex({ notScientific: true })}$.
33
36
 
34
37
 
35
- Calculer la vitesse moyenne de cet objet en $${opts.unitTex}$.
38
+ Calculer la vitesse moyenne de cet objet en ${unitTex}.
36
39
 
37
- ${getAcceptedInputTypesSentence(identifiers)}
40
+ ${getAcceptedInputTypesSentence(acceptedInputType)}
38
41
  `;
39
42
  return instruction;
40
43
  };
41
- const getHint = ({ opts }) => {
44
+ const getHint = (_, optsIn) => {
45
+ const opts = optsIn ?? optsDefault;
46
+ const unlatexUnit = opts.unitTex.substring(1, opts.unitTex.length - 1);
42
47
  return `La vitesse moyenne est donnée par :
43
48
 
44
49
  $$
45
- \\frac{\\text{distance}}{\\text{temps}} \\ ${opts.unitTex}
50
+ \\frac{\\text{distance}}{\\text{temps}} \\ ${unlatexUnit}
46
51
  $$`;
47
52
  };
48
- const getCorrection = (identifiers) => {
49
- const { distance, time, opts } = identifiers;
53
+ const getCorrection = (identifiers, optsIn) => {
54
+ const opts = optsIn ?? optsDefault;
55
+ const { distance, time } = identifiers;
50
56
  let correction = ``;
51
57
  const distanceMeasure = new Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]).convert("m");
52
58
  const timeMeasure = new Measure(time.value, 0, timeUnits[time.unitIndex]).convert("s");
53
59
  const calcul = new FractionNode(new VariableNode(distanceMeasure.toTex()), new VariableNode(timeMeasure.toTex()));
54
60
  const answer = getAnswer(identifiers);
61
+ const unlatexUnit = opts.unitTex.substring(1, opts.unitTex.length - 1);
55
62
  if (distance.unitIndex === 0)
56
63
  correction = `- On convertit les $\\textrm{km}$ en $\\textrm{m}$ : $1\\ \\textrm{km}=1000\\ \\textrm{m}$.
57
64
 
@@ -84,7 +91,7 @@ $$
84
91
  }
85
92
  return `${correction}
86
93
  - On applique la règle de calcul pour la vitesse moyenne : $${calcul.toTex()}$
87
- - On arrondit à la toute fin : $${calcul.toTex()} \\approx ${answer} \\ ${opts.unitTex}$`;
94
+ - On arrondit à la toute fin : $${calcul.toTex()} \\approx ${answer} \\ ${unlatexUnit}$`;
88
95
  };
89
96
  const getAnswer = (identifiers) => {
90
97
  return getAnswerMeasure(identifiers).toTex({ hideUnit: true });
@@ -103,12 +110,14 @@ const isAnswerValid = (ans, { answer, ...identifiers }) => {
103
110
  const answerNode = parseAlgebraic(getAnswerMeasure(identifiers).toTex({ hideUnit: true }));
104
111
  return substract(ansNode, answerNode).simplify().evaluate() === 0;
105
112
  };
106
- const getPropositions = (n, { answer, distance, time, opts }) => {
113
+ const getPropositions = (n, { answer, distance, time }, optsIn) => {
114
+ const opts = optsIn ?? optsDefault;
107
115
  const propositions = [];
108
- addValidProp(propositions, `${answer} \\ ${opts.unitTex}`);
116
+ const unlatexUnit = opts.unitTex.substring(1, opts.unitTex.length - 1);
117
+ addValidProp(propositions, `${answer} \\ ${unlatexUnit}`);
109
118
  const distanceMeasure = new Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]);
110
119
  const timeMeasure = new Measure(time.value, 0, timeUnits[time.unitIndex]);
111
- generatePropositions(distanceMeasure, timeMeasure).forEach((value) => tryToAddWrongProp(propositions, `${value} \\ ${opts.unitTex}`));
120
+ generatePropositions(distanceMeasure, timeMeasure).forEach((value) => tryToAddWrongProp(propositions, `${value} \\ ${unlatexUnit}`));
112
121
  const division = distanceMeasure
113
122
  .convert("m")
114
123
  .divide(timeMeasure.convert("s"));
@@ -118,7 +127,7 @@ const getPropositions = (n, { answer, distance, time, opts }) => {
118
127
  const valueTex = new Measure(random, 0, division.getUnit())
119
128
  .toSignificant(2)
120
129
  .toTex({ hideUnit: true });
121
- tryToAddWrongProp(propositions, `${valueTex} \\ ${opts.unitTex}`);
130
+ tryToAddWrongProp(propositions, `${valueTex} \\ ${unlatexUnit}`);
122
131
  });
123
132
  return shuffleProps(propositions, n);
124
133
  };
@@ -135,42 +144,28 @@ const generatePropositions = (distance, time) => {
135
144
  distance.divide(time).toSignificant(2).toTex({ hideUnit: true }),
136
145
  ];
137
146
  };
138
- const getKeys = () => {
139
- return [];
140
- // return [`\\text{m} \\cdot \\text{s}^{-1}`].map((tex) => {
141
- // return {
142
- // id: "custom",
143
- // label: tex,
144
- // labelType: "raw",
145
- // mathfieldInstructions: {
146
- // method: "write",
147
- // content: tex,
148
- // },
149
- // } as KeyProps;
150
- // });
151
- };
152
147
  const getAverageSpeedQuestion = (optsIn) => {
153
- const opts = Object.assign(optsDefault, optsIn) ?? optsDefault;
148
+ const opts = optsIn ?? optsDefault;
154
149
  const distance = { value: randint(70, 151), unitIndex: randint(0, 2) };
155
150
  const time = { value: randint(10, 61), unitIndex: randint(0, 2) };
156
- const identifiers = { distance, time, opts };
157
- return getQuestionFromIdentifiers(identifiers);
151
+ const identifiers = { distance, time };
152
+ return getQuestionFromIdentifiers(identifiers, opts);
158
153
  };
159
- const getQuestionFromIdentifiers = (identifiers) => {
154
+ const getQuestionFromIdentifiers = (identifiers, opts) => {
160
155
  const question = {
161
- answer: getAnswer(identifiers),
162
- instruction: getInstruction(identifiers),
163
- keys: getKeys(identifiers),
164
- hint: getHint(identifiers),
165
- correction: getCorrection(identifiers),
156
+ answer: getAnswer(identifiers, opts),
157
+ instruction: getInstruction(identifiers, opts),
158
+ keys: [],
159
+ hint: getHint(identifiers, opts),
160
+ correction: getCorrection(identifiers, opts),
166
161
  answerFormat: "tex",
167
162
  identifiers,
163
+ options: opts,
168
164
  };
169
165
  return question;
170
166
  };
171
167
  const optsDefault = {
172
- acceptedInputType: "significant(3)",
173
- unitTex: "\\text{m} \\cdot \\text{s}^{-1}",
168
+ unitTex: "$\\text{m} \\cdot \\text{s}^{-1}$",
174
169
  };
175
170
  const options = [
176
171
  {
@@ -179,9 +174,9 @@ const options = [
179
174
  target: GeneratorOptionTarget.generation,
180
175
  type: GeneratorOptionType.select,
181
176
  values: [
182
- "\\text{m} \\cdot \\text{s}^{-1}",
183
- "\\text{m/s}",
184
- "\\text{s} \\cdot \\text{m}^{-1}",
177
+ "$\\text{m} \\cdot \\text{s}^{-1}$",
178
+ "$\\text{m/s}$",
179
+ "$\\text{s} \\cdot \\text{m}^{-1}$",
185
180
  ],
186
181
  defaultValue: optsDefault.unitTex,
187
182
  },
@@ -9,12 +9,11 @@ type Identifiers = {
9
9
  type DistanceType = "distance focale" | "distance image" | "distance objet";
10
10
  type ImageType = "réelle finie" | "réelle infinie" | "imaginaire finie" | "imaginaire infinie";
11
11
  type UnitType = "cm" | "m";
12
- type RoundToType = 0 | 1 | 2;
13
12
  type Options = {
14
13
  typeDistance: DistanceType;
15
14
  typeImage: ImageType;
16
15
  unit: UnitType;
17
- roundTo: RoundToType;
16
+ roundTo: string;
18
17
  };
19
18
  export declare const lensFormula: Exercise<Identifiers, Options>;
20
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"lensFormula.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/optics/lensFormula.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAY7C,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,KAAK,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC5E,KAAK,SAAS,GACV,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,CAAC;AACzB,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;AAC3B,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,KAAK,OAAO,GAAG;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAwiBF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqBtD,CAAC"}
1
+ {"version":3,"file":"lensFormula.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/optics/lensFormula.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAY7C,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,KAAK,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC5E,KAAK,SAAS,GACV,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,CAAC;AACzB,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;AAE3B,KAAK,OAAO,GAAG;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqiBF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqBtD,CAAC"}
@@ -24,7 +24,7 @@ const optsDefault = {
24
24
  "imaginaire infinie",
25
25
  ],
26
26
  unit: ["cm", "m"],
27
- roundTo: [0, 1, 2],
27
+ roundTo: ["0", "1", "2"],
28
28
  };
29
29
  const options = [
30
30
  {
@@ -62,7 +62,7 @@ const options = [
62
62
  target: GeneratorOptionTarget.generation,
63
63
  type: GeneratorOptionType.multiselect,
64
64
  defaultValue: optsDefault.roundTo,
65
- values: [0, 1, 2],
65
+ values: ["0", "1", "2"],
66
66
  },
67
67
  ];
68
68
  const getLensFormulaEqualNode = () => {
@@ -76,11 +76,11 @@ const getInstruction = (identifiers) => {
76
76
  const nodeOAPrime = NodeConstructor.fromIdentifiers(OAPrime);
77
77
  const strRounTo = (() => {
78
78
  switch (opts.roundTo) {
79
- case 0:
79
+ case "0":
80
80
  return "à l'unité";
81
- case 1:
81
+ case "1":
82
82
  return "au dixième";
83
- case 2:
83
+ case "2":
84
84
  return "au centième";
85
85
  }
86
86
  })();
@@ -206,7 +206,7 @@ const getAnswer = (identifiers) => {
206
206
  case "distance objet":
207
207
  return nodeOA;
208
208
  }
209
- })().evaluate(), opts.roundTo).frenchify()}${opts.unit}`;
209
+ })().evaluate(), Number(opts.roundTo)).frenchify()}${opts.unit}`;
210
210
  };
211
211
  const isAnswerValid = (ans, { answer, ...identifiers }) => {
212
212
  const { opts } = identifiers;
@@ -287,11 +287,9 @@ const getLensFormulaQuestion = (optsIn) => {
287
287
  unit: optsIn?.unit,
288
288
  roundTo: (optsIn?.roundTo)
289
289
  .filter((a) => typeof a === "string")
290
- .map((str) => +str),
290
+ .map((str) => str),
291
291
  }
292
292
  : undefined;
293
- console.log("optsIn", optsIn);
294
- console.log("optsInRetyped", optsInRetyped);
295
293
  let nodeOFPrime = NaN.toTree();
296
294
  let nodeOA = NaN.toTree();
297
295
  let nodeOAPrime = NaN.toTree();
@@ -310,7 +308,6 @@ const getLensFormulaQuestion = (optsIn) => {
310
308
  unit: random(optsDefault.unit),
311
309
  roundTo: random(optsDefault.roundTo),
312
310
  };
313
- console.log("opts", opts);
314
311
  //objet réel: \\overline {OA} < 0
315
312
  //image réelle : \\overline {OA'} > 0
316
313
  function factorNodeForTypeImage(typeImage) {
@@ -1,13 +1,11 @@
1
1
  import { Exercise } from "../../../exercises/exercise.js";
2
2
  type Identifiers = {
3
3
  mass: number;
4
- optsIdent: Options;
5
4
  };
6
5
  type InputType = "decimal" | "sci";
7
- type NbDigitsType = 0 | 1 | 2;
8
6
  type Options = {
9
7
  inputType: InputType;
10
- nbDigits: NbDigitsType;
8
+ nbDigits: string;
11
9
  };
12
10
  export declare const calculateWeight: Exercise<Identifiers, Options>;
13
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"calculateWeight.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/weight/calculateWeight.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AACnC,KAAK,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE9B,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAuMF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAc1D,CAAC"}
1
+ {"version":3,"file":"calculateWeight.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/weight/calculateWeight.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAEnC,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAkNF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAc1D,CAAC"}