Skip to content

Commit 1c6edd7

Browse files
committed
Fix negative case
1 parent 2759140 commit 1c6edd7

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/main/java/com/networknt/schema/MultipleOfValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public Set<ValidationMessage> validate(JsonNode node, JsonNode rootNode, String
4848
// convert to BigDecimal since double type is not accurate enough to do the division and multiple
4949
BigDecimal accurateDividend = new BigDecimal(String.valueOf(nodeValue));
5050
BigDecimal accurateDivisor = new BigDecimal(String.valueOf(divisor));
51-
if (accurateDividend.divideAndRemainder(accurateDivisor)[1].doubleValue() > 1e-12) {
51+
if (Math.abs(accurateDividend.divideAndRemainder(accurateDivisor)[1].doubleValue()) > 1e-12) {
5252
return Collections.singleton(buildValidationMessage(at, "" + divisor));
5353
}
5454
}

src/test/resources/tests/multipleOf.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,13 @@
8080
},
8181
{
8282
"description": "9313.8 is a multiple of 0.01",
83-
"data": 9313.888,
83+
"data": -9313.8861,
8484
"valid": false
85+
},
86+
{
87+
"description": "9313.8 is a multiple of 0.01",
88+
"data": -9313.8,
89+
"valid": true
8590
}
8691
]
8792
}

0 commit comments

Comments
 (0)