1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#![allow(dead_code)] #[macro_use] extern crate lazy_static; mod location; mod piece; mod card; mod cards; mod turn; mod board; mod game; #[cfg(test)] mod tests { use game::Game; use card::*; use turn::*; use location::*; #[test] fn test_short_game() { fn take_first_card(g: &Game) -> Card { *g.current_player_cards().iter().take(1).last().unwrap() } let mut g = Game::new([Card::new(4), Card::new(10), Card::new(10), Card::new(12), Card::new(13)]); assert!(!g.is_over()); let fc = take_first_card(&g); g = g.after(Move::new(g.turn, Point::new(2, 4), Point::new(2, 3), fc)); assert!(!g.is_over()); let fc = take_first_card(&g); g = g.after(Move::new(g.turn, Point::new(2, 0), Point::new(2, 1), fc)); assert!(!g.is_over()); let fc = take_first_card(&g); g = g.after(Move::new(g.turn, Point::new(2, 3), Point::new(2, 2), fc)); assert!(!g.is_over()); let fc = take_first_card(&g); g = g.after(Move::new(g.turn, Point::new(2, 1), Point::new(2, 2), fc)); assert!(g.is_over()); } }