Erki 869fe6e7d2
All checks were successful
continuous-integration/drone/push Build is passing
The great renaming, part 2
2021-06-08 23:24:49 +03:00

63 lines
1.3 KiB
C++

//
// Created by erki on 29.04.21.
//
#include <catch2/catch.hpp>
#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<std::uint32_t> 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<std::uint64_t> 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<std::uint32_t> 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());
}
}