Skip to content

Commit

Permalink
Merge pull request #369 from navinrathore/DoubleSimilartyFnException
Browse files Browse the repository at this point in the history
Double similarity function - null pointer exception
  • Loading branch information
sonalgoyal authored Jul 13, 2022
2 parents 7273694 + 3e9df5e commit 6a68dd9
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public DoubleSimilarityFunction() {

@Override
public Double call(Double first, Double second) {
if (first == null || first.isNaN()) return 1d;
if (second == null || second.isNaN()) return 1d;
double score = (Math.abs(first-second))/(1.0+first + second);
LOG.debug(" DoubleSim bw " + first + " and second " + second + " is "
+ score);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package zingg.similarity.function;

import static org.junit.jupiter.api.Assertions.assertEquals;

import org.junit.jupiter.api.Test;

public class TestDoubleSimilarityFunction {


@Test
public void testFirstNumsimFn() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(1d, simFn.call(null, 1d));
}

@Test
public void testFirstNumIsNAN() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(1d, simFn.call(Double.NaN, 1d));
}

@Test
public void testSecondNumsimFn() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(1d, simFn.call(1d, null));
}

@Test
public void testSecondNumIsNAN() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(1d, simFn.call(1d, Double.NaN));
}
@Test
public void testBothNAN() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(1d, simFn.call(Double.NaN, Double.NaN));
}

@Test
public void testBothNull() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(1d, simFn.call(null, null));
}

@Test
public void testBothNotNullNorNAN() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(0d, simFn.call(1d, 1d));
}

@Test
public void testValues0And0() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(0d, simFn.call(0d, 0d));
}

@Test
public void testValues100And1() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(0.9705882352941176d, simFn.call(100d, 1d));
}

@Test
public void testValues10And1() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
assertEquals(0d, simFn.call(10.0, 10d));
}

@Test
public void testValues34And54() {
DoubleSimilarityFunction simFn = new DoubleSimilarityFunction();
Double score = simFn.call(34d, 54.0);
assertEquals(0.2247191011235955d, score);
}
}
2 changes: 1 addition & 1 deletion examples/amazon-google/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
},
{
"fieldName" : "title",
"matchType" : "numeric",
"matchType" : "number_with_units",
"fields" : "title",
"dataType": "\"string\""
},
Expand Down

0 comments on commit 6a68dd9

Please sign in to comment.