fastest_icl_interval.cpp 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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. // interval instance types
  14. #include "../test_type_lists.hpp"
  15. #include "../test_value_maker.hpp"
  16. #include "../test_interval_laws.hpp"
  17. #include <boost/icl/right_open_interval.hpp>
  18. #include <boost/icl/left_open_interval.hpp>
  19. #include <boost/icl/closed_interval.hpp>
  20. #include <boost/icl/open_interval.hpp>
  21. #include <boost/icl/discrete_interval.hpp>
  22. #include <boost/icl/continuous_interval.hpp>
  23. using namespace std;
  24. using namespace boost;
  25. using namespace unit_test;
  26. using namespace boost::icl;
  27. #include "../test_icl_interval_shared.hpp"
  28. #include "../test_icl_interval.hpp"
  29. #include "../test_icl_dynamic_interval.hpp"
  30. #include "../test_icl_discrete_interval.hpp"
  31. #include "../test_icl_continuous_interval.hpp"
  32. #include "../test_icl_static_interval.hpp"
  33. //==============================================================================
  34. //= Traits
  35. //==============================================================================
  36. BOOST_AUTO_TEST_CASE
  37. (fastest_icl_discrete_interval_traits)
  38. { discrete_interval_traits<discrete_type_1, discrete_interval<discrete_type_1> >(); }
  39. //==============================================================================
  40. //- sta.asy.{dis|con} ----------------------------------------------------------
  41. BOOST_AUTO_TEST_CASE
  42. (fastest_icl_right_open_interval_ctor_4_ordered_types)
  43. { interval_ctor_4_ordered_types<right_open_interval<ordered_type_1> >(); }
  44. BOOST_AUTO_TEST_CASE
  45. (fastest_icl_right_open_interval_4_ordered_types)
  46. { singelizable_interval_4_ordered_types<right_open_interval<discrete_type_1> >(); }
  47. BOOST_AUTO_TEST_CASE
  48. (fastest_icl_right_open_interval_4_bicremental_types)
  49. { singelizable_interval_4_bicremental_types<right_open_interval<discrete_type_2> >(); }
  50. BOOST_AUTO_TEST_CASE
  51. (fastest_icl_left_open_interval_ctor_4_ordered_types)
  52. { interval_ctor_4_ordered_types<left_open_interval<ordered_type_2> >(); }
  53. BOOST_AUTO_TEST_CASE
  54. (fastest_icl_left_open_interval_4_ordered_types_singelizable)
  55. { singelizable_interval_4_ordered_types<left_open_interval<signed_discrete_type_1> >(); }
  56. BOOST_AUTO_TEST_CASE
  57. (fastest_icl_left_open_interval_4_bicremental_types)
  58. { singelizable_interval_4_bicremental_types<left_open_interval<discrete_type_4> >(); }
  59. //- coverables -----------------------------------------------------------------
  60. BOOST_AUTO_TEST_CASE
  61. (fastest_cover_right_open_interval_4_bicremental_types)
  62. { coverable_asymmetric_interval_4_bicremental_types<right_open_interval<numeric_continuous_type_1> >(); }
  63. BOOST_AUTO_TEST_CASE
  64. (fastest_cover_left_open_interval_4_bicremental_types)
  65. { coverable_asymmetric_interval_4_bicremental_types<left_open_interval<numeric_continuous_type_3> >(); }
  66. //- dyn.dis --------------------------------------------------------------------
  67. BOOST_AUTO_TEST_CASE
  68. (fastest_icl_discrete_interval_ctor_4_discrete_types_base)
  69. { interval_ctor_4_ordered_types<discrete_interval<discrete_type_1> >(); }
  70. BOOST_AUTO_TEST_CASE
  71. (fastest_icl_discrete_interval_ctor_4_discrete_types_dynamic)
  72. { dynamic_interval_ctor_4_ordered_types<discrete_interval<discrete_type_2> >(); }
  73. BOOST_AUTO_TEST_CASE
  74. (fastest_icl_discrete_interval_4_ordered_types)
  75. { singelizable_interval_4_ordered_types<discrete_interval<discrete_type_3> >(); }
  76. BOOST_AUTO_TEST_CASE
  77. (fastest_icl_discrete_interval_4_bicremental_types)
  78. { singelizable_interval_4_bicremental_types<discrete_interval<discrete_type_3> >(); }
  79. //- dyn.con --------------------------------------------------------------------
  80. BOOST_AUTO_TEST_CASE
  81. (fastest_icl_continuous_interval_ctor_4_continuous_types_base)
  82. { interval_ctor_4_ordered_types<continuous_interval<continuous_type_1> >(); }
  83. BOOST_AUTO_TEST_CASE
  84. (fastest_icl_continuous_interval_ctor_4_continuous_types_dynamic)
  85. { dynamic_interval_ctor_4_ordered_types<continuous_interval<continuous_type_2> >(); }
  86. BOOST_AUTO_TEST_CASE
  87. (fastest_icl_continuous_interval_4_continuous_types_singelizable)
  88. { singelizable_interval_4_ordered_types<continuous_interval<continuous_type_3> >(); }
  89. //------------------------------------------------------------------------------
  90. BOOST_AUTO_TEST_CASE
  91. (fastest_icl_distant_intervals_4_discrete_types)
  92. { distant_intervals_4_discrete_types<discrete_type_1, std::less>(); }
  93. BOOST_AUTO_TEST_CASE
  94. (fastest_icl_distant_intervals_4_numeric_continuous_types)
  95. { distant_intervals_4_numeric_continuous_types<numeric_continuous_type_1, std::less>(); }
  96. //------------------------------------------------------------------------------
  97. BOOST_AUTO_TEST_CASE
  98. (fastest_icl_dynamic_interval_bounds_4_bicremental_types)
  99. { dynamic_interval_bounds_4_bicremental_types<bicremental_type_2>(); }
  100. //==============================================================================
  101. //==============================================================================
  102. BOOST_AUTO_TEST_CASE
  103. (fastest_icl_interval_equal_4_integral_types)
  104. { interval_equal_4_integral_types<integral_type_2>(); }
  105. BOOST_AUTO_TEST_CASE
  106. (fastest_icl_interval_less_4_integral_types)
  107. { interval_less_4_integral_types<integral_type_3>(); }
  108. BOOST_AUTO_TEST_CASE
  109. (fastest_icl_interval_touches_4_bicremental_types)
  110. { interval_touches_4_bicremental_types<bicremental_type_1>(); }
  111. BOOST_AUTO_TEST_CASE
  112. (fastest_icl_interval_touches_4_integral_types)
  113. { interval_touches_4_integral_types<integral_type_4>(); }
  114. #ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
  115. BOOST_AUTO_TEST_CASE
  116. (fastest_icl_interval_ctor_specific)
  117. { interval_ctor_specific(); }
  118. BOOST_AUTO_TEST_CASE
  119. (fastest_icl_interval_equal_4_bicremental_continuous_types)
  120. { interval_equal_4_bicremental_continuous_types<bicremental_continuous_type_1>(); }
  121. BOOST_AUTO_TEST_CASE
  122. (fastest_icl_interval_infix_intersect_4_bicremental_types)
  123. { interval_infix_intersect_4_bicremental_types<bicremental_type_4>(); }
  124. #else
  125. BOOST_AUTO_TEST_CASE
  126. (fastest_icl_interval_infix_intersect_4_bicremental_types)
  127. { interval_infix_intersect_4_bicremental_types<discrete_type_2>(); }
  128. BOOST_AUTO_TEST_CASE
  129. (fastest_icl_interval_subtract_4_bicremental_types)
  130. { interval_subtract_4_bicremental_types<bicremental_type_5>(); }
  131. #endif // ndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS