123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*-----------------------------------------------------------------------------+
- 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 BOOST_ICL_TEST_ICL_DYNAMIC_INTERVAL_HPP_JOFA_100930
- #define BOOST_ICL_TEST_ICL_DYNAMIC_INTERVAL_HPP_JOFA_100930
- template <class IntervalT>
- void dynamic_interval_ctor_4_ordered_types()
- {
- typedef typename domain_type_of<interval_traits<IntervalT> >::type T;
- BOOST_CHECK_EQUAL(IntervalT().lower(), icl::identity_element<T>::value());
- BOOST_CHECK_EQUAL(IntervalT().upper(), icl::identity_element<T>::value());
- BOOST_CHECK_EQUAL(icl::lower(IntervalT()), icl::identity_element<T>::value());
- BOOST_CHECK_EQUAL(icl::upper(IntervalT()), icl::identity_element<T>::value());
- IntervalT empty_itv = IntervalT(icl::identity_element<T>::value(), icl::identity_element<T>::value());
- BOOST_CHECK_EQUAL(IntervalT(), empty_itv);
- BOOST_CHECK_EQUAL(IntervalT(), IntervalT(icl::identity_element<T>::value(), icl::identity_element<T>::value()));
- BOOST_CHECK_EQUAL(IntervalT(), IntervalT(icl::identity_element<T>::value(), icl::identity_element<T>::value(), interval_bounds::right_open()));
- }
- template <class T>
- void dynamic_interval_bounds_4_bicremental_types()
- {
- typedef typename icl::interval<T>::type IntervalT;
- // BOOST_CHECK_EQUAL( T(), icl::pred(icl::succ(T())));
- BOOST_CHECK_EQUAL( icl::identity_element<T>::value(), icl::pred(icl::succ(icl::identity_element<T>::value())) );
- BOOST_CHECK_EQUAL( icl::unit_element<T>::value(), icl::succ(icl::identity_element<T>::value()) );
- BOOST_CHECK_EQUAL( length(IntervalT()), icl::identity_element<typename difference_type_of<T>::type>::value() );
- //LAW: I x: borders(x)==closed => contains(x, lower(x)) && contains(x, upper(x))
- check_border_containedness(I_I(0,0));
- check_border_containedness(I_I(2,5));
- check_border_containedness(I_D(0,1));
- check_border_containedness(I_D(2,5));
- check_border_containedness(C_I(0,1));
- check_border_containedness(C_I(2,5));
- check_border_containedness(C_D(0,2));
- check_border_containedness(C_D(2,5));
- }
- template <class T>
- void discrete_dynamic_interval_bounds_4_bicremental_types()
- {
- //CL typedef typename icl::interval<T>::type IntervalT;
- BOOST_CHECK( icl::bounds(I_I(2,4)) == interval_bounds::closed() );
- BOOST_CHECK( icl::bounds(I_D(2,5)) == interval_bounds::right_open() );
- BOOST_CHECK( icl::bounds(C_I(1,4)) == interval_bounds::left_open() );
- BOOST_CHECK( icl::bounds(C_D(1,5)) == interval_bounds::open() );
- }
- #endif // BOOST_ICL_TEST_ICL_DYNAMIC_INTERVAL_HPP_JOFA_100930
|