Internal change

PiperOrigin-RevId: 448361090
Change-Id: Iec6063b88a778dfe815081612650eaa456503265
pull/1181/head
Abseil Team 3 years ago committed by Copybara-Service
parent 3af16ffea8
commit f7a250aa9a
  1. 28
      absl/random/beta_distribution_test.cc

@ -45,15 +45,25 @@ namespace {
template <typename IntType>
class BetaDistributionInterfaceTest : public ::testing::Test {};
// double-double arithmetic is not supported well by either GCC or Clang; see
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99048,
// https://bugs.llvm.org/show_bug.cgi?id=49131, and
// https://bugs.llvm.org/show_bug.cgi?id=49132. Don't bother running these tests
// with double doubles until compiler support is better.
using RealTypes =
std::conditional<absl::numeric_internal::IsDoubleDouble(),
::testing::Types<float, double>,
::testing::Types<float, double, long double>>::type;
constexpr bool ShouldExerciseLongDoubleTests() {
// long double arithmetic is not supported well by either GCC or Clang on
// most platforms specifically not when implemented in terms of double-double;
// see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99048,
// https://bugs.llvm.org/show_bug.cgi?id=49131, and
// https://bugs.llvm.org/show_bug.cgi?id=49132.
// So a conservative choice here is to disable long-double tests pretty much
// everywhere except on x64 but only if long double is not implemented as
// double-double.
#if defined(__i686__) && defined(__x86_64__)
return !absl::numeric_internal::IsDoubleDouble();
#else
return false;
#endif
}
using RealTypes = std::conditional<ShouldExerciseLongDoubleTests(),
::testing::Types<float, double, long double>,
::testing::Types<float, double>>::type;
TYPED_TEST_SUITE(BetaDistributionInterfaceTest, RealTypes);
TYPED_TEST(BetaDistributionInterfaceTest, SerializeTest) {

Loading…
Cancel
Save