aboutsummaryrefslogtreecommitdiff
path: root/third_party/abseil-cpp/absl/random/internal/fastmath_test.cc
diff options
context:
space:
mode:
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.cc13
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;