1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#include <algorithm>
#include <frozen/random.h>
#include <iostream>
#include <random>
#include "bench.hpp"
#include "catch.hpp"
TEST_CASE("linear_congruential_engine", "[random]") {
frozen::linear_congruential_engine<std::uint32_t, 48271u, 0, 0x7fffffff> dist0;
std::linear_congruential_engine<std::uint32_t, 48271u, 0, 0x7fffffff> rdist0;
REQUIRE(dist0.min() == rdist0.min());
REQUIRE(dist0.max() == rdist0.max());
REQUIRE(dist0() == rdist0());
REQUIRE(dist0() == rdist0());
REQUIRE(dist0() == rdist0());
auto next0 = dist0();
(void) next0;
dist0.discard(3);
rdist0.discard(4);
REQUIRE(dist0() == rdist0());
frozen::linear_congruential_engine<std::uint32_t, 48271u, 0, 0x7fffffff> odist0;
std::linear_congruential_engine<std::uint32_t, 48271u, 0, 0x7fffffff> ordist0;
REQUIRE(rdist0() != ordist0());
REQUIRE(dist0() != odist0());
REQUIRE(!(dist0() == odist0()));
frozen::minstd_rand dist1;
(void)dist1;
frozen::minstd_rand dist2;
(void)dist2;
frozen::linear_congruential_engine<std::size_t, 3, 3, 0> dist3;
(void)dist3;
}
|