3 use generate_random::GenerateRandom;
5 fn rng() -> impl rand::Rng {
7 rand_chacha::ChaCha8Rng::from(rand_chacha::ChaCha8Core::from_seed([37; 32]))
10 fn repeat<T>(count: usize, f: impl FnMut() -> T) -> Vec<T> {
11 std::iter::repeat_with(f).take(count).collect()
14 #[derive(GenerateRandom, PartialEq, Eq, Debug)]
21 #[derive(GenerateRandom, PartialEq, Eq, Debug)]
22 enum TestEnumUnnamed {
28 #[derive(GenerateRandom, PartialEq, Eq, Debug)]
35 #[derive(GenerateRandom, PartialEq, Eq, Debug)]
36 struct TestStructUnit;
38 #[derive(GenerateRandom, PartialEq, Eq, Debug)]
39 struct TestStructUnnamed(u8, i32);
41 #[derive(GenerateRandom, PartialEq, Eq, Debug)]
42 struct TestStructNamed {
53 || TestEnumUnit::generate_random(&mut rng),
66 fn test_enum_unnamed() {
71 || TestEnumUnnamed::generate_random(&mut rng),
74 TestEnumUnnamed::Right(false),
75 TestEnumUnnamed::Left(142),
76 TestEnumUnnamed::Right(false),
77 TestEnumUnnamed::Right(true),
78 TestEnumUnnamed::Right(false),
79 TestEnumUnnamed::Left(19),
84 fn test_enum_named() {
89 || TestEnumNamed::generate_random(&mut rng),
92 TestEnumNamed::Right { y: false },
93 TestEnumNamed::Left { x: 142 },
94 TestEnumNamed::Right { y: false },
95 TestEnumNamed::Right { y: true },
96 TestEnumNamed::Right { y: false },
97 TestEnumNamed::Left { x: 19 },
102 fn test_struct_unit() {
105 TestStructUnit::generate_random(&mut rng),
111 fn test_struct_unnamed() {
114 TestStructUnnamed::generate_random(&mut rng),
115 TestStructUnnamed(55, -896102575)
120 fn test_struct_named() {
123 TestStructNamed::generate_random(&mut rng),