comparison.hpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*=============================================================================
  2. Copyright (c) 1999-2003 Jaakko Jarvi
  3. Copyright (c) 2001-2011 Joel de Guzman
  4. Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. ==============================================================================*/
  7. #include <boost/detail/lightweight_test.hpp>
  8. #include <boost/fusion/sequence/comparison.hpp>
  9. void
  10. equality_test()
  11. {
  12. using namespace boost::fusion;
  13. FUSION_SEQUENCE<int, char> v1(5, 'a');
  14. FUSION_SEQUENCE<int, char> v2(5, 'a');
  15. BOOST_TEST(v1 == v2);
  16. FUSION_SEQUENCE<int, char> v3(5, 'b');
  17. FUSION_SEQUENCE<int, char> t4(2, 'a');
  18. BOOST_TEST(v1 != v3);
  19. BOOST_TEST(v1 != t4);
  20. BOOST_TEST(!(v1 != v2));
  21. FUSION_SEQUENCE<int, char, bool> v5(5, 'a', true);
  22. BOOST_TEST(v1 != v5);
  23. BOOST_TEST(!(v1 == v5));
  24. BOOST_TEST(v5 != v1);
  25. BOOST_TEST(!(v5 == v1));
  26. }
  27. void
  28. ordering_test()
  29. {
  30. using namespace boost::fusion;
  31. FUSION_SEQUENCE<int, float> v1(4, 3.3f);
  32. FUSION_SEQUENCE<short, float> v2(5, 3.3f);
  33. FUSION_SEQUENCE<long, double> v3(5, 4.4);
  34. BOOST_TEST(v1 < v2);
  35. BOOST_TEST(v1 <= v2);
  36. BOOST_TEST(v2 > v1);
  37. BOOST_TEST(v2 >= v1);
  38. BOOST_TEST(v2 < v3);
  39. BOOST_TEST(v2 <= v3);
  40. BOOST_TEST(v3 > v2);
  41. BOOST_TEST(v3 >= v2);
  42. #if defined(FUSION_TEST_FAIL)
  43. FUSION_SEQUENCE<int, char, bool> v5(5, 'a', true);
  44. v1 >= v5;
  45. #endif
  46. }