UNPKG

mathjslab

Version:

MathJSLab - An interpreter with language syntax like MATLAB®/Octave, ISBN 978-65-00-82338-7.

68 lines (60 loc) 3.67 kB
import path from 'node:path'; import { Evaluator as EvaluatorDefinition } from '../../src/Evaluator'; // @ts-ignore import { Evaluator as namedEvaluator } from '../../lib/mathjslab.web.umd2022'; // import * as mathjslabNamespace from '../../lib/mathjslab.web.umd2022'; const __filenameMatch = __filename.match(new RegExp(`.*\\${path.sep}([^\\${path.sep}]+)\\.spec\\.([cm]?[jt]s)\$`))!; const bundleName = __filenameMatch[1]; const testExtension = __filenameMatch[2]; describe(`${bundleName} bundle test (.${testExtension} test file).`, () => { it('Evaluator (definition) should be defined.', () => { expect(EvaluatorDefinition).toBeDefined(); }, 10); // it('Evaluator (named import) should be defined, can be instantiated and should parse, evaluate and unparse a simple real expression: 1+2*3.', () => { // expect(namedEvaluator).toBeDefined(); // const evaluatorNamed = new namedEvaluator(); // expect(evaluatorNamed).toBeInstanceOf(namedEvaluator); // const tree = evaluatorNamed.Parse('1+2*3'); // const value = evaluatorNamed.Evaluate(tree); // const unparsed = evaluatorNamed.Unparse(tree); // expect(value.list[0].re.toNumber()).toBe(7); // expect(unparsed === '1+2*3\n').toBe(true); // }, 200); // it('mathjslab (namespace) should be defined, evaluator can be instantiated and should parse, evaluate and unparse a simple real expression: 1+2*3.', () => { // // @ts-ignore // expect(mathjslabNamespace).toBeDefined(); // // @ts-ignore // const evaluatorNamespace = new mathjslabNamespace.Evaluator() as EvaluatorDefinition; // // @ts-ignore // expect(evaluatorNamespace).toBeInstanceOf(mathjslabNamespace.Evaluator); // const tree = evaluatorNamespace.Parse('1+2*3'); // const value = evaluatorNamespace.Evaluate(tree); // const unparsed = evaluatorNamespace.Unparse(tree); // expect(value.list[0].re.toNumber()).toBe(7); // expect(unparsed === '1+2*3\n').toBe(true); // }, 200); // it('mathjslab (commonjs) should be defined, evaluator can be instantiated and should parse, evaluate and unparse a simple real expression: 1+2*3.', () => { // const mathjslabCJS = require(`../../lib/${__bundlename}`); // expect(mathjslabCJS).toBeDefined(); // const evaluatorCJS = new mathjslabCJS.Evaluator(); // expect(evaluatorCJS).toBeInstanceOf(mathjslabCJS.Evaluator); // const tree = evaluatorCJS.Parse('1+2*3'); // const value = evaluatorCJS.Evaluate(tree); // const unparsed = evaluatorCJS.Unparse(tree); // expect(value.list[0].re.toNumber()).toBe(7); // expect(unparsed === '1+2*3\n').toBe(true); // }, 200); // it('mathjslab (dynamic) should be defined, evaluator can be instantiated and should parse, evaluate and unparse a simple real expression: 1+2*3.', async () => { // const mathjslabDynamic = await import(`../../lib/${__bundlename}`); // expect(mathjslabDynamic).toBeDefined(); // // @ts-ignore // const evaluatorDynamic = new mathjslabDynamic.Evaluator() as EvaluatorDefinition; // // @ts-ignore // expect(evaluatorDynamic).toBeInstanceOf(mathjslabDynamic.Evaluator); // const tree = evaluatorDynamic.Parse('1+2*3'); // const value = evaluatorDynamic.Evaluate(tree); // const unparsed = evaluatorDynamic.Unparse(tree); // expect(value.list[0].re.toNumber()).toBe(7); // expect(unparsed === '1+2*3\n').toBe(true); // }, 200); });