math-exercises 1.3.15 → 1.3.17

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 (303) hide show
  1. package/README.md +73 -73
  2. package/lib/exercises/calcul/addAndSub.d.ts +6 -6
  3. package/lib/exercises/calcul/addAndSub.js +39 -39
  4. package/lib/exercises/calcul/addAndSubWithoutRelatives.d.ts +7 -0
  5. package/lib/exercises/calcul/addAndSubWithoutRelatives.d.ts.map +1 -0
  6. package/lib/exercises/calcul/addAndSubWithoutRelatives.js +49 -0
  7. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.d.ts +3 -3
  8. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.js +35 -35
  9. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.d.ts +3 -3
  10. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.js +32 -32
  11. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.d.ts +3 -3
  12. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.js +32 -32
  13. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.d.ts +1 -0
  14. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.d.ts.map +1 -0
  15. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.js +53 -0
  16. package/lib/exercises/calcul/fractions/fractionsDivision.d.ts +3 -3
  17. package/lib/exercises/calcul/fractions/fractionsDivision.js +29 -29
  18. package/lib/exercises/calcul/fractions/fractionsProduct.d.ts +3 -3
  19. package/lib/exercises/calcul/fractions/fractionsProduct.js +28 -28
  20. package/lib/exercises/calcul/fractions/fractionsSum.d.ts +3 -3
  21. package/lib/exercises/calcul/fractions/fractionsSum.js +28 -28
  22. package/lib/exercises/calcul/fractions/simplifyFraction.d.ts +3 -3
  23. package/lib/exercises/calcul/fractions/simplifyFraction.js +24 -24
  24. package/lib/exercises/calcul/operations/operationsPriorities.d.ts +10 -10
  25. package/lib/exercises/calcul/operations/operationsPriorities.js +98 -98
  26. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.d.ts +10 -0
  27. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.d.ts.map +1 -1
  28. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.js +179 -111
  29. package/lib/exercises/calcul/rounding/rounding.d.ts +19 -19
  30. package/lib/exercises/calcul/rounding/rounding.js +85 -85
  31. package/lib/exercises/calculLitteral/distributivity/allIdentities.d.ts +3 -3
  32. package/lib/exercises/calculLitteral/distributivity/allIdentities.js +27 -27
  33. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.d.ts +3 -3
  34. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.js +30 -30
  35. package/lib/exercises/calculLitteral/distributivity/firstIdentity.d.ts +3 -3
  36. package/lib/exercises/calculLitteral/distributivity/firstIdentity.js +31 -31
  37. package/lib/exercises/calculLitteral/distributivity/secondIdentity.d.ts +3 -3
  38. package/lib/exercises/calculLitteral/distributivity/secondIdentity.js +32 -32
  39. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.d.ts +3 -3
  40. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.js +32 -32
  41. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.d.ts +3 -3
  42. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.js +31 -31
  43. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.d.ts +4 -0
  44. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.d.ts.map +1 -0
  45. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +46 -0
  46. package/lib/exercises/calculLitteral/equation/equationType1Exercise.d.ts +6 -6
  47. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +37 -37
  48. package/lib/exercises/calculLitteral/equation/equationType2Exercise.d.ts +6 -6
  49. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +40 -40
  50. package/lib/exercises/calculLitteral/equation/equationType3Exercise.d.ts +6 -6
  51. package/lib/exercises/calculLitteral/equation/equationType3Exercise.js +41 -41
  52. package/lib/exercises/calculLitteral/equation/equationType4Exercise.d.ts +6 -6
  53. package/lib/exercises/calculLitteral/equation/equationType4Exercise.js +43 -43
  54. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.d.ts +4 -0
  55. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.d.ts.map +1 -0
  56. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.js +38 -0
  57. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.d.ts +4 -0
  58. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.d.ts.map +1 -0
  59. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.js +41 -0
  60. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.d.ts +3 -3
  61. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.js +32 -32
  62. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.d.ts +3 -3
  63. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.js +33 -33
  64. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.d.ts +3 -3
  65. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.js +32 -32
  66. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.d.ts +6 -6
  67. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.js +38 -38
  68. package/lib/exercises/derivation/derivative/affineDerivative.d.ts +3 -3
  69. package/lib/exercises/derivation/derivative/affineDerivative.js +27 -27
  70. package/lib/exercises/derivation/derivative/secondDegreeDerivative.js +28 -28
  71. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.d.ts +4 -0
  72. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.d.ts.map +1 -0
  73. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.js +31 -0
  74. package/lib/exercises/derivation/derivative/usualderivative.d.ts +4 -0
  75. package/lib/exercises/derivation/derivative/usualderivative.d.ts.map +1 -0
  76. package/lib/exercises/derivation/derivative/usualderivative.js +67 -0
  77. package/lib/exercises/exercise.d.ts +16 -16
  78. package/lib/exercises/exercise.d.ts.map +1 -1
  79. package/lib/exercises/exercise.js +7 -7
  80. package/lib/exercises/exercises.d.ts +1 -1
  81. package/lib/exercises/exercises.d.ts.map +1 -1
  82. package/lib/exercises/exercises.js +152 -113
  83. package/lib/exercises/geometry/cartesian/midpoint.d.ts +3 -3
  84. package/lib/exercises/geometry/cartesian/midpoint.js +29 -29
  85. package/lib/exercises/geometry/vectors/scalarProductViaCoords.d.ts +3 -3
  86. package/lib/exercises/geometry/vectors/scalarProductViaCoords.js +28 -28
  87. package/lib/exercises/geometry/vectors/scalarProductViaNorms.js +27 -27
  88. package/lib/exercises/percent/applyPercent.d.ts +4 -0
  89. package/lib/exercises/percent/applyPercent.d.ts.map +1 -0
  90. package/lib/exercises/percent/applyPercent.js +41 -0
  91. package/lib/exercises/percent/averageEvolutionRate.d.ts +4 -0
  92. package/lib/exercises/percent/averageEvolutionRate.d.ts.map +1 -0
  93. package/lib/exercises/percent/averageEvolutionRate.js +28 -0
  94. package/lib/exercises/percent/globalPercent.d.ts +4 -0
  95. package/lib/exercises/percent/globalPercent.d.ts.map +1 -0
  96. package/lib/exercises/percent/globalPercent.js +44 -0
  97. package/lib/exercises/percent/reciprocalPercentage.d.ts +4 -0
  98. package/lib/exercises/percent/reciprocalPercentage.d.ts.map +1 -0
  99. package/lib/exercises/percent/reciprocalPercentage.js +35 -0
  100. package/lib/exercises/powers/powersDivision.d.ts +7 -7
  101. package/lib/exercises/powers/powersDivision.js +44 -44
  102. package/lib/exercises/powers/powersOfTenToDecimal.d.ts +6 -6
  103. package/lib/exercises/powers/powersOfTenToDecimal.js +32 -32
  104. package/lib/exercises/powers/powersPower.d.ts +7 -7
  105. package/lib/exercises/powers/powersPower.js +43 -43
  106. package/lib/exercises/powers/powersProduct.d.ts +7 -7
  107. package/lib/exercises/powers/powersProduct.js +44 -44
  108. package/lib/exercises/powers/scientificToDecimal.d.ts +6 -6
  109. package/lib/exercises/powers/scientificToDecimal.js +37 -37
  110. package/lib/exercises/proba/conditionalProbability.d.ts +4 -0
  111. package/lib/exercises/proba/conditionalProbability.d.ts.map +1 -0
  112. package/lib/exercises/proba/conditionalProbability.js +72 -0
  113. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.d.ts +4 -0
  114. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.d.ts.map +1 -0
  115. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.js +29 -0
  116. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.d.ts +4 -0
  117. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.d.ts.map +1 -0
  118. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.js +29 -0
  119. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.d.ts +4 -0
  120. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.d.ts.map +1 -0
  121. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.js +29 -0
  122. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.d.ts +4 -0
  123. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.d.ts.map +1 -0
  124. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.js +28 -0
  125. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts +4 -0
  126. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts.map +1 -0
  127. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +28 -0
  128. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.d.ts +4 -0
  129. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.d.ts.map +1 -0
  130. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.js +39 -0
  131. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.d.ts +3 -3
  132. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.js +34 -34
  133. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.d.ts +3 -3
  134. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.js +33 -33
  135. package/lib/exercises/sequences/geometric/geometricFindReason.d.ts +3 -3
  136. package/lib/exercises/sequences/geometric/geometricFindReason.js +29 -29
  137. package/lib/exercises/sequences/geometric/geometricReasonUsage.d.ts +3 -3
  138. package/lib/exercises/sequences/geometric/geometricReasonUsage.js +28 -28
  139. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts +7 -7
  140. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.js +28 -28
  141. package/lib/exercises/squareRoots/simpifySquareRoot.d.ts +3 -3
  142. package/lib/exercises/squareRoots/simpifySquareRoot.js +27 -27
  143. package/lib/exercises/trigonometry/mainRemarkableValues.d.ts +3 -3
  144. package/lib/exercises/trigonometry/mainRemarkableValues.js +28 -28
  145. package/lib/exercises/trigonometry/remarkableValues.d.ts +3 -3
  146. package/lib/exercises/trigonometry/remarkableValues.js +28 -28
  147. package/lib/exercises/utils/getDistinctQuestions.d.ts +2 -2
  148. package/lib/exercises/utils/getDistinctQuestions.js +15 -15
  149. package/lib/index.d.ts +2 -3
  150. package/lib/index.d.ts.map +1 -1
  151. package/lib/index.js +6 -39
  152. package/lib/math/geometry/point.d.ts +12 -12
  153. package/lib/math/geometry/point.js +27 -27
  154. package/lib/math/geometry/vector.d.ts +15 -15
  155. package/lib/math/geometry/vector.js +31 -31
  156. package/lib/math/numbers/decimals/decimal.d.ts +24 -24
  157. package/lib/math/numbers/decimals/decimal.js +140 -140
  158. package/lib/math/numbers/epsilon.d.ts +1 -1
  159. package/lib/math/numbers/epsilon.js +10 -10
  160. package/lib/math/numbers/integer/integer.d.ts +14 -14
  161. package/lib/math/numbers/integer/integer.js +68 -68
  162. package/lib/math/numbers/integer/power.d.ts +13 -13
  163. package/lib/math/numbers/integer/power.js +52 -52
  164. package/lib/math/numbers/nombre.d.ts +13 -13
  165. package/lib/math/numbers/nombre.js +10 -10
  166. package/lib/math/numbers/rationals/rational.d.ts +25 -25
  167. package/lib/math/numbers/rationals/rational.js +113 -113
  168. package/lib/math/numbers/reals/real.d.ts +9 -9
  169. package/lib/math/numbers/reals/real.js +16 -16
  170. package/lib/math/numbers/reals/squareRoot.d.ts +18 -18
  171. package/lib/math/numbers/reals/squareRoot.js +63 -63
  172. package/lib/math/polynomials/affine.d.ts +15 -15
  173. package/lib/math/polynomials/affine.js +42 -42
  174. package/lib/math/polynomials/polynomial.d.ts +25 -25
  175. package/lib/math/polynomials/polynomial.d.ts.map +1 -1
  176. package/lib/math/polynomials/polynomial.js +131 -129
  177. package/lib/math/sequences/arithmeticSequence.js +1 -1
  178. package/lib/math/sequences/geometricSequence.d.ts +3 -3
  179. package/lib/math/sequences/geometricSequence.js +8 -8
  180. package/lib/math/sequences/sequence.d.ts +22 -22
  181. package/lib/math/sequences/sequence.js +21 -21
  182. package/lib/math/sets/discreteSet.d.ts +10 -10
  183. package/lib/math/sets/discreteSet.js +28 -28
  184. package/lib/math/sets/emptySet.js +6 -6
  185. package/lib/math/sets/intervals/intervals.d.ts +26 -26
  186. package/lib/math/sets/intervals/intervals.js +104 -104
  187. package/lib/math/sets/mathSet.d.ts +7 -7
  188. package/lib/math/sets/mathSet.js +10 -10
  189. package/lib/math/sets/mathSetInterface.d.ts +5 -5
  190. package/lib/math/sets/mathSetInterface.js +2 -2
  191. package/lib/math/trigonometry/remarkableValue.d.ts +10 -10
  192. package/lib/math/trigonometry/remarkableValue.js +29 -29
  193. package/lib/math/trigonometry/remarkableValues.d.ts +2 -2
  194. package/lib/math/trigonometry/remarkableValues.js +51 -51
  195. package/lib/math/utils/arithmetic/coprimesOf.d.ts +1 -1
  196. package/lib/math/utils/arithmetic/coprimesOf.js +13 -13
  197. package/lib/math/utils/arithmetic/dividersOf.d.ts +1 -1
  198. package/lib/math/utils/arithmetic/dividersOf.js +12 -12
  199. package/lib/math/utils/arithmetic/gcd.d.ts +1 -1
  200. package/lib/math/utils/arithmetic/gcd.js +7 -7
  201. package/lib/math/utils/arithmetic/isSquare.d.ts +1 -1
  202. package/lib/math/utils/arithmetic/isSquare.js +7 -7
  203. package/lib/math/utils/arithmetic/lcd.d.ts +1 -1
  204. package/lib/math/utils/arithmetic/lcd.js +12 -12
  205. package/lib/math/utils/arithmetic/nonCoprimesOf.d.ts +1 -1
  206. package/lib/math/utils/arithmetic/nonCoprimesOf.js +13 -13
  207. package/lib/math/utils/arithmetic/nonDividersOf.d.ts +1 -1
  208. package/lib/math/utils/arithmetic/nonDividersOf.js +14 -14
  209. package/lib/math/utils/arithmetic/primeFactors.d.ts +5 -5
  210. package/lib/math/utils/arithmetic/primeFactors.js +22 -22
  211. package/lib/math/utils/decimals/decimalPartLengthOf.d.ts +1 -1
  212. package/lib/math/utils/decimals/decimalPartLengthOf.js +14 -14
  213. package/lib/math/utils/random/randTupleInt.d.ts +13 -13
  214. package/lib/math/utils/random/randTupleInt.js +30 -30
  215. package/lib/math/utils/random/randint.d.ts +4 -4
  216. package/lib/math/utils/random/randint.js +18 -18
  217. package/lib/math/utils/round.d.ts +1 -1
  218. package/lib/math/utils/round.js +8 -8
  219. package/lib/server.d.ts +1 -1
  220. package/lib/server.js +33 -33
  221. package/lib/tree/nodes/functions/cosNode.d.ts +9 -9
  222. package/lib/tree/nodes/functions/cosNode.js +21 -21
  223. package/lib/tree/nodes/functions/functionNode.d.ts +14 -14
  224. package/lib/tree/nodes/functions/functionNode.js +20 -20
  225. package/lib/tree/nodes/functions/oppositeNode.d.ts +7 -7
  226. package/lib/tree/nodes/functions/oppositeNode.js +26 -26
  227. package/lib/tree/nodes/functions/sinNode.js +1 -1
  228. package/lib/tree/nodes/functions/sqrtNode.d.ts +8 -8
  229. package/lib/tree/nodes/functions/sqrtNode.js +18 -18
  230. package/lib/tree/nodes/node.d.ts +12 -12
  231. package/lib/tree/nodes/node.js +11 -11
  232. package/lib/tree/nodes/numbers/constantNode.d.ts +9 -9
  233. package/lib/tree/nodes/numbers/constantNode.js +18 -18
  234. package/lib/tree/nodes/numbers/numberNode.d.ts +10 -10
  235. package/lib/tree/nodes/numbers/numberNode.js +19 -19
  236. package/lib/tree/nodes/numbers/piNode.d.ts +2 -2
  237. package/lib/tree/nodes/numbers/piNode.js +5 -5
  238. package/lib/tree/nodes/operators/addNode.d.ts +7 -7
  239. package/lib/tree/nodes/operators/addNode.js +19 -19
  240. package/lib/tree/nodes/operators/divideNode.d.ts +11 -11
  241. package/lib/tree/nodes/operators/divideNode.js +34 -34
  242. package/lib/tree/nodes/operators/equalNode.d.ts +7 -7
  243. package/lib/tree/nodes/operators/equalNode.js +16 -16
  244. package/lib/tree/nodes/operators/fractionNode.d.ts +11 -11
  245. package/lib/tree/nodes/operators/fractionNode.js +20 -20
  246. package/lib/tree/nodes/operators/multiplyNode.d.ts +7 -7
  247. package/lib/tree/nodes/operators/multiplyNode.js +43 -43
  248. package/lib/tree/nodes/operators/operatorNode.d.ts +21 -21
  249. package/lib/tree/nodes/operators/operatorNode.js +35 -35
  250. package/lib/tree/nodes/operators/powerNode.d.ts +7 -7
  251. package/lib/tree/nodes/operators/powerNode.js +33 -33
  252. package/lib/tree/nodes/operators/substractNode.d.ts +7 -7
  253. package/lib/tree/nodes/operators/substractNode.js +24 -24
  254. package/lib/tree/nodes/variables/variableNode.d.ts +8 -8
  255. package/lib/tree/nodes/variables/variableNode.js +19 -19
  256. package/lib/tree/parsers/derivateParser.js +62 -62
  257. package/lib/tree/parsers/simplify.d.ts +2 -2
  258. package/lib/tree/parsers/simplify.js +52 -52
  259. package/lib/utils/arrayEqual.d.ts +1 -1
  260. package/lib/utils/arrayEqual.js +13 -13
  261. package/lib/utils/coinFlip.d.ts +1 -1
  262. package/lib/utils/coinFlip.js +7 -7
  263. package/lib/utils/random.d.ts +1 -1
  264. package/lib/utils/random.js +7 -7
  265. package/lib/utils/shuffle.d.ts +1 -1
  266. package/lib/utils/shuffle.js +15 -15
  267. package/package.json +49 -50
  268. package/lib/exercises/calcul/operationsPriorities.js +0 -88
  269. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts +0 -1
  270. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts.map +0 -1
  271. package/lib/exercises/derivation/derivative/thridDegreeDerivative.js +0 -1
  272. package/lib/geometry/point.js +0 -27
  273. package/lib/geometry/vector.js +0 -31
  274. package/lib/mathutils/arithmetic/coprimesOf.js +0 -13
  275. package/lib/mathutils/arithmetic/dividersOf.js +0 -12
  276. package/lib/mathutils/arithmetic/gcd.js +0 -7
  277. package/lib/mathutils/arithmetic/isSquare.js +0 -7
  278. package/lib/mathutils/arithmetic/lcd.js +0 -12
  279. package/lib/mathutils/arithmetic/nonCoprimesOf.js +0 -13
  280. package/lib/mathutils/arithmetic/nonDividersOf.js +0 -14
  281. package/lib/mathutils/arithmetic/primeFactors.js +0 -22
  282. package/lib/mathutils/decimals/decimalPartLengthOf.js +0 -14
  283. package/lib/mathutils/random/randTupleInt.js +0 -30
  284. package/lib/mathutils/random/randint.js +0 -18
  285. package/lib/mathutils/round.js +0 -8
  286. package/lib/numbers/decimals/decimal.js +0 -140
  287. package/lib/numbers/epsilon.js +0 -10
  288. package/lib/numbers/integer/integer.js +0 -68
  289. package/lib/numbers/integer/power.js +0 -52
  290. package/lib/numbers/nombre.js +0 -10
  291. package/lib/numbers/rationals/rational.js +0 -113
  292. package/lib/numbers/reals/real.js +0 -16
  293. package/lib/numbers/reals/squareRoot.js +0 -63
  294. package/lib/polynomials/affine.js +0 -42
  295. package/lib/polynomials/polynomial.js +0 -125
  296. package/lib/sets/discreteSet.js +0 -28
  297. package/lib/sets/emptySet.js +0 -6
  298. package/lib/sets/intervals/intervals.js +0 -108
  299. package/lib/sets/intervals/union.js +0 -1
  300. package/lib/sets/mathSet.js +0 -10
  301. package/lib/sets/mathSetInterface.js +0 -2
  302. package/lib/tree/parsers/latexParser.js +0 -110
  303. package/lib/utils/coin.js +0 -7
