import { label } from './label';
import { some } from '../../../combinator';
import { input } from '../../context';
import { inspect } from '../../../debug.test';
describe('Unit: parser/inline/extension/label', () => {
describe('label', () => {
const parser = some(label);
it('invalid', () => {
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-')), undefined);
assert.deepStrictEqual(inspect(parser, input('$a--')), undefined);
assert.deepStrictEqual(inspect(parser, input('$a-.0')), undefined);
assert.deepStrictEqual(inspect(parser, input('$a-00')), undefined);
assert.deepStrictEqual(inspect(parser, input('$a-01')), undefined);
assert.deepStrictEqual(inspect(parser, input('$a-0b')), undefined);
assert.deepStrictEqual(inspect(parser, input('$$a-b')), undefined);
assert.deepStrictEqual(inspect(parser, input('$$$-b')), undefined);
assert.deepStrictEqual(inspect(parser, input(' $a-b')), undefined);
});
it('basic', () => {
assert.deepStrictEqual(inspect(parser, input('$a-b')), [['$a-b'], '']);
assert.deepStrictEqual(inspect(parser, input('$a-b.0')), [['$a-b'], '.0']);
assert.deepStrictEqual(inspect(parser, input('$a-b.c')), [['$a-b'], '.c']);
assert.deepStrictEqual(inspect(parser, input('$a-b-0')), [['$a-b'], '-0']);
assert.deepStrictEqual(inspect(parser, input('$a-b-1')), [['$a-b'], '-1']);
assert.deepStrictEqual(inspect(parser, input('$a-b-$a-c')), [['$a-b'], '-$a-c']);
assert.deepStrictEqual(inspect(parser, input('$a-b-0-$a-c')), [['$a-b'], '-0-$a-c']);
assert.deepStrictEqual(inspect(parser, input('$a-0')), [['$a-0'], '']);
assert.deepStrictEqual(inspect(parser, input('$a-0.b')), [['$a-0'], '.b']);
assert.deepStrictEqual(inspect(parser, input('$a-0.0b')), [['$a-0'], '.0b']);
assert.deepStrictEqual(inspect(parser, input('$a-0-$a-0')), [['$a-0'], '-$a-0']);
assert.deepStrictEqual(inspect(parser, input('$-b')), [['$-b'], '']);
assert.deepStrictEqual(inspect(parser, input('$-b-$-c')), [['$-b'], '-$-c']);
assert.deepStrictEqual(inspect(parser, input('$-0')), [['$-0'], '']);
assert.deepStrictEqual(inspect(parser, input('$-0.b')), [['$-0'], '.b']);
assert.deepStrictEqual(inspect(parser, input('$-0.0b')), [['$-0'], '.0b']);
assert.deepStrictEqual(inspect(parser, input('$-0-$-0')), [['$-0'], '-$-0']);
assert.deepStrictEqual(inspect(parser, input('$A-B')), [['$A-B'], '']);
assert.deepStrictEqual(inspect(parser, input('[$a-b]')), [['$a-b'], '']);
});
});
});