zebra_chain/parameters/
arbitrary.rs
1use proptest::prelude::*;
4
5use super::{Network, NetworkUpgrade};
6
7impl NetworkUpgrade {
8 pub fn branch_id_strategy() -> BoxedStrategy<NetworkUpgrade> {
10 prop_oneof![
11 Just(NetworkUpgrade::Overwinter),
12 Just(NetworkUpgrade::Sapling),
13 Just(NetworkUpgrade::Blossom),
14 Just(NetworkUpgrade::Heartwood),
15 Just(NetworkUpgrade::Canopy),
16 Just(NetworkUpgrade::Nu5),
17 ]
19 .boxed()
20 }
21
22 pub fn reduced_branch_id_strategy() -> BoxedStrategy<NetworkUpgrade> {
24 prop_oneof![
27 Just(NetworkUpgrade::Overwinter),
28 Just(NetworkUpgrade::Sapling),
29 Just(NetworkUpgrade::Blossom),
30 Just(NetworkUpgrade::Heartwood),
31 ]
32 .boxed()
33 }
34}
35
36impl Arbitrary for Network {
37 type Parameters = ();
38
39 fn arbitrary_with(_args: ()) -> Self::Strategy {
40 prop_oneof![Just(Self::Mainnet), Just(Self::new_default_testnet())].boxed()
41 }
42
43 type Strategy = BoxedStrategy<Self>;
44}