1var _a = require("./mod.js"), closest = _a.closest, distance = _a.distance; 2var levenshtein = function (a, b) { 3 if (a.length === 0) { 4 return b.length; 5 } 6 if (b.length === 0) { 7 return a.length; 8 } 9 if (a.length > b.length) { 10 var tmp = a; 11 a = b; 12 b = tmp; 13 } 14 var row = []; 15 for (var i = 0; i <= a.length; i++) { 16 row[i] = i; 17 } 18 for (var i = 1; i <= b.length; i++) { 19 var prev = i; 20 for (var j = 1; j <= a.length; j++) { 21 var val = 0; 22 if (b.charAt(i - 1) === a.charAt(j - 1)) { 23 val = row[j - 1]; 24 } 25 else { 26 val = Math.min(row[j - 1] + 1, prev + 1, row[j] + 1); 27 } 28 row[j - 1] = prev; 29 prev = val; 30 } 31 row[a.length] = prev; 32 } 33 return row[a.length]; 34}; 35var makeid = function (length) { 36 var result = ""; 37 var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; 38 var charactersLength = characters.length; 39 for (var i = 0; i < length; i++) { 40 result += characters.charAt(Math.floor(Math.random() * charactersLength)); 41 } 42 return result; 43}; 44for (var i = 0; i < 10000; i++) { 45 var rnd_num1 = (Math.random() * 1000) | 0; 46 var rnd_num2 = (Math.random() * 1000) | 0; 47 var rnd_string1 = makeid(rnd_num1); 48 var rnd_string2 = makeid(rnd_num2); 49 var actual = distance(rnd_string1, rnd_string2); 50 var expected = levenshtein(rnd_string1, rnd_string2); 51 console.log(i); 52 if (actual !== expected) { 53 console.log("fail"); 54 } 55} 56