mathjs 10.5.2 → 10.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (329) hide show
  1. package/HISTORY.md +28 -0
  2. package/lib/browser/math.js +6 -5
  3. package/lib/browser/math.js.map +1 -1
  4. package/lib/cjs/entry/dependenciesAny/dependenciesFft.generated.js +41 -0
  5. package/lib/cjs/entry/dependenciesAny/dependenciesIfft.generated.js +29 -0
  6. package/lib/cjs/entry/dependenciesAny.generated.js +16 -0
  7. package/lib/cjs/entry/impureFunctionsAny.generated.js +66 -64
  8. package/lib/cjs/entry/pureFunctionsAny.generated.js +189 -171
  9. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +6 -0
  10. package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +15 -0
  11. package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +15 -0
  12. package/lib/cjs/factoriesAny.js +16 -0
  13. package/lib/cjs/function/algebra/derivative.js +1 -1
  14. package/lib/cjs/function/matrix/fft.js +128 -0
  15. package/lib/cjs/function/matrix/ifft.js +49 -0
  16. package/lib/cjs/header.js +2 -2
  17. package/lib/cjs/version.js +1 -1
  18. package/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js +24 -0
  19. package/lib/esm/entry/dependenciesAny/dependenciesIfft.generated.js +16 -0
  20. package/lib/esm/entry/dependenciesAny.generated.js +2 -0
  21. package/lib/esm/entry/impureFunctionsAny.generated.js +63 -61
  22. package/lib/esm/entry/pureFunctionsAny.generated.js +161 -145
  23. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +4 -0
  24. package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +8 -0
  25. package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +8 -0
  26. package/lib/esm/factoriesAny.js +2 -0
  27. package/lib/esm/function/algebra/derivative.js +1 -1
  28. package/lib/esm/function/matrix/fft.js +104 -0
  29. package/lib/esm/function/matrix/ifft.js +38 -0
  30. package/lib/esm/version.js +1 -1
  31. package/package.json +22 -24
  32. package/types/index.d.ts +1052 -283
  33. package/types/index.ts +711 -7
  34. package/docs/command_line_interface.md +0 -87
  35. package/docs/core/chaining.md +0 -41
  36. package/docs/core/configuration.md +0 -144
  37. package/docs/core/extension.md +0 -263
  38. package/docs/core/index.md +0 -21
  39. package/docs/core/serialization.md +0 -50
  40. package/docs/custom_bundling.md +0 -116
  41. package/docs/datatypes/bignumbers.md +0 -102
  42. package/docs/datatypes/complex_numbers.md +0 -168
  43. package/docs/datatypes/fractions.md +0 -75
  44. package/docs/datatypes/index.md +0 -67
  45. package/docs/datatypes/matrices.md +0 -375
  46. package/docs/datatypes/numbers.md +0 -106
  47. package/docs/datatypes/units.md +0 -444
  48. package/docs/expressions/algebra.md +0 -110
  49. package/docs/expressions/customization.md +0 -379
  50. package/docs/expressions/expression_trees.md +0 -710
  51. package/docs/expressions/html_classes.md +0 -38
  52. package/docs/expressions/index.md +0 -21
  53. package/docs/expressions/parsing.md +0 -224
  54. package/docs/expressions/security.md +0 -89
  55. package/docs/expressions/syntax.md +0 -706
  56. package/docs/getting_started.md +0 -124
  57. package/docs/index.md +0 -39
  58. package/docs/reference/classes/densematrix.md +0 -247
  59. package/docs/reference/classes/fibonacciheap.md +0 -70
  60. package/docs/reference/classes/matrixindex.md +0 -133
  61. package/docs/reference/classes/matrixrange.md +0 -158
  62. package/docs/reference/classes/resultset.md +0 -47
  63. package/docs/reference/classes/sparsematrix.md +0 -245
  64. package/docs/reference/classes/unit.md +0 -242
  65. package/docs/reference/classes.md +0 -86
  66. package/docs/reference/constants.md +0 -29
  67. package/docs/reference/functions/abs.md +0 -46
  68. package/docs/reference/functions/acos.md +0 -49
  69. package/docs/reference/functions/acosh.md +0 -47
  70. package/docs/reference/functions/acot.md +0 -48
  71. package/docs/reference/functions/acoth.md +0 -46
  72. package/docs/reference/functions/acsc.md +0 -49
  73. package/docs/reference/functions/acsch.md +0 -46
  74. package/docs/reference/functions/add.md +0 -59
  75. package/docs/reference/functions/and.md +0 -53
  76. package/docs/reference/functions/apply.md +0 -56
  77. package/docs/reference/functions/arg.md +0 -53
  78. package/docs/reference/functions/asec.md +0 -49
  79. package/docs/reference/functions/asech.md +0 -46
  80. package/docs/reference/functions/asin.md +0 -49
  81. package/docs/reference/functions/asinh.md +0 -46
  82. package/docs/reference/functions/atan.md +0 -49
  83. package/docs/reference/functions/atan2.md +0 -56
  84. package/docs/reference/functions/atanh.md +0 -46
  85. package/docs/reference/functions/bellNumbers.md +0 -45
  86. package/docs/reference/functions/bignumber.md +0 -47
  87. package/docs/reference/functions/bin.md +0 -45
  88. package/docs/reference/functions/bitAnd.md +0 -51
  89. package/docs/reference/functions/bitNot.md +0 -51
  90. package/docs/reference/functions/bitOr.md +0 -52
  91. package/docs/reference/functions/bitXor.md +0 -51
  92. package/docs/reference/functions/boolean.md +0 -50
  93. package/docs/reference/functions/catalan.md +0 -45
  94. package/docs/reference/functions/cbrt.md +0 -60
  95. package/docs/reference/functions/ceil.md +0 -63
  96. package/docs/reference/functions/chain.md +0 -54
  97. package/docs/reference/functions/clone.md +0 -43
  98. package/docs/reference/functions/column.md +0 -45
  99. package/docs/reference/functions/combinations.md +0 -49
  100. package/docs/reference/functions/combinationsWithRep.md +0 -49
  101. package/docs/reference/functions/compare.md +0 -67
  102. package/docs/reference/functions/compareNatural.md +0 -92
  103. package/docs/reference/functions/compareText.md +0 -54
  104. package/docs/reference/functions/compile.md +0 -56
  105. package/docs/reference/functions/complex.md +0 -17
  106. package/docs/reference/functions/composition.md +0 -46
  107. package/docs/reference/functions/concat.md +0 -56
  108. package/docs/reference/functions/config.md +0 -44
  109. package/docs/reference/functions/conj.md +0 -50
  110. package/docs/reference/functions/cos.md +0 -51
  111. package/docs/reference/functions/cosh.md +0 -46
  112. package/docs/reference/functions/cot.md +0 -47
  113. package/docs/reference/functions/coth.md +0 -49
  114. package/docs/reference/functions/count.md +0 -45
  115. package/docs/reference/functions/createUnit.md +0 -52
  116. package/docs/reference/functions/cross.md +0 -58
  117. package/docs/reference/functions/csc.md +0 -47
  118. package/docs/reference/functions/csch.md +0 -49
  119. package/docs/reference/functions/ctranspose.md +0 -50
  120. package/docs/reference/functions/cube.md +0 -51
  121. package/docs/reference/functions/cumsum.md +0 -57
  122. package/docs/reference/functions/deepEqual.md +0 -53
  123. package/docs/reference/functions/derivative.md +0 -61
  124. package/docs/reference/functions/det.md +0 -49
  125. package/docs/reference/functions/diag.md +0 -61
  126. package/docs/reference/functions/diff.md +0 -70
  127. package/docs/reference/functions/distance.md +0 -80
  128. package/docs/reference/functions/divide.md +0 -55
  129. package/docs/reference/functions/dot.md +0 -48
  130. package/docs/reference/functions/dotDivide.md +0 -52
  131. package/docs/reference/functions/dotMultiply.md +0 -52
  132. package/docs/reference/functions/dotPow.md +0 -49
  133. package/docs/reference/functions/eigs.md +0 -54
  134. package/docs/reference/functions/equal.md +0 -75
  135. package/docs/reference/functions/equalText.md +0 -53
  136. package/docs/reference/functions/erf.md +0 -49
  137. package/docs/reference/functions/evaluate.md +0 -56
  138. package/docs/reference/functions/exp.md +0 -54
  139. package/docs/reference/functions/expm.md +0 -49
  140. package/docs/reference/functions/expm1.md +0 -54
  141. package/docs/reference/functions/factorial.md +0 -49
  142. package/docs/reference/functions/fft.md +0 -35
  143. package/docs/reference/functions/filter.md +0 -50
  144. package/docs/reference/functions/fix.md +0 -62
  145. package/docs/reference/functions/flatten.md +0 -46
  146. package/docs/reference/functions/floor.md +0 -66
  147. package/docs/reference/functions/forEach.md +0 -41
  148. package/docs/reference/functions/format.md +0 -127
  149. package/docs/reference/functions/fraction.md +0 -45
  150. package/docs/reference/functions/gamma.md +0 -49
  151. package/docs/reference/functions/gcd.md +0 -50
  152. package/docs/reference/functions/getMatrixDataType.md +0 -59
  153. package/docs/reference/functions/hasNumericValue.md +0 -55
  154. package/docs/reference/functions/help.md +0 -42
  155. package/docs/reference/functions/hex.md +0 -45
  156. package/docs/reference/functions/hypot.md +0 -51
  157. package/docs/reference/functions/identity.md +0 -57
  158. package/docs/reference/functions/ifft.md +0 -35
  159. package/docs/reference/functions/im.md +0 -53
  160. package/docs/reference/functions/import.md +0 -68
  161. package/docs/reference/functions/index.md +0 -55
  162. package/docs/reference/functions/intersect.md +0 -50
  163. package/docs/reference/functions/inv.md +0 -45
  164. package/docs/reference/functions/invmod.md +0 -47
  165. package/docs/reference/functions/isInteger.md +0 -55
  166. package/docs/reference/functions/isNaN.md +0 -56
  167. package/docs/reference/functions/isNegative.md +0 -55
  168. package/docs/reference/functions/isNumeric.md +0 -55
  169. package/docs/reference/functions/isPositive.md +0 -57
  170. package/docs/reference/functions/isPrime.md +0 -54
  171. package/docs/reference/functions/isZero.md +0 -59
  172. package/docs/reference/functions/kldivergence.md +0 -41
  173. package/docs/reference/functions/kron.md +0 -53
  174. package/docs/reference/functions/larger.md +0 -60
  175. package/docs/reference/functions/largerEq.md +0 -56
  176. package/docs/reference/functions/lcm.md +0 -54
  177. package/docs/reference/functions/leafCount.md +0 -52
  178. package/docs/reference/functions/leftShift.md +0 -52
  179. package/docs/reference/functions/lgamma.md +0 -46
  180. package/docs/reference/functions/log.md +0 -57
  181. package/docs/reference/functions/log10.md +0 -50
  182. package/docs/reference/functions/log1p.md +0 -54
  183. package/docs/reference/functions/log2.md +0 -50
  184. package/docs/reference/functions/lsolve.md +0 -51
  185. package/docs/reference/functions/lsolveAll.md +0 -51
  186. package/docs/reference/functions/lup.md +0 -52
  187. package/docs/reference/functions/lusolve.md +0 -59
  188. package/docs/reference/functions/mad.md +0 -50
  189. package/docs/reference/functions/map.md +0 -65
  190. package/docs/reference/functions/matrix.md +0 -56
  191. package/docs/reference/functions/matrixFromColumns.md +0 -49
  192. package/docs/reference/functions/matrixFromFunction.md +0 -54
  193. package/docs/reference/functions/matrixFromRows.md +0 -49
  194. package/docs/reference/functions/max.md +0 -61
  195. package/docs/reference/functions/mean.md +0 -57
  196. package/docs/reference/functions/median.md +0 -57
  197. package/docs/reference/functions/min.md +0 -61
  198. package/docs/reference/functions/mod.md +0 -59
  199. package/docs/reference/functions/mode.md +0 -50
  200. package/docs/reference/functions/multinomial.md +0 -46
  201. package/docs/reference/functions/multiply.md +0 -60
  202. package/docs/reference/functions/norm.md +0 -59
  203. package/docs/reference/functions/not.md +0 -50
  204. package/docs/reference/functions/nthRoot.md +0 -53
  205. package/docs/reference/functions/nthRoots.md +0 -58
  206. package/docs/reference/functions/number.md +0 -49
  207. package/docs/reference/functions/numeric.md +0 -52
  208. package/docs/reference/functions/oct.md +0 -45
  209. package/docs/reference/functions/ones.md +0 -59
  210. package/docs/reference/functions/or.md +0 -53
  211. package/docs/reference/functions/parse.md +0 -56
  212. package/docs/reference/functions/parser.md +0 -70
  213. package/docs/reference/functions/partitionSelect.md +0 -53
  214. package/docs/reference/functions/permutations.md +0 -51
  215. package/docs/reference/functions/pickRandom.md +0 -59
  216. package/docs/reference/functions/pinv.md +0 -44
  217. package/docs/reference/functions/pow.md +0 -65
  218. package/docs/reference/functions/print.md +0 -64
  219. package/docs/reference/functions/prod.md +0 -55
  220. package/docs/reference/functions/qr.md +0 -65
  221. package/docs/reference/functions/quantileSeq.md +0 -62
  222. package/docs/reference/functions/random.md +0 -54
  223. package/docs/reference/functions/randomInt.md +0 -53
  224. package/docs/reference/functions/range.md +0 -70
  225. package/docs/reference/functions/rationalize.md +0 -68
  226. package/docs/reference/functions/re.md +0 -53
  227. package/docs/reference/functions/reshape.md +0 -60
  228. package/docs/reference/functions/resize.md +0 -51
  229. package/docs/reference/functions/resolve.md +0 -46
  230. package/docs/reference/functions/rightArithShift.md +0 -52
  231. package/docs/reference/functions/rightLogShift.md +0 -52
  232. package/docs/reference/functions/rotate.md +0 -53
  233. package/docs/reference/functions/rotationMatrix.md +0 -57
  234. package/docs/reference/functions/round.md +0 -61
  235. package/docs/reference/functions/row.md +0 -45
  236. package/docs/reference/functions/sec.md +0 -47
  237. package/docs/reference/functions/sech.md +0 -49
  238. package/docs/reference/functions/setCartesian.md +0 -49
  239. package/docs/reference/functions/setDifference.md +0 -47
  240. package/docs/reference/functions/setDistinct.md +0 -43
  241. package/docs/reference/functions/setIntersect.md +0 -46
  242. package/docs/reference/functions/setIsSubset.md +0 -47
  243. package/docs/reference/functions/setMultiplicity.md +0 -46
  244. package/docs/reference/functions/setPowerset.md +0 -43
  245. package/docs/reference/functions/setSize.md +0 -47
  246. package/docs/reference/functions/setSymDifference.md +0 -47
  247. package/docs/reference/functions/setUnion.md +0 -46
  248. package/docs/reference/functions/sign.md +0 -52
  249. package/docs/reference/functions/simplify.md +0 -130
  250. package/docs/reference/functions/simplifyConstant.md +0 -52
  251. package/docs/reference/functions/simplifyCore.md +0 -50
  252. package/docs/reference/functions/sin.md +0 -51
  253. package/docs/reference/functions/sinh.md +0 -46
  254. package/docs/reference/functions/size.md +0 -50
  255. package/docs/reference/functions/slu.md +0 -57
  256. package/docs/reference/functions/smaller.md +0 -60
  257. package/docs/reference/functions/smallerEq.md +0 -56
  258. package/docs/reference/functions/sort.md +0 -56
  259. package/docs/reference/functions/sparse.md +0 -51
  260. package/docs/reference/functions/splitUnit.md +0 -37
  261. package/docs/reference/functions/sqrt.md +0 -50
  262. package/docs/reference/functions/sqrtm.md +0 -46
  263. package/docs/reference/functions/square.md +0 -51
  264. package/docs/reference/functions/squeeze.md +0 -53
  265. package/docs/reference/functions/std.md +0 -76
  266. package/docs/reference/functions/stirlingS2.md +0 -52
  267. package/docs/reference/functions/string.md +0 -49
  268. package/docs/reference/functions/subset.md +0 -65
  269. package/docs/reference/functions/subtract.md +0 -54
  270. package/docs/reference/functions/sum.md +0 -54
  271. package/docs/reference/functions/symbolicEqual.md +0 -62
  272. package/docs/reference/functions/tan.md +0 -49
  273. package/docs/reference/functions/tanh.md +0 -50
  274. package/docs/reference/functions/to.md +0 -47
  275. package/docs/reference/functions/trace.md +0 -50
  276. package/docs/reference/functions/transpose.md +0 -49
  277. package/docs/reference/functions/typeOf.md +0 -81
  278. package/docs/reference/functions/typed.md +0 -56
  279. package/docs/reference/functions/unaryMinus.md +0 -49
  280. package/docs/reference/functions/unaryPlus.md +0 -48
  281. package/docs/reference/functions/unequal.md +0 -74
  282. package/docs/reference/functions/unit.md +0 -48
  283. package/docs/reference/functions/usolve.md +0 -51
  284. package/docs/reference/functions/usolveAll.md +0 -51
  285. package/docs/reference/functions/variance.md +0 -78
  286. package/docs/reference/functions/xgcd.md +0 -47
  287. package/docs/reference/functions/xor.md +0 -53
  288. package/docs/reference/functions/zeros.md +0 -57
  289. package/docs/reference/functions.md +0 -297
  290. package/docs/reference/index.md +0 -5
  291. package/examples/advanced/convert_fraction_to_bignumber.js +0 -59
  292. package/examples/advanced/custom_argument_parsing.js +0 -98
  293. package/examples/advanced/custom_datatype.js +0 -56
  294. package/examples/advanced/custom_evaluate_using_factories.js +0 -19
  295. package/examples/advanced/custom_evaluate_using_import.js +0 -18
  296. package/examples/advanced/custom_loading.js +0 -33
  297. package/examples/advanced/custom_relational_functions.js +0 -62
  298. package/examples/advanced/custom_scope_objects.js +0 -115
  299. package/examples/advanced/expression_trees.js +0 -55
  300. package/examples/advanced/function_transform.js +0 -50
  301. package/examples/advanced/more_secure_eval.js +0 -36
  302. package/examples/advanced/use_bigint.js +0 -43
  303. package/examples/advanced/web_server/math_worker.js +0 -24
  304. package/examples/advanced/web_server/server.js +0 -80
  305. package/examples/algebra.js +0 -34
  306. package/examples/basic_usage.js +0 -49
  307. package/examples/bignumbers.js +0 -52
  308. package/examples/browser/angle_configuration.html +0 -134
  309. package/examples/browser/basic_usage.html +0 -39
  310. package/examples/browser/currency_conversion.html +0 -125
  311. package/examples/browser/custom_separators.html +0 -81
  312. package/examples/browser/plot.html +0 -78
  313. package/examples/browser/pretty_printing_with_mathjax.html +0 -122
  314. package/examples/browser/printing_html.html +0 -170
  315. package/examples/browser/requirejs_loading.html +0 -20
  316. package/examples/browser/rocket_trajectory_optimization.html +0 -301
  317. package/examples/browser/webworkers/webworkers.html +0 -80
  318. package/examples/browser/webworkers/worker.js +0 -28
  319. package/examples/chaining.js +0 -56
  320. package/examples/complex_numbers.js +0 -67
  321. package/examples/expressions.js +0 -188
  322. package/examples/fractions.js +0 -74
  323. package/examples/import.js +0 -95
  324. package/examples/matrices.js +0 -101
  325. package/examples/objects.js +0 -35
  326. package/examples/package.json +0 -3
  327. package/examples/serialization.js +0 -16
  328. package/examples/sparse_matrices.js +0 -19
  329. package/examples/units.js +0 -108
