|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r66233 - in sandbox/itl: boost/itl/concept libs/itl/example libs/itl/test libs/itl/test/fastest_itl_map_ libs/itl/test/fastest_set_interval_set_ libs/itl/test/fastest_set_itl_set_ libs/itl/test/test_casual_ libs/itl/test/test_changing_interval_defaults_ libs/itl/test/test_doc_code_ libs/itl/test/test_misc_ libs/itl/test/test_set_interval_set_ libs/itl/test/test_type_traits_
From: afojgo_at_[hidden]
Date: 2010-10-28 12:22:46
Author: jofaber
Date: 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
New Revision: 66233
URL: http://svn.boost.org/trac/boost/changeset/66233
Log:
Added functions: between and distance. Added tests on complementarity. Added tests: misc, doc_code, changing_interval_defaults, type_traits. Stable{msvc-9.0,10.0, gcc-3.4.4}
Added:
sandbox/itl/libs/itl/test/test_changing_interval_defaults_/
sandbox/itl/libs/itl/test/test_changing_interval_defaults_/test_changing_interval_defaults.cpp (contents, props changed)
sandbox/itl/libs/itl/test/test_changing_interval_defaults_/vc9_test_changing_interval_defalts.vcproj (contents, props changed)
sandbox/itl/libs/itl/test/test_doc_code_/
sandbox/itl/libs/itl/test/test_doc_code_/test_doc_code.cpp (contents, props changed)
sandbox/itl/libs/itl/test/test_doc_code_/vc9_test_doc_code.vcproj (contents, props changed)
sandbox/itl/libs/itl/test/test_misc_/
sandbox/itl/libs/itl/test/test_misc_/test_misc.cpp (contents, props changed)
sandbox/itl/libs/itl/test/test_misc_/vc9_test_misc.vcproj (contents, props changed)
sandbox/itl/libs/itl/test/test_type_traits_/
sandbox/itl/libs/itl/test/test_type_traits_/test_type_traits.cpp (contents, props changed)
sandbox/itl/libs/itl/test/test_type_traits_/vc9_test_type_traits.vcproj (contents, props changed)
Text files modified:
sandbox/itl/boost/itl/concept/interval.hpp | 12 +
sandbox/itl/boost/itl/concept/interval_associator.hpp | 21 ++
sandbox/itl/boost/itl/concept/interval_map.hpp | 28 ++
sandbox/itl/boost/itl/concept/interval_set.hpp | 52 ++++
sandbox/itl/boost/itl/concept/joinable.hpp | 1
sandbox/itl/libs/itl/example/Jamfile.v2 | 16 +
sandbox/itl/libs/itl/test/Jamfile.v2 | 8
sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map.cpp | 8
sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_cases.hpp | 20 ++
sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp | 38 +++
sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set.cpp | 9
sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp | 21 ++
sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp | 386 ---------------------------------------
sandbox/itl/libs/itl/test/test_icl_discrete_interval.hpp | 14
sandbox/itl/libs/itl/test/test_icl_interval.hpp | 8
sandbox/itl/libs/itl/test/test_icl_quantifier_shared.hpp | 1
sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp | 57 +++++
sandbox/itl/libs/itl/test/test_laws.hpp | 75 +++++++
sandbox/itl/libs/itl/test/test_partial_interval_quantifier_cases.hpp | 22 ++
sandbox/itl/libs/itl/test/test_quantifier_map_shared.hpp | 1
sandbox/itl/libs/itl/test/test_set_interval_set_/test_set_interval_set_cases.hpp | 47 ++++
sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp | 54 +++++
sandbox/itl/libs/itl/test/test_set_itl_set.hpp | 15 -
sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp | 19 +
sandbox/itl/libs/itl/test/test_type_lists.hpp | 2
sandbox/itl/libs/itl/test/vc9_fast_tests.sln | 24 ++
26 files changed, 516 insertions(+), 443 deletions(-)
Modified: sandbox/itl/boost/itl/concept/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -13,7 +13,6 @@
#include <boost/mpl/and.hpp>
#include <boost/mpl/or.hpp>
#include <boost/mpl/not.hpp>
-//CL #include <boost/detail/is_incrementable.hpp>
#include <boost/itl/detail/design_config.hpp>
#include <boost/itl/type_traits/unit_element.hpp>
#include <boost/itl/type_traits/identity_element.hpp>
@@ -553,7 +552,7 @@
//- within ---------------------------------------------------------------------
template<class Type>
-typename boost::enable_if<is_interval<Type>, bool>::type
+inline typename boost::enable_if<is_interval<Type>, bool>::type
within(const Type& sub, const Type& super)
{
return contains(super,sub);
@@ -1230,6 +1229,15 @@
return identity_element<Type>::value();
}
+template<class Type>
+inline typename boost::enable_if<is_interval<Type>, Type>::type
+between(const Type& left, const Type& right)
+{
+ return inner_complement(left, right);
+}
+
+
+
//==============================================================================
//= Distance
//==============================================================================
Modified: sandbox/itl/boost/itl/concept/interval_associator.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval_associator.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval_associator.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -182,6 +182,27 @@
return icl::iterative_size(object);
}
+
+template<class Type>
+typename enable_if< is_interval_container<Type>
+ , typename Type::difference_type >::type
+distance(const Type& object)
+{
+ typedef typename Type::difference_type DiffT;
+ typedef typename Type::const_iterator const_iterator;
+ const_iterator it_ = object.begin(), pred_;
+ DiffT dist = identity_element<DiffT>::value();
+
+ if(it_ != object.end())
+ pred_ = it_++;
+
+ while(it_ != object.end())
+ dist += icl::distance(key_value<Type>(pred_++), key_value<Type>(it_++));
+
+ return dist;
+}
+
+
//==============================================================================
//= Range<IntervalSet|IntervalMap>
//==============================================================================
Modified: sandbox/itl/boost/itl/concept/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval_map.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -12,6 +12,7 @@
#include <boost/itl/type_traits/segment_type_of.hpp>
#include <boost/itl/type_traits/absorbs_identities.hpp>
#include <boost/itl/type_traits/is_combinable.hpp>
+#include <boost/itl/type_traits/is_interval_splitter.hpp>
#include <boost/itl/detail/set_algo.hpp>
#include <boost/itl/detail/interval_map_algo.hpp>
@@ -553,20 +554,43 @@
}
//==============================================================================
-//= Domain
+//= Set selection
//==============================================================================
template<class Type, class SetT>
typename enable_if<is_concept_combinable<is_interval_set, is_interval_map,
SetT, Type>, SetT>::type&
domain(SetT& result, const Type& object)
{
+ typedef typename SetT::iterator set_iterator;
result.clear();
+ set_iterator prior_ = result.end();
ICL_const_FORALL(typename Type, it_, object)
- result += it_->first;
+ prior_ = icl::insert(result, prior_, it_->first);
return result;
}
+template<class Type, class SetT>
+typename enable_if<is_concept_combinable<is_interval_set, is_interval_map,
+ SetT, Type>, SetT>::type&
+between(SetT& in_between, const Type& object)
+{
+ typedef typename Type::const_iterator const_iterator;
+ typedef typename SetT::iterator set_iterator;
+ in_between.clear();
+ const_iterator it_ = object.begin(), pred_;
+ set_iterator prior_ = in_between.end();
+
+ if(it_ != object.end())
+ pred_ = it_++;
+
+ while(it_ != object.end())
+ prior_ = icl::insert(in_between, prior_,
+ between((*pred_++).first, (*it_++).first));
+
+ return in_between;
+}
+
//==============================================================================
//= Manipulation by predicates
//==============================================================================
Modified: sandbox/itl/boost/itl/concept/interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval_set.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval_set.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -82,7 +82,7 @@
//- T& add(T&, J, c P&) T:{S} P:{i} interval_type
//------------------------------------------------------------------------------
template<class Type>
-typename enable_if<is_interval_set<Type>, typename Type::iterator>::type
+inline typename enable_if<is_interval_set<Type>, typename Type::iterator>::type
add(Type& object, typename Type::iterator prior,
const typename Type::segment_type& operand)
{
@@ -96,14 +96,14 @@
//- T& insert(T&, c P&) T:{S} P:{e i} fragment_types
//------------------------------------------------------------------------------
template<class Type>
-typename enable_if<is_interval_set<Type>, Type>::type&
+inline typename enable_if<is_interval_set<Type>, Type>::type&
insert(Type& object, const typename Type::segment_type& operand)
{
return icl::add(object, operand);
}
template<class Type>
-typename enable_if<is_interval_set<Type>, Type>::type&
+inline typename enable_if<is_interval_set<Type>, Type>::type&
insert(Type& object, const typename Type::element_type& operand)
{
return icl::add(object, operand);
@@ -113,9 +113,9 @@
//- T& insert(T&, J, c P&) T:{S} P:{i} with hint
//------------------------------------------------------------------------------
template<class Type>
-typename enable_if<is_interval_set<Type>, Type>::type&
-insert(Type& object, const typename Type::iterator prior,
- const typename Type::segment_type& operand)
+inline typename enable_if<is_interval_set<Type>, typename Type::iterator>::type
+insert(Type& object, typename Type::iterator prior,
+ const typename Type::segment_type& operand)
{
return icl::add(object, prior, operand);
}
@@ -291,6 +291,46 @@
}
//==============================================================================
+//= Set selection
+//==============================================================================
+template<class Type>
+typename enable_if<is_interval_set<Type>, Type>::type&
+domain(Type& dom, const Type& object)
+{
+ typedef typename Type::const_iterator const_iterator;
+ typedef typename Type::iterator iterator;
+ dom.clear();
+ const_iterator it_ = object.begin();
+ iterator prior_ = dom.end();
+
+ while(it_ != object.end())
+ prior_ = icl::insert(dom, prior_, *it_++);
+
+ return dom;
+}
+
+template<class Type>
+typename enable_if<is_interval_set<Type>, Type>::type&
+between(Type& in_between, const Type& object)
+{
+ typedef typename Type::const_iterator const_iterator;
+ typedef typename Type::iterator iterator;
+ in_between.clear();
+ const_iterator it_ = object.begin(), pred_;
+ iterator prior_ = in_between.end();
+
+ if(it_ != object.end())
+ pred_ = it_++;
+
+ while(it_ != object.end())
+ prior_ = icl::insert(in_between, prior_,
+ icl::between(*pred_++, *it_++));
+
+ return in_between;
+}
+
+
+//==============================================================================
//= Streaming
//==============================================================================
template<class CharType, class CharTraits, class Type>
Modified: sandbox/itl/boost/itl/concept/joinable.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/joinable.hpp (original)
+++ sandbox/itl/boost/itl/concept/joinable.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -9,6 +9,7 @@
#define BOOST_ICL_CONCEPT_JOINABLE_HPP_JOFA_100920
#include <boost/itl/type_traits/is_interval_container.hpp>
+#include <boost/itl/concept/interval.hpp>
namespace boost{ namespace icl
{
Modified: sandbox/itl/libs/itl/example/Jamfile.v2
==============================================================================
--- sandbox/itl/libs/itl/example/Jamfile.v2 (original)
+++ sandbox/itl/libs/itl/example/Jamfile.v2 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -59,6 +59,22 @@
<include>$(BOOST_ROOT)
;
+exe dynamic_interval
+ :
+ dynamic_interval_/dynamic_interval.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe static_interval
+ :
+ static_interval_/static_interval.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
# Examples using boost_date_time
exe boost_party
:
Modified: sandbox/itl/libs/itl/test/Jamfile.v2
==============================================================================
--- sandbox/itl/libs/itl/test/Jamfile.v2 (original)
+++ sandbox/itl/libs/itl/test/Jamfile.v2 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -50,5 +50,11 @@
[ run fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp ]
[ run fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp ]
[ run fastest_partial_icl_quantifier_/fastest_partial_icl_quantifier.cpp ]
- [ run fastest_total_icl_quantifier_/fastest_total_icl_quantifier.cpp ]
+ [ run fastest_total_icl_quantifier_/fastest_total_icl_quantifier.cpp ]
+
+ # Misc -------------------------------------------------------------------
+ [ run test_misc_/test_misc.cpp ]
+ [ run test_doc_code_/test_doc_code.cpp ]
+ [ run test_type_traits_/test_type_traits.cpp ]
+ [ run test_changing_interval_defaults_/test_changing_interval_defaults.cpp ]
;
Modified: sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map.cpp (original)
+++ sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map.cpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -16,14 +16,8 @@
#include "../test_value_maker.hpp"
#include "../test_laws.hpp"
-//JODO include
-//------------------------------------------------------------------------------
#include <set>
-#include <boost/itl/concept/container.hpp>
-#include <boost/itl/concept/element_set.hpp>
-#include <boost/itl/concept/element_associator.hpp>
-//------------------------------------------------------------------------------
-
+#include <boost/itl/associative_element_container.hpp>
#include <boost/itl/map.hpp>
#include <boost/itl/interval_map.hpp>
#include <boost/itl/detail/interval_morphism.hpp>
Modified: sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_cases.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -60,5 +60,25 @@
// partial x - x == 0 x - x =p= 0 partiality of subtraction
// total (-x)+ x == 0 (-x)+ x =p= 0 totality of subtraction
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_inner_complementarity_4_bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<bicremental_type_4, int, partial_enricher, interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_length_complementarity_4_bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<bicremental_type_5, double, partial_enricher, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_absorber_itv_quantifier_check_inner_complementarity_4_bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<bicremental_type_6, int, partial_absorber, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_absorber_itv_quantifier_check_length_complementarity_4_bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<bicremental_type_7, double, partial_absorber, interval_map>();}
+
#endif // BOOST_ICL_FASTEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
Modified: sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -71,13 +71,47 @@
//------------------------------------------------------------------------------
// Containedness
//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_check_containedness_4_bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<bicremental_type_4, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_split_interval_set_check_containedness_4_bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<bicremental_type_5, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_separate_interval_set_check_containedness_4_bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<bicremental_type_6, separate_interval_set>();}
+
+//------------------------------------------------------------------------------
+// Inner Complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_check_inner_complementarity_4_bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_7, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_separate_interval_set_check_inner_complementarity_4_bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_8, separate_interval_set>();}
BOOST_AUTO_TEST_CASE
-(fastest_itl_split_interval_set_check_containedness_4_bicremental_types) //JODO complete slowtest
-{ interval_set_check_containedness_4_bicremental_types<bicremental_type_4, split_interval_set>();}
+(fastest_itl_split_interval_set_check_inner_complementarity_4_bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_1, split_interval_set>();}
+//------------------------------------------------------------------------------
+// Inner Complement and Distance
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_check_length_complementarity_4_bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_2, interval_set>();}
+BOOST_AUTO_TEST_CASE
+(fastest_itl_separate_interval_set_check_length_complementarity_4_bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_3, separate_interval_set>();}
+BOOST_AUTO_TEST_CASE
+(fastest_itl_split_interval_set_check_length_complementarity_4_bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_4, split_interval_set>();}
#endif // BOOST_ICL_FASTEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090703
Modified: sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set.cpp (original)
+++ sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set.cpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -16,15 +16,8 @@
#include "../test_value_maker.hpp"
#include "../test_laws.hpp"
-//JODO include
-//------------------------------------------------------------------------------
#include <set>
-#include <boost/interprocess/containers/set.hpp>
-#include <boost/itl/concept/container.hpp>
-#include <boost/itl/concept/element_set.hpp>
-#include <boost/itl/concept/element_associator.hpp>
-//------------------------------------------------------------------------------
-
+#include <boost/itl/associative_element_container.hpp>
#include <boost/itl/interval_set.hpp>
#include <boost/itl/separate_interval_set.hpp>
#include <boost/itl/split_interval_set.hpp>
Modified: sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -72,10 +72,29 @@
(fastest_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_continuous_codomain_2)
{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_4, boost::rational<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
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_inner_complementarity_4_bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<bicremental_type_4, int, total_enricher, interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_length_complementarity_4_bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<bicremental_type_5, double, total_enricher, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_absorber_itv_quantifier_check_inner_complementarity_4_bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<bicremental_type_6, int, total_absorber, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_absorber_itv_quantifier_check_length_complementarity_4_bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<bicremental_type_7, double, total_absorber, interval_map>();}
+
#endif // BOOST_ICL_FASTEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090703
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 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -9,7 +9,6 @@
#include <string>
#include <vector>
#include <boost/mpl/list.hpp>
-#include <boost/itl/iterator.hpp>
#include "../unit_test_unwarned.hpp"
#include <boost/test/test_case_template.hpp>
@@ -17,36 +16,7 @@
#include "../test_type_lists.hpp"
#include "../test_value_maker.hpp"
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/detail/is_incrementable.hpp>
-#include <boost/type_traits/is_floating_point.hpp>
-#include <boost/interprocess/containers/set.hpp>
-
-#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
-#define BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT right_open_interval
-#define BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS 2 //0=() 1=(] 2=[) 3=[]
-
-#include <boost/itl/interval_set.hpp>
-#include <boost/itl/separate_interval_set.hpp>
-#include <boost/itl/split_interval_set.hpp>
#include <boost/itl/interval_map.hpp>
-#include <boost/itl/split_interval_map.hpp>
-#include <boost/itl/detail/element_iterator.hpp>
-#include <boost/itl/detail/interval_morphism.hpp>
-#include <boost/itl/ptime.hpp>
-#include <boost/itl/type_traits/is_key_container_of.hpp>
-#include <boost/itl/type_traits/codomain_type_of.hpp>
-#include <boost/itl/type_traits/is_icl_container.hpp>
-
-#include <boost/itl_xt/detail/bit_element_iterator.hpp>
-#include <boost/itl_xt/interval_bitset.hpp>
-#include <boost/itl_xt/list.hpp>
-#include <boost/itl_xt/set.hpp>
-
-#include <limits>
-#include <bitset>
-
using namespace std;
using namespace boost;
@@ -54,244 +24,6 @@
using namespace boost::icl;
-BOOST_AUTO_TEST_CASE(ad_hoc)
-{
- std::set<int> set_a;
- set_a += 1;
- icl::add(set_a, 4);
- icl::add(set_a, 5);
- set_a -= 4;
- cout << set_a << endl;
-
- interval_set<int> itv_set_b;
- itv_set_b += interval<int>::right_open(1,3);
-
- std::set<int> set_b;
-
- segmental::atomize(set_b, itv_set_b);
- cout << set_b << endl;
-}
-
-BOOST_AUTO_TEST_CASE(intro_sample_42)
-{
- interval_set<int> mySet;
- mySet.insert(42);
- bool has_answer = contains(mySet, 42);
-}
-
-
-BOOST_AUTO_TEST_CASE(intro_sample_telecast)
-{
- // Switch on my favorite telecasts using an interval_set
- interval<int>::type news(2000, 2015);
- interval<int>::type talk_show(2245, 2330);
- interval_set<int> myTvProgram;
- myTvProgram.add(news).add(talk_show);
-
- // Iterating over elements (seconds) would be silly ...
- for(interval_set<int>::iterator telecast = myTvProgram.begin();
- telecast != myTvProgram.end(); ++telecast)
- //...so this iterates over intervals
- //TV.switch_on(*telecast);
- cout << *telecast;
-
- cout << endl;
-}
-
-BOOST_AUTO_TEST_CASE(interface_sample_identifiers)
-{
- typedef interval_set<std::string, less, continuous_interval<std::string> > IdentifiersT;
- IdentifiersT identifiers, excluded;
-
- // special identifiers shall be excluded
- identifiers += continuous_interval<std::string>::right_open("a", "c");
- identifiers -= std::string("boost");
- cout << "identifiers: " << identifiers << endl;
-
- excluded = IdentifiersT(icl::hull(identifiers)) - identifiers;
- cout << "excluded : " << excluded << endl;
-
- if(icl::contains(identifiers, std::string("boost")))
- cout << "error, identifiers.contains('boost')\n";
-}
-
-
-/*CL after Proto
-BOOST_AUTO_TEST_CASE(reverse_iter)
-{
- interval_map<int,int> map_a;
- map_a += make_pair(interval<int>::right_open(0,3),1);
- cout << map_a << endl;
-
- for(interval_map<int,int>::element_iterator elem = elements_begin(map_a);
- elem != elements_end(map_a); elem++)
- cout << "(" << elem->first << "," << elem->second << ")";
- cout << "\n-------------------------------------\n";
-
- std::pair<const int, int> search_pair(2,1);
-
- interval_map<int,int>::element_const_iterator found
- = std::find(elements_begin(map_a), elements_end(map_a), search_pair);
- cout << "(" << found->first << "," << found->second << ")\n";
-
- const_cast<int&>(found->second) = 2;
- cout << map_a << endl;
-}
-
-#include <limits>
-#include <complex>
-
-BOOST_AUTO_TEST_CASE(digits_to_check_numerics) //JODO Proto: properties of infinity.
-{
- cout << "--- limits ---\n";
- cout << "max<char> = " << (std::numeric_limits<char>::max)() << endl;
- cout << "max<char> = " << static_cast<int>((std::numeric_limits<char>::max)()) << endl;
- cout << "-----------------------------------\n";
- cout << "digits<char> = " << std::numeric_limits<char>::digits << endl;
- cout << "digits<short> = " << std::numeric_limits<short>::digits << endl;
- cout << "digits<float> = " << std::numeric_limits<float>::digits << endl;
- cout << "digits<double> = " << std::numeric_limits<double>::digits << endl;
- cout << "digits<complex<double>> = " << std::numeric_limits<std::complex<double> >::digits << endl;
- cout << "digits<string> = " << std::numeric_limits<std::string>::digits << endl;
-
-
- BOOST_CHECK_EQUAL(0 != icl::infinity<int>::value(), true);
-}
-*/
-
-#include <boost/itl/continuous_interval.hpp>
-#include <boost/itl/type_traits/is_continuous_interval.hpp>
-
-BOOST_AUTO_TEST_CASE(interval_type_traits)
-{
- BOOST_CHECK_EQUAL(is_interval<continuous_interval<int> >::value, true);
- BOOST_CHECK_EQUAL(is_continuous_interval<continuous_interval<double> >::value, true);
-
- BOOST_CHECK_EQUAL((is_interval_set<interval_map<int,int> >::value), false);
- BOOST_CHECK_EQUAL((is_interval_map<interval_map<int,int> >::value), true);
-
-}
-
-/*JODO move to proper tests??
-BOOST_AUTO_TEST_CASE(casual)
-{
- cout << left_bracket(interval_bounds(closed_bounded)) << endl;
- cout << left_bracket(interval_bounds(right_open)) << endl;
- cout << left_bracket(interval_bounds(left_open)) << endl;
- cout << left_bracket(interval_bounds(open_bounded)) << endl;
-
- cout << right_bracket(interval_bounds(closed_bounded)) << endl;
- cout << right_bracket(interval_bounds(right_open)) << endl;
- cout << right_bracket(interval_bounds(left_open)) << endl;
- cout << right_bracket(interval_bounds(open_bounded)) << endl;
-
- //continuous_interval<double> a_1 = continuous_interval<double>(0.0, 3.0, interval_bounds::left_open());
- continuous_interval<double> a_1 = continuous_interval<double>(-5.0, -2.3, interval_bounds::closed());
- continuous_interval<double> b_1 = continuous_interval<double>(-2.6, 4.0, interval_bounds::closed());
-
- split_interval_set<double> a, b, a_o_b, b_o_a;
- a_o_b += a_1;
- a_o_b += b_1;
-
- b_o_a += b_1;
- b_o_a += a_1;
-
- cout << "a+b =" << a_o_b << endl;
- cout << "b+a =" << b_o_a << endl;
-
- cout << "-------------------------------------------------\n";
- continuous_interval<double> c_1 = continuous_interval<double>(1.0, 3.0, interval_bounds::closed());
- continuous_interval<double> b_2 = right_subtract(b_1, c_1);
-
- cout << b_2 << endl;
-
- cout << "-------------------------------------------------\n";
- continuous_interval<double> L0T = continuous_interval<double>(0.0, 0.0, interval_bounds::closed());
- continuous_interval<double> C0T = continuous_interval<double>(0.0, 0.0, interval_bounds::left_open());
- continuous_interval<double> L0D = continuous_interval<double>(0.0, 0.0, interval_bounds::right_open());
- continuous_interval<double> C0D = continuous_interval<double>(0.0, 0.0, interval_bounds::open());
-
- BOOST_CHECK_EQUAL(icl::is_empty(L0T), false);
- BOOST_CHECK_EQUAL(icl::is_empty(C0T), true);
- BOOST_CHECK_EQUAL(icl::is_empty(L0D), true);
- BOOST_CHECK_EQUAL(icl::is_empty(C0D), true);
-
-
- continuous_interval<double> L0_1T = continuous_interval<double>(0.0, 1.0, interval_bounds::closed());
- continuous_interval<double> L1_2T = continuous_interval<double>(1.0, 2.0, interval_bounds::closed());
- BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1T, L1_2T), false);
- BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1T, L1_2T) == interval_bounds::open(), true);
-
- continuous_interval<double> L0_1D = continuous_interval<double>(0.0, 1.0, interval_bounds::right_open());
- BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1D, L1_2T), true);
- BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1D, L1_2T) == interval_bounds::right_open(), true);
-
- continuous_interval<double> C1_2T = continuous_interval<double>(1.0, 2.0, interval_bounds::left_open());
- BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1T, C1_2T), true);
- BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1T, C1_2T) == interval_bounds::left_open(), true);
-
- BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1D, C1_2T), true);
- BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1D, C1_2T) == interval_bounds::closed(), true);
-
- //BOOST_CHECK_EQUAL(icl::is_empty(conterval), true);
-}
-
-BOOST_AUTO_TEST_CASE(test_interval_bounds)
-{
- continuous_interval<double> L0_1T = continuous_interval<double>(0.0, 1.0, interval_bounds::closed());
- continuous_interval<double> L0_1D = continuous_interval<double>(0.0, 1.0, interval_bounds::right_open());
-
- cout << "icl::right(L0_1T) = " << static_cast<int>(icl::right(L0_1T.bounds()).bits()) << endl;
- cout << "icl::right(L0_1D) = " << static_cast<int>(icl::right(L0_1D.bounds()).bits()) << endl;
-
- BOOST_CHECK_EQUAL(icl::right_bounds(L0_1D, L0_1T), interval_bounds::left_open());
-}
-
-BOOST_AUTO_TEST_CASE(casual)
-{
- separate_interval_set<double> a, b;
-
- continuous_interval<double> L0_1T = continuous_interval<double>(0.0, 1.0, interval_bounds::closed());
- continuous_interval<double> L0_1D = continuous_interval<double>(0.0, 1.0, interval_bounds::right_open());
-
- a += L0_1T;
- a += L0_1D;
- cout << a << endl;
-
- b += L0_1D;
- b += L0_1T;
- cout << b << endl;
-
- cout << "double has "
- << (numeric_limits<double>::has_infinity ? "inf: " : "NO inf: ")
- << numeric_limits<double>::infinity()
- << endl;
-}
-*/
-
-typedef bool (*void_2_bool)();
-bool callit(){ cout << "called\n"; return true; }
-bool nope(){ cout << "nope\n"; return false; }
-
-//template<class Type> struct functions
-//{
-// typedef bool (*Type_to_bool)(Type);
-//};
-//
-//template<class Type>
-//bool minimum_is_less_than(Type value)
-//{
-// cout << "minimum_is_less_than\n";
-// return (numeric_limits<Type>::min)() < value;
-//}
-//
-//template<class Type>
-//bool always_true(Type)
-//{
-// cout << "always_true\n";
-// return true;
-//}
-
BOOST_AUTO_TEST_CASE(casual)
{
typedef int T;
@@ -300,122 +32,6 @@
typedef interval_set<T> IntervalSetT;
typedef IntervalMapT::interval_type IntervalT;
- BOOST_CHECK_EQUAL((is_key_container_of< int , icl::map<int,int> >::value), false);
- BOOST_CHECK_EQUAL((is_key_container_of<std::pair<int,int> , icl::map<int,int> >::value), false);
- BOOST_CHECK_EQUAL((is_key_container_of<icl::set<int>, icl::set<int> >::value), true);
- BOOST_CHECK_EQUAL((is_key_container_of<icl::set<int>, icl::map<int,int> >::value), true);
- BOOST_CHECK_EQUAL((is_key_container_of<icl::map<int,int>, icl::map<int,int> >::value), true);
-
- //BOOST_CHECK_EQUAL((is_element_container<icl::map<int,int> >::value), true);
-
- typedef icl::map<int,int> MapII;
-
- //const bool xx = is_same< typename icl::map<int,int>::codomain_type,
- // typename codomain_type_of<icl::map<int,int> >::type >::value;
-
- BOOST_CHECK_EQUAL(has_codomain_type<MapII>::value, true);
- BOOST_CHECK_EQUAL((is_same<MapII::codomain_type, int>::value), true);
-
- //BOOST_CHECK_EQUAL((is_same<get_codomain_type<MapII,true>::type, int>::value), true);
- //BOOST_CHECK_EQUAL((is_same<get_codomain_type<MapII,false>::type, int>::value), false);
- //BOOST_CHECK_EQUAL((is_same<get_codomain_type<MapII,false>::type, icl::no_type>::value), true);
-
- //BOOST_CHECK_EQUAL((is_same<get_codomain_type<MapII, has_codomain_type<MapII>::value >::type, int>::value), true);
- //BOOST_CHECK_EQUAL((is_same<get_codomain_type<MapII, has_codomain_type<MapII>::value >::type, icl::no_type>::value), false);
-
- BOOST_CHECK_EQUAL((is_map<MapII>::value), true);
- BOOST_CHECK_EQUAL((is_icl_container<MapII>::value), true);
-
- BOOST_CHECK_EQUAL((is_fragment_of<IntervalSetT::element_type, IntervalSetT>::value), true);
- BOOST_CHECK_EQUAL((is_fragment_of<IntervalSetT::segment_type, IntervalSetT>::value), true);
- //BOOST_CHECK_EQUAL((is_fragment_of<discrete_interval<T>, IntervalSetT>::value), true);
- BOOST_CHECK_EQUAL((is_fragment_of<double, IntervalSetT>::value), false);
-
-
- BOOST_CHECK_EQUAL((boost::detail::is_incrementable<int>::value), true);
- BOOST_CHECK_EQUAL((boost::detail::is_incrementable<double>::value), true);
- BOOST_CHECK_EQUAL((boost::detail::is_incrementable<std::string>::value), false);
-
- BOOST_CHECK_EQUAL((is_floating_point<long double>::value), true);
- BOOST_CHECK_EQUAL((is_floating_point<double>::value), true);
- BOOST_CHECK_EQUAL((is_floating_point<float>::value), true);
-
-
- BOOST_CHECK( (is_same<key_type_of<std::set<int> >::type, int>::value) );
- BOOST_CHECK( (is_same<value_type_of<std::set<int> >::type, int>::value) );
-
- BOOST_CHECK_EQUAL( is_std_set<std::set<int> >::value, true );
- BOOST_CHECK_EQUAL( is_std_set<interval_set<int> >::value, false );
- BOOST_CHECK_EQUAL((is_std_set<std::map<int,int> >::value), false );
- BOOST_CHECK_EQUAL( is_element_set<std::set<int> >::value, true );
- BOOST_CHECK_EQUAL( is_interval_set<std::set<int> >::value, false );
- BOOST_CHECK_EQUAL( is_interval_set<std::set<int> >::value, false );
-
-#if defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && !defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
- BOOST_CHECK( (is_same<icl::interval<int >::type, right_open_interval<int > >::value) );
- BOOST_CHECK( (is_same<icl::interval<double>::type, right_open_interval<double> >::value) );
-
- BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<right_open_interval<int> >(1,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<right_open_interval<int> >(1,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<right_open_interval<int> >(1,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<right_open_interval<int> >(1,2) );
-
- BOOST_CHECK_EQUAL( icl::interval<float>::right_open(1.0,2.0), icl::construct<right_open_interval<float> >(1.0,2.0) );
- //The next yields compiletime error: STATIC_ASSERTION_FAILURE
- //BOOST_CHECK_EQUAL( icl::interval<float>::left_open(1.0,2.0), icl::construct<right_open_interval<float> >(1.0,2.0) );
-#endif
-
-#if defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
-# if defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 0)
- cout << "discrete_interval == open_interval\n";
- BOOST_CHECK( (is_same<icl::interval<int>::type, open_interval<int> >::value) );
- BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<open_interval<int> >(0,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<open_interval<int> >(0,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<open_interval<int> >(0,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<open_interval<int> >(0,2) );
-
-# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 1)
- cout << "discrete_interval == left_open_interval\n";
- BOOST_CHECK( (is_same<icl::interval<int>::type, left_open_interval<int> >::value) );
- BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<left_open_interval<int> >(0,1) );
- BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<left_open_interval<int> >(0,1) );
- BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<left_open_interval<int> >(0,1) );
- BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<left_open_interval<int> >(0,1) );
-
-# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 2)
- cout << "discrete_interval == right_open_interval\n";
- BOOST_CHECK( (is_same<icl::interval<int>::type, right_open_interval<int> >::value) );
- BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<right_open_interval<int> >(1,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<right_open_interval<int> >(1,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<right_open_interval<int> >(1,2) );
- BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<right_open_interval<int> >(1,2) );
-
-# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 3)
- cout << "discrete_interval == closed_interval\n";
- BOOST_CHECK( (is_same<icl::interval<int>::type, closed_interval<int> >::value) );
- BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<closed_interval<int> >(1,1) );
- BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<closed_interval<int> >(1,1) );
- BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<closed_interval<int> >(1,1) );
- BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<closed_interval<int> >(1,1) );
-
-# else
- cout << "#else part, INTERVAL_BORDERS not in {0,1,2,3}\n";
-#endif //defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
-
-#else
- BOOST_CHECK( (is_same<icl::interval<int >::type, discrete_interval<int > >::value) );
- BOOST_CHECK( (is_same<icl::interval<double>::type, continuous_interval<double> >::value) );
-#endif
-
- cout << "--->\n";
- BOOST_CHECK_EQUAL( (is_set<std::set<int> >::value), true );
- BOOST_CHECK_EQUAL( (is_element_set<std::set<int> >::value), true );
- BOOST_CHECK_EQUAL( (is_map<std::set<int> >::value), false );
-
- BOOST_CHECK_EQUAL( (is_const<std::set<int>::key_type >::value), false );
- BOOST_CHECK_EQUAL( (is_const<std::set<int>::value_type >::value), false );
-
- BOOST_CHECK_EQUAL( (is_std_set<interprocess::set<int> >::value), true );
- BOOST_CHECK_EQUAL( (is_element_set<interprocess::set<int> >::value), true );
+ BOOST_CHECK_EQUAL(true, true);
}
Added: sandbox/itl/libs/itl/test/test_changing_interval_defaults_/test_changing_interval_defaults.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_changing_interval_defaults_/test_changing_interval_defaults.cpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -0,0 +1,115 @@
+/*-----------------------------------------------------------------------------+
+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 icl::test_doc_code unit test
+
+#include <limits>
+#include <complex>
+
+
+#include <string>
+#include <vector>
+#include <boost/mpl/list.hpp>
+#include <boost/itl/iterator.hpp>
+#include "../unit_test_unwarned.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/type_traits/is_same.hpp>
+
+
+#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+#define BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT right_open_interval
+#define BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS 2 //0=() 1=(] 2=[) 3=[]
+
+#include <boost/itl/rational.hpp>
+
+#include <boost/itl/detail/interval_morphism.hpp>
+#include <boost/itl/interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+
+BOOST_AUTO_TEST_CASE(test_intervals_4_changed_lib_defaults)
+{
+ typedef int T;
+ typedef int U;
+ typedef interval_map<T,U, total_absorber> IntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef IntervalMapT::interval_type IntervalT;
+
+ typedef icl::map<int,int> MapII;
+
+ //const bool xx = is_same< typename icl::map<int,int>::codomain_type,
+ // typename codomain_type_of<icl::map<int,int> >::type >::value;
+
+
+#if defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && !defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
+ BOOST_CHECK( (is_same<icl::interval<int >::type, right_open_interval<int > >::value) );
+ BOOST_CHECK( (is_same<icl::interval<double>::type, right_open_interval<double> >::value) );
+
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<right_open_interval<int> >(1,2) );
+
+ BOOST_CHECK_EQUAL( icl::interval<float>::right_open(1.0,2.0), icl::construct<right_open_interval<float> >(1.0,2.0) );
+ //The next yields compiletime error: STATIC_ASSERTION_FAILURE
+ //BOOST_CHECK_EQUAL( icl::interval<float>::left_open(1.0,2.0), icl::construct<right_open_interval<float> >(1.0,2.0) );
+#endif
+
+#if defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
+# if defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 0)
+ cout << "discrete_interval == open_interval\n";
+ BOOST_CHECK( (is_same<icl::interval<int>::type, open_interval<int> >::value) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<open_interval<int> >(0,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<open_interval<int> >(0,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<open_interval<int> >(0,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<open_interval<int> >(0,2) );
+
+# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 1)
+ cout << "discrete_interval == left_open_interval\n";
+ BOOST_CHECK( (is_same<icl::interval<int>::type, left_open_interval<int> >::value) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<left_open_interval<int> >(0,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<left_open_interval<int> >(0,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<left_open_interval<int> >(0,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<left_open_interval<int> >(0,1) );
+
+# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 2)
+ cout << "discrete_interval == right_open_interval\n";
+ BOOST_CHECK( (is_same<icl::interval<int>::type, right_open_interval<int> >::value) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<right_open_interval<int> >(1,2) );
+
+# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 3)
+ cout << "discrete_interval == closed_interval\n";
+ BOOST_CHECK( (is_same<icl::interval<int>::type, closed_interval<int> >::value) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<closed_interval<int> >(1,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<closed_interval<int> >(1,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<closed_interval<int> >(1,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<closed_interval<int> >(1,1) );
+
+# else
+ cout << "#else part, INTERVAL_BORDERS not in {0,1,2,3}\n";
+#endif //defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
+
+#else
+ BOOST_CHECK( (is_same<icl::interval<int >::type, discrete_interval<int > >::value) );
+ BOOST_CHECK( (is_same<icl::interval<double>::type, continuous_interval<double> >::value) );
+#endif
+
+}
+
Added: sandbox/itl/libs/itl/test/test_changing_interval_defaults_/vc9_test_changing_interval_defalts.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_changing_interval_defaults_/vc9_test_changing_interval_defalts.vcproj 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_changing_interval_defaults"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}"
+ RootNamespace="Test_changing_interval_defaults"
+ 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="4"
+ 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="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_changing_interval_defaults.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ 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_doc_code_/test_doc_code.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_doc_code_/test_doc_code.cpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -0,0 +1,72 @@
+/*-----------------------------------------------------------------------------+
+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 icl::test_doc_code unit test
+
+#include <limits>
+#include <complex>
+
+
+#include <string>
+#include <vector>
+#include <boost/mpl/list.hpp>
+#include <boost/itl/iterator.hpp>
+#include "../unit_test_unwarned.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/type_traits/is_same.hpp>
+
+#include <boost/itl/rational.hpp>
+
+#include <boost/itl/detail/interval_morphism.hpp>
+#include <boost/itl/interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+BOOST_AUTO_TEST_CASE(intro_sample_telecast)
+{
+ // Switch on my favorite telecasts using an interval_set
+ interval<int>::type news(2000, 2015);
+ interval<int>::type talk_show(2245, 2330);
+ interval_set<int> myTvProgram;
+ myTvProgram.add(news).add(talk_show);
+
+ // Iterating over elements (seconds) would be silly ...
+ for(interval_set<int>::iterator telecast = myTvProgram.begin();
+ telecast != myTvProgram.end(); ++telecast)
+ //...so this iterates over intervals
+ //TV.switch_on(*telecast);
+ cout << *telecast;
+
+ cout << endl;
+}
+
+BOOST_AUTO_TEST_CASE(interface_sample_identifiers)
+{
+ typedef interval_set<std::string, less, continuous_interval<std::string> > IdentifiersT;
+ IdentifiersT identifiers, excluded;
+
+ // special identifiers shall be excluded
+ identifiers += continuous_interval<std::string>::right_open("a", "c");
+ identifiers -= std::string("boost");
+ cout << "identifiers: " << identifiers << endl;
+
+ excluded = IdentifiersT(icl::hull(identifiers)) - identifiers;
+ cout << "excluded : " << excluded << endl;
+
+ if(icl::contains(identifiers, std::string("boost")))
+ cout << "error, identifiers.contains('boost')\n";
+}
+
Added: sandbox/itl/libs/itl/test/test_doc_code_/vc9_test_doc_code.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_doc_code_/vc9_test_doc_code.vcproj 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_doc_code"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}"
+ RootNamespace="Test_doc_code"
+ 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="4"
+ 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="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_doc_code.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ 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_icl_discrete_interval.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_icl_discrete_interval.hpp (original)
+++ sandbox/itl/libs/itl/test/test_icl_discrete_interval.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -12,14 +12,12 @@
template <class T, class IntervalT>
void discrete_interval_traits()
{
-#ifdef BOOST_MSVC
- BOOST_CHECK_EQUAL(is_interval<IntervalT>::value, true );
- BOOST_CHECK_EQUAL(is_discrete_interval<IntervalT>::value, true );
- BOOST_CHECK_EQUAL(is_discrete<typename IntervalT::domain_type>::value, true );
- BOOST_CHECK_EQUAL(is_continuous<typename IntervalT::domain_type>::value, false);
- BOOST_CHECK_EQUAL(has_dynamic_bounds<IntervalT>::value, true );
- BOOST_CHECK_EQUAL(has_static_bounds<IntervalT>::value, false);
-#endif
+ BOOST_CHECK_EQUAL( is_interval<IntervalT>::value );
+ BOOST_CHECK_EQUAL( is_discrete_interval<IntervalT>::value );
+ BOOST_CHECK_EQUAL( is_discrete<typename IntervalT::domain_type>::value );
+ BOOST_CHECK_EQUAL(!is_continuous<typename IntervalT::domain_type>::value);
+ BOOST_CHECK_EQUAL( has_dynamic_bounds<IntervalT>::value );
+ BOOST_CHECK_EQUAL(!has_static_bounds<IntervalT>::value );
}
template <class T, class IntervalT>
Modified: sandbox/itl/libs/itl/test/test_icl_interval.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_icl_interval.hpp (original)
+++ sandbox/itl/libs/itl/test/test_icl_interval.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -57,9 +57,7 @@
T t_1 = icl::unit_element<T>::value();
SizeT s_1 = icl::unit_element<SizeT>::value();
-#ifdef BOOST_MSVC
- BOOST_CHECK_EQUAL( is_singelizable<IntervalT>::value, true );
-#endif
+ BOOST_CHECK( is_singelizable<IntervalT>::value );
BOOST_CHECK_EQUAL( icl::cardinality(icl::singleton<IntervalT>(t_0)), s_1 );
BOOST_CHECK_EQUAL( icl::size(icl::singleton<IntervalT>(t_0)), s_1 );
@@ -78,9 +76,7 @@
//T t_0 = icl::identity_element<T>::value();
SizeT s_1 = icl::unit_element<SizeT>::value();
-#ifdef BOOST_MSVC
- BOOST_CHECK_EQUAL( is_singelizable<IntervalT>::value, true );
-#endif
+ BOOST_CHECK( is_singelizable<IntervalT>::value );
BOOST_CHECK_EQUAL( icl::cardinality(IntervalT(MK_v(3))), s_1 );
BOOST_CHECK_EQUAL( icl::size(IntervalT(MK_v(4))), s_1 );
Modified: sandbox/itl/libs/itl/test/test_icl_quantifier_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_icl_quantifier_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_icl_quantifier_shared.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -311,6 +311,5 @@
}
-
#endif // __TEST_ICL_QUANTIFIER_SHARED_H_JOFA_100819__
Modified: sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -246,5 +246,62 @@
}
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, U),
+ ICL_COMBINE Combine = ICL_COMBINE_INSTANCE(icl::inplace_plus, U),
+ ICL_SECTION Section = ICL_SECTION_INSTANCE(icl::inter_section, U),
+ ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, T, Compare),
+ ICL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void itv_quantifier_check_inner_complementarity_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef typename IntervalMap<T,U,Trt>::set_type IntervalSetT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ has_inner_complementarity<IntervalMapT,IntervalSetT>(map_a);
+ has_inner_complementarity<IntervalMapT,IntervalSetT>(map_b);
+ has_inner_complementarity<IntervalMapT,IntervalSetT>(map_c);
+}
+
+template <class T, class U, class Trt,
+ template<class T, class U,
+ class Traits = Trt,
+ ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, U),
+ ICL_COMBINE Combine = ICL_COMBINE_INSTANCE(icl::inplace_plus, U),
+ ICL_SECTION Section = ICL_SECTION_INSTANCE(icl::inter_section, U),
+ ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, T, Compare),
+ ICL_ALLOC Alloc = std::allocator
+ >class IntervalMap
+ >
+void itv_quantifier_check_length_complementarity_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef typename IntervalMap<T,U,Trt>::set_type IntervalSetT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ has_length_complementarity(map_a);
+ has_length_complementarity(map_b);
+ has_length_complementarity(map_c);
+
+ has_length_as_distance<IntervalMapT,IntervalSetT>(map_a);
+ has_length_as_distance<IntervalMapT,IntervalSetT>(map_b);
+ has_length_as_distance<IntervalMapT,IntervalSetT>(map_c);
+}
+
+
+
#endif // __TEST_INTERVAL_QUANTIFIER_SHARED_H_JOFA_090119__
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 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -10,6 +10,7 @@
#include <functional>
#include <boost/itl/type_traits/identity_element.hpp>
+#include <boost/itl/associative_interval_container.hpp>
namespace boost{namespace icl
{
@@ -225,9 +226,8 @@
DEFINE_INVERSE_CHECK_WRT_EQUAL(pipe, | );
//------------------------------------------------------------------------------
-// Containedness laws
+// Containedness laws (Valid for sets, NOT for maps)
//------------------------------------------------------------------------------
-
template<class Type, class TypeB>
void check_intersection_containedness(const Type& a, const TypeB& b)
{
@@ -263,6 +263,77 @@
}
}
+//------------------------------------------------------------------------------
+// Laws on inner complement, between and distance
+//------------------------------------------------------------------------------
+template<class Type, class SetT>
+bool check_length_as_distance( const Type& object
+ , SetT& in_between
+ , typename Type::difference_type& between_len
+ , typename Type::difference_type& obj_dist )
+{
+ //LAW LengthAsDistance: distance(x) == length(between(x))
+ icl::between(in_between, object);
+ between_len = icl::length(in_between);
+ obj_dist = icl::distance(object);
+ BOOST_CHECK_EQUAL(obj_dist, between_len);
+ return obj_dist == between_len;
+}
+
+template<class Type, class SetT>
+bool has_length_as_distance(const Type& object)
+{
+ typedef typename Type::difference_type DiffT;
+ SetT in_between; DiffT between_len, obj_dist;
+ return check_length_as_distance(object, in_between, between_len, obj_dist);
+}
+
+template<class Type>
+bool check_length_complementarity( const Type& object
+ , typename Type::difference_type& obj_len
+ , typename Type::difference_type& obj_dist
+ , typename Type::difference_type& hull_len )
+{
+ //LAW Length Complementarity: length(x) + distance(x) == length(hull(x))
+ obj_len = icl::length(object);
+ obj_dist = icl::distance(object);
+ hull_len = icl::length(hull(object));
+ BOOST_CHECK_EQUAL(obj_len + obj_dist, hull_len);
+ return obj_len + obj_dist == hull_len;
+}
+
+template<class Type>
+bool has_length_complementarity(const Type& object)
+{
+ typedef typename Type::difference_type DiffT;
+ DiffT obj_len, obj_dist, hull_len;
+ return check_length_complementarity(object, obj_len, obj_dist, hull_len);
+}
+
+template<class Type, class SetT>
+bool check_inner_complementarity(const Type& object, SetT& in_between, SetT& lhs, SetT& rhs)
+{
+ //LAW Inner Complementarity1: domain(x) + between(x) =e= hull(x)
+ //LAW Inner Complementarity2: join(domain(x) + between(x)) == hull(x)
+ SetT dom;
+ icl::domain(dom, object);
+ lhs = dom + between(in_between, object);
+ join(lhs);
+ rhs = SetT(hull(object));
+ BOOST_CHECK_EQUAL(lhs, rhs);
+ return lhs == rhs;
+}
+
+
+template<class Type, class SetT>
+bool has_inner_complementarity(const Type& object)
+{
+ SetT in_between, lhs, rhs;
+ return check_inner_complementarity(object, in_between, lhs, rhs);
+}
+
+
+
//==============================================================================
// Law tests are now combined to test algebraic concepts.
//------------------------------------------------------------------------------
Added: sandbox/itl/libs/itl/test/test_misc_/test_misc.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_misc_/test_misc.cpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -0,0 +1,181 @@
+/*-----------------------------------------------------------------------------+
+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 icl::misc unit test
+#include <string>
+#include <vector>
+#include <boost/mpl/list.hpp>
+#include <boost/itl/iterator.hpp>
+#include "../unit_test_unwarned.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/type_traits/is_same.hpp>
+#include <boost/itl/rational.hpp>
+
+#include <boost/itl/detail/interval_morphism.hpp>
+#include <boost/itl/interval_map.hpp>
+#include <boost/itl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+
+BOOST_AUTO_TEST_CASE(test_law_complementarity)
+{
+ //LAW Inner complementarity: x + between(x) == hull(x)
+ //LAW: length(x) + length(between(x)) = length(hull(x))
+ typedef interval_map<rational<int>, int> RatioMapT;
+ typedef interval_set<rational<int> > RatioSetT;
+ typedef RatioSetT::interval_type IntervalT;
+ typedef RatioSetT::element_type RatT;
+ typedef RatioSetT::difference_type DiffT;
+
+ RatioSetT set_a;
+ (((set_a += IntervalT(RatT(0), RatT(1) ) )
+ -= IntervalT(RatT(1,9), RatT(2,9)) )
+ -= IntervalT(RatT(3,9), RatT(4,9)) )
+ -= IntervalT(RatT(5,9), RatT(6,9));
+
+ RatioSetT between_a = RatioSetT(hull(set_a)) - set_a;
+ RatioSetT between_a2;
+ between(between_a2, set_a);
+ BOOST_CHECK_EQUAL( between_a, between_a2 );
+
+ DiffT len_set_a = length(set_a);
+ DiffT len_between_a = length(between_a);
+
+ //cout << set_a << " length= " << len_set_a << endl;
+ //cout << between_a << " length= " << len_between_a << endl;
+
+ RatioSetT span_a = set_a + between_a;
+ RatioSetT hull_a = RatioSetT(hull(set_a));
+ //cout << span_a << endl;
+
+ BOOST_CHECK_EQUAL( span_a, hull_a );
+ BOOST_CHECK_EQUAL( len_set_a + len_between_a, length(hull_a) );
+
+ BOOST_CHECK((has_inner_complementarity<RatioSetT,RatioSetT>(set_a)));
+ BOOST_CHECK((has_length_complementarity(set_a)));
+ BOOST_CHECK((has_length_as_distance<RatioSetT,RatioSetT>(set_a)));
+}
+
+
+BOOST_AUTO_TEST_CASE(test_between)
+{
+ //LAW: between(a,b) == between(b,a);
+ typedef int T;
+ typedef interval<T>::type IntervalT;
+ typedef interval_set<T> IntervalSetT;
+
+ IntervalT itv_a = I_D(1,3);
+ IntervalT itv_b = I_D(5,7);
+
+ IntervalT beween_a_b = between(itv_a, itv_b);
+ IntervalT beween_b_a = between(itv_b, itv_a);
+
+ //cout << beween_a_b << endl;
+ //cout << beween_b_a << endl;
+ BOOST_CHECK_EQUAL( beween_a_b, beween_b_a );
+}
+
+
+BOOST_AUTO_TEST_CASE(element_iteration)
+{
+ interval_map<int,int> map_a;
+ map_a += make_pair(interval<int>::right_open(0,3),1);
+ //cout << map_a << endl;
+
+ //for(interval_map<int,int>::element_iterator elem = elements_begin(map_a);
+ // elem != elements_end(map_a); elem++)
+ // cout << "(" << elem->first << "," << elem->second << ")";
+ //cout << "\n-------------------------------------\n";
+
+ std::pair<const int, int> search_pair(2,1);
+
+ //interval_map<int,int>::element_const_iterator found
+ interval_map<int,int>::element_iterator found
+ = std::find(elements_begin(map_a), elements_end(map_a), search_pair);
+ // cout << "(" << found->first << "," << found->second << ")\n";
+ BOOST_CHECK_EQUAL( found->first, 2 );
+ BOOST_CHECK_EQUAL( found->second, 1 );
+
+ // Assignment of an associated value via element_iterator
+ const_cast<int&>(found->second) = 2;
+ // cout << map_a << endl;
+ BOOST_CHECK_EQUAL( map_a.begin()->second, 2 );
+}
+
+
+BOOST_AUTO_TEST_CASE(test_interval_bounds_1)
+{
+ BOOST_CHECK_EQUAL(left_bracket(interval_bounds::closed()), "[");
+ BOOST_CHECK_EQUAL(left_bracket(interval_bounds::right_open()), "[");
+ BOOST_CHECK_EQUAL(left_bracket(interval_bounds::left_open()), "(");
+ BOOST_CHECK_EQUAL(left_bracket(interval_bounds::open()), "(");
+ BOOST_CHECK_EQUAL(right_bracket(interval_bounds::closed()), "]");
+ BOOST_CHECK_EQUAL(right_bracket(interval_bounds::right_open()), ")");
+ BOOST_CHECK_EQUAL(right_bracket(interval_bounds::left_open()), "]");
+ BOOST_CHECK_EQUAL(right_bracket(interval_bounds::open()), ")");
+
+ continuous_interval<double> a_1 = continuous_interval<double>(-5.0, -2.3, interval_bounds::closed());
+ continuous_interval<double> b_1 = continuous_interval<double>(-2.6, 4.0, interval_bounds::closed());
+
+ split_interval_set<double> a, b, a_o_b, b_o_a;
+ a_o_b += a_1;
+ a_o_b += b_1;
+
+ b_o_a += b_1;
+ b_o_a += a_1;
+
+ BOOST_CHECK_EQUAL(a_o_b, b_o_a);
+
+ continuous_interval<double> c_1 = continuous_interval<double>(1.0, 3.0, interval_bounds::closed());
+ continuous_interval<double> b_2 = right_subtract(b_1, c_1);
+
+ BOOST_CHECK_EQUAL(b_2.bounds(), interval_bounds::right_open());
+ BOOST_CHECK_EQUAL(icl::bounds(b_2), interval_bounds::right_open());
+
+ continuous_interval<double> L0T = continuous_interval<double>(0.0, 0.0, interval_bounds::closed());
+ continuous_interval<double> C0T = continuous_interval<double>(0.0, 0.0, interval_bounds::left_open());
+ continuous_interval<double> L0D = continuous_interval<double>(0.0, 0.0, interval_bounds::right_open());
+ continuous_interval<double> C0D = continuous_interval<double>(0.0, 0.0, interval_bounds::open());
+
+ BOOST_CHECK_EQUAL(icl::is_empty(L0T), false);
+ BOOST_CHECK_EQUAL(icl::is_empty(C0T), true);
+ BOOST_CHECK_EQUAL(icl::is_empty(L0D), true);
+ BOOST_CHECK_EQUAL(icl::is_empty(C0D), true);
+
+
+ continuous_interval<double> L0_1T = continuous_interval<double>(0.0, 1.0, interval_bounds::closed());
+ continuous_interval<double> L1_2T = continuous_interval<double>(1.0, 2.0, interval_bounds::closed());
+ BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1T, L1_2T), false);
+ BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1T, L1_2T) == interval_bounds::open(), true);
+
+ continuous_interval<double> L0_1D = continuous_interval<double>(0.0, 1.0, interval_bounds::right_open());
+ BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1D, L1_2T), true);
+ BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1D, L1_2T) == interval_bounds::right_open(), true);
+
+ continuous_interval<double> C1_2T = continuous_interval<double>(1.0, 2.0, interval_bounds::left_open());
+ BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1T, C1_2T), true);
+ BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1T, C1_2T) == interval_bounds::left_open(), true);
+
+ BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1D, C1_2T), true);
+ BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1D, C1_2T) == interval_bounds::closed(), true);
+
+ BOOST_CHECK_EQUAL(static_cast<int>(icl::right(L0_1T.bounds()).bits()), 1);
+ BOOST_CHECK_EQUAL(static_cast<int>(icl::right(L0_1D.bounds()).bits()), 0);
+
+ BOOST_CHECK_EQUAL(icl::right_bounds(L0_1D, L0_1T), interval_bounds::left_open());
+}
+
Added: sandbox/itl/libs/itl/test/test_misc_/vc9_test_misc.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_misc_/vc9_test_misc.vcproj 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_misc"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}"
+ RootNamespace="Test_misc"
+ 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="4"
+ 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="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_misc.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ 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_partial_interval_quantifier_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_partial_interval_quantifier_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_partial_interval_quantifier_cases.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -60,5 +60,27 @@
// partial x - x == 0 x - x =p= 0 partiality of subtraction
// total (-x)+ x == 0 (-x)+ x =p= 0 totality of subtraction
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_enricher_itv_quantifier_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<T, int, partial_enricher, interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_enricher_itv_quantifier_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<T, double, partial_enricher, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_absorber_itv_quantifier_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<T, int, partial_absorber, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_absorber_itv_quantifier_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<T, double, partial_absorber, interval_map>();}
+
+
+
#endif // BOOST_ICL_TEST_PARTIAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090701
Modified: sandbox/itl/libs/itl/test/test_quantifier_map_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_quantifier_map_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_quantifier_map_shared.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -246,6 +246,5 @@
CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(pipe) (is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
}
-
#endif // __test_itl_itv_quantifier_shared_h_JOFA_090119__
Modified: sandbox/itl/libs/itl/test/test_set_interval_set_/test_set_interval_set_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_interval_set_/test_set_interval_set_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_set_interval_set_/test_set_interval_set_cases.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -67,5 +67,52 @@
(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>();}
+//------------------------------------------------------------------------------
+// Containedness
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_set_check_containedness_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_split_interval_set_check_containedness_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<T, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_separate_interval_set_check_containedness_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<T, separate_interval_set>();}
+
+//------------------------------------------------------------------------------
+// Inner Complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_set_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_separate_interval_set_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_split_interval_set_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<T, split_interval_set>();}
+
+//------------------------------------------------------------------------------
+// Inner Complement and Distance
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_set_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_separate_interval_set_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_split_interval_set_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<T, split_interval_set>();}
+
+
+
#endif // BOOST_ICL_TEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090701
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 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -202,6 +202,60 @@
}
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+template <class T,
+ template<class T,
+ ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, U),
+ ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, T, Compare),
+ ICL_ALLOC Alloc = std::allocator
+ >class IntervalSet
+ >
+void interval_set_check_inner_complementarity_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::segment_type segment_type;
+ typedef typename IntervalSetT::element_type element_type;
+
+ IntervalSetT set_a, set_b, set_c;
+ segment_type segm_d;
+ element_type elem_e;
+ make_3_interval_sets_and_derivatives_1(set_a, set_b, set_c, segm_d, elem_e);
+
+ has_inner_complementarity<IntervalSetT,IntervalSetT>(set_a);
+ has_inner_complementarity<IntervalSetT,IntervalSetT>(set_b);
+ has_inner_complementarity<IntervalSetT,IntervalSetT>(set_c);
+}
+
+template <class T,
+ template<class T,
+ ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, U),
+ ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, T, Compare),
+ ICL_ALLOC Alloc = std::allocator
+ >class IntervalSet
+ >
+void interval_set_check_length_complementarity_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::segment_type segment_type;
+ typedef typename IntervalSetT::element_type element_type;
+
+ IntervalSetT set_a, set_b, set_c;
+ segment_type segm_d;
+ element_type elem_e;
+ make_3_interval_sets_and_derivatives_1(set_a, set_b, set_c, segm_d, elem_e);
+
+ has_length_complementarity(set_a);
+ has_length_complementarity(set_b);
+ has_length_complementarity(set_c);
+
+ has_length_as_distance<IntervalSetT,IntervalSetT>(set_a);
+ has_length_as_distance<IntervalSetT,IntervalSetT>(set_b);
+ has_length_as_distance<IntervalSetT,IntervalSetT>(set_c);
+}
+
+
#endif // __test_itl_set_interval_set_h_JOFA_090119__
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 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -23,8 +23,7 @@
{
typedef IntervalSet<T> IntervalSetT;
typedef typename IntervalSetT::interval_type IntervalT;
- //typedef std::set<T> SetT;
- typedef interprocess::set<T> SetT;
+ typedef std::set<T> SetT;
IntervalSetT itv_set_a, itv_set_b, itv_set_c;
itv_set_a.add(I_D(3,6)).add(I_I(5,7));
@@ -54,8 +53,7 @@
{
typedef IntervalSet<T> IntervalSetT;
typedef typename IntervalSetT::interval_type IntervalT;
- //typedef std::set<T> SetT;
- typedef interprocess::set<T> SetT;
+ typedef std::set<T> SetT;
IntervalSetT itv_set_a, itv_set_b, itv_set_c;
itv_set_a.add(I_D(3,6)).add(I_I(5,7));
@@ -89,8 +87,7 @@
{
typedef IntervalSet<T> IntervalSetT;
typedef typename IntervalSetT::interval_type IntervalT;
- //typedef std::set<T> SetT;
- typedef interprocess::set<T> SetT;
+ typedef std::set<T> SetT;
IntervalSetT itv_set_a, itv_set_b, itv_set_c;
itv_set_a.add(I_D(3,6)).add(I_I(5,7));
@@ -120,8 +117,7 @@
{
typedef IntervalSet<T> IntervalSetT;
typedef typename IntervalSetT::interval_type IntervalT;
- //typedef std::set<T> SetT;
- typedef interprocess::set<T> SetT;
+ typedef std::set<T> SetT;
IntervalSetT itv_set_a, itv_set_b, itv_set_c;
itv_set_a.add(I_D(3,6)).add(I_I(5,7));
@@ -155,8 +151,7 @@
{
typedef IntervalSet<T> IntervalSetT;
typedef typename IntervalSetT::interval_type IntervalT;
- //typedef std::set<T> SetT;
- typedef interprocess::set<T> SetT;
+ typedef std::set<T> SetT;
IntervalSetT itv_set_a, itv_set_b, itv_set_c;
itv_set_a.add(I_D(3,6)).add(I_I(5,7));
Modified: sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -77,5 +77,24 @@
// partial x - x == 0 x - x =p= 0 partiality of subtraction
// total (-x)+ x == 0 (-x)+ x =p= 0 totality of subtraction
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<T, int, total_enricher, interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<T, double, total_enricher, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_absorber_itv_quantifier_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<T, int, total_absorber, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_absorber_itv_quantifier_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<T, double, total_absorber, interval_map>();}
+
#endif // BOOST_ICL_TEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090701
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 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -11,7 +11,7 @@
#include <boost/mpl/list.hpp>
// interval instance types
-// #include <boost/itl/gregorian.hpp>
+#include <boost/itl/gregorian.hpp>
#include <boost/itl/ptime.hpp>
#include <boost/itl/rational.hpp>
Added: sandbox/itl/libs/itl/test/test_type_traits_/test_type_traits.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_type_traits_/test_type_traits.cpp 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -0,0 +1,129 @@
+/*-----------------------------------------------------------------------------+
+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 icl::test_type_traits unit test
+
+#include <limits>
+#include <complex>
+#include <string>
+#include <vector>
+#include <set>
+#include <boost/mpl/list.hpp>
+#include <boost/itl/iterator.hpp>
+#include "../unit_test_unwarned.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/type_traits/is_same.hpp>
+
+#include <boost/itl/rational.hpp>
+#include <boost/itl/interval_map.hpp>
+#include <boost/itl/map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+void digits_of_numeric_types()
+{
+ cout << "--- limits ---\n";
+ cout << "max<char> = " << (std::numeric_limits<char>::max)() << endl;
+ cout << "max<char> = " << static_cast<int>((std::numeric_limits<char>::max)()) << endl;
+ cout << "-----------------------------------\n";
+ cout << "digits<char> = " << std::numeric_limits<char>::digits << endl;
+ cout << "digits<short> = " << std::numeric_limits<short>::digits << endl;
+ cout << "digits<float> = " << std::numeric_limits<float>::digits << endl;
+ cout << "digits<double> = " << std::numeric_limits<double>::digits << endl;
+ cout << "digits<complex<double>> = " << std::numeric_limits<std::complex<double> >::digits << endl;
+ cout << "digits<string> = " << std::numeric_limits<std::string>::digits << endl;
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_infinity)
+{
+ BOOST_CHECK_EQUAL(icl::infinity<int>::value(), (std::numeric_limits<int>::max)());
+ BOOST_CHECK(0 != icl::infinity<int>::value());
+}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_is_continuous_type_T, T, continuous_types)
+{
+ BOOST_CHECK(is_continuous<T>::value);
+ BOOST_CHECK(!is_discrete<T>::value);
+}
+
+BOOST_AUTO_TEST_CASE(test_is_continuous_type)
+{
+ BOOST_CHECK(is_continuous<std::vector<int> >::value);
+ BOOST_CHECK(!is_discrete<std::vector<int> >::value);
+}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_is_discrete_type_T, T, discrete_types)
+{
+ BOOST_CHECK(is_discrete<T>::value);
+ BOOST_CHECK(!is_continuous<T>::value);
+}
+
+BOOST_AUTO_TEST_CASE(test_is_discrete_type)
+{
+ BOOST_CHECK(is_discrete<boost::gregorian::date>::value);
+ BOOST_CHECK(!is_continuous<boost::gregorian::date>::value);
+}
+
+BOOST_AUTO_TEST_CASE(test_is_key_container_of)
+{
+ BOOST_CHECK((!is_key_container_of<int, icl::map<int,int> >::value));
+ BOOST_CHECK((!is_key_container_of<std::pair<int,int> , icl::map<int,int> >::value));
+ BOOST_CHECK(( is_key_container_of<std::set<int>, std::set<int> >::value));
+ BOOST_CHECK(( is_key_container_of<std::set<int>, icl::map<int,int> >::value));
+ BOOST_CHECK(( is_key_container_of<icl::map<int,int>, icl::map<int,int> >::value));
+}
+
+BOOST_AUTO_TEST_CASE(test_is_set_4_std_set)
+{
+ BOOST_CHECK( (is_set<std::set<int> >::value) );
+ BOOST_CHECK( (is_element_set<std::set<int> >::value) );
+ BOOST_CHECK( (!is_map<std::set<int> >::value) );
+}
+
+BOOST_AUTO_TEST_CASE(test_miscellaneous_type_traits)
+{
+ typedef interval_set<int> IntervalSetT;
+ typedef icl::map<int,int> MapII;
+
+ BOOST_CHECK(has_codomain_type<MapII>::value);
+ BOOST_CHECK((is_same<MapII::codomain_type, int>::value));
+
+ BOOST_CHECK((is_map<MapII>::value));
+ BOOST_CHECK((is_icl_container<MapII>::value));
+
+ BOOST_CHECK((is_fragment_of<IntervalSetT::element_type, IntervalSetT>::value));
+ BOOST_CHECK((is_fragment_of<IntervalSetT::segment_type, IntervalSetT>::value));
+ BOOST_CHECK((!is_fragment_of<double, IntervalSetT>::value));
+
+ BOOST_CHECK((boost::detail::is_incrementable<int>::value));
+ BOOST_CHECK((boost::detail::is_incrementable<double>::value));
+ BOOST_CHECK((!boost::detail::is_incrementable<std::string>::value));
+
+ BOOST_CHECK((is_floating_point<long double>::value));
+ BOOST_CHECK((is_floating_point<double>::value));
+ BOOST_CHECK((is_floating_point<float>::value));
+
+ BOOST_CHECK( (is_same<key_type_of<std::set<int> >::type, int>::value) );
+ BOOST_CHECK( (is_same<value_type_of<std::set<int> >::type, int>::value) );
+
+ BOOST_CHECK( is_std_set<std::set<int> >::value);
+ BOOST_CHECK( !is_std_set<interval_set<int> >::value);
+ BOOST_CHECK((!is_std_set<std::map<int,int> >::value));
+ BOOST_CHECK( is_element_set<std::set<int> >::value);
+ BOOST_CHECK( !is_interval_set<std::set<int> >::value);
+ BOOST_CHECK( !is_interval_set<std::set<int> >::value);
+}
+
Added: sandbox/itl/libs/itl/test/test_type_traits_/vc9_test_type_traits.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_type_traits_/vc9_test_type_traits.vcproj 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_type_traits"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}"
+ RootNamespace="Test_type_traits"
+ 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="4"
+ 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="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_type_traits.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ 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/vc9_fast_tests.sln
==============================================================================
--- sandbox/itl/libs/itl/test/vc9_fast_tests.sln (original)
+++ sandbox/itl/libs/itl/test/vc9_fast_tests.sln 2010-10-28 12:22:41 EDT (Thu, 28 Oct 2010)
@@ -45,6 +45,14 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_combinable", "test_combinable_\vc9_test_combinable.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_misc", "test_misc_\vc9_test_misc.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_doc_code", "test_doc_code_\vc9_test_doc_code.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_type_traits", "test_type_traits_\vc9_test_type_traits.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_changing_interval_defaults", "test_changing_interval_defaults_\vc9_test_changing_interval_defalts.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -139,6 +147,22 @@
{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.Build.0 = Debug|Win32
{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.ActiveCfg = Release|Win32
{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.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