forked from boostorg/container_hash
Update (uint128)-1 and long double infinity values
This commit is contained in:
@@ -122,8 +122,17 @@ int main()
|
|||||||
BOOST_TEST_EQ( hv((uint128)0), 0 );
|
BOOST_TEST_EQ( hv((uint128)0), 0 );
|
||||||
BOOST_TEST_EQ( hv((uint128)1), 1 );
|
BOOST_TEST_EQ( hv((uint128)1), 1 );
|
||||||
BOOST_TEST_EQ( hv((uint128)65535), 65535 );
|
BOOST_TEST_EQ( hv((uint128)65535), 65535 );
|
||||||
|
|
||||||
|
#if defined(BOOST_GCC) && BOOST_GCC < 100000
|
||||||
|
|
||||||
|
BOOST_TEST_EQ( hv((uint128)-1), 18446744073709551615ULL );
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
BOOST_TEST_EQ( hv((uint128)-1), 13835058055282163777ULL );
|
BOOST_TEST_EQ( hv((uint128)-1), 13835058055282163777ULL );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// float
|
// float
|
||||||
@@ -241,18 +250,38 @@ int main()
|
|||||||
BOOST_TEST_EQ( hv(-1.0L), 3220176896U );
|
BOOST_TEST_EQ( hv(-1.0L), 3220176896U );
|
||||||
BOOST_TEST_EQ( hv(3.14L), 2660156064U );
|
BOOST_TEST_EQ( hv(3.14L), 2660156064U );
|
||||||
BOOST_TEST_EQ( hv(-3.14L), 512672416U );
|
BOOST_TEST_EQ( hv(-3.14L), 512672416U );
|
||||||
|
|
||||||
|
#if !defined(__GLIBCXX__)
|
||||||
|
|
||||||
BOOST_TEST_EQ( hv(std::numeric_limits<long double>::infinity()), 2146435072U );
|
BOOST_TEST_EQ( hv(std::numeric_limits<long double>::infinity()), 2146435072U );
|
||||||
BOOST_TEST_EQ( hv(-std::numeric_limits<long double>::infinity()), 4293918720U );
|
BOOST_TEST_EQ( hv(-std::numeric_limits<long double>::infinity()), 4293918720U );
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
BOOST_TEST_EQ( hv(std::numeric_limits<long double>::infinity()), 2146435072U );
|
||||||
|
BOOST_TEST_EQ( hv(-std::numeric_limits<long double>::infinity()), 4293918720U );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
BOOST_TEST_EQ( hv(1.0L), 11529215046068486143ULL );
|
BOOST_TEST_EQ( hv(1.0L), 11529215046068486143ULL );
|
||||||
BOOST_TEST_EQ( hv(-1.0L), 11529215046068518911ULL );
|
BOOST_TEST_EQ( hv(-1.0L), 11529215046068518911ULL );
|
||||||
BOOST_TEST_EQ( hv(3.14L), 12059468778148142067ULL );
|
BOOST_TEST_EQ( hv(3.14L), 12059468778148142067ULL );
|
||||||
BOOST_TEST_EQ( hv(-3.14L), 12059468778147191795ULL );
|
BOOST_TEST_EQ( hv(-3.14L), 12059468778147191795ULL );
|
||||||
|
|
||||||
|
#if !defined(__GLIBCXX__)
|
||||||
|
|
||||||
BOOST_TEST_EQ( hv(std::numeric_limits<long double>::infinity()), 18446744073709551615ULL );
|
BOOST_TEST_EQ( hv(std::numeric_limits<long double>::infinity()), 18446744073709551615ULL );
|
||||||
BOOST_TEST_EQ( hv(-std::numeric_limits<long double>::infinity()), 18446744073709551614ULL );
|
BOOST_TEST_EQ( hv(-std::numeric_limits<long double>::infinity()), 18446744073709551614ULL );
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
BOOST_TEST_EQ( hv(std::numeric_limits<long double>::infinity()), 11529215046068502527ULL );
|
||||||
|
BOOST_TEST_EQ( hv(-std::numeric_limits<long double>::infinity()), 11529215046068535295ULL );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user