UNPKG

fuzzy-rater

Version:

Tooling for fuzzily rating text according to some query

106 lines 9.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const addAlterationData_1 = require("../addAlterationData"); const FuzzyMultiWordMatcher_1 = require("../wordMatcher/FuzzyMultiWordMatcher"); /** * Simplifies the match groups to check the result * @param matchGroups The match groups * @returns The simplified match groups */ function simplifyMatchGroups(matchGroups) { return matchGroups.map(group => [group.range.text, group.relations.map(v => v.type)]); } describe("addAlterationData", () => { it("Should properly add alteration data of all matches", () => { const inputText = "hallo I like potatoes and the likes"; const q1 = { index: 0, text: "lie", matchedIndex: -1, }; const q2 = { index: 1, text: "poatloes", matchedIndex: -1, }; const q1Matcher = new FuzzyMultiWordMatcher_1.FuzzyMultiWordMatcher(q1.text, 1); const q2Matcher = new FuzzyMultiWordMatcher_1.FuzzyMultiWordMatcher(q2.text, 2); const q1match = q1Matcher.getMatchData(inputText); const q2match = q2Matcher.getMatchData(inputText); const matchesQ1 = addAlterationData_1.addAlterationData([], q1match.alterations, q1); const matchesQ2 = addAlterationData_1.addAlterationData(matchesQ1, q2match.alterations, q2); expect(simplifyMatchGroups(matchesQ2)).toEqual([ ["hallo I ", []], ["li", ["match"]], ["k", ["insert"]], ["e", ["match"]], [" ", []], ["po", ["match"]], ["t", ["insert"]], ["at", ["match"]], ["", ["skip"]], ["oes", ["match"]], [" and the ", []], ["li", ["match"]], ["k", ["insert"]], ["e", ["match"]], ["s", []], ]); }); it("Should properly retain 0 character groups", () => { const inputText = "I like blcks yes"; const q1 = { index: 0, text: "locks", matchedIndex: -1, }; const q2 = { index: 1, text: "yes", matchedIndex: -1, }; const q1Matcher = new FuzzyMultiWordMatcher_1.FuzzyMultiWordMatcher(q1.text, 1); const q2Matcher = new FuzzyMultiWordMatcher_1.FuzzyMultiWordMatcher(q2.text, 1); const q1match = q1Matcher.getMatchData(inputText); const q2match = q2Matcher.getMatchData(inputText); const matchesQ1 = addAlterationData_1.addAlterationData([], q1match.alterations, q1); const matchesQ2 = addAlterationData_1.addAlterationData(matchesQ1, q2match.alterations, q2); expect(simplifyMatchGroups(matchesQ2)).toEqual([ ["I like b", []], ["l", ["match"]], ["", ["skip"]], ["cks", ["match"]], [" ", []], ["yes", ["match"]], ]); }); it("Should properly merge multiple 0 character groups", () => { const inputText = "I like blcks yes"; const q1 = { index: 0, text: "locks", matchedIndex: -1, }; const q2 = { index: 1, text: "black", matchedIndex: -1, }; const q1Matcher = new FuzzyMultiWordMatcher_1.FuzzyMultiWordMatcher(q1.text, 1); const q2Matcher = new FuzzyMultiWordMatcher_1.FuzzyMultiWordMatcher(q2.text, 1); const q1match = q1Matcher.getMatchData(inputText); const q2match = q2Matcher.getMatchData(inputText); const matchesQ1 = addAlterationData_1.addAlterationData([], q1match.alterations, q1); const matchesQ2 = addAlterationData_1.addAlterationData(matchesQ1, q2match.alterations, q2); expect(simplifyMatchGroups(matchesQ2)).toEqual([ ["I like ", []], ["b", ["match"]], ["l", ["match", "match"]], ["", ["skip", "skip"]], ["ck", ["match", "match"]], ["s", ["match"]], [" yes", []], ]); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkQWx0ZXJhdGlvbkRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnV6enlSYXRlL190ZXN0cy9hZGRBbHRlcmF0aW9uRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDREQUF1RDtBQUN2RCxnRkFBMkU7QUFHM0U7Ozs7R0FJRztBQUNILFNBQVMsbUJBQW1CLENBQUMsV0FBMEI7SUFDbkQsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUYsQ0FBQztBQUVELFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtRQUMxRCxNQUFNLFNBQVMsR0FBRyxxQ0FBcUMsQ0FBQztRQUN4RCxNQUFNLEVBQUUsR0FBRztZQUNQLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxFQUFFLEtBQUs7WUFDWCxZQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQ25CLENBQUM7UUFDRixNQUFNLEVBQUUsR0FBRztZQUNQLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxFQUFFLFVBQVU7WUFDaEIsWUFBWSxFQUFFLENBQUMsQ0FBQztTQUNuQixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksNkNBQXFCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV4RCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFD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