8
8
#ifndef DYNAMIC_BITSET_RANDOMDYNAMICBITSETGENERATOR_HPP
9
9
#define DYNAMIC_BITSET_RANDOMDYNAMICBITSETGENERATOR_HPP
10
10
11
- #include < catch2/catch.hpp>
11
+ #include < catch2/generators/catch_generators.hpp>
12
+ #include < catch2/catch_get_random_seed.hpp>
12
13
#include < sul/dynamic_bitset.hpp>
13
14
14
15
#include < random>
15
16
16
17
template <typename Block>
17
18
constexpr Catch::Generators::GeneratorWrapper<sul::dynamic_bitset<Block>> randomDynamicBitset (
18
- std::minstd_rand::result_type seed =
19
- static_cast <std::minstd_rand::result_type>(std::random_device{}()));
19
+ uint32_t seed = Catch::getSeed());
20
20
21
21
template <typename Block>
22
22
constexpr Catch::Generators::GeneratorWrapper<sul::dynamic_bitset<Block>> randomDynamicBitset (
23
23
typename sul::dynamic_bitset<Block>::size_type min_size,
24
24
typename sul::dynamic_bitset<Block>::size_type max_size,
25
- std::minstd_rand::result_type seed =
26
- static_cast <std::minstd_rand::result_type>(std::random_device{}()));
25
+ uint32_t seed = Catch::getSeed());
27
26
28
27
template <typename Block>
29
28
class RandomDynamicBitsetGenerator
@@ -34,14 +33,10 @@ class RandomDynamicBitsetGenerator
34
33
static constexpr size_type default_min_size = 1 ;
35
34
static constexpr size_type default_max_size = 8 * std::numeric_limits<Block>::digits;
36
35
37
- constexpr explicit RandomDynamicBitsetGenerator (
38
- std::minstd_rand::result_type seed =
39
- static_cast <std::minstd_rand::result_type>(std::random_device{}()));
40
- constexpr RandomDynamicBitsetGenerator (
41
- size_type min_size,
42
- size_type max_size,
43
- std::minstd_rand::result_type seed =
44
- static_cast <std::minstd_rand::result_type>(std::random_device{}()));
36
+ constexpr explicit RandomDynamicBitsetGenerator (uint32_t seed = Catch::getSeed());
37
+ constexpr RandomDynamicBitsetGenerator (size_type min_size,
38
+ size_type max_size,
39
+ uint32_t seed = Catch::getSeed());
45
40
46
41
constexpr const sul::dynamic_bitset<Block>& get () const override ;
47
42
constexpr bool next () override ;
@@ -54,8 +49,7 @@ class RandomDynamicBitsetGenerator
54
49
};
55
50
56
51
template <typename Block>
57
- constexpr RandomDynamicBitsetGenerator<Block>::RandomDynamicBitsetGenerator(
58
- std::minstd_rand::result_type seed)
52
+ constexpr RandomDynamicBitsetGenerator<Block>::RandomDynamicBitsetGenerator(uint32_t seed)
59
53
: m_rand(seed)
60
54
, m_size_dist(default_min_size, default_max_size)
61
55
, m_block_dist()
@@ -65,10 +59,9 @@ constexpr RandomDynamicBitsetGenerator<Block>::RandomDynamicBitsetGenerator(
65
59
}
66
60
67
61
template <typename Block>
68
- constexpr RandomDynamicBitsetGenerator<Block>::RandomDynamicBitsetGenerator(
69
- RandomDynamicBitsetGenerator::size_type min_size,
70
- RandomDynamicBitsetGenerator::size_type max_size,
71
- std::minstd_rand::result_type seed)
62
+ constexpr RandomDynamicBitsetGenerator<Block>::RandomDynamicBitsetGenerator(size_type min_size,
63
+ size_type max_size,
64
+ uint32_t seed)
72
65
: m_rand(seed), m_size_dist(min_size, max_size), m_block_dist(), m_current_bitset()
73
66
{
74
67
next ();
@@ -95,20 +88,20 @@ constexpr bool RandomDynamicBitsetGenerator<Block>::next()
95
88
96
89
template <typename Block>
97
90
constexpr Catch::Generators::GeneratorWrapper<sul::dynamic_bitset<Block>> randomDynamicBitset (
98
- std::minstd_rand::result_type seed)
91
+ uint32_t seed)
99
92
{
100
93
return Catch::Generators::GeneratorWrapper<sul::dynamic_bitset<Block>>(
101
- std ::make_unique<RandomDynamicBitsetGenerator<Block>>(seed));
94
+ Catch::Detail ::make_unique<RandomDynamicBitsetGenerator<Block>>(seed));
102
95
}
103
96
104
97
template <typename Block>
105
98
constexpr Catch::Generators::GeneratorWrapper<sul::dynamic_bitset<Block>> randomDynamicBitset (
106
99
typename sul::dynamic_bitset<Block>::size_type min_size,
107
100
typename sul::dynamic_bitset<Block>::size_type max_size,
108
- std::minstd_rand::result_type seed)
101
+ uint32_t seed)
109
102
{
110
103
return Catch::Generators::GeneratorWrapper<sul::dynamic_bitset<Block>>(
111
- std ::make_unique<RandomDynamicBitsetGenerator<Block>>(min_size, max_size, seed));
104
+ Catch::Detail ::make_unique<RandomDynamicBitsetGenerator<Block>>(min_size, max_size, seed));
112
105
}
113
106
114
107
#endif // DYNAMIC_BITSET_RANDOMDYNAMICBITSETGENERATOR_HPP
0 commit comments