diff options
Diffstat (limited to 'third_party/abseil-cpp/absl/random/internal/fastmath_test.cc')
-rw-r--r-- | third_party/abseil-cpp/absl/random/internal/fastmath_test.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/third_party/abseil-cpp/absl/random/internal/fastmath_test.cc b/third_party/abseil-cpp/absl/random/internal/fastmath_test.cc index 0d6f9dc157..65859c25de 100644 --- a/third_party/abseil-cpp/absl/random/internal/fastmath_test.cc +++ b/third_party/abseil-cpp/absl/random/internal/fastmath_test.cc @@ -27,6 +27,19 @@ namespace { +TEST(DistributionImplTest, LeadingSetBit) { + using absl::random_internal::LeadingSetBit; + constexpr uint64_t kZero = 0; + EXPECT_EQ(0, LeadingSetBit(kZero)); + EXPECT_EQ(64, LeadingSetBit(~kZero)); + + for (int index = 0; index < 64; index++) { + uint64_t x = static_cast<uint64_t>(1) << index; + EXPECT_EQ(index + 1, LeadingSetBit(x)) << index; + EXPECT_EQ(index + 1, LeadingSetBit(x + x - 1)) << index; + } +} + TEST(FastMathTest, IntLog2FloorTest) { using absl::random_internal::IntLog2Floor; constexpr uint64_t kZero = 0; |