1 var fastLevenshtein = require('../levenshtein.min').get,
2 levenshtein = require('levenshtein'),
3 levenshteinEditDistance = require('levenshtein-edit-distance'),
4 levenshteinComponent = require('levenshtein-component'),
5 levenshteinDeltas = require('levenshtein-deltas'),
6 natural = require('natural').LevenshteinDistance;
10 /* The first 100 words from Letterpress: https://github.com/atebits/Words */
11 source = Array(11).join([
113 ].join('|')).split('|');
118 * The actual test loop.
119 * @param {Function} fn Levenshtein distance function.
121 var loop = function(fn) {
127 while (value = source[++iterator]) {
128 dist = fn(previousValue, value);
129 previousValue = value;
134 /** @type {Object} Test config */
136 name: 'Implementation comparison',
137 onComplete: function() {
138 console.log('Benchmark done.');
142 name: 'levenshtein-edit-distance',
144 loop(levenshteinEditDistance);
148 name: 'levenshtein-component',
150 loop(levenshteinComponent);
154 name: 'levenshtein-deltas',
156 loop(function(v1,v2) {
157 return new levenshteinDeltas.Lev(v1,v2).distance();
174 name: 'fast-levenshtein',
176 loop(fastLevenshtein);