I have a quickCheck property which involves generating elements for a sum type which has only two elements.
Clearly the default number of test cases, 100, is too many for this case, and so I've used withMaxSuccess to reduce the number of cases to 3. This runs quickly but is not ideal for two reasons. Firstly, the three test cases run are more than the two required. And secondly, the three cases are not comprehensive due to the 1-in-4 chance that all three involve the same element, to the exclusion of the other one.
I have tried QuickCheck's forAll modifier, which seemed like it might do what I am looking for, but the number of test cases run was still 100.
If I have a type with a finite number of elements to be the generator for a QuickCheck test, is there a way to set QuickCheck to test the property comprehensively over the type by running it with each element once?
To qualify whether the type has a finite number of elements, perhaps it can be qualified by both the Enum and Bounded typeclasses.