Пример #1
0
        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)));
        }
Пример #2
0
        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)));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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)));
        }