diff --git a/src/types/array.js b/src/types/array.js index 96efb1184b7ce78defcb0d7fc8122413bb39c08f..cd5f6a3a3c8571b0ca5f11e43f52667ce01883cd 100644 --- a/src/types/array.js +++ b/src/types/array.js @@ -82,8 +82,8 @@ function arrayType(value, path, resolve, traverseCallback) { if (optionalsProbability !== false) { length = fixedProbabilities - ? Math.round(maxItems * optionalsProbability) - : random.number(minItems, maxItems) * optionalsProbability; + ? Math.round((maxItems || length) * optionalsProbability) + : Math.abs(random.number(minItems, maxItems) * optionalsProbability); } // TODO below looks bad. Should additionalItems be copied as-is?