Re-organise types::test_utils dir
This commit is contained in:
parent
f8ec1e0cfa
commit
4bf2490163
@ -1,55 +1,3 @@
|
|||||||
use rand::RngCore;
|
mod test_random;
|
||||||
|
|
||||||
pub use rand::{prng::XorShiftRng, SeedableRng};
|
pub use test_random::TestRandom;
|
||||||
|
|
||||||
pub mod address;
|
|
||||||
pub mod aggregate_signature;
|
|
||||||
pub mod bitfield;
|
|
||||||
pub mod hash256;
|
|
||||||
pub mod public_key;
|
|
||||||
pub mod secret_key;
|
|
||||||
pub mod signature;
|
|
||||||
|
|
||||||
pub trait TestRandom<T>
|
|
||||||
where
|
|
||||||
T: RngCore,
|
|
||||||
{
|
|
||||||
fn random_for_test(rng: &mut T) -> Self;
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T: RngCore> TestRandom<T> for bool {
|
|
||||||
fn random_for_test(rng: &mut T) -> Self {
|
|
||||||
(rng.next_u32() % 2) == 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T: RngCore> TestRandom<T> for u64 {
|
|
||||||
fn random_for_test(rng: &mut T) -> Self {
|
|
||||||
rng.next_u64()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T: RngCore> TestRandom<T> for u32 {
|
|
||||||
fn random_for_test(rng: &mut T) -> Self {
|
|
||||||
rng.next_u32()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T: RngCore> TestRandom<T> for usize {
|
|
||||||
fn random_for_test(rng: &mut T) -> Self {
|
|
||||||
rng.next_u32() as usize
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T: RngCore, U> TestRandom<T> for Vec<U>
|
|
||||||
where
|
|
||||||
U: TestRandom<T>,
|
|
||||||
{
|
|
||||||
fn random_for_test(rng: &mut T) -> Self {
|
|
||||||
vec![
|
|
||||||
<U>::random_for_test(rng),
|
|
||||||
<U>::random_for_test(rng),
|
|
||||||
<U>::random_for_test(rng),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
55
eth2/types/src/test_utils/test_random.rs
Normal file
55
eth2/types/src/test_utils/test_random.rs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
use rand::RngCore;
|
||||||
|
|
||||||
|
pub use rand::{prng::XorShiftRng, SeedableRng};
|
||||||
|
|
||||||
|
mod address;
|
||||||
|
mod aggregate_signature;
|
||||||
|
mod bitfield;
|
||||||
|
mod hash256;
|
||||||
|
mod public_key;
|
||||||
|
mod secret_key;
|
||||||
|
mod signature;
|
||||||
|
|
||||||
|
pub trait TestRandom<T>
|
||||||
|
where
|
||||||
|
T: RngCore,
|
||||||
|
{
|
||||||
|
fn random_for_test(rng: &mut T) -> Self;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: RngCore> TestRandom<T> for bool {
|
||||||
|
fn random_for_test(rng: &mut T) -> Self {
|
||||||
|
(rng.next_u32() % 2) == 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: RngCore> TestRandom<T> for u64 {
|
||||||
|
fn random_for_test(rng: &mut T) -> Self {
|
||||||
|
rng.next_u64()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: RngCore> TestRandom<T> for u32 {
|
||||||
|
fn random_for_test(rng: &mut T) -> Self {
|
||||||
|
rng.next_u32()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: RngCore> TestRandom<T> for usize {
|
||||||
|
fn random_for_test(rng: &mut T) -> Self {
|
||||||
|
rng.next_u32() as usize
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: RngCore, U> TestRandom<T> for Vec<U>
|
||||||
|
where
|
||||||
|
U: TestRandom<T>,
|
||||||
|
{
|
||||||
|
fn random_for_test(rng: &mut T) -> Self {
|
||||||
|
vec![
|
||||||
|
<U>::random_for_test(rng),
|
||||||
|
<U>::random_for_test(rng),
|
||||||
|
<U>::random_for_test(rng),
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
use super::super::Bitfield;
|
|
||||||
use super::TestRandom;
|
use super::TestRandom;
|
||||||
|
use crate::Bitfield;
|
||||||
use rand::RngCore;
|
use rand::RngCore;
|
||||||
|
|
||||||
impl<T: RngCore> TestRandom<T> for Bitfield {
|
impl<T: RngCore> TestRandom<T> for Bitfield {
|
Loading…
Reference in New Issue
Block a user