private static void Solve()
        {
            var configuration = ConfigurationGenerator.GenerateRandomConfiguration(3, 50);
            var solver = new BottomLayerSolver();

            solver.Solve(configuration).Wait(TestRunner.Timeout);

            CubeConfigurationAssert.BottomLayerCornersAreCorrect(configuration);
        }
        public async Task TopLayer_GivenWhiteInFrontRightLayerFromFrontRight_FrontRightIsCorrect()
        {
            var configuration = UnitTests.Helpers.CreateConfiguration(new[] { Rotations.RightClockwise }, 3);
            var solution = new List<IRotation>();
            var solver = new BottomLayerSolver();

            await solver.CheckTopLayerForWhite(configuration, solution).ConfigureAwait(true);


            CornerAssert.BottomFrontRightIsCorrect(configuration);
        }
        public async Task BottomLayer_GivenWhiteOnLeftBackFromBackRight_BackRightIsCorrect()
        {
            var configuration = UnitTests.Helpers.CreateConfiguration(new[] { Rotations.BackAntiClockwise }, 3);
            var solution = new List<IRotation>();
            var solver = new BottomLayerSolver();

            await solver.CheckBottomLayerForWhite(configuration, solution).ConfigureAwait(true);


            CornerAssert.BottomBackRightIsCorrect(configuration);
        }
        public async Task TopFace_GivenWhiteOnFrontLeftFromBackRight_BackRightIsCorrect()
        {
            var configuration = UnitTests.Helpers.CreateConfiguration(new[] { Rotations.Right2, Rotations.UpperClockwise, Rotations.RightClockwise }, 3);
            var solution = new List<IRotation>();
            var solver = new BottomLayerSolver();

            await solver.CheckTopFaceForWhite(configuration, solution).ConfigureAwait(true);


            CornerAssert.BottomBackRightIsCorrect(configuration);
        }