} if needle >= end { j += 1; } else { i += 1; } } Ok(results) } #[cfg(test)] mod tests { use {super::*, std::fmt::Write}; #[test] fn identify_no_rare_sats() { assert_eq!( rare_sats(vec![( outpoint(1), vec![(51 * COIN_VALUE, 100 * COIN_VALUE), (1234, 5678)], )]), Vec::new() ) } #[test] fn identify_one_rare_sat() { assert_eq!( rare_sats(vec![( outpoint(1), vec![(10, 80), (50 * COIN_VALUE, 100 * COIN_VALUE)], )]), vec![(outpoint(1), Sat(50 * COIN_VALUE), 70, Rarity::Uncommon)] ) } #[test] fn identify_two_rare_sats() { assert_eq!( rare_sats(vec![( outpoint(1), vec![(0, 100), (1050000000000000, 1150000000000000)], )]), vec![ (outpoint(1), Sat(0), 0, Rarity::Mythic), (outpoint(1), Sat(1050000000000000), 100, Rarity::Epic) ] ) } #[test] fn identify_rare_sats_in_different_outpoints() { assert_eq!( rare_sats(vec![