summaryrefslogtreecommitdiff
path: root/libs/variant/test/variant_comparison_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/variant/test/variant_comparison_test.cpp')
-rw-r--r--libs/variant/test/variant_comparison_test.cpp35
1 files changed, 33 insertions, 2 deletions
diff --git a/libs/variant/test/variant_comparison_test.cpp b/libs/variant/test/variant_comparison_test.cpp
index f04d2575c..3f6cc4176 100644
--- a/libs/variant/test/variant_comparison_test.cpp
+++ b/libs/variant/test/variant_comparison_test.cpp
@@ -3,8 +3,8 @@
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
-// Copyright (c) 2003
-// Eric Friedman, Itay Maman
+// Copyright (c) 2003 Eric Friedman, Itay Maman
+// Copyright (c) 2014 Antony Polukhin
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
@@ -34,6 +34,9 @@ void assert_equality_comparable(
BOOST_CHECK( !(&x == &y) || (x == y) );
BOOST_CHECK( !(&x == &z) || (x == z) );
BOOST_CHECK( !(&y == &z) || (y == z) );
+ BOOST_CHECK( !(&x == &y) || !(x != y) );
+ BOOST_CHECK( !(&x == &z) || !(x != z) );
+ BOOST_CHECK( !(&y == &z) || !(y != z) );
// reflexivity check
BOOST_CHECK( (x == x) );
@@ -43,12 +46,18 @@ void assert_equality_comparable(
// symmetry check
BOOST_CHECK( !(x == y) || (y == x) );
BOOST_CHECK( !(y == x) || (x == y) );
+ BOOST_CHECK( (x != y) || (y == x) );
+ BOOST_CHECK( (y != x) || (x == y) );
BOOST_CHECK( !(x == z) || (z == x) );
BOOST_CHECK( !(z == x) || (x == z) );
+ BOOST_CHECK( (x != z) || (z == x) );
+ BOOST_CHECK( (z != x) || (x == z) );
BOOST_CHECK( !(y == z) || (z == y) );
BOOST_CHECK( !(z == y) || (y == z) );
+ BOOST_CHECK( (y != z) || (z == y) );
+ BOOST_CHECK( (z != y) || (y == z) );
// transitivity check
BOOST_CHECK( !(x == y && y == z) || (x == z) );
@@ -65,12 +74,34 @@ void assert_less_than_comparable(
BOOST_CHECK( !(x < x) );
BOOST_CHECK( !(y < y) );
BOOST_CHECK( !(z < z) );
+ BOOST_CHECK( !(x > x) );
+ BOOST_CHECK( !(y > y) );
+ BOOST_CHECK( !(z > z) );
+
+ BOOST_CHECK( (x <= x) );
+ BOOST_CHECK( (y <= y) );
+ BOOST_CHECK( (z <= z) );
+ BOOST_CHECK( (x >= x) );
+ BOOST_CHECK( (y >= y) );
+ BOOST_CHECK( (z >= z) );
// transitivity check
BOOST_CHECK( (x < y) );
BOOST_CHECK( (y < z) );
BOOST_CHECK( (x < z) );
+ BOOST_CHECK( (x <= y) );
+ BOOST_CHECK( (y <= z) );
+ BOOST_CHECK( (x <= z) );
+
+ BOOST_CHECK( (z > y) );
+ BOOST_CHECK( (y > x) );
+ BOOST_CHECK( (z > x) );
+
+ BOOST_CHECK( (z >= y) );
+ BOOST_CHECK( (y >= x) );
+ BOOST_CHECK( (z >= x) );
+
// antisymmetry check
BOOST_CHECK( !(y < x) );
BOOST_CHECK( !(z < y) );