Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r51551 - in sandbox/itl: boost/itl boost/itl/type_traits libs/itl/build/win32 libs/itl/doc libs/itl/test libs/itl/test/test_casual libs/itl/test/test_interval_map libs/itl/test/test_interval_set libs/itl/test/test_interval_set_infix libs/itl/test/test_interval_set_laws libs/itl/test/test_interval_set_mixed libs/itl/test/test_itl_map libs/itl/test/test_partial_interval_quantifier libs/itl/test/test_quantifier_itl_map libs/itl/test/test_separate_interval_set libs/itl/test/test_separate_interval_set_infix libs/itl/test/test_set_inerval_set libs/itl/test/test_set_itl_set libs/itl/test/test_split_interval_map libs/itl/test/test_split_interval_set libs/itl/test/test_split_interval_set_infix libs/itl/test/test_total_interval_quantifier
From: afojgo_at_[hidden]
Date: 2009-03-03 03:39:19


Author: jofaber
Date: 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
New Revision: 51551
URL: http://svn.boost.org/trac/boost/changeset/51551

Log:
Refactored, portability. Made code portabel for gcc-3.4.4.
Differeced mainly for overloaded operators.
Stable {msvc-9.0, gcc-3.4.4}

Added:
   sandbox/itl/libs/itl/test/test_interval_map_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_interval_set_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_interval_set_infix/
   sandbox/itl/libs/itl/test/test_interval_set_infix/test_interval_set_infix.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_interval_set_infix/vc9_test_interval_set_infix.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/test_interval_set_infix_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_itl_map/test_itl_map_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_partial_interval_quantifier/
   sandbox/itl/libs/itl/test/test_partial_interval_quantifier/test_partial_interval_quantifier.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_partial_interval_quantifier/vc9_test_partial_interval_quantifier.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/test_partial_interval_quantifier_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_separate_interval_set_infix/
   sandbox/itl/libs/itl/test/test_separate_interval_set_infix/test_separate_interval_set_infix.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_separate_interval_set_infix/vc9_test_separate_interval_set_infix.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_set_itl_set/test_set_itl_set_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_set_itl_set_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_split_interval_set_infix/
   sandbox/itl/libs/itl/test/test_split_interval_set_infix/test_split_interval_set_infix.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_split_interval_set_infix/vc9_test_split_interval_set_infix.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/test_total_interval_quantifier/
   sandbox/itl/libs/itl/test/test_total_interval_quantifier/test_total_interval_quantifier.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_total_interval_quantifier/vc9_test_total_interval_quantifier.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp (contents, props changed)
Removed:
   sandbox/itl/libs/itl/test/test_interval_map/test_interval_map_shared.cpp
   sandbox/itl/libs/itl/test/test_interval_set/test_interval_set_shared.cpp
   sandbox/itl/libs/itl/test/test_interval_set_laws/
   sandbox/itl/libs/itl/test/test_itl_map/test_itl_map_shared.cpp
   sandbox/itl/libs/itl/test/test_separate_interval_set/test_separate_interval_set_shared.cpp
   sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set_shared.cpp
Text files modified:
   sandbox/itl/boost/itl/interval_base_set.hpp | 32 ---------------
   sandbox/itl/boost/itl/interval_sets.hpp | 2
   sandbox/itl/boost/itl/map.hpp | 61 +++++++++++++++++++++++-----
   sandbox/itl/boost/itl/map_algo.hpp | 4
   sandbox/itl/boost/itl/operators.hpp | 75 ++++++++++++++++++++++++++---------
   sandbox/itl/boost/itl/set.hpp | 84 ++++++++++++++++++++++++++++++++++-----
   sandbox/itl/boost/itl/type_traits/is_combinable.hpp | 24 +++++++----
   sandbox/itl/libs/itl/build/win32/vc9_all.sln | 48 +++++++++++++++++-----
   sandbox/itl/libs/itl/doc/Jamfile.v2 | 8 +-
   sandbox/itl/libs/itl/test/Jamfile.v2 | 13 ++++-
   sandbox/itl/libs/itl/test/test_casual/test_casual.cpp | 10 ++-
   sandbox/itl/libs/itl/test/test_interval_map/test_interval_map.cpp | 7 --
   sandbox/itl/libs/itl/test/test_interval_map_shared.hpp | 8 ++-
   sandbox/itl/libs/itl/test/test_interval_set/test_interval_set.cpp | 6 -
   sandbox/itl/libs/itl/test/test_interval_set_mixed/test_interval_set_mixed.cpp | 28 ++++++------
   sandbox/itl/libs/itl/test/test_interval_set_shared.hpp | 29 ++++++++-----
   sandbox/itl/libs/itl/test/test_itl_map.hpp | 2
   sandbox/itl/libs/itl/test/test_itl_map/test_itl_map.cpp | 6 -
   sandbox/itl/libs/itl/test/test_laws.hpp | 76 +++++++++++++++++++-----------------
   sandbox/itl/libs/itl/test/test_quantifier_itl_map.hpp | 32 +++++++-------
   sandbox/itl/libs/itl/test/test_quantifier_itl_map/test_quantifier_itl_map.cpp | 3 -
   sandbox/itl/libs/itl/test/test_separate_interval_set/test_separate_interval_set.cpp | 6 -
   sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set.cpp | 5 -
   sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp | 3 -
   sandbox/itl/libs/itl/test/test_set_itl_set.hpp | 3 -
   sandbox/itl/libs/itl/test/test_set_itl_set/test_set_itl_set.cpp | 5 -
   sandbox/itl/libs/itl/test/test_split_interval_map/test_split_interval_map.cpp | 6 -
   sandbox/itl/libs/itl/test/test_split_interval_set/test_split_interval_set.cpp | 6 -
   sandbox/itl/libs/itl/test/test_split_interval_set/test_split_interval_set_shared.cpp | 37 +++++-----------
   sandbox/itl/libs/itl/test/test_type_lists.hpp | 4
   30 files changed, 371 insertions(+), 262 deletions(-)

Modified: sandbox/itl/boost/itl/interval_base_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_set.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_set.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -452,38 +452,6 @@
 }
 
 
-/*CL
-template<class SubType,
- class DomainT, ITL_COMPARE Compare, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
- template
- <
- template<class DomT, ITL_COMPARE Comp,
- template<class DomT2,ITL_COMPARE>class Interv, ITL_ALLOC Allc>
- class IntervalSet
- >
-bool interval_base_set<SubType,DomainT,Compare,Interval,Alloc>
- ::contained_in(const IntervalSet<DomainT,Compare,Interval,Alloc>& x2)const
-{
- // The empty set is subset of every set
- if(empty())
- return true;
- else if (x2.empty())
- return false;
- else if(upper() < x2.lower())
- return false;
- else if(x2.upper() < lower())
- return false;
- else
- {
- // x2 should be larger than *this; so every element in this should be in x2
- const_FOR_IMPL(it)
- if(!x2.contains(*it))
- return false;
- return true;
- }
-}
-*/
-
 template<class SubType,
          class DomainT, ITL_COMPARE Compare, template<class,ITL_COMPARE>class Interval, ITL_ALLOC Alloc>
 void interval_base_set<SubType,DomainT,Compare,Interval,Alloc>::add_intersection(interval_base_set& section, const segment_type& inter_val)const

Modified: sandbox/itl/boost/itl/interval_sets.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_sets.hpp (original)
+++ sandbox/itl/boost/itl/interval_sets.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -125,8 +125,6 @@
     return object.flip(operand);
 }
 
-
-
 //-----------------------------------------------------------------------------
 // is_disjoint
 //-----------------------------------------------------------------------------

Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -615,18 +615,28 @@
 template <class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
 inline itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>&
 operator += ( itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& object,
- const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::value_type& operand)
+ const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::element_type& operand)
 { return object.add(operand); }
 
 template <class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
 itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>
 operator + ( const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& object,
- const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::value_type& operand)
+ const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::element_type& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) += operand;
+ ObjectT result(object);
+ return result += operand;
 }
 
+template <class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>
+operator + (const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::element_type& operand,
+ const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& object )
+{
+ typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
+ ObjectT result(object);
+ return result += operand;
+}
 
 /** Add a map \c operand to map \c object. If an element of \c operand already exists
     in \c object, add up the contents. */
@@ -643,7 +653,8 @@
              const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) += operand;
+ ObjectT result(object);
+ return result += operand;
 }
 
 //--------------------------------------------------------------------------
@@ -660,10 +671,21 @@
     const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::value_type& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) |= operand;
+ ObjectT result(object);
+ return result |= operand;
 }
 
 
+template <class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>
+operator | (const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::element_type& operand,
+ const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& object )
+{
+ typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
+ ObjectT result(object);
+ return result |= operand;
+}
+
 /** Add a map \c operand to map \c object. If an element of \c operand already exists
     in \c object, add up the contents. */
 template <class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
@@ -679,7 +701,8 @@
              const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) |= operand;
+ ObjectT result(object);
+ return result |= operand;
 }
 
 //--------------------------------------------------------------------------
@@ -704,7 +727,8 @@
              const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) -= operand;
