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