I have had a look at whether we could use the QuickTheories in our randomized testing and come to the following conclusions:
Pros: 1) It has a very rich set of random generators out of the box. 2) It has a very powerful mechanism for generating customised randomized datasets. 3) It is very pluggable within the constraints of its framework. Cons: 1) The framework has to be used in a very specific way in order for it to work. It does not allow for subsets of the framework to be used in isolation. 2) The code hasn't been touched for 3 years. This is an observation as much as anything but it does not appear to be being maintained at the moment. The carrotsearch generators use a seeded Random to generate their values so are also repeatable. It also provides a very rich set of random generators that can be used in isolation of any other part of the framework. This project is also being actively maintained. As such I would prefer to keep using the carrotsearch generators. I have made a change to the SAI testing that removes our usage of RandomizedTest from the library and have stuck to just using the lower level random generators. We already had a Randomization class in our test framework that provided a lot of the RandomizedTest functionality (primarily the reporting on failed tests of the random seed and the reuse of seeds) so using both made no sense.