+ ObjectT result(object);
+ return result -= operand;
 }
 
 /** Subtract a set \c x2 from this map. Every element of \c this map that
@@ -722,7 +746,8 @@
     const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::set_type& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) -= operand;
+ ObjectT result(object);
+ return result -= operand;
 }
 
 
@@ -750,7 +775,8 @@
              const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) &= operand;
+ ObjectT result(object);
+ return result &= operand;
 }
 
 /** Intersect set \c x2 and \c *this.
@@ -768,10 +794,22 @@
     const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::set_type& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) &= operand;
+ ObjectT result(object);
+ return result &= operand;
+}
+
+template <class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
+itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>
+operator & (const typename itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>::set_type& operand,
+ const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& object )
+{
+ typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
+ ObjectT result(object);
+ return result &= operand;
 }
 
 
+
 /** Symmetric subtract map \c x2 and \c *this.
     So \c *this becomes the symmetric difference of \c *this and \c x2 */
 template <class DomainT, class CodomainT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_SECTION Section, ITL_ALLOC Alloc>
@@ -789,7 +827,8 @@
              const itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc>& operand)
 {
     typedef itl::map<DomainT,CodomainT,Traits,Compare,Combine,Section,Alloc> ObjectT;
- return ObjectT(object) ^= operand;
+ ObjectT result(object);
+ return result ^= operand;
 }
 
 

Modified: sandbox/itl/boost/itl/map_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/map_algo.hpp (original)
+++ sandbox/itl/boost/itl/map_algo.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -137,9 +137,9 @@
                         typename MapType::iterator res_ = insertion.ITERATOR;
                         typename MapType::codomain_type common_value = res_->CONT_VALUE;
                         typename MapType::key_type key_value = res_->KEY_VALUE;
- MapType::inverse_codomain_intersect()(common_value, cur_x2_->CONT_VALUE);
+ typename MapType::inverse_codomain_intersect()(common_value, cur_x2_->CONT_VALUE);
                         result.subtract(*res_);
- result.add(MapType::value_type(key_value, common_value));
+ result.add(typename MapType::value_type(key_value, common_value));
                     }
                     else
                         result.subtract(*insertion.ITERATOR);

Modified: sandbox/itl/boost/itl/operators.hpp
==============================================================================
--- sandbox/itl/boost/itl/operators.hpp (original)
+++ sandbox/itl/boost/itl/operators.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -27,17 +27,28 @@
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_binary_intra_combinable<ObjectT, OperandT>, ObjectT>::type
 operator + (const ObjectT& object, const OperandT& operand)
-{ return ObjectT(object) += operand; }
+//NOTE: Prefered implementation using return value optimization does not compile with gcc
+//{ return ObjectT(object) += operand; }
+{
+ ObjectT result(object);
+ return result += operand;
+}
 
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_binary_intra_combinable<ObjectT, OperandT>, ObjectT>::type
 operator + (const OperandT& operand, const ObjectT& object)
-{ return ObjectT(object) += operand; }
+{
+ ObjectT result(object);
+ return result += operand;
+}
 
 
 template<class ObjectT>
 ObjectT operator + (const typename ObjectT::overloadable_type& object, const ObjectT& operand)
-{ return ObjectT(object) += operand; }
+{
+ ObjectT tmp(object);
+ return tmp += operand;
+}
 
 
 //------------------------------------------------------------------------------
@@ -53,17 +64,26 @@
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_binary_intra_combinable<ObjectT, OperandT>, ObjectT>::type
 operator | (const ObjectT& object, const OperandT& operand)
-{ return ObjectT(object) += operand; }
+{
+ ObjectT result(object);
+ return result += operand;
+}
 
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_binary_intra_combinable<ObjectT, OperandT>, ObjectT>::type
 operator | (const OperandT& operand, const ObjectT& object)
-{ return ObjectT(object) += operand; }
+{
+ ObjectT result(object);
+ return result += operand;
+}
 
 
 template<class ObjectT>
 ObjectT operator | (const typename ObjectT::overloadable_type& object, const ObjectT& operand)
-{ return ObjectT(object) += operand; }
+{
+ ObjectT result(object);
+ return result += operand;
+}
 
 
 //------------------------------------------------------------------------------
@@ -85,13 +105,10 @@
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_right_inter_combinable<ObjectT, OperandT>, ObjectT>::type
 operator - (const ObjectT& object, const OperandT& operand)
-{ return ObjectT(object) -= operand; }
-
-
-template<class ObjectT>
-ObjectT operator - (const typename ObjectT::overloadable_type& object, const ObjectT& operand)
-{ return ObjectT(object) -= operand; }
-
+{
+ ObjectT result(object);
+ return result -= operand;
+}
 
 //------------------------------------------------------------------------------
 // Intersection &=, &
@@ -109,41 +126,59 @@
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_binary_inter_combinable<ObjectT, OperandT>, ObjectT>::type
 operator & (const ObjectT& object, const OperandT& operand)
-{ return ObjectT(object) &= operand; }
+{
+ ObjectT result(object);
+ return result &= operand;
+}
 
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_binary_inter_combinable<ObjectT, OperandT>, ObjectT>::type
 operator & (const OperandT& operand, const ObjectT& object)
-{ return ObjectT(object) &= operand; }
+{
+ ObjectT result(object);
+ return result &= operand;
+}
 
 template<class ObjectT>
 ObjectT operator & (const typename ObjectT::overloadable_type& object, const ObjectT& operand)
-{ return ObjectT(object) &= operand; }
+{
+ ObjectT result(object);
+ return result &= operand;
+}
 
 //------------------------------------------------------------------------------
 // Symmetric difference ^=, ^
 //------------------------------------------------------------------------------
+
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_intra_derivative<ObjectT, OperandT>,
                           ObjectT>::type&
 operator ^= (ObjectT& object, const OperandT& operand)
 { return object.flip(operand); }
 
-
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_binary_intra_combinable<ObjectT, OperandT>, ObjectT>::type
 operator ^ (const ObjectT& object, const OperandT& operand)
-{ return ObjectT(object) ^= operand; }
+{
+ ObjectT result(object);
+ return result ^= operand;
+}
 
 template<class ObjectT, class OperandT>
 typename boost::enable_if<is_binary_intra_combinable<ObjectT, OperandT>, ObjectT>::type
 operator ^ (const OperandT& operand, const ObjectT& object)
-{ return ObjectT(object) ^= operand; }
+{
+ ObjectT result(object);
+ return result ^= operand;
+}
 
 
 template<class ObjectT>
 ObjectT operator ^ (const typename ObjectT::overloadable_type& object, const ObjectT& operand)
-{ return ObjectT(object) ^= operand; }
+{
+ ObjectT result(object);
+ return result ^= operand;
+}
 
 
 }} // namespace itl boost

Modified: sandbox/itl/boost/itl/set.hpp
==============================================================================
--- sandbox/itl/boost/itl/set.hpp (original)
+++ sandbox/itl/boost/itl/set.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -70,7 +70,7 @@
     //= Construct, copy, destruct
     //==========================================================================
     set(){}
- set(const domain_compare& comp):
+ explicit set(const domain_compare& comp):
         std::set<DomainT, domain_compare, Alloc<DomainT> >(comp){}
 
     template <class InputIterator>
@@ -369,7 +369,19 @@
 itl::set<DomainT,Compare,Alloc>
 operator + (const itl::set<DomainT,Compare,Alloc>& object,
     const typename itl::set<DomainT,Compare,Alloc>::element_type& operand)
-{ return itl::set<DomainT,Compare,Alloc>(object) += operand; }
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result += operand;
+}
+
+template <typename DomainT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
+itl::set<DomainT,Compare,Alloc>
+operator + (const typename itl::set<DomainT,Compare,Alloc>::element_type& operand,
+ const itl::set<DomainT,Compare,Alloc>& object)
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result += operand;
+}
 
 /// Add a set \c operand to this set \object.
 template <typename DomainT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
@@ -382,7 +394,10 @@
 itl::set<DomainT,Compare,Alloc>
 operator + (const itl::set<DomainT,Compare,Alloc>& object,
              const itl::set<DomainT,Compare,Alloc>& operand)
-{ return itl::set<DomainT,Compare,Alloc>(object) += operand; }
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result += operand;
+}
 
 //--------------------------------------------------------------------------
 
@@ -396,7 +411,19 @@
 itl::set<DomainT,Compare,Alloc>
 operator | (const itl::set<DomainT,Compare,Alloc>& object,
     const typename itl::set<DomainT,Compare,Alloc>::element_type& operand)
-{ return itl::set<DomainT,Compare,Alloc>(object) |= operand; }
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result |= operand;
+}
+
+template <typename DomainT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
+itl::set<DomainT,Compare,Alloc>
+operator | (const typename itl::set<DomainT,Compare,Alloc>::element_type& operand,
+ const itl::set<DomainT,Compare,Alloc>& object)
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result |= operand;
+}
 
 /// Add a set \c operand to this set \object.
 template <typename DomainT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
@@ -409,7 +436,10 @@
 itl::set<DomainT,Compare,Alloc>
 operator | (const itl::set<DomainT,Compare,Alloc>& object,
              const itl::set<DomainT,Compare,Alloc>& operand)
-{ return itl::set<DomainT,Compare,Alloc>(object) |= operand; }
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result |= operand;
+}
 
 //--------------------------------------------------------------------------
 
@@ -423,8 +453,10 @@
 itl::set<DomainT,Compare,Alloc>
 operator - (const itl::set<DomainT,Compare,Alloc>& object,
     const typename itl::set<DomainT,Compare,Alloc>::element_type& operand)
