recipient(), [change(0), change(1)], FeeRate::try_from(1.0).unwrap(), Target::Value(Amount::from_sat(10_000)), ) .select_outgoing() .unwrap() .align_outgoing() .pad_alignment_output() .unwrap(); utxos.remove(5); utxos.remove(2); utxos.remove(1); utxos.remove(0); assert_eq!( tx_builder.utxos, utxos.iter().map(|(outpoint, _ranges)| *outpoint).collect() ); assert_eq!( tx_builder.inputs, [outpoint(4), outpoint(3), outpoint(2), outpoint(1)] ); // padding inputs are inserted at the start assert_eq!( tx_builder.outputs, [ (change(1), Amount::from_sat(101 + 104 + 105 + 1)), (recipient(), Amount::from_sat(19_999)) ] ) } fn select_cardinal_utxo_prefer_under_helper( target_value: Amount, prefer_under: bool, expected_value: Amount, ) { let utxos = vec![ (outpoint(4), Amount::from_sat(101)), (outpoint(1), Amount::from_sat(20_000)), (outpoint(2), Amount::from_sat(105)),