/* @copyright Louis Dionne 2015 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 using namespace boost::hana; template using eq = test::ct_eq; template using ord = test::ct_ord; int main() { ////////////////////////////////////////////////////////////////////////// // Setup for the laws below ////////////////////////////////////////////////////////////////////////// auto eq_tuples = make( std::make_tuple() , std::make_tuple(eq<0>{}) , std::make_tuple(eq<0>{}, eq<1>{}) , std::make_tuple(eq<0>{}, eq<1>{}, eq<2>{}) , std::make_tuple(eq<0>{}, eq<1>{}, eq<2>{}, eq<3>{}, eq<4>{}) ); auto ord_tuples = make( std::make_tuple() , std::make_tuple(ord<0>{}) , std::make_tuple(ord<0>{}, ord<1>{}) , std::make_tuple(ord<0>{}, ord<1>{}, ord<2>{}) , std::make_tuple(ord<0>{}, ord<1>{}, ord<2>{}, ord<3>{}, ord<4>{}) ); ////////////////////////////////////////////////////////////////////////// // Comparable and Orderable ////////////////////////////////////////////////////////////////////////// test::TestComparable{eq_tuples}; test::TestOrderable{ord_tuples}; }