-{ return itl::set<DomainT,Compare,Alloc>(object) -= operand; }
-
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result -= operand;
+}
 
 /// Subtract a set \c x2 from this set.
 template <typename DomainT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
@@ -437,7 +469,10 @@
 itl::set<DomainT,Compare,Alloc>
 operator - (const itl::set<DomainT,Compare,Alloc>& object,
              const itl::set<DomainT,Compare,Alloc>& operand)
-{ return itl::set<DomainT,Compare,Alloc>(object) -= operand; }
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result -= operand;
+}
 
 //--------------------------------------------------------------------------
 // itl::set::intersection operators &=, &
@@ -457,7 +492,19 @@
 itl::set<DomainT,Compare,Alloc>
 operator & (const itl::set<DomainT,Compare,Alloc>& object,
     const typename itl::set<DomainT,Compare,Alloc>::element_type& operand)
-{ return itl::set<DomainT,Compare,Alloc>(object) &= operand; }
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result &= operand;
+}
+
+template <typename DomainT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
+itl::set<DomainT,Compare,Alloc>
+operator & (const typename itl::set<DomainT,Compare,Alloc>::element_type& operand,
+ const itl::set<DomainT,Compare,Alloc>& object)
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result &= operand;
+}
 
 
 
@@ -478,7 +525,10 @@
 itl::set<DomainT,Compare,Alloc>
 operator & (const itl::set<DomainT,Compare,Alloc>& object,
              const itl::set<DomainT,Compare,Alloc>& operand)
-{ return itl::set<DomainT,Compare,Alloc>(object) &= operand; }
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result &= operand;
+}
 
 //--------------------------------------------------------------------------
 // itl::set::symmetric_difference operators ^=, ^
@@ -496,9 +546,18 @@
 operator ^ (const itl::set<DomainT,Compare,Alloc>& object,
     const typename itl::set<DomainT,Compare,Alloc>::element_type& operand)
 {
- return itl::set<DomainT,Compare,Alloc>(object) ^= operand;
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result ^= operand;
 }
 
+template <typename DomainT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
+itl::set<DomainT,Compare,Alloc>
+operator ^ (const typename itl::set<DomainT,Compare,Alloc>::element_type& operand,
+ const itl::set<DomainT,Compare,Alloc>& object)
+{
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result ^= operand;
+}
 
 
 /** Intersect set \c object with \c operand.
@@ -516,7 +575,8 @@
 operator ^ (const itl::set<DomainT,Compare,Alloc>& object,
              const itl::set<DomainT,Compare,Alloc>& operand)
 {
- return itl::set<DomainT,Compare,Alloc>(object) ^= operand;
+ itl::set<DomainT,Compare,Alloc> result(object);
+ return result ^= operand;
 }
 
 

Modified: sandbox/itl/boost/itl/type_traits/is_combinable.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_combinable.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_combinable.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -26,7 +26,6 @@
         is_same<Type, typename Type::overloadable_type>::value;
 };
 
-
 template<class Type>
 struct is_interval_map
 {
@@ -43,7 +42,6 @@
         is_interval_container<Type>::value && !is_interval_map<Type>::value;
 };
 
-
 //------------------------------------------------------------------------------
 // is_interval_set_derivative
 //------------------------------------------------------------------------------
@@ -53,17 +51,22 @@
 template<class Type>
 struct is_interval_set_derivative<Type, typename Type::domain_type>
 {
+ typedef is_interval_set_derivative<Type, typename Type::domain_type> type;
     static const bool value = is_interval_container<Type>::value;
 };
 
 template<class Type>
 struct is_interval_set_derivative<Type, typename Type::interval_type>
-{ enum{ value = is_interval_container<Type>::value }; };
+{
+ typedef is_interval_set_derivative<Type, typename Type::interval_type> type;
+ static const bool value = is_interval_container<Type>::value;
+};
 
 template<class Type, class AssociateT>
 struct is_interval_set_derivative
 {
- enum{ value = false };
+ typedef is_interval_set_derivative<Type, AssociateT> type;
+ static const bool value = false;
 };
 
 //------------------------------------------------------------------------------
@@ -107,11 +110,14 @@
 struct is_intra_derivative
 {
     typedef is_intra_derivative<Type, AssociateT> type;
- static const bool value =
- ( is_interval_set<Type>::value
- && is_interval_set_derivative<Type, AssociateT>::value)
- || ( is_interval_map<Type>::value
- && is_interval_map_derivative<Type, AssociateT>::value);
+ static const bool value =
+ mpl::or_
+ <
+ mpl::and_<is_interval_set<Type>,
+ is_interval_set_derivative<Type, AssociateT> >
+ , mpl::and_<is_interval_map<Type>,
+ is_interval_map_derivative<Type, AssociateT> >
+ >::value;
 };
 
 template<class Type, class AssociateT>

Modified: sandbox/itl/libs/itl/build/win32/vc9_all.sln
==============================================================================
--- sandbox/itl/libs/itl/build/win32/vc9_all.sln (original)
+++ sandbox/itl/libs/itl/build/win32/vc9_all.sln 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -37,8 +37,6 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map", "..\..\test\test_interval_map\vc9_test_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_map", "..\..\test\test_split_interval_map\vc9_test_split_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_mixed", "..\..\test\test_interval_map_mixed\vc9_test_interval_map_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_month_and_week_grid", "..\..\example\month_and_week_grid\vc9_month_and_week_grid.vcproj", "{360BCFA9-9EB6-4D22-8469-CDC290478F78}"
@@ -47,8 +45,6 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_single", "..\..\..\validate\example\labat_single\vc9_labat_single.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F471C}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_quantifier_map", "..\..\test\test_quantifier_map\vc9_test_quantifier_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9F}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_casual", "..\..\test\test_casual\vc9_test_casual.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_labat_val_relations", "..\..\..\validate\example\labat_val_relations\vc9_labat_val_relations.vcproj", "{BF42574F-66E2-42DD-90D9-3A8FCE6F471F}"
@@ -73,6 +69,18 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_itl_map", "..\..\test\test_itl_map\vc9_test_itl_map.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_set_infix", "..\..\test\test_interval_set_infix\vc9_test_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D1623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_separate_interval_set_infix", "..\..\test\test_separate_interval_set_infix\vc9_test_separate_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D2623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_set_infix", "..\..\test\test_split_interval_set_infix\vc9_test_split_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D3623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_partial_interval_quantifier", "..\..\test\test_partial_interval_quantifier\vc9_test_partial_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_total_interval_quantifier", "..\..\test\test_total_interval_quantifier\vc9_test_total_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_map", "..\..\test\test_split_interval_map\vc9_test_split_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -151,10 +159,6 @@
                 {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Debug|Win32.Build.0 = Debug|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Release|Win32.ActiveCfg = Release|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Release|Win32.Build.0 = Release|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Debug|Win32.Build.0 = Debug|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Release|Win32.ActiveCfg = Release|Win32
@@ -171,10 +175,6 @@
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F471C}.Debug|Win32.Build.0 = Debug|Win32
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F471C}.Release|Win32.ActiveCfg = Release|Win32
                 {BF42574F-66E2-42DD-90D9-3A8FCE6F471C}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.Build.0 = Debug|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.ActiveCfg = Release|Win32
@@ -223,6 +223,30 @@
                 {DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Debug|Win32.Build.0 = Debug|Win32
                 {DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Release|Win32.ActiveCfg = Release|Win32
                 {DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Release|Win32.Build.0 = Release|Win32
+ {A731623C-94BC-4666-A419-35D1623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A731623C-94BC-4666-A419-35D1623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {A731623C-94BC-4666-A419-35D1623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {A731623C-94BC-4666-A419-35D1623E950E}.Release|Win32.Build.0 = Release|Win32
+ {A731623C-94BC-4666-A419-35D2623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A731623C-94BC-4666-A419-35D2623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {A731623C-94BC-4666-A419-35D2623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {A731623C-94BC-4666-A419-35D2623E950E}.Release|Win32.Build.0 = Release|Win32
+ {A731623C-94BC-4666-A419-35D3623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A731623C-94BC-4666-A419-35D3623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {A731623C-94BC-4666-A419-35D3623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {A731623C-94BC-4666-A419-35D3623E950E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE

Modified: sandbox/itl/libs/itl/doc/Jamfile.v2
==============================================================================
--- sandbox/itl/libs/itl/doc/Jamfile.v2 (original)
+++ sandbox/itl/libs/itl/doc/Jamfile.v2 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -5,7 +5,7 @@
 #
 # Distributed under the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
+# http:\\www.boost.org\LICENSE_1_0.txt)
 
 import doxygen ;
 import quickbook ;
@@ -16,7 +16,7 @@
 
 doxygen itldoc
     :
- [ glob ../../../boost/itl/*.hpp ]
+ [ glob ..\..\..\boost\itl\*.hpp ]
     :
         <doxygen:param>EXTRACT_ALL=YES
         <doxygen:param>HIDE_UNDOC_MEMBERS=NO
@@ -44,8 +44,8 @@
     :
         itl
     :
- <xsl:param>boost.root=../../../..
- <xsl:param>boost.libraries=../../../libraries.htm
+ <xsl:param>boost.root=..\..\..\..
+ <xsl:param>boost.libraries=..\..\..\libraries.htm
         <xsl:param>toc.max.depth=2
         <xsl:param>toc.section.depth=2
         <xsl:param>chunk.section.depth=1

Modified: sandbox/itl/libs/itl/test/Jamfile.v2
==============================================================================
--- sandbox/itl/libs/itl/test/Jamfile.v2 (original)
+++ sandbox/itl/libs/itl/test/Jamfile.v2 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -21,8 +21,14 @@
       
       # sets
       [ run test_interval_set/test_interval_set.cpp ]
+ [ run test_interval_set_infix/test_interval_set_infix.cpp ]
+
       [ run test_separate_interval_set/test_separate_interval_set.cpp ]
- [ run test_split_interval_set/test_split_interval_set.cpp ]
+ [ run test_separate_interval_set_infix/test_separate_interval_set_infix.cpp ]
+
+ [ run test_split_interval_set/test_split_interval_set.cpp ]
+ [ run test_split_interval_set_infix/test_split_interval_set_infix.cpp ]
+
       [ run test_interval_set_mixed/test_interval_set_mixed.cpp ]
       
       # maps
@@ -37,7 +43,6 @@
       [ run test_set_itl_set/test_set_itl_set.cpp ]
       
       # Concept Map
- [ run test_quantifier_itl_map/test_quantifier_itl_map.cpp ]
- # too fat /bigobj [ run test_quantifier_map/test_quantifier_map.cpp ]
-
+ [ run test_partial_interval_quantifier/test_partial_interval_quantifier.cpp ]
+ [ run test_total_interval_quantifier/test_total_interval_quantifier.cpp ]
     ;

Modified: sandbox/itl/libs/itl/test/test_casual/test_casual.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_casual/test_casual.cpp (original)
+++ sandbox/itl/libs/itl/test/test_casual/test_casual.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -63,11 +63,13 @@
     typedef itl::map<int,int> ItlMapT;
     typedef interval_map<int,int,partial_enricher> IntervalMapT;
     typedef split_interval_map<int,int> SplitIntervalMapT;
+ typedef interval_set<int> IntervalSetT;
     
- IntervalMapT left, right;
+ //IntervalMapT left, right, result;
+ //left .add(IIv(0,0,1)).add(IIv(1,1,2));
+ //right.add(IIv(0,0,-1));
 
- left .add(IIv(0,0,1)).add(IIv(1,1,2));
- right.add(IIv(0,0,-1));
+ IntervalSetT left, right, result;
 
- left ^= right;
+ result = left + right;
 }

Modified: sandbox/itl/libs/itl/test/test_interval_map/test_interval_map.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map/test_interval_map.cpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map/test_interval_map.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -14,7 +14,6 @@
 // interval instance types
 #include "../test_type_lists.hpp"
 #include "../test_value_maker.hpp"
-#include "../test_laws.hpp"
 
 #include <boost/itl/separate_interval_set.hpp>
 #include <boost/itl/split_interval_set.hpp>
@@ -31,9 +30,7 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_interval_map_shared.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_map{,_split}_shared.cpp is generated through code
-// replication.
-#include "test_interval_map_shared.cpp"
+#define INTERVAL_MAP interval_map
+#include "../test_interval_map_cases.hpp"
 
 

Deleted: sandbox/itl/libs/itl/test/test_interval_map/test_interval_map_shared.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map/test_interval_map_shared.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
+++ (empty file)
@@ -1,84 +0,0 @@
-/*-----------------------------------------------------------------------------+
-Copyright (c) 2008-2009: Joachim Faulhaber
-+------------------------------------------------------------------------------+
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENCE.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-+-----------------------------------------------------------------------------*/
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_fundamentals_4_ordered_types, T, ordered_types)
-{ interval_map_fundamentals_4_ordered_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_ctor_4_bicremental_types, T, bicremental_types)
-{ interval_map_ctor_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_add_sub_4_bicremental_types, T, bicremental_types)
-{ interval_map_add_sub_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_distinct_4_bicremental_types, T, bicremental_types)
-{ interval_map_distinct_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_map_distinct_4_bicremental_continuous_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_map_isolate_4_bicremental_continuous_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_contains_4_bicremental_types, T, bicremental_types)
-{ interval_map_contains_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_operators_4_bicremental_types, T, bicremental_types)
-{ interval_map_operators_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_base_intersect_4_bicremental_types, T, bicremental_types)
-{ interval_map_base_intersect_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_base_erase_4_bicremental_types, T, bicremental_types)
-{ interval_map_base_erase_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_base_is_disjoint_4_bicremental_types, T, bicremental_types)
-{ interval_map_base_is_disjoint_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_flip_4_bicremental_types, T, bicremental_types)
-{ interval_map_flip_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_plus_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_plus_overload_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_pipe_overload_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_minus_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_minus_overload_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_et_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_et_overload_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_caret_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_caret_overload_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_find_4_bicremental_types, T, bicremental_types)
-{ interval_map_find_4_bicremental_types<interval_map, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_set_4_bicremental_types, T, bicremental_types)
-{ interval_map_set_4_bicremental_types<interval_map, T, int>();}
-

