#include #include #include #include "prime.h" const std::size_t N = 10000; auto seed = std::random_device()(); template std::size_t test(F f) { using T = typename decltype(std::function{f})::argument_type; std::size_t count = 0; std::mt19937 generator(seed); std::uniform_int_distribution distribution; auto rng = std::bind(distribution, generator); for(std::size_t i = 0; i < N; ++i) if(f(rng()) == true) ++count; return count; } int main() { int a = test(is_prime), b = test(is_prime2), c = test(is_prime3); assert(a == b && b == c); }