Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r54608 - in sandbox/itl: boost/itl/detail libs/itl/build/win32 libs/itl/example/partys_tallest_guests_ libs/itl/test libs/itl/test/fastest_interval_map_ libs/itl/test/fastest_interval_map_infix_ libs/itl/test/fastest_interval_map_infix_mixed_ libs/itl/test/fastest_interval_map_mixed2_ libs/itl/test/fastest_interval_map_mixed_ libs/itl/test/fastest_interval_set_ libs/itl/test/fastest_interval_set_infix_ libs/itl/test/fastest_interval_set_mixed_ libs/itl/test/fastest_itl_interval_ libs/itl/test/fastest_itl_map_ libs/itl/test/fastest_partial_interval_quantifier_ libs/itl/test/fastest_separate_interval_set_ libs/itl/test/fastest_separate_interval_set_infix_ libs/itl/test/fastest_set_interval_set_ libs/itl/test/fastest_set_itl_set_ libs/itl/test/fastest_split_interval_map_ libs/itl/test/fastest_split_interval_map_infix_ libs/itl/test/fastest_split_interval_set_ libs/itl/test/fastest_split_interval_set_infix_ libs/itl/test/fastest_total_interval_quantifier_ libs/itl/test/test_interval_map_mixed2_ libs/itl/test/test_interval_set_mixed_ libs/itl/test/test_itl_interval_ libs/itl/test/test_itl_map_ libs/itl/test/test_set_interval_set_ libs/itl/test/test_set_itl_set_
From: afojgo_at_[hidden]
Date: 2009-07-03 09:30:06


Author: jofaber
Date: 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
New Revision: 54608
URL: http://svn.boost.org/trac/boost/changeset/54608

Log:
Added tests: Generic tests iterating over typelists using BOOST_AUTO_TEST_CASE_TEMPLATE
macro were very slow, specifically liniking gcc code on linux.
A new test suite containing faster non generic tests 'fastest_...' has been added.
Stable {msvc-9.0}
Added:
   sandbox/itl/libs/itl/test/fastest_interval_map_/
   sandbox/itl/libs/itl/test/fastest_interval_map_/fastest_interval_map.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_/
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_/fastest_interval_map_infix.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/
   sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_mixed_/
   sandbox/itl/libs/itl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_map_mixed_/vc9_fastest_interval_map_mixed.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_set_/
   sandbox/itl/libs/itl/test/fastest_interval_set_/fastest_interval_set.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_set_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_set_infix_/
   sandbox/itl/libs/itl/test/fastest_interval_set_infix_/fastest_interval_set_infix.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_set_infix_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/
   sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_itl_interval_/
   sandbox/itl/libs/itl/test/fastest_itl_interval_/fastest_itl_interval.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_itl_interval_/vc9_fastest_itl_interval.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_itl_map_/
   sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_itl_map_/vc9_fastest_itl_map.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_/
   sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_separate_interval_set_/
   sandbox/itl/libs/itl/test/fastest_separate_interval_set_/fastest_separate_interval_set.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_separate_interval_set_/vc9_fastest_separate_interval_set.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_separate_interval_set_infix_/
   sandbox/itl/libs/itl/test/fastest_separate_interval_set_infix_/fastest_separate_interval_set_infix.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_set_interval_set_/
   sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_set_interval_set_/vc9_fastest_set_interval_set.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_set_itl_set_/
   sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set_shared.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_set_itl_set_/vc9_fastest_set_itl_set.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_map_/
   sandbox/itl/libs/itl/test/fastest_split_interval_map_/fastest_split_interval_map.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_map_/fastest_split_interval_map_shared.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_map_infix_/
   sandbox/itl/libs/itl/test/fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_map_infix_/vc9_fastest_split_interval_map_infix.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_set_/
   sandbox/itl/libs/itl/test/fastest_split_interval_set_/fastest_split_interval_set.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_set_/fastest_split_interval_set_shared.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_set_/vc9_fastest_split_interval_set.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_set_infix_/
   sandbox/itl/libs/itl/test/fastest_split_interval_set_infix_/fastest_split_interval_set_infix.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_split_interval_set_infix_/vc9_fastest_split_interval_set_infix.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_/
   sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj (contents, props changed)
   sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_interval_map_mixed.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_interval_set_mixed.hpp (contents, props changed)
   sandbox/itl/libs/itl/test/test_itl_interval.hpp (contents, props changed)
Text files modified:
   sandbox/itl/boost/itl/detail/design_config.hpp | 8
   sandbox/itl/libs/itl/build/win32/vc9_all.sln | 120 ++++
   sandbox/itl/libs/itl/example/partys_tallest_guests_/partys_tallest_guests.cpp | 6
   sandbox/itl/libs/itl/test/Jamfile.v2 | 42
   sandbox/itl/libs/itl/test/test_interval_map_cases.hpp | 6
   sandbox/itl/libs/itl/test/test_interval_map_infix_cases.hpp | 45
   sandbox/itl/libs/itl/test/test_interval_map_mixed2_/test_interval_map_mixed2.cpp | 1036 ++-------------------------------------
   sandbox/itl/libs/itl/test/test_interval_set_cases.hpp | 29
   sandbox/itl/libs/itl/test/test_interval_set_infix_cases.hpp | 5
   sandbox/itl/libs/itl/test/test_interval_set_mixed_/test_interval_set_mixed.cpp | 881 ++-------------------------------
   sandbox/itl/libs/itl/test/test_itl_interval_/test_itl_interval.cpp | 77 ++
   sandbox/itl/libs/itl/test/test_itl_map_/test_itl_map_cases.hpp | 5
   sandbox/itl/libs/itl/test/test_partial_interval_quantifier_cases.hpp | 5
   sandbox/itl/libs/itl/test/test_set_interval_set_/test_set_interval_set_cases.hpp | 6
   sandbox/itl/libs/itl/test/test_set_itl_set_/test_set_itl_set_cases.hpp | 7
   sandbox/itl/libs/itl/test/test_set_itl_set_cases.hpp | 6
   sandbox/itl/libs/itl/test/test_total_interval_quantifier_cases.hpp | 5
   sandbox/itl/libs/itl/test/test_type_lists.hpp | 36 +
   18 files changed, 448 insertions(+), 1877 deletions(-)

Modified: sandbox/itl/boost/itl/detail/design_config.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/design_config.hpp (original)
+++ sandbox/itl/boost/itl/detail/design_config.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -26,12 +26,12 @@
 // template type parameter variants.
 
 #define ITL_USE_COMPARE_TEMPLATE_TEMPLATE
-#define ITL_USE_COMBINE_TEMPLATE_TEMPLATE
-#define ITL_USE_SECTION_TEMPLATE_TEMPLATE
+//#define ITL_USE_COMBINE_TEMPLATE_TEMPLATE
+//#define ITL_USE_SECTION_TEMPLATE_TEMPLATE
 
 //#define ITL_USE_COMPARE_TEMPLATE_TYPE
-//#define ITL_USE_COMBINE_TEMPLATE_TYPE
-//#define ITL_USE_SECTION_TEMPLATE_TYPE
+#define ITL_USE_COMBINE_TEMPLATE_TYPE
+#define ITL_USE_SECTION_TEMPLATE_TYPE
 
 //------------------------------------------------------------------------------
 // template parameter Compare can not be a template type parameter as long as

Modified: sandbox/itl/libs/itl/build/win32/vc9_all.sln
==============================================================================
--- sandbox/itl/libs/itl/build/win32/vc9_all.sln (original)
+++ sandbox/itl/libs/itl/build/win32/vc9_all.sln 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -91,6 +91,46 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_mixed2", "..\..\test\test_interval_map_mixed2_\vc9_test_interval_map_mixed2.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map", "..\..\test\fastest_interval_map_\vc9_fastest_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_infix", "..\..\test\fastest_interval_map_infix_\vc9_fastest_interval_map_infix.vcproj", "{0FBD7F60-6470-41BB-8F8C-F47E9765C011}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_infix_mixed", "..\..\test\fastest_interval_map_infix_mixed_\vc9_fastest_interval_map_infix_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_mixed2", "..\..\test\fastest_interval_map_mixed2_\vc9_fastest_interval_map_mixed2.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_mixed", "..\..\test\fastest_interval_map_mixed_\vc9_fastest_interval_map_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set", "..\..\test\fastest_interval_set_\vc9_fastest_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set_infix", "..\..\test\fastest_interval_set_infix_\vc9_fastest_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D1623E906E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set_mixed", "..\..\test\fastest_interval_set_mixed_\vc9_fastest_interval_set_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_itl_interval", "..\..\test\fastest_itl_interval_\vc9_fastest_itl_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_itl_map", "..\..\test\fastest_itl_map_\vc9_fastest_itl_map.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_partial_interval_quantifier", "..\..\test\fastest_partial_interval_quantifier_\vc9_fastest_partial_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_separate_interval_set", "..\..\test\fastest_separate_interval_set_\vc9_fastest_separate_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_separate_interval_set_infix", "..\..\test\fastest_separate_interval_set_infix_\vc9_fastest_separate_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D2623E911E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_set_interval_set", "..\..\test\fastest_set_interval_set_\vc9_fastest_set_interval_set.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_set_itl_set", "..\..\test\fastest_set_itl_set_\vc9_fastest_set_itl_set.vcproj", "{33577D13-D562-4E3F-89F2-A8885151D13F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_split_interval_map", "..\..\test\fastest_split_interval_map_\vc9_fastest_split_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_split_interval_map_infix", "..\..\test\fastest_split_interval_map_infix_\vc9_fastest_split_interval_map_infix.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A914D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_split_interval_set", "..\..\test\fastest_split_interval_set_\vc9_fastest_split_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_split_interval_set_infix", "..\..\test\fastest_split_interval_set_infix_\vc9_fastest_split_interval_set_infix.vcproj", "{A731623C-94BC-4666-A419-35D3623E916E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_total_interval_quantifier", "..\..\test\fastest_total_interval_quantifier_\vc9_fastest_total_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -277,6 +317,86 @@
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Debug|Win32.Build.0 = Debug|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Release|Win32.ActiveCfg = Release|Win32
                 {EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.Build.0 = Release|Win32
+ {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Debug|Win32.Build.0 = Debug|Win32
+ {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Release|Win32.ActiveCfg = Release|Win32
+ {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.Build.0 = Release|Win32
+ {A731623C-94BC-4666-A419-35D1623E906E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A731623C-94BC-4666-A419-35D1623E906E}.Debug|Win32.Build.0 = Debug|Win32
+ {A731623C-94BC-4666-A419-35D1623E906E}.Release|Win32.ActiveCfg = Release|Win32
+ {A731623C-94BC-4666-A419-35D1623E906E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.Build.0 = Release|Win32
+ {A731623C-94BC-4666-A419-35D2623E911E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A731623C-94BC-4666-A419-35D2623E911E}.Debug|Win32.Build.0 = Debug|Win32
+ {A731623C-94BC-4666-A419-35D2623E911E}.Release|Win32.ActiveCfg = Release|Win32
+ {A731623C-94BC-4666-A419-35D2623E911E}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.Build.0 = Release|Win32
+ {33577D13-D562-4E3F-89F2-A8885151D13F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {33577D13-D562-4E3F-89F2-A8885151D13F}.Debug|Win32.Build.0 = Debug|Win32
+ {33577D13-D562-4E3F-89F2-A8885151D13F}.Release|Win32.ActiveCfg = Release|Win32
+ {33577D13-D562-4E3F-89F2-A8885151D13F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A914D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A914D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A914D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A914D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Release|Win32.Build.0 = Release|Win32
+ {A731623C-94BC-4666-A419-35D3623E916E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A731623C-94BC-4666-A419-35D3623E916E}.Debug|Win32.Build.0 = Debug|Win32
+ {A731623C-94BC-4666-A419-35D3623E916E}.Release|Win32.ActiveCfg = Release|Win32
+ {A731623C-94BC-4666-A419-35D3623E916E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE

Modified: sandbox/itl/libs/itl/example/partys_tallest_guests_/partys_tallest_guests.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/partys_tallest_guests_/partys_tallest_guests.cpp (original)
+++ sandbox/itl/libs/itl/example/partys_tallest_guests_/partys_tallest_guests.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -41,13 +41,13 @@
 
 
 // A party's height shall be defined as the maximum height of all guests ;-)
-// The last parameter 'inplace_max' is a functor template that calls a max
+// The last parameter 'inplace_max<int>' is a functor template that calls a max
 // aggregation on overlap.
-typedef interval_map<ptime, int, partial_absorber, less, inplace_max>
+typedef interval_map<ptime, int, partial_absorber, less, inplace_max<int> >
     PartyHeightHistoryT;
 
 // Using a split_interval_map we preserve interval splittings that occured via insertion.
-typedef split_interval_map<ptime, int, partial_absorber, less, inplace_max>
+typedef split_interval_map<ptime, int, partial_absorber, less, inplace_max<int> >
     PartyHeightSplitHistoryT;
 
 void partys_height()

Modified: sandbox/itl/libs/itl/test/Jamfile.v2
==============================================================================
--- sandbox/itl/libs/itl/test/Jamfile.v2 (original)
+++ sandbox/itl/libs/itl/test/Jamfile.v2 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -1,4 +1,4 @@
-# (C) Copyright 2008: Joachim Faulhaber
+# (C) Copyright 2008-2009: Joachim Faulhaber
 # Distributed under the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -17,36 +17,36 @@
 test-suite "itl"
     :
       # interval
- [ run test_itl_interval_/test_itl_interval.cpp ]
+ [ run fastest_itl_interval_/fastest_itl_interval.cpp ]
       
       # sets
- [ run test_interval_set_/test_interval_set.cpp ]
- [ run test_interval_set_infix_/test_interval_set_infix.cpp ]
+ [ run fastest_interval_set_/fastest_interval_set.cpp ]
+ [ run fastest_interval_set_infix_/fastest_interval_set_infix.cpp ]
       
- [ run test_separate_interval_set_/test_separate_interval_set.cpp ]
- [ run test_separate_interval_set_infix_/test_separate_interval_set_infix.cpp ]
+ [ run fastest_separate_interval_set_/fastest_separate_interval_set.cpp ]
+ [ run fastest_separate_interval_set_infix_/fastest_separate_interval_set_infix.cpp ]
       
- [ run test_split_interval_set_/test_split_interval_set.cpp ]
- [ run test_split_interval_set_infix_/test_split_interval_set_infix.cpp ]
+ [ run fastest_split_interval_set_/fastest_split_interval_set.cpp ]
+ [ run fastest_split_interval_set_infix_/fastest_split_interval_set_infix.cpp ]
             
- [ run test_interval_set_mixed_/test_interval_set_mixed.cpp ]
+ [ run fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp ]
       
       # maps
- [ run test_interval_map_/test_interval_map.cpp ]
- [ run test_interval_map_infix_/test_interval_map_infix.cpp ]
- [ run test_split_interval_map_/test_split_interval_map.cpp ]
- [ run test_split_interval_map_infix_/test_split_interval_map_infix.cpp ]
- [ run test_interval_map_mixed_/test_interval_map_mixed.cpp ]
- [ run test_interval_map_mixed2_/test_interval_map_mixed2.cpp ]
- [ run test_interval_map_infix_mixed_/test_interval_map_infix_mixed.cpp ]
- [ run test_itl_map_/test_itl_map.cpp ]
+ [ run fastest_interval_map_/fastest_interval_map.cpp ]
+ [ run fastest_interval_map_infix_/fastest_interval_map_infix.cpp ]
+ [ run fastest_split_interval_map_/fastest_split_interval_map.cpp ]
+ [ run fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp ]
+ [ run fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp ]
+ [ run fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp ]
+ [ run fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp ]
+ [ run fastest_itl_map_/fastest_itl_map.cpp ]
 
       # handcoded tests using laws (not LaBatea) -------------------------------
       # Concept Set
- [ run test_set_interval_set_/test_set_interval_set.cpp ]
- [ run test_set_itl_set_/test_set_itl_set.cpp ]
+ [ run fastest_set_interval_set_/fastest_set_interval_set.cpp ]
+ [ run fastest_set_itl_set_/fastest_set_itl_set.cpp ]
       
       # Concept Map
- [ run test_partial_interval_quantifier_/test_partial_interval_quantifier.cpp ]
- [ run test_total_interval_quantifier_/test_total_interval_quantifier.cpp ]
+ [ run fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp ]
+ [ run fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp ]
     ;

Added: sandbox/itl/libs/itl/test/fastest_interval_map_/fastest_interval_map.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_/fastest_interval_map.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,32 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_map unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../fastest_interval_map_cases.hpp"
+
+

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

Added: sandbox/itl/libs/itl/test/fastest_interval_map_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,67 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_fastest_interval_map_cases_hpp_JOFA_090702__
+#define __itl_fastest_interval_map_cases_hpp_JOFA_090702__
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_fundamentals_4_ordered_types)
+{ interval_map_fundamentals_4_ordered_types<INTERVAL_MAP, ordered_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_ctor_4_bicremental_types)
+{ interval_map_ctor_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_add_sub_4_bicremental_types)
+{ interval_map_add_sub_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_distinct_4_bicremental_types)
+{ interval_map_distinct_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_distinct_4_bicremental_continuous_types)
+{ interval_map_distinct_4_bicremental_continuous_types<INTERVAL_MAP, continuous_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_isolate_4_bicremental_continuous_types)
+{ interval_map_isolate_4_bicremental_continuous_types<INTERVAL_MAP, continuous_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_contains_4_bicremental_types)
+{ interval_map_contains_4_bicremental_types<INTERVAL_MAP, bicremental_type_4, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_operators_4_bicremental_types)
+{ interval_map_operators_4_bicremental_types<INTERVAL_MAP, bicremental_type_5, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_base_intersect_4_bicremental_types)
+{ interval_map_base_intersect_4_bicremental_types<INTERVAL_MAP, bicremental_type_6, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_base_erase_4_bicremental_types)
+{ interval_map_base_erase_4_bicremental_types<INTERVAL_MAP, bicremental_type_7, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_base_is_disjoint_4_bicremental_types)
+{ interval_map_base_is_disjoint_4_bicremental_types<INTERVAL_MAP, bicremental_type_8, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_flip_4_bicremental_types)
+{ interval_map_flip_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_find_4_bicremental_types)
+{ interval_map_find_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_set_4_bicremental_types)
+{ interval_map_set_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
+#endif // __itl_fastest_interval_map_cases_hpp_JOFA_090702__
+

Added: sandbox/itl/libs/itl/test/fastest_interval_map_infix_/fastest_interval_map_infix.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_infix_/fastest_interval_map_infix.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_map_infix unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/separate_interval_set.hpp>
+#include <boost/itl/split_interval_set.hpp>
+#include <boost/itl/interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_map_shared are tests that should give identical results for all
+// interval_maps: interval_map and split_interval_map.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_interval_map_infix_cases.hpp"
+
+

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

Added: sandbox/itl/libs/itl/test/fastest_interval_map_infix_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_infix_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,32 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_fastest_interval_map_infix_cases_hpp_JOFA_090702__
+#define __itl_fastest_interval_map_infix_cases_hpp_JOFA_090702__
+
+BOOST_AUTO_TEST_CASE
+(test_itl_interval_map_infix_plus_overload_4_bicremental_types)
+{ interval_map_infix_plus_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(test_itl_interval_map_infix_pipe_overload_4_bicremental_types)
+{ interval_map_infix_pipe_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(test_itl_interval_map_infix_minus_overload_4_bicremental_types)
+{ interval_map_infix_minus_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(test_itl_interval_map_infix_et_overload_4_bicremental_types)
+{ interval_map_infix_et_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_4, int>();}
+
+BOOST_AUTO_TEST_CASE
+(test_itl_interval_map_infix_caret_overload_4_bicremental_types)
+{ interval_map_infix_caret_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+
+#endif // __itl_fastest_interval_map_infix_cases_hpp_JOFA_090702__
+

Added: sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,44 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_map_infix_mixed unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#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>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+#include "../test_interval_map_mixed.hpp"
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_infix_plus_overload_4_bicremental_types)
+{ interval_map_mixed_infix_plus_overload_4_bicremental_types<bicremental_type_1, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_infix_pipe_overload_4_bicremental_types)
+{ interval_map_mixed_infix_pipe_overload_4_bicremental_types<bicremental_type_2, double>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_infix_minus_overload_4_bicremental_types)
+{ interval_map_mixed_infix_minus_overload_4_bicremental_types<bicremental_type_3, boost::rational<int> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_infix_et_overload_4_bicremental_types)
+{ interval_map_mixed_infix_et_overload_4_bicremental_types<bicremental_type_4, int>(); }

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

Added: sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,83 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_map_mixed unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/interval_set.hpp>
+#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>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+#include "../test_interval_map_mixed.hpp"
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_add_4_bicremental_types)
+{ interval_map_mixed_add_4_bicremental_types<bicremental_type_1, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_add2_4_bicremental_types)
+{ interval_map_mixed_add2_4_bicremental_types<bicremental_type_2, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_subtract_4_bicremental_types)
+{ interval_map_mixed_subtract_4_bicremental_types<bicremental_type_3, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_erase_4_bicremental_types)
+{ interval_map_mixed_erase_4_bicremental_types<bicremental_type_4, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_erase2_4_bicremental_types)
+{ interval_map_mixed_erase2_4_bicremental_types<bicremental_type_5, int>(); }
+
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_insert_erase_4_bicremental_types)
+{ interval_map_mixed_insert_erase_4_bicremental_types<bicremental_type_6, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_insert_erase2_4_bicremental_types)
+{ interval_map_mixed_insert_erase2_4_bicremental_types<bicremental_type_7, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_basic_intersect_4_bicremental_types)
+{ interval_map_mixed_basic_intersect_4_bicremental_types<bicremental_type_8, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_basic_intersect2_4_bicremental_types)
+{ interval_map_mixed_basic_intersect2_4_bicremental_types<bicremental_type_1, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_intersect_4_bicremental_types)
+{ interval_map_mixed_intersect_4_bicremental_types<bicremental_type_2, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_intersect2_4_bicremental_types)
+{ interval_map_mixed_intersect2_4_bicremental_types<bicremental_type_3, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_disjoint_4_bicremental_types)
+{ interval_map_mixed_disjoint_4_bicremental_types<bicremental_type_4, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_erase_if_4_integral_types)
+{ interval_map_mixed_erase_if_4_integral_types<int, int>(); }
+

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

Added: sandbox/itl/libs/itl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,53 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_map_mixed unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/interval_set.hpp>
+#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>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+#include "../test_interval_map_mixed.hpp"
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_ctor_4_ordered_types)
+{ interval_map_mixed_ctor_4_ordered_types<std::string, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_equal_4_ordered_types)
+{ interval_map_mixed_equal_4_ordered_types<double, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_assign_4_ordered_types)
+{ interval_map_mixed_assign_4_ordered_types<unsigned int, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_ctor_4_bicremental_types)
+{ interval_map_mixed_ctor_4_bicremental_types<bicremental_type_1, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_assign_4_bicremental_types)
+{ interval_map_mixed_assign_4_bicremental_types<bicremental_type_2, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_mixed_equal_4_bicremental_types)
+{ interval_map_mixed_equal_4_bicremental_types<bicremental_type_3, int>(); }

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

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

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

Added: sandbox/itl/libs/itl/test/fastest_interval_set_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_set_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,62 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_fastest_interval_set_cases_hpp_JOFA_090702__
+#define __itl_fastest_interval_set_cases_hpp_JOFA_090702__
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_fundamentals_4_ordered_types)
+{ interval_set_fundamentals_4_ordered_types<INTERVAL_SET, ordered_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_ctor_4_bicremental_types)
+{ interval_set_ctor_4_bicremental_types<INTERVAL_SET, bicremental_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_add_sub_4_bicremental_types)
+{ interval_set_add_sub_4_bicremental_types<INTERVAL_SET, bicremental_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_distinct_4_bicremental_types)
+{ interval_set_distinct_4_bicremental_types<INTERVAL_SET, bicremental_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_distinct_4_bicremental_continuous_types)
+{ interval_set_distinct_4_bicremental_continuous_types<INTERVAL_SET, continuous_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_isolate_4_bicremental_continuous_types)
+{ interval_set_isolate_4_bicremental_continuous_types<INTERVAL_SET, continuous_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_element_compare_4_bicremental_types)
+{ interval_set_element_compare_4_bicremental_types<INTERVAL_SET, bicremental_type_4>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_contains_4_bicremental_types)
+{ interval_set_contains_4_bicremental_types<INTERVAL_SET, bicremental_type_5>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_operators_4_bicremental_types)
+{ interval_set_operators_4_bicremental_types<INTERVAL_SET, bicremental_type_6>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_base_intersect_4_bicremental_types)
+{ interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, bicremental_type_7>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_flip_4_bicremental_types)
+{ interval_set_flip_4_bicremental_types<INTERVAL_SET, bicremental_type_8>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_find_4_bicremental_types)
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, bicremental_type_1>();}
+
+#endif // __itl_fastest_interval_set_cases_hpp_JOFA_090702__
+
+
+

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

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

Added: sandbox/itl/libs/itl/test/fastest_interval_set_infix_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_set_infix_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_fastest_interval_set_infix_cases_hpp_JOFA_090702__
+#define __itl_fastest_interval_set_infix_cases_hpp_JOFA_090702__
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_infix_plus_overload_4_bicremental_types)
+{ interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_infix_pipe_overload_4_bicremental_types)
+{ interval_set_infix_pipe_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_infix_minus_overload_4_bicremental_types)
+{ interval_set_infix_minus_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_infix_et_overload_4_bicremental_types)
+{ interval_set_infix_et_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_4>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_infix_caret_overload_4_bicremental_types)
+{ interval_set_infix_caret_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_5>();}
+
+#endif // __itl_fastest_interval_set_infix_cases_hpp_JOFA_090702__
+
+
+

Added: sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,96 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval_set_mixed unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+//CL #include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/interval_set.hpp>
+#include <boost/itl/separate_interval_set.hpp>
+#include <boost/itl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+#include "../test_interval_set_mixed.hpp"
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_ctor_4_ordered_types)
+{ interval_set_mixed_ctor_4_ordered_types<int>(); }
+
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_equal_4_ordered_types)
+{ interval_set_mixed_equal_4_ordered_types<std::string>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_assign_4_ordered_types)
+{ interval_set_mixed_assign_4_ordered_types<float>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_ctor_4_bicremental_types)
+{ interval_set_mixed_ctor_4_bicremental_types<bicremental_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_assign_4_bicremental_types)
+{ interval_set_mixed_assign_4_bicremental_types<bicremental_type_2>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_equal_4_bicremental_types)
+{ interval_set_mixed_equal_4_bicremental_types<bicremental_type_3>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_contains_4_bicremental_types)
+{ interval_set_mixed_contains_4_bicremental_types<bicremental_type_4>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_add_4_bicremental_types)
+{ interval_set_mixed_add_4_bicremental_types<bicremental_type_5>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_subtract_4_bicremental_types)
+{ interval_set_mixed_subtract_4_bicremental_types<bicremental_type_6>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_erase_4_bicremental_types)
+{ interval_set_mixed_erase_4_bicremental_types<bicremental_type_7>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_basic_intersect_4_bicremental_types)
+{ interval_set_mixed_basic_intersect_4_bicremental_types<bicremental_type_8>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_disjoint_4_bicremental_types)
+{ interval_set_mixed_disjoint_4_bicremental_types<bicremental_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_infix_plus_overload_4_bicremental_types)
+{ interval_set_mixed_infix_plus_overload_4_bicremental_types<bicremental_type_2>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_infix_pipe_overload_4_bicremental_types)
+{ interval_set_mixed_infix_pipe_overload_4_bicremental_types<bicremental_type_3>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_infix_minus_overload_4_bicremental_types)
+{ interval_set_mixed_infix_minus_overload_4_bicremental_types<bicremental_type_4>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_infix_et_overload_4_bicremental_types)
+{ interval_set_mixed_infix_et_overload_4_bicremental_types<bicremental_type_5>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_mixed_infix_caret_overload_4_bicremental_types)
+{ interval_set_mixed_infix_caret_overload_4_bicremental_types<bicremental_type_6>(); }

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

Added: sandbox/itl/libs/itl/test/fastest_itl_interval_/fastest_itl_interval.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_itl_interval_/fastest_itl_interval.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,73 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::interval unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+//CL #include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/interval.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+#include "../test_itl_interval.hpp"
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_ctor_4_ordered_types)
+{ interval_ctor_4_ordered_types<ordered_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_ctor_4_bicremental_types)
+{ interval_ctor_4_bicremental_types<bicremental_type_2>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_ctor_4_integral_types)
+{ interval_ctor_4_integral_types<integral_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_ctor_specific)
+{ interval_ctor_specific(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_equal_4_integral_types)
+{ interval_equal_4_integral_types<integral_type_2>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_less_4_integral_types)
+{ interval_less_4_integral_types<integral_type_3>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_equal_4_bicremental_continuous_types)
+{ interval_equal_4_bicremental_continuous_types<bicremental_continuous_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_touches_4_bicremental_types)
+{ interval_touches_4_bicremental_types<bicremental_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_touches_4_integral_types)
+{ interval_touches_4_integral_types<integral_type_4>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_inplace_intersect_4_bicremental_types)
+{ interval_inplace_intersect_4_bicremental_types<bicremental_type_3>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_infix_intersect_4_bicremental_types)
+{ interval_infix_intersect_4_bicremental_types<bicremental_type_4>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_subtract_4_bicremental_types)
+{ interval_subtract_4_bicremental_types<bicremental_type_5>(); }

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

Added: sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::itl_map unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_laws.hpp"
+
+#include <boost/itl/map.hpp>
+#include <boost/itl/interval_map.hpp>
+#include <boost/itl/interval_morphism.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_itl_map.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "fastest_itl_map_cases.hpp"
+
+

Added: sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_itl_map_/fastest_itl_map_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,15 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_test_itl_map_cases_hpp_JOFA_090701__
+#define __itl_test_itl_map_cases_hpp_JOFA_090701__
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_map_find_4_bicremental_types)
+{ itl_map_find_4_bicremental_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+
+#endif // __itl_test_itl_map_cases_hpp_JOFA_090701__

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

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

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

Added: sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_partial_interval_quantifier_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,64 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_fastest_partial_interval_quantifier_cases_hpp_JOFA_090703__
+#define __itl_fastest_partial_interval_quantifier_cases_hpp_JOFA_090703__
+
+//------------------------------------------------------------------------------
+// partial_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_quantifier_map_check_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_monoid_plus_4_bicremental_types<bicremental_type_1, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_quantifier_map_check_monoid_et_4_bicremental_types)
+{ quantifier_map_check_monoid_et_4_bicremental_types<bicremental_type_2, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_quantifier_map_check_abelian_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_3, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_quantifier_map_check_abelian_monoid_et_4_bicremental_types)
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<bicremental_type_4, int, partial_absorber, INTERVAL_MAP>();}
+
+// x - x = 0 | partial absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_quantifier_map_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_5, int, partial_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// partial_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_quantifier_map_check_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_monoid_plus_4_bicremental_types<bicremental_type_6, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_quantifier_map_check_monoid_et_4_bicremental_types)
+{ quantifier_map_check_monoid_et_4_bicremental_types<bicremental_type_7, int, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_quantifier_map_check_abelian_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_8, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_quantifier_map_check_abelian_monoid_et_4_bicremental_types)
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<bicremental_type_1, int, partial_enricher, INTERVAL_MAP>();}
+
+// x - x =p= 0 | partial enricher
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_quantifier_map_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types)
+{ quantifier_map_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types<bicremental_type_2, int, partial_enricher, INTERVAL_MAP>();}
+
+// absorber enricher
+// partial x - x == 0 x - x =p= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =p= 0 totality of subtraction
+
+#endif // __itl_fastest_partial_interval_quantifier_cases_hpp_JOFA_090703__
+

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

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

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

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

Added: sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::set_interval_set unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_laws.hpp"
+
+#include <boost/itl/interval_set.hpp>
+#include <boost/itl/separate_interval_set.hpp>
+#include <boost/itl/split_interval_set.hpp>
+#include <boost/itl/interval_morphism.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_set_interval_set_shared.hpp"
+
+#include "fastest_set_interval_set_cases.hpp"
+
+

Added: sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,71 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_fastest_set_interval_set_cases_hpp_JOFA_090703__
+#define __itl_fastest_set_interval_set_cases_hpp_JOFA_090703__
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_check_monoid_plus_4_bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<bicremental_type_1, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_check_abelian_monoid_plus_4_bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_2, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_check_abelian_monoid_et_4_bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<bicremental_type_3, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_4, interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// separate_interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_separate_interval_set_check_monoid_plus_4_bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<bicremental_type_5, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_separate_interval_set_check_abelian_monoid_plus_4_bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_6, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_separate_interval_set_check_abelian_monoid_et_4_bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<bicremental_type_7, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_separate_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_8, separate_interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// split_interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_split_interval_set_check_monoid_plus_4_bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<bicremental_type_1, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_split_interval_set_check_abelian_monoid_plus_4_bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_2, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_split_interval_set_check_abelian_monoid_et_4_bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<bicremental_type_3, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_split_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_4, split_interval_set>();}
+
+#endif // __itl_fastest_set_interval_set_cases_hpp_JOFA_090703__
+

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

Added: sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::set_itl_set unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_laws.hpp"
+
+#include <boost/itl/interval_set.hpp>
+#include <boost/itl/separate_interval_set.hpp>
+#include <boost/itl/split_interval_set.hpp>
+#include <boost/itl/interval_morphism.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_set_itl_set.hpp"
+
+#include "fastest_set_itl_set_cases.hpp"
+
+

Added: sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_fastest_set_itl_set_cases_hpp_JOFA_090703__
+#define __itl_fastest_set_itl_set_cases_hpp_JOFA_090703__
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_set_check_monoid_plus_4_bicremental_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<discrete_type_1, interval_set>();}
+ //MEMO: interval_set
+// is used here pragmatically to be able to recycle test code for initializing
+// sets. These interval_set are then converted to itl::set by atomize.
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<discrete_type_2, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_set_check_abelian_monoid_et_4_bicremental_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<discrete_type_3, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<discrete_type_4, interval_set>();}
+
+#endif // __itl_fastest_set_itl_set_cases_hpp_JOFA_090703__
+
+