Added: sandbox/itl/libs/itl/test/test_interval_map_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_interval_map_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,84 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_map_fundamentals_4_ordered_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_map_ctor_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_map_add_sub_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_map_distinct_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_distinct_4_bicremental_continuous_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_isolate_4_bicremental_continuous_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_contains_4_bicremental_types, T, bicremental_types)
+{ interval_map_contains_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_operators_4_bicremental_types, T, bicremental_types)
+{ interval_map_operators_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_intersect_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_base_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_erase_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_base_is_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_is_disjoint_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_flip_4_bicremental_types, T, bicremental_types)
+{ interval_map_flip_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_plus_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_pipe_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_minus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_minus_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_et_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_caret_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_caret_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_find_4_bicremental_types, T, bicremental_types)
+{ interval_map_find_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_set_4_bicremental_types, T, bicremental_types)
+{ interval_map_set_4_bicremental_types<INTERVAL_MAP, T, int>();}
+

Modified: sandbox/itl/libs/itl/test/test_interval_map_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map_shared.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -804,14 +804,16 @@
     typedef IntervalMap<T,U> IntervalMapT;
     typedef IntervalMapT IMap;
 
- IntervalMapT set_a, set_b, lhs, rhs;
+ IntervalMapT set_a;
     //[0 2)
     // 1
     // [1 3)
     // 1
     //[0 1) [2 3) : {[0 2)->1} ^= ([2 3)->1)
     // 1 1
- BOOST_CHECK_EQUAL(IMap(IDv(0,2,1)) ^= (IDv(1,3,1)), IMap(IDv(0,1,1)) + IDv(2,3,1));
+ //BOOST_CHECK_EQUAL(IMap(IDv(0,2,1)) ^= (IDv(1,3,1)), IMap(IDv(0,1,1)) + IDv(2,3,1));
+ set_a = IMap(IDv(0,2,1));
+ BOOST_CHECK_EQUAL(set_a ^= IDv(1,3,1), IMap(IDv(0,1,1)) + IDv(2,3,1));
 }
 
 template <template<class T, class U,
@@ -1030,7 +1032,7 @@
     IntervalMapT map_a;
     map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
 
- IntervalMapT::const_iterator found = map_a.find(MK_v(6));
+ typename IntervalMapT::const_iterator found = map_a.find(MK_v(6));
 
     BOOST_CHECK_EQUAL( found->CONT_VALUE, MK_u(3) );
     BOOST_CHECK_EQUAL( map_a(MK_v(6)), MK_u(3) );

