mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
64 lines
No EOL
1.1 KiB
JavaScript
64 lines
No EOL
1.1 KiB
JavaScript
/* Tests for the levenshtein logic. */
|
|
var expect = require('chai').expect;
|
|
var wuzzy = require('../index');
|
|
|
|
describe('levenshtein tests', function () {
|
|
it('should correctly calcuate the levenshtein distance', function () {
|
|
var tests = [
|
|
{
|
|
a: ['M', 'A', 'R', 'T', 'H', 'A'],
|
|
b: ['M', 'A', 'R', 'H', 'T', 'A'],
|
|
exp: 4 / 6
|
|
},
|
|
{
|
|
a: 'MARTHA',
|
|
b: 'MARHTA',
|
|
exp: 4 / 6
|
|
},
|
|
{
|
|
a: ['D', 'W', 'A', 'Y', 'N', 'E'],
|
|
b: ['D', 'U', 'A', 'N', 'E'],
|
|
exp: 4 / 6
|
|
},
|
|
{
|
|
a: 'DWAYNE',
|
|
b: 'DUANE',
|
|
exp: 4 / 6
|
|
},
|
|
{
|
|
a: ['D', 'I', 'X', 'O', 'N'],
|
|
b: ['D', 'I', 'C', 'K', 'S', 'O', 'N', 'X'],
|
|
exp: 4 / 8
|
|
},
|
|
{
|
|
a: 'DIXON',
|
|
b: 'DICKSONX',
|
|
exp: 4 / 8
|
|
},
|
|
{
|
|
a: ['J', 'O', 'E'],
|
|
b: ['M', 'A', 'T', 'T'],
|
|
exp: 0
|
|
},
|
|
{
|
|
a: 'JOE',
|
|
b: 'MATT',
|
|
exp: 0
|
|
},
|
|
{
|
|
a: ['J', 'O', 'E'],
|
|
b: ['J', 'O', 'E'],
|
|
exp: 1
|
|
},
|
|
{
|
|
a: 'JOE',
|
|
b: 'JOE',
|
|
exp: 1
|
|
}
|
|
];
|
|
tests.forEach(function (el) {
|
|
var actual = wuzzy.levenshtein(el.a, el.b);
|
|
expect(actual).to.equal(el.exp);
|
|
});
|
|
});
|
|
}); |