zebra_chain/parameters/
arbitrary.rs1use 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 nu5_branch_id_strategy() -> BoxedStrategy<NetworkUpgrade> {
24 prop_oneof![
25 Just(NetworkUpgrade::Nu5),
26 ]
28 .boxed()
29 }
30
31 pub fn reduced_branch_id_strategy() -> BoxedStrategy<NetworkUpgrade> {
33 prop_oneof![
36 Just(NetworkUpgrade::Overwinter),
37 Just(NetworkUpgrade::Sapling),
38 Just(NetworkUpgrade::Blossom),
39 Just(NetworkUpgrade::Heartwood),
40 ]
41 .boxed()
42 }
43}
44
45impl Arbitrary for Network {
46 type Parameters = ();
47
48 fn arbitrary_with(_args: ()) -> Self::Strategy {
49 prop_oneof![Just(Self::Mainnet), Just(Self::new_default_testnet())].boxed()
50 }
51
52 type Strategy = BoxedStrategy<Self>;
53}