This is the second half of #12775.
In general property based testing is a great testing idiom for making sure invariants that you believe about your code hold true under a range of “valid” values.
This PR includes basic properties for
Currently rapidcheck is not enabled by default on travis – work has been done to enable in #14171 there appears to be a memory access violation in one of the environments.