import { levenshteinDistance } from '../../src/ts/mmui-util/levenshtein'; test('levenshteinDistance: No distance', () => { const word0 = 'Yellow'; const word1 = 'Yellow'; const d: number = levenshteinDistance(word0, word1); expect(d).toBe(0); }); test('levenshteinDistance: One edit distance', () => { const word0 = 'Yellow'; const word1 = 'Mellow'; const d: number = levenshteinDistance(word0, word1); expect(d).toBe(1); }); test('levenshteinDistance: Empty Right', () => { const d: number = levenshteinDistance('Blue', ''); expect(d).toBe(4); }); test('levenshteinDistance: Empty left', () => { const d: number = levenshteinDistance('', 'Blue'); expect(d).toBe(4); }); test('levenshteinDistance: Both empty', () => { const d: number = levenshteinDistance('', ''); expect(d).toBe(0); }); test('levenshteinDistance: Null left argument', () => { expect(() => { levenshteinDistance(null, 'Yellow'); }).toThrowError(); }); test('levenshteinDistance: Null right argument', () => { expect(() => { levenshteinDistance('Yellow', null); }).toThrowError(); }); test('levenshteinDistance: Null arguments', () => { expect(() => { levenshteinDistance(null, null); }).toThrowError(); });