For property based testing purposes, we need to explain how to randomly generate (possibly invalid) VINs.
For property based testing purposes, we need to explain how to randomly generate (possibly invalid) VINs.
A valid VIN, see ISO 3779 and ISO 3780, must be 17 letters or digits long and not contain 'I', 'O' or 'Q'.
A valid VIN, see ISO 3779 and ISO 3780, must be 17 letters or digits long and not contain 'I', 'O' or 'Q'. We enforce this at the type level by refining the string type with the following predicate.