diff options
Diffstat (limited to 'CLI/rust/src/game_of_life/simulation')
| -rw-r--r-- | CLI/rust/src/game_of_life/simulation/universe.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/CLI/rust/src/game_of_life/simulation/universe.rs b/CLI/rust/src/game_of_life/simulation/universe.rs index 4dfde92..69d8f67 100644 --- a/CLI/rust/src/game_of_life/simulation/universe.rs +++ b/CLI/rust/src/game_of_life/simulation/universe.rs @@ -295,4 +295,42 @@ mod evolve { } ) } + + #[test] + fn toad() { + let universe = Universe { + opts: opts(), + future: Plane(vec![Plane(vec![false; 6]); 6]), + current: Plane(vec![ + Plane(vec![false, false, false, false, false, false]), + Plane(vec![false, false, false, false, false, false]), + Plane(vec![false, false, true, true, true, false]), + Plane(vec![false, true, true, true, false, false]), + Plane(vec![false, false, false, false, false, false]), + Plane(vec![false, false, false, false, false, false]), + ]), + }; + assert_eq!( + universe.evolve(), + Universe { + opts: opts(), + future: Plane(vec![ + Plane(vec![false, false, false, false, false, false]), + Plane(vec![false, false, false, true, false, false]), + Plane(vec![false, true, false, false, true, false]), + Plane(vec![false, true, false, false, true, false]), + Plane(vec![false, false, true, false, false, false]), + Plane(vec![false, false, false, false, false, false]), + ]), + current: Plane(vec![ + Plane(vec![false, false, false, false, false, false]), + Plane(vec![false, false, false, true, false, false]), + Plane(vec![false, true, false, false, true, false]), + Plane(vec![false, true, false, false, true, false]), + Plane(vec![false, false, true, false, false, false]), + Plane(vec![false, false, false, false, false, false]), + ]), + } + ) + } } |
