Properly condition generators on flags.

This commit is contained in:
Kris Nuttycombe 2021-05-05 17:36:05 -06:00
parent 71736433d0
commit bf4532fd7d
1 changed files with 28 additions and 24 deletions

View File

@ -425,20 +425,22 @@ pub mod testing {
n_actions: usize,
flags: Flags,
) -> impl Strategy<Value = (ValueSum, Action<()>)> {
arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64).prop_flat_map(
let spend_value_gen = if flags.spends_enabled {
Strategy::boxed(arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64))
} else {
Strategy::boxed(Just(NoteValue::zero()))
};
spend_value_gen.prop_flat_map(
move |spend_value| {
arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64).prop_flat_map(
let output_value_gen = if flags.outputs_enabled {
Strategy::boxed(arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64))
} else {
Strategy::boxed(Just(NoteValue::zero()))
};
output_value_gen.prop_flat_map(
move |output_value| {
let spend_value = if flags.spends_enabled {
spend_value
} else {
NoteValue::zero()
};
let output_value = if flags.outputs_enabled {
output_value
} else {
NoteValue::zero()
};
arb_unauthorized_action(spend_value, output_value)
.prop_map(move |a| ((spend_value - output_value).unwrap(), a))
},
@ -487,20 +489,22 @@ pub mod testing {
n_actions: usize,
flags: Flags,
) -> impl Strategy<Value = (ValueSum, Action<Signature<SpendAuth>>)> {
arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64).prop_flat_map(
let spend_value_gen = if flags.spends_enabled {
Strategy::boxed(arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64))
} else {
Strategy::boxed(Just(NoteValue::zero()))
};
spend_value_gen.prop_flat_map(
move |spend_value| {
arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64).prop_flat_map(
let output_value_gen = if flags.outputs_enabled {
Strategy::boxed(arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64))
} else {
Strategy::boxed(Just(NoteValue::zero()))
};
output_value_gen.prop_flat_map(
move |output_value| {
let spend_value = if flags.spends_enabled {
spend_value
} else {
NoteValue::zero()
};
let output_value = if flags.outputs_enabled {
output_value
} else {
NoteValue::zero()
};
arb_action(spend_value, output_value)
.prop_map(move |a| ((spend_value - output_value).unwrap(), a))
},