Skip to content

Commit 6d9aa5d

Browse files
committed
Deal with approximation on tests
1 parent 4de4f5a commit 6d9aa5d

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/test/java/com/slicingdice/jslicer/SlicingDiceTester.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -502,18 +502,24 @@ private boolean compareJsonValue(final Object valueExpected, final Object valueG
502502
valueExpected instanceof Double && valueGot instanceof Integer) {
503503
final Number expectedInteger = (Number) valueExpected;
504504
final Number gotInteger = (Number) valueGot;
505-
if (expectedInteger.intValue() != gotInteger.intValue()) {
506-
return false;
507-
}
505+
return expectedInteger.intValue() == gotInteger.intValue();
506+
} else if (valueExpected instanceof Double || valueExpected instanceof Float) {
507+
return this.compareNumbersClose((Number) valueExpected, (Number) valueGot);
508508
} else {
509509
return Objects.equals(valueExpected, valueGot);
510510
}
511-
return true;
512511
}
513512
} catch (final Exception e) {
514513
return false;
515514
}
516515

517516
return true;
518517
}
518+
519+
private boolean compareNumbersClose(final Number expected, final Number result) {
520+
final double expectedDouble = expected.doubleValue();
521+
final double resultDouble = result.doubleValue();
522+
return Math.abs(expectedDouble - resultDouble) <= Math.max(
523+
(1e-09) * Math.max(Math.abs(expectedDouble), Math.abs(resultDouble)), 0.0);
524+
}
519525
}

0 commit comments

Comments
 (0)