Example #1
0
        public void solve_position_edgesTest()
        {
            var tests = new[]
            {
                "O O O O O O O O O Y G Y Y Y Y Y Y Y G B G G G G G G G W W W W W W W W W B Y B B B B B B B R R R R R R R R R",
                "B B B B B B B B B O Y O O O O O O O W R W W W W W W W R W R R R R R R R Y O Y Y Y Y Y Y Y G G G G G G G G G"
            };

            var negativetests = new[]
            {
                "B B B B B B B B B G G O O O O O O O W R W W W W W W W R W R R R R R R R Y O Y Y Y Y Y Y Y G G G G G G G G G"
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve_position_edges();
                Assert.IsTrue(Rc.issolved(), "solve_position_edgesTest FAILED");
            }
            foreach (var test in negativetests)
            {
                Rc.set_cube(test);
                try
                {
                    Solver.solve_position_edges();
                    Assert.IsFalse(validate_up_corner_positions(), "solve_position_edgesTest FAILED");
                }
                catch
                {
                    Assert.IsFalse(validate_up_corner_positions(), "solve_position_edgesTest FAILED");
                }
            }
        }
Example #2
0
        public void solve_position_cornerTest()
        {
            var tests = new[]
            {
                "B B B B B B B B B R O R Y Y Y Y Y Y Y R O O O O O O O W W Y W W W W W W O Y W R R R R R R G G G G G G G G G",
                "R R R R R R R R R G B Y B B B B B B B W B W W W W W W W G G G G G G G G Y Y W Y Y Y Y Y Y O O O O O O O O O",
                "B B B B B B B B B Y R Y O O O O O O O Y W W W W W W W R O O R R R R R R W W R Y Y Y Y Y Y G G G G G G G G G"
            };

            var negativetests = new[]
            {
                "B B B B B B B B B Y R Y O O O O O O O Y W W W W W W W R O R R R R R R R W W R Y Y Y Y Y Y G G G G G G G G G"
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve_position_corner();
                Assert.IsTrue(validate_up_corner_positions(), "solve_position_cornerTest FAILED");
            }
            foreach (var test in negativetests)
            {
                Rc.set_cube(test);
                try
                {
                    Solver.solve_position_corner();
                    Assert.IsFalse(validate_up_corner_positions(), "solve_position_cornerTest FAILED");
                }
                catch
                {
                    Assert.IsFalse(validate_up_corner_positions(), "solve_position_cornerTest FAILED");
                }
            }
        }
Example #3
0
        public void solve_up_crossTest()
        {
            var tests = new[]
            {
                "O G G B O G R Y W G W Y W W G W B B B O O O B R W B O G R R W Y G Y Y Y W Y Y W G O G B R O Y B R R R B O R",
                "G G R G O R O B B O R W O Y Y Y G W B W Y R G O R O R O W Y Y W W W Y G B W W O B G Y B R G B B Y R B G R O",
                "G W O G R Y B O B O R R W G R Y W R Y B W B Y O G O W R R B G B O O Y O Y R W W W G G Y R W Y B B O B G G Y"
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve_up_cross();
                Assert.IsTrue(validate_up_cross(), "solve_up_crossTest FAILED");
            }
        }
Example #4
0
        public void solve_quick_solveTest()
        {
            var tests = new[]
            {
                "O W W O W W Y G G G G R G G R O O R G W W G R R G R R O B B W B B W R R O O Y O O Y B B B W B B Y Y Y Y Y Y",
                "W R W W R W O G G G G Y G G B O O Y G R R Y Y Y G R R W B B G B B W R R O W O O W O B W B R B B Y O Y Y O Y",
                "W O W G Y G W O W G Y G O R O G Y G R W R G G G R W R B W B R O R B W B O Y O B B B O Y O Y R Y B W B Y R Y"
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve_quick_solve();
                Assert.IsTrue(Rc.issolved(), "solve_quick_solveTest FAILED");
            }
        }
Example #5
0
        public void solve_middle_layerTest()
        {
            var tests = new[]
            {
                "Y Y Y Y Y Y Y Y Y B B B G B W W B G R R R O R O W W O G G G G G R W W O O O O B O R B G R R B G O W R B W W",
                "G G G G G G G G G R R R W R R Y O Y W W W B W W B Y R O O O B O B W W W Y Y Y O Y R O B B O R B Y B O R Y B",
                "Y Y Y Y Y Y Y Y Y G G G R G O B W W O O O W O B R G W B B B R B B B O W R R R W R G G R O G O R G W B W W O"
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve_middle_layer();
                Assert.IsTrue(validate_middle_layer(), "solve_middle_layerTest FAILED");
            }
        }
Example #6
0
        public void solve_up_cornersTest()
        {
            var tests = new[]
            {
                "Y R W R R R O R O G B Y Y B W W Y R G W B B W O B Y W Y G B G G W G G B O Y R O Y G R O G Y B O O O W R B W",
                "Y R G R R R O R W B B G O B W B Y G W W B B W B W O R O G O O G Y B Y Y Y Y O O Y W G G W R G Y G O B R W R",
                "O B B B B B O B G G W G G W O R G W W R Y G R R O Y R R Y Y W Y O G R B O O Y W O R R W Y B O W Y G Y B G W",
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve_up_corners();
                Assert.IsTrue(validate_up_corners(), "solve_up_corners FAILED");
            }
        }