package/types/index.ts CHANGED
@@ -8,6 +8,26 @@ import {
8
8
  divideDependencies,
9
9
  formatDependencies,
10
10
  MathNode,
11
+ MathJsChain,
12
+ BigNumber,
13
+ MathCollection,
14
+ Complex,
15
+ Unit,
16
+ Fraction,
17
+ MathArray,
18
+ Index,
19
+ Matrix,
20
+ EvalFunction,
21
+ LUDecomposition,
22
+ QRDecomposition,
23
+ SLUDecomposition,
24
+ MathType,
25
+ MathNumericType,
26
+ ConstantNode,
27
+ OperatorNode,
28
+ OperatorNodeFn,
29
+ OperatorNodeOp,
30
+ SymbolNode,
11
31
  } from 'mathjs'
12
32
  import * as assert from 'assert'
13
33
  import { expectTypeOf } from 'expect-type'
@@ -65,6 +85,8 @@ Basic usage examples
65
85
  math.chain(m2by3).variance(0, 'biased')
66
86
  math.chain(m2by3).variance(1, 'uncorrected').variance('unbiased')
67
87
 
88
+ math.variance(math.variance(m2by3, 'uncorrected'))
89
+
68
90
  // expressions
69
91
  math.evaluate('1.2 * (2 + 4.5)')
