Exemple #1
0
        public void EqualsTest5()
        {
            var a      = new FaceVal(22);
            var result = a.Equals(22u);

            Assert.IsTrue(result, "EqualsTest5 FAIL");
        }
Exemple #2
0
        public void FaceValTest()
        {
            var a      = new FaceVal(20);
            var result = a.Val == 20;

            Assert.IsTrue(result, "FaceValTest FAIL");

            var b = (FaceVal)22u;

            result = b.Val == 22;
            Assert.IsTrue(result, "FaceValTest FAIL");

            var c = (FaceVal)'A';

            result = c.Val == 'A';
            Assert.IsTrue(result, "FaceValTest FAIL");

            var d = new FaceVal(null);

            result = d.Val == 0;
            Assert.IsTrue(result, "FaceValTest FAIL");

            var e = new FaceVal();

            result = e.Val == 0;
            Assert.IsTrue(result, "FaceValTest FAIL");
        }
Exemple #3
0
        public void EqualsTest4()
        {
            var a      = new FaceVal('B');
            var result = a.Equals('B');

            Assert.IsTrue(result, "EqualsTest4 FAIL");
        }
Exemple #4
0
        public void EqualsTest1()
        {
            var a      = new FaceVal(20);
            var b      = new FaceVal(20);
            var result = a.Equals(b);

            Assert.IsTrue(result, "EqualsTest1 FAIL");
        }
Exemple #5
0
        /// <summary>
        /// Search for one corner and orientation
        /// </summary>
        /// <param name="color1">First color of where to search</param>
        /// <param name="color2">Second color of where search</param>
        /// <param name="color3">Third color of where to search</param>
        /// <param name="a">First color to search for</param>
        /// <param name="b">Second color to search for</param>
        /// <param name="c">Third color to search for</param>
        /// <param name="resultBase">Enum name base</param>
        /// <returns>Found corner.
        /// The first letters of the returned enum are the name of the cubie
        /// The numbers are the orientation of the cubie</returns>
        private static CornerName find_corner(FaceVal color1, FaceVal color2, FaceVal color3, FaceVal a, FaceVal b, FaceVal c,
                                              CornerName resultBase)
        {
            if (a == color1)
            {
                if (b == color2)
                {
                    if (c == color3)
                    {
                        return(resultBase + 0);
                    }
                }
                else if (b == color3)
                {
                    if (c == color2)
                    {
                        return(resultBase + 1);
                    }
                }
            }
            else if (a == color2)
            {
                if (b == color1)
                {
                    if (c == color3)
                    {
                        return(resultBase + 2);
                    }
                }
                else if (b == color3)
                {
                    if (c == color1)
                    {
                        return(resultBase + 3);
                    }
                }
            }
            else if (a == color3)
            {
                if (b == color1)
                {
                    if (c == color2)
                    {
                        return(resultBase + 4);
                    }
                }
                else if (b == color2)
                {
                    if (c == color1)
                    {
                        return(resultBase + 5);
                    }
                }
            }

            return(CornerName.CornerNone);
        }
Exemple #6
0
        public void CompareToTest1()
        {
            var a       = new FaceVal(20);
            var result1 = a.CompareTo(10);
            var result2 = a.CompareTo(20);
            var result3 = a.CompareTo(30);

            Assert.IsTrue(result1 > 0, "CompareToTest FAIL");
            Assert.IsTrue(result2 == 0, "CompareToTest FAIL");
            Assert.IsTrue(result3 < 0, "CompareToTest FAIL");
        }
Exemple #7
0
        public void GetHashCodeTest()
        {
            var a     = new FaceVal(20);
            var b     = new FaceVal(20);
            var c     = new FaceVal(90);
            var hash1 = a.GetHashCode();
            var hash2 = b.GetHashCode();
            var hash3 = c.GetHashCode();

            Assert.IsTrue(hash1 == hash2, "GetHashCodeTest1 FAIL");
            Assert.IsTrue(hash1 != hash3, "GetHashCodeTest2 FAIL");
        }
Exemple #8
0
        public void CompareToTest3()
        {
            var a      = new FaceVal('B');
            var result = a.CompareTo('B') == 0;

            Assert.IsTrue(result, "CompareToTest3 FAIL");

            result = a.CompareTo('A') > 0;
            Assert.IsTrue(result, "CompareToTest3 FAIL");

            result = a.CompareTo('C') < 0;
            Assert.IsTrue(result, "CompareToTest3 FAIL");
        }