Added: sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,251 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __test_itl_quantifier_map_shared_h_JOFA_090119__
+#define __test_itl_quantifier_map_shared_h_JOFA_090119__
+
+
+//------------------------------------------------------------------------------
+// Monoid EAN
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
+ ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
+ template<class,ITL_COMPARE>class Interval = interval,
+ ITL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void quantifier_map_check_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
+ ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
+ template<class,ITL_COMPARE>class Interval = interval,
+ ITL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void quantifier_map_check_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// Abelian monoid EANC
+//------------------------------------------------------------------------------
+
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
+ ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
+ template<class,ITL_COMPARE>class Interval = interval,
+ ITL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void quantifier_map_check_abelian_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
+ ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
+ template<class,ITL_COMPARE>class Interval = interval,
+ ITL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void quantifier_map_check_abelian_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
+ ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
+ template<class,ITL_COMPARE>class Interval = interval,
+ ITL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void quantifier_map_check_partial_invertive_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid with protonic equality for inversion
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
+ ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
+ template<class,ITL_COMPARE>class Interval = interval,
+ ITL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void quantifier_map_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus)(map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe)(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(plus)(is_protonic_equal, map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(pipe)(is_protonic_equal, map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian group EANIC
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
+ ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
+ template<class,ITL_COMPARE>class Interval = interval,
+ ITL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void quantifier_map_check_abelian_group_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// (0 - x) + x =p= 0 |
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
+ ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
+ ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
+ template<class,ITL_COMPARE>class Interval = interval,
+ ITL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(plus) (is_protonic_equal, map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(pipe) (is_protonic_equal, map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+#endif // __test_itl_quantifier_map_shared_h_JOFA_090119__
+

Modified: sandbox/itl/libs/itl/test/test_interval_set/test_interval_set.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set/test_interval_set.cpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set/test_interval_set.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -27,9 +27,7 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_interval_set_shared.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_set{,_separate,split}_shared.cpp is generated through code
-// replication.
-#include "test_interval_set_shared.cpp"
+#define INTERVAL_SET interval_set
+#include "../test_interval_set_cases.hpp"
 
 

Deleted: sandbox/itl/libs/itl/test/test_interval_set/test_interval_set_shared.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set/test_interval_set_shared.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
+++ (empty file)
@@ -1,76 +0,0 @@
-/*-----------------------------------------------------------------------------+
-Copyright (c) 2008-2009: Joachim Faulhaber
-+------------------------------------------------------------------------------+
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENCE.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-+-----------------------------------------------------------------------------*/
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
-{ interval_set_fundamentals_4_ordered_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
-{ interval_set_ctor_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
-{ interval_set_add_sub_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
-{ interval_set_distinct_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_set_distinct_4_bicremental_continuous_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_set_isolate_4_bicremental_continuous_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
-{ interval_set_element_compare_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_contains_4_bicremental_types, T, bicremental_types)
-{ interval_set_contains_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_operators_4_bicremental_types, T, bicremental_types)
-{ interval_set_operators_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
-{ interval_set_base_intersect_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_flip_4_bicremental_types, T, bicremental_types)
-{ interval_set_flip_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_plus_overload_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_pipe_overload_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_minus_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_minus_overload_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_et_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_et_overload_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_caret_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_caret_overload_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_find_4_bicremental_types, T, bicremental_types)
-{ interval_set_find_4_bicremental_types<interval_set, T>();}
-

Added: sandbox/itl/libs/itl/test/test_interval_set_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_interval_set_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,59 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_set_fundamentals_4_ordered_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_set_ctor_4_bicremental_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_set_add_sub_4_bicremental_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_set_distinct_4_bicremental_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_distinct_4_bicremental_continuous_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_isolate_4_bicremental_continuous_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
+{ interval_set_element_compare_4_bicremental_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_contains_4_bicremental_types, T, bicremental_types)
+{ interval_set_contains_4_bicremental_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_operators_4_bicremental_types, T, bicremental_types)
+{ interval_set_operators_4_bicremental_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_set_base_intersect_4_bicremental_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_flip_4_bicremental_types, T, bicremental_types)
+{ interval_set_flip_4_bicremental_types<interval_set, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_find_4_bicremental_types, T, bicremental_types)
+{ interval_set_find_4_bicremental_types<interval_set, T>();}
+
+
+
+

Added: sandbox/itl/libs/itl/test/test_interval_set_infix/test_interval_set_infix.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_interval_set_infix/test_interval_set_infix.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_set unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET interval_set
+#include "../test_interval_set_infix_cases.hpp"
+
+
+

Added: sandbox/itl/libs/itl/test/test_interval_set_infix/vc9_test_interval_set_infix.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_interval_set_infix/vc9_test_interval_set_infix.vcproj 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_set_infix"
+ ProjectGUID="{A731623C-94BC-4666-A419-35D1623E950E}"
+ RootNamespace="test_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_set_infix_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/itl/libs/itl/test/test_interval_set_infix_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_interval_set_infix_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,31 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_pipe_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_infix_minus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_minus_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_et_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_infix_caret_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_caret_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+
+
+

Modified: sandbox/itl/libs/itl/test/test_interval_set_mixed/test_interval_set_mixed.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_mixed/test_interval_set_mixed.cpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_mixed/test_interval_set_mixed.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -28,7 +28,7 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_ctor_4_ordered_types, T, ordered_types)
 {
     T v0 = neutron<T>::value();
- T v1 = unon<T>::value();
+
 
     split_interval_set<T> split_set(v0);
     separate_interval_set<T> sep_set(split_set);
@@ -41,7 +41,7 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_equal_4_ordered_types, T, ordered_types)
 {
     T v0 = neutron<T>::value();
- T v1 = unon<T>::value();
+
 
     split_interval_set<T> split_empty, split_single(v0);
     separate_interval_set<T> sep_empty, sep_single(v0);
@@ -132,7 +132,7 @@
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_ctor_4_bicremental_types, T, bicremental_types)
 {
- T v0 = make<T>(0);
+
     T v1 = make<T>(1);
     T v2 = make<T>(2);
     T v3 = make<T>(3);
@@ -163,7 +163,7 @@
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_assign_4_bicremental_types, T, bicremental_types)
 {
- T v0 = make<T>(0);
+
     T v1 = make<T>(1);
     T v2 = make<T>(2);
     T v3 = make<T>(3);
@@ -198,7 +198,7 @@
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_equal_4_bicremental_types, T, bicremental_types)
 {
- T v0 = make<T>(0);
+
     T v1 = make<T>(1);
     T v2 = make<T>(2);
     T v3 = make<T>(3);
@@ -255,7 +255,7 @@
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_add_4_bicremental_types, T, bicremental_types)
 {
- T v0 = make<T>(0);
+
     T v1 = make<T>(1);
     T v2 = make<T>(2);
     T v3 = make<T>(3);
@@ -520,8 +520,8 @@
     T v1 = make<T>(1);
     T v2 = make<T>(2);
     T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
+
+
     T v6 = make<T>(6);
     T v7 = make<T>(7);
     T v8 = make<T>(8);
@@ -591,7 +591,7 @@
     T v4 = make<T>(4);
     T v5 = make<T>(5);
     T v6 = make<T>(6);
- T v7 = make<T>(7);
+
     T v8 = make<T>(8);
     T v9 = make<T>(9);
 
@@ -718,15 +718,15 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_disjoint_4_bicremental_types, T, bicremental_types)
 {
     T v0 = make<T>(0);
- T v1 = make<T>(1);
+
     T v2 = make<T>(2);
     T v3 = make<T>(3);
     T v4 = make<T>(4);
- T v5 = make<T>(5);
+
     T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
+
+
+
 
     interval<T> I0_2D = interval<T>::rightopen(v0,v2);
     interval<T> I2_3D = interval<T>::rightopen(v2,v3);

Modified: sandbox/itl/libs/itl/test/test_interval_set_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_shared.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -8,6 +8,7 @@
 #ifndef __test_itl_interval_set_shared_h_JOFA_080920__
 #define __test_itl_interval_set_shared_h_JOFA_080920__
 
+
 template <template< class T,
                     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, T),
                     template<class,ITL_COMPARE>class Interval = interval,
@@ -246,7 +247,7 @@
     T v5 = make<T>(5);
 
     size_T s3 = make<size_T>(3);
- diff_T d0 = make<diff_T>(0);
+
 
     IntervalSet<T> is_1_3_5;
     is_1_3_5.add(v1).add(v3).add(v5);
@@ -269,14 +270,12 @@
     typedef typename IntervalSet<T>::size_type size_T;
     typedef typename IntervalSet<T>::difference_type diff_T;
     T v1 = make<T>(1);
- T v2 = make<T>(2);
     T v3 = make<T>(3);
     T v5 = make<T>(5);
 
     size_T s3 = make<size_T>(3);
     diff_T d0 = make<diff_T>(0);
     diff_T d2 = make<diff_T>(2);
- diff_T d3 = make<diff_T>(3);
 
     IntervalSet<T> is_1_3_5;
     is_1_3_5.add(v1).add(v3).add(v5);
@@ -287,8 +286,7 @@
     BOOST_CHECK_EQUAL( is_1_3_5.interval_count(), 3 );
     BOOST_CHECK_EQUAL( is_1_3_5.iterative_size(), 3 );
 
- size_T s4 = make<size_T>(4);
- diff_T d4 = make<diff_T>(4);
+
 
     IntervalSet<T> is_123_5;
     is_123_5 = is_1_3_5;
@@ -484,8 +482,6 @@
     T v1 = make<T>(1);
     T v2 = make<T>(2);
     T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
     T v6 = make<T>(6);
     T v7 = make<T>(7);
     T v8 = make<T>(8);
@@ -546,6 +542,7 @@
     BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
 }
 
+
 template <template< class T,
                     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, T),
                     template<class,ITL_COMPARE>class Interval = interval,
@@ -561,16 +558,21 @@
     //[0 2)
     // [1 3)
     //[0 1) [2 3) : {[0 2)} ^= [2 3)
- BOOST_CHECK_EQUAL(ISet(I_D(0,2)) ^= I_D(1,3), ISet(I_D(0,1)) + I_D(2,3));
+ //gcc seed ambiguities with std::_Ios_Iostate& std::operator^= here:
+ // BOOST_CHECK_EQUAL(ISet(I_D(0,2)) ^= I_D(1,3), ISet(I_D(0,1)) + I_D(2,3));
+ set_a = ISet(I_D(0,2));
+ BOOST_CHECK_EQUAL(set_a ^= I_D(1,3), ISet(I_D(0,1)) + I_D(2,3));
 
     // [1 3)
     //[0 2)
     //[0 1) [2 3) : {[1 3)} ^= [0 2)
- BOOST_CHECK_EQUAL(ISet(I_D(1,3)) ^= I_D(0,2), ISet(I_D(0,1)) + I_D(2,3));
+ set_a = ISet(I_D(1,3));
+ BOOST_CHECK_EQUAL(set_a ^= I_D(0,2), ISet(I_D(0,1)) + I_D(2,3));
 
     //[0 2) (3 5]
     // [1 3)
     //[0 1) [2 3) (3 5] : a ^= b
+ set_a.clear();
     set_a.add(I_D(0,2)).add(C_I(3,5));
     set_b.add(I_D(1,3));
     lhs = set_a;
@@ -579,6 +581,7 @@
     BOOST_CHECK_EQUAL(lhs, rhs);
 }
 
+
 template <template< class T,
                     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, T),
                     template<class,ITL_COMPARE>class Interval = interval,
@@ -595,11 +598,12 @@
     set_b.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
 
     BOOST_CHECK_EQUAL(set_a + set_b, set_b + set_a);
- //This checks all cases of is_interval_set_derivative<T>
+ // This checks all cases of is_interval_set_derivative<T>
     BOOST_CHECK_EQUAL(set_a + itv, itv + set_a);
     BOOST_CHECK_EQUAL(set_b + MK_v(4), MK_v(4) + set_b);
 }
 
+
 template <template< class T,
                     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, T),
                     template<class,ITL_COMPARE>class Interval = interval,
@@ -622,6 +626,7 @@
 }
 
 
+
 template <template< class T,
                     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, T),
                     template<class,ITL_COMPARE>class Interval = interval,
@@ -666,6 +671,7 @@
 }
 
 