package/lib/index.js CHANGED
@@ -1,39 +1,6 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.runServer = exports.allExercises = void 0;
7
- const exercises_1 = require("./exercises/exercises");
8
- const express_1 = __importDefault(require("express"));
9
- const dotenv_1 = __importDefault(require("dotenv"));
10
- const cors_1 = __importDefault(require("cors"));
11
- const allExercises = [...exercises_1.exercises];
12
- exports.allExercises = allExercises;
13
- // allExercises.forEach((exo) => {
14
- // console.log(exo);
15
- // console.log(exo.generator(10));
16
- // });
17
- const runServer = () => {
18
- dotenv_1.default.config();
19
- const app = (0, express_1.default)();
20
- app.use((0, cors_1.default)());
21
- app.get('/', (req, res) => {
22
- res.json(allExercises);
23
- });
24
- app.get('/exo', (req, res) => {
25
- const exoId = req.query.exoId;
26
- const exo = allExercises.find((exo) => exo.id == exoId);
27
- if (!exo)
28
- res.send('Exo not found');
29
- const questions = exo === null || exo === void 0 ? void 0 : exo.generator(10);
30
- res.json({
31
- exercise: exo,
32
- questions,
33
- });
34
- });
35
- app.listen('5000', () => {
36
- console.log(`[server]: Server is running at http://localhost:5000`);
37
- });
38
- };
39
- exports.runServer = runServer;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allExercises = void 0;
4
+ const exercises_1 = require("./exercises/exercises");
5
+ const allExercises = [...exercises_1.exercises];
6
+ exports.allExercises = allExercises;
@@ -1,13 +1,13 @@
1
- import { Node } from '../../tree/nodes/node';
2
- export declare abstract class PointConstructor {
3
- }
4
- export declare class Point {
5
- name: string;
6
- x: Node;
7
- y: Node;
8
- constructor(name: string, x: Node, y: Node);
9
- toTex(): string;
10
- toTexWithCoords(): string;
11
- midpoint(B: Point, name?: string): Point;
12
- }
1
+ import { Node } from '../../tree/nodes/node';
2
+ export declare abstract class PointConstructor {
3
+ }
4
+ export declare class Point {
5
+ name: string;
6
+ x: Node;
7
+ y: Node;
8
+ constructor(name: string, x: Node, y: Node);
9
+ toTex(): string;
10
+ toTexWithCoords(): string;
11
+ midpoint(B: Point, name?: string): Point;
12
+ }
13
13
  //# sourceMappingURL=point.d.ts.map