Added: sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set_shared.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_set_itl_set_/fastest_set_itl_set_shared.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,28 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_et_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
+

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

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

Added: sandbox/itl/libs/itl/test/fastest_split_interval_map_/fastest_split_interval_map_shared.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_split_interval_map_/fastest_split_interval_map_shared.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -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)
++-----------------------------------------------------------------------------*/
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_map_fundamentals_4_ordered_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_map_ctor_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_map_add_sub_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_map_distinct_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_distinct_4_bicremental_continuous_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_isolate_4_bicremental_continuous_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_contains_4_bicremental_types, T, bicremental_types)
+{ interval_map_contains_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_operators_4_bicremental_types, T, bicremental_types)
+{ interval_map_operators_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_intersect_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_base_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_erase_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_base_is_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_is_disjoint_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_plus_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_pipe_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_et_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_infix_caret_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_caret_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_find_4_bicremental_types, T, bicremental_types)
+{ interval_map_find_4_bicremental_types<split_interval_map, T, int>();}
+

Added: sandbox/itl/libs/itl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_split_interval_map"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}"
+ RootNamespace="Fastest_split_interval_map"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_split_interval_map.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ 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="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/itl/libs/itl/test/fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE itl::split_interval_map_infix unit test
+#include <string>
+#include <boost/mpl/list.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_case_template.hpp>
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/itl/separate_interval_set.hpp>
+#include <boost/itl/split_interval_set.hpp>
+#include <boost/itl/interval_map.hpp>
+#include <boost/itl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::itl;
+
+// -----------------------------------------------------------------------------
+// test_interval_map_shared are tests that should give identical results for all
+// interval_maps: interval_map and split_interval_map.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP split_interval_map
+#include "../fastest_interval_map_infix_cases.hpp"
+
+

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

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

Added: sandbox/itl/libs/itl/test/fastest_split_interval_set_/fastest_split_interval_set_shared.cpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_split_interval_set_/fastest_split_interval_set_shared.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,56 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_set_fundamentals_4_ordered_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_set_ctor_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_set_add_sub_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_set_distinct_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_distinct_4_bicremental_continuous_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_isolate_4_bicremental_continuous_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
+{ interval_set_element_compare_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_contains_4_bicremental_types, T, bicremental_types)
+{ interval_set_contains_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_operators_4_bicremental_types, T, bicremental_types)
+{ interval_set_operators_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_find_4_bicremental_types, T, bicremental_types)
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, T>();}
+
+

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

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

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

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

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

Added: sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/fastest_total_interval_quantifier_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,64 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __itl_fastest_total_interval_quantifier_cases_hpp_JOFA_090703__
+#define __itl_fastest_total_interval_quantifier_cases_hpp_JOFA_090703__
+
+//------------------------------------------------------------------------------
+// total_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_quantifier_map_check_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_monoid_plus_4_bicremental_types<bicremental_type_1, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_quantifier_map_check_monoid_et_4_bicremental_types)
+{ quantifier_map_check_monoid_et_4_bicremental_types<bicremental_type_2, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_quantifier_map_check_abelian_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_3, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_quantifier_map_check_abelian_monoid_et_4_bicremental_types)
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<bicremental_type_4, int, total_absorber, INTERVAL_MAP>();}
+
+// (0-x) + x = 0 | total absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_quantifier_map_check_abelian_group_plus_4_bicremental_types)
+{ quantifier_map_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, int, total_absorber, INTERVAL_MAP>();}
+//------------------------------------------------------------------------------
+// total_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_quantifier_map_check_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_monoid_plus_4_bicremental_types<bicremental_type_6, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_quantifier_map_check_monoid_et_4_bicremental_types)
+{ quantifier_map_check_monoid_et_4_bicremental_types<bicremental_type_7, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_quantifier_map_check_abelian_monoid_plus_4_bicremental_types)
+{ quantifier_map_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_8, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_quantifier_map_check_abelian_monoid_et_4_bicremental_types)
+{ quantifier_map_check_abelian_monoid_et_4_bicremental_types<bicremental_type_1, int, total_enricher, INTERVAL_MAP>();}
+
+// (0-x) + x =p= 0 | total absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types)
+{ quantifier_map_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_2, 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
+
+#endif // __itl_fastest_total_interval_quantifier_cases_hpp_JOFA_090703__
+

Modified: sandbox/itl/libs/itl/test/test_interval_map_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,7 +5,9 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_interval_map_cases_hpp_JOFA_090701__
+#define __itl_test_interval_map_cases_hpp_JOFA_090701__
+
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_map_fundamentals_4_ordered_types, T, ordered_types)
 { interval_map_fundamentals_4_ordered_types<INTERVAL_MAP, T, int>();}
@@ -61,3 +63,5 @@
 (test_itl_interval_map_set_4_bicremental_types, T, bicremental_types)
 { interval_map_set_4_bicremental_types<INTERVAL_MAP, T, int>();}
 
+#endif // __itl_test_interval_map_cases_hpp_JOFA_090701__
+

Modified: sandbox/itl/libs/itl/test/test_interval_map_infix_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map_infix_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map_infix_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,23 +5,28 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_plus_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_plus_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_pipe_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_minus_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_minus_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_et_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_et_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE
-(test_itl_interval_map_infix_caret_overload_4_bicremental_types, T, bicremental_types)
-{ interval_map_infix_caret_overload_4_bicremental_types<INTERVAL_MAP, T, int>();}
+#ifndef __itl_fastest_interval_map_infix_cases_hpp_JOFA_090702__
+#define __itl_fastest_interval_map_infix_cases_hpp_JOFA_090702__
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_infix_plus_overload_4_bicremental_types)
+{ interval_map_infix_plus_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_infix_pipe_overload_4_bicremental_types)
+{ interval_map_infix_pipe_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_infix_minus_overload_4_bicremental_types)
+{ interval_map_infix_minus_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_infix_et_overload_4_bicremental_types)
+{ interval_map_infix_et_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_4, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_map_infix_caret_overload_4_bicremental_types)
+{ interval_map_infix_caret_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_5, int>();}
+
+#endif // __itl_fastest_interval_map_infix_cases_hpp_JOFA_090702__
+

