forked from boostorg/unordered
Fix calls to std::rand in tests
This commit is contained in:
@ -18,12 +18,18 @@
|
|||||||
#include "../helpers/invariants.hpp"
|
#include "../helpers/invariants.hpp"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
namespace erase_tests
|
namespace erase_tests
|
||||||
{
|
{
|
||||||
|
|
||||||
test::seed_t initialize_seed(85638);
|
test::seed_t initialize_seed(85638);
|
||||||
|
|
||||||
|
int random_value(int max) {
|
||||||
|
using namespace std;
|
||||||
|
return rand() % max;
|
||||||
|
}
|
||||||
|
|
||||||
template <class Container>
|
template <class Container>
|
||||||
void erase_tests1(Container*, test::random_generator generator)
|
void erase_tests1(Container*, test::random_generator generator)
|
||||||
{
|
{
|
||||||
@ -83,8 +89,7 @@ void erase_tests1(Container*, test::random_generator generator)
|
|||||||
int iterations = 0;
|
int iterations = 0;
|
||||||
while(size > 0 && !x.empty())
|
while(size > 0 && !x.empty())
|
||||||
{
|
{
|
||||||
using namespace std;
|
int index = random_value((int) x.size());
|
||||||
int index = rand() % (int) x.size();
|
|
||||||
c_iterator prev, pos, next;
|
c_iterator prev, pos, next;
|
||||||
if(index == 0) {
|
if(index == 0) {
|
||||||
prev = pos = x.begin();
|
prev = pos = x.begin();
|
||||||
@ -157,8 +162,8 @@ void erase_tests1(Container*, test::random_generator generator)
|
|||||||
iterators.push_back(x.cend());
|
iterators.push_back(x.cend());
|
||||||
|
|
||||||
while(iterators.size() > 1) {
|
while(iterators.size() > 1) {
|
||||||
int start = rand() % (int) iterators.size();
|
int start = random_value((int) iterators.size());
|
||||||
int length = rand() % (int) (iterators.size() - start);
|
int length = random_value((int) (iterators.size() - start));
|
||||||
x.erase(iterators[start], iterators[start + length]);
|
x.erase(iterators[start], iterators[start + length]);
|
||||||
iterators.erase(
|
iterators.erase(
|
||||||
boost::next(iterators.begin(), start),
|
boost::next(iterators.begin(), start),
|
||||||
@ -211,8 +216,7 @@ void erase_tests1(Container*, test::random_generator generator)
|
|||||||
int iterations = 0;
|
int iterations = 0;
|
||||||
while(size > 0 && !x.empty())
|
while(size > 0 && !x.empty())
|
||||||
{
|
{
|
||||||
using namespace std;
|
int index = random_value((int) x.size());
|
||||||
int index = rand() % (int) x.size();
|
|
||||||
BOOST_DEDUCED_TYPENAME Container::const_iterator prev, pos, next;
|
BOOST_DEDUCED_TYPENAME Container::const_iterator prev, pos, next;
|
||||||
if(index == 0) {
|
if(index == 0) {
|
||||||
prev = pos = x.begin();
|
prev = pos = x.begin();
|
||||||
|
@ -24,6 +24,11 @@ namespace insert_tests {
|
|||||||
|
|
||||||
test::seed_t initialize_seed(243432);
|
test::seed_t initialize_seed(243432);
|
||||||
|
|
||||||
|
int random_value(int max) {
|
||||||
|
using namespace std;
|
||||||
|
return rand() % max;
|
||||||
|
}
|
||||||
|
|
||||||
template <class X>
|
template <class X>
|
||||||
void unique_insert_tests1(X*, test::random_generator generator)
|
void unique_insert_tests1(X*, test::random_generator generator)
|
||||||
{
|
{
|
||||||
@ -314,7 +319,7 @@ void insert_tests2(X*, test::random_generator generator)
|
|||||||
|
|
||||||
BOOST_DEDUCED_TYPENAME test::random_values<X>::iterator
|
BOOST_DEDUCED_TYPENAME test::random_values<X>::iterator
|
||||||
next = it;
|
next = it;
|
||||||
for (int j = rand() % 20; j > 0; ++j) {
|
for (int j = random_value(20); j > 0; ++j) {
|
||||||
++next;
|
++next;
|
||||||
if (next == v.end()) { break; }
|
if (next == v.end()) { break; }
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user