Exemple #9
0
        public void CompareToTest2()
        {
            var a = new FaceVal('A');
            var b = new FaceVal('B');
            var c = new FaceVal('C');

            var result = b.CompareTo(a) > 0;

            Assert.IsTrue(result, "EqualsTest4 FAIL");
            result = b.CompareTo(b) == 0;
            Assert.IsTrue(result, "EqualsTest4 FAIL");
            result = b.CompareTo(c) < 0;
            Assert.IsTrue(result, "EqualsTest4 FAIL");
        }
Exemple #10
0
        public void EqualsTest()
        {
            var    a      = new FaceVal(20);
            object b      = a;
            var    result = a.Equals(b);

            Assert.IsTrue(result, "EqualsTest FAIL");

            object c = new FaceVal(20);

            result = a.Equals(c);
            Assert.IsTrue(result, "EqualsTest FAIL");

            result = a.Equals((object)null);
            Assert.IsFalse(result, "EqualsTest FAIL");
        }
Exemple #11
0
        /// <summary>
        /// Search for a corner
        /// The first letters of the returned enum are the name of the cubie
        /// The numbers are the orientation of the cubie
        /// </summary>
        /// <param name="color1">First color of corner</param>
        /// <param name="color2">Second color of corner</param>
        /// <param name="color3">Third color of corner</param>
        /// <returns>Found corner and orientation or cubie</returns>
        public CornerName search_corner(FaceVal color1, FaceVal color2, FaceVal color3)
        {
            // CUBIE Up Left Front
            var pos = find_corner(color1, color2, color3,
                                  Cube.Up[CubeSize - 1, 0], Cube.Left[0, CubeSize - 1], Cube.Front[0, 0], CornerName.CornerUlf);

            if (pos != CornerName.CornerNone)
            {
                return(pos);
            }

            // CUBIE Up Left Back
            pos = find_corner(color1, color2, color3,
                              Cube.Up[0, 0], Cube.Left[0, 0], Cube.Back[0, CubeSize - 1], CornerName.CornerUlb);
            if (pos != CornerName.CornerNone)
            {
                return(pos);
            }

            // CUBIE Up Right Front
            pos = find_corner(color1, color2, color3,
                              Cube.Up[CubeSize - 1, CubeSize - 1], Cube.Right[0, 0], Cube.Front[0, CubeSize - 1],
                              CornerName.CornerUrf);
            if (pos != CornerName.CornerNone)
            {
                return(pos);
            }

            // CUBIE Up Right Back
            pos = find_corner(color1, color2, color3,
                              Cube.Up[0, CubeSize - 1], Cube.Right[0, CubeSize - 1], Cube.Back[0, 0], CornerName.CornerUrb);
            if (pos != CornerName.CornerNone)
            {
                return(pos);
            }

            // CUBIE Down Left Front
            pos = find_corner(color1, color2, color3,
                              Cube.Down[0, 0], Cube.Left[CubeSize - 1, CubeSize - 1], Cube.Front[CubeSize - 1, 0],
                              CornerName.CornerDlf);
            if (pos != CornerName.CornerNone)
            {
                return(pos);
            }

            // CUBIE Down Left Back
            pos = find_corner(color1, color2, color3,
                              Cube.Down[CubeSize - 1, 0], Cube.Left[CubeSize - 1, 0], Cube.Back[CubeSize - 1, CubeSize - 1],
                              CornerName.CornerDlb);
            if (pos != CornerName.CornerNone)
            {
                return(pos);
            }

            // CUBIE Down Right Front
            pos = find_corner(color1, color2, color3,
                              Cube.Down[0, CubeSize - 1], Cube.Right[CubeSize - 1, 0], Cube.Front[CubeSize - 1, CubeSize - 1],
                              CornerName.CornerDrf);
            if (pos != CornerName.CornerNone)
            {
                return(pos);
            }

            // CUBIE Down Right Back
            pos = find_corner(color1, color2, color3,
                              Cube.Down[CubeSize - 1, CubeSize - 1], Cube.Right[CubeSize - 1, CubeSize - 1],
                              Cube.Back[CubeSize - 1, 0], CornerName.CornerDrb);

            return(pos);
        }
