import { Assert, UnitTest } from '@ephox/bedrock-client'; import * as PositionArray from 'ephox/polaris/api/PositionArray'; import * as Strings from 'ephox/polaris/api/Strings'; import * as Parrays from 'ephox/polaris/test/Parrays'; UnitTest.test('api.PositionArray.splits', () => { const subdivide = (unit: Parrays.PArrayTestItem, positions: number[]) => { const tokens = Strings.splits(unit.item, positions); return Parrays.make(tokens); }; const check = (expected: string[], input: string[], positions: number[]) => { const parray = Parrays.make(input); const actual = PositionArray.splits(parray, positions, subdivide); Assert.eq('', expected, Parrays.dump(actual)); }; check([], [], []); check([ '0->2@ ha' ], [ 'ha' ], []); check([ '0->5@ hallo', '5->14@ hallobalo' ], [ 'hallo', 'hallobalo' ], []); check([ '0->1@ h', '1->2@ a', '2->3@ l', '3->5@ lo', '5->6@ h', '6->9@ all', '9->11@ ob', '11->13@ al', '13->14@ o' ], [ 'hallo', 'hallobalo' ], [ 1, 2, 3, 6, 9, 11, 13 ]); });