70
92
 
@@ -151,14 +173,598 @@ Chaining examples
151
173
  )
152
174
 
153
175
  const r = math.chain(-0.483).round([0, 1, 2]).floor().add(0.52).fix(1).done()
176
+
154
177
  assert.deepStrictEqual(r, [0.5, -0.4, -0.4])
155
178
 
156
- expectTypeOf(math.chain('x + y').parse().resolve({ x: 1 }).done())
157
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
158
- .toMatchTypeOf<any>()
159
- expectTypeOf(math.chain('x + y').parse().resolve().done())
179
+ expectTypeOf(
180
+ math.chain('x + y').parse().resolve({ x: 1 }).done()
181
+ ).toMatchTypeOf<MathNode>()
182
+ expectTypeOf(
183
+ math.chain('x + y').parse().resolve().done()
184
+ ).toMatchTypeOf<MathNode>()
185
+
186
+ // bignum
187
+ expectTypeOf(math.chain(math.bignumber(12))).toMatchTypeOf<
188
+ MathJsChain<BigNumber>
189
+ >()
190
+ expectTypeOf(math.chain(12).bignumber()).toMatchTypeOf<
191
+ MathJsChain<BigNumber>
192
+ >()
193
+ expectTypeOf(math.chain([12, 13, 14]).bignumber()).toMatchTypeOf<
194
+ MathJsChain<MathCollection>
195
+ >()
196
+
197
+ // chain
198
+ expectTypeOf(math.chain(12).bignumber().clone()).toMatchTypeOf<
199
+ MathJsChain<BigNumber>
200
+ >()
201
+
202
+ // boolean
203
+ expectTypeOf(math.chain(math.boolean(true))).toMatchTypeOf<
204
+ MathJsChain<boolean>
205
+ >()
206
+ expectTypeOf(math.chain(true).boolean()).toMatchTypeOf<MathJsChain<boolean>>()
207
+ expectTypeOf(math.chain([12, 13, 14]).boolean()).toMatchTypeOf<
208
+ MathJsChain<MathCollection>
209
+ >()
210
+
211
+ // complex
212
+ expectTypeOf(math.chain(math.complex('123'))).toMatchTypeOf<
213
+ MathJsChain<Complex>
214
+ >()
215
+ expectTypeOf(math.chain('123').complex()).toMatchTypeOf<
216
+ MathJsChain<Complex>
217
+ >()
218
+ expectTypeOf(math.chain('123').complex(1)).toMatchTypeOf<
219
+ MathJsChain<Complex>
220
+ >()
221
+ expectTypeOf(math.chain([12, 13, 14]).complex()).toMatchTypeOf<
222
+ MathJsChain<MathCollection>
223
+ >()
224
+
225
+ // createUnit
226
+ expectTypeOf(math.chain(math.createUnit('furlong'))).toMatchTypeOf<
227
+ MathJsChain<Unit>
228
+ >()
229
+ expectTypeOf(
230
+ math.chain(
231
+ math.createUnit({
232
+ fresnel: '1234',
233
+ })
234
+ )
235
+ ).toMatchTypeOf<MathJsChain<Unit>>()
236
+
237
+ // fraction
238
+ expectTypeOf(math.chain(math.fraction('123'))).toMatchTypeOf<
239
+ MathJsChain<Fraction>
240
+ >()
241
+ expectTypeOf(math.chain('123').fraction()).toMatchTypeOf<
242
+ MathJsChain<Fraction>
243
+ >()
244
+ expectTypeOf(math.chain('123').fraction(2)).toMatchTypeOf<
245
+ MathJsChain<Fraction>
246
+ >()
247
+ expectTypeOf(math.chain([12, 13, 14]).fraction()).toMatchTypeOf<
248
+ MathJsChain<MathCollection>
249
+ >()
250
+ expectTypeOf(math.chain([12, 13, 14]).fraction()).toMatchTypeOf<
251
+ MathJsChain<MathCollection>
252
+ >()
253
+
254
+ // index
255
+ expectTypeOf(math.chain([12, 13, 14]).index()).toMatchTypeOf<
256
+ MathJsChain<Index>
257
+ >()
258
+
259
+ // matrix
260
+ expectTypeOf(math.chain([12, 13, 14, 15]).matrix()).toMatchTypeOf<
261
+ MathJsChain<Matrix>
262
+ >()
263
+
264
+ // number
265
+ expectTypeOf(math.chain('12').number()).toMatchTypeOf<MathJsChain<number>>()
266
+ expectTypeOf(math.chain([12, 13, 14]).number()).toMatchTypeOf<
267
+ MathJsChain<MathCollection>
268
+ >()
269
+
270
+ // sparse
271
+ expectTypeOf(math.chain([12, 13, 14, 15]).sparse()).toMatchTypeOf<
272
+ MathJsChain<Matrix>
273
+ >()
274
+
275
+ // split unit
276
+ expectTypeOf(math.chain(math.unit('furlong')).splitUnit([])).toMatchTypeOf<
277
+ MathJsChain<Unit[]>
278
+ >()
279
+
280
+ // string
281
+ expectTypeOf(math.chain('test').string()).toMatchTypeOf<MathJsChain<string>>()
282
+ expectTypeOf(math.chain([1, 2, 3]).string()).toMatchTypeOf<
283
+ MathJsChain<MathCollection>
284
+ >()
285
+
286
+ // unit
287
+ expectTypeOf(math.chain(12).unit()).toMatchTypeOf<MathJsChain<Unit>>()
288
+ expectTypeOf(math.chain([1, 2, 3]).unit()).toMatchTypeOf<
289
+ MathJsChain<Unit[]>
290
+ >()
291
+
292
+ // compile
293
+ expectTypeOf(math.chain('a + b').compile()).toMatchTypeOf<
294
+ MathJsChain<EvalFunction>
295
+ >()
296
+
297
+ // evaluate
298
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
299
+ expectTypeOf(math.chain('1 + 1').evaluate()).toMatchTypeOf<MathJsChain<any>>()
300
+ expectTypeOf(math.chain(['1 + 1', '2 + 2']).evaluate()).toMatchTypeOf<
160
301
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
161
- .toMatchTypeOf<any>()
302
+ MathJsChain<any[]>
303
+ >()
304
+
305
+ // parse
306
+ expectTypeOf(math.chain('1 + 1').parse()).toMatchTypeOf<
307
+ MathJsChain<MathNode>
308
+ >()
309
+ expectTypeOf(math.chain(['1 + 1', '2 + 2']).parse()).toMatchTypeOf<
310
+ MathJsChain<MathNode[]>
311
+ >()
312
+
313
+ // resolve
314
+ expectTypeOf(math.chain(math.parse('1 + 1')).resolve({})).toMatchTypeOf<
315
+ MathJsChain<MathNode>
316
+ >()
317
+ expectTypeOf(
318
+ math.chain([math.parse('1 + 1'), math.parse('1 + 1')]).resolve({})
319
+ ).toMatchTypeOf<MathJsChain<MathNode[]>>()
320
+
321
+ // derivative
322
+ expectTypeOf(math.chain(math.parse('x^2')).derivative('x')).toMatchTypeOf<
323
+ MathJsChain<MathNode>
324
+ >()
325
+
326
+ // lsolve
327
+ expectTypeOf(
328
+ math
329
+ .chain([
330
+ [1, 2],
331
+ [3, 4],
332
+ ])
333
+ .lsolve([1, 2])
334
+ ).toMatchTypeOf<MathJsChain<MathArray>>()
335
+ expectTypeOf(
336
+ math
337
+ .chain(
338
+ math.matrix([
339
+ [1, 2],
340
+ [3, 4],
341
+ ])
342
+ )
343
+ .lsolve([1, 2])
344
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
345
+
346
+ // lup
347
+ expectTypeOf(
348
+ math
349
+ .chain([
350
+ [1, 2],
351
+ [3, 4],
352
+ ])
353
+ .lup()
354
+ ).toMatchTypeOf<MathJsChain<LUDecomposition>>()
355
+ expectTypeOf(
356
+ math
357
+ .chain(
358
+ math.matrix([
359
+ [1, 2],
360
+ [3, 4],
361
+ ])
362
+ )
363
+ .lup()
364
+ ).toMatchTypeOf<MathJsChain<LUDecomposition>>()
365
+
366
+ // lusolve
367
+ expectTypeOf(
368
+ math
369
+ .chain(
370
+ math.matrix([
371
+ [1, 2],
372
+ [3, 4],
373
+ ])
374
+ )
375
+ .lusolve(math.matrix([1, 2]))
376
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
377
+
378
+ expectTypeOf(
379
+ math
380
+ .chain(
381
+ math.matrix([
382
+ [1, 2],
383
+ [3, 4],
384
+ ])
385
+ )
386
+ .lusolve([1, 2])
387
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
388
+
389
+ expectTypeOf(
390
+ math
391
+ .chain([
392
+ [1, 2],
393
+ [3, 4],
394
+ ])
395
+ .lusolve(math.matrix([1, 2]))
396
+ ).toMatchTypeOf<MathJsChain<MathArray>>()
397
+
398
+ expectTypeOf(
399
+ math
400
+ .chain([
401
+ [1, 2],
402
+ [3, 4],
403
+ ])
404
+ .lusolve([1, 2])
405
+ ).toMatchTypeOf<MathJsChain<MathArray>>()
406
+
407
+ // qr
408
+ expectTypeOf(
409
+ math
410
+ .chain([
411
+ [1, 2],
412
+ [3, 4],
413
+ ])
414
+ .qr()
415
+ ).toMatchTypeOf<MathJsChain<QRDecomposition>>()
416
+ expectTypeOf(
417
+ math
418
+ .chain(
419
+ math.matrix([
420
+ [1, 2],
421
+ [3, 4],
422
+ ])
423
+ )
424
+ .qr()
425
+ ).toMatchTypeOf<MathJsChain<QRDecomposition>>()
426
+
427
+ // rationalize
428
+ expectTypeOf(math.chain('1.23').rationalize()).toMatchTypeOf<
429
+ MathJsChain<MathNode>
430
+ >()
431
+ expectTypeOf(math.chain(math.parse('1.23')).rationalize()).toMatchTypeOf<
432
+ MathJsChain<MathNode>
433
+ >()
434
+
435
+ // simplify
436
+ expectTypeOf(math.chain('a + a + b').simplify()).toMatchTypeOf<
437
+ MathJsChain<MathNode>
438
+ >()
439
+ expectTypeOf(math.chain(math.parse('a + a + b')).simplify()).toMatchTypeOf<
440
+ MathJsChain<MathNode>
441
+ >()
442
+
443
+ // slu
444
+ expectTypeOf(
445
+ math
446
+ .chain(
447
+ math.sparse([
448
+ [1, 2],
449
+ [3, 4],
450
+ ])
451
+ )
452
+ .slu(2, 0.5)
453
+ ).toMatchTypeOf<MathJsChain<SLUDecomposition>>()
454
+
455
+ // usolve
456
+ expectTypeOf(
457
+ math
458
+ .chain([
459
+ [1, 2],
460
+ [3, 4],
461
+ ])
462
+ .usolve([1, 2])
463
+ ).toMatchTypeOf<MathJsChain<MathArray>>()
464
+ expectTypeOf(
465
+ math
466
+ .chain(
467
+ math.matrix([
468
+ [1, 2],
469
+ [3, 4],
470
+ ])
471
+ )
472
+ .usolve([1, 2])
473
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
474
+
475
+ // abs
476
+ expectTypeOf(math.chain(1).abs()).toMatchTypeOf<MathJsChain<number>>()
477
+ expectTypeOf(math.chain(math.bignumber(1)).abs()).toMatchTypeOf<
478
+ MathJsChain<BigNumber>
479
+ >()
480
+ expectTypeOf(math.chain(math.fraction(1, 2)).abs()).toMatchTypeOf<
481
+ MathJsChain<Fraction>
482
+ >()
483
+ expectTypeOf(math.chain(math.complex(1, 2)).abs()).toMatchTypeOf<
484
+ MathJsChain<Complex>
485
+ >()
486
+ expectTypeOf(math.chain([1, 2]).abs()).toMatchTypeOf<MathJsChain<MathArray>>()
487
+ expectTypeOf(
488
+ math
489
+ .chain(
490
+ math.matrix([
491
+ [1, 2],
492
+ [3, 4],
493
+ ])
494
+ )
495
+ .abs()
496
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
497
+ expectTypeOf(math.chain(math.unit('furlong')).abs()).toMatchTypeOf<
498
+ MathJsChain<Unit>
499
+ >()
500
+
501
+ // add
502
+ expectTypeOf(math.chain(1).add(2)).toMatchTypeOf<MathJsChain<MathType>>()
503
+ expectTypeOf(math.chain([1]).add(2)).toMatchTypeOf<MathJsChain<MathType>>()
504
+ expectTypeOf(
505
+ math.chain(
506
+ math.matrix([
507
+ [1, 2],
508
+ [3, 4],
509
+ ])
510
+ )
511
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
512
+
513
+ // apply
514
+ expectTypeOf(math.chain([1, 2, 3]).apply(0, () => 1)).toMatchTypeOf<
515
+ MathJsChain<number[]>
516
+ >()
517
+
518
+ // cbrt
519
+ expectTypeOf(math.chain(1).cbrt()).toMatchTypeOf<MathJsChain<number>>()
520
+ expectTypeOf(math.chain(math.bignumber(1)).cbrt()).toMatchTypeOf<
521
+ MathJsChain<BigNumber>
522
+ >()
523
+ expectTypeOf(math.chain(math.complex(1, 2)).cbrt()).toMatchTypeOf<
524
+ MathJsChain<Complex>
525
+ >()
526
+ expectTypeOf(math.chain([1, 2]).cbrt()).toMatchTypeOf<
527
+ MathJsChain<MathArray>
528
+ >()
529
+ expectTypeOf(
530
+ math
531
+ .chain(
532
+ math.matrix([
533
+ [1, 2],
534
+ [3, 4],
535
+ ])
536
+ )
537
+ .cbrt()
538
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
539
+
540
+ // cbrt
541
+ expectTypeOf(math.chain(1).ceil()).toMatchTypeOf<
542
+ MathJsChain<MathNumericType>
543
+ >()
544
+ expectTypeOf(math.chain([1]).ceil()).toMatchTypeOf<
545
+ MathJsChain<MathCollection>
546
+ >()
547
+
548
+ // fix
549
+ expectTypeOf(math.chain(1).fix()).toMatchTypeOf<
550
+ MathJsChain<MathNumericType>
551
+ >()
552
+ expectTypeOf(math.chain([1]).fix()).toMatchTypeOf<
553
+ MathJsChain<MathCollection>
554
+ >()
555
+
556
+ // floor
557
+ expectTypeOf(math.chain(1).floor()).toMatchTypeOf<
558
+ MathJsChain<MathNumericType>
559
+ >()
560
+ expectTypeOf(math.chain([1]).floor()).toMatchTypeOf<
561
+ MathJsChain<MathCollection>
562
+ >()
563
+
564
+ // round
565
+ expectTypeOf(math.chain(1).round()).toMatchTypeOf<
566
+ MathJsChain<MathNumericType>
567
+ >()
568
+ expectTypeOf(math.chain([1]).round()).toMatchTypeOf<
569
+ MathJsChain<MathCollection>
570
+ >()
571
+
572
+ // cube
573
+ expectTypeOf(math.chain(1).cube()).toMatchTypeOf<MathJsChain<number>>()
574
+ expectTypeOf(math.chain(math.bignumber(1)).cube()).toMatchTypeOf<
575
+ MathJsChain<BigNumber>
576
+ >()
577
+ expectTypeOf(math.chain(math.fraction(1, 2)).cube()).toMatchTypeOf<
578
+ MathJsChain<Fraction>
579
+ >()
580
+ expectTypeOf(math.chain(math.complex(1, 2)).cube()).toMatchTypeOf<
581
+ MathJsChain<Complex>
582
+ >()
583
+ expectTypeOf(math.chain([1, 2]).cube()).toMatchTypeOf<
584
+ MathJsChain<MathArray>
585
+ >()
586
+ expectTypeOf(
587
+ math
588
+ .chain(
589
+ math.matrix([
590
+ [1, 2],
591
+ [3, 4],
592
+ ])
593
+ )
594
+ .cube()
595
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
596
+ expectTypeOf(math.chain(math.unit('furlong')).cube()).toMatchTypeOf<
597
+ MathJsChain<Unit>
598
+ >()
599
+
600
+ // divide
601
+ expectTypeOf(
602
+ math.chain(math.unit('furlong')).divide(math.unit('femtosecond'))
603
+ ).toMatchTypeOf<MathJsChain<number | Unit>>()
604
+ expectTypeOf(math.chain(math.unit('furlong')).divide(6)).toMatchTypeOf<
605
+ MathJsChain<Unit>
606
+ >()
607
+ expectTypeOf(math.chain(2).divide(6)).toMatchTypeOf<MathJsChain<number>>()
608
+ expectTypeOf(math.chain([1, 2, 3]).divide(6)).toMatchTypeOf<
609
+ MathJsChain<MathType>
610
+ >()
611
+
612
+ // dotDivide
613
+ expectTypeOf(math.chain(1).dotDivide(2)).toMatchTypeOf<
614
+ MathJsChain<MathType>
615
+ >()
616
+ expectTypeOf(
617
+ math
618
+ .chain(
619
+ math.matrix([
620
+ [1, 2],
621
+ [3, 4],
622
+ ])
623
+ )
624
+ .dotDivide(2)
625
+ ).toMatchTypeOf<MathJsChain<MathType>>()
626
+
627
+ // dotMultiply
628
+ expectTypeOf(math.chain(1).dotMultiply(2)).toMatchTypeOf<
629
+ MathJsChain<MathType>
630
+ >()
631
+ expectTypeOf(
632
+ math
633
+ .chain(
634
+ math.matrix([
635
+ [1, 2],
636
+ [3, 4],
637
+ ])
638
+ )
639
+ .dotMultiply(2)
640
+ ).toMatchTypeOf<MathJsChain<MathType>>()
641
+
642
+ // dotPow
643
+ expectTypeOf(math.chain(1).dotPow(2)).toMatchTypeOf<MathJsChain<MathType>>()
644
+ expectTypeOf(
645
+ math
646
+ .chain(
647
+ math.matrix([
648
+ [1, 2],
649
+ [3, 4],
650
+ ])
651
+ )
652
+ .dotPow(2)
653
+ ).toMatchTypeOf<MathJsChain<MathType>>()
654
+
655
+ // exp
656
+ expectTypeOf(math.chain(1).exp()).toMatchTypeOf<MathJsChain<MathType>>()
657
+ expectTypeOf(math.chain([1, 2]).exp()).toMatchTypeOf<MathJsChain<MathArray>>()
658
+ expectTypeOf(
659
+ math
660
+ .chain(
661
+ math.matrix([
662
+ [1, 2],
663
+ [3, 4],
664
+ ])
665
+ )
666
+ .exp()
667
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
668
+
669
+ // expm1
670
+ expectTypeOf(math.chain(1).expm1()).toMatchTypeOf<MathJsChain<MathType>>()
671
+ expectTypeOf(math.chain([1, 2]).expm1()).toMatchTypeOf<
672
+ MathJsChain<MathArray>
673
+ >()
674
+ expectTypeOf(
675
+ math
676
+ .chain(
677
+ math.matrix([
678
+ [1, 2],
679
+ [3, 4],
680
+ ])
681
+ )
682
+ .expm1()
683
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
684
+
685
+ // gcd
686
+ expectTypeOf(math.chain([1, 2]).gcd(3)).toMatchTypeOf<MathJsChain<number>>()
687
+ expectTypeOf(math.chain([1, 2]).gcd(3, 4)).toMatchTypeOf<
688
+ MathJsChain<number>
689
+ >()
690
+ // TODO make gcd() work in the following cases
691
+ // expectTypeOf(math.chain([1, 2]).gcd()).toMatchTypeOf<MathJsChain<number>>()
692
+ // expectTypeOf(math.chain([[1], [2]]).gcd()).toMatchTypeOf<
693
+ // MathJsChain<MathArray>
694
+ // >()
695
+ // expectTypeOf(
696
+ // math.chain([math.bignumber(1), math.bignumber(1)]).gcd()
697
+ // ).toMatchTypeOf<MathJsChain<BigNumber>>()
698
+ // expectTypeOf(
699
+ // math.chain([math.complex(1, 2), math.complex(1, 2)]).gcd()
700
+ // ).toMatchTypeOf<MathJsChain<Complex>>()
701
+ // expectTypeOf(
702
+ // math
703
+ // .chain(
704
+ // math.matrix([
705
+ // [1, 2],
706
+ // [3, 4],
707
+ // ])
708
+ // )
709
+ // .expm1()
710
+ // ).toMatchTypeOf<MathJsChain<Matrix>>()
711
+
712
+ // hypot
713
+ expectTypeOf(math.chain([1, 2]).hypot()).toMatchTypeOf<MathJsChain<number>>()
714
+ expectTypeOf(
715
+ math.chain([math.bignumber(1), math.bignumber(1)]).hypot()
716
+ ).toMatchTypeOf<MathJsChain<BigNumber>>()
717
+
718
+ // lcm
719
+ expectTypeOf(math.chain(1).lcm(2)).toMatchTypeOf<MathJsChain<number>>()
720
+ expectTypeOf(
721
+ math.chain(math.bignumber(1)).lcm(math.bignumber(2))
722
+ ).toMatchTypeOf<MathJsChain<BigNumber>>()
723
+ expectTypeOf(math.chain([1, 2]).lcm([3, 4])).toMatchTypeOf<
724
+ MathJsChain<MathArray>
725
+ >()
726
+ expectTypeOf(
727
+ math
728
+ .chain(
729
+ math.matrix([
730
+ [1, 2],
731
+ [3, 4],
732
+ ])
733
+ )
734
+ .lcm(
735
+ math.matrix([
736
+ [1, 2],
737
+ [3, 4],
738
+ ])
739
+ )
740
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
741
+
742
+ // log
743
+ expectTypeOf(math.chain(1).log(2)).toMatchTypeOf<MathJsChain<number>>()
744
+ expectTypeOf(
745
+ math.chain(math.bignumber(1)).log(math.bignumber(2))
746
+ ).toMatchTypeOf<MathJsChain<BigNumber>>()
747
+
748
+ // log10
749
+ expectTypeOf(math.chain(1).log10()).toMatchTypeOf<MathJsChain<number>>()
750
+ expectTypeOf(math.chain(math.bignumber(1)).log10()).toMatchTypeOf<
751
+ MathJsChain<BigNumber>
752
+ >()
753
+ expectTypeOf(math.chain([1, 2]).log10()).toMatchTypeOf<
754
+ MathJsChain<MathArray>
755
+ >()
756
+ expectTypeOf(
757
+ math
758
+ .chain(
759
+ math.matrix([
760
+ [1, 2],
761
+ [3, 4],
762
+ ])
763
+ )
764
+ .log10()
765
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
766
+
767
+ // TODO complete the rest of these...
162
768
  }
163
769
 
164
770
  /*
@@ -427,6 +1033,62 @@ Matrices examples
427
1033
  {
428
1034
  assert.strictEqual(math.matrix([1, 2, 3]) instanceof math.Matrix, true)
429
1035
  }
1036
+
1037
+ // Fourier transform and inverse
1038
+ {
1039
+ assert.ok(
1040
+ math.deepEqual(
1041
+ math.fft([
1042
+ [1, 0],
1043
+ [1, 0],
1044
+ ]),
1045
+ [
1046
+ [math.complex(2, 0), math.complex(2, 0)],
1047
+ [math.complex(0, 0), math.complex(0, 0)],
1048
+ ]
1049
+ )
1050
+ )
1051
+ assert.ok(
1052
+ math.deepEqual(
1053
+ math.fft(
1054
+ math.matrix([
1055
+ [1, 0],
1056
+ [1, 0],
1057
+ ])
1058
+ ),
1059
+ math.matrix([
1060
+ [math.complex(2, 0), math.complex(2, 0)],
1061
+ [math.complex(0, 0), math.complex(0, 0)],
1062
+ ])
1063
+ )
1064
+ )
1065
+ assert.ok(
1066
+ math.deepEqual(
1067
+ math.ifft([
1068
+ [2, 2],
1069
+ [0, 0],
1070
+ ]),
1071
+ [
1072
+ [math.complex(1, 0), math.complex(0, 0)],
1073
+ [math.complex(1, 0), math.complex(0, 0)],
1074
+ ]
1075
+ )
1076
+ )
1077
+ assert.ok(
1078
+ math.deepEqual(
1079
+ math.ifft(
1080
+ math.matrix([
1081
+ [2, 2],
1082
+ [0, 0],
1083
+ ])
1084
+ ),
1085
+ math.matrix([
1086
+ [math.complex(1, 0), math.complex(0, 0)],
1087
+ [math.complex(1, 0), math.complex(0, 0)],
1088
+ ])
1089
+ )
1090
+ )
1091
+ }
430
1092
  }
431
1093
 
432
1094
  /*
@@ -863,6 +1525,45 @@ Function round examples
863
1525
  assert.throws(() => math.round([3.21, 3.82], [1, 2]), TypeError)
864
1526
  }
865
1527
 
1528
+ /*
1529
+ Clone examples
1530
+ */
1531
+ {
1532
+ const math = create(all, {})
1533
+ expectTypeOf(
1534
+ new math.OperatorNode('/', 'divide', [
1535
+ new math.ConstantNode(3),
1536
+ new math.SymbolNode('x'),
1537
+ ])
1538
+ ).toMatchTypeOf<OperatorNode<'/', 'divide', (ConstantNode | SymbolNode)[]>>()
1539
+
1540
+ expectTypeOf(new math.ConstantNode(1).clone()).toMatchTypeOf<ConstantNode>()
1541
+ expectTypeOf(
1542
+ new math.OperatorNode('*', 'multiply', [
1543
+ new math.ConstantNode(3),
1544
+ new math.SymbolNode('x'),
1545
+ ]).clone()
1546
+ ).toMatchTypeOf<
1547
+ OperatorNode<'*', 'multiply', (ConstantNode | SymbolNode)[]>
1548
+ >()
1549
+
1550
+ expectTypeOf(
1551
+ new math.ConstantNode(1).cloneDeep()
1552
+ ).toMatchTypeOf<ConstantNode>()
1553
+ expectTypeOf(
1554
+ new math.OperatorNode('+', 'unaryPlus', [
1555
+ new math.ConstantNode(3),
1556
+ new math.SymbolNode('x'),
1557
+ ]).cloneDeep()
1558
+ ).toMatchTypeOf<
1559
+ OperatorNode<'+', 'unaryPlus', (ConstantNode | SymbolNode)[]>
1560
+ >()
1561
+
1562
+ expectTypeOf(
1563
+ math.clone(new math.ConstantNode(1))
1564
+ ).toMatchTypeOf<ConstantNode>()
1565
+ }
1566
+
866
1567
  /*
867
1568
  JSON serialization/deserialization
868
1569
  */
@@ -1213,7 +1914,9 @@ Factory Test
1213
1914
  expectTypeOf(x).toMatchTypeOf<math.ObjectNode>()
1214
1915
  }
1215
1916
  if (math.isOperatorNode(x)) {
1216
- expectTypeOf(x).toMatchTypeOf<math.OperatorNode>()
1917
+ expectTypeOf(x).toMatchTypeOf<
1918
+ OperatorNode<OperatorNodeOp, OperatorNodeFn, MathNode[]>
1919
+ >()
1217
1920
  }
1218
1921
  if (math.isParenthesisNode(x)) {
1219
1922
  expectTypeOf(x).toMatchTypeOf<math.ParenthesisNode>()
@@ -1225,7 +1928,8 @@ Factory Test
1225
1928
  expectTypeOf(x).toMatchTypeOf<math.SymbolNode>()
1226
1929
  }
1227
1930
  if (math.isChain(x)) {
1228
- expectTypeOf(x).toMatchTypeOf<math.MathJsChain>()
1931
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1932
+ expectTypeOf(x).toMatchTypeOf<math.MathJsChain<any>>()
1229
1933
  }
1230
1934
  }
1231
1935