Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r69071 - in trunk: boost/icl boost/icl/concept boost/icl/type_traits libs/icl libs/icl/doc libs/icl/test libs/icl/test/fastest_split_interval_map_ libs/icl/test/fix_include_after_thread_ libs/icl/test/test_casual_
From: afojgo_at_[hidden]
Date: 2011-02-19 19:14:35


Author: jofaber
Date: 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
New Revision: 69071
URL: http://svn.boost.org/trac/boost/changeset/69071

Log:
Bug fixes: Fixed enable_if guards for functions intersects, disjoint for domain and interval types and for lower, upper, first and last on interval containers. Added tests to the icl test suite.
Properties modified:
   trunk/boost/icl/ (props changed)
   trunk/libs/icl/ (props changed)
   trunk/libs/icl/doc/ (props changed)
Text files modified:
   trunk/boost/icl/concept/interval_associator.hpp | 47 +++++++++++++++++-------------
   trunk/boost/icl/concept/interval_map.hpp | 6 +-
   trunk/boost/icl/type_traits/is_numeric.hpp | 9 +++++
   trunk/libs/icl/test/fastest_interval_map_cases.hpp | 4 ++
   trunk/libs/icl/test/fastest_interval_set_cases.hpp | 8 +++++
   trunk/libs/icl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj | 4 ++
   trunk/libs/icl/test/fix_include_after_thread_/fix_include_after_thread.cpp | 4 +-
   trunk/libs/icl/test/test_casual_/test_casual.cpp | 61 ++++++++++++++++++++++++++++++++++++++++
   trunk/libs/icl/test/test_interval_map_shared.hpp | 46 ++++++++++++++++++++++++++++++
   trunk/libs/icl/test/test_interval_set_cases.hpp | 9 +++++
   trunk/libs/icl/test/test_interval_set_shared.hpp | 54 +++++++++++++++++++++++++++++++++++
   trunk/libs/icl/test/test_type_lists.hpp | 40 ++++++++++++++++++++++++-
   trunk/libs/icl/test/vc9_icl_slow_tests.sln | 6 +++
   13 files changed, 270 insertions(+), 28 deletions(-)

Modified: trunk/boost/icl/concept/interval_associator.hpp
==============================================================================
--- trunk/boost/icl/concept/interval_associator.hpp (original)
+++ trunk/boost/icl/concept/interval_associator.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -220,23 +220,25 @@
 
 template<class Type>
 typename enable_if<is_interval_container<Type>,
- typename Type::interval_type>::type
+ typename domain_type_of<Type>::type>::type
 lower(const Type& object)
 {
+ typedef typename domain_type_of<Type>::type DomainT;
     return
         icl::is_empty(object)
- ? identity_element<typename Type::interval_type>::value()
+ ? unit_element<DomainT>::value()
             : icl::lower( key_value<Type>(object.begin()) );
 }
 
 template<class Type>
 typename enable_if<is_interval_container<Type>,
- typename Type::interval_type>::type
+ typename domain_type_of<Type>::type>::type
 upper(const Type& object)
 {
+ typedef typename domain_type_of<Type>::type DomainT;
     return
         icl::is_empty(object)
- ? identity_element<typename Type::interval_type>::value()
+ ? identity_element<DomainT>::value()
             : icl::upper( key_value<Type>(object.rbegin()) );
 }
 
@@ -244,26 +246,28 @@
 template<class Type>
 typename enable_if
 < mpl::and_< is_interval_container<Type>
- , is_discrete<typename Type::domain_type> >
-, typename Type::interval_type>::type
+ , is_discrete<typename domain_type_of<Type>::type> >
+, typename domain_type_of<Type>::type>::type
 first(const Type& object)
 {
+ typedef typename domain_type_of<Type>::type DomainT;
     return
         icl::is_empty(object)
- ? identity_element<typename Type::interval_type>::value()
+ ? unit_element<DomainT>::value()
             : icl::first( key_value<Type>(object.begin()) );
 }
 
 template<class Type>
 typename enable_if
 < mpl::and_< is_interval_container<Type>
