| "use strict"; |
| exports.__esModule = true; |
| /* eslint-disable @typescript-eslint/no-var-requires */ |
| /* eslint-disable no-console */ |
| var Benchmark = require("benchmark"); |
| var mod_js_1 = require("./mod.js"); |
| var fast_levenshtein_1 = require("fast-levenshtein"); |
| var fs = require("fs"); |
| var jslevenshtein = require("js-levenshtein"); |
| var leven = require("leven"); |
| var levenshteinEditDistance = require("levenshtein-edit-distance"); |
| var suite = new Benchmark.Suite(); |
| var randomstring = function (length) { |
| var result = ""; |
| var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; |
| var charactersLength = characters.length; |
| for (var i = 0; i < length; i++) { |
| result += characters.charAt(Math.floor(Math.random() * charactersLength)); |
| } |
| return result; |
| }; |
| var randomstringArr = function (stringSize, arraySize) { |
| var i = 0; |
| var arr = []; |
| for (i = 0; i < arraySize; i++) { |
| arr.push(randomstring(stringSize)); |
| } |
| return arr; |
| }; |
| var arrSize = 1000; |
| if (!fs.existsSync("data.json")) { |
| var data_1 = [ |
| randomstringArr(4, arrSize), |
| randomstringArr(8, arrSize), |
| randomstringArr(16, arrSize), |
| randomstringArr(32, arrSize), |
| randomstringArr(64, arrSize), |
| randomstringArr(128, arrSize), |
| randomstringArr(256, arrSize), |
| randomstringArr(512, arrSize), |
| randomstringArr(1024, arrSize), |
| ]; |
| fs.writeFileSync("data.json", JSON.stringify(data_1)); |
| } |
| var data = JSON.parse(fs.readFileSync("data.json", "utf8")); |
| var _loop_1 = function (i) { |
| var datapick = data[i]; |
| if (process.argv[2] !== "no") { |
| suite |
| .add("".concat(i, " - js-levenshtein"), function () { |
| for (var j = 0; j < arrSize - 1; j += 2) { |
| jslevenshtein(datapick[j], datapick[j + 1]); |
| } |
| }) |
| .add("".concat(i, " - leven"), function () { |
| for (var j = 0; j < arrSize - 1; j += 2) { |
| leven(datapick[j], datapick[j + 1]); |
| } |
| }) |
| .add("".concat(i, " - fast-levenshtein"), function () { |
| for (var j = 0; j < arrSize - 1; j += 2) { |
| (0, fast_levenshtein_1.get)(datapick[j], datapick[j + 1]); |
| } |
| }) |
| .add("".concat(i, " - levenshtein-edit-distance"), function () { |
| for (var j = 0; j < arrSize - 1; j += 2) { |
| levenshteinEditDistance(datapick[j], datapick[j + 1]); |
| } |
| }); |
| } |
| suite.add("".concat(i, " - fastest-levenshtein"), function () { |
| for (var j = 0; j < arrSize - 1; j += 2) { |
| (0, mod_js_1.distance)(datapick[j], datapick[j + 1]); |
| } |
| }); |
| }; |
| // BENCHMARKS |
| for (var i = 0; i < 9; i++) { |
| _loop_1(i); |
| } |
| var results = new Map(); |
| suite |
| .on("cycle", function (event) { |
| console.log(String(event.target)); |
| if (results.has(event.target.name[0])) { |
| results.get(event.target.name[0]).push(event.target.hz); |
| } |
| else { |
| results.set(event.target.name[0], [event.target.hz]); |
| } |
| }) |
| .on("complete", function () { |
| console.log(results); |
| }) |
| // run async |
| .run({ async: true }); |