math-exercises 2.2.80 → 2.2.82

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 (115) hide show
  1. package/lib/exercises/math/calcul/arithmetics/divisibiltyCriteria.d.ts.map +1 -1
  2. package/lib/exercises/math/calcul/arithmetics/divisibiltyCriteria.js +1 -0
  3. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType2.d.ts +4 -1
  4. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType2.d.ts.map +1 -1
  5. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType2.js +79 -30
  6. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.d.ts +4 -1
  7. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.d.ts.map +1 -1
  8. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.js +89 -39
  9. package/lib/exercises/math/calculLitteral/inequations/squareFunctionInequation.d.ts.map +1 -1
  10. package/lib/exercises/math/calculLitteral/inequations/squareFunctionInequation.js +37 -17
  11. package/lib/exercises/math/calculLitteral/simplifying/evaluateExpression.d.ts.map +1 -1
  12. package/lib/exercises/math/calculLitteral/simplifying/evaluateExpression.js +55 -15
  13. package/lib/exercises/math/derivation/derivative/convexityQuadrinomials.d.ts.map +1 -1
  14. package/lib/exercises/math/derivation/derivative/convexityQuadrinomials.js +9 -18
  15. package/lib/exercises/math/derivation/derivative/lnDerivativeThree.d.ts.map +1 -1
  16. package/lib/exercises/math/derivation/derivative/lnDerivativeThree.js +3 -0
  17. package/lib/exercises/math/derivation/derivative/thirdDegreeFunctionVariation.d.ts.map +1 -1
  18. package/lib/exercises/math/derivation/derivative/thirdDegreeFunctionVariation.js +11 -11
  19. package/lib/exercises/math/functions/absolute/absolueValueInequationsSup.d.ts.map +1 -1
  20. package/lib/exercises/math/functions/absolute/absolueValueInequationsSup.js +10 -2
  21. package/lib/exercises/math/functions/absolute/absoluteValueInequations.d.ts.map +1 -1
  22. package/lib/exercises/math/functions/absolute/absoluteValueInequations.js +11 -4
  23. package/lib/exercises/math/functions/basics/graphicEquation.d.ts.map +1 -1
  24. package/lib/exercises/math/functions/basics/graphicEquation.js +46 -28
  25. package/lib/exercises/math/functions/basics/graphicInequation.d.ts.map +1 -1
  26. package/lib/exercises/math/functions/basics/graphicInequation.js +0 -1
  27. package/lib/exercises/math/functions/basics/graphicInequationAffine.d.ts.map +1 -1
  28. package/lib/exercises/math/functions/basics/graphicInequationAffine.js +10 -3
  29. package/lib/exercises/math/functions/basics/twoFunctionsInequation.d.ts.map +1 -1
  30. package/lib/exercises/math/functions/basics/twoFunctionsInequation.js +74 -58
  31. package/lib/exercises/math/functions/exponentials/exponentialsVariations.d.ts.map +1 -1
  32. package/lib/exercises/math/functions/exponentials/exponentialsVariations.js +1 -0
  33. package/lib/exercises/math/functions/logarithm/log10Simplifying.d.ts +5 -2
  34. package/lib/exercises/math/functions/logarithm/log10Simplifying.d.ts.map +1 -1
  35. package/lib/exercises/math/functions/logarithm/log10Simplifying.js +2 -0
  36. package/lib/exercises/math/functions/logarithm/logEquation.d.ts.map +1 -1
  37. package/lib/exercises/math/functions/logarithm/logEquation.js +1 -0
  38. package/lib/exercises/math/functions/logarithm/logPowerEquation.d.ts +5 -2
  39. package/lib/exercises/math/functions/logarithm/logPowerEquation.d.ts.map +1 -1
  40. package/lib/exercises/math/functions/logarithm/logPowerEquation.js +2 -0
  41. package/lib/exercises/math/functions/logarithm/logSimplifiying.d.ts.map +1 -1
  42. package/lib/exercises/math/functions/logarithm/logSimplifiying.js +1 -0
  43. package/lib/exercises/math/functions/square/squareImageInterval.d.ts.map +1 -1
  44. package/lib/exercises/math/functions/square/squareImageInterval.js +13 -4
  45. package/lib/exercises/math/functions/trinoms/secondDegreeInequation.d.ts.map +1 -1
  46. package/lib/exercises/math/functions/trinoms/secondDegreeInequation.js +10 -6
  47. package/lib/exercises/math/functions/trinoms/trinomSignFromRoots.d.ts.map +1 -1
  48. package/lib/exercises/math/functions/trinoms/trinomSignFromRoots.js +12 -6
  49. package/lib/exercises/math/geometry/convexity/convexityQuadrinomialsGeo.d.ts.map +1 -1
  50. package/lib/exercises/math/geometry/convexity/convexityQuadrinomialsGeo.js +9 -14
  51. package/lib/exercises/math/matrices/matrixInversibilityDomain.d.ts.map +1 -1
  52. package/lib/exercises/math/matrices/matrixInversibilityDomain.js +15 -2
  53. package/lib/exercises/math/probaStat/binomial/binomialInequation.d.ts.map +1 -1
  54. package/lib/exercises/math/python/pyForLoop1Exercise.d.ts.map +1 -1
  55. package/lib/exercises/math/sequences/genericSequenceVariations.d.ts.map +1 -1
  56. package/lib/exercises/math/sets/intervals/inequalityToInterval.d.ts +2 -4
  57. package/lib/exercises/math/sets/intervals/inequalityToInterval.d.ts.map +1 -1
  58. package/lib/exercises/math/sets/intervals/inequalityToInterval.js +28 -25
  59. package/lib/exercises/math/sets/intervals/intervalToInequality.d.ts +2 -4
  60. package/lib/exercises/math/sets/intervals/intervalToInequality.d.ts.map +1 -1
  61. package/lib/exercises/math/sets/intervals/intervalToInequality.js +40 -78
  62. package/lib/exercises/math/sets/intervals/intervalsIntersection.d.ts +3 -7
  63. package/lib/exercises/math/sets/intervals/intervalsIntersection.d.ts.map +1 -1
  64. package/lib/exercises/math/sets/intervals/intervalsIntersection.js +91 -31
  65. package/lib/exercises/math/sets/intervals/intervalsUnion.d.ts +3 -7
  66. package/lib/exercises/math/sets/intervals/intervalsUnion.d.ts.map +1 -1
  67. package/lib/exercises/math/sets/intervals/intervalsUnion.js +58 -19
  68. package/lib/exercises/pc/index.d.ts +4 -0
  69. package/lib/exercises/pc/index.d.ts.map +1 -1
  70. package/lib/exercises/pc/index.js +4 -6
  71. package/lib/exercises/vea/equationVEA.js +2 -2
  72. package/lib/geogebra/lagrange.d.ts.map +1 -1
  73. package/lib/geogebra/spline.d.ts.map +1 -1
  74. package/lib/index.d.ts +49 -23
  75. package/lib/index.d.ts.map +1 -1
  76. package/lib/math/geometry/point.d.ts.map +1 -1
  77. package/lib/math/inequations/inequation.d.ts +1 -1
  78. package/lib/math/inequations/inequation.d.ts.map +1 -1
  79. package/lib/math/numbers/integer/integer.d.ts.map +1 -1
  80. package/lib/math/numbers/rationals/rational.d.ts +2 -3
  81. package/lib/math/numbers/rationals/rational.d.ts.map +1 -1
  82. package/lib/math/polynomials/trinom.d.ts +2 -4
  83. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  84. package/lib/playground.d.ts.map +1 -1
  85. package/lib/playground.js +4 -4
  86. package/lib/tree/nodes/equations/equationSolutionNode.d.ts +0 -1
  87. package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
  88. package/lib/tree/nodes/equations/equationSolutionNode.js +0 -3
  89. package/lib/tree/nodes/inequations/inequationNode.d.ts +2 -1
  90. package/lib/tree/nodes/inequations/inequationNode.d.ts.map +1 -1
  91. package/lib/tree/nodes/inequations/inequationNode.js +4 -3
  92. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +0 -1
  93. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  94. package/lib/tree/nodes/inequations/inequationSolutionNode.js +0 -3
  95. package/lib/tree/nodes/numbers/numberNode.d.ts +1 -1
  96. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  97. package/lib/tree/nodes/operators/multiplyNode.js +6 -1
  98. package/lib/tree/nodes/sets/closure.d.ts +5 -0
  99. package/lib/tree/nodes/sets/closure.d.ts.map +1 -1
  100. package/lib/tree/nodes/sets/closure.js +32 -0
  101. package/lib/tree/nodes/sets/discreteSetNode.d.ts +4 -4
  102. package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
  103. package/lib/tree/nodes/sets/discreteSetNode.js +3 -4
  104. package/lib/tree/nodes/sets/intervalNode.d.ts +13 -1
  105. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  106. package/lib/tree/nodes/sets/intervalNode.js +154 -3
  107. package/lib/tree/parsers/discreteSetParser.d.ts +2 -2
  108. package/lib/tree/parsers/discreteSetParser.d.ts.map +1 -1
  109. package/lib/tree/parsers/discreteSetParser.js +2 -1
  110. package/lib/tree/parsers/equationSolutionParser.js +1 -1
  111. package/lib/tree/parsers/powerParser.d.ts +1 -1
  112. package/lib/tree/parsers/rationalParser.d.ts +1 -1
  113. package/lib/tree/parsers/unionIntervalParser.d.ts.map +1 -1
  114. package/lib/tree/parsers/unionIntervalParser.js +3 -1
  115. package/package.json +1 -1