+
 template <template< class T,
                     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, T),
                     template<class,ITL_COMPARE>class Interval = interval,
@@ -688,6 +694,7 @@
 }
 
 
+
 template <template< class T,
                     ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, T),
                     template<class,ITL_COMPARE>class Interval = interval,
@@ -702,7 +709,7 @@
     IntervalSetT set_a;
     set_a.add(C_D(1,3)).add(I_I(6,11));
 
- IntervalSetT::const_iterator found = set_a.find(MK_v(6));
+ typename IntervalSetT::const_iterator found = set_a.find(MK_v(6));
 
     BOOST_CHECK_EQUAL( *found, I_I(6,11) );
 

Modified: sandbox/itl/libs/itl/test/test_itl_map.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_map.hpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_map.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -33,7 +33,7 @@
     MapT map_a;
     Interval::atomize(map_a, itv_map_a);
 
- MapT::const_iterator found = map_a.find(MK_v(6));
+ typename MapT::const_iterator found = map_a.find(MK_v(6));
 
     BOOST_CHECK_EQUAL( found->CONT_VALUE, MK_u(3) );
     BOOST_CHECK_EQUAL( map_a(MK_v(6)), MK_u(3) );

Modified: sandbox/itl/libs/itl/test/test_itl_map/test_itl_map.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_map/test_itl_map.cpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_map/test_itl_map.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -30,9 +30,7 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_itl_map.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_map{,_split}_shared.cpp is generated through code
-// replication.
-#include "test_itl_map_shared.cpp"
+#define INTERVAL_MAP interval_map
+#include "test_itl_map_cases.hpp"
 
 

Added: sandbox/itl/libs/itl/test/test_itl_map/test_itl_map_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_itl_map/test_itl_map_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,12 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_map_find_4_bicremental_types, T, discrete_types)
+{ itl_map_find_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+

Deleted: sandbox/itl/libs/itl/test/test_itl_map/test_itl_map_shared.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_map/test_itl_map_shared.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
+++ (empty file)
@@ -1,12 +0,0 @@
-/*-----------------------------------------------------------------------------+
-Copyright (c) 2008-2009: Joachim Faulhaber
-+------------------------------------------------------------------------------+
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENCE.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-+-----------------------------------------------------------------------------*/
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_itl_map_find_4_bicremental_types, T, discrete_types)
-{ itl_map_find_4_bicremental_types<T, int, partial_absorber, interval_map>();}
-

Modified: sandbox/itl/libs/itl/test/test_laws.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_laws.hpp (original)
+++ sandbox/itl/libs/itl/test/test_laws.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -8,6 +8,10 @@
 #ifndef __test_itl_laws_h_JOFA_090119__
 #define __test_itl_laws_h_JOFA_090119__
 
