Esempio n. 1
0
        public void Move_WhenLayersDeepIsOne_ThenBackFacePositionsMovedIncludingOneLayerInFront()
        {
            CubeFace backFace = new CubeFace(RubiksDirection.Back);

            IDictionary <Position, Position> positions = backFace.Move(TurningDirection.ThreeoClock, 1);

            Dictionary <Position, Position> expectedPositions = new Dictionary <Position, Position>();

            //layer 0
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 0, Z = 0
            }, new Position()
            {
                X = 0, Y = 0, Z = 2
            });
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 0, Z = 1
            }, new Position()
            {
                X = 1, Y = 0, Z = 2
            });
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 0, Z = 2
            }, new Position()
            {
                X = 2, Y = 0, Z = 2
            });
            expectedPositions.Add(new Position()
            {
                X = 1, Y = 0, Z = 0
            }, new Position()
            {
                X = 0, Y = 0, Z = 1
            });
            expectedPositions.Add(new Position()
            {
                X = 1, Y = 0, Z = 2
            }, new Position()
            {
                X = 2, Y = 0, Z = 1
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 0, Z = 0
            }, new Position()
            {
                X = 0, Y = 0, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 0, Z = 1
            }, new Position()
            {
                X = 1, Y = 0, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 0, Z = 2
            }, new Position()
            {
                X = 2, Y = 0, Z = 0
            });

            //layer 1
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 1, Z = 0
            }, new Position()
            {
                X = 0, Y = 1, Z = 2
            });
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 1, Z = 1
            }, new Position()
            {
                X = 1, Y = 1, Z = 2
            });
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 1, Z = 2
            }, new Position()
            {
                X = 2, Y = 1, Z = 2
            });
            expectedPositions.Add(new Position()
            {
                X = 1, Y = 1, Z = 0
            }, new Position()
            {
                X = 0, Y = 1, Z = 1
            });
            expectedPositions.Add(new Position()
            {
                X = 1, Y = 1, Z = 2
            }, new Position()
            {
                X = 2, Y = 1, Z = 1
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 1, Z = 0
            }, new Position()
            {
                X = 0, Y = 1, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 1, Z = 1
            }, new Position()
            {
                X = 1, Y = 1, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 1, Z = 2
            }, new Position()
            {
                X = 2, Y = 1, Z = 0
            });
            HashSet <KeyValuePair <Position, Position> > expectedPositionsHashSet = new HashSet <KeyValuePair <Position, Position> >(expectedPositions.ToList());

            Assert.IsTrue(expectedPositionsHashSet.SetEquals(positions));
        }
Esempio n. 2
0
        public void Move_WhenFaceIsDownAndLayersDeepIsZero_ThenDownFacePositionsMoved()
        {
            CubeFace downFace = new CubeFace(RubiksDirection.Down);

            IDictionary <Position, Position> positions = downFace.Move(TurningDirection.ThreeoClock);

            Dictionary <Position, Position> expectedPositions = new Dictionary <Position, Position>();

            expectedPositions.Add(new Position()
            {
                X = 0, Y = 0, Z = 0
            }, new Position()
            {
                X = 2, Y = 0, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 1, Y = 0, Z = 0
            }, new Position()
            {
                X = 2, Y = 1, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 0, Z = 0
            }, new Position()
            {
                X = 2, Y = 2, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 1, Z = 0
            }, new Position()
            {
                X = 1, Y = 0, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 1, Z = 0
            }, new Position()
            {
                X = 1, Y = 2, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 2, Z = 0
            }, new Position()
            {
                X = 0, Y = 0, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 1, Y = 2, Z = 0
            }, new Position()
            {
                X = 0, Y = 1, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 2, Z = 0
            }, new Position()
            {
                X = 0, Y = 2, Z = 0
            });
            HashSet <KeyValuePair <Position, Position> > expectedPositionsHashSet = new HashSet <KeyValuePair <Position, Position> >(expectedPositions.ToList());

            Assert.IsTrue(expectedPositionsHashSet.SetEquals(positions));
        }
Esempio n. 3
0
        public void Move_WhenRotationIs9oClock_ThenFrontFacePositionsMoved()
        {
            CubeFace frontFace = new CubeFace(RubiksDirection.Front);

            IDictionary <Position, Position> positions = frontFace.Move(TurningDirection.NineoClock);

            Dictionary <Position, Position> expectedPositions = new Dictionary <Position, Position>();

            expectedPositions.Add(new Position()
            {
                X = 0, Y = 2, Z = 0
            }, new Position()
            {
                X = 2, Y = 2, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 2, Z = 1
            }, new Position()
            {
                X = 1, Y = 2, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 0, Y = 2, Z = 2
            }, new Position()
            {
                X = 0, Y = 2, Z = 0
            });
            expectedPositions.Add(new Position()
            {
                X = 1, Y = 2, Z = 0
            }, new Position()
            {
                X = 2, Y = 2, Z = 1
            });
            expectedPositions.Add(new Position()
            {
                X = 1, Y = 2, Z = 2
            }, new Position()
            {
                X = 0, Y = 2, Z = 1
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 2, Z = 0
            }, new Position()
            {
                X = 2, Y = 2, Z = 2
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 2, Z = 1
            }, new Position()
            {
                X = 1, Y = 2, Z = 2
            });
            expectedPositions.Add(new Position()
            {
                X = 2, Y = 2, Z = 2
            }, new Position()
            {
                X = 0, Y = 2, Z = 2
            });
            HashSet <KeyValuePair <Position, Position> > expectedPositionsHashSet = new HashSet <KeyValuePair <Position, Position> >(expectedPositions.ToList());

            Assert.IsTrue(expectedPositionsHashSet.SetEquals(positions));
        }