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