diff options
Diffstat (limited to 'third_party/abseil-cpp/absl/random/bit_gen_ref_test.cc')
-rw-r--r-- | third_party/abseil-cpp/absl/random/bit_gen_ref_test.cc | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/third_party/abseil-cpp/absl/random/bit_gen_ref_test.cc b/third_party/abseil-cpp/absl/random/bit_gen_ref_test.cc index 1135cf2da0..ca0e4d7072 100644 --- a/third_party/abseil-cpp/absl/random/bit_gen_ref_test.cc +++ b/third_party/abseil-cpp/absl/random/bit_gen_ref_test.cc @@ -17,31 +17,30 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" -#include "absl/base/internal/fast_type_id.h" #include "absl/random/internal/sequence_urbg.h" #include "absl/random/random.h" namespace absl { ABSL_NAMESPACE_BEGIN -class ConstBitGen { - public: - // URBG interface - using result_type = absl::BitGen::result_type; - - static constexpr result_type(min)() { return (absl::BitGen::min)(); } - static constexpr result_type(max)() { return (absl::BitGen::max)(); } - result_type operator()() { return 1; } - - // InvokeMock method - bool InvokeMock(base_internal::FastTypeIdType index, void*, void* result) { +class ConstBitGen : public absl::random_internal::MockingBitGenBase { + bool CallImpl(const std::type_info&, void*, void* result) override { *static_cast<int*>(result) = 42; return true; } }; -namespace { +namespace random_internal { +template <> +struct DistributionCaller<ConstBitGen> { + template <typename DistrT, typename FormatT, typename... Args> + static typename DistrT::result_type Call(ConstBitGen* gen, Args&&... args) { + return gen->template Call<DistrT, FormatT>(std::forward<Args>(args)...); + } +}; +} // namespace random_internal +namespace { int FnTest(absl::BitGenRef gen_ref) { return absl::Uniform(gen_ref, 1, 7); } template <typename T> |