public void RotateFrontClockwiseFourTimesReturnsToTheStart() { var cube = new Cube(new Face(Colour.Red, Colour.Green, Colour.Blue, Colour.Orange, Colour.Green, Colour.Yellow, Colour.Red, Colour.White, Colour.Blue), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red)); var rotatedCube = cube .RotateFront(Rotation.Clockwise) .RotateFront(Rotation.Clockwise) .RotateFront(Rotation.Clockwise) .RotateFront(Rotation.Clockwise); using var _ = new AssertionScope(); AssertSideIs(rotatedCube.Front, Colour.Red, Colour.Green, Colour.Blue, Colour.Orange, Colour.Green, Colour.Yellow, Colour.Red, Colour.White, Colour.Blue); rotatedCube.Rotations.Should().Be(4); }
public void RotateFrontAntiClockwiseThenFrontFaceShouldBeRotated() { /* * R O R R G B * W G G => O G Y * B Y B R W B */ var cube = new Cube(new Face(Colour.Red, Colour.Orange, Colour.Red, Colour.White, Colour.Green, Colour.Green, Colour.Blue, Colour.Yellow, Colour.Blue), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red)); var rotatedCube = cube.RotateFront(Rotation.Anticlockwise); using var _ = new AssertionScope(); AssertSideIs(rotatedCube.Front, Colour.Red, Colour.Green, Colour.Blue, Colour.Orange, Colour.Green, Colour.Yellow, Colour.Red, Colour.White, Colour.Blue ); rotatedCube.Rotations.Should().Be(1); }
public void RotateFrontClockwiseFrontShouldBe() { /* * R G B R O R * O G Y => W G G * R W B B Y B */ var cube = new Cube(new Face(Colour.Red, Colour.Green, Colour.Blue, Colour.Orange, Colour.Green, Colour.Yellow, Colour.Red, Colour.White, Colour.Blue), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red)); var rotatedCube = cube.RotateFront(Rotation.Clockwise); using var _ = new AssertionScope(); AssertSideIs(rotatedCube.Front, Colour.Red, Colour.Orange, Colour.Red, Colour.White, Colour.Green, Colour.Green, Colour.Blue, Colour.Yellow, Colour.Blue); rotatedCube.Rotations.Should().Be(1); }
public void RotateFrontClockwiseAdjacentFacesShouldBeRotated() { // W W W W W W // W W W W W W // B O G O B G // - - - - - - // G G G | R R R | R B B G G O | R R R | B B B // G G B | R R R | G B B =>> G G R | R R R | O B B // G G O | R R R | B B B G G G | R R R | G B B // - - - - - - // O R G B G R // Y Y Y Y Y Y // Y Y Y Y Y Y // - - - - - - var front = new Face(Colour.Red); var left = CreateFace("GGGGGBGGO"); var right = CreateFace("RBBGBBBBB"); var top = CreateFace("WWWWWWBOG"); var bottom = CreateFace("ORGYYYYYY"); var back = new Face(Colour.Yellow); var cube = new Cube(front, back, left, right, top, bottom); var rotatedCube = cube.RotateFront(Rotation.Clockwise); AssertSideIsComplete(rotatedCube.Front, Colour.Red); AssertSideIsComplete(rotatedCube.Back, Colour.Yellow); rotatedCube.Should().BeEquivalentTo(new { Left = CreateFace("GGOGGRGGG"), Right = CreateFace("BBBOBBGBB"), Top = CreateFace("WWWWWWOBG"), Bottom = CreateFace("BGRYYYYYY") }); rotatedCube.Rotations.Should().Be(1); }
public void RotateFrontClockwiseBackShouldBeSame(Rotation direction) { /* * R G B * O G Y => Same * R W B */ var cube = new Cube(new Face(Colour.Red), new Face(Colour.Red, Colour.Green, Colour.Blue, Colour.Orange, Colour.Green, Colour.Yellow, Colour.Red, Colour.White, Colour.Blue), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red), new Face(Colour.Red)); var rotatedCube = cube.RotateFront(direction); using var _ = new AssertionScope(); AssertSideIs(rotatedCube.Back, Colour.Red, Colour.Green, Colour.Blue, Colour.Orange, Colour.Green, Colour.Yellow, Colour.Red, Colour.White, Colour.Blue); rotatedCube.Rotations.Should().Be(1); }