From 7b119ba0ee84c0d84da47fddb50168bb31b7e2d0 Mon Sep 17 00:00:00 2001 From: Beman Date: Tue, 25 Nov 2014 09:58:59 -0500 Subject: [PATCH] Add full set of modify in place tests. --- test/conversion_test.cpp | 116 +++++++++++++++++++++------------------ 1 file changed, 62 insertions(+), 54 deletions(-) diff --git a/test/conversion_test.cpp b/test/conversion_test.cpp index 75b2222..50f0dc5 100644 --- a/test/conversion_test.cpp +++ b/test/conversion_test.cpp @@ -144,8 +144,9 @@ namespace BOOST_TEST_EQ(native, little); # endif - // unconditional reverse + // value-by-value tests + // unconditional reverse BOOST_TEST_EQ(be::reverse_endianness(big), little); BOOST_TEST_EQ(be::reverse_endianness(little), big); @@ -156,13 +157,11 @@ namespace BOOST_TEST_EQ(be::little_to_native(little), native); // generic conditional reverse - BOOST_TEST_EQ((be::conditional_reverse(big)), big); BOOST_TEST_EQ((be::conditional_reverse(little)), little); BOOST_TEST_EQ((be::conditional_reverse(native)), native); - BOOST_TEST_EQ((be::conditional_reverse(big)), little); BOOST_TEST_EQ((be::conditional_reverse(native)), little); // runtime conditional reverse - BOOST_TEST_EQ((be::runtime_conditional_reverse(big, be::order::big, be::order::big)), big); BOOST_TEST_EQ((be::runtime_conditional_reverse(little, be::order::little, be::order::little)), little); BOOST_TEST_EQ((be::runtime_conditional_reverse(native, be::order::native, be::order::native)), native); - BOOST_TEST_EQ((be::runtime_conditional_reverse(big, be::order::big, be::order::little)), little); BOOST_TEST_EQ((be::runtime_conditional_reverse(big, be::order::big, @@ -198,57 +195,68 @@ namespace BOOST_TEST_EQ((be::runtime_conditional_reverse(native, be::order::native, be::order::little)), little); + // modify-in-place tests -// // round-trip tests -// -// BOOST_TEST_EQ(be::big_to_native(be::native_to_big(native)), native); -// BOOST_TEST_EQ(be::native_to_big(be::big_to_native(big)), big); -// BOOST_TEST_EQ(be::big_to_native(be::native_to_big(little)), little); -// -// BOOST_TEST_EQ(be::little_to_native(be::native_to_little(native)), native); -// BOOST_TEST_EQ(be::little_to_native(be::native_to_little(big)), big); -// BOOST_TEST_EQ(be::little_to_native(be::native_to_little(little)), little); -// -//# ifdef BOOST_BIG_ENDIAN -// BOOST_TEST_EQ(be::reverse_endianness(native), little); -// BOOST_TEST_EQ(be::detail::reverse(native), little); -// BOOST_TEST_EQ(be::big_to_native(big), big); -// BOOST_TEST_EQ(be::big_endian(big), big); -// BOOST_TEST_EQ(be::little_to_native(little), little); -// BOOST_TEST_EQ(be::big_endian(little), little); -//# else // little endian -// BOOST_TEST_EQ(be::reverse_endianness(native), big); -// BOOST_TEST_EQ(be::detail::std_reverse_endianness(native), big); -// BOOST_TEST_EQ(be::big_to_native(big), little); -//// BOOST_TEST_EQ(be::big_endian(big), little); -// BOOST_TEST_EQ(be::native_to_big(little), big); -//// BOOST_TEST_EQ(be::big_endian(little), big); -//# endif + T x; - -// // light test of modify-in-place functions -// -// T x; -// -// x = big; be::reverse_endianness(x); BOOST_TEST_EQ(x, little); -// x = big; be::convert(x); BOOST_TEST_EQ(x, little); -// x = big; be::convert(x, be::order::big, be::order::little); BOOST_TEST_EQ(x, little); -// -//# ifdef BOOST_BIG_ENDIAN -// x = native; be::big_endian(x); BOOST_TEST_EQ(x, big); -// x = big; be::big_endian(x); BOOST_TEST_EQ(x, big); -// x = little; be::big_endian(x); BOOST_TEST_EQ(x, little); -// x = native; be::little_endian(x); BOOST_TEST_EQ(x, little); -// x = big; be::little_endian(x); BOOST_TEST_EQ(x, little); -// x = little; be::little_endian(x); BOOST_TEST_EQ(x, big); -//# else -// x = native; be::big_endian(x); BOOST_TEST_EQ(x, big); -// x = big; be::big_endian(x); BOOST_TEST_EQ(x, little); -// x = little; be::big_endian(x); BOOST_TEST_EQ(x, big); -// x = native; be::little_endian(x); BOOST_TEST_EQ(x, little); -// x = big; be::little_endian(x); BOOST_TEST_EQ(x, big); -// x = little; be::little_endian(x); BOOST_TEST_EQ(x, little); -//# endif + // unconditional reverse + x = big; be::reverse_endianness_in_place(x); BOOST_TEST_EQ(x, little); + x = little; be::reverse_endianness_in_place(x); BOOST_TEST_EQ(x, big); + + // conditional reverse + x = native; be::native_to_big_in_place(x); BOOST_TEST_EQ(x, big); + x = native; be::native_to_little_in_place(x); BOOST_TEST_EQ(x, little); + x = big; be::big_to_native_in_place(x); BOOST_TEST_EQ(x, native); + x = little; be::little_to_native_in_place(x); BOOST_TEST_EQ(x, native); + + // generic conditional reverse + x = big; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, big); + x = little; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, little); + x = native; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, native); + x = big; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, little); + x = big; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, native); + x = little; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, big); + x = little; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, native); + x = native; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, big); + x = native; be::conditional_reverse_in_place(x); + BOOST_TEST_EQ(x, little); + + // runtime conditional reverse + x = big; + be::runtime_conditional_reverse_in_place(x, be::order::big, be::order::big); + BOOST_TEST_EQ(x, big); + x = little; + be::runtime_conditional_reverse_in_place(x, be::order::little, be::order::little); + BOOST_TEST_EQ(x, little); + x = native; + be::runtime_conditional_reverse_in_place(x, be::order::native, be::order::native); + BOOST_TEST_EQ(x, native); + x = big; + be::runtime_conditional_reverse_in_place(x, be::order::big, be::order::little); + BOOST_TEST_EQ(x, little); + x = big; + be::runtime_conditional_reverse_in_place(x, be::order::big, be::order::native); + BOOST_TEST_EQ(x, native); + x = little; + be::runtime_conditional_reverse_in_place(x, be::order::little, be::order::big); + BOOST_TEST_EQ(x, big); + x = little; + be::runtime_conditional_reverse_in_place(x, be::order::little, be::order::native); + BOOST_TEST_EQ(x, native); + x = native; + be::runtime_conditional_reverse_in_place(x, be::order::native, be::order::big); + BOOST_TEST_EQ(x, big); + x = native; + be::runtime_conditional_reverse_in_place(x, be::order::native, be::order::little); + BOOST_TEST_EQ(x, little); } } // unnamed namespace