forked from Ivasoft/mattermost-mobile
67 lines
2.5 KiB
TypeScript
67 lines
2.5 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
/* eslint-disable no-useless-escape */
|
|
|
|
import {splitLatexCodeInLines} from './latex';
|
|
|
|
describe('LatexUtilTest', () => {
|
|
test('Simple lines test', () => {
|
|
const content = '\\frac{1}{2} = 0.5 \\\\ \\pi == 3';
|
|
|
|
const result = splitLatexCodeInLines(content);
|
|
|
|
expect(result.length).toEqual(2);
|
|
expect(result[0]).toEqual('\\frac{1}{2} = 0.5');
|
|
expect(result[1]).toEqual('\\pi == 3');
|
|
});
|
|
|
|
test('Multi line with cases test', () => {
|
|
const content = `b_n=\\frac{1}{\\pi}\\int\\limits_{-\\pi}^{\\pi}f(x)\\sin nx\\,\\mathrm{d}x=\\frac{1}{\\pi}\\int\\limits_{-\\pi}^{\\pi}x^2\\sin nx\\,\\mathrm{d}x\\\\
|
|
X(m, n) = \\left.
|
|
\\begin{cases}
|
|
x(n), & \\text{for } 0 \\leq n \\leq 1 \\\\
|
|
x(n - 1), & \\text{for } 0 \\leq n \\leq 1 \\\\
|
|
x(n - 1), & \\text{for } 0 \\leq n \\leq 1
|
|
\\end{cases} \\right\\} = xy\\\\
|
|
\\lim_{a\\to \\infty} \\tfrac{1}{a}\\\\
|
|
\\lim_{a \\underset{>}{\\to} 0} \\frac{1}{a}\\\\
|
|
x = a_0 + \\frac{1}{a_1 + \\frac{1}{a_2 + \\frac{1}{a_3 + a_4}}}`;
|
|
|
|
const result = splitLatexCodeInLines(content);
|
|
|
|
expect(result.length).toEqual(5);
|
|
expect(result[0]).toEqual('b_n=\\frac{1}{\\pi}\\int\\limits_{-\\pi}^{\\pi}f(x)\\sin nx\\,\\mathrm{d}x=\\frac{1}{\\pi}\\int\\limits_{-\\pi}^{\\pi}x^2\\sin nx\\,\\mathrm{d}x');
|
|
expect(result[1]).toEqual(`X(m, n) = \\left.
|
|
\\begin{cases}
|
|
x(n), & \\text{for } 0 \\leq n \\leq 1 \\\\
|
|
x(n - 1), & \\text{for } 0 \\leq n \\leq 1 \\\\
|
|
x(n - 1), & \\text{for } 0 \\leq n \\leq 1
|
|
\\end{cases} \\right\\} = xy`);
|
|
expect(result[2]).toEqual('\\lim_{a\\to \\infty} \\tfrac{1}{a}');
|
|
expect(result[3]).toEqual('\\lim_{a \\underset{>}{\\to} 0} \\frac{1}{a}');
|
|
expect(result[4]).toEqual('x = a_0 + \\frac{1}{a_1 + \\frac{1}{a_2 + \\frac{1}{a_3 + a_4}}}');
|
|
});
|
|
|
|
test('Escaped bracket test', () => {
|
|
const content = 'test = \\frac{1\\{}{2} = \\alpha \\\\ line = 2';
|
|
|
|
const result = splitLatexCodeInLines(content);
|
|
|
|
expect(result.length).toEqual(2);
|
|
expect(result[0]).toEqual('test = \\frac{1\\{}{2} = \\alpha');
|
|
expect(result[1]).toEqual('line = 2');
|
|
});
|
|
|
|
test('Escaped begin and end statement', () => {
|
|
const content = 'test = \\\\begin \\\\ line = 2';
|
|
|
|
const result = splitLatexCodeInLines(content);
|
|
|
|
expect(result.length).toEqual(3);
|
|
expect(result[0]).toEqual('test =');
|
|
expect(result[1]).toEqual('begin');
|
|
expect(result[2]).toEqual('line = 2');
|
|
});
|
|
});
|