- , is_discrete<typename Type::domain_type> >
-, typename Type::interval_type>::type
+ , is_discrete<typename domain_type_of<Type>::type> >
+, typename domain_type_of<Type>::type>::type
 last(const Type& object)
 {
+ typedef typename domain_type_of<Type>::type DomainT;
     return
         icl::is_empty(object)
- ? identity_element<typename Type::interval_type>::value()
+ ? identity_element<DomainT>::value()
             : icl::last( key_value<Type>(object.rbegin()) );
 }
 
@@ -646,7 +650,7 @@
 //------------------------------------------------------------------------------
 template<class Type, class CoType>
 typename enable_if<mpl::and_< is_interval_container<Type>
- , is_same<CoType, domain_type_of<Type> > >,
+ , is_same<CoType, typename domain_type_of<Type>::type> >,
                    bool>::type
 intersects(const Type& left, const CoType& right)
 {
@@ -655,13 +659,14 @@
 
 template<class Type, class CoType>
 typename enable_if<mpl::and_< is_interval_container<Type>
- , is_same<CoType, interval_type_of<Type> > >,
+ , is_same<CoType, typename interval_type_of<Type>::type> >,
                    bool>::type
 intersects(const Type& left, const CoType& right)
 {
     return left.find(right) != left.end();
 }
 
+
 template<class LeftT, class RightT>
 typename enable_if< mpl::and_< is_intra_combinable<LeftT, RightT>
                              , mpl::or_<is_total<LeftT>, is_total<RightT> > >
@@ -720,14 +725,15 @@
     return false;
 }
 
