* Added a Latex code window that displays the given code using katex * Latex is now displayed without having to go to the next screen * MathView test * MathView WIP: Displays math good, but in verry small font View does not load if there is a syntax error and we are hard stuck in the app * Math view now is rendered properly, few working points: Text is not fixed size, it renders in a weird size Multi Line subscript is not working * Latex is now rendered properly * Fixed Error message and moved helper function to utils * Added some padding and vertical scroll on latex screen * Updated config option to work on real phone too * Removed unused code and fixed tests * Added LatexInline and tried to modify parser, not yet finished though. InlineLatexOption is not yet coded for * Bugfixes and better line break checking * Few margin changes for ios, also updated pod files * padding is now dependend on system * Add platform import * Reverted package-lock change * Added tests * Bugfixes, UI tweaks and added unit test for latex util * Added enableLatex to markdown options instead getting the state and config * Changed the rendering a little bit, it is better but still far from perfect * Width and height is now correctely displayed. Still not clean enough though * Inline latex is now rendered properly for most equations * Inline latex is now working properly * tests for escaping and unescaping functions * Added inline latex setting support * Added inline latex tests * Delete unused comment * Added extra regex rule: there must be no word character in front of the inline latex code * Upgraded math-view package and deleted duplicate entry from gemfile.lock * Inline error functions are now class functions * Updated error color to theme error color * Latex screen now extends the code screen * Markdown changes: Now uses dimensions instead of windowdimensions Removed inline latex function extracted latex rendering into separate function * updated latex util test * Hardcoded latex language in latex code block * Added proptypes and cleaned up latex code block * Bugfix latex split lines * ÃDeleted language prop from latex code block * Changed commonmark packages to personal repo's * Latex rendering now goes by commonmark * Deleted unused function and tests * Commonmark packages back to normal versions with patch package * Updated commonmark patch file to right file and changed package lock to point at right repo * Updated patch files to latest version * Updated commonmark patch * Fixed linter errors * Integrety of commonmark fix * First fix of ios problems * Updated snapshot Co-authored-by: Kobe Bergmans <kobe.bergmans@student.kuleuven.be> Co-authored-by: Administrator <admin@Macintosh-3.localdomain> Co-authored-by: kobe bergmans <kobebergmans@kobes-MacBook-Pro.local>
66 lines
2.5 KiB
TypeScript
66 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');
|
|
});
|
|
});
|