Added: sandbox/itl/libs/itl/test/test_interval_map_mixed.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_interval_map_mixed.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,1267 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __test_itl_interval_map_mixed_hpp_JOFA_081005__
+#define __test_itl_interval_map_mixed_hpp_JOFA_081005__
+
+
+//------------------------------------------------------------------------------
+//- part1: Basic operations and predicates
+//------------------------------------------------------------------------------
+
+template <class T, class U>
+void interval_map_mixed_ctor_4_ordered_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+
+ T v0 = neutron<T>::value();
+ U u1 = unon<U>::value();
+
+ SplitIntervalMapT split_map(make_pair(v0,u1));
+ IntervalMapT join_map(split_map);
+
+ BOOST_CHECK_EQUAL( split_map.lower(), join_map.lower() );
+ BOOST_CHECK_EQUAL( split_map.upper(), join_map.upper() );
+}
+
+template <class T, class U>
+void interval_map_mixed_equal_4_ordered_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+
+ T v0 = neutron<T>::value();
+ U u1 = unon<U>::value();
+
+ SplitIntervalMapT split_empty, split_single(make_pair(v0,u1));
+ IntervalMapT join_empty, join_single(make_pair(v0,u1));
+
+ // mixed ==-equality is a strange thing. Most times is does not
+ // make sense. It is better to allow only for same type == equality.
+ BOOST_CHECK_EQUAL( split_empty == split_empty, true );
+ BOOST_CHECK_EQUAL( join_empty == join_empty, true );
+
+ // There were Problems with operator== and emtpy sets.
+ BOOST_CHECK_EQUAL( split_empty == split_single, false );
+ BOOST_CHECK_EQUAL( join_empty == join_single, false );
+
+ BOOST_CHECK_EQUAL( split_single == split_empty, false );
+ BOOST_CHECK_EQUAL( join_single == join_empty, false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_empty), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_empty), true );
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_single), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_single), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, join_empty), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, join_empty), false );
+}
+
+template <class T, class U>
+void interval_map_mixed_assign_4_ordered_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+
+ T v0 = neutron<T>::value();
+ T v1 = unon<T>::value();
+ U u1 = unon<U>::value();
+
+ mapping_pair<T,U> v0_u1(v0,u1);
+ mapping_pair<T,U> v1_u1(v1,u1);
+
+ SplitIntervalMapT split_map;
+ IntervalMapT join_map;
+ split_map.add(v0_u1); //NOTE: make_pair(v0,u1); fails
+ join_map = split_map; //=t T& T::operator=(const P&) ...
+
+
+ BOOST_CHECK_EQUAL( split_map.lower(), join_map.lower() );
+ BOOST_CHECK_EQUAL( split_map.upper(), join_map.upper() );
+
+ SplitIntervalMapT split_self = SplitIntervalMapT().add(v0_u1);
+ IntervalMapT join_self = IntervalMapT().add(v1_u1);
+
+ split_self = split_self;
+ join_self = join_self;
+
+ BOOST_CHECK_EQUAL( split_self, split_self );
+ BOOST_CHECK_EQUAL( join_self, join_self );
+}
+
+template <class T, class U>
+void interval_map_mixed_ctor_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ U u1 = make<U>(1);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
+ std::pair<interval<T>,U> I4_5D_1(I4_5D, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1).add(I4_5D_1);
+ BOOST_CHECK_EQUAL( split_map.iterative_size(), 4 );
+ IntervalMapT join_map(split_map);
+}
+
+
+template <class T, class U>
+void interval_map_mixed_assign_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ U u1 = make<U>(1);
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
+ std::pair<interval<T>,U> I4_5D_1(I4_5D, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1).add(I4_5D_1);
+ BOOST_CHECK_EQUAL( split_map.iterative_size(), 4 );
+ IntervalMapT join_map;
+ join_map = split_map;
+ BOOST_CHECK_EQUAL( join_map.iterative_size(), 3 );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_equal_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ U u1 = make<U>(1);
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
+ std::pair<interval<T>,U> I4_5D_1(I4_5D, u1);
+
+ IntervalMapT join_map;
+ join_map.add(I1_3D_1).add(I2_4D_1).add(I4_5D_1);
+ IntervalMapT join_map2 = join_map;
+ BOOST_CHECK_EQUAL( join_map, join_map2 );
+ BOOST_CHECK_EQUAL( is_element_equal(join_map, join_map2), true );
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1).add(I4_5D_1);
+ SplitIntervalMapT split_map2 = split_map;
+ BOOST_CHECK_EQUAL( split_map, split_map2 );
+ BOOST_CHECK_EQUAL( is_element_equal(split_map2, split_map), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_map, join_map), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_map, split_map), true );
+}
+
+
+//------------------------------------------------------------------------------
+//- part2: Operations
+//------------------------------------------------------------------------------
+
+template <class T, class U>
+void interval_map_mixed_add_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ U u1 = make<U>(1);
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
+ std::pair<interval<T>,U> I4_5D_1(I4_5D, u1);
+ mapping_pair<T,U> v1_1(v1, u1);
+ mapping_pair<T,U> v3_1(v3, u1);
+ mapping_pair<T,U> v5_1(v5, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1);
+ split_map += I4_5D_1;
+ BOOST_CHECK_EQUAL( split_map.iterative_size(), 4 );
+ IntervalMapT join_map;
+ join_map += split_map;
+ BOOST_CHECK_EQUAL( join_map.iterative_size(), 3 );
+
+ IntervalMapT join_map3;
+ join_map3.add(v1_1).add(v3_1);
+ join_map3 += v5_1;
+ BOOST_CHECK_EQUAL( join_map3.iterative_size(), 3 );
+ SplitIntervalMapT split_map3;
+ split_map3 += join_map3;
+ BOOST_CHECK_EQUAL( split_map3.iterative_size(), 3 );
+}
+
+template <class T, class U>
+void interval_map_mixed_add2_4_bicremental_types()
+{
+ typedef bicremental_type_2 T;
+ typedef int U;
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ U u1 = make<U>(1);
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
+ std::pair<interval<T>,U> I4_5D_1(I4_5D, u1);
+ mapping_pair<T,U> v1_1(v1, u1);
+ mapping_pair<T,U> v3_1(v3, u1);
+ mapping_pair<T,U> v5_1(v5, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1);
+ split_map |= I4_5D_1;
+ BOOST_CHECK_EQUAL( split_map.iterative_size(), 4 );
+ IntervalMapT join_map;
+ join_map |= split_map;
+ BOOST_CHECK_EQUAL( join_map.iterative_size(), 3 );
+
+ IntervalMapT join_map3;
+ join_map3.add(v1_1).add(v3_1);
+ join_map3 |= v5_1;
+ BOOST_CHECK_EQUAL( join_map3.iterative_size(), 3 );
+ SplitIntervalMapT split_map3;
+ split_map3 |= join_map3;
+ BOOST_CHECK_EQUAL( split_map3.iterative_size(), 3 );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_subtract_4_bicremental_types()
+{
+ typedef bicremental_type_3 T;
+ typedef int U;
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_4D = interval<T>::rightopen(v0,v4);
+ interval<T> I2_6D = interval<T>::rightopen(v2,v6);
+ interval<T> I3_6D = interval<T>::rightopen(v3,v6);
+ interval<T> I5_7D = interval<T>::rightopen(v5,v7);
+ interval<T> I7_8D = interval<T>::rightopen(v7,v8);
+ interval<T> I8_9D = interval<T>::rightopen(v8,v9);
+ interval<T> I8_9I = interval<T>::closed(v8,v9);
+
+ std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
+ std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
+ std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
+ std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
+ std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
+ std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
+ std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( split_map.iterative_size(), 7 );
+
+ IntervalMapT join_map;
+ join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( join_map.iterative_size(), 5 );
+
+ // Make maps to be subtracted
+ SplitIntervalMapT split_sub;
+ split_sub.add(I3_6D_1).add(I8_9D_1);
+
+ IntervalMapT join_sub;
+ join_sub.add(I3_6D_1).add(I8_9D_1);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_map
+ SplitIntervalMapT split_diff = split_map;
+ IntervalMapT join_diff = join_map;
+
+ //subtraction combinations
+ split_diff -= split_sub;
+ join_diff -= split_sub;
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 7 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 5 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_map. Reinitialize
+ split_diff = split_map;
+ join_diff = join_map;
+
+ //subtraction combinations
+ split_diff -= join_sub;
+ join_diff -= join_sub;
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 7 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 5 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_erase_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_4D = interval<T>::rightopen(v0,v4);
+ interval<T> I2_6D = interval<T>::rightopen(v2,v6);
+ interval<T> I3_6D = interval<T>::rightopen(v3,v6);
+ interval<T> I5_7D = interval<T>::rightopen(v5,v7);
+ interval<T> I7_8D = interval<T>::rightopen(v7,v8);
+ interval<T> I8_9D = interval<T>::rightopen(v8,v9);
+ interval<T> I8_9I = interval<T>::closed(v8,v9);
+
+ std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
+ std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
+ std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
+ std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
+ std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
+ std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
+ std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( split_map.iterative_size(), 7 );
+
+ IntervalMapT join_map;
+ join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( join_map.iterative_size(), 5 );
+
+ // Make sets to be erased
+ SplitIntervalMapT split_sub;
+ split_sub.add(I3_6D_1).add(I8_9D_1);
+
+ IntervalMapT join_sub;
+ join_sub.add(I3_6D_1).add(I8_9D_1);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_map
+ SplitIntervalMapT split_diff = split_map;
+ IntervalMapT join_diff = join_map;
+
+ //subtraction combinations
+ erase(split_diff, split_sub);
+ erase(join_diff, split_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 6 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 5 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_map. Reinitialize
+ split_diff = split_map;
+ join_diff = join_map;
+
+ //subtraction combinations
+ erase(split_diff, join_sub);
+ erase(join_diff, join_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 6 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 5 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_erase2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_4D = interval<T>::rightopen(v0,v4);
+ interval<T> I2_6D = interval<T>::rightopen(v2,v6);
+ interval<T> I3_6D = interval<T>::rightopen(v3,v6);
+ interval<T> I5_7D = interval<T>::rightopen(v5,v7);
+ interval<T> I7_8D = interval<T>::rightopen(v7,v8);
+ interval<T> I8_9D = interval<T>::rightopen(v8,v9);
+ interval<T> I8_9I = interval<T>::closed(v8,v9);
+
+ std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
+ std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
+ std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
+ std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
+ std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
+ std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
+ std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( split_map.iterative_size(), 7 );
+
+ IntervalMapT join_map;
+ join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( join_map.iterative_size(), 5 );
+
+ // Make sets to be erased
+ SplitIntervalSetT split_sub;
+ split_sub.add(I3_6D).add(I8_9D);
+
+ IntervalSetT join_sub;
+ join_sub.add(I3_6D).add(I8_9D);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_map
+ SplitIntervalMapT split_diff = split_map;
+ IntervalMapT join_diff = join_map;
+
+ //subtraction combinations
+ erase(split_diff, split_sub);
+ erase(join_diff, split_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 4 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_map. Reinitialize
+ split_diff = split_map;
+ join_diff = join_map;
+
+ //subtraction combinations
+ erase(split_diff, join_sub);
+ erase(join_diff, join_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 4 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_insert_erase_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_4D = interval<T>::rightopen(v0,v4);
+ interval<T> I2_6D = interval<T>::rightopen(v2,v6);
+ interval<T> I3_6D = interval<T>::rightopen(v3,v6);
+ interval<T> I5_7D = interval<T>::rightopen(v5,v7);
+ interval<T> I7_8D = interval<T>::rightopen(v7,v8);
+ interval<T> I8_9D = interval<T>::rightopen(v8,v9);
+ interval<T> I8_9I = interval<T>::closed(v8,v9);
+
+ std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
+ std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
+ std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
+ std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
+ std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
+ std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
+ std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_A, split_B, split_all, split_X;
+ IntervalMapT join_A, join_B, join_all, join_X;
+
+ split_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
+ split_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
+ split_B.insert(I7_8D_1).insert(I8_9I_1);
+
+ join_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
+ join_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
+ join_B.insert(I7_8D_1).insert(I8_9I_1);
+
+ //-------------------------------------------------------------------------
+ insert(split_X, split_A);
+ BOOST_CHECK_EQUAL( split_X, split_A );
+ insert(split_X, split_B);
+ BOOST_CHECK_EQUAL( split_X, split_all );
+
+ erase(split_X, split_B);
+ BOOST_CHECK_EQUAL( split_X, split_A );
+ erase(split_X, split_A);
+ BOOST_CHECK_EQUAL( split_X, SplitIntervalMapT() );
+
+ //-------------------------------------------------------------------------
+ insert(join_X, join_A);
+ BOOST_CHECK_EQUAL( join_X, join_A );
+ insert(join_X, join_B);
+ BOOST_CHECK_EQUAL( join_X, join_all );
+
+ erase(join_X, join_B);
+ BOOST_CHECK_EQUAL( join_X, join_A );
+ erase(join_X, join_A);
+ BOOST_CHECK_EQUAL( join_X, IntervalMapT() );
+
+ //-------------------------------------------------------------------------
+ split_X.clear();
+ insert(split_X, join_A);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
+ insert(split_X, join_B);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_all), true );
+
+ erase(split_X, join_B);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
+ erase(split_X, join_A);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, SplitIntervalMapT()), true );
+
+ //-------------------------------------------------------------------------
+ split_X.clear();
+ insert(join_X, split_A);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
+ insert(join_X, split_B);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, join_all), true );
+
+ erase(join_X, split_B);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
+ erase(join_X, split_A);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, IntervalMapT()), true );
+}
+
+template <class T, class U>
+void interval_map_mixed_insert_erase2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_4D = interval<T>::rightopen(v0,v4);
+ interval<T> I2_6D = interval<T>::rightopen(v2,v6);
+ interval<T> I3_6D = interval<T>::rightopen(v3,v6);
+ interval<T> I5_7D = interval<T>::rightopen(v5,v7);
+ interval<T> I7_8D = interval<T>::rightopen(v7,v8);
+ interval<T> I8_9D = interval<T>::rightopen(v8,v9);
+ interval<T> I8_9I = interval<T>::closed(v8,v9);
+
+ std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
+ std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
+ std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
+ std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
+ std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
+ std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
+ std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_A, split_B, split_all, split_X;
+ IntervalMapT join_A, join_B, join_all, join_X;
+ SplitIntervalSetT split_dA, split_dB;
+ IntervalSetT join_dA, join_dB;
+
+ split_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
+ split_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
+ split_B.insert(I7_8D_1).insert(I8_9I_1);
+
+ join_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
+ join_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
+ join_B.insert(I7_8D_1).insert(I8_9I_1);
+
+ split_A.domain(split_dA);
+ split_B.domain(split_dB);
+ join_A.domain(join_dA);
+ join_B.domain(join_dB);
+
+ //-------------------------------------------------------------------------
+ insert(split_X, split_A);
+ BOOST_CHECK_EQUAL( split_X, split_A );
+ insert(split_X, split_B);
+ BOOST_CHECK_EQUAL( split_X, split_all );
+
+ erase(split_X, split_dB);
+ BOOST_CHECK_EQUAL( split_X, split_A );
+ erase(split_X, split_dA);
+ BOOST_CHECK_EQUAL( split_X, SplitIntervalMapT() );
+
+ //-------------------------------------------------------------------------
+ insert(join_X, join_A);
+ BOOST_CHECK_EQUAL( join_X, join_A );
+ insert(join_X, join_B);
+ BOOST_CHECK_EQUAL( join_X, join_all );
+
+ erase(join_X, join_dB);
+ BOOST_CHECK_EQUAL( join_X, join_A );
+ erase(join_X, join_dA);
+ BOOST_CHECK_EQUAL( join_X, IntervalMapT() );
+
+ //-------------------------------------------------------------------------
+ split_X.clear();
+ insert(split_X, join_A);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
+ insert(split_X, join_B);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_all), true );
+
+ erase(split_X, join_dB);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
+ erase(split_X, join_dA);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, SplitIntervalMapT()), true );
+
+ //-------------------------------------------------------------------------
+ split_X.clear();
+ insert(join_X, split_A);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
+ insert(join_X, split_B);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, join_all), true );
+
+ erase(join_X, split_dB);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
+ erase(join_X, split_dA);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, IntervalMapT()), true );
+}
+
+template <class T, class U>
+void interval_map_mixed_basic_intersect_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ U u1 = make<U>(1);
+ U u2 = make<U>(2);
+ U u3 = make<U>(3);
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+
+
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I1_8D = interval<T>::rightopen(v1,v8);
+ interval<T> I2_7D = interval<T>::rightopen(v2,v7);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I6_7D = interval<T>::rightopen(v6,v7);
+ interval<T> I6_8D = interval<T>::rightopen(v6,v8);
+ interval<T> I6_9D = interval<T>::rightopen(v6,v9);
+
+ std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I1_3D_2(I1_3D, u2);
+ std::pair<interval<T>,U> I1_8D_1(I1_8D, u1);
+ std::pair<const interval<T>,U> I2_7D_1(I2_7D, u1);
+ std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
+ std::pair<interval<T>,U> I2_3D_3(I2_3D, u3);
+ std::pair<interval<T>,U> I6_7D_1(I6_7D, u1);
+ std::pair<interval<T>,U> I6_7D_3(I6_7D, u3);
+ std::pair<interval<T>,U> I6_8D_1(I6_8D, u1);
+ std::pair<interval<T>,U> I6_8D_2(I6_8D, u2);
+ std::pair<interval<T>,U> I6_9D_1(I6_9D, u1);
+
+ //--------------------------------------------------------------------------
+ // split_interval_map
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= [1 8)
+ //split_AB -> [1 3) [6 8)
+ // &= [2 7)
+ // -> [2 3) [6 7)
+ SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab2;
+
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_AB = split_A;
+ split_AB &= I1_8D_1;
+ split_ab.add(I1_3D_2).add(I6_8D_2);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= I1_8D_1) &= I2_7D_1;
+ split_ab2.add(I2_3D_3).add(I6_7D_3);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab2 );
+
+
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // 1 1
+ // &= 1
+ // 1
+ //split_AB -> [1]
+ // 2
+ // += (1 7)
+ // 2
+ // -> [1](1 7)
+ // 2 2
+ split_A.clear();
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_AB = split_A;
+ split_AB &= mapping_pair<T,U>(v1,u1);
+ split_ab.clear();
+ split_ab.add(mapping_pair<T,U>(v1,u2));
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ split_AB &= mapping_pair<T,U>(v1,u1);
+ split_AB += make_pair(interval<T>::open(v1,v7), u2);
+ split_ab2.clear();
+ split_ab2 += make_pair(interval<T>::rightopen(v1,v7), u2);
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_basic_intersect2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ U u1 = make<U>(1);
+ U u2 = make<U>(2);
+ U u3 = make<U>(3);
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+
+
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I1_8D = interval<T>::rightopen(v1,v8);
+ interval<T> I2_7D = interval<T>::rightopen(v2,v7);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I6_7D = interval<T>::rightopen(v6,v7);
+ interval<T> I6_8D = interval<T>::rightopen(v6,v8);
+ interval<T> I6_9D = interval<T>::rightopen(v6,v9);
+
+ std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I1_3D_2(I1_3D, u2);
+ std::pair<interval<T>,U> I1_8D_1(I1_8D, u1);
+ std::pair<interval<T>,U> I2_7D_1(I2_7D, u1);
+ std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
+ std::pair<interval<T>,U> I2_3D_3(I2_3D, u3);
+ std::pair<interval<T>,U> I6_7D_1(I6_7D, u1);
+ std::pair<interval<T>,U> I6_7D_3(I6_7D, u3);
+ std::pair<interval<T>,U> I6_8D_1(I6_8D, u1);
+ std::pair<interval<T>,U> I6_8D_2(I6_8D, u2);
+ std::pair<interval<T>,U> I6_9D_1(I6_9D, u1);
+
+ //--------------------------------------------------------------------------
+ // split_interval_map
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= [1 8)
+ //split_AB -> [1 3) [6 8)
+ // &= [2 7)
+ // -> [2 3) [6 7)
+ SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab2;
+
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_AB = split_A;
+ split_AB &= I1_8D;
+ split_ab.add(I1_3D_1).add(I6_8D_1);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= I1_8D) &= I2_7D;
+ split_ab2.add(I2_3D_1).add(I6_7D_1);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab2 );
+
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // 1 1
+ // &= 1
+ // 1
+ //split_AB -> [1]
+ // 2
+ // += (1 7)
+ // 2
+ // -> [1](1 7)
+ // 2 2
+ split_A.clear();
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_AB = split_A;
+ split_AB &= v1;
+ split_ab.clear();
+ split_ab.add(mapping_pair<T,U>(v1,u1));
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ split_AB &= interval<T>(v1);
+ split_AB += make_pair(interval<T>::open(v1,v7), u1);
+ split_ab2.clear();
+ split_ab2 += make_pair(interval<T>::rightopen(v1,v7), u1);
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
+
+ split_interval_map<T,U> left, right;
+ left. add(IDv(0,2,2));
+ right.add(IDv(0,2,2));
+ BOOST_CHECK_EQUAL( is_element_equal(left, right), true );
+
+ split_interval_set<T> left2, right2;
+ left2. add(I_D(0,2));
+ right2.add(I_D(0,1));
+ is_element_equal(left2, right2);
+ BOOST_CHECK_EQUAL( is_element_equal(left2, right2), false );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_intersect_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ U u1 = make<U>(1);
+ U u2 = make<U>(2);
+
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ interval<T> I1_2D = interval<T>::rightopen(v1,v2);
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I5_8D = interval<T>::rightopen(v5,v8);
+ interval<T> I6_8D = interval<T>::rightopen(v6,v8);
+ interval<T> I6_9D = interval<T>::rightopen(v6,v9);
+
+ std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
+ std::pair<interval<T>,U> I1_2D_1(I1_2D, u1);
+ std::pair<interval<T>,U> I1_2D_2(I1_2D, u2);
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I1_3D_2(I1_3D, u2);
+ std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
+ std::pair<interval<T>,U> I2_3D_2(I2_3D, u2);
+ std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
+ std::pair<interval<T>,U> I5_8D_1(I5_8D, u1);
+ std::pair<interval<T>,U> I6_8D_1(I6_8D, u1);
+ std::pair<interval<T>,U> I6_8D_2(I6_8D, u2);
+ std::pair<interval<T>,U> I6_9D_1(I6_9D, u1);
+
+ //--------------------------------------------------------------------------
+ // split_interval_set
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // 1 1
+ //split_B &= [1 2)[2 4) [5 8)
+ // 1 1 1
+ //split_AB -> [1 2)[2 3) [6 8)
+ // 2 2 2
+ SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab_jn;
+ IntervalMapT join_A, join_B, join_AB, join_ab;
+
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_B.add(I1_2D_1).add(I2_4D_1).add(I5_8D_1);
+ split_ab.add(I1_2D_2).add(I2_3D_2).add(I6_8D_2);
+ split_ab_jn.add(I1_3D_2).add(I6_8D_2);
+ split_AB = split_A;
+ split_AB &= split_B;
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ //split_A [0 3) [6 9)
+ // 1 1
+ //join_B &= [1 4) [5 8)
+ // 1 1
+ //split_AB -> [1 3) [6 8)
+ // 2 2
+ split_AB = split_A;
+ join_B = split_B;
+ split_AB &= join_B;
+
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
+}
+
+
+
+template <class T, class U>
+void interval_map_mixed_intersect2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ U u1 = make<U>(1);
+ U u2 = make<U>(2);
+
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ interval<T> I1_2D = interval<T>::rightopen(v1,v2);
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I5_8D = interval<T>::rightopen(v5,v8);
+ interval<T> I6_8D = interval<T>::rightopen(v6,v8);
+ interval<T> I6_9D = interval<T>::rightopen(v6,v9);
+
+ std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
+ std::pair<interval<T>,U> I1_2D_1(I1_2D, u1);
+ std::pair<interval<T>,U> I1_2D_2(I1_2D, u2);
+ std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
+ std::pair<interval<T>,U> I1_3D_2(I1_3D, u2);
+ std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
+ std::pair<interval<T>,U> I2_3D_2(I2_3D, u2);
+ std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
+ std::pair<interval<T>,U> I5_8D_1(I5_8D, u1);
+ std::pair<interval<T>,U> I6_8D_1(I6_8D, u1);
+ std::pair<interval<T>,U> I6_8D_2(I6_8D, u2);
+ std::pair<interval<T>,U> I6_9D_1(I6_9D, u1);
+
+ //--------------------------------------------------------------------------
+ // split_interval_set
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // 1 1
+ //split_B &= [1 2)[2 4) [5 8)
+ //split_AB -> [1 2)[2 3) [6 8)
+ // 1 1 1
+ SplitIntervalMapT split_A, split_AB, split_ab, split_ab_jn;
+ SplitIntervalSetT split_B;
+ IntervalMapT join_A, join_AB, join_ab;
+ IntervalSetT join_B;
+
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_B.add(I1_2D).add(I2_4D).add(I5_8D);
+ split_ab.add(I1_2D_1).add(I2_3D_1).add(I6_8D_1);
+ split_ab_jn.add(I1_3D_1).add(I6_8D_1);
+ split_AB = split_A;
+ split_AB &= split_B;
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ //split_A [0 3) [6 9)
+ // 1 1
+ //join_B &= [1 4) [5 8)
+ //split_AB -> [1 3) [6 8)
+ // 1 1
+ split_AB = split_A;
+ join_B = split_B;
+ split_AB &= join_B;
+
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_disjoint_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ U u1 = make<U>(1);
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v6 = make<T>(6);
+
+ interval<T> I0_2D = interval<T>::rightopen(v0,v2);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I3_4D = interval<T>::rightopen(v3,v4);
+ interval<T> I4_4I = interval<T>::closed(v4,v4);
+ interval<T> C4_6D = interval<T>::open(v4,v6);
+ interval<T> I6_6I = interval<T>::closed(v6,v6);
+
+ std::pair<interval<T>,U> I0_2D_1(I0_2D, u1);
+ std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
+ std::pair<interval<T>,U> I3_4D_1(I3_4D, u1);
+ std::pair<interval<T>,U> I4_4I_1(I4_4I, u1);
+ std::pair<interval<T>,U> C4_6D_1(C4_6D, u1);
+ std::pair<interval<T>,U> I6_6I_1(I6_6I, u1);
+
+ //--------------------------------------------------------------------------
+ //split_A: [0 2) [4 4] [6 6]
+ //split_B: [2 3)[3 4) (4 6)
+ SplitIntervalMapT split_A, split_B;
+
+ split_A.add(I0_2D_1).add(I4_4I_1).add(I6_6I_1);
+ split_B.add(I2_3D_1).add(I3_4D_1).add(C4_6D_1);
+
+ IntervalMapT join_A(split_A), join_B(split_B);
+
+ BOOST_CHECK_EQUAL( is_disjoint(split_A, split_B), true );
+ BOOST_CHECK_EQUAL( is_disjoint(split_A, join_B), true );
+
+ BOOST_CHECK_EQUAL( is_disjoint(join_A, split_B), true );
+ BOOST_CHECK_EQUAL( is_disjoint(join_A, join_B), true );
+}
+
+template<class Type>
+struct size_greater_1 : public itl::property<Type>
+{
+ bool operator()(const Type& value)const
+ {
+ return value.first.size() > 1 ;
+ }
+};
+
+
+template <class T, class U>
+void interval_map_mixed_erase_if_4_integral_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ U u1 = make<U>(1);
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v6 = make<T>(6);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I3_4D = interval<T>::rightopen(v3,v4);
+ interval<T> I4_4I = interval<T>::closed(v4,v4);
+ interval<T> C4_6D = interval<T>::open(v4,v6);
+ interval<T> I6_6I = interval<T>::closed(v6,v6);
+
+ std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
+ std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
+ std::pair<interval<T>,U> I3_4D_1(I3_4D, u1);
+ std::pair<interval<T>,U> I4_4I_1(I4_4I, u1);
+ std::pair<interval<T>,U> C4_6D_1(C4_6D, u1);
+ std::pair<interval<T>,U> I6_6I_1(I6_6I, u1);
+
+ //--------------------------------------------------------------------------
+ //split_A: [0 2) [4 4] [6 6]
+ //split_B: [2 3)[3 4) (4 6)
+ SplitIntervalMapT split_A, split_B;
+
+ split_A.add(I0_3D_1).add(I4_4I_1).add(I6_6I_1);
+ split_B.add(I4_4I_1).add(I6_6I_1);
+
+ split_A.erase_if(size_greater_1<typename SplitIntervalMapT::value_type>());
+
+ BOOST_CHECK_EQUAL( split_A, split_B );
+}
+
+//------------------------------------------------------------------------------
+//- infix operators
+//------------------------------------------------------------------------------
+
+template <class T, class U>
+void interval_map_mixed_infix_plus_overload_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a;
+ split_interval_map<T,U> split_a;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a + join_a, join_a + split_a);
+}
+
+template <class T, class U>
+void interval_map_mixed_infix_pipe_overload_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a;
+ split_interval_map<T,U> split_a;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a | join_a, join_a | split_a);
+}
+
+template <class T, class U>
+void interval_map_mixed_infix_minus_overload_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a, join_b;
+ split_interval_map<T,U> split_a, split_b;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ join_b .add(CDv(1,3,1)).add(IIv(6,11,3));
+ split_b.add(IDv(0,9,2)).add(IIv(3,6,1));
+
+ BOOST_CHECK_EQUAL(split_a - join_a, (split_b = split_a) -= join_a);
+ BOOST_CHECK_EQUAL(split_a - join_a, split_b);
+
+ BOOST_CHECK_EQUAL(join_a - split_a, (join_b = join_a) -= split_a);
+ BOOST_CHECK_EQUAL(join_a - split_a, join_b);
+}
+
+template <class T, class U>
+void interval_map_mixed_infix_et_overload_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a, join_b;
+ split_interval_map<T,U> split_a, split_b;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a & join_a, join_a & split_a);
+ BOOST_CHECK_EQUAL(split_a & join_a, (split_b = split_a) &= join_a);
+ BOOST_CHECK_EQUAL(split_a & join_a, split_b);
+
+ BOOST_CHECK_EQUAL(join_a & split_a, (split_b = split_a) &= join_a);
+ BOOST_CHECK_EQUAL(join_a & split_a, split_b);
+}
+
+
+
+#endif __test_itl_interval_map_mixed_hpp_JOFA_081005__

