240 for (
int j = 0; j < 64; j++) {
241 prevector_tester<8, int> test{m_rng};
242 for (
int i = 0; i < 2048; i++) {
243 if (m_rng.randbits(2) == 0) {
244 test.insert(m_rng.randrange(test.size() + 1),
int(m_rng.rand32()));
246 if (test.size() > 0 && m_rng.randbits(2) == 1) {
247 test.erase(m_rng.randrange(test.size()));
249 if (m_rng.randbits(3) == 2) {
250 int new_size = std::max(0, std::min(30, (
int)test.size() + (
int)m_rng.randrange(5) - 2));
251 test.resize(new_size);
253 if (m_rng.randbits(3) == 3) {
254 test.insert(m_rng.randrange(test.size() + 1), 1 + m_rng.randbool(),
int(m_rng.rand32()));
256 if (m_rng.randbits(3) == 4) {
257 int del = std::min<int>(test.size(), 1 + (m_rng.randbool()));
258 int beg = m_rng.randrange(test.size() + 1 - del);
259 test.erase(beg, beg + del);
261 if (m_rng.randbits(4) == 5) {
262 test.push_back(
int(m_rng.rand32()));
264 if (test.size() > 0 && m_rng.randbits(4) == 6) {
267 if (m_rng.randbits(5) == 7) {
269 int num = 1 + (m_rng.randbits(2));
270 for (
int k = 0;
k < num;
k++) {
271 values[
k] = int(m_rng.rand32());
273 test.insert_range(m_rng.randrange(test.size() + 1),
values,
values + num);
275 if (m_rng.randbits(5) == 8) {
276 int del = std::min<int>(test.size(), 1 + (m_rng.randbits(2)));
277 int beg = m_rng.randrange(test.size() + 1 - del);
278 test.erase(beg, beg + del);
280 if (m_rng.randbits(5) == 9) {
281 test.reserve(m_rng.randbits(5));
283 if (m_rng.randbits(6) == 10) {
284 test.shrink_to_fit();
286 if (test.size() > 0) {
287 test.update(m_rng.randrange(test.size()),
int(m_rng.rand32()));
289 if (m_rng.randbits(10) == 11) {
292 if (m_rng.randbits(9) == 12) {
293 test.assign(m_rng.randbits(5),
int(m_rng.rand32()));
295 if (m_rng.randbits(3) == 3) {
298 if (m_rng.randbits(4) == 8) {
301 if (m_rng.randbits(5) == 18) {
304 if (m_rng.randbits(5) == 19) {
305 unsigned int num = 1 + (m_rng.randbits(4));
306 std::vector<int>
values(num);
308 v = int(m_rng.rand32());
310 test.resize_uninitialized(
values);
void Reseed(const uint256 &seed) noexcept
Reseed with explicit seed (only for testing).