Exemple #12
0
        /// <summary>
        /// Searches for edge that matches the given face and color edge
        /// </summary>
        /// <param name="faceColor">Color of the face to search</param>
        /// <param name="color">Color of the edge to search</param>
        /// <returns>Position of edge</returns>
        public FaceName search_edge(FaceVal faceColor, FaceVal color)
        {
            if (Cube.Up[0, 1] == faceColor && Cube.Back[0, 1] == color)
            {
                return(FaceName.TopFaceUp);
            }
            if (Cube.Up[0, 1] == color && Cube.Back[0, 1] == faceColor)
            {
                return(FaceName.TopFaceUpReverse);
            }
            if (Cube.Up[1, 0] == faceColor && Cube.Left[0, 1] == color)
            {
                return(FaceName.TopFaceLeft);
            }
            if (Cube.Up[1, 0] == color && Cube.Left[0, 1] == faceColor)
            {
                return(FaceName.TopFaceLeftReverse);
            }
            if (Cube.Up[1, 2] == faceColor && Cube.Right[0, 1] == color)
            {
                return(FaceName.TopFaceRight);
            }
            if (Cube.Up[1, 2] == color && Cube.Right[0, 1] == faceColor)
            {
                return(FaceName.TopFaceRightReverse);
            }
            if (Cube.Up[2, 1] == faceColor && Cube.Front[0, 1] == color)
            {
                return(FaceName.TopFaceDown);
            }
            if (Cube.Up[2, 1] == color && Cube.Front[0, 1] == faceColor)
            {
                return(FaceName.TopFaceDownReverse);
            }

            if (Cube.Left[1, 2] == faceColor && Cube.Front[1, 0] == color)
            {
                return(FaceName.MiddleFaceLeft);
            }
            if (Cube.Left[1, 2] == color && Cube.Front[1, 0] == faceColor)
            {
                return(FaceName.MiddleFaceLeftReverse);
            }
            if (Cube.Front[1, 2] == faceColor && Cube.Right[1, 0] == color)
            {
                return(FaceName.MiddleFaceFront);
            }
            if (Cube.Front[1, 2] == color && Cube.Right[1, 0] == faceColor)
            {
                return(FaceName.MiddleFaceFrontReverse);
            }
            if (Cube.Right[1, 2] == faceColor && Cube.Back[1, 0] == color)
            {
                return(FaceName.MiddleFaceRight);
            }
            if (Cube.Right[1, 2] == color && Cube.Back[1, 0] == faceColor)
            {
                return(FaceName.MiddleFaceRightReverse);
            }
            if (Cube.Back[1, 2] == faceColor && Cube.Left[1, 0] == color)
            {
                return(FaceName.MiddleFaceBack);
            }
            if (Cube.Back[1, 2] == color && Cube.Left[1, 0] == faceColor)
            {
                return(FaceName.MiddleFaceBackReverse);
            }

            if (Cube.Down[0, 1] == faceColor && Cube.Front[2, 1] == color)
            {
                return(FaceName.BottomFaceUp);
            }
            if (Cube.Down[0, 1] == color && Cube.Front[2, 1] == faceColor)
            {
                return(FaceName.BottomFaceUpReverse);
            }
            if (Cube.Down[1, 0] == faceColor && Cube.Left[2, 1] == color)
            {
                return(FaceName.BottomFaceLeft);
            }
            if (Cube.Down[1, 0] == color && Cube.Left[2, 1] == faceColor)
            {
                return(FaceName.BottomFaceLeftReverse);
            }
            if (Cube.Down[1, 2] == faceColor && Cube.Right[2, 1] == color)
            {
                return(FaceName.BottomFaceRight);
            }
            if (Cube.Down[1, 2] == color && Cube.Right[2, 1] == faceColor)
            {
                return(FaceName.BottomFaceRightReverse);
            }
            if (Cube.Down[2, 1] == faceColor && Cube.Back[2, 1] == color)
            {
                return(FaceName.BottomFaceDown);
            }
            if (Cube.Down[2, 1] == color && Cube.Back[2, 1] == faceColor)
            {
                return(FaceName.BottomFaceDownReverse);
            }

            return(FaceName.FaceNone);
        }
Exemple #13
0
        public void ToStringTest()
        {
            var a = new FaceVal('A');

            Assert.IsTrue(a.ToString() == "A");
        }