@@ -12,6 +12,7 @@ const numberNode_1 = require("../../../../tree/nodes/numbers/numberNode");
12
12
  const closure_1 = require("../../../../tree/nodes/sets/closure");
13
13
  const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
14
14
  const unionIntervalNode_1 = require("../../../../tree/nodes/sets/unionIntervalNode");
15
+ const unionIntervalParser_1 = require("../../../../tree/parsers/unionIntervalParser");
15
16
  const getAnswer = ({ a, roots, ineqType }) => {
16
17
  const aPositive = a > 0;
17
18
  const insideInterval = new intervalNode_1.IntervalNode(roots[0], roots[1], ineqType.isStrict ? closure_1.ClosureType.OO : closure_1.ClosureType.FF);
@@ -76,12 +77,15 @@ const getPropositions = (n, { answer, a, b, c, ineqType }) => {
76
77
  return (0, exercise_1.shuffleProps)(propositions, n);
77
78
  };
78
79
  const isAnswerValid = (ans, { answer, a, b, c, ineqType }) => {
79
- const trinom = new trinom_1.Trinom(a, b, c);
80
- const roots = trinom.getRootsNode();
81
- const ineq = new inequation_1.InequationSymbol(ineqType);
82
- const tree = getAnswer({ a, ineqType: ineq, roots });
83
- const texs = tree.toAllValidTexs();
84
- return texs.includes(ans);
80
+ try {
81
+ const parsed = (0, unionIntervalParser_1.unionIntervalParser)(ans.replaceAll("S", "").replaceAll("=", ""));
82
+ if (!parsed)
83
+ return false;
84
+ return "S=\\ " + parsed.simplify().toTex() === answer;
85
+ }
86
+ catch (err) {
87
+ return false;
88
+ }
85
89
  };
86
90
  exports.secondDegreeInequation = {
87
91
  id: "secondDegreeInequation",
@@ -1 +1 @@
1
- {"version":3,"file":"trinomSignFromRoots.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/trinoms/trinomSignFromRoots.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAmHF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAgBrD,CAAC"}
1
+ {"version":3,"file":"trinomSignFromRoots.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/trinoms/trinomSignFromRoots.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,0BAA0B,CAAC;AAiBlC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAuHF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAgBrD,CAAC"}
@@ -4,12 +4,12 @@ exports.trinomSignFromRoots = void 0;
4
4
  const exercise_1 = require("../../../../exercises/exercise");
5
5
  const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
6
  const trinomNode_1 = require("../../../../tree/nodes/polynomials/trinomNode");
7
- const intervals_1 = require("../../../../math/sets/intervals/intervals");
8
7
  const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
9
8
  const closure_1 = require("../../../../tree/nodes/sets/closure");
10
9
  const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
11
10
  const unionIntervalNode_1 = require("../../../../tree/nodes/sets/unionIntervalNode");
12
11
  const coinFlip_1 = require("../../../../utils/alea/coinFlip");
12
+ const unionIntervalParser_1 = require("../../../../tree/parsers/unionIntervalParser");
13
13
  const getPropositions = (n, { answer, trinomCoeffs, isAskingPositive }) => {
14
14
  const propositions = [];
15
15
  (0, exercise_1.addValidProp)(propositions, answer);
@@ -20,8 +20,8 @@ const getPropositions = (n, { answer, trinomCoeffs, isAskingPositive }) => {
20
20
  (0, exercise_1.tryToAddWrongProp)(propositions, getAnswer({ trinomCoeffs, isAskingPositive: !isAskingPositive }));
21
21
  (0, exercise_1.tryToAddWrongProp)(propositions, new intervalNode_1.IntervalNode(trinom.a, trinom.b, closure_1.ClosureType.FF).toTex());
22
22
  while (propositions.length < n) {
23
- const interval = intervals_1.IntervalConstructor.random();
24
- (0, exercise_1.tryToAddWrongProp)(propositions, interval.toTree().toTex());
23
+ const interval = intervalNode_1.IntervalNodeConstructor.random();
24
+ (0, exercise_1.tryToAddWrongProp)(propositions, interval.toTex());
25
25
  }
26
26
  return (0, exercise_1.shuffleProps)(propositions, n);
27
27
  };
@@ -74,9 +74,15 @@ const getKeys = (identifiers) => {
74
74
  return ["lbracket", "semicolon", "rbracket", "infty", "cup"];
75
75
  };
76
76
  const isAnswerValid = (ans, { answer, isAskingPositive, trinomCoeffs }) => {
77
- const ansNode = getAnswerNode({ isAskingPositive, trinomCoeffs });
78
- const texs = ansNode.toAllValidTexs();
79
- return texs.includes(ans);
77
+ try {
78
+ const parsed = (0, unionIntervalParser_1.unionIntervalParser)(ans);
79
+ if (!parsed)
80
+ return false;
81
+ return parsed.simplify().toTex() === answer;
82
+ }
83
+ catch (err) {
84
+ return false;
85
+ }
80
86
  };
81
87
  const getTrinomSignFromRootsQuestion = () => {
82
88
  const trinom = trinomNode_1.TrinomNodeConstructor.randomNiceRoots(2);
@@ -1 +1 @@
1
- {"version":3,"file":"convexityQuadrinomialsGeo.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/convexity/convexityQuadrinomialsGeo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAoBlC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AA0LF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAc3D,CAAC"}
1
+ {"version":3,"file":"convexityQuadrinomialsGeo.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/convexity/convexityQuadrinomialsGeo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAqBlC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AA8JF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAc3D,CAAC"}
@@ -11,6 +11,7 @@ const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
11
11
  const numberNode_1 = require("../../../../tree/nodes/numbers/numberNode");
12
12
  const closure_1 = require("../../../../tree/nodes/sets/closure");
13
13
  const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
14
+ const intervalParser_1 = require("../../../../tree/parsers/intervalParser");
14
15
  const coinFlip_1 = require("../../../../utils/alea/coinFlip");
15
16
  function generatePolynomialWithIntegerInflexionPoint(degree, inflexionPointX) {
16
17
  let a, b, c, discriminant;
@@ -95,22 +96,16 @@ const getPropositions = (n, { answer, inflexionPoint }) => {
95
96
  (0, exercise_1.tryToAddWrongProp)(propositions, wrongInterval4);
96
97
  return (0, exercise_1.shuffleProps)(propositions, n);
97
98
  };
98
- const isAnswerValid = (ans, { askConvex, quadcoeffs, inflexionPoint }) => {
99
- let interval;
100
- if (askConvex) {
101
- interval =
102
- quadcoeffs[3] > 0
103
- ? new intervalNode_1.IntervalNode(inflexionPoint.toTree(), infiniteNode_1.PlusInfinityNode, closure_1.ClosureType.OO)
104
- : new intervalNode_1.IntervalNode(infiniteNode_1.MinusInfinityNode, inflexionPoint.toTree(), closure_1.ClosureType.OO);
99
+ const isAnswerValid = (ans, { answer }) => {
100
+ try {
101
+ const parsed = (0, intervalParser_1.intervalParser)(ans);
102
+ if (!parsed)
103
+ return false;
104
+ return parsed.simplify().toTex() === answer;
105
105
  }
106
- else {
107
- interval =
108
- quadcoeffs[3] <= 0
109
- ? new intervalNode_1.IntervalNode(inflexionPoint.toTree(), infiniteNode_1.PlusInfinityNode, closure_1.ClosureType.OO)
110
- : new intervalNode_1.IntervalNode(infiniteNode_1.MinusInfinityNode, inflexionPoint.toTree(), closure_1.ClosureType.OO);
106
+ catch (err) {
107
+ return false;
111
108
  }
112
- const latexs = interval.toAllValidTexs({});
113
- return latexs.includes(ans);
114
109
  };
115
110
  exports.convexityQuadrinomialsGeo = {
116
111
  id: "convexityQuadrinomialsGeo",
@@ -1 +1 @@
1
- {"version":3,"file":"matrixInversibilityDomain.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/matrices/matrixInversibilityDomain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAyBlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA0FF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAc3D,CAAC"}
1
+ {"version":3,"file":"matrixInversibilityDomain.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/matrices/matrixInversibilityDomain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AA0BlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAoGF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAc3D,CAAC"}
@@ -17,6 +17,7 @@ const intervalNode_1 = require("../../../tree/nodes/sets/intervalNode");
17
17
  const unionIntervalNode_1 = require("../../../tree/nodes/sets/unionIntervalNode");
18
18
  const variableNode_1 = require("../../../tree/nodes/variables/variableNode");
19
19
  const latexParser_1 = require("../../../tree/parsers/latexParser");
20
+ const unionIntervalParser_1 = require("../../../tree/parsers/unionIntervalParser");
20
21
  const intervalKeys_1 = require("../../utils/keys/intervalKeys");
21
22
  const getMatrixInversibilityDomainQuestion = () => {
22
23
  const elements = [[], []];
@@ -50,7 +51,9 @@ const getMatrixInversibilityDomainQuestion = () => {
50
51
  ]).toTex();
51
52
  const question = {
52
53
  answer,
53
- instruction: `Soit $M = ${matrix.toTex()}$, où $x\\in \\mathbb{R}$. Sur quel ensemble la matrice $M$ est-elle inversible ?
54
+ instruction: `Soit $M = ${matrix.toTex()}$, où $x\\in \\mathbb{R}$.
55
+
56
+ Sur quel ensemble la matrice $M$ est-elle inversible ?
54
57
  `,
55
58
  keys: [...intervalKeys_1.intervalKeys, "reals", "varnothing"],
56
59
  answerFormat: "tex",
@@ -78,7 +81,17 @@ const getPropositions = (n, { answer, a, b, c, d }) => {
78
81
  return (0, exercise_1.shuffleProps)(propositions, n);
79
82
  };
80
83
  const isAnswerValid = (ans, { answer }) => {
81
- return ans === answer;
84
+ try {
85
+ if (answer === "\\mathbb{R}" || answer === "\\varnothing")
86
+ return ans === answer;
87
+ const parsed = (0, unionIntervalParser_1.unionIntervalParser)(ans);
88
+ if (!parsed)
89
+ return false;
90
+ return parsed.simplify().toTex() === answer;
91
+ }
92
+ catch (err) {
93
+ return false;
94
+ }
82
95
  };
83
96
  exports.matrixInversibilityDomain = {
84
97
  id: "matrixInversibilityDomain",
@@ -1 +1 @@
1
- {"version":3,"file":"binomialInequation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/binomial/binomialInequation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EAEL,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAEL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,eAAe,CAAC;IACnB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAgKF,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAgBF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAuB7D,CAAC"}
1
+ {"version":3,"file":"binomialInequation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/binomial/binomialInequation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAEL,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAEL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,eAAe,CAAC;IACnB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAgKF,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAgBF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAuB7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pyForLoop1Exercise.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/pyForLoop1Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAOF,KAAK,cAAc,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AA6KF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAaxD,CAAC"}
1
+ {"version":3,"file":"pyForLoop1Exercise.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/pyForLoop1Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AASlC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAOF,KAAK,cAAc,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AA6KF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAaxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"genericSequenceVariations.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sequences/genericSequenceVariations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAOlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAmDF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAe3D,CAAC"}
1
+ {"version":3,"file":"genericSequenceVariations.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sequences/genericSequenceVariations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAMlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAmDF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAe3D,CAAC"}
@@ -1,9 +1,7 @@
1
1
  import { Exercise } from "../../../../exercises/exercise";
2
- import { ClosureType } from "../../../../tree/nodes/sets/closure";
2
+ import { IntervalNodeIdentifiers } from "../../../../tree/nodes/sets/intervalNode";
3
3
  type Identifiers = {
4
- intervalMin: number | string;
5
- intervalMax: number | string;
6
- intervalClosure: ClosureType;
4
+ intervalIdentifiers: IntervalNodeIdentifiers;
7
5
  };
8
6
  export declare const inequalityToInterval: Exercise<Identifiers>;
9
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"inequalityToInterval.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/inequalityToInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAO5D,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,eAAe,EAAE,WAAW,CAAC;CAC9B,CAAC;AAkFF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CActD,CAAC"}
1
+ {"version":3,"file":"inequalityToInterval.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/inequalityToInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAGL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAI5C,KAAK,WAAW,GAAG;IAIjB,mBAAmB,EAAE,uBAAuB,CAAC;CAC9C,CAAC;AAoFF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
@@ -3,14 +3,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.inequalityToInterval = void 0;
4
4
  const exercise_1 = require("../../../../exercises/exercise");
5
5
  const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
- const intervals_1 = require("../../../../math/sets/intervals/intervals");
6
+ const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
7
+ const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
7
8
  const intervalParser_1 = require("../../../../tree/parsers/intervalParser");
8
9
  const shuffle_1 = require("../../../../utils/alea/shuffle");
10
+ const rebuildIdentifiers = (oldIds) => {
11
+ const a = oldIds.intervalMin === "-infty"
12
+ ? infiniteNode_1.MinusInfinityNode
13
+ : oldIds.intervalMin.toTree();
14
+ const b = oldIds.intervalMax === "infty"
15
+ ? infiniteNode_1.PlusInfinityNode
16
+ : oldIds.intervalMax.toTree();
17
+ const closure = oldIds.intervalClosure;
18
+ const interval = new intervalNode_1.IntervalNode(a, b, closure);
19
+ return { intervalIdentifiers: interval.toIdentifiers() };
20
+ };
9
21
  const getInequalityToIntervalQuestion = () => {
10
- const interval = intervals_1.IntervalConstructor.random();
11
- const inequalityString = interval.toInequality();
22
+ const interval = intervalNode_1.IntervalNodeConstructor.random();
23
+ const inequality = interval.toInequality();
12
24
  const answer = `x\\in\\ ${interval.toTex()}`;
13
- const instruction = `Soit $${inequalityString}$. Traduire cette inégalité en appartenance à un intervalle.`;
25
+ const instruction = `Soit $${inequality.toTex()}$. Traduire cette inégalité en appartenance à un intervalle.`;
26
+ const identifiers = {
27
+ intervalIdentifiers: interval.toIdentifiers(),
28
+ };
14
29
  const question = {
15
30
  answer,
16
31
  instruction: instruction,
@@ -27,34 +42,21 @@ const getInequalityToIntervalQuestion = () => {
27
42
  "infty",
28
43
  ],
29
44
  answerFormat: "tex",
30
- identifiers: {
31
- intervalMin: interval.min === -Infinity ? "-infty" : interval.min,
32
- intervalMax: interval.max === Infinity ? "infty" : interval.max,
33
- intervalClosure: interval.closure,
34
- },
45
+ identifiers,
35
46
  };
36
47
  return question;
37
48
  };
38
- const getPropositions = (n, { answer, intervalClosure, intervalMax, intervalMin }) => {
39
- const reverseBracket = (bracket) => {
40
- return bracket === "[" ? "]" : "[";
41
- };
42
- const min = intervalMin === "-infty" ? -Infinity : intervalMin;
43
- const max = intervalMax === "infty" ? Infinity : intervalMax;
44
- const interval = new intervals_1.Interval(min.toTree(), max.toTree(), intervalClosure);
49
+ const getPropositions = (n, { answer, intervalIdentifiers }) => {
50
+ const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
45
51
  const propositions = [];
46
52
  (0, exercise_1.addValidProp)(propositions, answer);
47
- const wrongStatements = [
48
- `x\\in\\ ${reverseBracket(interval.leftBracket)}\\ ${interval.insideToTex()}\\ ${interval.rightBracket}\\ `,
49
- `x\\in\\ ${interval.leftBracket}\\ ${interval.insideToTex()}\\ ${reverseBracket(interval.rightBracket)}\\ `,
50
- `x\\in\\ ${reverseBracket(interval.leftBracket)}\\ ${interval.insideToTex()}\\ ${reverseBracket(interval.rightBracket)}\\ `,
51
- ];
52
- wrongStatements.forEach((ineq) => {
53
- (0, exercise_1.addWrongProp)(propositions, ineq);
54
- });
53
+ (0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " + interval.toLeftReversedClosure().toTex());
54
+ (0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " + interval.toRightReversedClosure().toTex());
55
+ (0, exercise_1.tryToAddWrongProp)(propositions, "x\\in\\ " +
56
+ interval.toLeftReversedClosure().toRightReversedClosure().toTex());
55
57
  return (0, shuffle_1.shuffle)(propositions);
56
58
  };
57
- const isAnswerValid = (ans, { intervalClosure, intervalMax, intervalMin, answer }) => {
59
+ const isAnswerValid = (ans, { answer }) => {
58
60
  try {
59
61
  const parsed = (0, intervalParser_1.intervalParser)(ans.replaceAll("x\\in", ""));
60
62
  if (!parsed)
@@ -78,4 +80,5 @@ exports.inequalityToInterval = {
78
80
  getPropositions,
79
81
  isAnswerValid,
80
82
  subject: "Mathématiques",
83
+ rebuildIdentifiers,
81
84
  };
@@ -1,9 +1,7 @@
1
1
  import { Exercise } from "../../../../exercises/exercise";
2
- import { ClosureType } from "../../../../tree/nodes/sets/closure";
2
+ import { IntervalNodeIdentifiers } from "../../../../tree/nodes/sets/intervalNode";
3
3
  type Identifiers = {
4
- intervalMin: number | string;
5
- intervalMax: number | string;
6
- intervalClosure: ClosureType;
4
+ intervalIdentifiers: IntervalNodeIdentifiers;
7
5
  };
8
6
  export declare const intervalToInequality: Exercise<Identifiers>;
9
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"intervalToInequality.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalToInequality.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAK5D,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,eAAe,EAAE,WAAW,CAAC;CAC9B,CAAC;AAkIF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CActD,CAAC"}
1
+ {"version":3,"file":"intervalToInequality.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalToInequality.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EAGL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IAIjB,mBAAmB,EAAE,uBAAuB,CAAC;CAC9C,CAAC;AA+EF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
@@ -3,97 +3,58 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.intervalToInequality = void 0;
4
4
  const exercise_1 = require("../../../../exercises/exercise");
5
5
  const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
- const intervals_1 = require("../../../../math/sets/intervals/intervals");
7
- const inequationNode_1 = require("../../../../tree/nodes/inequations/inequationNode");
8
- const numberNode_1 = require("../../../../tree/nodes/numbers/numberNode");
9
- const variableNode_1 = require("../../../../tree/nodes/variables/variableNode");
6
+ const infiniteNode_1 = require("../../../../tree/nodes/numbers/infiniteNode");
7
+ const intervalNode_1 = require("../../../../tree/nodes/sets/intervalNode");
10
8
  const shuffle_1 = require("../../../../utils/alea/shuffle");
9
+ const rebuildIdentifiers = (oldIds) => {
10
+ const a = oldIds.intervalMin === "-infty"
11
+ ? infiniteNode_1.MinusInfinityNode
12
+ : oldIds.intervalMin.toTree();
13
+ const b = oldIds.intervalMax === "infty"
14
+ ? infiniteNode_1.PlusInfinityNode
15
+ : oldIds.intervalMax.toTree();
16
+ const closure = oldIds.intervalClosure;
17
+ const interval = new intervalNode_1.IntervalNode(a, b, closure);
18
+ return { intervalIdentifiers: interval.toIdentifiers() };
19
+ };
20
+ const getInstruction = (identifiers) => {
21
+ const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.intervalIdentifiers);
22
+ return `Soit $x \\in ${interval.toTex()}$. Traduire cette appartenance en une inégalité.`;
23
+ };
24
+ const getAnswer = (identifiers) => {
25
+ const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(identifiers.intervalIdentifiers);
26
+ const inequality = interval.toInequality();
27
+ const answer = inequality.toTex();
28
+ return answer;
29
+ };
11
30
  const getIntervalToInequalityQuestion = () => {
12
- const interval = intervals_1.IntervalConstructor.random();
13
- const inequalityString = interval.toInequality();
14
- const answer = inequalityString;
15
- const instruction = `Soit $x \\in ${interval.toTex()}$. Traduire cette appartenance en une inégalité.`;
31
+ const interval = intervalNode_1.IntervalNodeConstructor.random();
32
+ const identifiers = {
33
+ intervalIdentifiers: interval.toIdentifiers(),
34
+ };
16
35
  const question = {
17
- answer,
18
- instruction: instruction,
36
+ answer: getAnswer(identifiers),
37
+ instruction: getInstruction(identifiers),
19
38
  keys: ["x", "inf", "sup", "geq", "leq", "infty"],
20
39
  answerFormat: "tex",
21
- identifiers: {
22
- intervalMin: interval.min === -Infinity ? "-infty" : interval.min,
23
- intervalMax: interval.max === Infinity ? "infty" : interval.max,
24
- intervalClosure: interval.closure,
25
- },
40
+ identifiers,
26
41
  };
27
42
  return question;
28
43
  };
29
- const getPropositions = (n, { answer, intervalClosure, intervalMax, intervalMin }) => {
30
- const switchInclusion = (symbol) => {
31
- if (symbol === "\\le")
32
- return "<";
33
- if (symbol === "<")
34
- return "\\le";
35
- if (symbol === ">")
36
- return "\\ge";
37
- return ">";
38
- };
39
- const reverseInequality = (symbol) => {
40
- if (symbol === "\\le")
41
- return "\\ge";
42
- if (symbol === "<")
43
- return ">";
44
- if (symbol === ">")
45
- return "<";
46
- return "\\le";
47
- };
48
- const min = intervalMin === "-infty" ? -Infinity : intervalMin;
49
- const max = intervalMax === "infty" ? Infinity : intervalMax;
50
- const interval = new intervals_1.Interval(min.toTree(), max.toTree(), intervalClosure);
44
+ const getPropositions = (n, { answer, intervalIdentifiers }) => {
45
+ const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
51
46
  const propositions = [];
52
47
  (0, exercise_1.addValidProp)(propositions, answer);
53
- const xNode = new variableNode_1.VariableNode("x");
54
- let wrongIneqs = [];
55
- if (interval.min === -Infinity) {
56
- wrongIneqs = [
57
- new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.max)], switchInclusion(interval.rightInequalitySymbol)),
58
- new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.max)], reverseInequality(switchInclusion(interval.rightInequalitySymbol))),
59
- new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.max)], reverseInequality(interval.rightInequalitySymbol)),
60
- ];
61
- }
62
- else if (interval.max === Infinity) {
63
- wrongIneqs = [
64
- new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.min)], switchInclusion(interval.leftInequalitySymbol)),
65
- new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.min)], reverseInequality(switchInclusion(interval.leftInequalitySymbol))),
66
- new inequationNode_1.InequationNode([xNode, new numberNode_1.NumberNode(interval.min)], interval.leftInequalitySymbol),
67
- ];
68
- }
69
- else {
70
- wrongIneqs = [
71
- new inequationNode_1.InequationNode([new numberNode_1.NumberNode(interval.min), xNode, new numberNode_1.NumberNode(interval.max)], [
72
- switchInclusion(interval.leftInequalitySymbol),
73
- interval.rightInequalitySymbol,
74
- ]),
75
- new inequationNode_1.InequationNode([new numberNode_1.NumberNode(interval.min), xNode, new numberNode_1.NumberNode(interval.max)], [
76
- interval.leftInequalitySymbol,
77
- switchInclusion(interval.rightInequalitySymbol),
78
- ]),
79
- new inequationNode_1.InequationNode([new numberNode_1.NumberNode(interval.min), xNode, new numberNode_1.NumberNode(interval.max)], [
80
- switchInclusion(interval.leftInequalitySymbol),
81
- switchInclusion(interval.rightInequalitySymbol),
82
- ]),
83
- ];
84
- }
85
- wrongIneqs.forEach((ineq) => {
86
- (0, exercise_1.addWrongProp)(propositions, ineq.toTex());
87
- });
48
+ const ineq = interval.toInequality();
49
+ (0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwicthedStrictness().toTex());
50
+ (0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwitched().toTex());
51
+ (0, exercise_1.tryToAddWrongProp)(propositions, ineq.toSwitched().toSwicthedStrictness().toTex());
88
52
  return (0, shuffle_1.shuffle)(propositions);
89
53
  };
90
- const isAnswerValid = (ans, { intervalClosure, intervalMax, intervalMin }) => {
91
- const min = intervalMin === "-infty" ? -Infinity : intervalMin;
92
- const max = intervalMax === "infty" ? Infinity : intervalMax;
93
- const interval = new intervals_1.Interval(min.toTree(), max.toTree(), intervalClosure).toTree();
54
+ const isAnswerValid = (ans, { answer, intervalIdentifiers }) => {
55
+ const interval = intervalNode_1.IntervalNodeConstructor.fromIdentifiers(intervalIdentifiers);
94
56
  const inequality = interval.toInequality();
95
- const answer = inequality;
96
- const texs = answer.toAllValidTexs();
57
+ const texs = inequality.toAllValidTexs();
97
58
  return texs.includes(ans);
98
59
  };
99
60
  exports.intervalToInequality = {
@@ -109,4 +70,5 @@ exports.intervalToInequality = {
109
70
  getPropositions,
110
71
  isAnswerValid,
111
72
  subject: "Mathématiques",
73
+ rebuildIdentifiers,
112
74
  };
@@ -1,12 +1,8 @@
1
1
  import { Exercise } from "../../../../exercises/exercise";
2
- import { ClosureType } from "../../../../tree/nodes/sets/closure";
2
+ import { IntervalNodeIdentifiers } from "../../../../tree/nodes/sets/intervalNode";
3
3
  type Identifiers = {
4
- int1Min: number;
5
- int1Max: number;
6
- int1Closure: ClosureType;
7
- int2Min: number;
8
- int2Max: number;
9
- int2Closure: ClosureType;
4
+ int1Identifiers: IntervalNodeIdentifiers;
5
+ int2Identifiers: IntervalNodeIdentifiers;
10
6
  };
11
7
  export declare const intervalsIntersection: Exercise<Identifiers>;
12
8
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"intervalsIntersection.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalsIntersection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAW,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAQrE,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AA6EF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAevD,CAAC"}
1
+ {"version":3,"file":"intervalsIntersection.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/intervals/intervalsIntersection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,0BAA0B,CAAC;AAYlC,OAAO,EAGL,uBAAuB,EAExB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IAOjB,eAAe,EAAE,uBAAuB,CAAC;IACzC,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AA4IF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAgBvD,CAAC"}