|
1 | | -import {PATCH_OP_TYPE, type Patch, diff, diffEdit, overlap, normalize, apply, src, dst, invert} from '../str'; |
| 1 | +import {PATCH_OP_TYPE, type Patch, diff, diffEdit, overlap, normalize, apply, src, dst, invert, pfx, sfx} from '../str'; |
2 | 2 | import {assertPatch} from './util'; |
3 | 3 |
|
| 4 | +describe('pfx()', () => { |
| 5 | + test('finds common prefixes', () => { |
| 6 | + expect(pfx('abc', 'b')).toEqual(0); |
| 7 | + expect(pfx('abc', 'a')).toEqual(1); |
| 8 | + expect(pfx('abc', 'ab')).toEqual(2); |
| 9 | + expect(pfx('abc', 'abc')).toEqual(3); |
| 10 | + expect(pfx('abc', 'abcd')).toEqual(3); |
| 11 | + expect(pfx('abc', 'abcde')).toEqual(3); |
| 12 | + expect(pfx('👨🍳', '👨🍳')).toEqual(5); |
| 13 | + expect(pfx('👨🍳', '👨🍳chef')).toEqual(5); |
| 14 | + expect(pfx('👨🍳chef', '👨🍳')).toEqual(5); |
| 15 | + expect(pfx('👨🍳👨🍳', '👨🍳')).toEqual(5); |
| 16 | + expect('👨🍳chef'.slice(0, 5)).toBe('👨🍳'); |
| 17 | + }); |
| 18 | +}); |
| 19 | + |
| 20 | +describe('sfx()', () => { |
| 21 | + test('finds common suffixes', () => { |
| 22 | + expect(sfx('abc', 'b')).toEqual(0); |
| 23 | + expect(sfx('abc', 'c')).toEqual(1); |
| 24 | + expect(sfx('abc', 'bc')).toEqual(2); |
| 25 | + expect(sfx('abc', 'abc')).toEqual(3); |
| 26 | + expect(sfx('abc', '_abc')).toEqual(3); |
| 27 | + expect(sfx('abc', 'abcd')).toEqual(0); |
| 28 | + expect(sfx('👨🍳', '👨🍳')).toEqual(5); |
| 29 | + // expect(sfx('👨🍳', '👨🍳chef')).toEqual(5); |
| 30 | + // expect(sfx('👨🍳chef', '👨🍳')).toEqual(5); |
| 31 | + // expect(sfx('👨🍳👨🍳', '👨🍳')).toEqual(5); |
| 32 | + }); |
| 33 | +}); |
| 34 | + |
4 | 35 | describe('normalize()', () => { |
5 | 36 | test('joins consecutive same type operations', () => { |
6 | 37 | expect( |
|
0 commit comments