@@ -1,27 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Point = exports.PointConstructor = void 0;
4
- const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
5
- const addNode_1 = require("../../tree/nodes/operators/addNode");
6
- const fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
7
- const simplify_1 = require("../../tree/parsers/simplify");
8
- class PointConstructor {
9
- }
10
- exports.PointConstructor = PointConstructor;
11
- class Point {
12
- constructor(name, x, y) {
13
- this.name = name;
14
- this.x = x;
15
- this.y = y;
16
- }
17
- toTex() {
18
- return `${this.name}`;
19
- }
20
- toTexWithCoords() {
21
- return `${this.name}\\left(${this.x.toTex()}; ${this.y.toTex()}\\right)`;
22
- }
23
- midpoint(B, name = 'I') {
24
- return new Point(name, (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.x, B.x), new numberNode_1.NumberNode(2))), (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.y, B.y), new numberNode_1.NumberNode(2))));
25
- }
26
- }
27
- exports.Point = Point;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Point = exports.PointConstructor = void 0;
4
+ const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
5
+ const addNode_1 = require("../../tree/nodes/operators/addNode");
6
+ const fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
7
+ const simplify_1 = require("../../tree/parsers/simplify");
8
+ class PointConstructor {
9
+ }
10
+ exports.PointConstructor = PointConstructor;
11
+ class Point {
12
+ constructor(name, x, y) {
13
+ this.name = name;
14
+ this.x = x;
15
+ this.y = y;
16
+ }
17
+ toTex() {
18
+ return `${this.name}`;
19
+ }
20
+ toTexWithCoords() {
21
+ return `${this.name}\\left(${this.x.toTex()}; ${this.y.toTex()}\\right)`;
22
+ }
23
+ midpoint(B, name = 'I') {
24
+ return new Point(name, (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.x, B.x), new numberNode_1.NumberNode(2))), (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.y, B.y), new numberNode_1.NumberNode(2))));
25
+ }
26
+ }
27
+ exports.Point = Point;
@@ -1,16 +1,16 @@
1
- import { Node } from '../../tree/nodes/node';
2
- import { Point } from './point';
3
- export declare abstract class VectorConstructor {
4
- static fromPoints(origin: Point, end: Point): Vector;
5
- }
6
- export declare class Vector {
7
- name: string;
8
- tex: string;
9
- x: Node;
10
- y: Node;
11
- constructor(name: string, x: Node, y: Node);
12
- toTex(): string;
13
- toTexWithCoords(): string;
14
- scalarProduct(v: Vector): Node;
15
- }
1
+ import { Node } from '../../tree/nodes/node';
2
+ import { Point } from './point';
3
+ export declare abstract class VectorConstructor {
4
+ static fromPoints(origin: Point, end: Point): Vector;
5
+ }
6
+ export declare class Vector {
7
+ name: string;
8
+ tex: string;
9
+ x: Node;
10
+ y: Node;
11
+ constructor(name: string, x: Node, y: Node);
12
+ toTex(): string;
13
+ toTexWithCoords(): string;
14
+ scalarProduct(v: Vector): Node;
15
+ }
16
16
  //# sourceMappingURL=vector.d.ts.map
