The uniformity penalty formula can probably be improved. This can be seen by looking at the log of resulting from running diversityUTest::test_diversity_5_parity_no_autoscale(). At the end of the first iteration, the best 2 candidates are true and false. However false already has a small uniformity penalty, which doesn't make much sense since its behavioral score is at maximum distance from the behavioral score of true, ideally it should be null.