Modified: sandbox/itl/libs/itl/test/test_interval_map_mixed2_/test_interval_map_mixed2.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map_mixed2_/test_interval_map_mixed2.cpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map_mixed2_/test_interval_map_mixed2.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -26,989 +26,57 @@
 using namespace unit_test;
 using namespace boost::itl;
 
+#include "../test_interval_map_mixed.hpp"
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_add_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- U u1 = make<U>(1);
-
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
-
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I4_5D = interval<T>::rightopen(v4,v5);
-
- std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
- std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
- std::pair<interval<T>,U> I4_5D_1(I4_5D, u1);
- mapping_pair<T,U> v1_1(v1, u1);
- mapping_pair<T,U> v3_1(v3, u1);
- mapping_pair<T,U> v5_1(v5, u1);
-
- SplitIntervalMapT split_map;
- split_map.add(I1_3D_1).add(I2_4D_1);
- split_map += I4_5D_1;
- BOOST_CHECK_EQUAL( split_map.iterative_size(), 4 );
- IntervalMapT join_map;
- join_map += split_map;
- BOOST_CHECK_EQUAL( join_map.iterative_size(), 3 );
-
- IntervalMapT join_map3;
- join_map3.add(v1_1).add(v3_1);
- join_map3 += v5_1;
- BOOST_CHECK_EQUAL( join_map3.iterative_size(), 3 );
- SplitIntervalMapT split_map3;
- split_map3 += join_map3;
- BOOST_CHECK_EQUAL( split_map3.iterative_size(), 3 );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_add2_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- U u1 = make<U>(1);
-
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
-
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I4_5D = interval<T>::rightopen(v4,v5);
-
- std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
- std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
- std::pair<interval<T>,U> I4_5D_1(I4_5D, u1);
- mapping_pair<T,U> v1_1(v1, u1);
- mapping_pair<T,U> v3_1(v3, u1);
- mapping_pair<T,U> v5_1(v5, u1);
-
- SplitIntervalMapT split_map;
- split_map.add(I1_3D_1).add(I2_4D_1);
- split_map |= I4_5D_1;
- BOOST_CHECK_EQUAL( split_map.iterative_size(), 4 );
- IntervalMapT join_map;
- join_map |= split_map;
- BOOST_CHECK_EQUAL( join_map.iterative_size(), 3 );
-
- IntervalMapT join_map3;
- join_map3.add(v1_1).add(v3_1);
- join_map3 |= v5_1;
- BOOST_CHECK_EQUAL( join_map3.iterative_size(), 3 );
- SplitIntervalMapT split_map3;
- split_map3 |= join_map3;
- BOOST_CHECK_EQUAL( split_map3.iterative_size(), 3 );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_subtract_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- U u1 = make<U>(1);
-
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_4D = interval<T>::rightopen(v0,v4);
- interval<T> I2_6D = interval<T>::rightopen(v2,v6);
- interval<T> I3_6D = interval<T>::rightopen(v3,v6);
- interval<T> I5_7D = interval<T>::rightopen(v5,v7);
- interval<T> I7_8D = interval<T>::rightopen(v7,v8);
- interval<T> I8_9D = interval<T>::rightopen(v8,v9);
- interval<T> I8_9I = interval<T>::closed(v8,v9);
-
- std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
- std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
- std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
- std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
- std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
- std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
- std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
-
- SplitIntervalMapT split_map;
- split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
- BOOST_CHECK_EQUAL( split_map.iterative_size(), 7 );
-
- IntervalMapT join_map;
- join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
- BOOST_CHECK_EQUAL( join_map.iterative_size(), 5 );
-
- // Make maps to be subtracted
- SplitIntervalMapT split_sub;
- split_sub.add(I3_6D_1).add(I8_9D_1);
-
- IntervalMapT join_sub;
- join_sub.add(I3_6D_1).add(I8_9D_1);
-
- //--------------------------------------------------------------------------
- // Test for split_interval_map
- SplitIntervalMapT split_diff = split_map;
- IntervalMapT join_diff = join_map;
-
- //subtraction combinations
- split_diff -= split_sub;
- join_diff -= split_sub;
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 7 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 5 );
-
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
-
- //--------------------------------------------------------------------------
- // Test for interval_map. Reinitialize
- split_diff = split_map;
- join_diff = join_map;
-
- //subtraction combinations
- split_diff -= join_sub;
- join_diff -= join_sub;
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 7 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 5 );
-
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_erase_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- U u1 = make<U>(1);
-
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_4D = interval<T>::rightopen(v0,v4);
- interval<T> I2_6D = interval<T>::rightopen(v2,v6);
- interval<T> I3_6D = interval<T>::rightopen(v3,v6);
- interval<T> I5_7D = interval<T>::rightopen(v5,v7);
- interval<T> I7_8D = interval<T>::rightopen(v7,v8);
- interval<T> I8_9D = interval<T>::rightopen(v8,v9);
- interval<T> I8_9I = interval<T>::closed(v8,v9);
-
- std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
- std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
- std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
- std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
- std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
- std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
- std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
-
- SplitIntervalMapT split_map;
- split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
- BOOST_CHECK_EQUAL( split_map.iterative_size(), 7 );
-
- IntervalMapT join_map;
- join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
- BOOST_CHECK_EQUAL( join_map.iterative_size(), 5 );
-
- // Make sets to be erased
- SplitIntervalMapT split_sub;
- split_sub.add(I3_6D_1).add(I8_9D_1);
-
- IntervalMapT join_sub;
- join_sub.add(I3_6D_1).add(I8_9D_1);
-
- //--------------------------------------------------------------------------
- // Test for split_interval_map
- SplitIntervalMapT split_diff = split_map;
- IntervalMapT join_diff = join_map;
-
- //subtraction combinations
- erase(split_diff, split_sub);
- erase(join_diff, split_sub);
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 6 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 5 );
-
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
-
- //--------------------------------------------------------------------------
- // Test for interval_map. Reinitialize
- split_diff = split_map;
- join_diff = join_map;
-
- //subtraction combinations
- erase(split_diff, join_sub);
- erase(join_diff, join_sub);
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 6 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 5 );
-
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_erase2_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- typedef interval_set<T> IntervalSetT;
- typedef split_interval_set<T> SplitIntervalSetT;
- U u1 = make<U>(1);
-
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_4D = interval<T>::rightopen(v0,v4);
- interval<T> I2_6D = interval<T>::rightopen(v2,v6);
- interval<T> I3_6D = interval<T>::rightopen(v3,v6);
- interval<T> I5_7D = interval<T>::rightopen(v5,v7);
- interval<T> I7_8D = interval<T>::rightopen(v7,v8);
- interval<T> I8_9D = interval<T>::rightopen(v8,v9);
- interval<T> I8_9I = interval<T>::closed(v8,v9);
-
- std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
- std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
- std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
- std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
- std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
- std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
- std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
-
- SplitIntervalMapT split_map;
- split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
- BOOST_CHECK_EQUAL( split_map.iterative_size(), 7 );
-
- IntervalMapT join_map;
- join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
- BOOST_CHECK_EQUAL( join_map.iterative_size(), 5 );
-
- // Make sets to be erased
- SplitIntervalSetT split_sub;
- split_sub.add(I3_6D).add(I8_9D);
-
- IntervalSetT join_sub;
- join_sub.add(I3_6D).add(I8_9D);
-
- //--------------------------------------------------------------------------
- // Test for split_interval_map
- SplitIntervalMapT split_diff = split_map;
- IntervalMapT join_diff = join_map;
-
- //subtraction combinations
- erase(split_diff, split_sub);
- erase(join_diff, split_sub);
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 4 );
-
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
-
- //--------------------------------------------------------------------------
- // Test for interval_map. Reinitialize
- split_diff = split_map;
- join_diff = join_map;
-
- //subtraction combinations
- erase(split_diff, join_sub);
- erase(join_diff, join_sub);
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 4 );
-
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_insert_erase_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- U u1 = make<U>(1);
-
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_4D = interval<T>::rightopen(v0,v4);
- interval<T> I2_6D = interval<T>::rightopen(v2,v6);
- interval<T> I3_6D = interval<T>::rightopen(v3,v6);
- interval<T> I5_7D = interval<T>::rightopen(v5,v7);
- interval<T> I7_8D = interval<T>::rightopen(v7,v8);
- interval<T> I8_9D = interval<T>::rightopen(v8,v9);
- interval<T> I8_9I = interval<T>::closed(v8,v9);
-
- std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
- std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
- std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
- std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
- std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
- std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
- std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
-
- SplitIntervalMapT split_A, split_B, split_all, split_X;
- IntervalMapT join_A, join_B, join_all, join_X;
-
- split_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
- split_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
- split_B.insert(I7_8D_1).insert(I8_9I_1);
-
- join_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
- join_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
- join_B.insert(I7_8D_1).insert(I8_9I_1);
-
- //-------------------------------------------------------------------------
- insert(split_X, split_A);
- BOOST_CHECK_EQUAL( split_X, split_A );
- insert(split_X, split_B);
- BOOST_CHECK_EQUAL( split_X, split_all );
-
- erase(split_X, split_B);
- BOOST_CHECK_EQUAL( split_X, split_A );
- erase(split_X, split_A);
- BOOST_CHECK_EQUAL( split_X, SplitIntervalMapT() );
-
- //-------------------------------------------------------------------------
- insert(join_X, join_A);
- BOOST_CHECK_EQUAL( join_X, join_A );
- insert(join_X, join_B);
- BOOST_CHECK_EQUAL( join_X, join_all );
-
- erase(join_X, join_B);
- BOOST_CHECK_EQUAL( join_X, join_A );
- erase(join_X, join_A);
- BOOST_CHECK_EQUAL( join_X, IntervalMapT() );
-
- //-------------------------------------------------------------------------
- split_X.clear();
- insert(split_X, join_A);
- BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
- insert(split_X, join_B);
- BOOST_CHECK_EQUAL( is_element_equal(split_X, split_all), true );
-
- erase(split_X, join_B);
- BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
- erase(split_X, join_A);
- BOOST_CHECK_EQUAL( is_element_equal(split_X, SplitIntervalMapT()), true );
-
- //-------------------------------------------------------------------------
- split_X.clear();
- insert(join_X, split_A);
- BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
- insert(join_X, split_B);
- BOOST_CHECK_EQUAL( is_element_equal(join_X, join_all), true );
-
- erase(join_X, split_B);
- BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
- erase(join_X, split_A);
- BOOST_CHECK_EQUAL( is_element_equal(join_X, IntervalMapT()), true );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_insert_erase2_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- typedef interval_set<T> IntervalSetT;
- typedef split_interval_set<T> SplitIntervalSetT;
- U u1 = make<U>(1);
-
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_4D = interval<T>::rightopen(v0,v4);
- interval<T> I2_6D = interval<T>::rightopen(v2,v6);
- interval<T> I3_6D = interval<T>::rightopen(v3,v6);
- interval<T> I5_7D = interval<T>::rightopen(v5,v7);
- interval<T> I7_8D = interval<T>::rightopen(v7,v8);
- interval<T> I8_9D = interval<T>::rightopen(v8,v9);
- interval<T> I8_9I = interval<T>::closed(v8,v9);
-
- std::pair<interval<T>,U> I0_4D_1(I0_4D, u1);
- std::pair<interval<T>,U> I2_6D_1(I2_6D, u1);
- std::pair<interval<T>,U> I3_6D_1(I3_6D, u1);
- std::pair<interval<T>,U> I5_7D_1(I5_7D, u1);
- std::pair<interval<T>,U> I7_8D_1(I7_8D, u1);
- std::pair<interval<T>,U> I8_9D_1(I8_9D, u1);
- std::pair<interval<T>,U> I8_9I_1(I8_9I, u1);
-
- SplitIntervalMapT split_A, split_B, split_all, split_X;
- IntervalMapT join_A, join_B, join_all, join_X;
- SplitIntervalSetT split_dA, split_dB;
- IntervalSetT join_dA, join_dB;
-
- split_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
- split_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
- split_B.insert(I7_8D_1).insert(I8_9I_1);
-
- join_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
- join_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
- join_B.insert(I7_8D_1).insert(I8_9I_1);
-
- split_A.domain(split_dA);
- split_B.domain(split_dB);
- join_A.domain(join_dA);
- join_B.domain(join_dB);
-
- //-------------------------------------------------------------------------
- insert(split_X, split_A);
- BOOST_CHECK_EQUAL( split_X, split_A );
- insert(split_X, split_B);
- BOOST_CHECK_EQUAL( split_X, split_all );
-
- erase(split_X, split_dB);
- BOOST_CHECK_EQUAL( split_X, split_A );
- erase(split_X, split_dA);
- BOOST_CHECK_EQUAL( split_X, SplitIntervalMapT() );
-
- //-------------------------------------------------------------------------
- insert(join_X, join_A);
- BOOST_CHECK_EQUAL( join_X, join_A );
- insert(join_X, join_B);
- BOOST_CHECK_EQUAL( join_X, join_all );
-
- erase(join_X, join_dB);
- BOOST_CHECK_EQUAL( join_X, join_A );
- erase(join_X, join_dA);
- BOOST_CHECK_EQUAL( join_X, IntervalMapT() );
-
- //-------------------------------------------------------------------------
- split_X.clear();
- insert(split_X, join_A);
- BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
- insert(split_X, join_B);
- BOOST_CHECK_EQUAL( is_element_equal(split_X, split_all), true );
-
- erase(split_X, join_dB);
- BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
- erase(split_X, join_dA);
- BOOST_CHECK_EQUAL( is_element_equal(split_X, SplitIntervalMapT()), true );
-
- //-------------------------------------------------------------------------
- split_X.clear();
- insert(join_X, split_A);
- BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
- insert(join_X, split_B);
- BOOST_CHECK_EQUAL( is_element_equal(join_X, join_all), true );
-
- erase(join_X, split_dB);
- BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
- erase(join_X, split_dA);
- BOOST_CHECK_EQUAL( is_element_equal(join_X, IntervalMapT()), true );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_basic_intersect_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- typedef interval_set<T> IntervalSetT;
- typedef split_interval_set<T> SplitIntervalSetT;
- U u1 = make<U>(1);
- U u2 = make<U>(2);
- U u3 = make<U>(3);
-
- T v0 = make<T>(0);
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
-
-
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_3D = interval<T>::rightopen(v0,v3);
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I1_8D = interval<T>::rightopen(v1,v8);
- interval<T> I2_7D = interval<T>::rightopen(v2,v7);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I6_7D = interval<T>::rightopen(v6,v7);
- interval<T> I6_8D = interval<T>::rightopen(v6,v8);
- interval<T> I6_9D = interval<T>::rightopen(v6,v9);
-
- std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
- std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
- std::pair<interval<T>,U> I1_3D_2(I1_3D, u2);
- std::pair<interval<T>,U> I1_8D_1(I1_8D, u1);
- std::pair<const interval<T>,U> I2_7D_1(I2_7D, u1);
- std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
- std::pair<interval<T>,U> I2_3D_3(I2_3D, u3);
- std::pair<interval<T>,U> I6_7D_1(I6_7D, u1);
- std::pair<interval<T>,U> I6_7D_3(I6_7D, u3);
- std::pair<interval<T>,U> I6_8D_1(I6_8D, u1);
- std::pair<interval<T>,U> I6_8D_2(I6_8D, u2);
- std::pair<interval<T>,U> I6_9D_1(I6_9D, u1);
-
- //--------------------------------------------------------------------------
- // split_interval_map
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- // &= [1 8)
- //split_AB -> [1 3) [6 8)
- // &= [2 7)
- // -> [2 3) [6 7)
- SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab2;
-
- split_A.add(I0_3D_1).add(I6_9D_1);
- split_AB = split_A;
- split_AB &= I1_8D_1;
- split_ab.add(I1_3D_2).add(I6_8D_2);
-
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- split_AB = split_A;
- (split_AB &= I1_8D_1) &= I2_7D_1;
- split_ab2.add(I2_3D_3).add(I6_7D_3);
-
- BOOST_CHECK_EQUAL( split_AB, split_ab2 );
-
-
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- // 1 1
- // &= 1
- // 1
- //split_AB -> [1]
- // 2
- // += (1 7)
- // 2
- // -> [1](1 7)
- // 2 2
- split_A.clear();
- split_A.add(I0_3D_1).add(I6_9D_1);
- split_AB = split_A;
- split_AB &= mapping_pair<T,U>(v1,u1);
- split_ab.clear();
- split_ab.add(mapping_pair<T,U>(v1,u2));
-
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- split_AB = split_A;
- split_AB &= mapping_pair<T,U>(v1,u1);
- split_AB += make_pair(interval<T>::open(v1,v7), u2);
- split_ab2.clear();
- split_ab2 += make_pair(interval<T>::rightopen(v1,v7), u2);
-
- BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_basic_intersect2_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- typedef interval_set<T> IntervalSetT;
- typedef split_interval_set<T> SplitIntervalSetT;
- U u1 = make<U>(1);
- U u2 = make<U>(2);
- U u3 = make<U>(3);
-
- T v0 = make<T>(0);
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
-
-
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_3D = interval<T>::rightopen(v0,v3);
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I1_8D = interval<T>::rightopen(v1,v8);
- interval<T> I2_7D = interval<T>::rightopen(v2,v7);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I6_7D = interval<T>::rightopen(v6,v7);
- interval<T> I6_8D = interval<T>::rightopen(v6,v8);
- interval<T> I6_9D = interval<T>::rightopen(v6,v9);
-
- std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
- std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
- std::pair<interval<T>,U> I1_3D_2(I1_3D, u2);
- std::pair<interval<T>,U> I1_8D_1(I1_8D, u1);
- std::pair<interval<T>,U> I2_7D_1(I2_7D, u1);
- std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
- std::pair<interval<T>,U> I2_3D_3(I2_3D, u3);
- std::pair<interval<T>,U> I6_7D_1(I6_7D, u1);
- std::pair<interval<T>,U> I6_7D_3(I6_7D, u3);
- std::pair<interval<T>,U> I6_8D_1(I6_8D, u1);
- std::pair<interval<T>,U> I6_8D_2(I6_8D, u2);
- std::pair<interval<T>,U> I6_9D_1(I6_9D, u1);
-
- //--------------------------------------------------------------------------
- // split_interval_map
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- // &= [1 8)
- //split_AB -> [1 3) [6 8)
- // &= [2 7)
- // -> [2 3) [6 7)
- SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab2;
-
- split_A.add(I0_3D_1).add(I6_9D_1);
- split_AB = split_A;
- split_AB &= I1_8D;
- split_ab.add(I1_3D_1).add(I6_8D_1);
-
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- split_AB = split_A;
- (split_AB &= I1_8D) &= I2_7D;
- split_ab2.add(I2_3D_1).add(I6_7D_1);
-
- BOOST_CHECK_EQUAL( split_AB, split_ab2 );
-
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- // 1 1
- // &= 1
- // 1
- //split_AB -> [1]
- // 2
- // += (1 7)
- // 2
- // -> [1](1 7)
- // 2 2
- split_A.clear();
- split_A.add(I0_3D_1).add(I6_9D_1);
- split_AB = split_A;
- split_AB &= v1;
- split_ab.clear();
- split_ab.add(mapping_pair<T,U>(v1,u1));
-
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- split_AB = split_A;
- split_AB &= interval<T>(v1);
- split_AB += make_pair(interval<T>::open(v1,v7), u1);
- split_ab2.clear();
- split_ab2 += make_pair(interval<T>::rightopen(v1,v7), u1);
-
- BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
-
- split_interval_map<T,U> left, right;
- left. add(IDv(0,2,2));
- right.add(IDv(0,2,2));
- BOOST_CHECK_EQUAL( is_element_equal(left, right), true );
-
- split_interval_set<T> left2, right2;
- left2. add(I_D(0,2));
- right2.add(I_D(0,1));
- is_element_equal(left2, right2);
- BOOST_CHECK_EQUAL( is_element_equal(left2, right2), false );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_intersect_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- typedef interval_set<T> IntervalSetT;
- typedef split_interval_set<T> SplitIntervalSetT;
- U u1 = make<U>(1);
- U u2 = make<U>(2);
-
-
- T v0 = make<T>(0);
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
-
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_3D = interval<T>::rightopen(v0,v3);
- interval<T> I1_2D = interval<T>::rightopen(v1,v2);
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I5_8D = interval<T>::rightopen(v5,v8);
- interval<T> I6_8D = interval<T>::rightopen(v6,v8);
- interval<T> I6_9D = interval<T>::rightopen(v6,v9);
-
- std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
- std::pair<interval<T>,U> I1_2D_1(I1_2D, u1);
- std::pair<interval<T>,U> I1_2D_2(I1_2D, u2);
- std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
- std::pair<interval<T>,U> I1_3D_2(I1_3D, u2);
- std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
- std::pair<interval<T>,U> I2_3D_2(I2_3D, u2);
- std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
- std::pair<interval<T>,U> I5_8D_1(I5_8D, u1);
- std::pair<interval<T>,U> I6_8D_1(I6_8D, u1);
- std::pair<interval<T>,U> I6_8D_2(I6_8D, u2);
- std::pair<interval<T>,U> I6_9D_1(I6_9D, u1);
-
- //--------------------------------------------------------------------------
- // split_interval_set
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- // 1 1
- //split_B &= [1 2)[2 4) [5 8)
- // 1 1 1
- //split_AB -> [1 2)[2 3) [6 8)
- // 2 2 2
- SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab_jn;
- IntervalMapT join_A, join_B, join_AB, join_ab;
-
- split_A.add(I0_3D_1).add(I6_9D_1);
- split_B.add(I1_2D_1).add(I2_4D_1).add(I5_8D_1);
- split_ab.add(I1_2D_2).add(I2_3D_2).add(I6_8D_2);
- split_ab_jn.add(I1_3D_2).add(I6_8D_2);
- split_AB = split_A;
- split_AB &= split_B;
- BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- //split_A [0 3) [6 9)
- // 1 1
- //join_B &= [1 4) [5 8)
- // 1 1
- //split_AB -> [1 3) [6 8)
- // 2 2
- split_AB = split_A;
- join_B = split_B;
- split_AB &= join_B;
-
- BOOST_CHECK_EQUAL( split_AB.iterative_size(), 2 );
- BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
-}
-
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_intersect2_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- typedef interval_set<T> IntervalSetT;
- typedef split_interval_set<T> SplitIntervalSetT;
- U u1 = make<U>(1);
- U u2 = make<U>(2);
-
-
- T v0 = make<T>(0);
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
-
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_3D = interval<T>::rightopen(v0,v3);
- interval<T> I1_2D = interval<T>::rightopen(v1,v2);
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I5_8D = interval<T>::rightopen(v5,v8);
- interval<T> I6_8D = interval<T>::rightopen(v6,v8);
- interval<T> I6_9D = interval<T>::rightopen(v6,v9);
-
- std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
- std::pair<interval<T>,U> I1_2D_1(I1_2D, u1);
- std::pair<interval<T>,U> I1_2D_2(I1_2D, u2);
- std::pair<interval<T>,U> I1_3D_1(I1_3D, u1);
- std::pair<interval<T>,U> I1_3D_2(I1_3D, u2);
- std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
- std::pair<interval<T>,U> I2_3D_2(I2_3D, u2);
- std::pair<interval<T>,U> I2_4D_1(I2_4D, u1);
- std::pair<interval<T>,U> I5_8D_1(I5_8D, u1);
- std::pair<interval<T>,U> I6_8D_1(I6_8D, u1);
- std::pair<interval<T>,U> I6_8D_2(I6_8D, u2);
- std::pair<interval<T>,U> I6_9D_1(I6_9D, u1);
-
- //--------------------------------------------------------------------------
- // split_interval_set
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- // 1 1
- //split_B &= [1 2)[2 4) [5 8)
- //split_AB -> [1 2)[2 3) [6 8)
- // 1 1 1
- SplitIntervalMapT split_A, split_AB, split_ab, split_ab_jn;
- SplitIntervalSetT split_B;
- IntervalMapT join_A, join_AB, join_ab;
- IntervalSetT join_B;
-
- split_A.add(I0_3D_1).add(I6_9D_1);
- split_B.add(I1_2D).add(I2_4D).add(I5_8D);
- split_ab.add(I1_2D_1).add(I2_3D_1).add(I6_8D_1);
- split_ab_jn.add(I1_3D_1).add(I6_8D_1);
- split_AB = split_A;
- split_AB &= split_B;
- BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- //split_A [0 3) [6 9)
- // 1 1
- //join_B &= [1 4) [5 8)
- //split_AB -> [1 3) [6 8)
- // 1 1
- split_AB = split_A;
- join_B = split_B;
- split_AB &= join_B;
-
- BOOST_CHECK_EQUAL( split_AB.iterative_size(), 2 );
- BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_disjoint_4_bicremental_types, T, bicremental_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- typedef interval_set<T> IntervalSetT;
- typedef split_interval_set<T> SplitIntervalSetT;
- U u1 = make<U>(1);
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v6 = make<T>(6);
-
- interval<T> I0_2D = interval<T>::rightopen(v0,v2);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I3_4D = interval<T>::rightopen(v3,v4);
- interval<T> I4_4I = interval<T>::closed(v4,v4);
- interval<T> C4_6D = interval<T>::open(v4,v6);
- interval<T> I6_6I = interval<T>::closed(v6,v6);
-
- std::pair<interval<T>,U> I0_2D_1(I0_2D, u1);
- std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
- std::pair<interval<T>,U> I3_4D_1(I3_4D, u1);
- std::pair<interval<T>,U> I4_4I_1(I4_4I, u1);
- std::pair<interval<T>,U> C4_6D_1(C4_6D, u1);
- std::pair<interval<T>,U> I6_6I_1(I6_6I, u1);
-
- //--------------------------------------------------------------------------
- //split_A: [0 2) [4 4] [6 6]
- //split_B: [2 3)[3 4) (4 6)
- SplitIntervalMapT split_A, split_B;
-
- split_A.add(I0_2D_1).add(I4_4I_1).add(I6_6I_1);
- split_B.add(I2_3D_1).add(I3_4D_1).add(C4_6D_1);
-
- IntervalMapT join_A(split_A), join_B(split_B);
-
- BOOST_CHECK_EQUAL( is_disjoint(split_A, split_B), true );
- BOOST_CHECK_EQUAL( is_disjoint(split_A, join_B), true );
-
- BOOST_CHECK_EQUAL( is_disjoint(join_A, split_B), true );
- BOOST_CHECK_EQUAL( is_disjoint(join_A, join_B), true );
-}
-
-template<class Type>
-struct size_greater_1 : public itl::property<Type>
-{
- bool operator()(const Type& value)const
- {
- return value.first.size() > 1 ;
- }
-};
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_map_mixed_erase_if_4_integral_types, T, integral_types)
-{
- typedef int U;
- typedef interval_map<T,U> IntervalMapT;
- typedef split_interval_map<T,U> SplitIntervalMapT;
- typedef interval_set<T> IntervalSetT;
- typedef split_interval_set<T> SplitIntervalSetT;
- U u1 = make<U>(1);
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v6 = make<T>(6);
-
- interval<T> I0_3D = interval<T>::rightopen(v0,v3);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I3_4D = interval<T>::rightopen(v3,v4);
- interval<T> I4_4I = interval<T>::closed(v4,v4);
- interval<T> C4_6D = interval<T>::open(v4,v6);
- interval<T> I6_6I = interval<T>::closed(v6,v6);
-
- std::pair<interval<T>,U> I0_3D_1(I0_3D, u1);
- std::pair<interval<T>,U> I2_3D_1(I2_3D, u1);
- std::pair<interval<T>,U> I3_4D_1(I3_4D, u1);
- std::pair<interval<T>,U> I4_4I_1(I4_4I, u1);
- std::pair<interval<T>,U> C4_6D_1(C4_6D, u1);
- std::pair<interval<T>,U> I6_6I_1(I6_6I, u1);
-
- //--------------------------------------------------------------------------
- //split_A: [0 2) [4 4] [6 6]
- //split_B: [2 3)[3 4) (4 6)
- SplitIntervalMapT split_A, split_B;
-
- split_A.add(I0_3D_1).add(I4_4I_1).add(I6_6I_1);
- split_B.add(I4_4I_1).add(I6_6I_1);
-
- split_A.erase_if(size_greater_1<typename SplitIntervalMapT::value_type>());
-
- BOOST_CHECK_EQUAL( split_A, split_B );
-}
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_add_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_add_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_add2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_add2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_subtract_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_subtract_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_erase_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_erase2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_erase2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_insert_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_insert_erase_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_insert_erase2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_insert_erase2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_basic_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_basic_intersect_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_basic_intersect2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_basic_intersect2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_intersect_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_intersect2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_intersect2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_disjoint_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_map_mixed_erase_if_4_integral_types, T, integral_types)
+{ interval_map_mixed_erase_if_4_integral_types<T, int>(); }
 

