); } #[test] fn change_addresses_must_be_unique() { pretty_assert_eq!( TransactionBuilder::new( satpoint(1, 0), BTreeMap::new(), vec![(outpoint(1), Amount::from_sat(1000))] .into_iter() .collect(), BTreeSet::new(), recipient(), [change(0), change(0)], FeeRate::try_from(0.0).unwrap(), Target::Value(Amount::from_sat(1000)) ) .build_transaction(), Err(Error::DuplicateAddress(change(0))) ); } #[test] fn output_over_value_because_fees_prevent_excess_value_stripping() { pretty_assert_eq!( TransactionBuilder::new( satpoint(1, 0), BTreeMap::new(), vec![(outpoint(1), Amount::from_sat(2000))] .into_iter() .collect(), BTreeSet::new(), recipient(), [change(0), change(1)], FeeRate::try_from(2.0).unwrap(), Target::Value(Amount::from_sat(1500)) ) .build_transaction(), Ok(Transaction {