fuzzystringmatch
Version:
a small library that creates a in-memory index for a fast and fuzzy lookup of search terms
30 lines (25 loc) • 908 B
JavaScript
var expect = require('chai').expect
var defaultSplitterConfig = require('../lib/tools/defaultSplitterConfig')
var Digester = require('../lib/Digester')
var Subject = require('../lib/Subject')
describe('Digester', () => {
var digester;
before(() => {
digester = new Digester({splitter: defaultSplitterConfig})
digester.feed('foo')
digester.feed(new Subject('food'))
digester.feed('FoaR')
})
it('should build an index', () => expect(indexToObject(digester.getIndex())).to.deep.equal({
ar: ['FoaR'],
fo: ['foo', 'food', 'FoaR'],
oa: ['FoaR'],
oo: ['foo', 'food'],
od: ['food']
}))
})
function indexToObject(index) {
return Array
.from(index.entries())
.reduce((carry, entry) => Object.assign(carry, {[entry[0].getTerm()]: Array.from(entry[1].entries()).map(entry => entry[0].getTerm())}), {})
}