Modified: sandbox/itl/libs/itl/test/test_interval_set_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,55 +5,58 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_interval_set_cases_hpp_JOFA_090701__
+#define __itl_test_interval_set_cases_hpp_JOFA_090701__
+
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
-{ interval_set_fundamentals_4_ordered_types<interval_set, T>();}
+{ interval_set_fundamentals_4_ordered_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
-{ interval_set_ctor_4_bicremental_types<interval_set, T>();}
+{ interval_set_ctor_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
-{ interval_set_add_sub_4_bicremental_types<interval_set, T>();}
+{ interval_set_add_sub_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
-{ interval_set_distinct_4_bicremental_types<interval_set, T>();}
+{ interval_set_distinct_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_set_distinct_4_bicremental_continuous_types<interval_set, T>();}
+{ interval_set_distinct_4_bicremental_continuous_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
-{ interval_set_isolate_4_bicremental_continuous_types<interval_set, T>();}
+{ interval_set_isolate_4_bicremental_continuous_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
-{ interval_set_element_compare_4_bicremental_types<interval_set, T>();}
+{ interval_set_element_compare_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_contains_4_bicremental_types, T, bicremental_types)
-{ interval_set_contains_4_bicremental_types<interval_set, T>();}
+{ interval_set_contains_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_operators_4_bicremental_types, T, bicremental_types)
-{ interval_set_operators_4_bicremental_types<interval_set, T>();}
+{ interval_set_operators_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
-{ interval_set_base_intersect_4_bicremental_types<interval_set, T>();}
+{ interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_flip_4_bicremental_types, T, bicremental_types)
-{ interval_set_flip_4_bicremental_types<interval_set, T>();}
+{ interval_set_flip_4_bicremental_types<INTERVAL_SET, T>();}
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_find_4_bicremental_types, T, bicremental_types)
-{ interval_set_find_4_bicremental_types<interval_set, T>();}
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, T>();}
 
+#endif // __itl_test_interval_set_cases_hpp_JOFA_090701__
 
 
 

Modified: sandbox/itl/libs/itl/test/test_interval_set_infix_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_infix_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_infix_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,7 +5,9 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_interval_set_infix_cases_hpp_JOFA_090701__
+#define __itl_test_interval_set_infix_cases_hpp_JOFA_090701__
+
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
 { interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, T>();}
@@ -26,6 +28,7 @@
 (test_itl_interval_set_infix_caret_overload_4_bicremental_types, T, bicremental_types)
 { interval_set_infix_caret_overload_4_bicremental_types<INTERVAL_SET, T>();}
 
+#endif // __itl_test_interval_set_infix_cases_hpp_JOFA_090701__
 
 
 

Added: sandbox/itl/libs/itl/test/test_interval_set_mixed.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_interval_set_mixed.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,823 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __fastest_itl_interval_set_mixed_h_JOFA_090702__
+#define __fastest_itl_interval_set_mixed_h_JOFA_090702__
+
+template <class T>
+void interval_set_mixed_ctor_4_ordered_types()
+{
+ T v0 = neutron<T>::value();
+
+ split_interval_set<T> split_set(v0);
+ separate_interval_set<T> sep_set(split_set);
+ interval_set<T> join_set(sep_set);
+
+ BOOST_CHECK_EQUAL( split_set.lower(), sep_set.lower() );
+ BOOST_CHECK_EQUAL( split_set.lower(), join_set.lower() );
+}
+
+template <class T>
+void interval_set_mixed_equal_4_ordered_types()
+{
+ T v0 = neutron<T>::value();
+
+ split_interval_set<T> split_empty, split_single(v0);
+ separate_interval_set<T> sep_empty, sep_single(v0);
+ interval_set<T> join_empty, join_single(v0);
+
+ // mixed ==-equality is a strange thing. Most times is does not
+ // make sense. It is better to allow only for same type == equality.
+ BOOST_CHECK_EQUAL( split_empty == split_empty, true );
+ BOOST_CHECK_EQUAL( sep_empty == sep_empty, true );
+ BOOST_CHECK_EQUAL( join_empty == join_empty, true );
+
+ // There were Problems with operator== and emtpy sets.
+ BOOST_CHECK_EQUAL( split_empty == split_single, false );
+ BOOST_CHECK_EQUAL( sep_empty == sep_single, false );
+ BOOST_CHECK_EQUAL( join_empty == join_single, false );
+
+ BOOST_CHECK_EQUAL( split_single == split_empty, false );
+ BOOST_CHECK_EQUAL( sep_single == sep_empty, false );
+ BOOST_CHECK_EQUAL( join_single == join_empty, false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, sep_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_empty), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, sep_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, join_empty), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, sep_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_empty), true );
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, sep_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_single), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, sep_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, join_single), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, sep_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_single), false );
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, sep_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, join_empty), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_single, sep_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_single, join_empty), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, sep_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, join_empty), false );
+
+}
+
+template <class T>
+void interval_set_mixed_assign_4_ordered_types()
+{
+ T v0 = neutron<T>::value();
+ T v1 = unon<T>::value();
+
+ split_interval_set<T> split_set;
+ separate_interval_set<T> sep_set;
+ interval_set<T> join_set;
+ split_set.add(v0);
+ sep_set = split_set;
+ join_set = sep_set;
+
+ BOOST_CHECK_EQUAL( split_set.lower(), sep_set.lower() );
+ BOOST_CHECK_EQUAL( split_set.lower(), join_set.lower() );
+
+ split_interval_set<T> split_self = split_interval_set<T>().add(v0);
+ separate_interval_set<T> sep_self = separate_interval_set<T>().add(v0).add(v1);
+ interval_set<T> join_self = interval_set<T>().add(v1);
+
+ split_self = split_self;
+ sep_self = sep_self;
+ join_self = join_self;
+
+ BOOST_CHECK_EQUAL( split_self, split_self );
+ BOOST_CHECK_EQUAL( sep_self, sep_self );
+ BOOST_CHECK_EQUAL( join_self, join_self );
+}
+
+template <class T>
+void interval_set_mixed_ctor_4_bicremental_types()
+{
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ split_interval_set<T> split_set;
+ split_set.add(I1_3D).add(I2_4D).add(I4_5D);
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
+ separate_interval_set<T> sep_set(split_set);
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
+ interval_set<T> join_set(split_set);
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ separate_interval_set<T> sep_set2;
+ sep_set2.add(I1_3D).add(I2_4D).add(I4_5D);
+ BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
+ split_interval_set<T> split_set2(sep_set2);
+ BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
+ interval_set<T> join_set2(sep_set2);
+ BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
+}
+
+template <class T>
+void interval_set_mixed_assign_4_bicremental_types()
+{
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ split_interval_set<T> split_set;
+ split_set.add(I1_3D).add(I2_4D).add(I4_5D);
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
+ separate_interval_set<T> sep_set;
+ sep_set = split_set;
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
+ interval_set<T> join_set;
+ join_set = split_set;
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ separate_interval_set<T> sep_set2;
+ sep_set2.add(I1_3D).add(I2_4D).add(I4_5D);
+ BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
+ split_interval_set<T> split_set2;
+ split_set2 = sep_set2;
+ BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
+ interval_set<T> join_set2;
+ join_set2 = sep_set2;
+ BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
+}
+
+
+template <class T>
+void interval_set_mixed_equal_4_bicremental_types()
+{
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ interval_set<T> join_set;
+ join_set.add(I1_3D).add(I2_4D).add(I4_5D);
+ interval_set<T> join_set2 = join_set;
+ BOOST_CHECK_EQUAL( join_set, join_set2 );
+ BOOST_CHECK_EQUAL( is_element_equal(join_set, join_set2), true );
+
+ separate_interval_set<T> sep_set;
+ sep_set.add(I1_3D).add(I2_4D).add(I4_5D);
+
+ separate_interval_set<T> sep_set2 = sep_set;
+ BOOST_CHECK_EQUAL( sep_set, sep_set2 );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_set2, sep_set), true );
+
+ split_interval_set<T> split_set;
+ split_set.add(I1_3D).add(I2_4D).add(I4_5D);
+ split_interval_set<T> split_set2 = split_set;
+ BOOST_CHECK_EQUAL( split_set, split_set2 );
+ BOOST_CHECK_EQUAL( is_element_equal(split_set2, split_set), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_set, join_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_set, sep_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_set, sep_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_set, split_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_set, join_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_set, split_set), true );
+}
+
+template <class T>
+void interval_set_mixed_contains_4_bicremental_types()
+{
+ split_interval_set<T> split_set;
+ split_set.add(I_D(0,4)).add(I_D(4,8));
+ BOOST_CHECK_EQUAL( split_set.contains(MK_v(4)), true );
+ BOOST_CHECK_EQUAL( split_set.contains(C_D(2,5)), true );
+
+ interval_set<T> join_set_gap4(split_set.erase(MK_v(4)));
+ BOOST_CHECK_EQUAL( join_set_gap4.contains(MK_v(4)), false );
+ BOOST_CHECK_EQUAL( join_set_gap4.contains(C_D(2,5)), false );
+
+ BOOST_CHECK_EQUAL( split_set.contains(split_set), true );
+ BOOST_CHECK_EQUAL( split_set.contains(join_set_gap4), true );
+
+}
+
+template <class T>
+void interval_set_mixed_add_4_bicremental_types()
+{
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I4_5D = interval<T>::rightopen(v4,v5);
+
+ split_interval_set<T> split_set;
+ split_set.add(I1_3D).add(I2_4D);
+ split_set += I4_5D;
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
+ separate_interval_set<T> sep_set;
+ sep_set += split_set;
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
+ interval_set<T> join_set;
+ join_set += split_set;
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ separate_interval_set<T> sep_set2;
+ sep_set2.add(I1_3D).add(I2_4D);
+ sep_set2 += I4_5D;
+ BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
+ split_interval_set<T> split_set2;
+ split_set2 += sep_set2;
+ BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
+ interval_set<T> join_set2;
+ join_set2 += sep_set2;
+ BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
+
+ interval_set<T> join_set3;
+ join_set3.add(v1).add(v3);
+ join_set3 += v5;
+ BOOST_CHECK_EQUAL( join_set3.iterative_size(), 3 );
+ split_interval_set<T> split_set3;
+ split_set3 += join_set3;
+ BOOST_CHECK_EQUAL( split_set3.iterative_size(), 3 );
+ separate_interval_set<T> sep_set3;
+ sep_set3 += join_set3;
+ BOOST_CHECK_EQUAL( join_set3.iterative_size(), 3 );
+}
+
+template <class T>
+void interval_set_mixed_subtract_4_bicremental_types()
+{
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_4D = interval<T>::rightopen(v0,v4);
+ interval<T> I2_6D = interval<T>::rightopen(v2,v6);
+ interval<T> I3_6D = interval<T>::rightopen(v3,v6);
+ interval<T> I5_7D = interval<T>::rightopen(v5,v7);
+ interval<T> I7_8D = interval<T>::rightopen(v7,v8);
+ interval<T> I8_9D = interval<T>::rightopen(v8,v9);
+ interval<T> I8_9I = interval<T>::closed(v8,v9);
+
+ split_interval_set<T> split_set;
+ split_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 7 );
+
+ separate_interval_set<T> sep_set;
+ sep_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 3 );
+
+ interval_set<T> join_set;
+ join_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ // Make sets to be subtracted
+ split_interval_set<T> split_sub;
+ split_sub.add(I3_6D).add(I8_9D);
+
+ separate_interval_set<T> sep_sub;
+ sep_sub.add(I3_6D).add(I8_9D);
+
+ interval_set<T> join_sub;
+ join_sub.add(I3_6D).add(I8_9D);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_set
+ split_interval_set<T> split_diff = split_set;
+ separate_interval_set<T> sep_diff = sep_set;
+ interval_set<T> join_diff = join_set;
+
+ //subtraction combinations
+ split_diff -= split_sub;
+ sep_diff -= split_sub;
+ join_diff -= split_sub;
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for separate_interval_set. Reinitialize
+ split_diff = split_set;
+ sep_diff = sep_set;
+ join_diff = join_set;
+
+ //subtraction combinations
+ split_diff -= sep_sub;
+ sep_diff -= sep_sub;
+ join_diff -= sep_sub;
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_set. Reinitialize
+ split_diff = split_set;
+ sep_diff = sep_set;
+ join_diff = join_set;
+
+ //subtraction combinations
+ split_diff -= join_sub;
+ sep_diff -= join_sub;
+ join_diff -= join_sub;
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+}
+
+
+template <class T>
+void interval_set_mixed_erase_4_bicremental_types()
+{
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_4D = interval<T>::rightopen(v0,v4);
+ interval<T> I2_6D = interval<T>::rightopen(v2,v6);
+ interval<T> I3_6D = interval<T>::rightopen(v3,v6);
+ interval<T> I5_7D = interval<T>::rightopen(v5,v7);
+ interval<T> I7_8D = interval<T>::rightopen(v7,v8);
+ interval<T> I8_9D = interval<T>::rightopen(v8,v9);
+ interval<T> I8_9I = interval<T>::closed(v8,v9);
+
+ split_interval_set<T> split_set;
+ split_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 7 );
+
+ separate_interval_set<T> sep_set;
+ sep_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 3 );
+
+ interval_set<T> join_set;
+ join_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ // Make sets to be subtracted
+ split_interval_set<T> split_sub;
+ split_sub.add(I3_6D).add(I8_9D);
+
+ separate_interval_set<T> sep_sub;
+ sep_sub.add(I3_6D).add(I8_9D);
+
+ interval_set<T> join_sub;
+ join_sub.add(I3_6D).add(I8_9D);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_set
+ split_interval_set<T> split_diff = split_set;
+ separate_interval_set<T> sep_diff = sep_set;
+ interval_set<T> join_diff = join_set;
+
+ //subtraction combinations
+ erase(split_diff, split_sub);
+ erase(sep_diff, split_sub);
+ erase(join_diff, split_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for separate_interval_set. Reinitialize
+ split_diff = split_set;
+ sep_diff = sep_set;
+ join_diff = join_set;
+
+ //subtraction combinations
+ erase(split_diff, sep_sub);
+ erase(sep_diff, sep_sub);
+ erase(join_diff, sep_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_set. Reinitialize
+ split_diff = split_set;
+ sep_diff = sep_set;
+ join_diff = join_set;
+
+ //subtraction combinations
+ erase(split_diff, join_sub);
+ erase(sep_diff, join_sub);
+ erase(join_diff, join_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+}
+
+template <class T>
+void interval_set_mixed_basic_intersect_4_bicremental_types()
+{
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I1_8D = interval<T>::rightopen(v1,v8);
+ interval<T> I2_7D = interval<T>::rightopen(v2,v7);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I6_7D = interval<T>::rightopen(v6,v7);
+ interval<T> I6_8D = interval<T>::rightopen(v6,v8);
+ interval<T> I6_9D = interval<T>::rightopen(v6,v9);
+
+ //--------------------------------------------------------------------------
+ // split_interval_set
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= [1 8)
+ //split_AB -> [1 3) [6 8)
+ // &= [2 7)
+ // -> [2 3) [6 7)
+ split_interval_set<T> split_A, split_B, split_AB, split_ab, split_ab2;
+
+ split_A.add(I0_3D).add(I6_9D);
+ split_AB = split_A;
+ split_AB &= I1_8D;
+ split_ab.add(I1_3D).add(I6_8D);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= I1_8D) &= I2_7D;
+ split_ab2.add(I2_3D).add(I6_7D);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab2 );
+
+
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= 1
+ //split_AB -> [1]
+ // += (1 7)
+ // -> [1](1 7)
+ split_A.add(I0_3D).add(I6_9D);
+ split_AB = split_A;
+ split_AB &= v1;
+ split_ab.clear();
+ split_ab.add(v1);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= v1) += interval<T>::open(v1,v7);
+ split_ab2.clear();
+ split_ab2 += interval<T>::rightopen(v1,v7);
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
+}
+
+template <class T>
+void interval_set_mixed_intersect_4_bicremental_types()
+{
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ interval<T> I1_2D = interval<T>::rightopen(v1,v2);
+ interval<T> I1_3D = interval<T>::rightopen(v1,v3);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+ interval<T> I5_8D = interval<T>::rightopen(v5,v8);
+ interval<T> I6_8D = interval<T>::rightopen(v6,v8);
+ interval<T> I6_9D = interval<T>::rightopen(v6,v9);
+
+ //--------------------------------------------------------------------------
+ // split_interval_set
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ //split_B &= [1 2)[2 4) [5 8)
+ //split_AB -> [1 2)[2 3) [6 8)
+ split_interval_set<T> split_A, split_B, split_AB, split_ab, split_ab_jn;
+ separate_interval_set<T> sep_A, sep_B, sep_AB, sep_ab;
+ interval_set<T> join_A, join_B, join_AB, join_ab;
+
+ split_A.add(I0_3D).add(I6_9D);
+ split_B.add(I1_2D).add(I2_4D).add(I5_8D);
+ split_ab.add(I1_2D).add(I2_3D).add(I6_8D);
+ split_ab_jn.add(I1_3D).add(I6_8D);
+ split_AB = split_A;
+ split_AB &= split_B;
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ //split_A [0 3) [6 9)
+ //sep_B &= [1 2)[2 4) [5 8)
+ //split_AB -> [1 2)[2 3) [6 8)
+ split_AB = split_A;
+ sep_B = split_B;
+ split_AB &= sep_B;
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ //split_A [0 3) [6 9)
+ //join_B &= [1 4) [5 8)
+ //split_AB -> [1 3) [6 8)
+ split_AB = split_A;
+ join_B = split_B;
+ split_AB &= join_B;
+
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
+
+ //--------------------------------------------------------------------------
+ // separate_interval_set
+ //--------------------------------------------------------------------------
+ //sep_A [0 3) [6 9)
+ //sep_B &= [1 2)[2 4) [5 8)
+ //sep_AB -> [1 2)[2 3) [6 8)
+ sep_ab = split_ab;
+ BOOST_CHECK_EQUAL( sep_ab.iterative_size(), 3 );
+
+ sep_AB = split_A;
+ sep_B = split_B;
+ sep_AB &= sep_B;
+
+ BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( sep_AB, sep_ab );
+
+ //sep_A [0 3) [6 9)
+ //split_B &= [1 2)[2 4) [5 8)
+ //sep_AB -> [1 2)[2 3) [6 8)
+ sep_AB = split_A;
+ sep_AB &= split_B;
+
+ BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( sep_AB, sep_ab );
+
+ //sep_A [0 3) [6 9)
+ //join_B &= [1 4) [5 8)
+ //sep_AB -> [1 3) [6 8)
+ separate_interval_set<T> sep_ab_jn = split_ab_jn;
+ sep_AB = split_A;
+ join_B = split_B;
+ sep_AB &= join_B;
+
+ BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( sep_AB, sep_ab_jn );
+
+ //--------------------------------------------------------------------------
+ // separate_interval_set
+ //--------------------------------------------------------------------------
+ //join_A [0 3) [6 9)
+ //join_B &= [1 4) [5 8)
+ //join_AB -> [1 3) [6 8)
+ join_ab = split_ab;
+ BOOST_CHECK_EQUAL( join_ab.iterative_size(), 2 );
+
+ join_AB = split_A;
+ join_B = split_B;
+ join_AB &= sep_B;
+
+ BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( join_AB, join_ab );
+
+ //join_A [0 3) [6 9)
+ //split_B &= [1 2)[2 4) [5 8)
+ //join_AB -> [1 3) [6 8)
+ join_AB = split_A;
+ join_AB &= split_B;
+
+ BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( join_AB, join_ab );
+
+ //join_A [0 3) [6 9)
+ //sep_B &= [1 2)[2 4) [5 8)
+ //join_AB -> [1 3) [6 8)
+ join_AB = split_A;
+ join_AB &= sep_B;
+
+ BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( join_AB, join_ab );
+
+}
+
+
+template <class T>
+void interval_set_mixed_disjoint_4_bicremental_types()
+{
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v6 = make<T>(6);
+
+ interval<T> I0_2D = interval<T>::rightopen(v0,v2);
+ interval<T> I2_3D = interval<T>::rightopen(v2,v3);
+ interval<T> I3_4D = interval<T>::rightopen(v3,v4);
+ interval<T> I4_4I = interval<T>::closed(v4,v4);
+ interval<T> C4_6D = interval<T>::open(v4,v6);
+ interval<T> I6_6I = interval<T>::closed(v6,v6);
+
+ //--------------------------------------------------------------------------
+ //split_A: [0 2) [4 4] [6 6]
+ //split_B: [2 3)[3 4) (4 6)
+ split_interval_set<T> split_A, split_B;
+
+ split_A.add(I0_2D).add(I4_4I).add(I6_6I);
+ split_B.add(I2_3D).add(I3_4D).add(C4_6D);
+
+ separate_interval_set<T> sep_A(split_A), sep_B(split_B);
+ interval_set<T> join_A(split_A), join_B(split_B);
+
+ BOOST_CHECK_EQUAL( is_disjoint(split_A, split_B), true );
+ BOOST_CHECK_EQUAL( is_disjoint(split_A, sep_B), true );
+ BOOST_CHECK_EQUAL( is_disjoint(split_A, join_B), true );
+
+ BOOST_CHECK_EQUAL( is_disjoint(sep_A, split_B), true );
+ BOOST_CHECK_EQUAL( is_disjoint(sep_A, sep_B), true );
+ BOOST_CHECK_EQUAL( is_disjoint(sep_A, join_B), true );
+
+ BOOST_CHECK_EQUAL( is_disjoint(join_A, split_B), true );
+ BOOST_CHECK_EQUAL( is_disjoint(join_A, sep_B), true );
+ BOOST_CHECK_EQUAL( is_disjoint(join_A, join_B), true );
+}
+
+template <class T>
+void interval_set_mixed_infix_plus_overload_4_bicremental_types()
+{
+ interval_set<T> join_a;
+ separate_interval_set<T> sep_a;
+ split_interval_set<T> split_a;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a + sep_a, sep_a + split_a );
+ BOOST_CHECK_EQUAL(split_a + join_a, join_a + split_a);
+ BOOST_CHECK_EQUAL(sep_a + join_a, join_a + sep_a );
+}
+
+template <class T> void interval_set_mixed_infix_pipe_overload_4_bicremental_types()
+{
+ interval_set<T> join_a;
+ separate_interval_set<T> sep_a;
+ split_interval_set<T> split_a;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a | sep_a, sep_a | split_a );
+ BOOST_CHECK_EQUAL(split_a | join_a, join_a | split_a);
+ BOOST_CHECK_EQUAL(sep_a | join_a, join_a | sep_a );
+}
+
+template <class T>
+void interval_set_mixed_infix_minus_overload_4_bicremental_types()
+{
+ interval_set<T> join_a, join_b;
+ separate_interval_set<T> sep_a, sep_b;
+ split_interval_set<T> split_a, split_b;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a - sep_a, (split_b = split_a) -= sep_a );
+ BOOST_CHECK_EQUAL(split_a - join_a, (split_b = split_a) -= join_a );
+ BOOST_CHECK_EQUAL(sep_a - join_a, (sep_b = sep_a) -= join_a );
+
+ BOOST_CHECK_EQUAL(sep_a - split_a, (sep_b = sep_a) -= split_a);
+ BOOST_CHECK_EQUAL(join_a - split_a, (join_b = join_a) -= split_a);
+ BOOST_CHECK_EQUAL(join_a - sep_a, (join_b = join_a) -= sep_a );
+}
+
+template <class T> void interval_set_mixed_infix_et_overload_4_bicremental_types()
+{
+ interval_set<T> join_a;
+ separate_interval_set<T> sep_a;
+ split_interval_set<T> split_a;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a & sep_a, sep_a & split_a );
+ BOOST_CHECK_EQUAL(split_a & join_a, join_a & split_a);
+ BOOST_CHECK_EQUAL(sep_a & join_a, join_a & sep_a );
+}
+
+template <class T> void interval_set_mixed_infix_caret_overload_4_bicremental_types()
+{
+ interval_set<T> join_a;
+ separate_interval_set<T> sep_a;
+ split_interval_set<T> split_a;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a ^ sep_a, sep_a ^ split_a );
+ BOOST_CHECK_EQUAL(split_a ^ join_a, join_a ^ split_a);
+ BOOST_CHECK_EQUAL(sep_a ^ join_a, join_a ^ sep_a );
+}
+
+#endif // __fastest_itl_interval_set_mixed_h_JOFA_090702__

