diff --git a/test/result_swap.cpp b/test/result_swap.cpp index 1973764..b332536 100644 --- a/test/result_swap.cpp +++ b/test/result_swap.cpp @@ -214,5 +214,50 @@ int main() BOOST_TEST_EQ( X::instances, 0 ); BOOST_TEST_EQ( Y::instances, 0 ); + { + result r1, r1c( r1 ); + result r2, r2c( r2 ); + + r1.swap( r2 ); + + BOOST_TEST_EQ( r1, r2c ); + BOOST_TEST_EQ( r2, r1c ); + + swap( r1, r2 ); + + BOOST_TEST_EQ( r1, r1c ); + BOOST_TEST_EQ( r2, r2c ); + } + + { + result r1( 1, generic_category() ), r1c( r1 ); + result r2( 2, generic_category() ), r2c( r2 ); + + r1.swap( r2 ); + + BOOST_TEST_EQ( r1, r2c ); + BOOST_TEST_EQ( r2, r1c ); + + swap( r1, r2 ); + + BOOST_TEST_EQ( r1, r1c ); + BOOST_TEST_EQ( r2, r2c ); + } + + { + result r1, r1c( r1 ); + result r2( 2, generic_category() ), r2c( r2 ); + + r1.swap( r2 ); + + BOOST_TEST_EQ( r1, r2c ); + BOOST_TEST_EQ( r2, r1c ); + + swap( r1, r2 ); + + BOOST_TEST_EQ( r1, r1c ); + BOOST_TEST_EQ( r2, r2c ); + } + return boost::report_errors(); }