forked from boostorg/unordered
Improved support for testing on older versions of gcc.
Link tests. Plus more... [SVN r2980]
This commit is contained in:
1 parent
653a58f39b
commit
58dda15273
11 files changed
+222
-23
No files matched your search
@@ -14,8 +14,8 @@
|
||||
|
||||
namespace test
|
||||
{
|
||||
template <class T>
|
||||
bool equivalent_impl(T const& x, T const& y) {
|
||||
template <class T1, class T2>
|
||||
bool equivalent_impl(T1 const& x, T2 const& y) {
|
||||
return x == y;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#if !defined(BOOST_UNORDERED_TEST_HELPERS_FWD_HEADER)
|
||||
#define BOOST_UNORDERED_TEST_HELPERS_FWD_HEADER
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace test
|
||||
{
|
||||
int generate(int const*);
|
||||
|
||||
@@ -36,15 +36,19 @@ namespace test
|
||||
|
||||
inline int generate(int const*)
|
||||
{
|
||||
integer_generator_type gen;
|
||||
boost::uniform_int<> dist(0, 1000);
|
||||
static boost::variate_generator<integer_generator_type, boost::uniform_int<> >
|
||||
vg((integer_generator_type()), boost::uniform_int<>(0, 1000));
|
||||
vg(gen, dist);
|
||||
return vg();
|
||||
}
|
||||
|
||||
inline char generate(char const*)
|
||||
{
|
||||
integer_generator_type gen;
|
||||
boost::uniform_int<char> dist(32, 128);
|
||||
static boost::variate_generator<integer_generator_type, boost::uniform_int<char> >
|
||||
vg((integer_generator_type()), boost::uniform_int<char>(32, 128));
|
||||
vg(gen, dist);
|
||||
return vg();
|
||||
}
|
||||
|
||||
@@ -70,8 +74,10 @@ namespace test
|
||||
|
||||
float generate(float const*)
|
||||
{
|
||||
real_generator_type gen;
|
||||
boost::uniform_real<float> dist;
|
||||
static boost::variate_generator<real_generator_type, boost::uniform_real<float> >
|
||||
vg((real_generator_type()), boost::uniform_real<float>());
|
||||
vg(gen, dist);
|
||||
return vg();
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace test
|
||||
// Finally, check that size matches up.
|
||||
if(x1.size() != size)
|
||||
BOOST_ERROR("x1.size() doesn't match actual size.");
|
||||
if(static_cast<float>(size) / x1.bucket_count() != x1.load_factor())
|
||||
if(static_cast<float>(size) / static_cast<float>(x1.bucket_count()) != x1.load_factor())
|
||||
BOOST_ERROR("x1.load_factor() doesn't match actual load_factor.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "../objects/fwd.hpp"
|
||||
#include "./metafunctions.hpp"
|
||||
#include "./helpers.hpp"
|
||||
#include "./equivalent.hpp"
|
||||
|
||||
namespace test
|
||||
{
|
||||
@@ -45,7 +46,8 @@ namespace test
|
||||
std::copy(x2.begin(), x2.end(), std::back_inserter(values2));
|
||||
std::sort(values1.begin(), values1.end());
|
||||
std::sort(values2.begin(), values2.end());
|
||||
BOOST_TEST(values1 == values2);
|
||||
BOOST_TEST(values1.size() == values2.size() &&
|
||||
std::equal(values1.begin(), values1.end(), values2.begin(), test::equivalent));
|
||||
}
|
||||
|
||||
template <class X1, class X2, class T>
|
||||
@@ -58,7 +60,8 @@ namespace test
|
||||
std::copy(x2.first, x2.second, std::back_inserter(values2));
|
||||
std::sort(values1.begin(), values1.end());
|
||||
std::sort(values2.begin(), values2.end());
|
||||
BOOST_TEST(values1 == values2);
|
||||
BOOST_TEST(values1.size() == values2.size() &&
|
||||
std::equal(values1.begin(), values1.end(), values2.begin(), test::equivalent));
|
||||
}
|
||||
|
||||
template <class X>
|
||||
|
||||
Reference in new issue
Block a user