import { paragraph } from './paragraph'; import { some } from '../../combinator'; import { input } from '../context'; import { inspect } from '../../debug.test'; describe('Unit: parser/block/paragraph', () => { describe('paragraph', () => { const parser = some(paragraph); it('basic', () => { assert.deepStrictEqual(inspect(parser, input('a')), [['

a

'], '']); assert.deepStrictEqual(inspect(parser, input('ab')), [['

ab

'], '']); assert.deepStrictEqual(inspect(parser, input('a\\')), [['

a

'], '']); assert.deepStrictEqual(inspect(parser, input('a ')), [['

a

'], '']); assert.deepStrictEqual(inspect(parser, input('a \n')), [['

a

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n')), [['

a

'], '']); assert.deepStrictEqual(inspect(parser, input('a\nb')), [['

a
b

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n\\')), [['

a
\\

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n\\\n')), [['

a
\\

'], '']); assert.deepStrictEqual(inspect(parser, input('a\\ ')), [['

a

'], '']); assert.deepStrictEqual(inspect(parser, input('a\\ \n')), [['

a

'], '']); assert.deepStrictEqual(inspect(parser, input('a\\\n')), [['

a

'], '']); assert.deepStrictEqual(inspect(parser, input('a\\\nb')), [['

a
b

'], '']); assert.deepStrictEqual(inspect(parser, input('a b')), [['

a
b

'], '']); assert.deepStrictEqual(inspect(parser, input('  ')), [['

	

'], '']); assert.deepStrictEqual(inspect(parser, input('')), [['

<wbr>

'], '']); assert.deepStrictEqual(inspect(parser, input('\n')), [['

<wbr>

'], '']); assert.deepStrictEqual(inspect(parser, input('\na')), [['

<wbr>
a

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n\n')), [['

a
<wbr>

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n\nb')), [['

a
<wbr>
b

'], '']); assert.deepStrictEqual(inspect(parser, input('*a\n*\nb')), [['

*a
*
b

'], '']); assert.deepStrictEqual(inspect(parser, input('**a\n**\nb')), [['

**a
**
b

'], '']); assert.deepStrictEqual(inspect(parser, input('***a\n***\nb')), [['

***a
***
b

'], '']); assert.deepStrictEqual(inspect(parser, input('***a*b\n**\nc')), [['

**ab
**
c

'], '']); assert.deepStrictEqual(inspect(parser, input('***a**b\n*\nc')), [['

*ab
*
c

'], '']); assert.deepStrictEqual(inspect(parser, input('==a\n==\nb')), [['

==a
==
b

'], '']); assert.deepStrictEqual(inspect(parser, input('http://host)')), [['

http://host)

'], '']); assert.deepStrictEqual(inspect(parser, input('a\nhttp://host) \nb')), [['

a
http://host)
b

'], '']); assert.deepStrictEqual(inspect(parser, input('!http://host)')), [['

!http://host)

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n!http://host) \nb')), [['

a
!http://host)
b

'], '']); assert.deepStrictEqual(inspect(parser, input('\ta')), [['

\ta

'], '']); assert.deepStrictEqual(inspect(parser, input('[[^A]]')), [['

'], '']); }); it('anchor', () => { assert.deepStrictEqual(inspect(parser, input('>>1 a\nb')), [['

>>1 a
b

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1 a\n>>2')), [['

>>1 a
>>2

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1 a\n>>b')), [['

>>1 a
>>b

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1 a\n>> b')), [['

>>1 a
>> b

'], '']); assert.deepStrictEqual(inspect(parser, input('>>11.')), [['

>>11.

'], '']); assert.deepStrictEqual(inspect(parser, input('>>11 a')), [['

>>11 a

'], '']); assert.deepStrictEqual(inspect(parser, input('>>>11 a')), [['

>>>11 a

'], '']); assert.deepStrictEqual(inspect(parser, input('>> a\n>>1')), [['

>> a
>>1

'], '']); assert.deepStrictEqual(inspect(parser, input('a>>1')), [['

a>>1

'], '']); assert.deepStrictEqual(inspect(parser, input('ab>>1')), [['

ab>>1

'], '']); assert.deepStrictEqual(inspect(parser, input('a >>1')), [['

a >>1

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n>>1')), [['

a
>>1

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n>>1\nb')), [['

a
>>1
b

'], '']); assert.deepStrictEqual(inspect(parser, input('a\n>> b\nc')), [['

a
>> b
c

'], '']); assert.deepStrictEqual(inspect(parser, input('\t>>1')), [['

\t>>1

'], '']); assert.deepStrictEqual(inspect(parser, input('\t>>>1')), [['

\t>>>1

'], '']); assert.deepStrictEqual(inspect(parser, input('あ>>1')), [['

>>1

'], '']); }); it('remark', () => { assert.deepStrictEqual(inspect(parser, input('[% a %]')), [['

[% a %]

'], '']); assert.deepStrictEqual(inspect(parser, input('[% a %]b')), [['

[% a %]b

'], '']); assert.deepStrictEqual(inspect(parser, input('[% a %]\nb')), [['

[% a %]
b

'], '']); assert.deepStrictEqual(inspect(parser, input('[%\n\n%]')), [['

[%
<wbr>
%]

'], '']); assert.deepStrictEqual(inspect(parser, input('[%\n\n%]a')), [['

[%
<wbr>
%]
a

'], '']); assert.deepStrictEqual(inspect(parser, input('[%\n\n%]\na')), [['

[%
<wbr>
%]

a

'], '']); }); it('template', () => { assert.deepStrictEqual(inspect(parser, input('{{\n\\\n}}')), [['

{{
\\
}}

'], '']); }); }); });