/* @copyright Louis Dionne 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ #include #include #include #include #include #include // instances #include #include #include using namespace boost::hana; using T = int; using U = unsigned long; namespace boost { namespace hana { namespace test { template <> auto instances = tuple( type, type ); template <> auto objects = tuple( ::std::integer_sequence{}, ::std::integer_sequence{}, ::std::integer_sequence{}, ::std::integer_sequence{}, ::std::integer_sequence{}, ::std::integer_sequence{}, ::std::integer_sequence{}, ::std::integer_sequence{} ); }}} int main() { test::check_datatype(); // Comparable { // equal { BOOST_HANA_CONSTANT_CHECK(equal( std::integer_sequence{}, std::integer_sequence{} )); BOOST_HANA_CONSTANT_CHECK(not_(equal( std::integer_sequence{}, std::integer_sequence{} ))); BOOST_HANA_CONSTANT_CHECK(not_(equal( std::integer_sequence{}, std::integer_sequence{} ))); BOOST_HANA_CONSTANT_CHECK(equal( std::integer_sequence{}, std::integer_sequence{} )); BOOST_HANA_CONSTANT_CHECK(not_(equal( std::integer_sequence{}, std::integer_sequence{} ))); BOOST_HANA_CONSTANT_CHECK(not_(equal( std::integer_sequence{}, std::integer_sequence{} ))); BOOST_HANA_CONSTANT_CHECK(equal( std::integer_sequence{}, std::integer_sequence{} )); BOOST_HANA_CONSTANT_CHECK(not_(equal( std::integer_sequence{}, std::integer_sequence{} ))); } } // Iterable { // head { BOOST_HANA_CONSTANT_CHECK(equal( head(std::index_sequence<0>{}), std::integral_constant{} )); BOOST_HANA_CONSTANT_CHECK(equal( head(std::index_sequence<0, 1>{}), std::integral_constant{} )); } // is_empty { BOOST_HANA_CONSTANT_CHECK(is_empty(std::index_sequence<>{})); BOOST_HANA_CONSTANT_CHECK(not_(is_empty(std::index_sequence<0>{}))); BOOST_HANA_CONSTANT_CHECK(not_(is_empty(std::index_sequence<1>{}))); } // tail { BOOST_HANA_CONSTANT_CHECK(equal( tail(std::index_sequence<0>{}), std::index_sequence<>{} )); BOOST_HANA_CONSTANT_CHECK(equal( tail(std::index_sequence<0, 1>{}), std::index_sequence<1>{} )); BOOST_HANA_CONSTANT_CHECK(equal( tail(std::index_sequence<0, 1, 2>{}), std::index_sequence<1, 2>{} )); } } }