-template<class Type, class AssociateT>
-typename enable_if<mpl::and_< is_interval_map<Type>
- , is_inter_derivative<Type, AssociateT> >,
- bool>::type
-intersects(const Type& left, const AssociateT& right)
-{
- return icl::intersects(left, right);
-}
+//CL?
+//template<class Type, class AssociateT>
+//typename enable_if<mpl::and_< is_interval_map<Type>
+// , is_inter_derivative<Type, AssociateT> >,
+// bool>::type
+//intersects(const Type& left, const AssociateT& right)
+//{
+// return icl::intersects(left, right);
+//}
 
 /** \b Returns true, if \c left and \c right have no common elements.
     Intervals are interpreted as sequence of elements.
@@ -750,6 +756,7 @@
     return !intersects(left,right);
 }
 
+
 //==============================================================================
 //= Symmetric difference<IntervalSet|IntervalSet>
 //==============================================================================

Modified: trunk/boost/icl/concept/interval_map.hpp
==============================================================================
--- trunk/boost/icl/concept/interval_map.hpp (original)
+++ trunk/boost/icl/concept/interval_map.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -433,7 +433,7 @@
 template<class Type, class OperandT>
 typename enable_if<mpl::and_< is_interval_map<Type>
                             , is_total<Type>
- , is_same<OperandT, segment_type_of<Type> > >,
+ , is_same<OperandT, typename segment_type_of<Type>::type> >,
                    bool>::type
 intersects(const Type&, const OperandT&)
 {
@@ -443,7 +443,7 @@
 template<class Type, class OperandT>
 typename enable_if<mpl::and_< is_interval_map<Type>
                             , mpl::not_<is_total<Type> >
- , is_same<OperandT, segment_type_of<Type> > >,
+ , is_same<OperandT, typename segment_type_of<Type>::type> >,
                    bool>::type
 intersects(const Type& object, const OperandT& operand)
 {
@@ -454,7 +454,7 @@
 
 template<class Type, class OperandT>
 typename enable_if<mpl::and_< is_interval_map<Type>
- , is_same<OperandT, element_type_of<Type> > >,
+ , is_same<OperandT, typename element_type_of<Type>::type> >,
                    bool>::type
 intersects(const Type& object, const OperandT& operand)
 {

Modified: trunk/boost/icl/type_traits/is_numeric.hpp
==============================================================================
--- trunk/boost/icl/type_traits/is_numeric.hpp (original)
+++ trunk/boost/icl/type_traits/is_numeric.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -14,10 +14,17 @@
 namespace boost{ namespace icl
 {
 
+template <class Type> struct is_fixed_numeric
+{
+ typedef is_fixed_numeric type;
+ BOOST_STATIC_CONSTANT(bool, value = (0 < std::numeric_limits<Type>::digits));
+};
+
 template <class Type> struct is_numeric
 {
     typedef is_numeric type;
- BOOST_STATIC_CONSTANT(bool, value = (0 < std::numeric_limits<Type>::digits));
+ BOOST_STATIC_CONSTANT(bool, value =
+ (mpl::or_<is_fixed_numeric<Type>, is_integral<Type> >::value) );
 };
 
 template <class Type>

Modified: trunk/libs/icl/test/fastest_interval_map_cases.hpp
==============================================================================
--- trunk/libs/icl/test/fastest_interval_map_cases.hpp (original)
+++ trunk/libs/icl/test/fastest_interval_map_cases.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -79,6 +79,10 @@
 (fastest_icl_interval_map_element_iter_4_discrete_types)
 { interval_map_element_iter_4_discrete_types<discrete_type_2, int, partial_absorber, INTERVAL_MAP>();}
 
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_intersects_4_bicremental_types)
+{ interval_map_intersects_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
 
 #endif // BOOST_ICL_FASTEST_INTERVAL_MAP_CASES_HPP_JOFA_090702
 

Modified: trunk/libs/icl/test/fastest_interval_set_cases.hpp
==============================================================================
--- trunk/libs/icl/test/fastest_interval_set_cases.hpp (original)
+++ trunk/libs/icl/test/fastest_interval_set_cases.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -60,6 +60,14 @@
 (fastest_icl_interval_set_element_iter_4_discrete_types)
 { interval_set_element_iter_4_discrete_types<INTERVAL_SET, discrete_type_2>();}
 
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_intersects_4_bicremental_types)
+{ interval_set_intersects_4_bicremental_types<INTERVAL_SET, bicremental_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_range_4_discrete_types)
+{ interval_set_range_4_discrete_types<INTERVAL_SET, discrete_type_3>();}
+
 #endif // BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
 
 

Modified: trunk/libs/icl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj
==============================================================================
--- trunk/libs/icl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj (original)
+++ trunk/libs/icl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -204,6 +204,10 @@
                         UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
                 </Filter>
+ <File
+ RelativePath="..\vc9_icl_fast_tests.sln"
+ >
+ </File>
         </Files>
         <Globals>
         </Globals>

Modified: trunk/libs/icl/test/fix_include_after_thread_/fix_include_after_thread.cpp
==============================================================================
--- trunk/libs/icl/test/fix_include_after_thread_/fix_include_after_thread.cpp (original)
+++ trunk/libs/icl/test/fix_include_after_thread_/fix_include_after_thread.cpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -26,8 +26,8 @@
 template <class Type> struct some_predicate
 {
     BOOST_STATIC_CONSTANT(bool,
- value = ((some_attribute<Type>::value) < 0)
- // value = ( some_attribute<Type>::value < 0)
+ // value = ((some_attribute<Type>::value) < 0)
+ value = ( some_attribute<Type>::value < 0)
                 //error C2059: syntax error : ')' ONLY
                 //IF <boost/thread.hpp> is included before
         );

Modified: trunk/libs/icl/test/test_casual_/test_casual.cpp
==============================================================================
--- trunk/libs/icl/test/test_casual_/test_casual.cpp (original)
+++ trunk/libs/icl/test/test_casual_/test_casual.cpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -17,13 +17,58 @@
 #include "../test_type_lists.hpp"
 #include "../test_value_maker.hpp"
 
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/icl/gregorian.hpp>
+#include <boost/icl/ptime.hpp>
+
 #include <boost/icl/interval_map.hpp>
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/interval.hpp>
 
 using namespace std;
 using namespace boost;
 using namespace unit_test;
 using namespace boost::icl;
 
+
+BOOST_AUTO_TEST_CASE(float_infinity)
+{
+
+ typedef size_type_of<interval<float>::type>::type itv_float_size_type;
+
+ BOOST_CHECK( (is_same<size_type_of<interval<float>::type>::type, std::size_t>::value) );
+ BOOST_CHECK( (is_same<itv_float_size_type, std::size_t>::value) );
+ BOOST_CHECK( (is_same<itv_float_size_type, unsigned int>::value) );
+
+ cout << cardinality(interval<float>::closed(1,5)) << endl;
+ cout << icl::infinity<size_type_of<interval<float>::type>::type>::value() << endl;
+ //cout << (std::size_t)(icl::infinity<itv_float_size_type>::value) << endl;
+ cout << (std::numeric_limits<unsigned int>::max)() << endl;
+
+ BOOST_CHECK_EQUAL(
+ cardinality(interval<float>::closed(1,5))
+ , icl::infinity<itv_float_size_type>::value()
+ );
+
+ BOOST_CHECK_EQUAL(true, true);
+}
+
+BOOST_AUTO_TEST_CASE(lower_empty)
+{
+
+{
+ icl::interval_set<int> iclset;
+ iclset += interval<int>::right_open(1,5);
+ icl::interval_set<int> one;
+ one += 1;
+ BOOST_CHECK(icl::intersects( iclset, one ));
+ BOOST_CHECK(!icl::disjoint( iclset, one ));
+}
+
+ BOOST_CHECK_EQUAL(true, true);
+}
+
 BOOST_AUTO_TEST_CASE(casual)
 {
     //typedef int T;
@@ -32,6 +77,22 @@
     //typedef interval_set<T> IntervalSetT;
     //typedef IntervalMapT::interval_type IntervalT;
 
+
+ interval_set<int> iclset;
+ interval<int>::type itv;
+ BOOST_CHECK(is_interval_container<interval_set<int> >::value);
+ BOOST_CHECK((is_same<int, typename domain_type_of<interval_set<int> >::type >::value));
+
+ icl::contains(iclset, 1);
+ icl::within(1, iclset);
+
+ icl::intersects(iclset, 1);
+ icl::intersects(iclset, itv);
+
+ icl::disjoint(iclset, 1);
+ icl::disjoint(iclset, itv);
+
+
     BOOST_CHECK_EQUAL(true, true);
 }
 

Modified: trunk/libs/icl/test/test_interval_map_shared.hpp
==============================================================================
--- trunk/libs/icl/test/test_interval_map_shared.hpp (original)
+++ trunk/libs/icl/test/test_interval_map_shared.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -1309,5 +1309,51 @@
 
 }
 
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_intersects_4_bicremental_types()
+{
+ // Test of intersects and disjoint for domain_type and interval_type.
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ typename IntervalMapT::interval_mapping_type val_pair1 = IDv(6,9,1);
+ std::pair<const IntervalT, U> val_pair2 = IDv(3,5,3);
+ mapping_pair<T,U> map_pair = K_v(4,3);
+
+ IntervalMapT map_a;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+
+ BOOST_CHECK( icl::is_interval_container<IntervalMapT>::value );
+ BOOST_CHECK( icl::has_domain_type<IntervalMapT>::value );
+ BOOST_CHECK( (is_same<T, typename domain_type_of<IntervalMapT>::type>::value) );
+
+ BOOST_CHECK( icl::intersects(map_a, MK_v(2) ) );
+ BOOST_CHECK( icl::intersects(map_a, MK_v(11)) );
+ BOOST_CHECK( icl::disjoint(map_a, MK_v(1) ) );
+ BOOST_CHECK( icl::disjoint(map_a, MK_v(12)) );
+
+ BOOST_CHECK( icl::intersects(map_a, I_D(2,3)) );
+ BOOST_CHECK( icl::intersects(map_a, I_D(6,8)) );
+ BOOST_CHECK( icl::disjoint(map_a, I_D(3,5)) );
+ BOOST_CHECK( icl::disjoint(map_a, I_D(12,14)) );
+
+ //-------------------------------------+
+ // (1 3) [6 8)[8 9)[9 11]
+ // 1 3 4 3
+ //mapping_pair<T,U> map_pair_2_1 = K_v(2,1);
+ //BOOST_CHECK( icl::intersects(map_a, map_pair_2_1 ) ); //JODO
+
+}
+
+
 #endif // LIBS_ICL_TEST_TEST_INTERVAL_MAP_SHARED_HPP_JOFA_081005
 

Modified: trunk/libs/icl/test/test_interval_set_cases.hpp
==============================================================================
--- trunk/libs/icl/test/test_interval_set_cases.hpp (original)
+++ trunk/libs/icl/test/test_interval_set_cases.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -60,6 +60,15 @@
 (test_icl_interval_set_element_iter_4_discrete_types, T, discrete_types)
 { interval_set_element_iter_4_discrete_types<INTERVAL_SET, T>();}
 
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_intersects_4_bicremental_types, T, bicremental_types)
+{ interval_set_intersects_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_range_4_discrete_types, T, discrete_types)
+{ interval_set_range_4_discrete_types<INTERVAL_SET, T>();}
+
+
 #endif // BOOST_ICL_TEST_INTERVAL_SET_CASES_HPP_JOFA_090701
 
 

Modified: trunk/libs/icl/test/test_interval_set_shared.hpp
==============================================================================
--- trunk/libs/icl/test/test_interval_set_shared.hpp (original)
+++ trunk/libs/icl/test/test_interval_set_shared.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -677,6 +677,60 @@
     BOOST_CHECK_EQUAL( found == set_a.end(), true );
 }
 
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_intersects_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ typedef typename IntervalSetT::key_type KeyT;
+
+ IntervalT between = I_D(3,5);
+
+ IntervalSetT set_a;
+ set_a.add(C_D(1,3)).add(I_I(6,11));
+ // (1 3) [6 11]
+ BOOST_CHECK( icl::intersects(set_a, MK_v(2)) );
+ BOOST_CHECK( icl::intersects(set_a, MK_v(11)) );
+ BOOST_CHECK( icl::disjoint(set_a, MK_v(3)) );
+ BOOST_CHECK( icl::disjoint(set_a, MK_v(5)) );
+
+ BOOST_CHECK( icl::intersects(set_a, C_D(1,3)) );
+ BOOST_CHECK( icl::intersects(set_a, I_D(8,10)) );
+ BOOST_CHECK( icl::disjoint(set_a, between) );
+ BOOST_CHECK( icl::disjoint(set_a, I_I(0,1)) );
+
+ IntervalSetT to_12 = IntervalSetT(I_D(0, 13));
+ IntervalSetT complement_a = to_12 - set_a;
+ BOOST_CHECK( icl::disjoint(set_a, complement_a) );
+ BOOST_CHECK( icl::intersects(to_12, set_a) );
+
+ BOOST_CHECK_EQUAL( icl::lower(set_a), icl::lower(*(set_a.begin())) );
+ BOOST_CHECK_EQUAL( icl::lower(set_a), MK_v(1) );
+ BOOST_CHECK_EQUAL( icl::upper(set_a), icl::upper(*(set_a.rbegin())) );
+ BOOST_CHECK_EQUAL( icl::upper(set_a), MK_v(11) );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_range_4_discrete_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ typedef typename IntervalSetT::key_type KeyT;
+
+ IntervalT between = I_D(3,5);
+
+ IntervalSetT set_a;
+ set_a.add(C_D(1,3)).add(I_I(6,11));
+ // (1 3) [6 11]
+ BOOST_CHECK_EQUAL( icl::first(set_a), icl::first(*(set_a.begin())) );
+ BOOST_CHECK_EQUAL( icl::first(set_a), MK_v(2) );
+ BOOST_CHECK_EQUAL( icl::last(set_a), icl::last(*(set_a.rbegin())) );
+ BOOST_CHECK_EQUAL( icl::last(set_a), MK_v(11) );
+}
+
+
 template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
 void interval_bitset_find_4_integral_types()
 {

Modified: trunk/libs/icl/test/test_type_lists.hpp
==============================================================================
--- trunk/libs/icl/test/test_type_lists.hpp (original)
+++ trunk/libs/icl/test/test_type_lists.hpp 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -8,13 +8,21 @@
 #ifndef BOOST_ICL_TEST_TYPE_LISTS_HPP_JOFA_080916
 #define BOOST_ICL_TEST_TYPE_LISTS_HPP_JOFA_080916
 
+//#define BOOST_ICL_TEST_XINT
+
 #include <boost/mpl/list.hpp>
 
 // interval instance types
 #include <boost/icl/gregorian.hpp>
 #include <boost/icl/ptime.hpp>
+
+#ifdef BOOST_ICL_TEST_XINT
+#include <boost/icl/xint.hpp>
+#endif
+
 #include <boost/icl/rational.hpp>
 
+
 #if(_MSC_VER < 1500 && defined(_DEBUG) ) // 1500 = MSVC-9.0
 typedef int boost_posix_time_ptime;
 typedef int boost_posix_time_duration;
@@ -23,8 +31,10 @@
 #else
 typedef boost::posix_time::ptime boost_posix_time_ptime;
 typedef boost::posix_time::time_duration boost_posix_time_duration;
-typedef boost::gregorian::date boost_gregorian_date;
-typedef boost::gregorian::date_duration boost_gregorian_date_duration;
+typedef int boost_gregorian_date;
+typedef int boost_gregorian_date_duration;
+//typedef boost::gregorian::date boost_gregorian_date; //JODO URG REV
+//typedef boost::gregorian::date_duration boost_gregorian_date_duration;
 #endif
 
 typedef ::boost::mpl::list<
@@ -32,6 +42,10 @@
     ,short, int, long, long long
     ,float, double, long double
     ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+ ,boost::rational<boost::xint::integer>
+#endif
     ,boost_posix_time_ptime
     ,boost_posix_time_duration
     ,boost_gregorian_date
@@ -53,6 +67,10 @@
      short, int, long, long long
     ,float, double, long double
     ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+ ,boost::rational<boost::xint::integer>
+#endif
> signed_bicremental_types;
 
 typedef int signed_bicremental_type_1;
@@ -69,6 +87,9 @@
 typedef ::boost::mpl::list<
     float, double, long double
     ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::rational<boost::xint::integer>
+#endif
> bicremental_continuous_types;
 
 typedef float bicremental_continuous_type_1;
@@ -80,6 +101,9 @@
     unsigned short, unsigned int
     ,unsigned long, unsigned long long
     ,short, int, long, long long
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+#endif
> integral_types;
 
 typedef int integral_type_1;
@@ -91,6 +115,9 @@
     unsigned short, unsigned int
     ,unsigned long, unsigned long long
     ,short, int, long
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+#endif
     ,boost_posix_time_ptime
     ,boost_posix_time_ptime
     ,boost_posix_time_duration
@@ -116,6 +143,9 @@
 typedef ::boost::mpl::list<
     float, double, long double
     ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::rational<boost::xint::integer>
+#endif
> numeric_continuous_types;
 
 typedef double numeric_continuous_type_1;
@@ -126,6 +156,9 @@
 typedef ::boost::mpl::list<
     float, double, long double
     ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::rational<boost::xint::integer>
+#endif
     ,std::string
> continuous_types;
 
@@ -140,6 +173,9 @@
     ,short, int, long, long long
     ,float, double, long double
     ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+#endif
     ,std::string
     ,boost_posix_time_ptime
     ,boost_posix_time_duration

Modified: trunk/libs/icl/test/vc9_icl_slow_tests.sln
==============================================================================
--- trunk/libs/icl/test/vc9_icl_slow_tests.sln (original)
+++ trunk/libs/icl/test/vc9_icl_slow_tests.sln 2011-02-19 19:14:31 EST (Sat, 19 Feb 2011)
@@ -47,6 +47,8 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_total_icl_quantifier", "test_total_icl_quantifier_\vc9_test_total_icl_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_casual", "test_casual_\vc9_test_casual.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -145,6 +147,10 @@
                 {EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}.Debug|Win32.Build.0 = Debug|Win32
                 {EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}.Release|Win32.ActiveCfg = Release|Win32
                 {EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}.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
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE


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