Fix calls to std::rand in tests

This commit is contained in:
Daniel James
2016-10-04 15:51:07 +01:00
parent d14c1dec59
commit dadb4486ee
2 changed files with 16 additions and 7 deletions

View File

@ -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();

View File

@ -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; }
} }