diff options
author | Mark Mentovai <mark@chromium.org> | 2015-11-11 23:26:35 (GMT) |
---|---|---|
committer | Mark Mentovai <mark@chromium.org> | 2015-11-11 23:26:35 (GMT) |
commit | cfe466a0a75333a1c12baa99c172b9036fc5ccf1 (patch) | |
tree | 2c8137e6f4707fb8c2a0f30014615f039fe2a7ba /googlemock/test/gmock-matchers_test.cc | |
parent | cbce23fb86705aff7f9f1294a295027d7ed674ef (diff) | |
download | googletest-cfe466a0a75333a1c12baa99c172b9036fc5ccf1.zip googletest-cfe466a0a75333a1c12baa99c172b9036fc5ccf1.tar.gz googletest-cfe466a0a75333a1c12baa99c172b9036fc5ccf1.tar.bz2 |
Use a templated helper to wrap the cast
The helper needs to be templated because its argument type can’t be
known. FloatingPointTest is instantiated with RawType = float and
RawType = double, so Bits will be an unsigned 32-bit or 64-bit type.
size_t will be either 32 or 64 bits depending on the system’s
definition, typically based on pointer size.
Diffstat (limited to 'googlemock/test/gmock-matchers_test.cc')
-rw-r--r-- | googlemock/test/gmock-matchers_test.cc | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc index 11b6de2..323ab25 100644 --- a/googlemock/test/gmock-matchers_test.cc +++ b/googlemock/test/gmock-matchers_test.cc @@ -2708,21 +2708,16 @@ class FloatingPointTest : public testing::Test { zero_bits_(Floating(0).bits()), one_bits_(Floating(1).bits()), infinity_bits_(Floating(Floating::Infinity()).bits()), - close_to_positive_zero_(Floating::ReinterpretBits( - static_cast<Bits>(zero_bits_ + max_ulps_/2))), - close_to_negative_zero_(-Floating::ReinterpretBits( - static_cast<Bits>(zero_bits_ + max_ulps_ - max_ulps_/2))), - further_from_negative_zero_(-Floating::ReinterpretBits( - static_cast<Bits>(zero_bits_ + max_ulps_ + 1 - max_ulps_/2))), - close_to_one_(Floating::ReinterpretBits( - static_cast<Bits>(one_bits_ + max_ulps_))), - further_from_one_(Floating::ReinterpretBits( - static_cast<Bits>(one_bits_ + max_ulps_ + 1))), + close_to_positive_zero_(ReinterpretBits(zero_bits_ + max_ulps_/2)), + close_to_negative_zero_(ReinterpretBits( + zero_bits_ + max_ulps_ - max_ulps_/2)), + further_from_negative_zero_(-ReinterpretBits( + zero_bits_ + max_ulps_ + 1 - max_ulps_/2)), + close_to_one_(ReinterpretBits(one_bits_ + max_ulps_)), + further_from_one_(ReinterpretBits(one_bits_ + max_ulps_ + 1)), infinity_(Floating::Infinity()), - close_to_infinity_(Floating::ReinterpretBits( - static_cast<Bits>(infinity_bits_ - max_ulps_))), - further_from_infinity_(Floating::ReinterpretBits( - static_cast<Bits>(infinity_bits_ - max_ulps_ - 1))), + close_to_infinity_(ReinterpretBits(infinity_bits_ - max_ulps_)), + further_from_infinity_(ReinterpretBits(infinity_bits_ - max_ulps_ - 1)), max_(Floating::Max()), nan1_(Floating::ReinterpretBits(Floating::kExponentBitMask | 1)), nan2_(Floating::ReinterpretBits(Floating::kExponentBitMask | 200)) { @@ -2806,6 +2801,12 @@ class FloatingPointTest : public testing::Test { // Some NaNs. const RawType nan1_; const RawType nan2_; + + private: + template <typename T> + static RawType ReinterpretBits(T value) { + return Floating::ReinterpretBits(static_cast<Bits>(value)); + } }; // Tests floating-point matchers with fixed epsilons. |