This would be more convincing if the builder loop had simultaneously populated a std::set<int64_t> so it could be used for verification, here. The NValue code could randomly drop or add values and still pass this test.