Modified: sandbox/itl/libs/itl/test/test_interval_set_mixed_/test_interval_set_mixed.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_mixed_/test_interval_set_mixed.cpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_mixed_/test_interval_set_mixed.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -24,816 +24,73 @@
 using namespace unit_test;
 using namespace boost::itl;
 
+#include "../test_interval_set_mixed.hpp"
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_ctor_4_ordered_types, T, ordered_types)
+{ interval_set_mixed_ctor_4_ordered_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_equal_4_ordered_types, T, ordered_types)
+{ interval_set_mixed_equal_4_ordered_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_assign_4_ordered_types, T, ordered_types)
+{ interval_set_mixed_assign_4_ordered_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_ctor_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_assign_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_assign_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_equal_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_equal_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_contains_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_contains_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_add_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_add_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_subtract_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_subtract_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_erase_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_erase_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_basic_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_basic_intersect_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_disjoint_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_plus_overload_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_pipe_overload_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_infix_minus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_minus_overload_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_et_overload_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_interval_set_mixed_infix_caret_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_caret_overload_4_bicremental_types<T>(); }
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_ctor_4_ordered_types, T, ordered_types)
-{
- T v0 = neutron<T>::value();
-
-
- split_interval_set<T> split_set(v0);
- separate_interval_set<T> sep_set(split_set);
- interval_set<T> join_set(sep_set);
-
- BOOST_CHECK_EQUAL( split_set.lower(), sep_set.lower() );
- BOOST_CHECK_EQUAL( split_set.lower(), join_set.lower() );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_equal_4_ordered_types, T, ordered_types)
-{
- T v0 = neutron<T>::value();
-
-
- split_interval_set<T> split_empty, split_single(v0);
- separate_interval_set<T> sep_empty, sep_single(v0);
- interval_set<T> join_empty, join_single(v0);
-
- // mixed ==-equality is a strange thing. Most times is does not
- // make sense. It is better to allow only for same type == equality.
- BOOST_CHECK_EQUAL( split_empty == split_empty, true );
- BOOST_CHECK_EQUAL( sep_empty == sep_empty, true );
- BOOST_CHECK_EQUAL( join_empty == join_empty, true );
-
- // There were Problems with operator== and emtpy sets.
- BOOST_CHECK_EQUAL( split_empty == split_single, false );
- BOOST_CHECK_EQUAL( sep_empty == sep_single, false );
- BOOST_CHECK_EQUAL( join_empty == join_single, false );
-
- BOOST_CHECK_EQUAL( split_single == split_empty, false );
- BOOST_CHECK_EQUAL( sep_single == sep_empty, false );
- BOOST_CHECK_EQUAL( join_single == join_empty, false );
-
- BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_empty), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_empty, sep_empty), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_empty), true );
-
- BOOST_CHECK_EQUAL( is_element_equal(sep_empty, split_empty), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_empty, sep_empty), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_empty, join_empty), true );
-
- BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_empty), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_empty, sep_empty), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_empty), true );
-
- //--------------------------------------------------------------------------
- BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_single), false );
- BOOST_CHECK_EQUAL( is_element_equal(split_empty, sep_single), false );
- BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_single), false );
-
- BOOST_CHECK_EQUAL( is_element_equal(sep_empty, split_single), false );
- BOOST_CHECK_EQUAL( is_element_equal(sep_empty, sep_single), false );
- BOOST_CHECK_EQUAL( is_element_equal(sep_empty, join_single), false );
-
- BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_single), false );
- BOOST_CHECK_EQUAL( is_element_equal(join_empty, sep_single), false );
- BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_single), false );
-
- //--------------------------------------------------------------------------
- BOOST_CHECK_EQUAL( is_element_equal(split_single, split_empty), false );
- BOOST_CHECK_EQUAL( is_element_equal(split_single, sep_empty), false );
- BOOST_CHECK_EQUAL( is_element_equal(split_single, join_empty), false );
-
- BOOST_CHECK_EQUAL( is_element_equal(sep_single, split_empty), false );
- BOOST_CHECK_EQUAL( is_element_equal(sep_single, sep_empty), false );
- BOOST_CHECK_EQUAL( is_element_equal(sep_single, join_empty), false );
-
- BOOST_CHECK_EQUAL( is_element_equal(join_single, split_empty), false );
- BOOST_CHECK_EQUAL( is_element_equal(join_single, sep_empty), false );
- BOOST_CHECK_EQUAL( is_element_equal(join_single, join_empty), false );
-
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_assign_4_ordered_types, T, ordered_types)
-{
- T v0 = neutron<T>::value();
- T v1 = unon<T>::value();
-
- split_interval_set<T> split_set;
- separate_interval_set<T> sep_set;
- interval_set<T> join_set;
- split_set.add(v0);
- sep_set = split_set;
- join_set = sep_set;
-
- BOOST_CHECK_EQUAL( split_set.lower(), sep_set.lower() );
- BOOST_CHECK_EQUAL( split_set.lower(), join_set.lower() );
-
- split_interval_set<T> split_self = split_interval_set<T>().add(v0);
- separate_interval_set<T> sep_self = separate_interval_set<T>().add(v0).add(v1);
- interval_set<T> join_self = interval_set<T>().add(v1);
-
- split_self = split_self;
- sep_self = sep_self;
- join_self = join_self;
-
- BOOST_CHECK_EQUAL( split_self, split_self );
- BOOST_CHECK_EQUAL( sep_self, sep_self );
- BOOST_CHECK_EQUAL( join_self, join_self );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_ctor_4_bicremental_types, T, bicremental_types)
-{
-
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
-
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I4_5D = interval<T>::rightopen(v4,v5);
-
- split_interval_set<T> split_set;
- split_set.add(I1_3D).add(I2_4D).add(I4_5D);
- BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
- separate_interval_set<T> sep_set(split_set);
- BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
- interval_set<T> join_set(split_set);
- BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
-
- separate_interval_set<T> sep_set2;
- sep_set2.add(I1_3D).add(I2_4D).add(I4_5D);
- BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
- split_interval_set<T> split_set2(sep_set2);
- BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
- interval_set<T> join_set2(sep_set2);
- BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_assign_4_bicremental_types, T, bicremental_types)
-{
-
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
-
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I4_5D = interval<T>::rightopen(v4,v5);
-
- split_interval_set<T> split_set;
- split_set.add(I1_3D).add(I2_4D).add(I4_5D);
- BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
- separate_interval_set<T> sep_set;
- sep_set = split_set;
- BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
- interval_set<T> join_set;
- join_set = split_set;
- BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
-
- separate_interval_set<T> sep_set2;
- sep_set2.add(I1_3D).add(I2_4D).add(I4_5D);
- BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
- split_interval_set<T> split_set2;
- split_set2 = sep_set2;
- BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
- interval_set<T> join_set2;
- join_set2 = sep_set2;
- BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_equal_4_bicremental_types, T, bicremental_types)
-{
-
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
-
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I4_5D = interval<T>::rightopen(v4,v5);
-
- interval_set<T> join_set;
- join_set.add(I1_3D).add(I2_4D).add(I4_5D);
- interval_set<T> join_set2 = join_set;
- BOOST_CHECK_EQUAL( join_set, join_set2 );
- BOOST_CHECK_EQUAL( is_element_equal(join_set, join_set2), true );
-
- separate_interval_set<T> sep_set;
- sep_set.add(I1_3D).add(I2_4D).add(I4_5D);
-
- separate_interval_set<T> sep_set2 = sep_set;
- BOOST_CHECK_EQUAL( sep_set, sep_set2 );
- BOOST_CHECK_EQUAL( is_element_equal(sep_set2, sep_set), true );
-
- split_interval_set<T> split_set;
- split_set.add(I1_3D).add(I2_4D).add(I4_5D);
- split_interval_set<T> split_set2 = split_set;
- BOOST_CHECK_EQUAL( split_set, split_set2 );
- BOOST_CHECK_EQUAL( is_element_equal(split_set2, split_set), true );
-
- BOOST_CHECK_EQUAL( is_element_equal(split_set, join_set), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_set, sep_set), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_set, sep_set), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_set, split_set), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_set, join_set), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_set, split_set), true );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_contains_4_bicremental_types, T, bicremental_types)
-{
- split_interval_set<T> split_set;
- split_set.add(I_D(0,4)).add(I_D(4,8));
- BOOST_CHECK_EQUAL( split_set.contains(MK_v(4)), true );
- BOOST_CHECK_EQUAL( split_set.contains(C_D(2,5)), true );
-
- interval_set<T> join_set_gap4(split_set.erase(MK_v(4)));
- BOOST_CHECK_EQUAL( join_set_gap4.contains(MK_v(4)), false );
- BOOST_CHECK_EQUAL( join_set_gap4.contains(C_D(2,5)), false );
-
- BOOST_CHECK_EQUAL( split_set.contains(split_set), true );
- BOOST_CHECK_EQUAL( split_set.contains(join_set_gap4), true );
-
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_add_4_bicremental_types, T, bicremental_types)
-{
-
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
-
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I4_5D = interval<T>::rightopen(v4,v5);
-
- split_interval_set<T> split_set;
- split_set.add(I1_3D).add(I2_4D);
- split_set += I4_5D;
- BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
- separate_interval_set<T> sep_set;
- sep_set += split_set;
- BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
- interval_set<T> join_set;
- join_set += split_set;
- BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
-
- separate_interval_set<T> sep_set2;
- sep_set2.add(I1_3D).add(I2_4D);
- sep_set2 += I4_5D;
- BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
- split_interval_set<T> split_set2;
- split_set2 += sep_set2;
- BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
- interval_set<T> join_set2;
- join_set2 += sep_set2;
- BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
-
- interval_set<T> join_set3;
- join_set3.add(v1).add(v3);
- join_set3 += v5;
- BOOST_CHECK_EQUAL( join_set3.iterative_size(), 3 );
- split_interval_set<T> split_set3;
- split_set3 += join_set3;
- BOOST_CHECK_EQUAL( split_set3.iterative_size(), 3 );
- separate_interval_set<T> sep_set3;
- sep_set3 += join_set3;
- BOOST_CHECK_EQUAL( join_set3.iterative_size(), 3 );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_subtract_4_bicremental_types, T, bicremental_types)
-{
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_4D = interval<T>::rightopen(v0,v4);
- interval<T> I2_6D = interval<T>::rightopen(v2,v6);
- interval<T> I3_6D = interval<T>::rightopen(v3,v6);
- interval<T> I5_7D = interval<T>::rightopen(v5,v7);
- interval<T> I7_8D = interval<T>::rightopen(v7,v8);
- interval<T> I8_9D = interval<T>::rightopen(v8,v9);
- interval<T> I8_9I = interval<T>::closed(v8,v9);
-
- split_interval_set<T> split_set;
- split_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
- BOOST_CHECK_EQUAL( split_set.iterative_size(), 7 );
-
- separate_interval_set<T> sep_set;
- sep_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
- BOOST_CHECK_EQUAL( sep_set.iterative_size(), 3 );
-
- interval_set<T> join_set;
- join_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
- BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
-
- // Make sets to be subtracted
- split_interval_set<T> split_sub;
- split_sub.add(I3_6D).add(I8_9D);
-
- separate_interval_set<T> sep_sub;
- sep_sub.add(I3_6D).add(I8_9D);
-
- interval_set<T> join_sub;
- join_sub.add(I3_6D).add(I8_9D);
-
- //--------------------------------------------------------------------------
- // Test for split_interval_set
- split_interval_set<T> split_diff = split_set;
- separate_interval_set<T> sep_diff = sep_set;
- interval_set<T> join_diff = join_set;
-
- //subtraction combinations
- split_diff -= split_sub;
- sep_diff -= split_sub;
- join_diff -= split_sub;
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
- BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
-
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
-
- //--------------------------------------------------------------------------
- // Test for separate_interval_set. Reinitialize
- split_diff = split_set;
- sep_diff = sep_set;
- join_diff = join_set;
-
- //subtraction combinations
- split_diff -= sep_sub;
- sep_diff -= sep_sub;
- join_diff -= sep_sub;
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
- BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
-
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, sep_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
-
- //--------------------------------------------------------------------------
- // Test for interval_set. Reinitialize
- split_diff = split_set;
- sep_diff = sep_set;
- join_diff = join_set;
-
- //subtraction combinations
- split_diff -= join_sub;
- sep_diff -= join_sub;
- join_diff -= join_sub;
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
- BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
-
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_erase_4_bicremental_types, T, bicremental_types)
-{
- T v0 = make<T>(0);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_4D = interval<T>::rightopen(v0,v4);
- interval<T> I2_6D = interval<T>::rightopen(v2,v6);
- interval<T> I3_6D = interval<T>::rightopen(v3,v6);
- interval<T> I5_7D = interval<T>::rightopen(v5,v7);
- interval<T> I7_8D = interval<T>::rightopen(v7,v8);
- interval<T> I8_9D = interval<T>::rightopen(v8,v9);
- interval<T> I8_9I = interval<T>::closed(v8,v9);
-
- split_interval_set<T> split_set;
- split_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
- BOOST_CHECK_EQUAL( split_set.iterative_size(), 7 );
-
- separate_interval_set<T> sep_set;
- sep_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
- BOOST_CHECK_EQUAL( sep_set.iterative_size(), 3 );
-
- interval_set<T> join_set;
- join_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
- BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
-
- // Make sets to be subtracted
- split_interval_set<T> split_sub;
- split_sub.add(I3_6D).add(I8_9D);
-
- separate_interval_set<T> sep_sub;
- sep_sub.add(I3_6D).add(I8_9D);
-
- interval_set<T> join_sub;
- join_sub.add(I3_6D).add(I8_9D);
-
- //--------------------------------------------------------------------------
- // Test for split_interval_set
- split_interval_set<T> split_diff = split_set;
- separate_interval_set<T> sep_diff = sep_set;
- interval_set<T> join_diff = join_set;
-
- //subtraction combinations
- erase(split_diff, split_sub);
- erase(sep_diff, split_sub);
- erase(join_diff, split_sub);
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
- BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
-
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
-
- //--------------------------------------------------------------------------
- // Test for separate_interval_set. Reinitialize
- split_diff = split_set;
- sep_diff = sep_set;
- join_diff = join_set;
-
- //subtraction combinations
- erase(split_diff, sep_sub);
- erase(sep_diff, sep_sub);
- erase(join_diff, sep_sub);
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
- BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
-
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, sep_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
-
- //--------------------------------------------------------------------------
- // Test for interval_set. Reinitialize
- split_diff = split_set;
- sep_diff = sep_set;
- join_diff = join_set;
-
- //subtraction combinations
- erase(split_diff, join_sub);
- erase(sep_diff, join_sub);
- erase(join_diff, join_sub);
-
- BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
- BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
- BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
-
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
- BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_basic_intersect_4_bicremental_types, T, bicremental_types)
-{
- T v0 = make<T>(0);
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
-
-
- T v6 = make<T>(6);
- T v7 = make<T>(7);
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_3D = interval<T>::rightopen(v0,v3);
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I1_8D = interval<T>::rightopen(v1,v8);
- interval<T> I2_7D = interval<T>::rightopen(v2,v7);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I6_7D = interval<T>::rightopen(v6,v7);
- interval<T> I6_8D = interval<T>::rightopen(v6,v8);
- interval<T> I6_9D = interval<T>::rightopen(v6,v9);
-
- //--------------------------------------------------------------------------
- // split_interval_set
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- // &= [1 8)
- //split_AB -> [1 3) [6 8)
- // &= [2 7)
- // -> [2 3) [6 7)
- split_interval_set<T> split_A, split_B, split_AB, split_ab, split_ab2;
-
- split_A.add(I0_3D).add(I6_9D);
- split_AB = split_A;
- split_AB &= I1_8D;
- split_ab.add(I1_3D).add(I6_8D);
-
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- split_AB = split_A;
- (split_AB &= I1_8D) &= I2_7D;
- split_ab2.add(I2_3D).add(I6_7D);
-
- BOOST_CHECK_EQUAL( split_AB, split_ab2 );
-
-
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- // &= 1
- //split_AB -> [1]
- // += (1 7)
- // -> [1](1 7)
- split_A.add(I0_3D).add(I6_9D);
- split_AB = split_A;
- split_AB &= v1;
- split_ab.clear();
- split_ab.add(v1);
-
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- split_AB = split_A;
- (split_AB &= v1) += interval<T>::open(v1,v7);
- split_ab2.clear();
- split_ab2 += interval<T>::rightopen(v1,v7);
-
- BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_intersect_4_bicremental_types, T, bicremental_types)
-{
- T v0 = make<T>(0);
- T v1 = make<T>(1);
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
- T v5 = make<T>(5);
- T v6 = make<T>(6);
-
- T v8 = make<T>(8);
- T v9 = make<T>(9);
-
- interval<T> I0_3D = interval<T>::rightopen(v0,v3);
- interval<T> I1_2D = interval<T>::rightopen(v1,v2);
- interval<T> I1_3D = interval<T>::rightopen(v1,v3);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I2_4D = interval<T>::rightopen(v2,v4);
- interval<T> I5_8D = interval<T>::rightopen(v5,v8);
- interval<T> I6_8D = interval<T>::rightopen(v6,v8);
- interval<T> I6_9D = interval<T>::rightopen(v6,v9);
-
- //--------------------------------------------------------------------------
- // split_interval_set
- //--------------------------------------------------------------------------
- //split_A [0 3) [6 9)
- //split_B &= [1 2)[2 4) [5 8)
- //split_AB -> [1 2)[2 3) [6 8)
- split_interval_set<T> split_A, split_B, split_AB, split_ab, split_ab_jn;
- separate_interval_set<T> sep_A, sep_B, sep_AB, sep_ab;
- interval_set<T> join_A, join_B, join_AB, join_ab;
-
- split_A.add(I0_3D).add(I6_9D);
- split_B.add(I1_2D).add(I2_4D).add(I5_8D);
- split_ab.add(I1_2D).add(I2_3D).add(I6_8D);
- split_ab_jn.add(I1_3D).add(I6_8D);
- split_AB = split_A;
- split_AB &= split_B;
- BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- //split_A [0 3) [6 9)
- //sep_B &= [1 2)[2 4) [5 8)
- //split_AB -> [1 2)[2 3) [6 8)
- split_AB = split_A;
- sep_B = split_B;
- split_AB &= sep_B;
- BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
- BOOST_CHECK_EQUAL( split_AB, split_ab );
-
- //split_A [0 3) [6 9)
- //join_B &= [1 4) [5 8)
- //split_AB -> [1 3) [6 8)
- split_AB = split_A;
- join_B = split_B;
- split_AB &= join_B;
-
- BOOST_CHECK_EQUAL( split_AB.iterative_size(), 2 );
- BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
-
- //--------------------------------------------------------------------------
- // separate_interval_set
- //--------------------------------------------------------------------------
- //sep_A [0 3) [6 9)
- //sep_B &= [1 2)[2 4) [5 8)
- //sep_AB -> [1 2)[2 3) [6 8)
- sep_ab = split_ab;
- BOOST_CHECK_EQUAL( sep_ab.iterative_size(), 3 );
-
- sep_AB = split_A;
- sep_B = split_B;
- sep_AB &= sep_B;
-
- BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 3 );
- BOOST_CHECK_EQUAL( sep_AB, sep_ab );
-
- //sep_A [0 3) [6 9)
- //split_B &= [1 2)[2 4) [5 8)
- //sep_AB -> [1 2)[2 3) [6 8)
- sep_AB = split_A;
- sep_AB &= split_B;
-
- BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 3 );
- BOOST_CHECK_EQUAL( sep_AB, sep_ab );
-
- //sep_A [0 3) [6 9)
- //join_B &= [1 4) [5 8)
- //sep_AB -> [1 3) [6 8)
- separate_interval_set<T> sep_ab_jn = split_ab_jn;
- sep_AB = split_A;
- join_B = split_B;
- sep_AB &= join_B;
-
- BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 2 );
- BOOST_CHECK_EQUAL( sep_AB, sep_ab_jn );
-
- //--------------------------------------------------------------------------
- // separate_interval_set
- //--------------------------------------------------------------------------
- //join_A [0 3) [6 9)
- //join_B &= [1 4) [5 8)
- //join_AB -> [1 3) [6 8)
- join_ab = split_ab;
- BOOST_CHECK_EQUAL( join_ab.iterative_size(), 2 );
-
- join_AB = split_A;
- join_B = split_B;
- join_AB &= sep_B;
-
- BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
- BOOST_CHECK_EQUAL( join_AB, join_ab );
-
- //join_A [0 3) [6 9)
- //split_B &= [1 2)[2 4) [5 8)
- //join_AB -> [1 3) [6 8)
- join_AB = split_A;
- join_AB &= split_B;
-
- BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
- BOOST_CHECK_EQUAL( join_AB, join_ab );
-
- //join_A [0 3) [6 9)
- //sep_B &= [1 2)[2 4) [5 8)
- //join_AB -> [1 3) [6 8)
- join_AB = split_A;
- join_AB &= sep_B;
-
- BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
- BOOST_CHECK_EQUAL( join_AB, join_ab );
-
-}
-
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_disjoint_4_bicremental_types, T, bicremental_types)
-{
- T v0 = make<T>(0);
-
- T v2 = make<T>(2);
- T v3 = make<T>(3);
- T v4 = make<T>(4);
-
- T v6 = make<T>(6);
-
-
-
-
- interval<T> I0_2D = interval<T>::rightopen(v0,v2);
- interval<T> I2_3D = interval<T>::rightopen(v2,v3);
- interval<T> I3_4D = interval<T>::rightopen(v3,v4);
- interval<T> I4_4I = interval<T>::closed(v4,v4);
- interval<T> C4_6D = interval<T>::open(v4,v6);
- interval<T> I6_6I = interval<T>::closed(v6,v6);
-
- //--------------------------------------------------------------------------
- //split_A: [0 2) [4 4] [6 6]
- //split_B: [2 3)[3 4) (4 6)
- split_interval_set<T> split_A, split_B;
-
- split_A.add(I0_2D).add(I4_4I).add(I6_6I);
- split_B.add(I2_3D).add(I3_4D).add(C4_6D);
-
- separate_interval_set<T> sep_A(split_A), sep_B(split_B);
- interval_set<T> join_A(split_A), join_B(split_B);
-
- BOOST_CHECK_EQUAL( is_disjoint(split_A, split_B), true );
- BOOST_CHECK_EQUAL( is_disjoint(split_A, sep_B), true );
- BOOST_CHECK_EQUAL( is_disjoint(split_A, join_B), true );
-
- BOOST_CHECK_EQUAL( is_disjoint(sep_A, split_B), true );
- BOOST_CHECK_EQUAL( is_disjoint(sep_A, sep_B), true );
- BOOST_CHECK_EQUAL( is_disjoint(sep_A, join_B), true );
-
- BOOST_CHECK_EQUAL( is_disjoint(join_A, split_B), true );
- BOOST_CHECK_EQUAL( is_disjoint(join_A, sep_B), true );
- BOOST_CHECK_EQUAL( is_disjoint(join_A, join_B), true );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_infix_plus_overload_4_bicremental_types, T, bicremental_types)
-{
- interval_set<T> join_a;
- separate_interval_set<T> sep_a;
- split_interval_set<T> split_a;
-
- join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
- sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
- split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
-
- BOOST_CHECK_EQUAL(split_a + sep_a, sep_a + split_a );
- BOOST_CHECK_EQUAL(split_a + join_a, join_a + split_a);
- BOOST_CHECK_EQUAL(sep_a + join_a, join_a + sep_a );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
-{
- interval_set<T> join_a;
- separate_interval_set<T> sep_a;
- split_interval_set<T> split_a;
-
- join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
- sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
- split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
-
- BOOST_CHECK_EQUAL(split_a | sep_a, sep_a | split_a );
- BOOST_CHECK_EQUAL(split_a | join_a, join_a | split_a);
- BOOST_CHECK_EQUAL(sep_a | join_a, join_a | sep_a );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_infix_minus_overload_4_bicremental_types, T, bicremental_types)
-{
- interval_set<T> join_a, join_b;
- separate_interval_set<T> sep_a, sep_b;
- split_interval_set<T> split_a, split_b;
-
- join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
- sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
- split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
-
- BOOST_CHECK_EQUAL(split_a - sep_a, (split_b = split_a) -= sep_a );
- BOOST_CHECK_EQUAL(split_a - join_a, (split_b = split_a) -= join_a );
- BOOST_CHECK_EQUAL(sep_a - join_a, (sep_b = sep_a) -= join_a );
-
- BOOST_CHECK_EQUAL(sep_a - split_a, (sep_b = sep_a) -= split_a);
- BOOST_CHECK_EQUAL(join_a - split_a, (join_b = join_a) -= split_a);
- BOOST_CHECK_EQUAL(join_a - sep_a, (join_b = join_a) -= sep_a );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_infix_et_overload_4_bicremental_types, T, bicremental_types)
-{
- interval_set<T> join_a;
- separate_interval_set<T> sep_a;
- split_interval_set<T> split_a;
-
- join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
- sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
- split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
-
- BOOST_CHECK_EQUAL(split_a & sep_a, sep_a & split_a );
- BOOST_CHECK_EQUAL(split_a & join_a, join_a & split_a);
- BOOST_CHECK_EQUAL(sep_a & join_a, join_a & sep_a );
-}
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_set_mixed_infix_caret_overload_4_bicremental_types, T, bicremental_types)
-{
- interval_set<T> join_a;
- separate_interval_set<T> sep_a;
- split_interval_set<T> split_a;
-
- join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
- sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
- split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
-
- BOOST_CHECK_EQUAL(split_a ^ sep_a, sep_a ^ split_a );
- BOOST_CHECK_EQUAL(split_a ^ join_a, join_a ^ split_a);
- BOOST_CHECK_EQUAL(sep_a ^ join_a, join_a ^ sep_a );
-}