+#include <boost/itl/type_traits/neutron.hpp>
+
+namespace boost{namespace itl
+{
 
 template<class Type>
 struct equality : std::binary_function<Type,Type,bool>
@@ -226,7 +230,7 @@
 #define DEFINE_MONOID_CHECK_WRT(op_tag) \
 template<class Type, class TypeB, class TypeC> \
 void check_monoid_wrt_##op_tag \
-(typename const Type& neutron, \
+(const Type& neutron, \
 const Type& a, const TypeB& b, const TypeC& c) \
 { \
     CHECK_ASSOCIATIVITY_WRT(op_tag)(a,b,c); \
@@ -263,7 +267,7 @@
 #define DEFINE_ABELIAN_MONOID_CHECK_WRT(op_tag) \
 template<class Type, class TypeB, class TypeC> \
 void check_abelian_monoid_wrt_##op_tag \
-(typename const Type& neutron, \
+(const Type& neutron, \
 const Type& a, const TypeB& b, const TypeC& c) \
 { \
     CHECK_ASSOCIATIVITY_WRT(op_tag)(a,b,c); \
@@ -300,7 +304,7 @@
 #define DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT(op_tag) \
 template<class Type, class TypeB, class TypeC> \
 void check_partial_invertive_monoid_wrt_##op_tag \
-(typename const Type& neutron, \
+(const Type& neutron, \
 const Type& a, const TypeB& b, const TypeC& c) \
 { \
     CHECK_ABELIAN_MONOID_WRT(op_tag)(neutron,a,b,c); \
@@ -361,10 +365,10 @@
 void check_monoid_permuted_wrt_equal_##op_tag \
 (typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
 { \
- CHECK_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeA>::value(), var_a, var_b, assoc);\
- CHECK_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeA>::value(), var_a, assoc, var_b);\
- CHECK_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeB>::value(), var_b, var_a, assoc);\
- CHECK_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeB>::value(), var_b, assoc, var_a);\
+ CHECK_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeB>::value(), var_b, assoc, var_a);\
 }
 
 #define DEFINE_MONOID_CHECK_PERMUTED_WRT(op_tag) \
@@ -372,10 +376,10 @@
 void check_monoid_permuted_wrt_##op_tag \
 (const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
 { \
- CHECK_MONOID_WRT(op_tag)(neutron<TypeA>::value(), var_a, var_b, assoc);\
- CHECK_MONOID_WRT(op_tag)(neutron<TypeA>::value(), var_a, assoc, var_b);\
- CHECK_MONOID_WRT(op_tag)(neutron<TypeB>::value(), var_b, var_a, assoc);\
- CHECK_MONOID_WRT(op_tag)(neutron<TypeB>::value(), var_b, assoc, var_a);\
+ CHECK_MONOID_WRT(op_tag)(itl::neutron<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_MONOID_WRT(op_tag)(itl::neutron<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_MONOID_WRT(op_tag)(itl::neutron<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_MONOID_WRT(op_tag)(itl::neutron<TypeB>::value(), var_b, assoc, var_a);\
 }
 
 
@@ -401,10 +405,10 @@
 void check_abelian_monoid_permuted_wrt_equal_##op_tag \
 (typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
 { \
- CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeA>::value(), var_a, var_b, assoc);\
- CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeA>::value(), var_a, assoc, var_b);\
- CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeB>::value(), var_b, var_a, assoc);\
- CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeB>::value(), var_b, assoc, var_a);\
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeB>::value(), var_b, assoc, var_a);\
 }
 
 #define DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT(op_tag) \
@@ -412,10 +416,10 @@
 void check_abelian_monoid_permuted_wrt_##op_tag \
 (const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
 { \
- CHECK_ABELIAN_MONOID_WRT(op_tag)(neutron<TypeA>::value(), var_a, var_b, assoc);\
- CHECK_ABELIAN_MONOID_WRT(op_tag)(neutron<TypeA>::value(), var_a, assoc, var_b);\
- CHECK_ABELIAN_MONOID_WRT(op_tag)(neutron<TypeB>::value(), var_b, var_a, assoc);\
- CHECK_ABELIAN_MONOID_WRT(op_tag)(neutron<TypeB>::value(), var_b, assoc, var_a);\
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(itl::neutron<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(itl::neutron<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(itl::neutron<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(itl::neutron<TypeB>::value(), var_b, assoc, var_a);\
 }
 
 
@@ -441,10 +445,10 @@
 void check_partial_invertive_monoid_permuted_wrt_equal_##op_tag \
 (typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
 { \
- CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeA>::value(), var_a, var_b, assoc);\
- CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeA>::value(), var_a, assoc, var_b);\
- CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeB>::value(), var_b, var_a, assoc);\
- CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, neutron<TypeB>::value(), var_b, assoc, var_a);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeB>::value(), var_b, assoc, var_a);\
 }
 
 #define DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT(op_tag) \
@@ -452,10 +456,10 @@
 void check_partial_invertive_monoid_permuted_wrt_##op_tag \
 (const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
 { \
- CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(neutron<TypeA>::value(), var_a, var_b, assoc);\
- CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(neutron<TypeA>::value(), var_a, assoc, var_b);\
- CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(neutron<TypeB>::value(), var_b, var_a, assoc);\
- CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(neutron<TypeB>::value(), var_b, assoc, var_a);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(itl::neutron<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(itl::neutron<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(itl::neutron<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(itl::neutron<TypeB>::value(), var_b, assoc, var_a);\
 }
 
 
@@ -481,10 +485,10 @@
     void check_abelian_group_permuted_wrt_equal_##op_tag \
 (typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
 { \
- CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, neutron<TypeA>::value(), var_a, var_b, assoc);\
- CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, neutron<TypeA>::value(), var_a, assoc, var_b);\
- CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, neutron<TypeB>::value(), var_b, var_a, assoc);\
- CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, neutron<TypeB>::value(), var_b, assoc, var_a);\
+ CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, itl::neutron<TypeB>::value(), var_b, assoc, var_a);\
 }
 
 #define DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT(op_tag) \
@@ -492,10 +496,10 @@
     void check_abelian_group_permuted_wrt_##op_tag \
 (const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
 { \
- CHECK_ABELIAN_GROUP_WRT(op_tag)(neutron<TypeA>::value(), var_a, var_b, assoc);\
- CHECK_ABELIAN_GROUP_WRT(op_tag)(neutron<TypeA>::value(), var_a, assoc, var_b);\
- CHECK_ABELIAN_GROUP_WRT(op_tag)(neutron<TypeB>::value(), var_b, var_a, assoc);\
- CHECK_ABELIAN_GROUP_WRT(op_tag)(neutron<TypeB>::value(), var_b, assoc, var_a);\
+ CHECK_ABELIAN_GROUP_WRT(op_tag)(itl::neutron<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_ABELIAN_GROUP_WRT(op_tag)(itl::neutron<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_ABELIAN_GROUP_WRT(op_tag)(itl::neutron<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_ABELIAN_GROUP_WRT(op_tag)(itl::neutron<TypeB>::value(), var_b, assoc, var_a);\
 }
 
 
@@ -660,7 +664,7 @@
 #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
 
-
+}} // namespace itl boost
 
 #endif // __test_itl_laws_h_JOFA_080920__
 

Added: sandbox/itl/libs/itl/test/test_partial_interval_quantifier/test_partial_interval_quantifier.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_partial_interval_quantifier/test_partial_interval_quantifier.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_set unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_laws.hpp"
+
+#include <boost/itl/interval_map.hpp>
+#include <boost/itl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_partial_interval_quantifier_cases.hpp"
+
+

Added: sandbox/itl/libs/itl/test/test_partial_interval_quantifier/vc9_test_partial_interval_quantifier.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_partial_interval_quantifier/vc9_test_partial_interval_quantifier.vcproj 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_partial_interval_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}"
+ RootNamespace="Test_partial_interval_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_partial_interval_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_partial_interval_quantifier_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/itl/libs/itl/test/test_partial_interval_quantifier_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_partial_interval_quantifier_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,61 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+
+//------------------------------------------------------------------------------
+// partial_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_quantifier_map_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_monoid_plus_4_bicremental_types<T, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_quantifier_map_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_quantifier_map_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<T, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_quantifier_map_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+// x - x = 0 | partial absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_quantifier_map_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_partial_invertive_monoid_plus_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// partial_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_quantifier_map_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_monoid_plus_4_bicremental_types<T, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_quantifier_map_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_quantifier_map_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<T, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_quantifier_map_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+// x - x =p= 0 | partial enricher
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_quantifier_map_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+// absorber enricher
+// partial x - x == 0 x - x =p= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =p= 0 totality of subtraction
+

Modified: sandbox/itl/libs/itl/test/test_quantifier_itl_map.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_quantifier_itl_map.hpp (original)
+++ sandbox/itl/libs/itl/test/test_quantifier_itl_map.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -37,8 +37,8 @@
     Interval::atomize(map_b, itv_map_b);
     Interval::atomize(map_c, itv_map_c);
 
- MapT::value_type map_pair1 = sK_v(5,1);
- MapT::value_type map_pair2 = sK_v(9,3);
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
 
     CHECK_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
     CHECK_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
@@ -70,8 +70,8 @@
     Interval::atomize(map_b, itv_map_b);
     Interval::atomize(map_c, itv_map_c);
 
- MapT::value_type map_pair1 = sK_v(5,1);
- MapT::value_type map_pair2 = sK_v(9,3);
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
 
     CHECK_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, map_pair1, map_pair2);
     CHECK_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, map_pair1, map_pair2);
@@ -106,8 +106,8 @@
     Interval::atomize(map_b, itv_map_b);
     Interval::atomize(map_c, itv_map_c);
 
- MapT::value_type map_pair1 = sK_v(5,1);
- MapT::value_type map_pair2 = sK_v(9,3);
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
 
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
@@ -139,8 +139,8 @@
     Interval::atomize(map_b, itv_map_b);
     Interval::atomize(map_c, itv_map_c);
 
- MapT::value_type map_pair1 = sK_v(5,1);
- MapT::value_type map_pair2 = sK_v(9,3);
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
 
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, map_pair1, map_pair2);
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, map_pair1, map_pair2);
@@ -175,8 +175,8 @@
     Interval::atomize(map_b, itv_map_b);
     Interval::atomize(map_c, itv_map_c);
 
- MapT::value_type map_pair1 = sK_v(5,1);
- MapT::value_type map_pair2 = sK_v(9,3);
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
 
     CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
     CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
@@ -210,8 +210,8 @@
     Interval::atomize(map_b, itv_map_b);
     Interval::atomize(map_c, itv_map_c);
 
- MapT::value_type map_pair1 = sK_v(5,1);
- MapT::value_type map_pair2 = sK_v(9,3);
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
 
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus)(map_a, map_b, map_c, map_pair1, map_pair2);
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe)(map_a, map_b, map_c, map_pair1, map_pair2);
@@ -249,8 +249,8 @@
     Interval::atomize(map_b, itv_map_b);
     Interval::atomize(map_c, itv_map_c);
 
- MapT::value_type map_pair1 = sK_v(5,1);
- MapT::value_type map_pair2 = sK_v(9,3);
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
 
     CHECK_ABELIAN_GROUP_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
     CHECK_ABELIAN_GROUP_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
@@ -284,8 +284,8 @@
     Interval::atomize(map_b, itv_map_b);
     Interval::atomize(map_c, itv_map_c);
 
- MapT::value_type map_pair1 = sK_v(5,1);
- MapT::value_type map_pair2 = sK_v(9,3);
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
 
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);

Modified: sandbox/itl/libs/itl/test/test_quantifier_itl_map/test_quantifier_itl_map.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_quantifier_itl_map/test_quantifier_itl_map.cpp (original)
+++ sandbox/itl/libs/itl/test/test_quantifier_itl_map/test_quantifier_itl_map.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -30,9 +30,6 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_quantifier_itl_map.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_map{,_split}_shared.cpp is generated through code
-// replication.
 #include "test_quantifier_itl_map_shared.cpp"
 
 

Modified: sandbox/itl/libs/itl/test/test_separate_interval_set/test_separate_interval_set.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_separate_interval_set/test_separate_interval_set.cpp (original)
+++ sandbox/itl/libs/itl/test/test_separate_interval_set/test_separate_interval_set.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -27,9 +27,7 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_interval_set_shared.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_set{,_separate,split}_shared.cpp are generated through code
-// replication.
-#include "test_separate_interval_set_shared.cpp"
+#define INTERVAL_SET separate_interval_set
+#include "../test_interval_set_cases.hpp"
 
 

