// // Created by erki on 29.04.21. // #include #include "utility_rand.hpp" TEST_CASE("rand32 is deterministic.", "[utility],[rand]") { const std::uint32_t original_state = 34; std::uint32_t state = original_state; std::vector generated; for (int i = 0; i < 10; i++) { generated.push_back(Utility::rand32(state)); } std::uint32_t new_state = original_state; for (int i = 0; i < 10; i++) { REQUIRE(generated[i] == Utility::rand32(new_state)); } } TEST_CASE("rand64 is deterministic.", "[utility],[rand]") { const std::uint64_t original_state = 10e4; std::uint64_t state = original_state; std::vector generated; for (int i = 0; i < 10; i++) { generated.push_back(Utility::rand64(state)); } std::uint64_t new_state = original_state; for (int i = 0; i < 10; i++) { REQUIRE(generated[i] == Utility::rand64(new_state)); } } TEST_CASE("rand and srand are deterministic", "[utility],[rand]") { const std::uint32_t original_state = 34; Utility::srand(original_state); std::vector generated; for (int i = 0; i < 10; i++) { generated.push_back(Utility::rand()); } Utility::srand(original_state); for (int i = 0; i < 10; i++) { REQUIRE(generated[i] == Utility::rand()); } }