Merge pull request #1967 from OpenRefine/compute_recon_features_bug

Fix Recon features computation for empty recons
This commit is contained in:
Antonin Delpeuch 2019-02-23 19:08:11 +00:00 committed by GitHub
commit 7144798aac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View File

@ -566,8 +566,8 @@ public class StandardReconConfig extends ReconConfig {
* @param text
* the cell value to compare the reconciliation data to
*/
public void computeFeatures(Recon recon, String text) {
if (!recon.candidates.isEmpty()) {
public void computeFeatures(Recon recon, String text) {
if (recon.candidates != null && !recon.candidates.isEmpty()) {
ReconCandidate candidate = recon.candidates.get(0);
recon.setFeature(Recon.Feature_nameMatch, text.equalsIgnoreCase(candidate.name));
@ -587,7 +587,7 @@ public class StandardReconConfig extends ReconConfig {
} else {
recon.features = new Object[Recon.Feature_max];
}
}
}
static protected double wordDistance(String s1, String s2) {
Set<String> words1 = breakWords(s1);

View File

@ -27,6 +27,7 @@
package com.google.refine.tests.model.recon;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
@ -333,4 +334,15 @@ public class StandardReconConfigTests extends RefineTest {
assertEquals(recon.candidates.get(0).score, 0.3);
assertEquals(recon.candidates.get(0).id, "18951129");
}
/**
* computing the features on an empty recon should not fail
*/
@Test
public void testComputeFeatures() {
StandardReconConfigStub stub = new StandardReconConfigStub();
Recon recon = stub.createNewRecon(2384738L);
stub.computeFeatures(recon, "my string");
assertNotNull(recon.features);
}
}