28TEST(Strtod, CheckApproximationCase) {
29 static const int kSignificandSize = 52;
30 static const int kExponentBias = 0x3FF;
42 u.u = 0x465a72e467d88 | ((
static_cast<uint64_t>(-149 + kExponentBias)) << kSignificandSize);
44 const uint64_t bInt = (u.u & kSignificandMask) | kHiddenBit;
45 const int bExp =
static_cast<int>(((u.u & kExponentMask) >> kSignificandSize) - kExponentBias - kSignificandSize);
51 const char dInt[] =
"17864";
55 const int hExp = bExp - 1;
94 int common_Exp2 = (std::min)(dS_Exp2, (std::min)(bS_Exp2, hS_Exp2));
95 dS_Exp2 -= common_Exp2;
96 bS_Exp2 -= common_Exp2;
97 hS_Exp2 -= common_Exp2;
107 dS.MultiplyPow5(
static_cast<unsigned>(dS_Exp5)) <<=
static_cast<size_t>(dS_Exp2);
110 bS.MultiplyPow5(
static_cast<unsigned>(bS_Exp5)) <<=
static_cast<size_t>(bS_Exp2);
113 hS.MultiplyPow5(
static_cast<unsigned>(hS_Exp5)) <<=
static_cast<size_t>(hS_Exp2);