1#
2# Copyright 2019 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17absl_cc_library(
18  NAME
19    random_random
20  HDRS
21    "random.h"
22  COPTS
23    ${ABSL_DEFAULT_COPTS}
24  LINKOPTS
25    ${ABSL_DEFAULT_LINKOPTS}
26  DEPS
27    absl::random_distributions
28    absl::random_internal_nonsecure_base
29    absl::random_internal_pcg_engine
30    absl::random_internal_pool_urbg
31    absl::random_internal_randen_engine
32    absl::random_seed_sequences
33)
34
35absl_cc_library(
36  NAME
37    random_bit_gen_ref
38  HDRS
39    "bit_gen_ref.h"
40  COPTS
41    ${ABSL_DEFAULT_COPTS}
42  LINKOPTS
43    ${ABSL_DEFAULT_LINKOPTS}
44  DEPS
45    absl::core_headers
46    absl::random_internal_distribution_caller
47    absl::random_internal_fast_uniform_bits
48    absl::type_traits
49)
50
51absl_cc_test(
52  NAME
53    random_bit_gen_ref_test
54  SRCS
55    "bit_gen_ref_test.cc"
56  COPTS
57    ${ABSL_TEST_COPTS}
58  LINKOPTS
59    ${ABSL_DEFAULT_LINKOPTS}
60  DEPS
61    absl::random_bit_gen_ref
62    absl::random_random
63    absl::random_internal_sequence_urbg
64    absl::fast_type_id
65    gmock
66    gtest_main
67)
68
69# Internal-only target, do not depend on directly.
70absl_cc_library(
71  NAME
72    random_internal_mock_helpers
73  HDRS
74    "internal/mock_helpers.h"
75  COPTS
76    ${ABSL_DEFAULT_COPTS}
77  LINKOPTS
78    ${ABSL_DEFAULT_LINKOPTS}
79  DEPS
80    absl::fast_type_id
81    absl::optional
82)
83
84# Internal-only target, do not depend on directly.
85absl_cc_library(
86  NAME
87    random_internal_mock_overload_set
88  HDRS
89    "internal/mock_overload_set.h"
90  COPTS
91    ${ABSL_DEFAULT_COPTS}
92  LINKOPTS
93    ${ABSL_DEFAULT_LINKOPTS}
94  DEPS
95    absl::random_mocking_bit_gen
96    absl::random_internal_mock_helpers
97  TESTONLY
98)
99
100absl_cc_library(
101  NAME
102    random_mocking_bit_gen
103  HDRS
104    "mock_distributions.h"
105    "mocking_bit_gen.h"
106  COPTS
107    ${ABSL_DEFAULT_COPTS}
108  LINKOPTS
109    ${ABSL_DEFAULT_LINKOPTS}
110  DEPS
111    absl::flat_hash_map
112    absl::raw_logging_internal
113    absl::random_distributions
114    absl::random_internal_distribution_caller
115    absl::random_internal_mock_overload_set
116    absl::random_random
117    absl::strings
118    absl::span
119    absl::type_traits
120    absl::utility
121    absl::variant
122    gmock
123    gtest
124  TESTONLY
125)
126
127absl_cc_test(
128  NAME
129    random_mock_distributions_test
130  SRCS
131    "mock_distributions_test.cc"
132  COPTS
133    ${ABSL_TEST_COPTS}
134  LINKOPTS
135    ${ABSL_DEFAULT_LINKOPTS}
136  DEPS
137    absl::random_mocking_bit_gen
138    absl::random_random
139    gmock
140    gtest_main
141)
142
143absl_cc_test(
144  NAME
145    random_mocking_bit_gen_test
146  SRCS
147    "mocking_bit_gen_test.cc"
148  COPTS
149    ${ABSL_TEST_COPTS}
150  LINKOPTS
151    ${ABSL_DEFAULT_LINKOPTS}
152  DEPS
153    absl::random_bit_gen_ref
154    absl::random_mocking_bit_gen
155    absl::random_random
156    gmock
157    gtest_main
158)
159
160absl_cc_library(
161  NAME
162    random_distributions
163  SRCS
164    "discrete_distribution.cc"
165    "gaussian_distribution.cc"
166  HDRS
167    "bernoulli_distribution.h"
168    "beta_distribution.h"
169    "discrete_distribution.h"
170    "distributions.h"
171    "exponential_distribution.h"
172    "gaussian_distribution.h"
173    "log_uniform_int_distribution.h"
174    "poisson_distribution.h"
175    "uniform_int_distribution.h"
176    "uniform_real_distribution.h"
177    "zipf_distribution.h"
178  COPTS
179    ${ABSL_DEFAULT_COPTS}
180  LINKOPTS
181    ${ABSL_DEFAULT_LINKOPTS}
182  DEPS
183    absl::base_internal
184    absl::config
185    absl::core_headers
186    absl::random_internal_generate_real
187    absl::random_internal_distribution_caller
188    absl::random_internal_fast_uniform_bits
189    absl::random_internal_fastmath
190    absl::random_internal_iostream_state_saver
191    absl::random_internal_traits
192    absl::random_internal_uniform_helper
193    absl::random_internal_wide_multiply
194    absl::strings
195    absl::type_traits
196)
197
198absl_cc_library(
199  NAME
200    random_seed_gen_exception
201  SRCS
202    "seed_gen_exception.cc"
203  HDRS
204    "seed_gen_exception.h"
205  COPTS
206    ${ABSL_DEFAULT_COPTS}
207  LINKOPTS
208    ${ABSL_DEFAULT_LINKOPTS}
209  DEPS
210    absl::config
211)
212
213absl_cc_library(
214  NAME
215    random_seed_sequences
216  SRCS
217    "seed_sequences.cc"
218  HDRS
219    "seed_sequences.h"
220  COPTS
221    ${ABSL_DEFAULT_COPTS}
222  LINKOPTS
223    ${ABSL_DEFAULT_LINKOPTS}
224  DEPS
225    absl::inlined_vector
226    absl::random_internal_nonsecure_base
227    absl::random_internal_pool_urbg
228    absl::random_internal_salted_seed_seq
229    absl::random_internal_seed_material
230    absl::random_seed_gen_exception
231    absl::span
232)
233
234absl_cc_test(
235  NAME
236    random_bernoulli_distribution_test
237  SRCS
238    "bernoulli_distribution_test.cc"
239  COPTS
240    ${ABSL_TEST_COPTS}
241  LINKOPTS
242    ${ABSL_DEFAULT_LINKOPTS}
243  DEPS
244    absl::random_distributions
245    absl::random_random
246    absl::random_internal_sequence_urbg
247    absl::random_internal_pcg_engine
248    gmock
249    gtest_main
250)
251
252absl_cc_test(
253  NAME
254    random_beta_distribution_test
255  SRCS
256    "beta_distribution_test.cc"
257  COPTS
258    ${ABSL_TEST_COPTS}
259  LINKOPTS
260    ${ABSL_DEFAULT_LINKOPTS}
261  DEPS
262    absl::random_distributions
263    absl::random_random
264    absl::random_internal_distribution_test_util
265    absl::random_internal_sequence_urbg
266    absl::random_internal_pcg_engine
267    absl::raw_logging_internal
268    absl::strings
269    absl::str_format
270    gmock
271    gtest_main
272)
273
274absl_cc_test(
275  NAME
276    random_distributions_test
277  SRCS
278    "distributions_test.cc"
279  COPTS
280    ${ABSL_TEST_COPTS}
281  LINKOPTS
282    ${ABSL_DEFAULT_LINKOPTS}
283  DEPS
284    absl::random_distributions
285    absl::random_random
286    absl::random_internal_distribution_test_util
287    gmock
288    gtest_main
289)
290
291absl_cc_test(
292  NAME
293    random_generators_test
294  SRCS
295    "generators_test.cc"
296  COPTS
297    ${ABSL_TEST_COPTS}
298  LINKOPTS
299    ${ABSL_DEFAULT_LINKOPTS}
300    absl::random_distributions
301    absl::random_random
302    absl::raw_logging_internal
303    gmock
304    gtest_main
305)
306
307absl_cc_test(
308  NAME
309    random_log_uniform_int_distribution_test
310  SRCS
311    "log_uniform_int_distribution_test.cc"
312  COPTS
313    ${ABSL_TEST_COPTS}
314  LINKOPTS
315    ${ABSL_DEFAULT_LINKOPTS}
316    absl::random_distributions
317    absl::random_internal_distribution_test_util
318    absl::random_internal_pcg_engine
319    absl::random_internal_sequence_urbg
320    absl::random_random
321    absl::raw_logging_internal
322    absl::strings
323    absl::str_format
324    gmock
325    gtest_main
326)
327
328absl_cc_test(
329  NAME
330    random_discrete_distribution_test
331  SRCS
332    "discrete_distribution_test.cc"
333  COPTS
334    ${ABSL_TEST_COPTS}
335  LINKOPTS
336    ${ABSL_DEFAULT_LINKOPTS}
337  DEPS
338    absl::random_distributions
339    absl::random_internal_distribution_test_util
340    absl::random_internal_pcg_engine
341    absl::random_internal_sequence_urbg
342    absl::random_random
343    absl::raw_logging_internal
344    absl::strings
345    gmock
346    gtest_main
347)
348
349absl_cc_test(
350  NAME
351    random_poisson_distribution_test
352  SRCS
353    "poisson_distribution_test.cc"
354  COPTS
355    ${ABSL_TEST_COPTS}
356  LINKOPTS
357    ${ABSL_DEFAULT_LINKOPTS}
358  DEPS
359    absl::random_distributions
360    absl::random_random
361    absl::core_headers
362    absl::flat_hash_map
363    absl::random_internal_distribution_test_util
364    absl::random_internal_pcg_engine
365    absl::random_internal_sequence_urbg
366    absl::raw_logging_internal
367    absl::strings
368    absl::str_format
369    gmock
370    gtest_main
371)
372
373absl_cc_test(
374  NAME
375    random_exponential_distribution_test
376  SRCS
377    "exponential_distribution_test.cc"
378  COPTS
379    ${ABSL_TEST_COPTS}
380  LINKOPTS
381    ${ABSL_DEFAULT_LINKOPTS}
382  DEPS
383    absl::core_headers
384    absl::random_distributions
385    absl::random_internal_distribution_test_util
386    absl::random_internal_pcg_engine
387    absl::random_internal_sequence_urbg
388    absl::random_random
389    absl::raw_logging_internal
390    absl::strings
391    absl::str_format
392    gmock
393    gtest_main
394)
395
396absl_cc_test(
397  NAME
398    random_gaussian_distribution_test
399  SRCS
400    "gaussian_distribution_test.cc"
401  COPTS
402    ${ABSL_TEST_COPTS}
403  LINKOPTS
404    ${ABSL_DEFAULT_LINKOPTS}
405  DEPS
406    absl::core_headers
407    absl::random_distributions
408    absl::random_internal_distribution_test_util
409    absl::random_internal_sequence_urbg
410    absl::random_random
411    absl::raw_logging_internal
412    absl::strings
413    absl::str_format
414    gmock
415    gtest_main
416)
417
418absl_cc_test(
419  NAME
420    random_uniform_int_distribution_test
421  SRCS
422    "uniform_int_distribution_test.cc"
423  COPTS
424    ${ABSL_TEST_COPTS}
425  LINKOPTS
426    ${ABSL_DEFAULT_LINKOPTS}
427  DEPS
428    absl::random_distributions
429    absl::random_internal_distribution_test_util
430    absl::random_internal_pcg_engine
431    absl::random_internal_sequence_urbg
432    absl::random_random
433    absl::raw_logging_internal
434    absl::strings
435    gmock
436    gtest_main
437)
438
439absl_cc_test(
440  NAME
441    random_uniform_real_distribution_test
442  SRCS
443    "uniform_real_distribution_test.cc"
444  COPTS
445    ${ABSL_TEST_COPTS}
446  LINKOPTS
447    ${ABSL_DEFAULT_LINKOPTS}
448  DEPS
449    absl::random_distributions
450    absl::random_internal_distribution_test_util
451    absl::random_internal_pcg_engine
452    absl::random_internal_sequence_urbg
453    absl::random_random
454    absl::strings
455    gmock
456    gtest_main
457)
458
459absl_cc_test(
460  NAME
461    random_zipf_distribution_test
462  SRCS
463    "zipf_distribution_test.cc"
464  COPTS
465    ${ABSL_TEST_COPTS}
466  LINKOPTS
467    ${ABSL_DEFAULT_LINKOPTS}
468  DEPS
469    absl::random_distributions
470    absl::random_internal_distribution_test_util
471    absl::random_internal_pcg_engine
472    absl::random_internal_sequence_urbg
473    absl::random_random
474    absl::raw_logging_internal
475    absl::strings
476    gmock
477    gtest_main
478)
479
480absl_cc_test(
481  NAME
482    random_examples_test
483  SRCS
484    "examples_test.cc"
485  COPTS
486    ${ABSL_TEST_COPTS}
487  LINKOPTS
488    ${ABSL_DEFAULT_LINKOPTS}
489  DEPS
490    absl::random_random
491    gtest_main
492)
493
494absl_cc_test(
495  NAME
496    random_seed_sequences_test
497  SRCS
498    "seed_sequences_test.cc"
499  COPTS
500    ${ABSL_TEST_COPTS}
501  LINKOPTS
502    ${ABSL_DEFAULT_LINKOPTS}
503  DEPS
504    absl::random_seed_sequences
505    absl::random_internal_nonsecure_base
506    absl::random_random
507    gmock
508    gtest_main
509)
510
511# Internal-only target, do not depend on directly.
512absl_cc_library(
513  NAME
514    random_internal_traits
515  HDRS
516    "internal/traits.h"
517  COPTS
518    ${ABSL_DEFAULT_COPTS}
519  LINKOPTS
520    ${ABSL_DEFAULT_LINKOPTS}
521  DEPS
522    absl::config
523)
524
525# Internal-only target, do not depend on directly.
526absl_cc_library(
527  NAME
528    random_internal_distribution_caller
529  HDRS
530    "internal/distribution_caller.h"
531  COPTS
532    ${ABSL_DEFAULT_COPTS}
533  LINKOPTS
534    ${ABSL_DEFAULT_LINKOPTS}
535  DEPS
536    absl::config
537    absl::utility
538    absl::fast_type_id
539)
540
541# Internal-only target, do not depend on directly.
542absl_cc_library(
543  NAME
544    random_internal_fast_uniform_bits
545  HDRS
546    "internal/fast_uniform_bits.h"
547  COPTS
548    ${ABSL_DEFAULT_COPTS}
549  LINKOPTS
550    ${ABSL_DEFAULT_LINKOPTS}
551  DEPS
552    absl::config
553)
554
555# Internal-only target, do not depend on directly.
556absl_cc_library(
557  NAME
558    random_internal_seed_material
559  SRCS
560    "internal/seed_material.cc"
561  HDRS
562    "internal/seed_material.h"
563  COPTS
564    ${ABSL_DEFAULT_COPTS}
565  LINKOPTS
566    ${ABSL_DEFAULT_LINKOPTS}
567    $<$<BOOL:${MINGW}>:"bcrypt">
568  DEPS
569    absl::core_headers
570    absl::optional
571    absl::random_internal_fast_uniform_bits
572    absl::raw_logging_internal
573    absl::span
574    absl::strings
575)
576
577# Internal-only target, do not depend on directly.
578absl_cc_library(
579  NAME
580    random_internal_pool_urbg
581  SRCS
582    "internal/pool_urbg.cc"
583  HDRS
584    "internal/pool_urbg.h"
585  COPTS
586    ${ABSL_DEFAULT_COPTS}
587  LINKOPTS
588    ${ABSL_DEFAULT_LINKOPTS}
589  DEPS
590    absl::base
591    absl::config
592    absl::core_headers
593    absl::endian
594    absl::random_internal_randen
595    absl::random_internal_seed_material
596    absl::random_internal_traits
597    absl::random_seed_gen_exception
598    absl::raw_logging_internal
599    absl::span
600)
601
602# Internal-only target, do not depend on directly.
603absl_cc_library(
604  NAME
605    random_internal_explicit_seed_seq
606  HDRS
607      "internal/random_internal_explicit_seed_seq.h"
608  COPTS
609    ${ABSL_DEFAULT_COPTS}
610  LINKOPTS
611    ${ABSL_DEFAULT_LINKOPTS}
612  DEPS
613    absl::config
614  TESTONLY
615)
616
617# Internal-only target, do not depend on directly.
618absl_cc_library(
619  NAME
620    random_internal_sequence_urbg
621  HDRS
622    "internal/sequence_urbg.h"
623  COPTS
624    ${ABSL_DEFAULT_COPTS}
625  LINKOPTS
626    ${ABSL_DEFAULT_LINKOPTS}
627  DEPS
628    absl::config
629  TESTONLY
630)
631
632# Internal-only target, do not depend on directly.
633absl_cc_library(
634  NAME
635    random_internal_salted_seed_seq
636  HDRS
637    "internal/salted_seed_seq.h"
638  COPTS
639    ${ABSL_DEFAULT_COPTS}
640  LINKOPTS
641    ${ABSL_DEFAULT_LINKOPTS}
642  DEPS
643    absl::inlined_vector
644    absl::optional
645    absl::span
646    absl::random_internal_seed_material
647    absl::type_traits
648)
649
650# Internal-only target, do not depend on directly.
651absl_cc_library(
652  NAME
653    random_internal_iostream_state_saver
654  HDRS
655    "internal/iostream_state_saver.h"
656  COPTS
657    ${ABSL_DEFAULT_COPTS}
658  LINKOPTS
659    ${ABSL_DEFAULT_LINKOPTS}
660  DEPS
661    absl::int128
662    absl::type_traits
663)
664
665# Internal-only target, do not depend on directly.
666absl_cc_library(
667  NAME
668    random_internal_generate_real
669  HDRS
670    "internal/generate_real.h"
671  COPTS
672    ${ABSL_DEFAULT_COPTS}
673  LINKOPTS
674    ${ABSL_DEFAULT_LINKOPTS}
675  DEPS
676    absl::bits
677    absl::random_internal_fastmath
678    absl::random_internal_traits
679    absl::type_traits
680)
681
682# Internal-only target, do not depend on directly.
683absl_cc_library(
684  NAME
685    random_internal_wide_multiply
686  HDRS
687    "internal/wide_multiply.h"
688  COPTS
689    ${ABSL_DEFAULT_COPTS}
690  LINKOPTS
691    ${ABSL_DEFAULT_LINKOPTS}
692  DEPS
693    absl::bits
694    absl::config
695    absl::int128
696)
697
698# Internal-only target, do not depend on directly.
699absl_cc_library(
700  NAME
701    random_internal_fastmath
702  HDRS
703    "internal/fastmath.h"
704  COPTS
705    ${ABSL_DEFAULT_COPTS}
706  LINKOPTS
707    ${ABSL_DEFAULT_LINKOPTS}
708  DEPS
709    absl::bits
710)
711
712# Internal-only target, do not depend on directly.
713absl_cc_library(
714  NAME
715    random_internal_nonsecure_base
716  HDRS
717    "internal/nonsecure_base.h"
718  COPTS
719    ${ABSL_DEFAULT_COPTS}
720  LINKOPTS
721    ${ABSL_DEFAULT_LINKOPTS}
722  DEPS
723    absl::core_headers
724    absl::optional
725    absl::random_internal_pool_urbg
726    absl::random_internal_salted_seed_seq
727    absl::random_internal_seed_material
728    absl::span
729    absl::type_traits
730)
731
732# Internal-only target, do not depend on directly.
733absl_cc_library(
734  NAME
735    random_internal_pcg_engine
736  HDRS
737    "internal/pcg_engine.h"
738  COPTS
739    ${ABSL_DEFAULT_COPTS}
740  LINKOPTS
741    ${ABSL_DEFAULT_LINKOPTS}
742  DEPS
743    absl::config
744    absl::int128
745    absl::random_internal_fastmath
746    absl::random_internal_iostream_state_saver
747    absl::type_traits
748)
749
750# Internal-only target, do not depend on directly.
751absl_cc_library(
752  NAME
753    random_internal_randen_engine
754  HDRS
755    "internal/randen_engine.h"
756  COPTS
757    ${ABSL_DEFAULT_COPTS}
758  LINKOPTS
759    ${ABSL_DEFAULT_LINKOPTS}
760  DEPS
761    absl::random_internal_iostream_state_saver
762    absl::random_internal_randen
763    absl::raw_logging_internal
764    absl::type_traits
765)
766
767# Internal-only target, do not depend on directly.
768absl_cc_library(
769  NAME
770    random_internal_platform
771  HDRS
772    "internal/randen_traits.h"
773    "internal/platform.h"
774  SRCS
775    "internal/randen_round_keys.cc"
776  COPTS
777    ${ABSL_DEFAULT_COPTS}
778  LINKOPTS
779    ${ABSL_DEFAULT_LINKOPTS}
780  DEPS
781    absl::config
782)
783
784# Internal-only target, do not depend on directly.
785absl_cc_library(
786  NAME
787    random_internal_randen
788  SRCS
789    "internal/randen.cc"
790  HDRS
791    "internal/randen.h"
792  COPTS
793    ${ABSL_DEFAULT_COPTS}
794  LINKOPTS
795    ${ABSL_DEFAULT_LINKOPTS}
796  DEPS
797    absl::random_internal_platform
798    absl::random_internal_randen_hwaes
799    absl::random_internal_randen_slow
800)
801
802# Internal-only target, do not depend on directly.
803absl_cc_library(
804  NAME
805    random_internal_randen_slow
806  SRCS
807    "internal/randen_slow.cc"
808  HDRS
809    "internal/randen_slow.h"
810  COPTS
811    ${ABSL_DEFAULT_COPTS}
812  LINKOPTS
813    ${ABSL_DEFAULT_LINKOPTS}
814  DEPS
815    absl::random_internal_platform
816    absl::config
817)
818
819# Internal-only target, do not depend on directly.
820absl_cc_library(
821  NAME
822    random_internal_randen_hwaes
823  SRCS
824    "internal/randen_detect.cc"
825  HDRS
826    "internal/randen_detect.h"
827    "internal/randen_hwaes.h"
828  COPTS
829    ${ABSL_DEFAULT_COPTS}
830    ${ABSL_RANDOM_RANDEN_COPTS}
831  LINKOPTS
832    ${ABSL_DEFAULT_LINKOPTS}
833  DEPS
834    absl::random_internal_platform
835    absl::random_internal_randen_hwaes_impl
836    absl::config
837)
838
839# Internal-only target, do not depend on directly.
840absl_cc_library(
841  NAME
842    random_internal_randen_hwaes_impl
843  SRCS
844    "internal/randen_hwaes.cc"
845    "internal/randen_hwaes.h"
846  COPTS
847    ${ABSL_DEFAULT_COPTS}
848    ${ABSL_RANDOM_RANDEN_COPTS}
849  LINKOPTS
850    ${ABSL_DEFAULT_LINKOPTS}
851  DEPS
852    absl::random_internal_platform
853    absl::config
854)
855
856# Internal-only target, do not depend on directly.
857absl_cc_library(
858  NAME
859    random_internal_distribution_test_util
860  SRCS
861    "internal/chi_square.cc"
862    "internal/distribution_test_util.cc"
863  HDRS
864    "internal/chi_square.h"
865    "internal/distribution_test_util.h"
866  COPTS
867    ${ABSL_DEFAULT_COPTS}
868  LINKOPTS
869    ${ABSL_DEFAULT_LINKOPTS}
870  DEPS
871    absl::config
872    absl::core_headers
873    absl::raw_logging_internal
874    absl::strings
875    absl::str_format
876    absl::span
877)
878
879# Internal-only target, do not depend on directly.
880absl_cc_test(
881  NAME
882    random_internal_traits_test
883  SRCS
884    "internal/traits_test.cc"
885  COPTS
886    ${ABSL_TEST_COPTS}
887  LINKOPTS
888    ${ABSL_DEFAULT_LINKOPTS}
889  DEPS
890    absl::random_internal_traits
891    gtest_main
892)
893
894# Internal-only target, do not depend on directly.
895absl_cc_test(
896  NAME
897    random_internal_generate_real_test
898  SRCS
899    "internal/generate_real_test.cc"
900  COPTS
901    ${ABSL_TEST_COPTS}
902  LINKOPTS
903    ${ABSL_DEFAULT_LINKOPTS}
904  DEPS
905    absl::bits
906    absl::flags
907    absl::random_internal_generate_real
908    gtest_main
909)
910
911# Internal-only target, do not depend on directly.
912absl_cc_test(
913  NAME
914    random_internal_distribution_test_util_test
915  SRCS
916    "internal/distribution_test_util_test.cc"
917  COPTS
918    ${ABSL_TEST_COPTS}
919  LINKOPTS
920    ${ABSL_DEFAULT_LINKOPTS}
921  DEPS
922    absl::random_internal_distribution_test_util
923    gtest_main
924)
925
926# Internal-only target, do not depend on directly.
927absl_cc_test(
928  NAME
929    random_internal_fastmath_test
930  SRCS
931    "internal/fastmath_test.cc"
932  COPTS
933    ${ABSL_TEST_COPTS}
934  LINKOPTS
935    ${ABSL_DEFAULT_LINKOPTS}
936  DEPS
937    absl::random_internal_fastmath
938    gtest_main
939)
940
941# Internal-only target, do not depend on directly.
942absl_cc_test(
943  NAME
944    random_internal_explicit_seed_seq_test
945  SRCS
946    "internal/explicit_seed_seq_test.cc"
947  COPTS
948    ${ABSL_TEST_COPTS}
949  LINKOPTS
950    ${ABSL_DEFAULT_LINKOPTS}
951  DEPS
952    absl::random_internal_explicit_seed_seq
953    absl::random_seed_sequences
954    gmock
955    gtest_main
956)
957
958# Internal-only target, do not depend on directly.
959absl_cc_test(
960  NAME
961    random_internal_salted_seed_seq_test
962  SRCS
963    "internal/salted_seed_seq_test.cc"
964  COPTS
965    ${ABSL_TEST_COPTS}
966  LINKOPTS
967    ${ABSL_DEFAULT_LINKOPTS}
968  DEPS
969    absl::random_internal_salted_seed_seq
970    gmock
971    gtest_main
972)
973
974# Internal-only target, do not depend on directly.
975absl_cc_test(
976  NAME
977    random_internal_chi_square_test
978  SRCS
979    "internal/chi_square_test.cc"
980  COPTS
981    ${ABSL_TEST_COPTS}
982  LINKOPTS
983    ${ABSL_DEFAULT_LINKOPTS}
984  DEPS
985    absl::core_headers
986    absl::random_internal_distribution_test_util
987    gtest_main
988)
989
990# Internal-only target, do not depend on directly.
991absl_cc_test(
992  NAME
993    random_internal_fast_uniform_bits_test
994  SRCS
995    "internal/fast_uniform_bits_test.cc"
996  COPTS
997    ${ABSL_TEST_COPTS}
998  LINKOPTS
999    ${ABSL_DEFAULT_LINKOPTS}
1000  DEPS
1001    absl::random_internal_fast_uniform_bits
1002    gtest_main
1003)
1004
1005# Internal-only target, do not depend on directly.
1006absl_cc_test(
1007  NAME
1008    random_internal_nonsecure_base_test
1009  SRCS
1010    "internal/nonsecure_base_test.cc"
1011  COPTS
1012    ${ABSL_TEST_COPTS}
1013  LINKOPTS
1014    ${ABSL_DEFAULT_LINKOPTS}
1015  DEPS
1016    absl::random_internal_nonsecure_base
1017    absl::random_random
1018    absl::random_distributions
1019    absl::random_seed_sequences
1020    absl::strings
1021    gtest_main
1022)
1023
1024# Internal-only target, do not depend on directly.
1025absl_cc_test(
1026  NAME
1027    random_internal_seed_material_test
1028  SRCS
1029    "internal/seed_material_test.cc"
1030  COPTS
1031    ${ABSL_TEST_COPTS}
1032  LINKOPTS
1033    ${ABSL_DEFAULT_LINKOPTS}
1034  DEPS
1035    absl::random_internal_seed_material
1036    gmock
1037    gtest_main
1038)
1039
1040# Internal-only target, do not depend on directly.
1041absl_cc_test(
1042  NAME
1043    random_internal_pool_urbg_test
1044  SRCS
1045    "internal/pool_urbg_test.cc"
1046  COPTS
1047    ${ABSL_TEST_COPTS}
1048  LINKOPTS
1049    ${ABSL_DEFAULT_LINKOPTS}
1050  DEPS
1051    absl::random_internal_pool_urbg
1052    absl::span
1053    absl::type_traits
1054    gtest_main
1055)
1056
1057# Internal-only target, do not depend on directly.
1058absl_cc_test(
1059  NAME
1060    random_internal_pcg_engine_test
1061  SRCS
1062    "internal/pcg_engine_test.cc"
1063  COPTS
1064    ${ABSL_TEST_COPTS}
1065  LINKOPTS
1066    ${ABSL_DEFAULT_LINKOPTS}
1067  DEPS
1068    absl::random_internal_explicit_seed_seq
1069    absl::random_internal_pcg_engine
1070    absl::time
1071    gmock
1072    gtest_main
1073)
1074
1075# Internal-only target, do not depend on directly.
1076absl_cc_test(
1077  NAME
1078    random_internal_randen_engine_test
1079  SRCS
1080    "internal/randen_engine_test.cc"
1081  COPTS
1082    ${ABSL_TEST_COPTS}
1083  LINKOPTS
1084    ${ABSL_DEFAULT_LINKOPTS}
1085  DEPS
1086    absl::random_internal_explicit_seed_seq
1087    absl::random_internal_randen_engine
1088    absl::raw_logging_internal
1089    absl::strings
1090    absl::time
1091    gmock
1092    gtest_main
1093)
1094
1095# Internal-only target, do not depend on directly.
1096absl_cc_test(
1097  NAME
1098    random_internal_randen_test
1099  SRCS
1100    "internal/randen_test.cc"
1101  COPTS
1102    ${ABSL_TEST_COPTS}
1103  LINKOPTS
1104    ${ABSL_DEFAULT_LINKOPTS}
1105  DEPS
1106    absl::random_internal_randen
1107    absl::type_traits
1108    gtest_main
1109)
1110
1111# Internal-only target, do not depend on directly.
1112absl_cc_test(
1113  NAME
1114    random_internal_randen_slow_test
1115  SRCS
1116    "internal/randen_slow_test.cc"
1117  COPTS
1118    ${ABSL_TEST_COPTS}
1119  LINKOPTS
1120    ${ABSL_DEFAULT_LINKOPTS}
1121  DEPS
1122    absl::random_internal_randen_slow
1123    gtest_main
1124)
1125
1126# Internal-only target, do not depend on directly.
1127absl_cc_test(
1128  NAME
1129    random_internal_randen_hwaes_test
1130  SRCS
1131    "internal/randen_hwaes_test.cc"
1132  COPTS
1133    ${ABSL_TEST_COPTS}
1134  LINKOPTS
1135    ${ABSL_DEFAULT_LINKOPTS}
1136  DEPS
1137    absl::random_internal_platform
1138    absl::random_internal_randen_hwaes
1139    absl::random_internal_randen_hwaes_impl
1140    absl::raw_logging_internal
1141    absl::str_format
1142    gmock
1143    gtest
1144)
1145
1146# Internal-only target, do not depend on directly.
1147absl_cc_library(
1148  NAME
1149    random_internal_uniform_helper
1150  HDRS
1151    "internal/uniform_helper.h"
1152  COPTS
1153    ${ABSL_DEFAULT_COPTS}
1154  LINKOPTS
1155    ${ABSL_DEFAULT_LINKOPTS}
1156  DEPS
1157    absl::config
1158    absl::random_internal_traits
1159    absl::type_traits
1160)
1161
1162# Internal-only target, do not depend on directly.
1163absl_cc_test(
1164  NAME
1165    random_internal_uniform_helper_test
1166  SRCS
1167    "internal/uniform_helper_test.cc"
1168  COPTS
1169    ${ABSL_TEST_COPTS}
1170  LINKOPTS
1171    ${ABSL_DEFAULT_LINKOPTS}
1172  DEPS
1173    absl::random_internal_uniform_helper
1174    gtest_main
1175)
1176
1177# Internal-only target, do not depend on directly.
1178absl_cc_test(
1179  NAME
1180    random_internal_iostream_state_saver_test
1181  SRCS
1182    "internal/iostream_state_saver_test.cc"
1183  COPTS
1184    ${ABSL_TEST_COPTS}
1185  LINKOPTS
1186    ${ABSL_DEFAULT_LINKOPTS}
1187  DEPS
1188    absl::random_internal_iostream_state_saver
1189    gtest_main
1190)
1191
1192# Internal-only target, do not depend on directly.
1193absl_cc_test(
1194  NAME
1195    random_internal_wide_multiply_test
1196  SRCS
1197      internal/wide_multiply_test.cc
1198  COPTS
1199    ${ABSL_TEST_COPTS}
1200  LINKOPTS
1201    ${ABSL_DEFAULT_LINKOPTS}
1202  DEPS
1203    absl::random_internal_wide_multiply
1204    absl::bits
1205    absl::int128
1206    gtest_main
1207)
1208