예제 #1
0
        public void CreateRandomTest()
        {
            Random random        = new Random(7777777);
            int    numIterations = 50;

            TimeSpan timeout = TimeSpan.FromSeconds(20);

            for (int iteration = 0; iteration < numIterations; iteration++)
            {
                CubieCube cube = CubieCube.CreateRandom(random);
                int       cornerPermutation = Coordinates.GetCornerPermutation(cube);
                int       edgePermutation   = Coordinates.GetEdgePermutation(cube);
                bool      cornerParity      = Coordinates.CornerPermutationParity(cornerPermutation);
                bool      edgeParity        = Coordinates.EdgePermutationParity(edgePermutation);
                Assert.IsTrue(cornerParity == edgeParity);

                Assert.IsNotNull(TwoPhaseSolver.FindSolution(cube, timeout, 30, -1));
            }
        }