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 <vector>
#include <iostream>
#include <cstdlib>
namespace erase_tests
{
test::seed_t initialize_seed(85638);
int random_value(int max) {
using namespace std;
return rand() % max;
}
template <class Container>
void erase_tests1(Container*, test::random_generator generator)
{
@ -83,8 +89,7 @@ void erase_tests1(Container*, test::random_generator generator)
int iterations = 0;
while(size > 0 && !x.empty())
{
using namespace std;
int index = rand() % (int) x.size();
int index = random_value((int) x.size());
c_iterator prev, pos, next;
if(index == 0) {
prev = pos = x.begin();
@ -157,8 +162,8 @@ void erase_tests1(Container*, test::random_generator generator)
iterators.push_back(x.cend());
while(iterators.size() > 1) {
int start = rand() % (int) iterators.size();
int length = rand() % (int) (iterators.size() - start);
int start = random_value((int) iterators.size());
int length = random_value((int) (iterators.size() - start));
x.erase(iterators[start], iterators[start + length]);
iterators.erase(
boost::next(iterators.begin(), start),
@ -211,8 +216,7 @@ void erase_tests1(Container*, test::random_generator generator)
int iterations = 0;
while(size > 0 && !x.empty())
{
using namespace std;
int index = rand() % (int) x.size();
int index = random_value((int) x.size());
BOOST_DEDUCED_TYPENAME Container::const_iterator prev, pos, next;
if(index == 0) {
prev = pos = x.begin();

View File

@ -24,6 +24,11 @@ namespace insert_tests {
test::seed_t initialize_seed(243432);
int random_value(int max) {
using namespace std;
return rand() % max;
}
template <class X>
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
next = it;
for (int j = rand() % 20; j > 0; ++j) {
for (int j = random_value(20); j > 0; ++j) {
++next;
if (next == v.end()) { break; }
}