+ use WithOrWithoutJokers::*;
+ let d = deck(WithoutJokers);
+ let rank_sum: u32 = d
+ .iter()
+ .map(Card::rank)
+ .flatten()
+ .map(|r| u32::from(r.value()))
+ .sum();
+ assert_eq!(rank_sum, 364);
+ let _dj = deck(WithJokers);
+ }
+
+ #[test]
+ fn test_library() {
+ let mut lib = Library::new(vec![Card(7)]);
+ let mut dis = Discard::default();
+ dis.discard(Card(8));
+ dis.discard(Card(9));
+ assert_eq!(lib.draw(&mut dis), Some(Card(7)));
+ assert_eq!(lib.draw(&mut dis), Some(Card(8)));
+ assert_eq!(lib.draw(&mut dis), None);