import { ruby } from './ruby'; import { some } from '../../combinator'; import { input } from '../context'; import { inspect } from '../../debug.test'; describe('Unit: parser/inline/ruby', () => { describe('ruby', () => { const parser = some(ruby); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('')), undefined); assert.deepStrictEqual(inspect(parser, input('[(b)')), undefined); assert.deepStrictEqual(inspect(parser, input('[]()')), undefined); assert.deepStrictEqual(inspect(parser, input('[](b)')), undefined); assert.deepStrictEqual(inspect(parser, input('[ ](b)')), undefined); assert.deepStrictEqual(inspect(parser, input('[ a](b)')), undefined); assert.deepStrictEqual(inspect(parser, input('[ a](b)')), undefined); assert.deepStrictEqual(inspect(parser, input('[ a](b)')), undefined); assert.deepStrictEqual(inspect(parser, input('[&a;](b)')), [['&a;(b)'], '']); assert.deepStrictEqual(inspect(parser, input('[a](&a;)')), [['a(&a;)'], '']); assert.deepStrictEqual(inspect(parser, input('[](a)')), undefined); assert.deepStrictEqual(inspect(parser, input('[a]()')), undefined); assert.deepStrictEqual(inspect(parser, input('[a]()')), undefined); assert.deepStrictEqual(inspect(parser, input('[a]( )')), undefined); assert.deepStrictEqual(inspect(parser, input('[a\nb](c)')), undefined); assert.deepStrictEqual(inspect(parser, input('[a](b\nc)')), undefined); assert.deepStrictEqual(inspect(parser, input(' [a](b)')), undefined); }); it('basic', () => { assert.deepStrictEqual(inspect(parser, input('[A](a)')), [['A(a)'], '']); assert.deepStrictEqual(inspect(parser, input('[A](ab)')), [['A(ab)'], '']); assert.deepStrictEqual(inspect(parser, input('[A](a b)')), [['A(a b)'], '']); assert.deepStrictEqual(inspect(parser, input('[A ](a)')), [['A(a)'], '']); assert.deepStrictEqual(inspect(parser, input('[A ](a b)')), [['A(a b)'], '']); assert.deepStrictEqual(inspect(parser, input('[A ](a b )')), [['A(a b)'], '']); assert.deepStrictEqual(inspect(parser, input('[A ](a)')), [['A(a)'], '']); assert.deepStrictEqual(inspect(parser, input('[A \\ ](a)')), [['A(a) '], '']); assert.deepStrictEqual(inspect(parser, input('[AB](a)')), [['AB(a)'], '']); assert.deepStrictEqual(inspect(parser, input('[AB](a )')), [['A(a)B'], '']); assert.deepStrictEqual(inspect(parser, input('[AB]( b)')), [['AB(b)'], '']); assert.deepStrictEqual(inspect(parser, input('[AB](ab)')), [['AB(ab)'], '']); assert.deepStrictEqual(inspect(parser, input('[AB](a b)')), [['A(a)B(b)'], '']); assert.deepStrictEqual(inspect(parser, input('[AB](a b )')), [['AB(a b)'], '']); assert.deepStrictEqual(inspect(parser, input('[AB](a b c)')), [['AB(a b c)'], '']); assert.deepStrictEqual(inspect(parser, input('[A B](ab)')), [['A(ab)B'], '']); assert.deepStrictEqual(inspect(parser, input('[A B](a b)')), [['A(a)B(b)'], '']); assert.deepStrictEqual(inspect(parser, input('[A B](a b )')), [['A B(a b)'], '']); assert.deepStrictEqual(inspect(parser, input('[ABC](a )')), [['A(a)BC'], '']); assert.deepStrictEqual(inspect(parser, input('[ABC](a )')), [['A(a)BC'], '']); assert.deepStrictEqual(inspect(parser, input('[ABC]( b)')), [['AB(b)C'], '']); assert.deepStrictEqual(inspect(parser, input('[ABC]( b )')), [['AB(b)C'], '']); assert.deepStrictEqual(inspect(parser, input('[ABC]( c)')), [['ABC(c)'], '']); assert.deepStrictEqual(inspect(parser, input('[ABC](a c)')), [['A(a)BC(c)'], '']); assert.deepStrictEqual(inspect(parser, input('[東方](とう ほう)')), [['(とう)(ほう)'], '']); assert.deepStrictEqual(inspect(parser, input('[秦 \\  こころ](はた の こころ)')), [['(はた) ()こころ(こころ)'], '']); assert.deepStrictEqual(inspect(parser, input('[秦   こころ](はた の こころ)')), [['(はた) ()こころ(こころ)'], '']); assert.deepStrictEqual(inspect(parser, input('[&&](&&)')), [['&&(&&)'], '']); assert.deepStrictEqual(inspect(parser, input('[©](©)')), [['©(©)'], '']); assert.deepStrictEqual(inspect(parser, input('[©](©)')), [['©(©)'], '']); assert.deepStrictEqual(inspect(parser, input('[*A*](*a*)')), [['*A*(*a*)'], '']); }); }); });