Added: sandbox/itl/libs/itl/test/test_itl_interval.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/libs/itl/test/test_itl_interval.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,405 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __test_itl_interval_hpp_JOFA_081006__
+#define __test_itl_interval_hpp_JOFA_081006__
+
+template <class T>
+void interval_ctor_4_ordered_types()
+{
+ // An empty interval is defined as the closed interval [1,0]
+ BOOST_CHECK_EQUAL(interval<T>().empty(), true);
+ BOOST_CHECK_EQUAL(interval<T>().cardinality(), itl::neutron<typename itl::size<T>::type>::value());
+ BOOST_CHECK_EQUAL(interval<T>().size(), itl::neutron<typename itl::size<T>::type>::value());
+ BOOST_CHECK_EQUAL(interval<T>().lower(), itl::unon<T>::value());
+ BOOST_CHECK_EQUAL(interval<T>().upper(), itl::neutron<T>::value());
+
+ BOOST_CHECK_EQUAL(interval<T>(), interval<T>());
+ BOOST_CHECK_EQUAL(interval<T>(), interval<T>(itl::unon<T>::value(), itl::neutron<T>::value()));
+ BOOST_CHECK_EQUAL(interval<T>(), interval<T>(itl::unon<T>::value(), itl::neutron<T>::value(), closed_bounded));
+}
+
+template <class T>
+void interval_ctor_4_bicremental_types()
+{
+ BOOST_CHECK_EQUAL( T(), pred(succ(T())));
+ BOOST_CHECK_EQUAL( itl::neutron<T>::value(), pred(succ(itl::neutron<T>::value())) );
+ BOOST_CHECK_EQUAL( itl::unon<T>::value(), succ(itl::neutron<T>::value()) );
+ BOOST_CHECK_EQUAL( interval<T>().length(), itl::neutron<typename difference<T>::type>::value() );
+
+ T v4 = make<T>(4);
+ itl::interval<T> I4_4I(v4);
+ BOOST_CHECK_EQUAL( I4_4I.is(closed_bounded), true );
+ BOOST_CHECK_EQUAL( I4_4I.is(left_open), false );
+ BOOST_CHECK_EQUAL( I4_4I.is(right_open), false );
+ BOOST_CHECK_EQUAL( I4_4I.is(open_bounded), false );
+ BOOST_CHECK_EQUAL( I4_4I.is_left(closed_bounded), true );
+ BOOST_CHECK_EQUAL( I4_4I.is_right(closed_bounded), true );
+ BOOST_CHECK_EQUAL( I4_4I.is_left(open_bounded), false );
+ BOOST_CHECK_EQUAL( I4_4I.is_right(open_bounded), false );
+
+ BOOST_CHECK_EQUAL( I4_4I.lower(), v4 );
+ BOOST_CHECK_EQUAL( I4_4I.upper(), v4 );
+
+ BOOST_CHECK_EQUAL( I4_4I.contains(v4), true );
+ BOOST_CHECK_EQUAL( I4_4I.contains(I4_4I), true );
+ BOOST_CHECK_EQUAL( I4_4I.contained_in(I4_4I), true );
+ BOOST_CHECK_EQUAL( I4_4I, I4_4I );
+
+ BOOST_CHECK_EQUAL( I4_4I.cardinality(), unon<typename interval<T>::size_type>::value() );
+ BOOST_CHECK_EQUAL( I4_4I.size(), unon<typename interval<T>::size_type>::value() );
+ //BOOST_CHECK_EQUAL( I4_4I.length(), neutron<typename interval<T>::difference_type>::value() );
+
+ itl::interval<T> j_4_4(I4_4I);
+ BOOST_CHECK_EQUAL( I4_4I, j_4_4 );
+ interval<T> k_4_4;
+ k_4_4 = j_4_4;
+ BOOST_CHECK_EQUAL( I4_4I, k_4_4 );
+
+ T v2 = make<T>(2);
+ BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4), interval<T>(v2, v4) );
+ BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4), interval<T>(v2, v4, closed_bounded) );
+ BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4), interval<T>(v2, v4, right_open) );
+ BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4), interval<T>(v2, v4, left_open) );
+ BOOST_CHECK_EQUAL( interval<T>::open(v2, v4), interval<T>(v2, v4, open_bounded) );
+
+ BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).lower(), v2 );
+ BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).upper(), v4 );
+ BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).boundtype(), closed_bounded );
+ BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).is(closed_bounded), true );
+ BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).is_left(closed_bounded), true );
+ BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).is_right(closed_bounded), true );
+
+ BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).lower(), v2 );
+ BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).upper(), v4 );
+ BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).boundtype(), right_open );
+ BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).is(right_open), true );
+ BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).is_left(closed_bounded), true );
+ BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).is_right(open_bounded), true );
+
+ BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).lower(), v2 );
+ BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).upper(), v4 );
+ BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).boundtype(), left_open );
+ BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).is(left_open), true );
+ BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).is_left(open_bounded), true );
+ BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).is_right(closed_bounded), true );
+
+ BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).lower(), v2 );
+ BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).upper(), v4 );
+ BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).boundtype(), open_bounded );
+ BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).is(open_bounded), true );
+ BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).is_left(open_bounded), true );
+ BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).is_right(open_bounded), true );
+}
+
+template <class T>
+void interval_ctor_4_integral_types()
+{
+ BOOST_CHECK_EQUAL(interval<T>().first(), itl::unon<T>::value());
+ BOOST_CHECK_EQUAL(interval<T>().last(), itl::neutron<T>::value());
+ BOOST_CHECK_EQUAL(interval<T>().length(), itl::neutron<typename interval<T>::difference_type>::value());
+
+ BOOST_CHECK_EQUAL(interval<T>(0,0).length(), itl::unon<typename interval<T>::difference_type>::value());
+}
+
+void interval_ctor_specific()
+{
+ BOOST_CHECK_EQUAL(interval<double>().length(), 0.0);
+ BOOST_CHECK_EQUAL(interval<double>(5.0,5.0).cardinality(), 1);
+ BOOST_CHECK_EQUAL(interval<std::string>("test","test").cardinality(), 1);
+ BOOST_CHECK_EQUAL(interval<std::string>("best","test").cardinality(), interval<double>(0.0,0.1).cardinality());
+}
+
+template <class T>
+void interval_equal_4_integral_types()
+{
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ BOOST_CHECK_EQUAL(interval<T>(), interval<T>(v7,v3));
+
+ //I: (I)nside = closed bound
+ //C: left open bound
+ //D: right open bound
+ interval<T> I3_7I = interval<T>::closed(v3,v7);
+ interval<T> I3__8D = interval<T>::rightopen(v3,v8);
+ interval<T> C2__7I = interval<T>::leftopen(v2,v7);
+ interval<T> C2___8D = interval<T>::open(v2,v8);
+
+ BOOST_CHECK_EQUAL( I3_7I , I3_7I );
+ BOOST_CHECK_EQUAL( I3_7I , I3__8D );
+ BOOST_CHECK_EQUAL( I3_7I , C2__7I );
+ BOOST_CHECK_EQUAL( I3_7I , C2___8D );
+
+ BOOST_CHECK_EQUAL( I3__8D, I3__8D );
+ BOOST_CHECK_EQUAL( I3__8D, C2__7I );
+ BOOST_CHECK_EQUAL( I3__8D, C2___8D );
+
+ BOOST_CHECK_EQUAL( C2__7I , C2__7I );
+ BOOST_CHECK_EQUAL( C2__7I , C2___8D );
+
+ BOOST_CHECK_EQUAL( C2___8D, C2___8D );
+}
+
+
+template <class T>
+void interval_less_4_integral_types()
+{
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ BOOST_CHECK_EQUAL(interval<T>() < interval<T>(v7,v3), false);
+ BOOST_CHECK_EQUAL(interval<T>::open(v2,v3) < interval<T>::rightopen(v7,v7), false);
+ BOOST_CHECK_EQUAL(interval<T>::leftopen(v3,v3) < interval<T>::closed(v7,v3), false);
+
+ BOOST_CHECK_EQUAL(interval<T>() < interval<T>(v3,v3), true);
+ BOOST_CHECK_EQUAL(interval<T>::open(v2,v3) < interval<T>::rightopen(v7,v8), true);
+
+ //I: (I)nside = closed bound
+ //C: left open bound
+ //D: right open bound
+ interval<T> I3_7I = interval<T>::closed(v3,v7);
+ interval<T> I4_7I = interval<T>::closed(v4,v7);
+
+ interval<T> I3__8D = interval<T>::rightopen(v3,v8);
+ interval<T> C2__7I = interval<T>::leftopen(v2,v7);
+ interval<T> C2___8D = interval<T>::open(v2,v8);
+
+ BOOST_CHECK_EQUAL( I3_7I < I3_7I , false);
+ BOOST_CHECK_EQUAL( I3_7I < I3__8D , false);
+ BOOST_CHECK_EQUAL( I3_7I < C2__7I , false);
+ BOOST_CHECK_EQUAL( I3_7I < C2___8D , false);
+
+ BOOST_CHECK_EQUAL( I3_7I < I4_7I , true);
+
+
+ BOOST_CHECK_EQUAL( I3__8D< I3__8D , false);
+ BOOST_CHECK_EQUAL( I3__8D< C2__7I , false);
+ BOOST_CHECK_EQUAL( I3__8D< C2___8D , false);
+
+ BOOST_CHECK_EQUAL( C2__7I < C2__7I , false);
+ BOOST_CHECK_EQUAL( C2__7I < C2___8D , false);
+
+ BOOST_CHECK_EQUAL( C2___8D< C2___8D , false);
+}
+
+
+template <class T>
+void interval_equal_4_bicremental_continuous_types()
+{
+ T v3 = make<T>(3);
+ T v7 = make<T>(7);
+ BOOST_CHECK_EQUAL(interval<T>(), interval<T>(v7,v3));
+
+ //I: (I)nside = closed bound
+ //O: (O)utside = open bound
+ interval<T> I3_7I = interval<T>::closed(v3,v7);
+ interval<T> I3_7D = interval<T>::rightopen(v3,v7);
+ interval<T> C3_7I = interval<T>::leftopen(v3,v7);
+ interval<T> C3_7D = interval<T>::open(v3,v7);
+
+ BOOST_CHECK_EQUAL( I3_7I , I3_7I );
+ BOOST_CHECK_EQUAL( I3_7I == I3_7D, false );
+ BOOST_CHECK_EQUAL( I3_7I == C3_7D, false );
+ BOOST_CHECK_EQUAL( I3_7I == C3_7D, false );
+ BOOST_CHECK_EQUAL( I3_7I != I3_7D, true );
+ BOOST_CHECK_EQUAL( I3_7I != C3_7D, true );
+ BOOST_CHECK_EQUAL( I3_7I != C3_7D, true );
+
+ BOOST_CHECK_EQUAL( I3_7D , I3_7D );
+ BOOST_CHECK_EQUAL( I3_7D == C3_7I, false );
+ BOOST_CHECK_EQUAL( I3_7D == C3_7D, false );
+ BOOST_CHECK_EQUAL( I3_7D != C3_7I, true );
+ BOOST_CHECK_EQUAL( I3_7D != C3_7D, true );
+
+ BOOST_CHECK_EQUAL( C3_7I , C3_7I );
+ BOOST_CHECK_EQUAL( C3_7I == C3_7D, false );
+ BOOST_CHECK_EQUAL( C3_7I != C3_7D, true );
+
+ BOOST_CHECK_EQUAL( C3_7D, C3_7D );
+}
+
+template <class T>
+void interval_touches_4_bicremental_types()
+{
+ T v3 = make<T>(3);
+ T v7 = make<T>(7);
+ T v9 = make<T>(9);
+
+ interval<T> I3_7D = interval<T>::rightopen(v3,v7);
+ interval<T> I7_9I = interval<T>::closed(v7,v9);
+ BOOST_CHECK_EQUAL( I3_7D.touches(I7_9I), true );
+
+ interval<T> I3_7I = interval<T>::closed(v3,v7);
+ interval<T> C7_9I = interval<T>::leftopen(v7,v9);
+ BOOST_CHECK_EQUAL( I3_7I.touches(C7_9I), true );
+
+ BOOST_CHECK_EQUAL( I3_7D.touches(C7_9I), false );
+ BOOST_CHECK_EQUAL( I3_7I.touches(I7_9I), false );
+}
+
+template <class T>
+void interval_touches_4_integral_types()
+{
+ T v3 = make<T>(3);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v9 = make<T>(9);
+
+ interval<T> I3_6I = interval<T>::closed(v3,v6);
+ interval<T> I7_9I = interval<T>::closed(v7,v9);
+ BOOST_CHECK_EQUAL( I3_6I.touches(I7_9I), true );
+
+ interval<T> I3_7D = interval<T>::rightopen(v3,v7);
+ interval<T> C6_9I = interval<T>::leftopen(v6,v9);
+ BOOST_CHECK_EQUAL( I3_7D.touches(C6_9I), true );
+}
+
+
+template <class T>
+void interval_inplace_intersect_4_bicremental_types()
+{
+ T v0 = make<T>(0);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v9 = make<T>(9);
+
+ interval<T> section;
+ interval<T> I3_7D = interval<T>::rightopen(v3,v7);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ section = I3_7D; section &= I0_3D;
+ BOOST_CHECK_EQUAL( I0_3D.is_disjoint(I3_7D), true );
+ BOOST_CHECK_EQUAL( section.empty(), true );
+ BOOST_CHECK_EQUAL( section, interval<T>() );
+
+ interval<T> I0_5D = interval<T>::rightopen(v0,v5);
+ section = I3_7D; section &= I0_5D;
+ BOOST_CHECK_EQUAL( section, interval<T>::rightopen(v3, v5) );
+
+ interval<T> I0_9D = interval<T>::rightopen(v0,v9);
+ section = I3_7D; section &= I0_9D;
+ BOOST_CHECK_EQUAL( section, I3_7D );
+
+ interval<T> I4_5I = interval<T>::closed(v4,v5);
+ section = I3_7D; section &= I4_5I;
+ BOOST_CHECK_EQUAL( section, I4_5I );
+
+ interval<T> C4_6D = interval<T>::open(v4,v6);
+ section = I3_7D; section &= C4_6D;
+ BOOST_CHECK_EQUAL( section, C4_6D );
+
+ interval<T> C4_9I = interval<T>::leftopen(v4,v9);
+ section = I3_7D; section &= C4_9I;
+ BOOST_CHECK_EQUAL( section, interval<T>::open(v4,v7) );
+
+ interval<T> I7_9I = interval<T>::closed(v7,v9);
+ section = I3_7D; section &= I7_9I;
+ BOOST_CHECK_EQUAL( I3_7D.exclusive_less(I7_9I), true );
+ BOOST_CHECK_EQUAL( I3_7D.is_disjoint(I7_9I), true );
+ BOOST_CHECK_EQUAL( section.empty(), true );
+}
+
+template <class T>
+void interval_infix_intersect_4_bicremental_types()
+{
+ T v0 = make<T>(0);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v9 = make<T>(9);
+
+ interval<T> section;
+ interval<T> I3_7D = interval<T>::rightopen(v3,v7);
+
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ section = I3_7D & I0_3D;
+ BOOST_CHECK_EQUAL( I0_3D.is_disjoint(I3_7D), true );
+ BOOST_CHECK_EQUAL( section.empty(), true );
+ BOOST_CHECK_EQUAL( section, interval<T>() );
+
+ interval<T> I0_5D = interval<T>::rightopen(v0,v5);
+ section = I3_7D & I0_5D;
+ BOOST_CHECK_EQUAL( section, interval<T>::rightopen(v3, v5) );
+
+ interval<T> I0_9D = interval<T>::rightopen(v0,v9);
+ section = I3_7D & I0_9D;
+ BOOST_CHECK_EQUAL( section, I3_7D );
+
+ interval<T> I4_5I = interval<T>::closed(v4,v5);
+ section = I3_7D & I4_5I;
+ BOOST_CHECK_EQUAL( section, I4_5I );
+
+ interval<T> C4_6D = interval<T>::open(v4,v6);
+ section = I3_7D & C4_6D;
+ BOOST_CHECK_EQUAL( section, C4_6D );
+
+ interval<T> C4_9I = interval<T>::leftopen(v4,v9);
+ section = I3_7D & C4_9I;
+ BOOST_CHECK_EQUAL( section, interval<T>::open(v4,v7) );
+
+ interval<T> I7_9I = interval<T>::closed(v7,v9);
+ section = I3_7D & I7_9I;
+ BOOST_CHECK_EQUAL( I3_7D.exclusive_less(I7_9I), true );
+ BOOST_CHECK_EQUAL( I3_7D.is_disjoint(I7_9I), true );
+ BOOST_CHECK_EQUAL( section.empty(), true );
+}
+
+template <class T>
+void interval_subtract_4_bicremental_types()
+{
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+
+ interval<T> diff_1, diff_2;
+ interval<T> I0_3D = interval<T>::rightopen(v0,v3);
+ interval<T> I2_6D = interval<T>::rightopen(v2,v6);
+ interval<T> I4_7D = interval<T>::rightopen(v4,v7);
+ interval<T> I6_7D = interval<T>::rightopen(v6,v7);
+ interval<T> I2_4D = interval<T>::rightopen(v2,v4);
+
+ diff_1 = right_subtract(I2_6D, I4_7D);
+ BOOST_CHECK_EQUAL( diff_1, I2_4D );
+
+ diff_2 = I2_6D;
+ diff_2.right_subtract(I4_7D);
+ BOOST_CHECK_EQUAL( diff_2, I2_4D );
+
+ diff_1.clear();
+ diff_1 = right_subtract(I0_3D, I4_7D);
+ BOOST_CHECK_EQUAL( diff_1, I0_3D );
+
+ // ---------------------------------
+ diff_1 = left_subtract(I4_7D, I2_6D);
+ BOOST_CHECK_EQUAL( diff_1, I6_7D );
+
+ diff_2 = I4_7D;
+ diff_2.left_subtract(I2_6D);
+ BOOST_CHECK_EQUAL( diff_2, I6_7D );
+
+ diff_1.clear();
+ diff_1 = left_subtract(I4_7D, I0_3D);
+ BOOST_CHECK_EQUAL( diff_1, I4_7D );
+
+ diff_2 = I4_7D;
+ diff_2.left_subtract(I0_3D);
+ BOOST_CHECK_EQUAL( diff_2, I4_7D );
+}
+
+#endif // __test_itl_interval_hpp_JOFA_081006__

