|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r67063 - in trunk: boost/icl/detail boost/icl/type_traits libs/icl/test libs/icl/test/test_casual_
From: afojgo_at_[hidden]
Date: 2010-12-06 06:51:28
Author: jofaber
Date: 2010-12-06 06:51:25 EST (Mon, 06 Dec 2010)
New Revision: 67063
URL: http://svn.boost.org/trac/boost/changeset/67063
Log:
Adjustments for compiler vacpp on platform IBM_Canada_Ltd and Sandia-pgi-10.1.
Addition of int-pointers as in and decrementable domain types in all tests.
Text files modified:
trunk/boost/icl/detail/element_iterator.hpp | 2
trunk/boost/icl/type_traits/difference_type_of.hpp | 13 ++
trunk/libs/icl/test/test_casual_/test_casual.cpp | 23 +++
trunk/libs/icl/test/test_icl_dynamic_interval.hpp | 6
trunk/libs/icl/test/test_laws.hpp | 236 ++++++++++++++++++++--------------------
trunk/libs/icl/test/test_type_lists.hpp | 10 +
trunk/libs/icl/test/test_value_maker.hpp | 52 +++++++-
7 files changed, 207 insertions(+), 135 deletions(-)
Modified: trunk/boost/icl/detail/element_iterator.hpp
==============================================================================
--- trunk/boost/icl/detail/element_iterator.hpp (original)
+++ trunk/boost/icl/detail/element_iterator.hpp 2010-12-06 06:51:25 EST (Mon, 06 Dec 2010)
@@ -294,7 +294,7 @@
void increment()
{
- if(_reptator < icl::pred(adapt::length(_saltator)))
+ if(_reptator < icl::pred(adapt::length(_saltator)))
++_reptator;
else
{
Modified: trunk/boost/icl/type_traits/difference_type_of.hpp
==============================================================================
--- trunk/boost/icl/type_traits/difference_type_of.hpp (original)
+++ trunk/boost/icl/type_traits/difference_type_of.hpp 2010-12-06 06:51:25 EST (Mon, 06 Dec 2010)
@@ -9,6 +9,8 @@
#define BOOST_ICL_TYPE_TRAITS_DIFFERENCE_TYPE_OF_HPP_JOFA_080911
#include <boost/config.hpp> // For macro BOOST_STATIC_CONSTANT
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/mpl/or.hpp>
#include <boost/icl/type_traits/no_type.hpp>
#include <boost/icl/type_traits/is_numeric.hpp>
@@ -19,7 +21,10 @@
struct has_difference
{
typedef has_difference type;
- BOOST_STATIC_CONSTANT(bool, value = is_numeric<Type>::value);
+ BOOST_STATIC_CONSTANT(bool,
+ value = (mpl::or_< is_numeric<Type>
+ , is_pointer<Type> >::value)
+ );
};
//--------------------------------------------------------------------------
@@ -33,6 +38,12 @@
};
template <class Type>
+ struct get_difference_type<Type*, true>
+ {
+ typedef std::ptrdiff_t type;
+ };
+
+ template <class Type>
struct get_difference_type<Type, true>
{
typedef Type type;
Modified: trunk/libs/icl/test/test_casual_/test_casual.cpp
==============================================================================
--- trunk/libs/icl/test/test_casual_/test_casual.cpp (original)
+++ trunk/libs/icl/test/test_casual_/test_casual.cpp 2010-12-06 06:51:25 EST (Mon, 06 Dec 2010)
@@ -27,12 +27,33 @@
BOOST_AUTO_TEST_CASE(casual)
{
- typedef int T;
+ typedef int* T;
typedef int U;
typedef interval_map<T,U, total_absorber> IntervalMapT;
typedef interval_set<T> IntervalSetT;
typedef IntervalMapT::interval_type IntervalT;
+ int values[100];
+ for(int idx=0; idx < 100; idx++)
+ values[idx] = idx;
+
+ IntervalSetT ptr_set;
+
+ cout << IntervalT::right_open(values, values+3) << endl;
+
+ ptr_set += IntervalT::right_open(values, values+3);
+ ptr_set += IntervalT::right_open(values+4, values+7);
+ IntervalSetT::difference_type count = ptr_set.size();
+
+ ICL_const_FORALL(IntervalSetT, it_, ptr_set)
+ {
+ for(T ptr = first(*it_); ptr <= last(*it_); ++ptr)
+ cout << *ptr << " ";
+ }
+ cout << endl;
+
+ cout << ptr_set << endl;
+
BOOST_CHECK_EQUAL(true, true);
}
Modified: trunk/libs/icl/test/test_icl_dynamic_interval.hpp
==============================================================================
--- trunk/libs/icl/test/test_icl_dynamic_interval.hpp (original)
+++ trunk/libs/icl/test/test_icl_dynamic_interval.hpp 2010-12-06 06:51:25 EST (Mon, 06 Dec 2010)
@@ -28,9 +28,9 @@
{
typedef typename icl::interval<T>::type IntervalT;
- BOOST_CHECK_EQUAL( T(), pred(succ(T())));
- BOOST_CHECK_EQUAL( icl::identity_element<T>::value(), pred(succ(icl::identity_element<T>::value())) );
- BOOST_CHECK_EQUAL( icl::unit_element<T>::value(), succ(icl::identity_element<T>::value()) );
+ BOOST_CHECK_EQUAL( T(), icl::pred(icl::succ(T())));
+ BOOST_CHECK_EQUAL( icl::identity_element<T>::value(), icl::pred(icl::succ(icl::identity_element<T>::value())) );
+ BOOST_CHECK_EQUAL( icl::unit_element<T>::value(), icl::succ(icl::identity_element<T>::value()) );
BOOST_CHECK_EQUAL( length(IntervalT()), icl::identity_element<typename difference_type_of<T>::type>::value() );
//LAW: I x: borders(x)==closed => contains(x, lower(x)) && contains(x, upper(x))
Modified: trunk/libs/icl/test/test_laws.hpp
==============================================================================
--- trunk/libs/icl/test/test_laws.hpp (original)
+++ trunk/libs/icl/test/test_laws.hpp 2010-12-06 06:51:25 EST (Mon, 06 Dec 2010)
@@ -58,14 +58,14 @@
// Here we actually generate function templates by calling the defining
// macros.
-DEFINE_ASSOCIATIVITY_CHECK_WRT (plus, + );
-DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(plus, + );
-DEFINE_ASSOCIATIVITY_CHECK_WRT (pipe, | );
-DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(pipe, | );
-DEFINE_ASSOCIATIVITY_CHECK_WRT (et, & );
-DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(et, & );
-DEFINE_ASSOCIATIVITY_CHECK_WRT (caret, ^ );
-DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(caret, ^ );
+DEFINE_ASSOCIATIVITY_CHECK_WRT (plus, + )
+DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(plus, + )
+DEFINE_ASSOCIATIVITY_CHECK_WRT (pipe, | )
+DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(pipe, | )
+DEFINE_ASSOCIATIVITY_CHECK_WRT (et, & )
+DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(et, & )
+DEFINE_ASSOCIATIVITY_CHECK_WRT (caret, ^ )
+DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(caret, ^ )
//------------------------------------------------------------------------------
@@ -115,16 +115,16 @@
#define CHECK_NEUTRALITY_WRT(op_tag) check_neutrality_wrt_##op_tag
#define CHECK_NEUTRALITY_WRT_EQUAL(op_tag) check_neutrality_wrt_equal_##op_tag
-DEFINE_NEUTRALITY_CHECK_WRT (plus, + );
-DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(plus, + );
-DEFINE_NEUTRALITY_CHECK_WRT (pipe, | );
-DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(pipe, | );
-DEFINE_NEUTRALITY_CHECK_WRT (minus, - );
-DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(minus, - );
-DEFINE_NEUTRALITY_CHECK_WRT (et, & );
-DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(et, & );
-DEFINE_NEUTRALITY_CHECK_WRT (caret, ^ );
-DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(caret, ^ );
+DEFINE_NEUTRALITY_CHECK_WRT (plus, + )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(plus, + )
+DEFINE_NEUTRALITY_CHECK_WRT (pipe, | )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(pipe, | )
+DEFINE_NEUTRALITY_CHECK_WRT (minus, - )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(minus, - )
+DEFINE_NEUTRALITY_CHECK_WRT (et, & )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(et, & )
+DEFINE_NEUTRALITY_CHECK_WRT (caret, ^ )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(caret, ^ )
//------------------------------------------------------------------------------
// Commutativity
@@ -152,14 +152,14 @@
#define CHECK_COMMUTATIVITY_WRT_EQUAL(op_tag) check_commutativity_wrt_equal_##op_tag
#define CHECK_COMMUTATIVITY_WRT(op_tag) check_commutativity_wrt_##op_tag
-DEFINE_COMMUTATIVITY_CHECK_WRT (plus, + );
-DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(plus, + );
-DEFINE_COMMUTATIVITY_CHECK_WRT (pipe, | );
-DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(pipe, | );
-DEFINE_COMMUTATIVITY_CHECK_WRT (et, & );
-DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(et, & );
-DEFINE_COMMUTATIVITY_CHECK_WRT (caret, ^ );
-DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(caret, ^ );
+DEFINE_COMMUTATIVITY_CHECK_WRT (plus, + )
+DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(plus, + )
+DEFINE_COMMUTATIVITY_CHECK_WRT (pipe, | )
+DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(pipe, | )
+DEFINE_COMMUTATIVITY_CHECK_WRT (et, & )
+DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(et, & )
+DEFINE_COMMUTATIVITY_CHECK_WRT (caret, ^ )
+DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(caret, ^ )
//------------------------------------------------------------------------------
// Natural inversion
@@ -186,10 +186,10 @@
#define CHECK_PARTIAL_INVERSION_WRT_EQUAL(plus_tag) check_partial_inversion_wrt_equal_##plus_tag
#define CHECK_PARTIAL_INVERSION_WRT(plus_tag) check_partial_inversion_wrt_##plus_tag
-DEFINE_PARTIAL_INVERSION_CHECK_WRT (plus, + );
-DEFINE_PARTIAL_INVERSION_CHECK_WRT_EQUAL(plus, + );
-DEFINE_PARTIAL_INVERSION_CHECK_WRT (pipe, | );
-DEFINE_PARTIAL_INVERSION_CHECK_WRT_EQUAL(pipe, | );
+DEFINE_PARTIAL_INVERSION_CHECK_WRT (plus, + )
+DEFINE_PARTIAL_INVERSION_CHECK_WRT_EQUAL(plus, + )
+DEFINE_PARTIAL_INVERSION_CHECK_WRT (pipe, | )
+DEFINE_PARTIAL_INVERSION_CHECK_WRT_EQUAL(pipe, | )
//------------------------------------------------------------------------------
// Inverse
@@ -220,10 +220,10 @@
#define CHECK_INVERSE_WRT_EQUAL(plus_tag) check_inverse_wrt_equal_##plus_tag
#define CHECK_INVERSE_WRT(plus_tag) check_inverse_wrt_##plus_tag
-DEFINE_INVERSE_CHECK_WRT (plus, + );
-DEFINE_INVERSE_CHECK_WRT_EQUAL(plus, + );
-DEFINE_INVERSE_CHECK_WRT (pipe, | );
-DEFINE_INVERSE_CHECK_WRT_EQUAL(pipe, | );
+DEFINE_INVERSE_CHECK_WRT (plus, + )
+DEFINE_INVERSE_CHECK_WRT_EQUAL(plus, + )
+DEFINE_INVERSE_CHECK_WRT (pipe, | )
+DEFINE_INVERSE_CHECK_WRT_EQUAL(pipe, | )
//------------------------------------------------------------------------------
// Containedness laws (Valid for sets, NOT for maps)
@@ -360,14 +360,14 @@
CHECK_NEUTRALITY_WRT(op_tag)(a,identity_element); \
}
-DEFINE_MONOID_CHECK_WRT(plus);
-DEFINE_MONOID_CHECK_WRT_EQUAL(plus);
-DEFINE_MONOID_CHECK_WRT(pipe);
-DEFINE_MONOID_CHECK_WRT_EQUAL(pipe);
-DEFINE_MONOID_CHECK_WRT(et);
-DEFINE_MONOID_CHECK_WRT_EQUAL(et);
-DEFINE_MONOID_CHECK_WRT(caret);
-DEFINE_MONOID_CHECK_WRT_EQUAL(caret);
+DEFINE_MONOID_CHECK_WRT (plus)
+DEFINE_MONOID_CHECK_WRT_EQUAL(plus)
+DEFINE_MONOID_CHECK_WRT (pipe)
+DEFINE_MONOID_CHECK_WRT_EQUAL(pipe)
+DEFINE_MONOID_CHECK_WRT (et)
+DEFINE_MONOID_CHECK_WRT_EQUAL(et)
+DEFINE_MONOID_CHECK_WRT (caret)
+DEFINE_MONOID_CHECK_WRT_EQUAL(caret)
#define CHECK_MONOID_WRT(op_tag) check_monoid_wrt_##op_tag
#define CHECK_MONOID_WRT_EQUAL(op_tag) check_monoid_wrt_equal_##op_tag
@@ -399,14 +399,14 @@
CHECK_COMMUTATIVITY_WRT(op_tag)(a,c); \
}
-DEFINE_ABELIAN_MONOID_CHECK_WRT(plus);
-DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(plus);
-DEFINE_ABELIAN_MONOID_CHECK_WRT(pipe);
-DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(pipe);
-DEFINE_ABELIAN_MONOID_CHECK_WRT(et);
-DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(et);
-DEFINE_ABELIAN_MONOID_CHECK_WRT(caret);
-DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(caret);
+DEFINE_ABELIAN_MONOID_CHECK_WRT (plus)
+DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(plus)
+DEFINE_ABELIAN_MONOID_CHECK_WRT (pipe)
+DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(pipe)
+DEFINE_ABELIAN_MONOID_CHECK_WRT (et)
+DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(et)
+DEFINE_ABELIAN_MONOID_CHECK_WRT (caret)
+DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(caret)
#define CHECK_ABELIAN_MONOID_WRT(op_tag) check_abelian_monoid_wrt_##op_tag
#define CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag) check_abelian_monoid_wrt_equal_##op_tag
@@ -434,14 +434,14 @@
CHECK_PARTIAL_INVERSION_WRT(op_tag)(identity_element,a); \
}
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT(plus);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(plus);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT(pipe);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(pipe);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT(et);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(et);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT(caret);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(caret);
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT (plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT (pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT (et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT (caret)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(caret)
#define CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag) check_partial_invertive_monoid_wrt_##op_tag
#define CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag) check_partial_invertive_monoid_wrt_equal_##op_tag
@@ -471,10 +471,10 @@
}
-DEFINE_ABELIAN_GROUP_CHECK_WRT(plus);
-DEFINE_ABELIAN_GROUP_CHECK_WRT_EQUAL(plus);
-DEFINE_ABELIAN_GROUP_CHECK_WRT(pipe);
-DEFINE_ABELIAN_GROUP_CHECK_WRT_EQUAL(pipe);
+DEFINE_ABELIAN_GROUP_CHECK_WRT (plus)
+DEFINE_ABELIAN_GROUP_CHECK_WRT_EQUAL(plus)
+DEFINE_ABELIAN_GROUP_CHECK_WRT (pipe)
+DEFINE_ABELIAN_GROUP_CHECK_WRT_EQUAL(pipe)
#define CHECK_ABELIAN_GROUP_WRT(op_tag) check_abelian_group_wrt_##op_tag
#define CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag) check_abelian_group_wrt_equal_##op_tag
@@ -506,14 +506,14 @@
}
-DEFINE_MONOID_CHECK_PERMUTED_WRT(plus);
-DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus);
-DEFINE_MONOID_CHECK_PERMUTED_WRT(pipe);
-DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe);
-DEFINE_MONOID_CHECK_PERMUTED_WRT(et);
-DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(et);
-DEFINE_MONOID_CHECK_PERMUTED_WRT(caret);
-DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret);
+DEFINE_MONOID_CHECK_PERMUTED_WRT (plus)
+DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus)
+DEFINE_MONOID_CHECK_PERMUTED_WRT (pipe)
+DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe)
+DEFINE_MONOID_CHECK_PERMUTED_WRT (et)
+DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(et)
+DEFINE_MONOID_CHECK_PERMUTED_WRT (caret)
+DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret)
#define CHECK_MONOID_PERMUTED_WRT(op_tag) check_monoid_permuted_wrt_##op_tag
#define CHECK_MONOID_PERMUTED_WRT_EQUAL(op_tag) check_monoid_permuted_wrt_equal_##op_tag
@@ -546,14 +546,14 @@
}
-DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT(plus);
-DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus);
-DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT(pipe);
-DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe);
-DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT(et);
-DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(et);
-DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT(caret);
-DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret);
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT (plus)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT (pipe)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT (et)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(et)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT (caret)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret)
#define CHECK_ABELIAN_MONOID_PERMUTED_WRT(op_tag) check_abelian_monoid_permuted_wrt_##op_tag
#define CHECK_ABELIAN_MONOID_PERMUTED_WRT_EQUAL(op_tag) check_abelian_monoid_permuted_wrt_equal_##op_tag
@@ -586,14 +586,14 @@
}
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT(plus);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT(pipe);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT(et);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(et);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT(caret);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret);
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT (plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT (pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT (et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT (caret)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret)
#define CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT(op_tag) check_partial_invertive_monoid_permuted_wrt_##op_tag
#define CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT_EQUAL(op_tag) check_partial_invertive_monoid_permuted_wrt_equal_##op_tag
@@ -626,10 +626,10 @@
}
-DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT(plus);
-DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT_EQUAL(plus);
-DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT(pipe);
-DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT_EQUAL(pipe);
+DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT (plus)
+DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT_EQUAL(plus)
+DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT (pipe)
+DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT_EQUAL(pipe)
#define CHECK_ABELIAN_GROUP_PERMUTED_WRT(op_tag) check_abelian_group_permuted_wrt_##op_tag
#define CHECK_ABELIAN_GROUP_PERMUTED_WRT_EQUAL(op_tag) check_abelian_group_permuted_wrt_equal_##op_tag
@@ -661,14 +661,14 @@
CHECK_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_b);\
}
-DEFINE_MONOID_CHECK_INSTANCE_WRT(plus);
-DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus);
-DEFINE_MONOID_CHECK_INSTANCE_WRT(pipe);
-DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe);
-DEFINE_MONOID_CHECK_INSTANCE_WRT(et);
-DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(et);
-DEFINE_MONOID_CHECK_INSTANCE_WRT(caret);
-DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret);
+DEFINE_MONOID_CHECK_INSTANCE_WRT (plus)
+DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus)
+DEFINE_MONOID_CHECK_INSTANCE_WRT (pipe)
+DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe)
+DEFINE_MONOID_CHECK_INSTANCE_WRT (et)
+DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(et)
+DEFINE_MONOID_CHECK_INSTANCE_WRT (caret)
+DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret)
#define CHECK_MONOID_INSTANCE_WRT(op_tag) check_monoid_instance_wrt_##op_tag
#define CHECK_MONOID_INSTANCE_WRT_EQUAL(op_tag) check_monoid_instance_wrt_equal_##op_tag
@@ -701,14 +701,14 @@
CHECK_ABELIAN_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_b);\
}
-DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT(plus);
-DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus);
-DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT(pipe);
-DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe);
-DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT(et);
-DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(et);
-DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT(caret);
-DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret);
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT (plus)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT (pipe)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT (et)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(et)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT (caret)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret)
#define CHECK_ABELIAN_MONOID_INSTANCE_WRT(op_tag) check_abelian_monoid_instance_wrt_##op_tag
#define CHECK_ABELIAN_MONOID_INSTANCE_WRT_EQUAL(op_tag) check_abelian_monoid_instance_wrt_equal_##op_tag
@@ -740,14 +740,14 @@
CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_b);\
}
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT(plus);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT(pipe);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT(et);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(et);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT(caret);
-DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret);
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT (plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT (pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT (et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT (caret)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret)
#define CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(op_tag) check_partial_invertive_monoid_instance_wrt_##op_tag
#define CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(op_tag) check_partial_invertive_monoid_instance_wrt_equal_##op_tag
@@ -779,10 +779,10 @@
CHECK_ABELIAN_GROUP_PERMUTED_WRT(op_tag)(var_a, var_b, ass_b);\
}
-DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT(plus);
-DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT_EQUAL(plus);
-DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT(pipe);
-DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT_EQUAL(pipe);
+DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT (plus)
+DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT_EQUAL(plus)
+DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT (pipe)
+DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT_EQUAL(pipe)
#define CHECK_ABELIAN_GROUP_INSTANCE_WRT(op_tag) check_abelian_group_instance_wrt_##op_tag
#define CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(op_tag) check_abelian_group_instance_wrt_equal_##op_tag
Modified: trunk/libs/icl/test/test_type_lists.hpp
==============================================================================
--- trunk/libs/icl/test/test_type_lists.hpp (original)
+++ trunk/libs/icl/test/test_type_lists.hpp 2010-12-06 06:51:25 EST (Mon, 06 Dec 2010)
@@ -22,12 +22,13 @@
#endif
typedef ::boost::mpl::list<
- unsigned short, unsigned int, unsigned long
+ unsigned short, unsigned int, unsigned long
,short, int, long, long long
,float, double, long double
,boost::rational<int>
,boost_posix_time_ptime
// ,boost::gregorian::date
+ ,int*
> bicremental_types;
typedef unsigned int bicremental_type_1;
@@ -35,9 +36,10 @@
typedef double bicremental_type_3;
typedef boost::rational<int> bicremental_type_4;
typedef boost_posix_time_ptime bicremental_type_5;
-typedef unsigned short bicremental_type_6;
-typedef short bicremental_type_7;
-typedef float bicremental_type_8;
+typedef short bicremental_type_6;
+typedef float bicremental_type_7;
+typedef int* bicremental_type_8;
+
typedef ::boost::mpl::list<
short, int, long, long long
Modified: trunk/libs/icl/test/test_value_maker.hpp
==============================================================================
--- trunk/libs/icl/test/test_value_maker.hpp (original)
+++ trunk/libs/icl/test/test_value_maker.hpp 2010-12-06 06:51:25 EST (Mon, 06 Dec 2010)
@@ -76,6 +76,44 @@
}
};
+
+template <class Type>
+struct test_value<Type*>
+{
+
+ static bool map_integers(int values[], int size)
+ {
+ static const int offset = size/2;
+ for(int idx = 0; idx < size; idx++)
+ values[idx] = idx - offset;
+
+ return true;
+ }
+
+ static Type* make(int n)
+ {
+ static bool initialized;
+ static const int size = 100;
+ static const int offset = size/2;
+ static int values[size];
+
+ if(!initialized)
+ initialized = map_integers(values, size);
+
+ Type* value = values + offset;
+ if(n>=0)
+ for(int i=0; i<n; i++)
+ ++value;
+ else
+ for(int i=0; i>n; i--)
+ --value;
+
+ return value;
+ }
+};
+
+
+
template <class Type>
struct test_value
{
@@ -135,18 +173,18 @@
// Very short value denotation for intervals
// Assumption typename T and IntervalT exists in scope
//I_I : [a,b]
-#define I_I(low,up) icl::interval<T>::closed (make<T>(low), make<T>(up))
+#define I_I(low,up) icl::interval<T>::closed (test_value<T>::make(low), test_value<T>::make(up))
//I_D : [a,b)
-#define I_D(low,up) icl::interval<T>::right_open(make<T>(low), make<T>(up))
+#define I_D(low,up) icl::interval<T>::right_open(test_value<T>::make(low), test_value<T>::make(up))
//C_I : (a,b]
-#define C_I(low,up) icl::interval<T>::left_open (make<T>(low), make<T>(up))
+#define C_I(low,up) icl::interval<T>::left_open (test_value<T>::make(low), test_value<T>::make(up))
//C_D : (a,b)
-#define C_D(low,up) icl::interval<T>::open (make<T>(low), make<T>(up))
+#define C_D(low,up) icl::interval<T>::open (test_value<T>::make(low), test_value<T>::make(up))
-#define MK_I(ItvT,low,up) ItvT(make<T>(low), make<T>(up))
+#define MK_I(ItvT,low,up) ItvT(test_value<T>::make(low), test_value<T>::make(up))
-#define MK_v(key) make<T>(key)
-#define MK_u(key) make<U>(key)
+#define MK_v(key) test_value<T>::make(key)
+#define MK_u(key) test_value<U>::make(key)
// Very short value denotation for interval value pairs
// Assumption typename IntervalMapT existes in scope
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk