less.cpp 1.7 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/greater.hpp>
  6. #include <boost/hana/greater_equal.hpp>
  7. #include <boost/hana/integral_constant.hpp>
  8. #include <boost/hana/less.hpp>
  9. #include <boost/hana/less_equal.hpp>
  10. #include <boost/hana/not.hpp>
  11. #include <boost/hana/string.hpp>
  12. namespace hana = boost::hana;
  13. int main() {
  14. BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::less(
  15. BOOST_HANA_STRING(""),
  16. BOOST_HANA_STRING("")
  17. )));
  18. BOOST_HANA_CONSTANT_CHECK(hana::less(
  19. BOOST_HANA_STRING(""),
  20. BOOST_HANA_STRING("a")
  21. ));
  22. BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::less(
  23. BOOST_HANA_STRING("a"),
  24. BOOST_HANA_STRING("")
  25. )));
  26. BOOST_HANA_CONSTANT_CHECK(hana::less(
  27. BOOST_HANA_STRING("a"),
  28. BOOST_HANA_STRING("ab")
  29. ));
  30. BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::less(
  31. BOOST_HANA_STRING("ab"),
  32. BOOST_HANA_STRING("ab")
  33. )));
  34. BOOST_HANA_CONSTANT_CHECK(hana::less(
  35. BOOST_HANA_STRING("abc"),
  36. BOOST_HANA_STRING("abcde")
  37. ));
  38. BOOST_HANA_CONSTANT_CHECK(hana::less(
  39. BOOST_HANA_STRING("abcde"),
  40. BOOST_HANA_STRING("abfde")
  41. ));
  42. // check operators
  43. BOOST_HANA_CONSTANT_CHECK(
  44. BOOST_HANA_STRING("abc") < BOOST_HANA_STRING("abcd")
  45. );
  46. BOOST_HANA_CONSTANT_CHECK(
  47. BOOST_HANA_STRING("abc") <= BOOST_HANA_STRING("abcd")
  48. );
  49. BOOST_HANA_CONSTANT_CHECK(
  50. BOOST_HANA_STRING("abcd") > BOOST_HANA_STRING("abc")
  51. );
  52. BOOST_HANA_CONSTANT_CHECK(
  53. BOOST_HANA_STRING("abcd") >= BOOST_HANA_STRING("abc")
  54. );
  55. }