Then, if we don't want to fix the values once and for all, we can still use generating of 3-5mln of truly random values for each large integral type (still with corner cases), but when comparing naive functions (that are 100% working) and fast ones (from the library), we can do something like this: Instead of:
BOOST_ASSERT(naive_outcome == fast_outcome); Use this: if (naive_outcome != fast_outcome) { // Or std::cerr or printf std::cout << "LOOK AT ME: func_name failed on " << number << " real outcome " << naive_outcome << " library outcome " << fast_outcome << std::endl; BOOST_ASSERT(naive_outcome == fast_outcome); } CI will run this on different machines using randomness, and it is more likely to catch a bug, looking to its job log.
-- Sent from: http://boost.2283326.n4.nabble.com/Boost-Dev-f2600599.html