xref: /aosp_15_r20/external/abseil-cpp/absl/random/BUILD.bazel (revision 9356374a3709195abf420251b3e825997ff56c0f)
1*9356374aSAndroid Build Coastguard Worker#
2*9356374aSAndroid Build Coastguard Worker# Copyright 2019 The Abseil Authors.
3*9356374aSAndroid Build Coastguard Worker#
4*9356374aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
5*9356374aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
6*9356374aSAndroid Build Coastguard Worker# You may obtain a copy of the License at
7*9356374aSAndroid Build Coastguard Worker#
8*9356374aSAndroid Build Coastguard Worker#      https://www.apache.org/licenses/LICENSE-2.0
9*9356374aSAndroid Build Coastguard Worker#
10*9356374aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
11*9356374aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
12*9356374aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*9356374aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
14*9356374aSAndroid Build Coastguard Worker# limitations under the License.
15*9356374aSAndroid Build Coastguard Worker#
16*9356374aSAndroid Build Coastguard Worker
17*9356374aSAndroid Build Coastguard Worker# ABSL random-number generation libraries.
18*9356374aSAndroid Build Coastguard Worker
19*9356374aSAndroid Build Coastguard Workerload(
20*9356374aSAndroid Build Coastguard Worker    "//absl:copts/configure_copts.bzl",
21*9356374aSAndroid Build Coastguard Worker    "ABSL_DEFAULT_COPTS",
22*9356374aSAndroid Build Coastguard Worker    "ABSL_DEFAULT_LINKOPTS",
23*9356374aSAndroid Build Coastguard Worker    "ABSL_TEST_COPTS",
24*9356374aSAndroid Build Coastguard Worker)
25*9356374aSAndroid Build Coastguard Worker
26*9356374aSAndroid Build Coastguard Workerpackage(
27*9356374aSAndroid Build Coastguard Worker    default_visibility = ["//visibility:public"],
28*9356374aSAndroid Build Coastguard Worker    features = [
29*9356374aSAndroid Build Coastguard Worker        "header_modules",
30*9356374aSAndroid Build Coastguard Worker        "layering_check",
31*9356374aSAndroid Build Coastguard Worker        "parse_headers",
32*9356374aSAndroid Build Coastguard Worker    ],
33*9356374aSAndroid Build Coastguard Worker)
34*9356374aSAndroid Build Coastguard Worker
35*9356374aSAndroid Build Coastguard Workerlicenses(["notice"])
36*9356374aSAndroid Build Coastguard Worker
37*9356374aSAndroid Build Coastguard Workercc_library(
38*9356374aSAndroid Build Coastguard Worker    name = "random",
39*9356374aSAndroid Build Coastguard Worker    hdrs = ["random.h"],
40*9356374aSAndroid Build Coastguard Worker    copts = ABSL_DEFAULT_COPTS,
41*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
42*9356374aSAndroid Build Coastguard Worker    deps = [
43*9356374aSAndroid Build Coastguard Worker        ":distributions",
44*9356374aSAndroid Build Coastguard Worker        ":seed_sequences",
45*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:nonsecure_base",
46*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
47*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pool_urbg",
48*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:randen_engine",
49*9356374aSAndroid Build Coastguard Worker    ],
50*9356374aSAndroid Build Coastguard Worker)
51*9356374aSAndroid Build Coastguard Worker
52*9356374aSAndroid Build Coastguard Workercc_library(
53*9356374aSAndroid Build Coastguard Worker    name = "distributions",
54*9356374aSAndroid Build Coastguard Worker    srcs = [
55*9356374aSAndroid Build Coastguard Worker        "discrete_distribution.cc",
56*9356374aSAndroid Build Coastguard Worker        "gaussian_distribution.cc",
57*9356374aSAndroid Build Coastguard Worker    ],
58*9356374aSAndroid Build Coastguard Worker    hdrs = [
59*9356374aSAndroid Build Coastguard Worker        "bernoulli_distribution.h",
60*9356374aSAndroid Build Coastguard Worker        "beta_distribution.h",
61*9356374aSAndroid Build Coastguard Worker        "discrete_distribution.h",
62*9356374aSAndroid Build Coastguard Worker        "distributions.h",
63*9356374aSAndroid Build Coastguard Worker        "exponential_distribution.h",
64*9356374aSAndroid Build Coastguard Worker        "gaussian_distribution.h",
65*9356374aSAndroid Build Coastguard Worker        "log_uniform_int_distribution.h",
66*9356374aSAndroid Build Coastguard Worker        "poisson_distribution.h",
67*9356374aSAndroid Build Coastguard Worker        "uniform_int_distribution.h",
68*9356374aSAndroid Build Coastguard Worker        "uniform_real_distribution.h",
69*9356374aSAndroid Build Coastguard Worker        "zipf_distribution.h",
70*9356374aSAndroid Build Coastguard Worker    ],
71*9356374aSAndroid Build Coastguard Worker    copts = ABSL_DEFAULT_COPTS,
72*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
73*9356374aSAndroid Build Coastguard Worker    deps = [
74*9356374aSAndroid Build Coastguard Worker        "//absl/base:base_internal",
75*9356374aSAndroid Build Coastguard Worker        "//absl/base:config",
76*9356374aSAndroid Build Coastguard Worker        "//absl/base:core_headers",
77*9356374aSAndroid Build Coastguard Worker        "//absl/meta:type_traits",
78*9356374aSAndroid Build Coastguard Worker        "//absl/numeric:bits",
79*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_caller",
80*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:fast_uniform_bits",
81*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:fastmath",
82*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:generate_real",
83*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:iostream_state_saver",
84*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:traits",
85*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:uniform_helper",
86*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:wide_multiply",
87*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
88*9356374aSAndroid Build Coastguard Worker    ],
89*9356374aSAndroid Build Coastguard Worker)
90*9356374aSAndroid Build Coastguard Worker
91*9356374aSAndroid Build Coastguard Workercc_library(
92*9356374aSAndroid Build Coastguard Worker    name = "seed_gen_exception",
93*9356374aSAndroid Build Coastguard Worker    srcs = ["seed_gen_exception.cc"],
94*9356374aSAndroid Build Coastguard Worker    hdrs = ["seed_gen_exception.h"],
95*9356374aSAndroid Build Coastguard Worker    copts = ABSL_DEFAULT_COPTS,
96*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
97*9356374aSAndroid Build Coastguard Worker    deps = ["//absl/base:config"],
98*9356374aSAndroid Build Coastguard Worker)
99*9356374aSAndroid Build Coastguard Worker
100*9356374aSAndroid Build Coastguard Workercc_library(
101*9356374aSAndroid Build Coastguard Worker    name = "seed_sequences",
102*9356374aSAndroid Build Coastguard Worker    srcs = ["seed_sequences.cc"],
103*9356374aSAndroid Build Coastguard Worker    hdrs = [
104*9356374aSAndroid Build Coastguard Worker        "seed_sequences.h",
105*9356374aSAndroid Build Coastguard Worker    ],
106*9356374aSAndroid Build Coastguard Worker    copts = ABSL_DEFAULT_COPTS,
107*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
108*9356374aSAndroid Build Coastguard Worker    deps = [
109*9356374aSAndroid Build Coastguard Worker        ":seed_gen_exception",
110*9356374aSAndroid Build Coastguard Worker        "//absl/base:config",
111*9356374aSAndroid Build Coastguard Worker        "//absl/base:nullability",
112*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pool_urbg",
113*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:salted_seed_seq",
114*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:seed_material",
115*9356374aSAndroid Build Coastguard Worker        "//absl/strings:string_view",
116*9356374aSAndroid Build Coastguard Worker        "//absl/types:span",
117*9356374aSAndroid Build Coastguard Worker    ],
118*9356374aSAndroid Build Coastguard Worker)
119*9356374aSAndroid Build Coastguard Worker
120*9356374aSAndroid Build Coastguard Workercc_library(
121*9356374aSAndroid Build Coastguard Worker    name = "bit_gen_ref",
122*9356374aSAndroid Build Coastguard Worker    hdrs = ["bit_gen_ref.h"],
123*9356374aSAndroid Build Coastguard Worker    copts = ABSL_DEFAULT_COPTS,
124*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
125*9356374aSAndroid Build Coastguard Worker    deps = [
126*9356374aSAndroid Build Coastguard Worker        ":random",
127*9356374aSAndroid Build Coastguard Worker        "//absl/base:core_headers",
128*9356374aSAndroid Build Coastguard Worker        "//absl/base:fast_type_id",
129*9356374aSAndroid Build Coastguard Worker        "//absl/meta:type_traits",
130*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_caller",
131*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:fast_uniform_bits",
132*9356374aSAndroid Build Coastguard Worker    ],
133*9356374aSAndroid Build Coastguard Worker)
134*9356374aSAndroid Build Coastguard Worker
135*9356374aSAndroid Build Coastguard Workercc_library(
136*9356374aSAndroid Build Coastguard Worker    name = "mock_distributions",
137*9356374aSAndroid Build Coastguard Worker    testonly = True,
138*9356374aSAndroid Build Coastguard Worker    hdrs = ["mock_distributions.h"],
139*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
140*9356374aSAndroid Build Coastguard Worker    deps = [
141*9356374aSAndroid Build Coastguard Worker        ":distributions",
142*9356374aSAndroid Build Coastguard Worker        ":mocking_bit_gen",
143*9356374aSAndroid Build Coastguard Worker        "//absl/base:config",
144*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:mock_overload_set",
145*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:mock_validators",
146*9356374aSAndroid Build Coastguard Worker    ],
147*9356374aSAndroid Build Coastguard Worker)
148*9356374aSAndroid Build Coastguard Worker
149*9356374aSAndroid Build Coastguard Workercc_library(
150*9356374aSAndroid Build Coastguard Worker    name = "mocking_bit_gen",
151*9356374aSAndroid Build Coastguard Worker    testonly = True,
152*9356374aSAndroid Build Coastguard Worker    hdrs = [
153*9356374aSAndroid Build Coastguard Worker        "mocking_bit_gen.h",
154*9356374aSAndroid Build Coastguard Worker    ],
155*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
156*9356374aSAndroid Build Coastguard Worker    deps = [
157*9356374aSAndroid Build Coastguard Worker        ":random",
158*9356374aSAndroid Build Coastguard Worker        "//absl/base:config",
159*9356374aSAndroid Build Coastguard Worker        "//absl/base:core_headers",
160*9356374aSAndroid Build Coastguard Worker        "//absl/base:fast_type_id",
161*9356374aSAndroid Build Coastguard Worker        "//absl/container:flat_hash_map",
162*9356374aSAndroid Build Coastguard Worker        "//absl/meta:type_traits",
163*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:mock_helpers",
164*9356374aSAndroid Build Coastguard Worker        "//absl/utility",
165*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
166*9356374aSAndroid Build Coastguard Worker    ],
167*9356374aSAndroid Build Coastguard Worker)
168*9356374aSAndroid Build Coastguard Worker
169*9356374aSAndroid Build Coastguard Workercc_test(
170*9356374aSAndroid Build Coastguard Worker    name = "bernoulli_distribution_test",
171*9356374aSAndroid Build Coastguard Worker    size = "small",
172*9356374aSAndroid Build Coastguard Worker    timeout = "eternal",  # Android can take a very long time
173*9356374aSAndroid Build Coastguard Worker    srcs = ["bernoulli_distribution_test.cc"],
174*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
175*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
176*9356374aSAndroid Build Coastguard Worker    deps = [
177*9356374aSAndroid Build Coastguard Worker        ":distributions",
178*9356374aSAndroid Build Coastguard Worker        ":random",
179*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
180*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
181*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
182*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
183*9356374aSAndroid Build Coastguard Worker    ],
184*9356374aSAndroid Build Coastguard Worker)
185*9356374aSAndroid Build Coastguard Worker
186*9356374aSAndroid Build Coastguard Workercc_test(
187*9356374aSAndroid Build Coastguard Worker    name = "beta_distribution_test",
188*9356374aSAndroid Build Coastguard Worker    size = "small",
189*9356374aSAndroid Build Coastguard Worker    timeout = "eternal",  # Android can take a very long time
190*9356374aSAndroid Build Coastguard Worker    srcs = ["beta_distribution_test.cc"],
191*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
192*9356374aSAndroid Build Coastguard Worker    flaky = 1,
193*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
194*9356374aSAndroid Build Coastguard Worker    tags = [
195*9356374aSAndroid Build Coastguard Worker        "no_test_wasm",
196*9356374aSAndroid Build Coastguard Worker    ],
197*9356374aSAndroid Build Coastguard Worker    deps = [
198*9356374aSAndroid Build Coastguard Worker        ":distributions",
199*9356374aSAndroid Build Coastguard Worker        ":random",
200*9356374aSAndroid Build Coastguard Worker        "//absl/log",
201*9356374aSAndroid Build Coastguard Worker        "//absl/numeric:representation",
202*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
203*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
204*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
205*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
206*9356374aSAndroid Build Coastguard Worker        "//absl/strings:str_format",
207*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
208*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
209*9356374aSAndroid Build Coastguard Worker    ],
210*9356374aSAndroid Build Coastguard Worker)
211*9356374aSAndroid Build Coastguard Worker
212*9356374aSAndroid Build Coastguard Workercc_test(
213*9356374aSAndroid Build Coastguard Worker    name = "distributions_test",
214*9356374aSAndroid Build Coastguard Worker    size = "small",
215*9356374aSAndroid Build Coastguard Worker    timeout = "moderate",
216*9356374aSAndroid Build Coastguard Worker    srcs = [
217*9356374aSAndroid Build Coastguard Worker        "distributions_test.cc",
218*9356374aSAndroid Build Coastguard Worker    ],
219*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
220*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
221*9356374aSAndroid Build Coastguard Worker    deps = [
222*9356374aSAndroid Build Coastguard Worker        ":distributions",
223*9356374aSAndroid Build Coastguard Worker        ":random",
224*9356374aSAndroid Build Coastguard Worker        "//absl/meta:type_traits",
225*9356374aSAndroid Build Coastguard Worker        "//absl/numeric:int128",
226*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
227*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
228*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
229*9356374aSAndroid Build Coastguard Worker    ],
230*9356374aSAndroid Build Coastguard Worker)
231*9356374aSAndroid Build Coastguard Worker
232*9356374aSAndroid Build Coastguard Workercc_test(
233*9356374aSAndroid Build Coastguard Worker    name = "generators_test",
234*9356374aSAndroid Build Coastguard Worker    size = "small",
235*9356374aSAndroid Build Coastguard Worker    srcs = ["generators_test.cc"],
236*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
237*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
238*9356374aSAndroid Build Coastguard Worker    deps = [
239*9356374aSAndroid Build Coastguard Worker        ":distributions",
240*9356374aSAndroid Build Coastguard Worker        ":random",
241*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
242*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
243*9356374aSAndroid Build Coastguard Worker    ],
244*9356374aSAndroid Build Coastguard Worker)
245*9356374aSAndroid Build Coastguard Worker
246*9356374aSAndroid Build Coastguard Workercc_test(
247*9356374aSAndroid Build Coastguard Worker    name = "log_uniform_int_distribution_test",
248*9356374aSAndroid Build Coastguard Worker    size = "medium",
249*9356374aSAndroid Build Coastguard Worker    srcs = [
250*9356374aSAndroid Build Coastguard Worker        "log_uniform_int_distribution_test.cc",
251*9356374aSAndroid Build Coastguard Worker    ],
252*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
253*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
254*9356374aSAndroid Build Coastguard Worker    tags = [
255*9356374aSAndroid Build Coastguard Worker        "no_test_wasm",  # Does not converge on WASM.
256*9356374aSAndroid Build Coastguard Worker    ],
257*9356374aSAndroid Build Coastguard Worker    deps = [
258*9356374aSAndroid Build Coastguard Worker        ":distributions",
259*9356374aSAndroid Build Coastguard Worker        ":random",
260*9356374aSAndroid Build Coastguard Worker        "//absl/log",
261*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
262*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
263*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
264*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
265*9356374aSAndroid Build Coastguard Worker        "//absl/strings:str_format",
266*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
267*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
268*9356374aSAndroid Build Coastguard Worker    ],
269*9356374aSAndroid Build Coastguard Worker)
270*9356374aSAndroid Build Coastguard Worker
271*9356374aSAndroid Build Coastguard Workercc_test(
272*9356374aSAndroid Build Coastguard Worker    name = "discrete_distribution_test",
273*9356374aSAndroid Build Coastguard Worker    size = "medium",
274*9356374aSAndroid Build Coastguard Worker    srcs = [
275*9356374aSAndroid Build Coastguard Worker        "discrete_distribution_test.cc",
276*9356374aSAndroid Build Coastguard Worker    ],
277*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
278*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
279*9356374aSAndroid Build Coastguard Worker    deps = [
280*9356374aSAndroid Build Coastguard Worker        ":distributions",
281*9356374aSAndroid Build Coastguard Worker        ":random",
282*9356374aSAndroid Build Coastguard Worker        "//absl/log",
283*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
284*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
285*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
286*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
287*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
288*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
289*9356374aSAndroid Build Coastguard Worker    ],
290*9356374aSAndroid Build Coastguard Worker)
291*9356374aSAndroid Build Coastguard Worker
292*9356374aSAndroid Build Coastguard Workercc_test(
293*9356374aSAndroid Build Coastguard Worker    name = "poisson_distribution_test",
294*9356374aSAndroid Build Coastguard Worker    size = "small",
295*9356374aSAndroid Build Coastguard Worker    timeout = "eternal",  # Android can take a very long time
296*9356374aSAndroid Build Coastguard Worker    srcs = [
297*9356374aSAndroid Build Coastguard Worker        "poisson_distribution_test.cc",
298*9356374aSAndroid Build Coastguard Worker    ],
299*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
300*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
301*9356374aSAndroid Build Coastguard Worker    tags = [
302*9356374aSAndroid Build Coastguard Worker        # Too Slow.
303*9356374aSAndroid Build Coastguard Worker        "no_test_android_arm",
304*9356374aSAndroid Build Coastguard Worker        "no_test_loonix",
305*9356374aSAndroid Build Coastguard Worker    ],
306*9356374aSAndroid Build Coastguard Worker    deps = [
307*9356374aSAndroid Build Coastguard Worker        ":distributions",
308*9356374aSAndroid Build Coastguard Worker        ":random",
309*9356374aSAndroid Build Coastguard Worker        "//absl/base:core_headers",
310*9356374aSAndroid Build Coastguard Worker        "//absl/container:flat_hash_map",
311*9356374aSAndroid Build Coastguard Worker        "//absl/log",
312*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
313*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
314*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
315*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
316*9356374aSAndroid Build Coastguard Worker        "//absl/strings:str_format",
317*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
318*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
319*9356374aSAndroid Build Coastguard Worker    ],
320*9356374aSAndroid Build Coastguard Worker)
321*9356374aSAndroid Build Coastguard Worker
322*9356374aSAndroid Build Coastguard Workercc_test(
323*9356374aSAndroid Build Coastguard Worker    name = "exponential_distribution_test",
324*9356374aSAndroid Build Coastguard Worker    size = "small",
325*9356374aSAndroid Build Coastguard Worker    timeout = "moderate",
326*9356374aSAndroid Build Coastguard Worker    srcs = ["exponential_distribution_test.cc"],
327*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
328*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
329*9356374aSAndroid Build Coastguard Worker    deps = [
330*9356374aSAndroid Build Coastguard Worker        ":distributions",
331*9356374aSAndroid Build Coastguard Worker        ":random",
332*9356374aSAndroid Build Coastguard Worker        "//absl/base:core_headers",
333*9356374aSAndroid Build Coastguard Worker        "//absl/log",
334*9356374aSAndroid Build Coastguard Worker        "//absl/numeric:representation",
335*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
336*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
337*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
338*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
339*9356374aSAndroid Build Coastguard Worker        "//absl/strings:str_format",
340*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
341*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
342*9356374aSAndroid Build Coastguard Worker    ],
343*9356374aSAndroid Build Coastguard Worker)
344*9356374aSAndroid Build Coastguard Worker
345*9356374aSAndroid Build Coastguard Workercc_test(
346*9356374aSAndroid Build Coastguard Worker    name = "gaussian_distribution_test",
347*9356374aSAndroid Build Coastguard Worker    size = "small",
348*9356374aSAndroid Build Coastguard Worker    timeout = "eternal",  # Android can take a very long time
349*9356374aSAndroid Build Coastguard Worker    srcs = [
350*9356374aSAndroid Build Coastguard Worker        "gaussian_distribution_test.cc",
351*9356374aSAndroid Build Coastguard Worker    ],
352*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
353*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
354*9356374aSAndroid Build Coastguard Worker    deps = [
355*9356374aSAndroid Build Coastguard Worker        ":distributions",
356*9356374aSAndroid Build Coastguard Worker        ":random",
357*9356374aSAndroid Build Coastguard Worker        "//absl/base:core_headers",
358*9356374aSAndroid Build Coastguard Worker        "//absl/log",
359*9356374aSAndroid Build Coastguard Worker        "//absl/numeric:representation",
360*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
361*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
362*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
363*9356374aSAndroid Build Coastguard Worker        "//absl/strings:str_format",
364*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
365*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
366*9356374aSAndroid Build Coastguard Worker    ],
367*9356374aSAndroid Build Coastguard Worker)
368*9356374aSAndroid Build Coastguard Worker
369*9356374aSAndroid Build Coastguard Workercc_test(
370*9356374aSAndroid Build Coastguard Worker    name = "uniform_int_distribution_test",
371*9356374aSAndroid Build Coastguard Worker    size = "medium",
372*9356374aSAndroid Build Coastguard Worker    timeout = "long",
373*9356374aSAndroid Build Coastguard Worker    srcs = [
374*9356374aSAndroid Build Coastguard Worker        "uniform_int_distribution_test.cc",
375*9356374aSAndroid Build Coastguard Worker    ],
376*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
377*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
378*9356374aSAndroid Build Coastguard Worker    deps = [
379*9356374aSAndroid Build Coastguard Worker        ":distributions",
380*9356374aSAndroid Build Coastguard Worker        ":random",
381*9356374aSAndroid Build Coastguard Worker        "//absl/log",
382*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
383*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
384*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
385*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
386*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
387*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
388*9356374aSAndroid Build Coastguard Worker    ],
389*9356374aSAndroid Build Coastguard Worker)
390*9356374aSAndroid Build Coastguard Worker
391*9356374aSAndroid Build Coastguard Workercc_test(
392*9356374aSAndroid Build Coastguard Worker    name = "uniform_real_distribution_test",
393*9356374aSAndroid Build Coastguard Worker    size = "medium",
394*9356374aSAndroid Build Coastguard Worker    srcs = [
395*9356374aSAndroid Build Coastguard Worker        "uniform_real_distribution_test.cc",
396*9356374aSAndroid Build Coastguard Worker    ],
397*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
398*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
399*9356374aSAndroid Build Coastguard Worker    tags = [
400*9356374aSAndroid Build Coastguard Worker        "no_test_android_arm",
401*9356374aSAndroid Build Coastguard Worker        "no_test_android_arm64",
402*9356374aSAndroid Build Coastguard Worker        "no_test_android_x86",
403*9356374aSAndroid Build Coastguard Worker    ],
404*9356374aSAndroid Build Coastguard Worker    deps = [
405*9356374aSAndroid Build Coastguard Worker        ":distributions",
406*9356374aSAndroid Build Coastguard Worker        ":random",
407*9356374aSAndroid Build Coastguard Worker        "//absl/log",
408*9356374aSAndroid Build Coastguard Worker        "//absl/numeric:representation",
409*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
410*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
411*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
412*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
413*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
414*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
415*9356374aSAndroid Build Coastguard Worker    ],
416*9356374aSAndroid Build Coastguard Worker)
417*9356374aSAndroid Build Coastguard Worker
418*9356374aSAndroid Build Coastguard Workercc_test(
419*9356374aSAndroid Build Coastguard Worker    name = "zipf_distribution_test",
420*9356374aSAndroid Build Coastguard Worker    size = "medium",
421*9356374aSAndroid Build Coastguard Worker    srcs = [
422*9356374aSAndroid Build Coastguard Worker        "zipf_distribution_test.cc",
423*9356374aSAndroid Build Coastguard Worker    ],
424*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
425*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
426*9356374aSAndroid Build Coastguard Worker    deps = [
427*9356374aSAndroid Build Coastguard Worker        ":distributions",
428*9356374aSAndroid Build Coastguard Worker        ":random",
429*9356374aSAndroid Build Coastguard Worker        "//absl/log",
430*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:distribution_test_util",
431*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:pcg_engine",
432*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
433*9356374aSAndroid Build Coastguard Worker        "//absl/strings",
434*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
435*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
436*9356374aSAndroid Build Coastguard Worker    ],
437*9356374aSAndroid Build Coastguard Worker)
438*9356374aSAndroid Build Coastguard Worker
439*9356374aSAndroid Build Coastguard Workercc_test(
440*9356374aSAndroid Build Coastguard Worker    name = "bit_gen_ref_test",
441*9356374aSAndroid Build Coastguard Worker    size = "small",
442*9356374aSAndroid Build Coastguard Worker    srcs = ["bit_gen_ref_test.cc"],
443*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
444*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
445*9356374aSAndroid Build Coastguard Worker    deps = [
446*9356374aSAndroid Build Coastguard Worker        ":bit_gen_ref",
447*9356374aSAndroid Build Coastguard Worker        ":random",
448*9356374aSAndroid Build Coastguard Worker        "//absl/base:fast_type_id",
449*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:sequence_urbg",
450*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
451*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
452*9356374aSAndroid Build Coastguard Worker    ],
453*9356374aSAndroid Build Coastguard Worker)
454*9356374aSAndroid Build Coastguard Worker
455*9356374aSAndroid Build Coastguard Workercc_test(
456*9356374aSAndroid Build Coastguard Worker    name = "mocking_bit_gen_test",
457*9356374aSAndroid Build Coastguard Worker    size = "small",
458*9356374aSAndroid Build Coastguard Worker    srcs = ["mocking_bit_gen_test.cc"],
459*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
460*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
461*9356374aSAndroid Build Coastguard Worker    tags = [
462*9356374aSAndroid Build Coastguard Worker        "no_test_wasm",
463*9356374aSAndroid Build Coastguard Worker    ],
464*9356374aSAndroid Build Coastguard Worker    deps = [
465*9356374aSAndroid Build Coastguard Worker        ":bit_gen_ref",
466*9356374aSAndroid Build Coastguard Worker        ":mock_distributions",
467*9356374aSAndroid Build Coastguard Worker        ":mocking_bit_gen",
468*9356374aSAndroid Build Coastguard Worker        ":random",
469*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
470*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
471*9356374aSAndroid Build Coastguard Worker    ],
472*9356374aSAndroid Build Coastguard Worker)
473*9356374aSAndroid Build Coastguard Worker
474*9356374aSAndroid Build Coastguard Workercc_test(
475*9356374aSAndroid Build Coastguard Worker    name = "mock_distributions_test",
476*9356374aSAndroid Build Coastguard Worker    size = "small",
477*9356374aSAndroid Build Coastguard Worker    srcs = ["mock_distributions_test.cc"],
478*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
479*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
480*9356374aSAndroid Build Coastguard Worker    tags = [
481*9356374aSAndroid Build Coastguard Worker        "no_test_wasm",
482*9356374aSAndroid Build Coastguard Worker    ],
483*9356374aSAndroid Build Coastguard Worker    deps = [
484*9356374aSAndroid Build Coastguard Worker        ":distributions",
485*9356374aSAndroid Build Coastguard Worker        ":mock_distributions",
486*9356374aSAndroid Build Coastguard Worker        ":mocking_bit_gen",
487*9356374aSAndroid Build Coastguard Worker        ":random",
488*9356374aSAndroid Build Coastguard Worker        "//absl/numeric:int128",
489*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
490*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
491*9356374aSAndroid Build Coastguard Worker    ],
492*9356374aSAndroid Build Coastguard Worker)
493*9356374aSAndroid Build Coastguard Worker
494*9356374aSAndroid Build Coastguard Workercc_test(
495*9356374aSAndroid Build Coastguard Worker    name = "examples_test",
496*9356374aSAndroid Build Coastguard Worker    size = "small",
497*9356374aSAndroid Build Coastguard Worker    srcs = ["examples_test.cc"],
498*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
499*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
500*9356374aSAndroid Build Coastguard Worker    tags = [
501*9356374aSAndroid Build Coastguard Worker        "no_test_wasm",
502*9356374aSAndroid Build Coastguard Worker    ],
503*9356374aSAndroid Build Coastguard Worker    deps = [
504*9356374aSAndroid Build Coastguard Worker        ":random",
505*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
506*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
507*9356374aSAndroid Build Coastguard Worker    ],
508*9356374aSAndroid Build Coastguard Worker)
509*9356374aSAndroid Build Coastguard Worker
510*9356374aSAndroid Build Coastguard Workercc_test(
511*9356374aSAndroid Build Coastguard Worker    name = "seed_sequences_test",
512*9356374aSAndroid Build Coastguard Worker    size = "small",
513*9356374aSAndroid Build Coastguard Worker    srcs = ["seed_sequences_test.cc"],
514*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
515*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
516*9356374aSAndroid Build Coastguard Worker    deps = [
517*9356374aSAndroid Build Coastguard Worker        ":random",
518*9356374aSAndroid Build Coastguard Worker        ":seed_sequences",
519*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:nonsecure_base",
520*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
521*9356374aSAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
522*9356374aSAndroid Build Coastguard Worker    ],
523*9356374aSAndroid Build Coastguard Worker)
524*9356374aSAndroid Build Coastguard Worker
525*9356374aSAndroid Build Coastguard Worker# Benchmarks for various methods / test utilities
526*9356374aSAndroid Build Coastguard Workercc_binary(
527*9356374aSAndroid Build Coastguard Worker    name = "benchmarks",
528*9356374aSAndroid Build Coastguard Worker    testonly = True,
529*9356374aSAndroid Build Coastguard Worker    srcs = [
530*9356374aSAndroid Build Coastguard Worker        "benchmarks.cc",
531*9356374aSAndroid Build Coastguard Worker    ],
532*9356374aSAndroid Build Coastguard Worker    copts = ABSL_TEST_COPTS,
533*9356374aSAndroid Build Coastguard Worker    linkopts = ABSL_DEFAULT_LINKOPTS,
534*9356374aSAndroid Build Coastguard Worker    tags = ["benchmark"],
535*9356374aSAndroid Build Coastguard Worker    deps = [
536*9356374aSAndroid Build Coastguard Worker        ":distributions",
537*9356374aSAndroid Build Coastguard Worker        ":random",
538*9356374aSAndroid Build Coastguard Worker        ":seed_sequences",
539*9356374aSAndroid Build Coastguard Worker        "//absl/base:core_headers",
540*9356374aSAndroid Build Coastguard Worker        "//absl/meta:type_traits",
541*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:fast_uniform_bits",
542*9356374aSAndroid Build Coastguard Worker        "//absl/random/internal:randen_engine",
543*9356374aSAndroid Build Coastguard Worker        "@com_github_google_benchmark//:benchmark_main",
544*9356374aSAndroid Build Coastguard Worker    ],
545*9356374aSAndroid Build Coastguard Worker)
546