Skip to content

Commit

Permalink
Merge pull request #1006 from pelias/no-parent-confidence
Browse files Browse the repository at this point in the history
Check for missing parent object in confidence score computation
  • Loading branch information
Diana Shkolnikov authored Sep 25, 2017
2 parents 187a998 + b60e011 commit 2ea514f
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 3 deletions.
7 changes: 4 additions & 3 deletions middleware/confidenceScore.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,8 @@ function checkForDealBreakers(req, hit) {
return false;
}

if (check.assigned(req.clean.parsed_text.state) && hit.parent.region_a && req.clean.parsed_text.state !== hit.parent.region_a[0]) {
if (check.assigned(req.clean.parsed_text.state) && check.assigned(hit.parent) &&
hit.parent.region_a && req.clean.parsed_text.state !== hit.parent.region_a[0]) {
logger.debug('[confidence][deal-breaker]: state !== region_a');
return true;
}
Expand Down Expand Up @@ -220,8 +221,8 @@ function checkAddress(text, hit) {
res += propMatch(text.number, (hit.address_parts ? hit.address_parts.number : null), false);
res += propMatch(text.street, (hit.address_parts ? hit.address_parts.street : null), false);
res += propMatch(text.postalcode, (hit.address_parts ? hit.address_parts.zip: null), true);
res += propMatch(text.state, (hit.parent.region_a ? hit.parent.region_a[0] : null), true);
res += propMatch(text.country, (hit.parent.country_a ? hit.parent.country_a[0] :null), true);
res += propMatch(text.state, ((hit.parent && hit.parent.region_a) ? hit.parent.region_a[0] : null), true);
res += propMatch(text.country, ((hit.parent && hit.parent.country_a) ? hit.parent.country_a[0] :null), true);

res /= checkCount;
}
Expand Down
32 changes: 32 additions & 0 deletions test/unit/middleware/confidenceScore.js
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,38 @@ module.exports.tests.confidenceScore = function(test, common) {
t.false(res.data[0].hasOwnProperty('confidence'), 'score was not set');
t.end();
});

test('missing parent object should not throw an exception', function(t) {
var req = {
clean: {
text: '123 Main St, City, NM',
parsed_text: {
number: 123,
street: 'Main St',
state: 'NM'
}
}
};
var res = {
data: [{
_score: 10,
found: true,
value: 1,
center_point: { lat: 100.1, lon: -50.5 },
name: { default: 'test name1' },
}],
meta: {
scores: [10],
query_type: 'original'
}
};

t.doesNotThrow(() => {
confidenceScore(req, res, () => {});
});
t.equal(res.data[0].confidence, 0.28, 'score was set');
t.end();
});
};

module.exports.all = function (tape, common) {
Expand Down

0 comments on commit 2ea514f

Please sign in to comment.