laws.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright Louis Dionne 2013-2017
  2. // Distributed under the Boost Software License, Version 1.0.
  3. // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
  4. #include <boost/hana/basic_tuple.hpp>
  5. #include <laws/base.hpp>
  6. #include <laws/foldable.hpp>
  7. #include <laws/functor.hpp>
  8. #include <laws/iterable.hpp>
  9. namespace hana = boost::hana;
  10. using hana::test::ct_eq;
  11. int main() {
  12. auto eq_tuples = hana::make_basic_tuple(
  13. hana::make_basic_tuple()
  14. , hana::make_basic_tuple(ct_eq<0>{})
  15. , hana::make_basic_tuple(ct_eq<0>{}, ct_eq<1>{})
  16. , hana::make_basic_tuple(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{})
  17. , hana::make_basic_tuple(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{})
  18. , hana::make_basic_tuple(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{})
  19. , hana::make_basic_tuple(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{}, ct_eq<5>{})
  20. );
  21. auto eq_values = hana::make_basic_tuple(
  22. ct_eq<0>{},
  23. ct_eq<2>{},
  24. ct_eq<4>{}
  25. );
  26. hana::test::TestFunctor<hana::basic_tuple_tag>{eq_tuples, eq_values};
  27. hana::test::TestFoldable<hana::basic_tuple_tag>{eq_tuples};
  28. hana::test::TestIterable<hana::basic_tuple_tag>{eq_tuples};
  29. }