// Copyright Louis Dionne 2013-2017 // 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 #include #include #include namespace hana = boost::hana; int main() { // Comparable and Hashable { auto strings = hana::make_tuple( BOOST_HANA_STRING(""), BOOST_HANA_STRING("a"), BOOST_HANA_STRING("ab"), BOOST_HANA_STRING("abc"), BOOST_HANA_STRING("abcd"), BOOST_HANA_STRING("abcde"), BOOST_HANA_STRING("ba") ); hana::test::TestComparable{strings}; hana::test::TestHashable{strings}; } // Monoid { auto strings = hana::make_tuple( BOOST_HANA_STRING(""), BOOST_HANA_STRING("a"), BOOST_HANA_STRING("ab"), BOOST_HANA_STRING("abc"), BOOST_HANA_STRING("abcd"), BOOST_HANA_STRING("abcde"), BOOST_HANA_STRING("ba") ); hana::test::TestMonoid{strings}; } // Foldable and Iterable { auto strings = hana::make_tuple( BOOST_HANA_STRING(""), BOOST_HANA_STRING("a"), BOOST_HANA_STRING("ab"), BOOST_HANA_STRING("abc"), BOOST_HANA_STRING("abcd"), BOOST_HANA_STRING("abcde"), BOOST_HANA_STRING("ba"), BOOST_HANA_STRING("afcd") ); hana::test::TestFoldable{strings}; hana::test::TestIterable{strings}; } // Orderable { auto strings = hana::make_tuple( BOOST_HANA_STRING(""), BOOST_HANA_STRING("a"), BOOST_HANA_STRING("ab"), BOOST_HANA_STRING("abc"), BOOST_HANA_STRING("ba"), BOOST_HANA_STRING("abd") ); hana::test::TestOrderable{strings}; } // Searchable { auto keys = hana::tuple_c; auto strings = hana::make_tuple( BOOST_HANA_STRING(""), BOOST_HANA_STRING("a"), BOOST_HANA_STRING("ab"), BOOST_HANA_STRING("abcd"), BOOST_HANA_STRING("ba"), BOOST_HANA_STRING("afcd") ); hana::test::TestSearchable{strings, keys}; } }