private void SolveSecondLayer() { var solver = new SecondLayerSolver(_cube); solver.Solve(); }
public void SolveSecondLayer_IsCorrect_GivenSwitchableMiddleEdges() { var cube = new RubixCube(new[, , ] { { { new Block(Colour.Red, null, Colour.Green, null, Colour.White, null), new Block(null, null, Colour.Green, null, Colour.White, null), new Block(null, Colour.Orange, Colour.Green, null, Colour.White, null) }, { new Block(Colour.Red, null, null, null, Colour.White, null), new Block(null, null, null, null, Colour.White, null), new Block(null, Colour.Orange, null, null, Colour.White, null) }, { new Block(Colour.Red, null, null, Colour.Blue, Colour.White, null), new Block(null, null, null, Colour.Blue, Colour.White, null), new Block(null, Colour.Orange, null, Colour.Blue, Colour.White, null) } }, { { new Block(Colour.Red, null, Colour.Green, null, null, null), new Block(null, null, Colour.Green, null, null, null), new Block(null, Colour.Orange, Colour.Green, null, null, null) }, { new Block(Colour.Red, null, null, null, null, null), new Block(null, null, null, null, null, null), new Block(null, Colour.Orange, null, null, null, null) }, { new Block(Colour.Red, null, null, Colour.Yellow, null, null), new Block(null, null, null, Colour.Blue, null, null), new Block(null, Colour.Green, null, Colour.Yellow, null, null) } }, { { new Block(Colour.Orange, null, Colour.Blue, null, null, Colour.Yellow), new Block(null, null, Colour.Blue, null, null, Colour.Red), new Block(null, Colour.Blue, Colour.Yellow, null, null, Colour.Red) }, { new Block(Colour.Yellow, null, null, null, null, Colour.Orange), new Block(null, null, null, null, null, Colour.Yellow), new Block(null, Colour.Blue, null, null, null, Colour.Yellow) }, { new Block(Colour.Green, null, null, Colour.Red, null, Colour.Yellow), new Block(null, null, null, Colour.Orange, null, Colour.Blue), new Block(null, Colour.Orange, null, Colour.Yellow, null, Colour.Green) } } }); var solver = new SecondLayerSolver(cube); solver.Solve(); var thirdLayerSolver = new ThirdLayerSolver(cube); thirdLayerSolver.Solve(); Assert.That(_solvedCube, Is.EquivalentTo(cube.Cube)); }