@@ -1,31 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Vector = exports.VectorConstructor = void 0;
4
- const addNode_1 = require("../../tree/nodes/operators/addNode");
5
- const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
6
- const substractNode_1 = require("../../tree/nodes/operators/substractNode");
7
- const simplify_1 = require("../../tree/parsers/simplify");
8
- class VectorConstructor {
9
- static fromPoints(origin, end) {
10
- return new Vector(`${origin.name}${end.name}`, new substractNode_1.SubstractNode(end.x, origin.x), new substractNode_1.SubstractNode(end.y, origin.y));
11
- }
12
- }
13
- exports.VectorConstructor = VectorConstructor;
14
- class Vector {
15
- constructor(name, x, y) {
16
- this.name = name;
17
- this.tex = `\\overrightarrow{${name}}`;
18
- this.x = x;
19
- this.y = y;
20
- }
21
- toTex() {
22
- return `\\overrightarrow{${this.name}}`;
23
- }
24
- toTexWithCoords() {
25
- return `\\overrightarrow{${this.name}}\\begin{pmatrix}${this.x.toTex()} \\\\ ${this.y.toTex()} \\end{pmatrix}`;
26
- }
27
- scalarProduct(v) {
28
- return (0, simplify_1.simplifyNode)(new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(this.x, v.x), new multiplyNode_1.MultiplyNode(this.y, v.y)));
29
- }
30
- }
31
- exports.Vector = Vector;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vector = exports.VectorConstructor = void 0;
4
+ const addNode_1 = require("../../tree/nodes/operators/addNode");
5
+ const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
6
+ const substractNode_1 = require("../../tree/nodes/operators/substractNode");
7
+ const simplify_1 = require("../../tree/parsers/simplify");
8
+ class VectorConstructor {
9
+ static fromPoints(origin, end) {
10
+ return new Vector(`${origin.name}${end.name}`, new substractNode_1.SubstractNode(end.x, origin.x), new substractNode_1.SubstractNode(end.y, origin.y));
11
+ }
12
+ }
13
+ exports.VectorConstructor = VectorConstructor;
14
+ class Vector {
15
+ constructor(name, x, y) {
16
+ this.name = name;
17
+ this.tex = `\\overrightarrow{${name}}`;
18
+ this.x = x;
19
+ this.y = y;
20
+ }
21
+ toTex() {
22
+ return `\\overrightarrow{${this.name}}`;
23
+ }
24
+ toTexWithCoords() {
25
+ return `\\overrightarrow{${this.name}}\\begin{pmatrix}${this.x.toTex()} \\\\ ${this.y.toTex()} \\end{pmatrix}`;
26
+ }
27
+ scalarProduct(v) {
28
+ return (0, simplify_1.simplifyNode)(new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(this.x, v.x), new multiplyNode_1.MultiplyNode(this.y, v.y)));
29
+ }
30
+ }
31
+ exports.Vector = Vector;
@@ -1,25 +1,25 @@
1
- import { Node } from '../../../tree/nodes/node';
2
- import { Nombre, NumberType } from '../nombre';
3
- export declare abstract class DecimalConstructor {
4
- static randomFracPart(precision: number): string;
5
- static random(min: number, max: number, precision: number): Decimal;
6
- static fromParts(intPart: string, decimalPart: string): Decimal;
7
- }
8
- export declare class Decimal implements Nombre {
9
- value: number;
10
- tex: string;
11
- type: NumberType;
12
- precision: number;
13
- intPart: number;
14
- decimalPart: string;
15
- constructor(value: number);
16
- /**
17
- *
18
- * @param precision 0 = unité, 1 = dixieme, ... , -1 : dizaine
19
- * @returns
20
- */
21
- round(precision: number): Nombre;
22
- multiplyByPowerOfTen(power: number): Decimal;
23
- toTree(): Node;
24
- }
1
+ import { Node } from '../../../tree/nodes/node';
2
+ import { Nombre, NumberType } from '../nombre';
3
+ export declare abstract class DecimalConstructor {
4
+ static randomFracPart(precision: number): string;
5
+ static random(min: number, max: number, precision: number): Decimal;
6
+ static fromParts(intPart: string, decimalPart: string): Decimal;
7
+ }
8
+ export declare class Decimal implements Nombre {
9
+ value: number;
10
+ tex: string;
11
+ type: NumberType;
12
+ precision: number;
13
+ intPart: number;
14
+ decimalPart: string;
15
+ constructor(value: number);
16
+ /**
17
+ *
18
+ * @param precision 0 = unité, 1 = dixieme, ... , -1 : dizaine
19
+ * @returns
20
+ */
21
+ round(precision: number): Nombre;
22
+ multiplyByPowerOfTen(power: number): Decimal;
23
+ toTree(): Node;
24
+ }
25
25
  //# sourceMappingURL=decimal.d.ts.map
