Rarity::Epic ); assert_eq!( Sat(50 * COIN_VALUE * u64::from(SUBSIDY_HALVING_INTERVAL) + 1).rarity(), Rarity::Common ); assert_eq!(Sat(2067187500000000 - 1).rarity(), Rarity::Common); assert_eq!(Sat(2067187500000000).rarity(), Rarity::Legendary); assert_eq!(Sat(2067187500000000 + 1).rarity(), Rarity::Common); } #[test] fn from_str_and_deserialize_ok() { #[track_caller] fn case(s: &str, expected: Rarity) { let actual = s.parse::().unwrap(); assert_eq!(actual, expected); let round_trip = actual.to_string().parse::().unwrap(); assert_eq!(round_trip, expected); let serialized = serde_json::to_string(&expected).unwrap(); assert!(serde_json::from_str::(&serialized).is_ok()); } case("common", Rarity::Common); case("uncommon", Rarity::Uncommon); case("rare", Rarity::Rare); case("epic", Rarity::Epic); case("legendary", Rarity::Legendary); case("mythic", Rarity::Mythic); }