dist-javascript-algorithms-and-data-structures
Version:
Algorithms and data-structures implemented on JavaScript
27 lines (18 loc) • 1.41 kB
JavaScript
;
var _levenshteinDistance = _interopRequireDefault(require("../levenshteinDistance"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('levenshteinDistance', () => {
it('should calculate edit distance between two strings', () => {
expect((0, _levenshteinDistance.default)('', '')).toBe(0);
expect((0, _levenshteinDistance.default)('a', '')).toBe(1);
expect((0, _levenshteinDistance.default)('', 'a')).toBe(1);
expect((0, _levenshteinDistance.default)('abc', '')).toBe(3);
expect((0, _levenshteinDistance.default)('', 'abc')).toBe(3); // Should just add I to the beginning.
expect((0, _levenshteinDistance.default)('islander', 'slander')).toBe(1); // Needs to substitute M by K, T by M and add an A to the end
expect((0, _levenshteinDistance.default)('mart', 'karma')).toBe(3); // Substitute K by S, E by I and insert G at the end.
expect((0, _levenshteinDistance.default)('kitten', 'sitting')).toBe(3); // Should add 4 letters FOOT at the beginning.
expect((0, _levenshteinDistance.default)('ball', 'football')).toBe(4); // Should delete 4 letters FOOT at the beginning.
expect((0, _levenshteinDistance.default)('football', 'foot')).toBe(4); // Needs to substitute the first 5 chars: INTEN by EXECU
expect((0, _levenshteinDistance.default)('intention', 'execution')).toBe(5);
});
});