@@ -1,140 +1,140 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Decimal = exports.DecimalConstructor = void 0;
4
- const randint_1 = require("../../../math/utils/random/randint");
5
- const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
6
- const integer_1 = require("../integer/integer");
7
- const nombre_1 = require("../nombre");
8
- class DecimalConstructor {
9
- static randomFracPart(precision) {
10
- let decimals = '';
11
- for (let i = 0; i < precision; i++) {
12
- decimals += (0, randint_1.randint)(i === precision - 1 ? 1 : 0, 10);
13
- }
14
- return decimals;
15
- }
16
- static random(min, max, precision) {
17
- const int = (0, randint_1.randint)(min, max) + '';
18
- const decimals = DecimalConstructor.randomFracPart(precision);
19
- return DecimalConstructor.fromParts(int, decimals);
20
- }
21
- static fromParts(intPart, decimalPart) {
22
- return new Decimal(Number('' + intPart + '.' + decimalPart));
23
- }
24
- }
25
- exports.DecimalConstructor = DecimalConstructor;
26
- class Decimal {
27
- constructor(value) {
28
- this.type = nombre_1.NumberType.Decimal;
29
- this.value = value;
30
- this.tex = value + '';
31
- let [intPartString, decimalPartString] = (value + '').split('.');
32
- this.intPart = Number(intPartString);
33
- this.decimalPart = decimalPartString || '';
34
- this.precision = this.decimalPart.length;
35
- }
36
- /**
37
- *
38
- * @param precision 0 = unité, 1 = dixieme, ... , -1 : dizaine
39
- * @returns
40
- */
41
- round(precision) {
42
- const intPartString = this.intPart + '';
43
- if (precision < 0) {
44
- if (precision < -intPartString.length)
45
- throw Error("can't round to higher precision");
46
- return new integer_1.Integer(this.intPart).round(-precision);
47
- }
48
- if (precision > this.precision)
49
- throw Error("can't round to higher precision");
50
- if (precision === this.precision)
51
- return this;
52
- let newFracPart = '', newIntPart = '';
53
- const shouldRoundUp = Number(this.decimalPart[precision]) > 4;
54
- if (shouldRoundUp) {
55
- let retenue = true;
56
- let i = precision - 1;
57
- while (retenue) {
58
- if (i > -1) {
59
- const nb = (Number(this.decimalPart[i]) + 1) % 10;
60
- if (nb || newFracPart) {
61
- newFracPart = nb.toString() + newFracPart;
62
- }
63
- if (nb !== 0) {
64
- retenue = false;
65
- for (let j = i - 1; j > -1; j--) {
66
- newFracPart = this.decimalPart[j] + newFracPart;
67
- }
68
- newIntPart = intPartString;
69
- }
70
- else
71
- i--;
72
- }
73
- else {
74
- const nb = (Number(intPartString[i + intPartString.length]) + 1) % 10;
75
- newIntPart = nb + '' + newIntPart;
76
- if (nb !== 0) {
77
- retenue = false;
78
- for (let j = i + intPartString.length - 1; j > -1; j--) {
79
- newIntPart = intPartString[j] + newIntPart;
80
- }
81
- }
82
- else
83
- i--;
84
- }
85
- }
86
- }
87
- else {
88
- let retenue = true;
89
- let i = precision - 1;
90
- while (retenue) {
91
- if (i > -1) {
92
- const nb = Number(this.decimalPart[i]);
93
- if (nb || newFracPart) {
94
- newFracPart = nb.toString() + newFracPart;
95
- }
96
- if (nb !== 0) {
97
- retenue = false;
98
- for (let j = i - 1; j > -1; j--) {
99
- newFracPart = this.decimalPart[j] + newFracPart;
100
- }
101
- newIntPart = intPartString;
102
- }
103
- else
104
- i--;
105
- }
106
- else {
107
- newIntPart = intPartString;
108
- retenue = false;
109
- }
110
- }
111
- }
112
- return DecimalConstructor.fromParts(newIntPart, newFracPart);
113
- }
114
- multiplyByPowerOfTen(power) {
115
- let newIntPart = '', newFracPart = '';
116
- if (power > -1) {
117
- newIntPart = this.intPart + '';
118
- for (let i = 0; i < power; i++) {
119
- newIntPart += i > this.decimalPart.length - 1 ? '0' : this.decimalPart[i];
120
- }
121
- newFracPart = this.decimalPart.slice(power);
122
- }
123
- else {
124
- const intPartString = this.intPart + '';
125
- newFracPart = this.decimalPart;
126
- for (let i = intPartString.length - 1; i > intPartString.length - 1 + power; i--) {
127
- newFracPart = (i < 0 ? '0' : intPartString[i]) + newFracPart;
128
- }
129
- if (power + intPartString.length < 1)
130
- newIntPart = '0';
131
- else
132
- newIntPart = intPartString.slice(0, power + intPartString.length);
133
- }
134
- return DecimalConstructor.fromParts(newIntPart, newFracPart);
135
- }
136
- toTree() {
137
- return new numberNode_1.NumberNode(this.value);
138
- }
139
- }
140
- exports.Decimal = Decimal;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Decimal = exports.DecimalConstructor = void 0;
4
+ const randint_1 = require("../../../math/utils/random/randint");
5
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
6
+ const integer_1 = require("../integer/integer");
7
+ const nombre_1 = require("../nombre");
8
+ class DecimalConstructor {
9
+ static randomFracPart(precision) {
10
+ let decimals = '';
11
+ for (let i = 0; i < precision; i++) {
12
+ decimals += (0, randint_1.randint)(i === precision - 1 ? 1 : 0, 10);
13
+ }
14
+ return decimals;
15
+ }
16
+ static random(min, max, precision) {
17
+ const int = (0, randint_1.randint)(min, max) + '';
18
+ const decimals = DecimalConstructor.randomFracPart(precision);
19
+ return DecimalConstructor.fromParts(int, decimals);
20
+ }
21
+ static fromParts(intPart, decimalPart) {
22
+ return new Decimal(Number('' + intPart + '.' + decimalPart));
23
+ }
24
+ }
25
+ exports.DecimalConstructor = DecimalConstructor;
26
+ class Decimal {
27
+ constructor(value) {
28
+ this.type = nombre_1.NumberType.Decimal;
29
+ this.value = value;
30
+ this.tex = value + '';
31
+ let [intPartString, decimalPartString] = (value + '').split('.');
32
+ this.intPart = Number(intPartString);
33
+ this.decimalPart = decimalPartString || '';
34
+ this.precision = this.decimalPart.length;
35
+ }
36
+ /**
37
+ *
38
+ * @param precision 0 = unité, 1 = dixieme, ... , -1 : dizaine
39
+ * @returns
40
+ */
41
+ round(precision) {
42
+ const intPartString = this.intPart + '';
43
+ if (precision < 0) {
44
+ if (precision < -intPartString.length)
45
+ throw Error("can't round to higher precision");
46
+ return new integer_1.Integer(this.intPart).round(-precision);
47
+ }
48
+ if (precision > this.precision)
49
+ throw Error("can't round to higher precision");
50
+ if (precision === this.precision)
51
+ return this;
52
+ let newFracPart = '', newIntPart = '';
53
+ const shouldRoundUp = Number(this.decimalPart[precision]) > 4;
54
+ if (shouldRoundUp) {
55
+ let retenue = true;
56
+ let i = precision - 1;
57
+ while (retenue) {
58
+ if (i > -1) {
59
+ const nb = (Number(this.decimalPart[i]) + 1) % 10;
60
+ if (nb || newFracPart) {
61
+ newFracPart = nb.toString() + newFracPart;
62
+ }
63
+ if (nb !== 0) {
64
+ retenue = false;
65
+ for (let j = i - 1; j > -1; j--) {
66
+ newFracPart = this.decimalPart[j] + newFracPart;
67
+ }
68
+ newIntPart = intPartString;
69
+ }
70
+ else
71
+ i--;
72
+ }
73
+ else {
74
+ const nb = (Number(intPartString[i + intPartString.length]) + 1) % 10;
75
+ newIntPart = nb + '' + newIntPart;
76
+ if (nb !== 0) {
77
+ retenue = false;
78
+ for (let j = i + intPartString.length - 1; j > -1; j--) {
79
+ newIntPart = intPartString[j] + newIntPart;
80
+ }
81
+ }
82
+ else
83
+ i--;
84
+ }
85
+ }
86
+ }
87
+ else {
88
+ let retenue = true;
89
+ let i = precision - 1;
90
+ while (retenue) {
91
+ if (i > -1) {
92
+ const nb = Number(this.decimalPart[i]);
93
+ if (nb || newFracPart) {
94
+ newFracPart = nb.toString() + newFracPart;
95
+ }
96
+ if (nb !== 0) {
97
+ retenue = false;
98
+ for (let j = i - 1; j > -1; j--) {
99
+ newFracPart = this.decimalPart[j] + newFracPart;
100
+ }
101
+ newIntPart = intPartString;
102
+ }
103
+ else
104
+ i--;
105
+ }
106
+ else {
107
+ newIntPart = intPartString;
108
+ retenue = false;
109
+ }
110
+ }
111
+ }
112
+ return DecimalConstructor.fromParts(newIntPart, newFracPart);
113
+ }
114
+ multiplyByPowerOfTen(power) {
115
+ let newIntPart = '', newFracPart = '';
116
+ if (power > -1) {
117
+ newIntPart = this.intPart + '';
118
+ for (let i = 0; i < power; i++) {
119
+ newIntPart += i > this.decimalPart.length - 1 ? '0' : this.decimalPart[i];
120
+ }
121
+ newFracPart = this.decimalPart.slice(power);
122
+ }
123
+ else {
124
+ const intPartString = this.intPart + '';
125
+ newFracPart = this.decimalPart;
126
+ for (let i = intPartString.length - 1; i > intPartString.length - 1 + power; i--) {
127
+ newFracPart = (i < 0 ? '0' : intPartString[i]) + newFracPart;
128
+ }
129
+ if (power + intPartString.length < 1)
130
+ newIntPart = '0';
131
+ else
132
+ newIntPart = intPartString.slice(0, power + intPartString.length);
133
+ }
134
+ return DecimalConstructor.fromParts(newIntPart, newFracPart);
135
+ }
136
+ toTree() {
137
+ return new numberNode_1.NumberNode(this.value);
138
+ }
139
+ }
140
+ exports.Decimal = Decimal;
@@ -1,2 +1,2 @@
1
- export declare const EPSILON: number;
1
+ export declare const EPSILON: number;
2
2
  //# sourceMappingURL=epsilon.d.ts.map
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EPSILON = void 0;
4
- function getEpsilon() {
5
- var e = 1.0;
6
- while (1.0 + 0.5 * e !== 1.0)
7
- e *= 0.5;
8
- return e;
9
- }
10
- exports.EPSILON = getEpsilon();
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EPSILON = void 0;
4
+ function getEpsilon() {
5
+ var e = 1.0;
6
+ while (1.0 + 0.5 * e !== 1.0)
7
+ e *= 0.5;
8
+ return e;
9
+ }
10
+ exports.EPSILON = getEpsilon();
@@ -1,15 +1,15 @@
1
- import { Node } from '../../../tree/nodes/node';
2
- import { Nombre, NumberType } from '../nombre';
3
- export declare abstract class IntegerConstructor {
4
- static random(nbOfDigits: number): number;
5
- }
6
- export declare class Integer implements Nombre {
7
- value: number;
8
- tex: string;
9
- type: NumberType;
10
- constructor(value: number, tex?: string);
11
- toTree(): Node;
12
- round(precision: number): Integer;
13
- divide(nb: Nombre): Nombre;
14
- }
1
+ import { Node } from '../../../tree/nodes/node';
2
+ import { Nombre, NumberType } from '../nombre';
3
+ export declare abstract class IntegerConstructor {
4
+ static random(nbOfDigits: number): number;
5
+ }
6
+ export declare class Integer implements Nombre {
7
+ value: number;
8
+ tex: string;
9
+ type: NumberType;
10
+ constructor(value: number, tex?: string);
11
+ toTree(): Node;
12
+ round(precision: number): Integer;
13
+ divide(nb: Nombre): Nombre;
14
+ }
15
15
  //# sourceMappingURL=integer.d.ts.map