From f5d654dc20313cdd9673326f1daa6f3c55465a7d Mon Sep 17 00:00:00 2001 From: CodeSandwich Date: Tue, 11 Jun 2019 15:43:54 +0200 Subject: [PATCH] WIP --- chain-impl-mockchain/src/ledger.rs | 20 ++++++++++++++++++++ chain-impl-mockchain/src/message/config.rs | 19 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/chain-impl-mockchain/src/ledger.rs b/chain-impl-mockchain/src/ledger.rs index d3b9e5160..ccab5fb62 100644 --- a/chain-impl-mockchain/src/ledger.rs +++ b/chain-impl-mockchain/src/ledger.rs @@ -828,3 +828,23 @@ fn input_account_verify( } } } + +#[cfg(test)] +pub mod test { + use super::*; + use crate::message::ConfigParams; + use quickcheck::{Arbitrary, Gen}; + use quickcheck_macros::quickcheck; + + #[quickcheck] + fn test_of_test(init_message: ArbitraryInitMessage) {} + + #[derive(Clone, Debug)] + struct ArbitraryInitMessage(Message); + + impl Arbitrary for ArbitraryInitMessage { + fn arbitrary(gen: &mut G) -> Self { + ArbitraryInitMessage(Message::Initial(ConfigParams::arbitrary_all_params(gen))) + } + } +} diff --git a/chain-impl-mockchain/src/message/config.rs b/chain-impl-mockchain/src/message/config.rs index 92643bce2..5d124672a 100644 --- a/chain-impl-mockchain/src/message/config.rs +++ b/chain-impl-mockchain/src/message/config.rs @@ -70,4 +70,23 @@ mod test { ) } } + + impl ConfigParams { + pub fn arbitrary_all_params(g: &mut impl Gen) -> Self { + ConfigParams(vec![ + ConfigParam::Block0Date(Arbitrary::arbitrary(g)), + ConfigParam::Discrimination(Arbitrary::arbitrary(g)), + ConfigParam::ConsensusVersion(Arbitrary::arbitrary(g)), + ConfigParam::SlotsPerEpoch(Arbitrary::arbitrary(g)), + ConfigParam::SlotDuration(Arbitrary::arbitrary(g)), + ConfigParam::ConsensusGenesisPraosActiveSlotsCoeff(Arbitrary::arbitrary(g)), + ConfigParam::MaxNumberOfTransactionsPerBlock(Arbitrary::arbitrary(g)), + ConfigParam::BftSlotsRatio(Arbitrary::arbitrary(g)), + ConfigParam::AddBftLeader(Arbitrary::arbitrary(g)), + ConfigParam::RemoveBftLeader(Arbitrary::arbitrary(g)), + ConfigParam::LinearFee(Arbitrary::arbitrary(g)), + ConfigParam::ProposalExpiration(Arbitrary::arbitrary(g)), + ]) + } + } }