import { mathblock } from './mathblock'; import { some } from '../../combinator'; import { input } from '../context'; import { inspect } from '../../debug.test'; describe('Unit: parser/block/mathblock', () => { describe('mathblock', () => { const parser = some(mathblock); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('')), undefined); assert.deepStrictEqual(inspect(parser, input('\n')), undefined); assert.deepStrictEqual(inspect(parser, input('$$')), undefined); assert.deepStrictEqual(inspect(parser, input('$$\n')), undefined); assert.deepStrictEqual(inspect(parser, input('$$\na')), [['
$$\na
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\na$$')), [['
$$\na$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\na\n$$b')), [['
$$\na\n$$b
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\na\n$$\nb')), [['
$$\na\n$$\nb
'], '']); assert.deepStrictEqual(inspect(parser, input('$$$\n\n\n$$$')), undefined); assert.deepStrictEqual(inspect(parser, input('$$ $$\n$$')), undefined); assert.deepStrictEqual(inspect(parser, input('$$lang\n$$')), [['
$$lang\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$ param\n$$')), [['
$$ param\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\n$$\n$$')), [['
$$\n$$\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\n$$$')), [['
$$\n$$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$$\n$$')), [['
$$$\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$$\n$$$')), [['
$$$\n$$$
'], '']); assert.deepStrictEqual(inspect(parser, input(' $$\n$$')), undefined); }); it('basic', () => { assert.deepStrictEqual(inspect(parser, input('$$\n$$')), [['
$$\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\n\n$$')), [['
$$\n\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\na\n$$')), [['
$$\na\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\na\n$$\n')), [['
$$\na\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\na\nb\n$$')), [['
$$\na\nb\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\n\\\n$$')), [['
$$\n\\\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\n$\n$$')), [['
$$\n$\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\n$\n\n$$')), [['
$$\n$\n\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\n$$\n\n$$')), [['
$$\n$$
'], '\n$$']); assert.deepStrictEqual(inspect(parser, input('$$\n$$$\n$$')), [['
$$\n$$$\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('$$\n$$$\n\n$$')), [['
$$\n$$$\n\n$$
'], '']); }); }); });