public static void CheckMillNotLine(int val1, int val2, int val3) //Tests for all cases
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(val1);
            morabaraba.NextTurn();
            morabaraba.Move(val2);
            morabaraba.NextTurn();
            morabaraba.Move(val3);
            Assert.That(!morabaraba.isKilling());
        }
        public static void CheckMillSameColour(int val1, int val2, int val3) //testing for every case
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(val1);
            morabaraba.NextTurn();
            morabaraba.Move(val2);
            morabaraba.NextTurn();
            morabaraba.Move(val3);
            morabaraba.NextTurn();
            Assert.That(morabaraba.isKilling());
        }
        public static void CantshootEmpty()
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(0);
            morabaraba.NextTurn();
            morabaraba.Move(1);
            morabaraba.NextTurn();
            morabaraba.Move(2);
            morabaraba.Move(23);
            Assert.That(morabaraba.isKilling());
        }
        public static void ShotCowRemoved()
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(23);
            morabaraba.Move(0);
            morabaraba.NextTurn();
            morabaraba.Move(1);
            morabaraba.NextTurn();
            morabaraba.Move(2);
            morabaraba.Move(23);
            Assert.That(morabaraba.GetBoard()[23].Get() == MorabarabaNS.Models.ColorType.Colour.Empty);
        }
        public static void OnlyShootOnce()
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(23);
            morabaraba.Move(0);
            morabaraba.NextTurn();
            morabaraba.Move(1);
            morabaraba.NextTurn();
            morabaraba.Move(2);
            morabaraba.Move(23);
            Assert.That(!morabaraba.isKilling());
        }
        public static void checkWinB()
        {
            Morabaraba morabaraba = new Morabaraba(4, 6);

            morabaraba.Move(0);
            morabaraba.NextTurn();
            morabaraba.Move(1);
            morabaraba.NextTurn();
            morabaraba.Move(3);
            morabaraba.NextTurn();
            morabaraba.Move(4);
            //p2 now
            morabaraba.Move(2);
            morabaraba.NextTurn();
            morabaraba.Move(5);
            morabaraba.NextTurn();
            morabaraba.Move(6);
            morabaraba.NextTurn();
            morabaraba.Move(7);
            morabaraba.NextTurn();
            morabaraba.Move(9);
            morabaraba.NextTurn();
            morabaraba.Move(10);
            //p2 final move
            morabaraba.Move(1);

            Assert.That(morabaraba.GetPlayerLostOrNot());
        }
        public static void CheckShootCowInMillB(int val1, int val2, int val3)  //tests for all cases
        //this checks that a cow can be shoot when there are only mills on the board
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(val1); //p1
            morabaraba.NextTurn();
            morabaraba.Move(val2); //p1
            morabaraba.NextTurn();
            morabaraba.Move(val3); //p1
            morabaraba.Changeremoving();
            Helpers.IValidPositionVerifier verifier = new Helpers.ValidPositionVerifier(morabaraba.CurrentBoard);

            Assert.That(verifier.VerifyCanShoot(val1, morabaraba.Turn()));
        }
        public static void CheckShootCowInMillA(int val1, int val2, int val3, int randoval)  //tests for all cases
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(randoval);
            morabaraba.Move(val1);
            morabaraba.NextTurn();
            morabaraba.Move(val2);
            morabaraba.NextTurn();
            morabaraba.Move(val3);
            morabaraba.NextTurn();
            Helpers.IValidPositionVerifier verifier = new Helpers.ValidPositionVerifier(morabaraba.CurrentBoard);

            Assert.That(verifier.VerifyCanShoot(randoval, morabaraba.Turn()));
        }
        public static void MoveIncreasedDecreasedCowsOnBoard()
        {
            Morabaraba morabaraba = new Morabaraba(5);

            morabaraba.Move(0);
            morabaraba.NextTurn();
            morabaraba.SetTurnPhase(Models.Phases.Phase.Moving);
            morabaraba.Move(0);
            morabaraba.Move(1);
            Assert.That(morabaraba.CurrentBoard.CowsOnBoard() == 1);
        }
        public static void CheckCantMovetoNotAdjacent(int val1, int val2)  //tests for all cases
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(val1);
            morabaraba.NextTurn();
            morabaraba.SetTurnPhase(Models.Phases.Phase.Moving);
            morabaraba.Move(val1);
            Helpers.IValidPositionVerifier verifier = new Helpers.ValidPositionVerifier(morabaraba.CurrentBoard);
            Assert.That(!verifier.VerifyMoving2(val2));
        }
        public static void CheckMovetoEmpty(int val1, int val2)
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(val1);
            morabaraba.Move(val2);
            morabaraba.NextTurn();
            morabaraba.SetTurnPhase(Models.Phases.Phase.Moving);
            morabaraba.Move(val2);
            Helpers.IValidPositionVerifier verifier = new Helpers.ValidPositionVerifier(morabaraba.CurrentBoard);
            Assert.That(!verifier.VerifyMoving2(val1));
        }
        public static void CheckBoardAfterMove(int startval, int endval)  //tests thoroughly that the move happens as it should AND that the number of cows stays the same after a shift
        {
            Morabaraba morabaraba = new Morabaraba();

            morabaraba.Move(startval);
            morabaraba.NextTurn();
            var cowcount = morabaraba.CurrentBoard.CowsOnBoard();

            morabaraba.SetTurnPhase(Models.Phases.Phase.Moving);
            var temp = morabaraba.GetBoard()[startval].Get();

            morabaraba.Move(startval);
            morabaraba.Move(endval);
            Assert.That(morabaraba.GetBoard()[endval].Get() == temp && morabaraba.GetBoard()[startval].Get() == Models.ColorType.Colour.Empty && morabaraba.CurrentBoard.CowsOnBoard() == cowcount);
        }