mirror of
https://github.com/neogeek23/Life.git
synced 2026-02-04 02:58:17 +00:00
This is this starting of the layout of Conway's Life game. I'm trying to make it so that having different states is as easy as just adding them to State.cs and that any number of dimensions should be handled quickly. Visualizing higher dimensional life games might be tricky, but this should be able to determine it.
173 lines
8.0 KiB
C#
173 lines
8.0 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace N_Space {
|
|
public class Location_Test {
|
|
public void CreateLocationTest() {
|
|
Location locationA = new Location(State.Dark, State.Light, new int[]{2,2,2}, 5);
|
|
|
|
if (locationA == null) {
|
|
throw new System.ArgumentException("Test Failed: Location created cannot be null.");
|
|
}
|
|
}
|
|
|
|
public void GetNeighborhoodCoordinateTest() {
|
|
Location locationA = new Location(State.Dark, State.Light, new int[] { 2, 2 }, 5);
|
|
List<int[]> testResultA = new List<int[]>();
|
|
int[] testResultArrayA;
|
|
|
|
testResultArrayA = new int[] { 1, 1 };
|
|
testResultA.Add(testResultArrayA);
|
|
testResultArrayA = new int[] { 1, 2 };
|
|
testResultA.Add(testResultArrayA);
|
|
testResultArrayA = new int[] { 1, 3 };
|
|
testResultA.Add(testResultArrayA);
|
|
testResultArrayA = new int[] { 2, 1 };
|
|
testResultA.Add(testResultArrayA);
|
|
testResultArrayA = new int[] { 2, 3 };
|
|
testResultA.Add(testResultArrayA);
|
|
testResultArrayA = new int[] { 3, 1 };
|
|
testResultA.Add(testResultArrayA);
|
|
testResultArrayA = new int[] { 3, 2 };
|
|
testResultA.Add(testResultArrayA);
|
|
testResultArrayA = new int[] { 3, 3 };
|
|
testResultA.Add(testResultArrayA);
|
|
|
|
if (!locationA.GetNeighborCoodrinates().Equals(testResultA)) {
|
|
throw new System.ArgumentException("Test Failed: 2D Location neighbors do not match known neighbors away from edges.");
|
|
}
|
|
|
|
Location locationB = new Location(State.Dark, State.Light, new int[] { 0, 1 }, 5);
|
|
List<int[]> testResultB = new List<int[]>();
|
|
int[] testResultArrayB;
|
|
|
|
testResultArrayB = new int[] { 0, 0 };
|
|
testResultB.Add(testResultArrayB);
|
|
testResultArrayB = new int[] { 0, 2 };
|
|
testResultB.Add(testResultArrayB);
|
|
testResultArrayB = new int[] { 1, 0 };
|
|
testResultB.Add(testResultArrayB);
|
|
testResultArrayB = new int[] { 1, 1 };
|
|
testResultB.Add(testResultArrayB);
|
|
testResultArrayB = new int[] { 1, 2 };
|
|
testResultB.Add(testResultArrayB);
|
|
|
|
if (!locationB.GetNeighborCoodrinates().Equals(testResultB)) {
|
|
throw new System.ArgumentException("Test Failed: 2D Location neighbors do not match known neighbors near small edges.");
|
|
}
|
|
|
|
Location locationC = new Location(State.Dark, State.Light, new int[] { 4, 5 }, 5);
|
|
List<int[]> testResultC = new List<int[]>();
|
|
int[] testResultArrayC;
|
|
|
|
testResultArrayC = new int[] { 3, 4 };
|
|
testResultC.Add(testResultArrayC);
|
|
testResultArrayC = new int[] { 3, 5 };
|
|
testResultC.Add(testResultArrayC);
|
|
testResultArrayC = new int[] { 4, 4 };
|
|
testResultC.Add(testResultArrayC);
|
|
testResultArrayC = new int[] { 5, 4 };
|
|
testResultC.Add(testResultArrayC);
|
|
testResultArrayC = new int[] { 5, 5 };
|
|
testResultC.Add(testResultArrayC);
|
|
|
|
if (!locationC.GetNeighborCoodrinates().Equals(testResultC)) {
|
|
throw new System.ArgumentException("Test Failed: 2D Location neighbors do not match known neighbors near large edges.");
|
|
}
|
|
|
|
Location locationD = new Location(State.Dark, State.Light, new int[] { 1, 1, 1 }, 5);
|
|
List<int[]> testResultD = new List<int[]>();
|
|
int[] testResultArrayD;
|
|
|
|
testResultArrayD = new int[] { 0, 0, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 0, 0, 1 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 0, 0, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 0, 1, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 0, 1, 1 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 0, 1, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 0, 2, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 0, 2, 1 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 0, 2, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 1, 0, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 1, 0, 1 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 1, 0, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 1, 1, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 1, 1, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 1, 2, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 1, 2, 1 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 1, 2, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 0, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 0, 1 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 0, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 1, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 1, 1 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 1, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 2, 0 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 2, 1 };
|
|
testResultD.Add(testResultArrayD);
|
|
testResultArrayD = new int[] { 2, 2, 2 };
|
|
testResultD.Add(testResultArrayD);
|
|
|
|
if (!locationD.GetNeighborCoodrinates().Equals(testResultD)) {
|
|
throw new System.ArgumentException("Test Failed: 3D Location neighbors do not match known neighbors away from edges.");
|
|
}
|
|
}
|
|
|
|
public void GetFutureStateTest() {
|
|
Location locationA = new Location(State.Dark, State.Light, new int[] { 2, 2, 2 }, 5);
|
|
|
|
if (locationA.GetFutureState() != State.Light) {
|
|
throw new System.ArgumentException("Test Failed: Location get future state expected Light.");
|
|
}
|
|
}
|
|
|
|
public void GetPresentStateTest() {
|
|
Location locationA = new Location(State.Dark, State.Light, new int[] { 2, 2, 2 }, 5);
|
|
|
|
if (locationA.GetPresentState() != State.Light) {
|
|
throw new System.ArgumentException("Test Failed: Location get present state expected Light.");
|
|
}
|
|
}
|
|
|
|
public void SetFutureStateTest() {
|
|
Location locationA = new Location(State.Dark, State.Light, new int[] { 2, 2, 2 }, 5);
|
|
|
|
locationA.SetFutureState(State.Dark);
|
|
if (locationA.GetFutureState() != State.Dark) {
|
|
throw new System.ArgumentException("Test Failed: Location set future state expected Dark.");
|
|
}
|
|
}
|
|
|
|
public void SetPresentStateTest() {
|
|
Location locationA = new Location(State.Dark, State.Light, new int[] { 2, 2, 2 }, 5);
|
|
|
|
locationA.SetPresentState(State.Dark);
|
|
if (locationA.GetPresentState() != State.Dark) {
|
|
throw new System.ArgumentException("Test Failed: Location get present state expected Dark.");
|
|
}
|
|
}
|
|
}
|
|
} |