equal.cpp 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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/assert.hpp>
  5. #include <boost/hana/core/make.hpp>
  6. #include <boost/hana/equal.hpp>
  7. #include <boost/hana/integral_constant.hpp>
  8. #include <boost/hana/not_equal.hpp> // for operator !=
  9. #include <boost/hana/range.hpp>
  10. namespace hana = boost::hana;
  11. int main() {
  12. BOOST_HANA_CONSTANT_CHECK(
  13. hana::make_range(hana::int_c<0>, hana::int_c<0>) ==
  14. hana::make_range(hana::int_c<0>, hana::int_c<0>)
  15. );
  16. BOOST_HANA_CONSTANT_CHECK(
  17. hana::make_range(hana::int_c<0>, hana::int_c<4>) !=
  18. hana::make_range(hana::int_c<0>, hana::int_c<0>)
  19. );
  20. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  21. hana::make_range(hana::int_c<0>, hana::int_c<0>),
  22. hana::make_range(hana::int_c<0>, hana::int_c<0>)
  23. ));
  24. BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
  25. hana::make_range(hana::int_c<0>, hana::int_c<0>),
  26. hana::make_range(hana::int_c<0>, hana::int_c<1>)
  27. )));
  28. BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
  29. hana::make_range(hana::int_c<0>, hana::int_c<1>),
  30. hana::make_range(hana::int_c<0>, hana::int_c<0>)
  31. )));
  32. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  33. hana::make_range(hana::int_c<0>, hana::int_c<1>),
  34. hana::make_range(hana::int_c<0>, hana::int_c<1>)
  35. ));
  36. BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
  37. hana::make_range(hana::int_c<0>, hana::int_c<2>),
  38. hana::make_range(hana::int_c<0>, hana::int_c<1>)
  39. )));
  40. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  41. hana::make_range(hana::int_c<0>, hana::int_c<2>),
  42. hana::make_range(hana::int_c<0>, hana::int_c<2>)
  43. ));
  44. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  45. hana::make_range(hana::int_c<0>, hana::int_c<0>),
  46. hana::make_range(hana::int_c<2>, hana::int_c<2>)
  47. ));
  48. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  49. hana::make_range(hana::int_c<2>, hana::int_c<4>),
  50. hana::make_range(hana::int_c<2>, hana::int_c<4>)
  51. ));
  52. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  53. hana::make_range(hana::int_c<-4>, hana::int_c<-3>),
  54. hana::make_range(hana::int_c<-4>, hana::int_c<-3>)
  55. ));
  56. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  57. hana::make_range(hana::int_c<-4>, hana::int_c<2>),
  58. hana::make_range(hana::int_c<-4>, hana::int_c<2>)
  59. ));
  60. }