1 /*-----------------------------------------------------------------------------+ 2 Copyright (c) 2008-2009: Joachim Faulhaber 3 +------------------------------------------------------------------------------+ 4 Distributed under the Boost Software License, Version 1.0. 5 (See accompanying file LICENCE.txt or copy at 6 http://www.boost.org/LICENSE_1_0.txt) 7 +-----------------------------------------------------------------------------*/ 8 #define BOOST_TEST_MODULE icl::interval unit test 9 #include <libs/icl/test/disable_test_warnings.hpp> 10 #include <string> 11 #include <boost/mpl/list.hpp> 12 #include "../unit_test_unwarned.hpp" 13 14 // interval instance types 15 #include "../test_type_lists.hpp" 16 #include "../test_value_maker.hpp" 17 #include "../test_interval_laws.hpp" 18 19 #include <boost/icl/right_open_interval.hpp> 20 #include <boost/icl/left_open_interval.hpp> 21 #include <boost/icl/closed_interval.hpp> 22 #include <boost/icl/open_interval.hpp> 23 24 #include <boost/icl/discrete_interval.hpp> 25 #include <boost/icl/continuous_interval.hpp> 26 27 using namespace std; 28 using namespace boost; 29 using namespace unit_test; 30 using namespace boost::icl; 31 32 #include "../test_icl_interval_shared.hpp" 33 #include "../test_icl_interval.hpp" 34 #include "../test_icl_dynamic_interval.hpp" 35 #include "../test_icl_discrete_interval.hpp" 36 #include "../test_icl_continuous_interval.hpp" 37 #include "../test_icl_static_interval.hpp" 38 39 //============================================================================== 40 //= Traits 41 //============================================================================== BOOST_AUTO_TEST_CASE(fastest_icl_discrete_interval_traits)42BOOST_AUTO_TEST_CASE 43 (fastest_icl_discrete_interval_traits) 44 { discrete_interval_traits<discrete_type_1, discrete_interval<discrete_type_1> >(); } 45 46 //============================================================================== 47 48 //- sta.asy.{dis|con} ---------------------------------------------------------- BOOST_AUTO_TEST_CASE(fastest_icl_right_open_interval_ctor_4_ordered_types)49BOOST_AUTO_TEST_CASE 50 (fastest_icl_right_open_interval_ctor_4_ordered_types) 51 { interval_ctor_4_ordered_types<right_open_interval<ordered_type_1> >(); } 52 BOOST_AUTO_TEST_CASE(fastest_icl_right_open_interval_4_ordered_types)53BOOST_AUTO_TEST_CASE 54 (fastest_icl_right_open_interval_4_ordered_types) 55 { singelizable_interval_4_ordered_types<right_open_interval<discrete_type_1> >(); } 56 BOOST_AUTO_TEST_CASE(fastest_icl_right_open_interval_4_bicremental_types)57BOOST_AUTO_TEST_CASE 58 (fastest_icl_right_open_interval_4_bicremental_types) 59 { singelizable_interval_4_bicremental_types<right_open_interval<discrete_type_2> >(); } 60 BOOST_AUTO_TEST_CASE(fastest_icl_left_open_interval_ctor_4_ordered_types)61BOOST_AUTO_TEST_CASE 62 (fastest_icl_left_open_interval_ctor_4_ordered_types) 63 { interval_ctor_4_ordered_types<left_open_interval<ordered_type_2> >(); } 64 BOOST_AUTO_TEST_CASE(fastest_icl_left_open_interval_4_ordered_types_singelizable)65BOOST_AUTO_TEST_CASE 66 (fastest_icl_left_open_interval_4_ordered_types_singelizable) 67 { singelizable_interval_4_ordered_types<left_open_interval<signed_discrete_type_1> >(); } 68 BOOST_AUTO_TEST_CASE(fastest_icl_left_open_interval_4_bicremental_types)69BOOST_AUTO_TEST_CASE 70 (fastest_icl_left_open_interval_4_bicremental_types) 71 { singelizable_interval_4_bicremental_types<left_open_interval<discrete_type_4> >(); } 72 73 //- coverables ----------------------------------------------------------------- BOOST_AUTO_TEST_CASE(fastest_cover_right_open_interval_4_bicremental_types)74BOOST_AUTO_TEST_CASE 75 (fastest_cover_right_open_interval_4_bicremental_types) 76 { coverable_asymmetric_interval_4_bicremental_types<right_open_interval<numeric_continuous_type_1> >(); } 77 BOOST_AUTO_TEST_CASE(fastest_cover_left_open_interval_4_bicremental_types)78BOOST_AUTO_TEST_CASE 79 (fastest_cover_left_open_interval_4_bicremental_types) 80 { coverable_asymmetric_interval_4_bicremental_types<left_open_interval<numeric_continuous_type_3> >(); } 81 82 //- dyn.dis -------------------------------------------------------------------- BOOST_AUTO_TEST_CASE(fastest_icl_discrete_interval_ctor_4_discrete_types_base)83BOOST_AUTO_TEST_CASE 84 (fastest_icl_discrete_interval_ctor_4_discrete_types_base) 85 { interval_ctor_4_ordered_types<discrete_interval<discrete_type_1> >(); } 86 BOOST_AUTO_TEST_CASE(fastest_icl_discrete_interval_ctor_4_discrete_types_dynamic)87BOOST_AUTO_TEST_CASE 88 (fastest_icl_discrete_interval_ctor_4_discrete_types_dynamic) 89 { dynamic_interval_ctor_4_ordered_types<discrete_interval<discrete_type_2> >(); } 90 BOOST_AUTO_TEST_CASE(fastest_icl_discrete_interval_4_ordered_types)91BOOST_AUTO_TEST_CASE 92 (fastest_icl_discrete_interval_4_ordered_types) 93 { singelizable_interval_4_ordered_types<discrete_interval<discrete_type_3> >(); } 94 BOOST_AUTO_TEST_CASE(fastest_icl_discrete_interval_4_bicremental_types)95BOOST_AUTO_TEST_CASE 96 (fastest_icl_discrete_interval_4_bicremental_types) 97 { singelizable_interval_4_bicremental_types<discrete_interval<discrete_type_3> >(); } 98 99 //- dyn.con -------------------------------------------------------------------- BOOST_AUTO_TEST_CASE(fastest_icl_continuous_interval_ctor_4_continuous_types_base)100BOOST_AUTO_TEST_CASE 101 (fastest_icl_continuous_interval_ctor_4_continuous_types_base) 102 { interval_ctor_4_ordered_types<continuous_interval<continuous_type_1> >(); } 103 BOOST_AUTO_TEST_CASE(fastest_icl_continuous_interval_ctor_4_continuous_types_dynamic)104BOOST_AUTO_TEST_CASE 105 (fastest_icl_continuous_interval_ctor_4_continuous_types_dynamic) 106 { dynamic_interval_ctor_4_ordered_types<continuous_interval<continuous_type_2> >(); } 107 BOOST_AUTO_TEST_CASE(fastest_icl_continuous_interval_4_continuous_types_singelizable)108BOOST_AUTO_TEST_CASE 109 (fastest_icl_continuous_interval_4_continuous_types_singelizable) 110 { singelizable_interval_4_ordered_types<continuous_interval<continuous_type_3> >(); } 111 112 //------------------------------------------------------------------------------ 113 BOOST_AUTO_TEST_CASE(fastest_icl_distant_intervals_4_discrete_types)114BOOST_AUTO_TEST_CASE 115 (fastest_icl_distant_intervals_4_discrete_types) 116 { distant_intervals_4_discrete_types<discrete_type_1, std::less>(); } 117 BOOST_AUTO_TEST_CASE(fastest_icl_distant_intervals_4_numeric_continuous_types)118BOOST_AUTO_TEST_CASE 119 (fastest_icl_distant_intervals_4_numeric_continuous_types) 120 { distant_intervals_4_numeric_continuous_types<numeric_continuous_type_1, std::less>(); } 121 122 //------------------------------------------------------------------------------ BOOST_AUTO_TEST_CASE(fastest_icl_dynamic_interval_bounds_4_bicremental_types)123BOOST_AUTO_TEST_CASE 124 (fastest_icl_dynamic_interval_bounds_4_bicremental_types) 125 { dynamic_interval_bounds_4_bicremental_types<bicremental_type_2>(); } 126 127 //============================================================================== 128 //============================================================================== BOOST_AUTO_TEST_CASE(fastest_icl_interval_equal_4_integral_types)129BOOST_AUTO_TEST_CASE 130 (fastest_icl_interval_equal_4_integral_types) 131 { interval_equal_4_integral_types<integral_type_2>(); } 132 BOOST_AUTO_TEST_CASE(fastest_icl_interval_less_4_integral_types)133BOOST_AUTO_TEST_CASE 134 (fastest_icl_interval_less_4_integral_types) 135 { interval_less_4_integral_types<integral_type_3>(); } 136 BOOST_AUTO_TEST_CASE(fastest_icl_interval_touches_4_bicremental_types)137BOOST_AUTO_TEST_CASE 138 (fastest_icl_interval_touches_4_bicremental_types) 139 { interval_touches_4_bicremental_types<bicremental_type_1>(); } 140 BOOST_AUTO_TEST_CASE(fastest_icl_interval_touches_4_integral_types)141BOOST_AUTO_TEST_CASE 142 (fastest_icl_interval_touches_4_integral_types) 143 { interval_touches_4_integral_types<integral_type_4>(); } 144 145 #ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS 146 BOOST_AUTO_TEST_CASE(fastest_icl_interval_ctor_specific)147BOOST_AUTO_TEST_CASE 148 (fastest_icl_interval_ctor_specific) 149 { interval_ctor_specific(); } 150 BOOST_AUTO_TEST_CASE(fastest_icl_interval_equal_4_bicremental_continuous_types)151BOOST_AUTO_TEST_CASE 152 (fastest_icl_interval_equal_4_bicremental_continuous_types) 153 { interval_equal_4_bicremental_continuous_types<bicremental_continuous_type_1>(); } 154 BOOST_AUTO_TEST_CASE(fastest_icl_interval_infix_intersect_4_bicremental_types)155BOOST_AUTO_TEST_CASE 156 (fastest_icl_interval_infix_intersect_4_bicremental_types) 157 { interval_infix_intersect_4_bicremental_types<bicremental_type_4>(); } 158 159 #else 160 BOOST_AUTO_TEST_CASE(fastest_icl_interval_infix_intersect_4_bicremental_types)161BOOST_AUTO_TEST_CASE 162 (fastest_icl_interval_infix_intersect_4_bicremental_types) 163 { interval_infix_intersect_4_bicremental_types<discrete_type_2>(); } 164 BOOST_AUTO_TEST_CASE(fastest_icl_interval_subtract_4_bicremental_types)165BOOST_AUTO_TEST_CASE 166 (fastest_icl_interval_subtract_4_bicremental_types) 167 { interval_subtract_4_bicremental_types<bicremental_type_5>(); } 168 169 #endif // ndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS 170