import { remark } from './remark';
import { some } from '../../combinator';
import { input } from '../context';
import { inspect } from '../../debug.test';
describe('Unit: parser/inline/remark', () => {
describe('remark', () => {
const parser = some(remark);
it('invalid', () => {
assert.deepStrictEqual(inspect(parser, input('')), undefined);
assert.deepStrictEqual(inspect(parser, input('<')), undefined);
assert.deepStrictEqual(inspect(parser, input('[%')), undefined);
assert.deepStrictEqual(inspect(parser, input('[%[%')), undefined);
assert.deepStrictEqual(inspect(parser, input('[%a%]')), undefined);
assert.deepStrictEqual(inspect(parser, input('[%a b%]')), undefined);
assert.deepStrictEqual(inspect(parser, input('[% ')), [['[%'], '']);
assert.deepStrictEqual(inspect(parser, input('[% \n a')), [['[%', '
', ' a'], '']);
assert.deepStrictEqual(inspect(parser, input('[%%]')), undefined);
assert.deepStrictEqual(inspect(parser, input('[% [%')), [['[%', ' ', '[', '%'], '']);
assert.deepStrictEqual(inspect(parser, input('[% [% ')), [['[%', ' ', '[%'], '']);
assert.deepStrictEqual(inspect(parser, input('[% [% a')), [['[%', ' ', '[%', ' a'], '']);
assert.deepStrictEqual(inspect(parser, input('[% [% a %]')), [['[%', ' ', ''], '']);
assert.deepStrictEqual(inspect(parser, input('[% a[%')), [['[%', ' a', '[', '%'], '']);
assert.deepStrictEqual(inspect(parser, input('[% a [%')), [['[%', ' a ', '[', '%'], '']);
assert.deepStrictEqual(inspect(parser, input('[% a [% ')), [['[%', ' a ', '[%'], '']);
assert.deepStrictEqual(inspect(parser, input('[% a [% b')), [['[%', ' a ', '[%', ' b'], '']);
assert.deepStrictEqual(inspect(parser, input('[% a [%% b')), [['[%', ' a ', '[%%', ' b'], '']);
assert.deepStrictEqual(inspect(parser, input('[%% a [% b')), [['[%%'], ' a [% b']);
assert.deepStrictEqual(inspect(parser, input('[%\\ a %]')), undefined);
assert.deepStrictEqual(inspect(parser, input('[% a\\ %]')), [['[%', ' a', ' ', '%', ']'], '']);
assert.deepStrictEqual(inspect(parser, input('[% a%]')), [['[%', ' a%', ']'], '']);
assert.deepStrictEqual(inspect(parser, input('[% a %%]')), [['[%', ' a %%', ']'], '']);
assert.deepStrictEqual(inspect(parser, input('[% [%% %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[%% [% %%]')), [['[%%'], ' [% %%]']);
assert.deepStrictEqual(inspect(parser, input('[%% a %]')), [['[%%'], ' a %]']);
assert.deepStrictEqual(inspect(parser, input(' [% a %]')), undefined);
});
it('basic', () => {
assert.deepStrictEqual(inspect(parser, input('[% %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% a %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% - %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% a %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% - %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% a b %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% a\nb %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% a %] %]')), [[''], ' %]']);
assert.deepStrictEqual(inspect(parser, input('[% %%] %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% [% a %] %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% a %]b')), [[''], 'b']);
assert.deepStrictEqual(inspect(parser, input('[%\na\n%]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% &a; %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% © %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% © %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% [ %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% \\ a %]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('[% $-a %]$')), [[''], '$']);
assert.deepStrictEqual(inspect(parser, input('[% %]')), [[''], '']);
});
});
});