diff options
author | Justin Bassett <jbassett@google.com> | 2024-05-21 16:56:45 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-05-21 16:57:23 -0700 |
commit | e7f1a950e97b805d634909124fa4c75b690d0475 (patch) | |
tree | 8d0c6417c27f468083cc36126da4282678607eaf /absl/random/mock_distributions_test.cc | |
parent | a2625a648dc69c5b3d0330f25004454716cacfc8 (diff) | |
download | abseil-e7f1a950e97b805d634909124fa4c75b690d0475.tar.gz abseil-e7f1a950e97b805d634909124fa4c75b690d0475.tar.bz2 abseil-e7f1a950e97b805d634909124fa4c75b690d0475.zip |
Support int128/uint128 in validated MockingBitGen
`absl::int128` and `absl::uint128` are not `std::is_integral`. There is an internal `IsIntegral` type trait we could use, but it actually makes more sense to remove the `static_assert` altogether. Any compile-time validation should be done in `absl::Uniform` itself, and duplicating that logic here just increases the chance of divergence.
PiperOrigin-RevId: 635971431
Change-Id: I9177ae64c86ee1abe6571e0b29aba1844553c972
Diffstat (limited to 'absl/random/mock_distributions_test.cc')
-rw-r--r-- | absl/random/mock_distributions_test.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/absl/random/mock_distributions_test.cc b/absl/random/mock_distributions_test.cc index 917799f0..80df8714 100644 --- a/absl/random/mock_distributions_test.cc +++ b/absl/random/mock_distributions_test.cc @@ -19,6 +19,7 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" +#include "absl/numeric/int128.h" #include "absl/random/distributions.h" #include "absl/random/mocking_bit_gen.h" #include "absl/random/random.h" @@ -81,6 +82,14 @@ TEST(MockUniform, OutOfBoundsIsAllowed) { EXPECT_EQ(absl::Uniform<int>(gen, 1, 100), 0); } +TEST(ValidatedMockDistributions, UniformUInt128Works) { + absl::random_internal::MockingBitGenImpl<true> gen; + + EXPECT_CALL(absl::MockUniform<absl::uint128>(), Call(gen)) + .WillOnce(Return(absl::Uint128Max())); + EXPECT_EQ(absl::Uniform<absl::uint128>(gen), absl::Uint128Max()); +} + TEST(ValidatedMockDistributions, UniformDoubleBoundaryCases) { absl::random_internal::MockingBitGenImpl<true> gen; |