Merge pull request #190 from vpelletier/master
Improve mutlipleOf validator with floating point value.
This commit is contained in:
@@ -5,9 +5,6 @@ from jsonschema.exceptions import FormatError, ValidationError
|
|||||||
from jsonschema.compat import iteritems
|
from jsonschema.compat import iteritems
|
||||||
|
|
||||||
|
|
||||||
FLOAT_TOLERANCE = 10 ** -15
|
|
||||||
|
|
||||||
|
|
||||||
def patternProperties(validator, patternProperties, instance, schema):
|
def patternProperties(validator, patternProperties, instance, schema):
|
||||||
if not validator.is_type(instance, "object"):
|
if not validator.is_type(instance, "object"):
|
||||||
return
|
return
|
||||||
@@ -111,8 +108,8 @@ def multipleOf(validator, dB, instance, schema):
|
|||||||
return
|
return
|
||||||
|
|
||||||
if isinstance(dB, float):
|
if isinstance(dB, float):
|
||||||
mod = instance % dB
|
quotient = instance / dB
|
||||||
failed = (mod > FLOAT_TOLERANCE) and (dB - mod) > FLOAT_TOLERANCE
|
failed = int(quotient) != quotient
|
||||||
else:
|
else:
|
||||||
failed = instance % dB
|
failed = instance % dB
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user