public void ComplicatedRotationTest()
    {
        var cube = new CubeModel(front: Colour.Red, back: Colour.Green, left: Colour.Yellow, right: Colour.Blue, top: Colour.White, bottom: Colour.Orange);

        var correct = IsShowing(cube, Colour.Red);

        cube.Update(MoveInput.SwipeRight);      correct &= IsShowing(cube, Colour.Yellow);
        cube.Update(MoveInput.SwipeDown);       correct &= IsShowing(cube, Colour.White);
        cube.Update(MoveInput.SwipeLeft);       correct &= IsShowing(cube, Colour.Red);
        cube.Update(MoveInput.SwipeUp);         correct &= IsShowing(cube, Colour.Yellow);

        Assert.IsTrue(correct);
    }
    public void HLockedCubeRotationTest()
    {
        var cube = new CubeModel(front: Colour.Red, back: Colour.White, left: Colour.White,
                                 right: Colour.White, top: Colour.White, bottom: Colour.White);

        cube.Lock(MoveInput.SwipeLeft, MoveInput.SwipeRight);

        cube.Update(MoveInput.SwipeLeft);

        Assert.IsTrue(IsShowing(cube, Colour.Red));

        cube.Update(MoveInput.SwipeRight);

        Assert.IsTrue(IsShowing(cube, Colour.Red));

        cube.UnLock(MoveInput.SwipeLeft);
        cube.Update(MoveInput.SwipeLeft);

        Assert.IsTrue(IsShowing(cube, Colour.White));
    }
    public void SwipeDownTest()
    {
        var cube = new CubeModel();

        Assert.IsTrue(cube.Front == Colour.Red);

        cube.Update(MoveInput.SwipeDown);

        Assert.IsTrue(cube.Front == Colour.Blue &&
                      cube.Back == Colour.White &&
                      cube.Top == Colour.Red &&
                      cube.Bottom == Colour.Red);
    }
    public void SwipeLeftTest()
    {
        var cube = new CubeModel();

        Assert.IsTrue(cube.Front == Colour.Red);

        cube.Update(MoveInput.SwipeLeft);

        Assert.IsTrue(cube.Front == Colour.Yellow &&
                      cube.Back == Colour.Green &&
                      cube.Right == Colour.Red &&
                      cube.Left == Colour.Red);
    }