Example #7
0
        public void solve_cornerTest()
        {
            var tests = new[]
            {
                "G R R R R R G R R W G Y G G G G G G R B B Y Y Y Y Y Y W Y Y B B B B B B B W R W W W W W W O O O O O O O O O",
                "Y O G O O O O O W B G W B B B B B B B B O Y Y Y Y Y Y G Y O G G G G G G Y W O W W W W W W R R R R R R R R R",
                "B Y G Y Y Y R Y R O B G R R R R R R Y G Y G G G G G G B R O O O O O O O Y O Y B B B B B B W W W W W W W W W"
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve_corner(Rc.Up);
                Assert.IsTrue(validate_corners(), "solve_cornerTest FAILED");
            }
        }
Example #8
0
        public void solveTest()
        {
            var tests = new[]
            {
                "R B O B Y O Y W O B O G R B O R G O O O G Y R R Y Y W W G W Y G Y B B G B W Y B O G R R W B G R W W R G W Y",
                "R O B W O B W W R W O G B W R O B O R B G G B O B Y O Y Y R G Y G W G B Y Y B W G R O R Y W R G O R Y G W Y",
                "R R Y W O G G Y R W G Y Y Y R O W O R O W B G W Y O G G Y G O W Y O R Y O G B B B R R G W B B W B R W B O B",
                "W G Y R O W B R R R G W R G Y O R G R B G B W G Y O O Y B O Y B O W O Y B W G G Y Y R B W O Y G W R W B O B",
                "R G R B B Y W Y B Y Y O W R W R O R G G Y O Y G W W O O O Y O O B B B Y B R G W W R O Y W B G W B G R G R G",
                "Y W W G B O Y O G O O O R W R B R Y B Y R G R Y R R Y W B O B Y O G G B G B G W O Y R G O B W R B G Y W W W",
                "W W W W W W W W W G G G G G G G G G R R R R R R R R R B B B B B B B B B O O O O O O O O O Y Y Y Y Y Y Y Y Y",
                "G G O B Y W W O B R Y R W R W G R B B Y O G G W Y R B W B Y O O G O B W G Y Y O B R R B W R G Y Y W O O R G",
                "O W G R G G G R O Y B O Y O O R W W Y Y W W Y Y G Y B B O Y B R B Y R R R G B O W O W R W O G R B B G G W B",
                "Y W O R R O G W G R G W O B Y R G B O O O R W Y O R B Y G W B G W R O W B B B R Y Y R G G Y B W W O B Y Y G",
                "R B R R O Y B G G G W R O G B B Y Y Y O O R W Y B R B Y B G O B G W W G Y O W R Y W O W W O Y O G R G R B W",
                "B G O B B W W R G Y W G O Y W Y B B R G Y R O G W G O R O G W W B G R W W Y R R R B B Y O O O Y Y G Y B O R",
                "Y Y G B W G Y O R B O G Y G R R O G O G Y Y R Y O G W B R R B B B O W R W O O W O G Y B B W W B W Y R W R G",
            };

            var negativeTests = new[]
            {
                "B B O B Y O Y W O B O G R B O R G O O O G Y R R Y Y W W G W Y G Y B B G B W Y B O G R R W B G R W W R G W Y",
                "R B R R O Y B G G G W R G G B B Y Y Y Y O R W Y B R B Y B G O B G W W G Y O W R Y W O W W O Y O G R G R B W",
                "W W W W W W W W W G G G G G G G G G R R R R R R R R R B B B B B B B B B O O O O O O O O O Y Y Y Y Y N N N Y",
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve();
                Assert.IsTrue(Rc.issolved(), "solveTest FAILED");
            }

            foreach (var test in negativeTests)
            {
                Rc.set_cube(test);
                try
                {
                    Solver.solve();
                }
                catch (Exception)
                {
                    Assert.IsFalse(Rc.issolved(), "solveTest FAILED");
                }
                Assert.IsFalse(Rc.issolved(), "solveTest FAILED");
            }
        }
Example #9
0
        public void solve_crossTest()
        {
            var tests = new[]
            {
                "O O G W W W W B R B R R R R R R R R B W W B B B B B B G G W O O O O O O O W W G G G G G G Y Y Y Y Y Y Y Y Y",
                "W W W W W W W W W R G R B B B B B B B O B O O O O O O O B O G G G G G G G R G R R R R R R Y Y Y Y Y Y Y Y Y",
                "Y O W O O G W B Y B W O W W W W W W G O G B B B B B B O O B Y Y Y Y Y Y O Y O G G G G G G R R R R R R R R R",
                "Y Y O O Y G Y Y O G Y B B B B B B B R R B R R R R R R Y Y Y G G G G G G G B R O O O O O O W W W W W W W W W"
            };

            foreach (var test in tests)
            {
                Rc.set_cube(test);
                Solver.solve_cross(Rc.Up);
                Assert.IsTrue(validate_cross(), "solve_crossTest FAILED");
            }
        }