示例#1
0
        public void rubixCubeTest()
        {
            var r = new RubixCube();
            Func <string, int> parse = int.Parse;
            var cube   = @"[[0,0,0,6,6,6,0,0,0,0,0,0],
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0]]";
            var actual = "[[0,0,0,6,6,6,0,0,0,0,0,0],[0,0,0,6,6,6,0,0,0,0,0,0],[0,0,0,5,5,5,0,0,0,0,0,0],[5,5,4,1,1,1,6,2,2,3,3,3],[5,5,4,1,1,1,6,2,2,3,3,3],[5,5,4,1,1,1,6,2,2,3,3,3],[0,0,0,2,2,2,0,0,0,0,0,0],[0,0,0,4,4,4,0,0,0,0,0,0],[0,0,0,4,4,4,0,0,0,0,0,0]]";

            Assert.AreEqual(actual, Util.JaggedArrayToString(r.rubixCube(Util.ParseJaggedArray(cube, parse), "U0")));

            cube   = @"[[0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0]]";
            actual = "[[0,0,0,6,6,1,0,0,0,0,0,0],[0,0,0,6,6,1,0,0,0,0,0,0],[0,0,0,6,6,1,0,0,0,0,0,0],[5,5,5,1,1,4,2,2,2,6,3,3],[6,3,3,5,5,5,1,1,4,2,2,2],[5,5,5,1,1,4,2,2,2,6,3,3],[0,0,0,4,4,3,0,0,0,0,0,0],[0,0,0,4,4,3,0,0,0,0,0,0],[0,0,0,4,4,3,0,0,0,0,0,0]]";
            Assert.AreEqual(actual, Util.JaggedArrayToString(r.rubixCube(Util.ParseJaggedArray(cube, parse), "R0 F1")));

            cube   = @"[[0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0]]";
            actual = "[[0,0,0,6,6,6,0,0,0,0,0,0],[0,0,0,6,6,6,0,0,0,0,0,0],[0,0,0,6,6,6,0,0,0,0,0,0],[1,1,1,2,2,2,3,3,3,5,5,5],[1,1,1,2,2,2,3,3,3,5,5,5],[3,3,3,5,5,5,1,1,1,2,2,2],[0,0,0,4,4,4,0,0,0,0,0,0],[0,0,0,4,4,4,0,0,0,0,0,0],[0,0,0,4,4,4,0,0,0,0,0,0]]";
            Assert.AreEqual(actual, Util.JaggedArrayToString(r.rubixCube(Util.ParseJaggedArray(cube, parse), "Fi1 F0 B0")));

            cube   = @"[[0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,2,6,0,0,0,0,0,0], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,6,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0]]";
            actual = "[[0,0,0,6,6,6,0,0,0,0,0,0],[0,0,0,6,6,2,0,0,0,0,0,0],[0,0,0,6,6,6,0,0,0,0,0,0],[3,3,3,5,5,5,1,1,1,2,2,2],[5,5,5,1,1,1,6,2,2,3,3,3],[5,5,5,1,1,1,2,2,2,3,3,3],[0,0,0,4,4,4,0,0,0,0,0,0],[0,0,0,4,4,4,0,0,0,0,0,0],[0,0,0,4,4,4,0,0,0,0,0,0]]";
            Assert.AreEqual(actual, Util.JaggedArrayToString(r.rubixCube(Util.ParseJaggedArray(cube, parse), "F2")));

            cube   = @"[[0,0,0,2,6,4,0,0,0,0,0,0], 
 [0,0,0,6,3,5,0,0,0,0,0,0], 
 [0,0,0,5,2,5,0,0,0,0,0,0], 
 [1,5,4,1,4,1,6,4,3,2,1,6], 
 [5,6,2,6,2,2,1,4,3,4,5,3], 
 [3,6,1,2,5,2,6,3,6,5,4,4], 
 [0,0,0,4,1,3,0,0,0,0,0,0], 
 [0,0,0,3,1,2,0,0,0,0,0,0], 
 [0,0,0,5,1,3,0,0,0,0,0,0]]";
            actual = "[[0,0,0,1,1,5,0,0,0,0,0,0],[0,0,0,4,1,3,0,0,0,0,0,0],[0,0,0,4,2,2,0,0,0,0,0,0],[5,2,3,2,6,3,6,6,3,4,4,6],[1,4,6,5,2,4,3,6,5,1,5,2],[1,2,2,1,6,3,6,4,1,4,3,4],[0,0,0,6,1,5,0,0,0,0,0,0],[0,0,0,3,3,5,0,0,0,0,0,0],[0,0,0,2,5,5,0,0,0,0,0,0]]";
            Assert.AreEqual(actual, Util.JaggedArrayToString(r.rubixCube(Util.ParseJaggedArray(cube, parse), "F2 F2 R0 U1 D2 U2 L0 U2 U1 U0 U2 B1 B0 F2 F2 D2 F1 U0 L0")));

            cube   = @"[[0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [0,0,0,6,6,6,0,0,0,0,0,0], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [5,5,5,1,1,1,2,2,2,3,3,3], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0], 
 [0,0,0,4,4,4,0,0,0,0,0,0]]";
            actual = "[[0,0,0,6,6,6,0,0,0,0,0,0],[0,0,0,6,6,6,0,0,0,0,0,0],[0,0,0,6,6,6,0,0,0,0,0,0],[5,5,5,1,1,1,2,2,2,3,3,3],[5,5,5,1,1,1,2,2,2,3,3,3],[5,5,5,1,1,1,2,2,2,3,3,3],[0,0,0,4,4,4,0,0,0,0,0,0],[0,0,0,4,4,4,0,0,0,0,0,0],[0,0,0,4,4,4,0,0,0,0,0,0]]";
            Assert.AreEqual(actual, Util.JaggedArrayToString(r.rubixCube(Util.ParseJaggedArray(cube, parse), "U0 Ri0 Ui0 R0 U0 Ri0 Ui0 R0 U0 Ri0 Ui0 R0 U0 Ri0 Ui0 R0 U0 Ri0 Ui0 R0 U0 Ri0 Ui0 R0")));

            cube   = @"[[0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0], 
 [0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0], 
 [0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0], 
 [0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0], 
 [0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0], 
 [5,5,5,5,5,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3], 
 [5,5,5,5,5,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3], 
 [5,5,5,5,5,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3], 
 [5,5,5,5,5,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3], 
 [5,5,5,5,5,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3], 
 [0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0], 
 [0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0], 
 [0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0], 
 [0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0], 
 [0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0]]";
            actual = "[[0,0,0,0,0,4,5,5,5,4,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,4,2,2,2,4,0,0,0,0,0,0,0,0,0,0],[3,3,3,3,1,5,6,6,6,2,1,1,1,1,3,2,6,6,6,5],[3,5,5,5,1,5,1,1,1,2,1,2,2,2,3,2,3,3,3,5],[3,5,5,5,1,5,1,1,1,2,1,2,2,2,3,2,3,3,3,5],[3,5,5,5,1,5,1,1,1,2,1,2,2,2,3,2,3,3,3,5],[3,1,1,1,1,5,4,4,4,2,1,3,3,3,3,2,4,4,4,5],[0,0,0,0,0,6,5,5,5,6,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,6,2,2,2,6,0,0,0,0,0,0,0,0,0,0]]";
            Assert.AreEqual(actual, Util.JaggedArrayToString(r.rubixCube(Util.ParseJaggedArray(cube, parse), "Ri0 Li0 Fi0 Bi0 Ui0 Di0")));
        }