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