comparison util/jsonschema.lua @ 14172:94172bbf9074 13.0

util.jsonschema: Always accept 0 for multipleOf properties Per the JSON schema test suite, 0 is considered "a multiple of anything" and should never be rejected by the multipleOf test. The previous behaviour was to always reject 0. 0 is *not* a valid value for multipleOf itself (which must be >0), but util.jsonschema does not seem to do much/any validation of the provided schema so I haven't added a check for that. I assume there are JSON schema schemas?
author Matthew Wild <mwild1@gmail.com>
date Mon, 25 May 2026 11:32:33 +0100
parents eabd38507c1d
children d975d280baec
comparison
equal deleted inserted replaced
14171:190d172ab021 14172:94172bbf9074
124 return false, errs 124 return false, errs
125 end 125 end
126 end 126 end
127 127
128 if type(data) == "number" then 128 if type(data) == "number" then
129 if schema.multipleOf and (data == 0 or data % schema.multipleOf ~= 0) then 129 if schema.multipleOf and data ~= 0 and data % schema.multipleOf ~= 0 then
130 table.insert(errs, mkerr(sloc .. "/luaPattern", iloc, "not a multiple")) 130 table.insert(errs, mkerr(sloc .. "/luaPattern", iloc, "not a multiple"))
131 return false, errs 131 return false, errs
132 end 132 end
133 133
134 if schema.maximum and not (data <= schema.maximum) then 134 if schema.maximum and not (data <= schema.maximum) then