public void Face_Rotation_With_Inside_Slice(int width, Axis faceAxis, int facePos, bool facePrime, Axis sliceAxis, int slicePos, bool slicePrime, string startState) { Cube subject = new Cube(startState); subject.ApplyMove(faceAxis, facePos, facePrime); subject.ApplyMove(sliceAxis, slicePos, slicePrime); Assert.That(subject.GameBoard, Is.EqualTo(StandardCube(width))); }
public void Inside_Slice_Single(int width, Axis axis, int pos, bool prime, string startState) { Cube subject = new Cube(startState); subject.ApplyMove(axis, pos, prime); Assert.That(subject.GameBoard, Is.EqualTo(StandardCube(width))); }
public void One_By_One_Movement(Axis axis, bool prime, string startState) { Cube subject = new Cube(startState); subject.ApplyMove(axis, 0, prime); Assert.That(subject.GameBoard, Is.EqualTo(Standard_1x1)); }
public void Do_And_Undo(int width) { Cube subject = new Cube(width); Assert.That(subject.GameBoard, Is.EqualTo(StandardCube(width))); for (int j = 0; j < subject.Width; j++) { subject.ApplyMove(new Move(Axis.x, j, false)); subject.ApplyMove(new Move(Axis.y, j, false)); subject.ApplyMove(new Move(Axis.z, j, false)); } Assert.That(subject.GameBoard, Is.Not.EqualTo(StandardCube(width))); for (int j = subject.Width - 1; j >= 0; j--) { subject.ApplyMove(new Move(Axis.z, j, true)); subject.ApplyMove(new Move(Axis.y, j, true)); subject.ApplyMove(new Move(Axis.x, j, true)); } Assert.That(subject.GameBoard, Is.EqualTo(StandardCube(width))); }