Modified: sandbox/itl/libs/itl/test/test_itl_interval_/test_itl_interval.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_interval_/test_itl_interval.cpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_interval_/test_itl_interval.cpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -23,8 +23,59 @@
 using namespace boost::itl;
 
 
+#include "../test_itl_interval.hpp"
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_ctor_4_ordered_types, T, ordered_types)
+{ interval_ctor_4_ordered_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_ctor_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_ctor_4_integral_types, T, integral_types)
+{ interval_ctor_4_integral_types<T>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_interval_ctor_specific)
+{ interval_ctor_specific(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_equal_4_integral_types, T, integral_types)
+{ interval_equal_4_integral_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_less_4_integral_types, T, integral_types)
+{ interval_less_4_integral_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_equal_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_equal_4_bicremental_continuous_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_touches_4_bicremental_types, T, bicremental_types)
+{ interval_touches_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_touches_4_integral_types, T, integral_types)
+{ interval_touches_4_integral_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_inplace_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_inplace_intersect_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_infix_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_infix_intersect_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_interval_subtract_4_bicremental_types, T, bicremental_types)
+{ interval_subtract_4_bicremental_types<T>(); }
+
+/*
 // Most general, largest set of types
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_ctor_4_ordered_types, T, ordered_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_ctor_4_ordered_types, T, ordered_types)
 {
     // An empty interval is defined as the closed interval [1,0]
     BOOST_CHECK_EQUAL(interval<T>().empty(), true);
@@ -39,7 +90,7 @@
 
 }
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_ctor_4_bicremental_types, T, bicremental_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_ctor_4_bicremental_types, T, bicremental_types)
 {
     BOOST_CHECK_EQUAL( T(), pred(succ(T())));
     BOOST_CHECK_EQUAL( itl::neutron<T>::value(), pred(succ(itl::neutron<T>::value())) );
@@ -111,7 +162,7 @@
     BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).is_right(open_bounded), true );
 }
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_ctor_4_integral_types, T, integral_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_ctor_4_integral_types, T, integral_types)
 {
     BOOST_CHECK_EQUAL(interval<T>().first(), itl::unon<T>::value());
     BOOST_CHECK_EQUAL(interval<T>().last(), itl::neutron<T>::value());
@@ -120,7 +171,7 @@
     BOOST_CHECK_EQUAL(interval<T>(0,0).length(), itl::unon<typename interval<T>::difference_type>::value());
 }
 
-BOOST_AUTO_TEST_CASE(test_itl_interval_ctor_specific)
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_ctor_specific)
 {
     BOOST_CHECK_EQUAL(interval<double>().length(), 0.0);
     BOOST_CHECK_EQUAL(interval<double>(5.0,5.0).cardinality(), 1);
@@ -129,7 +180,7 @@
 }
 
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_equal_4_integral_types, T, integral_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_equal_4_integral_types, T, integral_types)
 {
     T v2 = make<T>(2);
     T v3 = make<T>(3);
@@ -161,7 +212,7 @@
 }
 
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_less_4_integral_types, T, integral_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_less_4_integral_types, T, integral_types)
 {
     T v2 = make<T>(2);
     T v3 = make<T>(3);
@@ -204,7 +255,7 @@
 }
 
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_equal_4_bicremental_continuous_types, T, bicremental_continuous_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_equal_4_bicremental_continuous_types, T, bicremental_continuous_types)
 {
     T v3 = make<T>(3);
     T v7 = make<T>(7);
@@ -238,7 +289,7 @@
     BOOST_CHECK_EQUAL( C3_7D, C3_7D );
 }
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_touches_4_bicremental_types, T, bicremental_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_touches_4_bicremental_types, T, bicremental_types)
 {
     T v3 = make<T>(3);
     T v7 = make<T>(7);
@@ -256,7 +307,7 @@
     BOOST_CHECK_EQUAL( I3_7I.touches(I7_9I), false );
 }
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_touches_4_integral_types, T, integral_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_touches_4_integral_types, T, integral_types)
 {
     T v3 = make<T>(3);
     T v6 = make<T>(6);
@@ -273,7 +324,7 @@
 }
 
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_inplace_intersect_4_bicremental_types, T, bicremental_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_inplace_intersect_4_bicremental_types, T, bicremental_types)
 {
     T v0 = make<T>(0);
     T v3 = make<T>(3);
@@ -319,7 +370,7 @@
     BOOST_CHECK_EQUAL( section.empty(), true );
 }
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_infix_intersect_4_bicremental_types, T, bicremental_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_infix_intersect_4_bicremental_types, T, bicremental_types)
 {
     T v0 = make<T>(0);
     T v3 = make<T>(3);
@@ -365,7 +416,7 @@
     BOOST_CHECK_EQUAL( section.empty(), true );
 }
 
-BOOST_AUTO_TEST_CASE_TEMPLATE(test_itl_interval_subtract_4_bicremental_types, T, bicremental_types)
+BOOST_AUTO_TEST_CASE_TEMPLATE_TEMPLATE(test_itl_interval_subtract_4_bicremental_types, T, bicremental_types)
 {
     T v0 = make<T>(0);
     T v2 = make<T>(2);
@@ -408,3 +459,5 @@
     diff_2.left_subtract(I0_3D);
     BOOST_CHECK_EQUAL( diff_2, I4_7D );
 }
+*/
+

Modified: sandbox/itl/libs/itl/test/test_itl_map_/test_itl_map_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_map_/test_itl_map_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_map_/test_itl_map_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,8 +5,11 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_itl_map_cases_hpp_JOFA_090701__
+#define __itl_test_itl_map_cases_hpp_JOFA_090701__
+
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_itl_map_find_4_bicremental_types, T, discrete_types)
 { itl_map_find_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
 
+#endif // __itl_test_itl_map_cases_hpp_JOFA_090701__

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 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,7 +5,8 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_partial_interval_quantifier_cases_hpp_JOFA_090701__
+#define __itl_test_partial_interval_quantifier_cases_hpp_JOFA_090701__
 
 //------------------------------------------------------------------------------
 // partial_absorber
@@ -59,3 +60,5 @@
 // partial x - x == 0 x - x =p= 0 partiality of subtraction
 // total (-x)+ x == 0 (-x)+ x =p= 0 totality of subtraction
 
+#endif // __itl_test_partial_interval_quantifier_cases_hpp_JOFA_090701__
+

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 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,7 +5,9 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_set_interval_set_cases_hpp_JOFA_090701__
+#define __itl_test_set_interval_set_cases_hpp_JOFA_090701__
+
 //------------------------------------------------------------------------------
 // interval_set
 //------------------------------------------------------------------------------
@@ -65,3 +67,5 @@
 (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>();}
 
+#endif // __itl_test_set_interval_set_cases_hpp_JOFA_090701__
+

Modified: sandbox/itl/libs/itl/test/test_set_itl_set_/test_set_itl_set_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_itl_set_/test_set_itl_set_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_set_itl_set_/test_set_itl_set_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,7 +5,9 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_set_itl_set_cases_hpp_JOFA_090701__
+#define __itl_test_set_itl_set_cases_hpp_JOFA_090701__
+
 //------------------------------------------------------------------------------
 // interval_set
 //------------------------------------------------------------------------------
@@ -28,3 +30,6 @@
 (test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
 { itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
 
+#endif // __itl_test_set_itl_set_cases_hpp_JOFA_090701__
+
+

Modified: sandbox/itl/libs/itl/test/test_set_itl_set_cases.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_itl_set_cases.hpp (original)
+++ sandbox/itl/libs/itl/test/test_set_itl_set_cases.hpp 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,7 +5,8 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_set_itl_set_cases_hpp_JOFA_090701__
+#define __itl_test_set_itl_set_cases_hpp_JOFA_090701__
 
 BOOST_AUTO_TEST_CASE_TEMPLATE
 (test_itl_itl_set_check_monoid_plus_4_bicremental_types, T, discrete_types)
@@ -23,3 +24,6 @@
 (test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
 { itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, INTERVAL_SET>();}
 
+#endif // __itl_test_set_itl_set_cases_hpp_JOFA_090701__
+
+

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 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -5,7 +5,8 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#pragma once
+#ifndef __itl_test_total_interval_quantifier_cases_hpp_JOFA_090701__
+#define __itl_test_total_interval_quantifier_cases_hpp_JOFA_090701__
 
 //------------------------------------------------------------------------------
 // total_absorber
@@ -59,3 +60,5 @@
 // partial x - x == 0 x - x =p= 0 partiality of subtraction
 // total (-x)+ x == 0 (-x)+ x =p= 0 totality of subtraction
 
+#endif // __itl_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 2009-07-03 09:29:59 EDT (Fri, 03 Jul 2009)
@@ -27,6 +27,15 @@
 // ,boost::gregorian::date
> bicremental_types;
 
+typedef unsigned int bicremental_type_1;
+typedef int bicremental_type_2;
+typedef double bicremental_type_3;
+typedef boost::rational<int> bicremental_type_4;
+typedef boost::posix_time::ptime bicremental_type_5;
+typedef unsigned short bicremental_type_6;
+typedef short bicremental_type_7;
+typedef float bicremental_type_8;
+
 //DBG short list for debugging
 typedef ::boost::mpl::list<
     int
@@ -37,11 +46,21 @@
     ,boost::rational<int>
> bicremental_continuous_types;
 
+typedef float bicremental_continuous_type_1;
+typedef double bicremental_continuous_type_2;
+typedef boost::rational<int> bicremental_continuous_type_3;
+
+
 typedef ::boost::mpl::list<
     unsigned short, unsigned int, unsigned long
     ,short, int, long
> integral_types;
 
+typedef int integral_type_1;
+typedef unsigned int integral_type_2;
+typedef short integral_type_3;
+typedef unsigned int integral_type_4;
+
 typedef ::boost::mpl::list<
     unsigned short, unsigned int, unsigned long
     ,short, int, long
@@ -49,12 +68,23 @@
 // ,boost::gregorian::date
> discrete_types;
 
+typedef int discrete_type_1;
+typedef boost::posix_time::ptime discrete_type_2;
+typedef unsigned int discrete_type_3;
+typedef short discrete_type_4;
+typedef unsigned int discrete_type_5;
+
 typedef ::boost::mpl::list<
     float, double
     ,boost::rational<int>
     ,std::string
> continuous_types;
 
+typedef double continuous_type_1;
+typedef float continuous_type_2;
+typedef boost::rational<int> continuous_type_3;
+typedef std::string continuous_type_4;
+
 typedef ::boost::mpl::list<
     unsigned short, unsigned int, unsigned long
     ,short, int, long
@@ -65,5 +95,11 @@
 // ,boost::gregorian::date
> ordered_types;
 
+typedef int ordered_type_1;
+typedef std::string ordered_type_2;
+typedef boost::posix_time::ptime ordered_type_3;
+typedef boost::rational<int> ordered_type_4;
+typedef double ordered_type_5;
+
 #endif
 


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