Reduce weighting of numeric edge cases #455
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bill Venners recently gave a talk (video is online) about property testing with ScalaTest at an SF Scala meetup, and mentioned a defect he found with
Arbitrary[Int]
in ScalaCheck. He showed in a repl that ScalaCheck gives equal weight to the edge cases (zero, one, negative one, max, negative max, etc.) as the rest of the numeric range. This weighting causes edge cases to be 50% of the values in a property test withGen.chooseNum
. This risks running tests repeatedly with the same inputs.This pull requests reduces the proportion of edge cases to something more reasonable, just 10% of the time.