62 lines
1.5 KiB
Rust
62 lines
1.5 KiB
Rust
use mossfets_game_of_life::game::Game;
|
|
#[test]
|
|
fn single_cell_dies () {
|
|
let mut game: Game = Game::new();
|
|
game.flip_state((0, 0));
|
|
game.advance_board();
|
|
assert!(!game.get_state((0,0)));
|
|
}
|
|
#[test]
|
|
fn advance_r_pentomino () {
|
|
let mut game: Game = Game::new();
|
|
game.flip_state((0, 0));
|
|
game.flip_state((-1, 0));
|
|
game.flip_state((0, -1));
|
|
game.flip_state((0, 1));
|
|
game.flip_state((1, 1));
|
|
game.advance_board();
|
|
|
|
assert!(game.get_state((0, -1)));
|
|
assert!(game.get_state((-1, -1)));
|
|
assert!(game.get_state((-1, 0)));
|
|
assert!(game.get_state((-1, 1)));
|
|
assert!(game.get_state((0, 1)));
|
|
assert!(game.get_state((1, 1)));
|
|
assert!(!game.get_state((0, 0)));
|
|
}
|
|
|
|
#[test]
|
|
fn iter_for() {
|
|
let mut game = Game::new();
|
|
game.flip_state((0, 0));
|
|
game.flip_state((-1, 0));
|
|
game.flip_state((0, -1));
|
|
game.flip_state((0, 1));
|
|
game.flip_state((1, 1));
|
|
game.advance_board();
|
|
|
|
|
|
for (i, _) in game.enumerate().take(10) {
|
|
println!("Advancing: {i}");
|
|
}
|
|
assert!(true);
|
|
}
|
|
|
|
#[test]
|
|
fn advance_revert_r_pentomino () {
|
|
let mut game: Game = Game::new();
|
|
game.flip_state((0, 0));
|
|
game.flip_state((-1, 0));
|
|
game.flip_state((0, -1));
|
|
game.flip_state((0, 1));
|
|
game.flip_state((1, 1));
|
|
game.advance_board();
|
|
assert!(game.revert_board());
|
|
assert!(game.get_state((0, 0)));
|
|
assert!(game.get_state((-1, 0)));
|
|
assert!(game.get_state((0, -1)));
|
|
assert!(game.get_state((0, 1)));
|
|
assert!(game.get_state((1, 1)));
|
|
}
|
|
|