From 30f2fec61b9ad5da26d8156e38f94003f5642b3d Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Fri, 15 May 2026 08:38:47 -0700 Subject: [PATCH] make test --- src/lib.rs | 3 +++ src/test.rs | 30 ++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/test.rs diff --git a/src/lib.rs b/src/lib.rs index 0b4d6eb..24270d0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,9 @@ pub mod card_game; pub mod klondike; +#[cfg(test)] +mod test; + pub type Rng = rand::rngs::ThreadRng; // test readme diff --git a/src/test.rs b/src/test.rs new file mode 100644 index 0000000..d05b442 --- /dev/null +++ b/src/test.rs @@ -0,0 +1,30 @@ +#[test] +fn test_klondike() { + use crate::Rng; + use crate::card_game::{Game, Session}; + use crate::klondike::Klondike; + + // create game session + let seed = Rng::default(); + let game = Klondike::new(seed.clone(), Default::default()); + let mut session = Session::new(seed, game); + + // is winnable + let is_winnable = session.is_winnable().is_some(); + + // play game + while let Some(instruction) = session.possible_instructions().next() { + session.process_instruction(instruction); + } + + // did win + let is_win = session.is_win(); + + // print session history + for (i, instruction) in session.history().iter().enumerate() { + println!("move {i} = {instruction:?}"); + } + + println!("is_winnable = {is_winnable}"); + println!("is_win = {is_win}"); +}