summaryrefslogtreecommitdiffstats
path: root/CLI/rust/src/game_of_life
diff options
context:
space:
mode:
Diffstat (limited to 'CLI/rust/src/game_of_life')
-rw-r--r--CLI/rust/src/game_of_life/simulation/plane.rs74
-rw-r--r--CLI/rust/src/game_of_life/simulation/universe.rs96
2 files changed, 81 insertions, 89 deletions
diff --git a/CLI/rust/src/game_of_life/simulation/plane.rs b/CLI/rust/src/game_of_life/simulation/plane.rs
index fad9398..76d91fb 100644
--- a/CLI/rust/src/game_of_life/simulation/plane.rs
+++ b/CLI/rust/src/game_of_life/simulation/plane.rs
@@ -16,6 +16,24 @@ impl Index<isize> for Plane {
}
}
+#[cfg(test)]
+mod index {
+ use super::*;
+
+ #[test]
+ fn get_element() {
+ let p = Plane(vec![false, false, true, false, false]);
+ assert_eq!(p[0], false);
+ assert_eq!(p[1], false);
+ assert_eq!(p[3], false);
+ assert_eq!(p[4], false);
+
+ assert_eq!(p[-3], true);
+ assert_eq!(p[2], true);
+ assert_eq!(p[7], true);
+ }
+}
+
impl IndexMut<isize> for Plane {
fn index_mut(&mut self, idx: isize) -> &mut Self::Output {
let len = self.0.len() as isize;
@@ -24,49 +42,27 @@ impl IndexMut<isize> for Plane {
}
#[cfg(test)]
-mod plane {
+mod index_mut {
use super::*;
- mod index {
- use super::*;
-
- #[test]
- fn get_element() {
- let p = Plane(vec![false, false, true, false, false]);
- assert_eq!(p[0], false);
- assert_eq!(p[1], false);
- assert_eq!(p[3], false);
- assert_eq!(p[4], false);
-
- assert_eq!(p[-3], true);
- assert_eq!(p[2], true);
- assert_eq!(p[7], true);
- }
+ #[test]
+ fn set_negative_index_element() {
+ let mut p = Plane(vec![false, false, false, false, false]);
+ p[-3] = true;
+ assert_eq!(p, Plane(vec![false, false, true, false, false]));
}
- #[cfg(test)]
- mod index_mut {
- use super::*;
-
- #[test]
- fn set_negative_index_element() {
- let mut p = Plane(vec![false, false, false, false, false]);
- p[-3] = true;
- assert_eq!(p, Plane(vec![false, false, true, false, false]));
- }
-
- #[test]
- fn set_element() {
- let mut p = Plane(vec![false, false, false, false, false]);
- p[2] = true;
- assert_eq!(p, Plane(vec![false, false, true, false, false]));
- }
+ #[test]
+ fn set_element() {
+ let mut p = Plane(vec![false, false, false, false, false]);
+ p[2] = true;
+ assert_eq!(p, Plane(vec![false, false, true, false, false]));
+ }
- #[test]
- fn set_out_of_bound_element() {
- let mut p = Plane(vec![false, false, false, false, false]);
- p[7] = true;
- assert_eq!(p, Plane(vec![false, false, true, false, false]));
- }
+ #[test]
+ fn set_out_of_bound_element() {
+ let mut p = Plane(vec![false, false, false, false, false]);
+ p[7] = true;
+ assert_eq!(p, Plane(vec![false, false, true, false, false]));
}
}
diff --git a/CLI/rust/src/game_of_life/simulation/universe.rs b/CLI/rust/src/game_of_life/simulation/universe.rs
index a7a464c..782e611 100644
--- a/CLI/rust/src/game_of_life/simulation/universe.rs
+++ b/CLI/rust/src/game_of_life/simulation/universe.rs
@@ -20,59 +20,55 @@ impl Index<isize> for Universe {
}
#[cfg(test)]
-mod universe {
+mod index {
use super::*;
- mod index {
- use super::*;
+ #[test]
+ fn get_element() {
+ let opts = Opts {
+ seed: 1337,
+ input: None,
+ width: 13,
+ height: 13,
+ live_cell: 'L',
+ dead_cell: 'D',
+ delay: 13,
+ };
+ let u = Universe {
+ opts,
+ current: vec![
+ Plane(vec![false; 5]),
+ Plane(vec![false, false, true, false, false]),
+ Plane(vec![false; 5]),
+ ],
+ future: vec![Plane(vec![])],
+ };
- #[test]
- fn get_element() {
- let opts = Opts {
- seed: 1337,
- input: None,
- width: 13,
- height: 13,
- live_cell: 'L',
- dead_cell: 'D',
- delay: 13,
- };
- let u = Universe {
- opts,
- current: vec![
- Plane(vec![false; 5]),
- Plane(vec![false, false, true, false, false]),
- Plane(vec![false; 5]),
- ],
- future: vec![Plane(vec![])],
- };
+ assert_eq!(u[-3][0], false);
+ assert_eq!(u[-3][1], false);
+ assert_eq!(u[-3][3], false);
+ assert_eq!(u[-3][4], false);
+ assert_eq!(u[0][0], false);
+ assert_eq!(u[0][1], false);
+ assert_eq!(u[0][3], false);
+ assert_eq!(u[0][4], false);
+ assert_eq!(u[2][0], false);
+ assert_eq!(u[2][1], false);
+ assert_eq!(u[2][3], false);
+ assert_eq!(u[2][4], false);
+ assert_eq!(u[5][0], false);
+ assert_eq!(u[5][1], false);
+ assert_eq!(u[5][3], false);
+ assert_eq!(u[5][4], false);
- assert_eq!(u[-3][0], false);
- assert_eq!(u[-3][1], false);
- assert_eq!(u[-3][3], false);
- assert_eq!(u[-3][4], false);
- assert_eq!(u[0][0], false);
- assert_eq!(u[0][1], false);
- assert_eq!(u[0][3], false);
- assert_eq!(u[0][4], false);
- assert_eq!(u[2][0], false);
- assert_eq!(u[2][1], false);
- assert_eq!(u[2][3], false);
- assert_eq!(u[2][4], false);
- assert_eq!(u[5][0], false);
- assert_eq!(u[5][1], false);
- assert_eq!(u[5][3], false);
- assert_eq!(u[5][4], false);
-
- assert_eq!(u[-2][-3], true);
- assert_eq!(u[-2][2], true);
- assert_eq!(u[-2][7], true);
- assert_eq!(u[1][-3], true);
- assert_eq!(u[1][2], true);
- assert_eq!(u[1][7], true);
- assert_eq!(u[4][-3], true);
- assert_eq!(u[4][2], true);
- assert_eq!(u[4][7], true);
- }
+ assert_eq!(u[-2][-3], true);
+ assert_eq!(u[-2][2], true);
+ assert_eq!(u[-2][7], true);
+ assert_eq!(u[1][-3], true);
+ assert_eq!(u[1][2], true);
+ assert_eq!(u[1][7], true);
+ assert_eq!(u[4][-3], true);
+ assert_eq!(u[4][2], true);
+ assert_eq!(u[4][7], true);
}
}