Deleted: sandbox/itl/libs/itl/test/test_separate_interval_set/test_separate_interval_set_shared.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_separate_interval_set/test_separate_interval_set_shared.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
+++ (empty file)
@@ -1,69 +0,0 @@
-/*-----------------------------------------------------------------------------+
-Copyright (c) 2008-2009: Joachim Faulhaber
-+------------------------------------------------------------------------------+
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENCE.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-+-----------------------------------------------------------------------------*/
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
-{ interval_set_fundamentals_4_ordered_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
-{ interval_set_ctor_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
-{ interval_set_add_sub_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
-{ interval_set_distinct_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_set_distinct_4_bicremental_continuous_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_set_isolate_4_bicremental_continuous_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
-{ interval_set_element_compare_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_contains_4_bicremental_types, T, bicremental_types)
-{ interval_set_contains_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_operators_4_bicremental_types, T, bicremental_types)
-{ interval_set_operators_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
-{ interval_set_base_intersect_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_plus_overload_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_pipe_overload_4_bicremental_types<separate_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_et_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_et_overload_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_caret_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_caret_overload_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_find_4_bicremental_types, T, bicremental_types)
-{ interval_set_find_4_bicremental_types<interval_set, T>();}
-
-

Added: sandbox/itl/libs/itl/test/test_separate_interval_set_infix/test_separate_interval_set_infix.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_separate_interval_set_infix/test_separate_interval_set_infix.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,33 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_set unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/separate_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET separate_interval_set
+#include "../test_interval_set_infix_cases.hpp"
+
+

Added: sandbox/itl/libs/itl/test/test_separate_interval_set_infix/vc9_test_separate_interval_set_infix.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_separate_interval_set_infix/vc9_test_separate_interval_set_infix.vcproj 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_separate_interval_set_infix"
+ ProjectGUID="{A731623C-94BC-4666-A419-35D2623E950E}"
+ RootNamespace="test_separate_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_separate_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_separate_interval_set_infix_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Modified: sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set.cpp (original)
+++ sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -31,9 +31,6 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_set_interval_set_shared.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_map{,_split}_shared.cpp is generated through code
-// replication.
-#include "test_set_interval_set_shared.cpp"
+#include "test_set_interval_set_cases.hpp"
 
 

Added: sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,67 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// separate_interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_separate_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_separate_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_separate_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_separate_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// split_interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_split_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<T, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_split_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_split_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_split_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, split_interval_set>();}
+

Deleted: sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set_shared.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_inerval_set/test_set_interval_set_shared.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
+++ (empty file)
@@ -1,68 +0,0 @@
-/*-----------------------------------------------------------------------------+
-Copyright (c) 2008-2009: Joachim Faulhaber
-+------------------------------------------------------------------------------+
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENCE.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-+-----------------------------------------------------------------------------*/
-
-//------------------------------------------------------------------------------
-// interval_set
-//------------------------------------------------------------------------------
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_monoid_plus_4_bicremental_types<T, interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
-
-
-//------------------------------------------------------------------------------
-// separate_interval_set
-//------------------------------------------------------------------------------
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_separate_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_separate_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_separate_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, separate_interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_separate_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
-
-
-//------------------------------------------------------------------------------
-// split_interval_set
-//------------------------------------------------------------------------------
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_split_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_monoid_plus_4_bicremental_types<T, split_interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_split_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, split_interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_split_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, split_interval_set>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_split_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
-{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, split_interval_set>();}
-
-

Modified: sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -37,10 +37,7 @@
 
 template <class T,
           template<class T,
- class Traits = Trt,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
- ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
- ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
                    template<class,ITL_COMPARE>class Interval = interval,
                    ITL_ALLOC Alloc = std::allocator
>class IntervalSet

Modified: sandbox/itl/libs/itl/test/test_set_itl_set.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_itl_set.hpp (original)
+++ sandbox/itl/libs/itl/test/test_set_itl_set.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -44,10 +44,7 @@
 
 template <class T,
           template<class T,
- class Traits = Trt,
                    ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, U),
- ITL_COMBINE Combine = ITL_COMBINE_INSTANCE(itl::inplace_plus, U),
- ITL_SECTION Section = ITL_SECTION_INSTANCE(itl::inplace_et, U),
                    template<class,ITL_COMPARE>class Interval = interval,
                    ITL_ALLOC Alloc = std::allocator
>class IntervalSet

Modified: sandbox/itl/libs/itl/test/test_set_itl_set/test_set_itl_set.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_itl_set/test_set_itl_set.cpp (original)
+++ sandbox/itl/libs/itl/test/test_set_itl_set/test_set_itl_set.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -31,9 +31,6 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_set_itl_set.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_map{,_split}_shared.cpp is generated through code
-// replication.
-#include "test_set_itl_set_shared.cpp"
+#include "test_set_itl_set_cases.hpp"
 
 

Added: sandbox/itl/libs/itl/test/test_set_itl_set/test_set_itl_set_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_set_itl_set/test_set_itl_set_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,30 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<T, interval_set>();}
+ //MEMO: interval_set
+// is used here pragmatically to be able to recycle test code for initializing
+// sets. These interval_set are then converted to itl::set by atomize.
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_et_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
+

Added: sandbox/itl/libs/itl/test/test_set_itl_set_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_set_itl_set_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,25 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<T, INTERVAL_SET>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<T, INTERVAL_SET>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_et_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<T, INTERVAL_SET>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, INTERVAL_SET>();}
+

Modified: sandbox/itl/libs/itl/test/test_split_interval_map/test_split_interval_map.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_split_interval_map/test_split_interval_map.cpp (original)
+++ sandbox/itl/libs/itl/test/test_split_interval_map/test_split_interval_map.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -29,9 +29,7 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_interval_map_shared.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_map{,_split}_shared.cpp is generated through code
-// replication.
-#include "test_split_interval_map_shared.cpp"
+#define INTERVAL_MAP split_interval_map
+#include "../test_interval_map_cases.hpp"
 
 

Modified: sandbox/itl/libs/itl/test/test_split_interval_set/test_split_interval_set.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_split_interval_set/test_split_interval_set.cpp (original)
+++ sandbox/itl/libs/itl/test/test_split_interval_set/test_split_interval_set.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -27,9 +27,7 @@
 // interval_sets: interval_set, separate_interval_set and split_interval_set.
 #include "../test_interval_set_shared.hpp"
 
-// Due to limited expressiveness of the testing framework, the testcode in files
-// test_interval_set{,_separate,split}_shared.cpp are generated through code
-// replication.
-#include "test_split_interval_set_shared.cpp"
+#define INTERVAL_SET split_interval_set
+#include "../test_interval_set_cases.hpp"
 
 

Modified: sandbox/itl/libs/itl/test/test_split_interval_set/test_split_interval_set_shared.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_split_interval_set/test_split_interval_set_shared.cpp (original)
+++ sandbox/itl/libs/itl/test/test_split_interval_set/test_split_interval_set_shared.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -5,65 +5,52 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
-{ interval_set_fundamentals_4_ordered_types<split_interval_set, T>();}
+{ interval_set_fundamentals_4_ordered_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
-{ interval_set_ctor_4_bicremental_types<split_interval_set, T>();}
+{ interval_set_ctor_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
-{ interval_set_add_sub_4_bicremental_types<split_interval_set, T>();}
+{ interval_set_add_sub_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
-{ interval_set_distinct_4_bicremental_types<split_interval_set, T>();}
+{ interval_set_distinct_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_set_distinct_4_bicremental_continuous_types<split_interval_set, T>();}
+{ interval_set_distinct_4_bicremental_continuous_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_set_isolate_4_bicremental_continuous_types<split_interval_set, T>();}
+{ interval_set_isolate_4_bicremental_continuous_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
-{ interval_set_element_compare_4_bicremental_types<split_interval_set, T>();}
+{ interval_set_element_compare_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_contains_4_bicremental_types, T, bicremental_types)
-{ interval_set_contains_4_bicremental_types<split_interval_set, T>();}
+{ interval_set_contains_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_operators_4_bicremental_types, T, bicremental_types)
-{ interval_set_operators_4_bicremental_types<split_interval_set, T>();}
+{ interval_set_operators_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
-{ interval_set_base_intersect_4_bicremental_types<split_interval_set, T>();}
+{ interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_plus_overload_4_bicremental_types<split_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_pipe_overload_4_bicremental_types<split_interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_et_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_et_overload_4_bicremental_types<interval_set, T>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_set_infix_caret_overload_4_bicremental_types, T, bicremental_types)
-{ interval_set_infix_caret_overload_4_bicremental_types<interval_set, T>();}
+{ interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_find_4_bicremental_types, T, bicremental_types)
-{ interval_set_find_4_bicremental_types<interval_set, T>();}
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, T>();}
 
 

Added: sandbox/itl/libs/itl/test/test_split_interval_set_infix/test_split_interval_set_infix.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_split_interval_set_infix/test_split_interval_set_infix.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,33 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_set unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET split_interval_set
+#include "../test_interval_set_infix_cases.hpp"
+
+

Added: sandbox/itl/libs/itl/test/test_split_interval_set_infix/vc9_test_split_interval_set_infix.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_split_interval_set_infix/vc9_test_split_interval_set_infix.vcproj 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_split_interval_set_infix"
+ ProjectGUID="{A731623C-94BC-4666-A419-35D3623E950E}"
+ RootNamespace="test_split_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_split_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_split_interval_set_infix_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/itl/libs/itl/test/test_total_interval_quantifier/test_total_interval_quantifier.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_total_interval_quantifier/test_total_interval_quantifier.cpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_set unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_laws.hpp"
+
+#include <boost/itl/interval_map.hpp>
+#include <boost/itl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_total_interval_quantifier_cases.hpp"
+
+

Added: sandbox/itl/libs/itl/test/test_total_interval_quantifier/vc9_test_total_interval_quantifier.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_total_interval_quantifier/vc9_test_total_interval_quantifier.vcproj 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_total_interval_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}"
+ RootNamespace="Test_total_interval_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_total_interval_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_total_interval_quantifier_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,61 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+
+//------------------------------------------------------------------------------
+// total_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_quantifier_map_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_monoid_plus_4_bicremental_types<T, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_quantifier_map_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_quantifier_map_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<T, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_quantifier_map_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+
+// (0-x) + x = 0 | total absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_group_plus_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+//------------------------------------------------------------------------------
+// total_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_quantifier_map_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_monoid_plus_4_bicremental_types<T, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_quantifier_map_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_monoid_et_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_quantifier_map_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<T, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_quantifier_map_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+
+// (0-x) + x =p= 0 | total absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types, T, bicremental_types)
+{ quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+
+
+// absorber enricher
+// partial x - x == 0 x - x =p= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =p= 0 totality of subtraction
+

Modified: sandbox/itl/libs/itl/test/test_type_lists.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_type_lists.hpp (original)
+++ sandbox/itl/libs/itl/test/test_type_lists.hpp 2009-03-03 03:39:14 EST (Tue, 03 Mar 2009)
@@ -29,8 +29,8 @@
 
 //DBG short list for debugging
 typedef ::boost::mpl::list<
- float
-> debug_type_list;
+ int
+> debug_types;
 
 typedef ::boost::mpl::list<
     float, double


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