public void GetCoordinateTwice_SamePointers() { var c = CoordinateProvider.GetCoordinate(0, 0); var c1 = CoordinateProvider.GetCoordinate(0, 0); Assert.That(c == c1); }
public void TestConstructor_UsingTestBoard_ShouldBeSame() { var board = new Board(_testBoard); var field = board[CoordinateProvider.GetCoordinate('A', 1)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('B', 1)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('F', 1)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('G', 1)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('A', 2)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('G', 2)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('A', 6)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('G', 6)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('A', 7)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('B', 7)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('F', 7)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('G', 7)]; Assert.That(field.Piece.Type == PieceType.Rock); field = board[CoordinateProvider.GetCoordinate('C', 4)]; Assert.That(field.Piece.Type == PieceType.Flower); }
public void GetValidCoordinateBySystem() { var c = CoordinateProvider.GetCoordinate('A', 1); Assert.That(c.RowAsArrayIndex == 0); Assert.That(c.ColumnAsArrayIndex == 0); }
public void TestMovelistLengthOne_SameLists() { var opc = new OnePointCrossover(new ZeroRandomizer()); //Randomizer doesn't matter var children = opc.DoCrossover(_parentWithSizeOneA, _parentWithSizeOneB); Assert.That(children.Item1[0].Coordinate == CoordinateProvider.GetCoordinate('D', 3)); Assert.That(children.Item2[0].Coordinate == CoordinateProvider.GetCoordinate('B', 6)); }
public void PlaceButterFlyOnEmptyField() { var playBoard = new Board(_emptyBoard); var move1 = new Move(new Piece(PieceType.Butterfly, Color.White, Color.None), CoordinateProvider.GetCoordinate('C', 1)); var moveSuccessful = playBoard.DoMove(move1); Assert.That(moveSuccessful); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 1)].Piece.Type == PieceType.Empty); }
public void VerticalThreeMatchTest_BoardEmpty() { var move = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('B', 4)); var playBoard = new Board(_verticalMatchTestBoard); playBoard.DoMove(move); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 3)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 4)].Piece.Type == PieceType.Empty); }
public void TestReset_ShouldBeSameAsStartBoardAfterReset() { var board = new Board(_testBoard); var newBoard = new Board(_testBoard); board.DoMove(new Move(new Piece(Model.Piece.YellowRed), CoordinateProvider.GetCoordinate(4, 4))); Assert.That(board.GetNumberOfFreeSpaces() == newBoard.GetNumberOfFreeSpaces() - 1); //One less board.Reset(); Assert.That(board[CoordinateProvider.GetCoordinate('E', 5)].Piece.Type == PieceType.Empty); }
public void PlaceFlowerOnRock() { _emptyBoard[3, 3].Piece = Model.Piece.Rock; var v = new Move(new Piece(PieceType.Flower, Color.Red, Color.None), CoordinateProvider.GetCoordinate('D', 4)); var playBoard = new Board(_emptyBoard); var moveSuccessful = playBoard.DoMove(v); Assert.That(!moveSuccessful); Assert.That(playBoard[CoordinateProvider.GetCoordinate('D', 4)].Piece.Type == PieceType.Rock); }
public void PlaceFlowerOnEmptySpace() { var playBoard = new Board(_emptyBoard); var v = new Move(new Piece(PieceType.Flower, Color.Red, Color.None), CoordinateProvider.GetCoordinate('A', 1)); var moveSuccessful = playBoard.DoMove(v); Assert.That(moveSuccessful); Assert.That(playBoard[CoordinateProvider.GetCoordinate('A', 1)].Piece.Type == PieceType.Flower); Assert.That(playBoard[CoordinateProvider.GetCoordinate('A', 1)].Piece.OuterColor == Color.Red); Assert.That(playBoard[CoordinateProvider.GetCoordinate('A', 1)].Piece.InnerColor == Color.None); }
public void PlaceNonFlowerOnEmpty_FalseResult() { var playBoard = new Board(_emptyBoard); var move1 = new Move(new Piece(PieceType.Rock, Color.Red, Color.None), CoordinateProvider.GetCoordinate('A', 1)); playBoard.DoMove(move1); var moveSuccessful = playBoard.DoMove(move1); Assert.That(!moveSuccessful); Assert.That(playBoard[CoordinateProvider.GetCoordinate('A', 1)].Piece.Type == PieceType.Empty); }
public void TestMoveListLengthTwo_SwapFirstElements() { var opc = new OnePointCrossover(new OneRandomizer()); var children = opc.DoCrossover(_parentWithSizeTwoA, _parentWithSizeTwoB); Assert.That(children.Item1[0].Coordinate == CoordinateProvider.GetCoordinate('E', 1)); Assert.That(children.Item1[1].Coordinate == CoordinateProvider.GetCoordinate('A', 2)); Assert.That(children.Item2[0].Coordinate == CoordinateProvider.GetCoordinate('A', 1)); Assert.That(children.Item2[1].Coordinate == CoordinateProvider.GetCoordinate('G', 2)); }
public void VerticalThreeMatchInterruptedByRock_RedLeft() { _verticalMatchTestBoard[4, 1].Piece = Model.Piece.Rock; var move = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('B', 4)); var playBoard = new Board(_verticalMatchTestBoard); playBoard.DoMove(move); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 3)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 4)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 5)].Piece.Type == PieceType.Rock); }
public void TestCompare_NotEqualLists_ResultNot0() { var ml1 = new MoveList { new Move(new Piece(Model.Piece.YellowPink), CoordinateProvider.GetCoordinate(0, 0)) }; var ml2 = new MoveList { new Move(new Piece(Model.Piece.YellowPink), CoordinateProvider.GetCoordinate(1, 0)) }; Assert.That(ml1.CompareTo(ml2) != 0); }
public void GetValidCoordinate_ByBoardIndex() { var c = CoordinateProvider.GetCoordinate(0, 0); Assert.That(c.Column == 'A'); Assert.That(c.Row == 1); var c1 = CoordinateProvider.GetCoordinate(3, 6); Assert.That(c1.Column == 'D'); Assert.That(c1.Row == 7); }
public void PlaceButterFlyOnFlower() { var playBoard = new Board(_emptyBoard); var move1 = new Move(new Piece(PieceType.Flower, Color.Red, Color.Yellow), CoordinateProvider.GetCoordinate('C', 1)); var move2 = new Move(new Piece(PieceType.Butterfly, Color.White, Color.None), CoordinateProvider.GetCoordinate('C', 1)); playBoard.DoMove(move1); playBoard.DoMove(move2); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 1)].Piece.Type == PieceType.Flower); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 1)].Piece.OuterColor == Color.White); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 1)].Piece.InnerColor == Color.None); }
/// <summary> /// Draws coordinates from a provider by a constant speed /// </summary> /// <param name="provider">Provider which creates coordinates.</param> /// <param name="speed">Speed of drawing</param> public static PlanBuilder DrawByRampedLines(CoordinateProvider provider, Speed speed = null) { if (speed == null) { speed = Configuration.MaxPlaneSpeed; } var points = provider(); var trajectory = new Trajectory4D(points); var planner = new StraightLinePlanner(speed); return(planner.CreateRampedPlan(trajectory)); }
/// <summary> /// Draws coordinates from a provider by a continuous speed /// </summary> /// <param name="provider">Provider which creates coordinates.</param> /// <param name="speed">Speed of drawing</param> public static PlanBuilder DrawContinuousLines(CoordinateProvider provider, Speed speed = null) { if (speed == null) { speed = Constants.MaxPlaneSpeed; } var points = provider(); var trajectory = new Trajectory4D(points); var planner = new StraightLinePlanner(speed); return(planner.CreateContinuousPlan(trajectory)); }
/// <summary> /// Draws coordinates from a provider by a constant speed /// </summary> /// <param name="provider">Provider which creates coordinates.</param> /// <param name="speed">Speed of drawing</param> public static PlanBuilder DrawByConstantSpeed(CoordinateProvider provider, Speed speed = null) { if (speed == null) { speed = Constants.ReverseSafeSpeed; } var points = provider(); var trajectory = new Trajectory4D(points); var planner = new StraightLinePlanner(speed); return(planner.CreateConstantPlan(trajectory)); }
public void HorizontalFourMatchTest_BoardEmpty() { var move1 = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('E', 2)); var move2 = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('D', 2)); var playBoard = new Board(_horizontalMatchTestBoard); playBoard.DoMove(move1); playBoard.DoMove(move2); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('D', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('E', 2)].Piece.Type == PieceType.Empty); }
public void SetUp() { _movelist = new MoveList { new Move(new Piece(PieceType.Flower, Color.Blue, Color.Cyan), CoordinateProvider.GetCoordinate('A', 1)), //1 new Move(new Piece(PieceType.Flower, Color.Red, Color.Cyan), CoordinateProvider.GetCoordinate('B', 1)), //2 new Move(new Piece(PieceType.Flower, Color.White, Color.Cyan), CoordinateProvider.GetCoordinate('C', 1)), //3 new Move(new Piece(PieceType.Flower, Color.Yellow, Color.Cyan), CoordinateProvider.GetCoordinate('D', 1)), //4 new Move(new Piece(PieceType.Flower, Color.Pink, Color.Cyan), CoordinateProvider.GetCoordinate('G', 1)), //5 new Move(new Piece(PieceType.Flower, Color.Blue, Color.None), CoordinateProvider.GetCoordinate('A', 2)), //6 new Move(new Piece(PieceType.Flower, Color.Blue, Color.Red), CoordinateProvider.GetCoordinate('A', 5)), //7 new Move(new Piece(PieceType.Flower, Color.Blue, Color.White), CoordinateProvider.GetCoordinate('A', 3)), //8 new Move(new Piece(PieceType.Flower, Color.Blue, Color.Yellow), CoordinateProvider.GetCoordinate('B', 4)), //9 new Move(new Piece(PieceType.Flower, Color.Blue, Color.Pink), CoordinateProvider.GetCoordinate('D', 4)) //10 }; }
public void SetUp() { _moveList4Moves1 = new MoveList { new Move(new Piece(PieceType.Flower, Color.Blue, Color.Red), CoordinateProvider.GetCoordinate('F', 7)), new Move(new Piece(PieceType.Flower, Color.White, Color.Cyan), CoordinateProvider.GetCoordinate('B', 4)), new Move(new Piece(PieceType.Flower, Color.Red, Color.Blue), CoordinateProvider.GetCoordinate('G', 4)), new Move(new Piece(PieceType.Flower, Color.Blue, Color.Red), CoordinateProvider.GetCoordinate('C', 6)) }; _moveList4Moves2 = new MoveList { new Move(new Piece(PieceType.Flower, Color.Blue, Color.Red), CoordinateProvider.GetCoordinate('F', 2)), new Move(new Piece(PieceType.Flower, Color.White, Color.Cyan), CoordinateProvider.GetCoordinate('E', 7)), new Move(new Piece(PieceType.Flower, Color.Red, Color.Blue), CoordinateProvider.GetCoordinate('A', 5)), new Move(new Piece(PieceType.Flower, Color.Blue, Color.Red), CoordinateProvider.GetCoordinate('B', 7)) }; }
public void TestTwoPointCrossOver_ItemsIndex1And2SwappedInChildren() { var r = new InsertNextItemRandomizer(1, 3); var tpco = new TwoPointCrossover(r); var c = tpco.DoCrossover(_moveList4Moves1, _moveList4Moves2); AssertMove(c.Item1[0], Color.Blue, Color.Red, CoordinateProvider.GetCoordinate('F', 7)); AssertMove(c.Item1[1], Color.White, Color.Cyan, CoordinateProvider.GetCoordinate('E', 7)); AssertMove(c.Item1[2], Color.Red, Color.Blue, CoordinateProvider.GetCoordinate('A', 5)); AssertMove(c.Item1[3], Color.Blue, Color.Red, CoordinateProvider.GetCoordinate('C', 6)); AssertMove(c.Item2[0], Color.Blue, Color.Red, CoordinateProvider.GetCoordinate('F', 2)); AssertMove(c.Item2[1], Color.White, Color.Cyan, CoordinateProvider.GetCoordinate('B', 4)); AssertMove(c.Item2[2], Color.Red, Color.Blue, CoordinateProvider.GetCoordinate('G', 4)); AssertMove(c.Item2[3], Color.Blue, Color.Red, CoordinateProvider.GetCoordinate('B', 7)); }
public void HorizontalThreeMatchInterruptedByFlowerTest_RedLeft() { var move1 = new Move(new Piece(PieceType.Flower, Color.Red, Color.None), CoordinateProvider.GetCoordinate('E', 2)); var move2 = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('D', 2)); var playBoard = new Board(_horizontalMatchTestBoard); playBoard.DoMove(move1); playBoard.DoMove(move2); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('D', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('E', 2)].Piece.Type == PieceType.Flower); Assert.That(playBoard[CoordinateProvider.GetCoordinate('E', 2)].Piece.OuterColor == Color.Red); }
public void TestShovel_MoveFlower_FlowerMoved() { var playBoard = new Board(_emptyBoard); var move1 = new Move(new Piece(PieceType.Flower, Color.Red, Color.None), CoordinateProvider.GetCoordinate('A', 1)); var move2 = new Move(new Piece(PieceType.Shovel, Color.None, Color.None), CoordinateProvider.GetCoordinate('A', 1)) { SecondCoordinate = CoordinateProvider.GetCoordinate('E', 4) }; playBoard.DoMove(move1); playBoard.DoMove(move2); Assert.That(playBoard[CoordinateProvider.GetCoordinate('E', 4)].Piece.Type == PieceType.Flower); Assert.That(playBoard[CoordinateProvider.GetCoordinate('E', 4)].Piece.OuterColor == Color.Red); Assert.That(playBoard[CoordinateProvider.GetCoordinate('E', 4)].Piece.InnerColor == Color.None); Assert.That(playBoard[CoordinateProvider.GetCoordinate('A', 1)].Piece.Type == PieceType.Empty); }
public void SetUp() { _parentWithSizeTwoA = new MoveList { new Move(new Piece(PieceType.Flower, Color.Pink, Color.Red), CoordinateProvider.GetCoordinate('A', 1)), new Move(new Piece(PieceType.Flower, Color.Blue, Color.Yellow), CoordinateProvider.GetCoordinate('A', 2)) }; _parentWithSizeTwoB = new MoveList { new Move(new Piece(PieceType.Flower, Color.Pink, Color.Red), CoordinateProvider.GetCoordinate('E', 1)), new Move(new Piece(PieceType.Flower, Color.Blue, Color.Yellow), CoordinateProvider.GetCoordinate('G', 2)) }; _parentWithSizeOneA = new MoveList { new Move(new Piece(PieceType.Flower, Color.Pink, Color.Red), CoordinateProvider.GetCoordinate('D', 3)), }; _parentWithSizeOneB = new MoveList { new Move(new Piece(PieceType.Flower, Color.Pink, Color.Red), CoordinateProvider.GetCoordinate('B', 6)), }; }
public void TestTShape4() { var playBoard = new Board(_emptyBoard); var move1 = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('C', 1)); var move2 = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('C', 3)); var move3 = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('A', 2)); var move4 = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('B', 2)); var move5 = new Move(new Piece(PieceType.Flower, Color.White, Color.None), CoordinateProvider.GetCoordinate('C', 2)); playBoard.DoMove(move1); playBoard.DoMove(move2); playBoard.DoMove(move3); playBoard.DoMove(move4); playBoard.DoMove(move5); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 1)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 3)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('A', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('B', 2)].Piece.Type == PieceType.Empty); Assert.That(playBoard[CoordinateProvider.GetCoordinate('C', 2)].Piece.Type == PieceType.Empty); }
public void TestOrderedMutationFirstLowThenHigh() { var orderedMutation = new OrderedMutation(new InsertNextItemRandomizer(2, 6)); //RandomizerFactory.CreateRandomizer( RandomizerType.TestLowHigh ) ); //randomizer returns 2 and 6 var mutant = orderedMutation.Mutate(_movelist); // 0 1 2 3 4 5 6 7 8 9 //(A,1);(B,1);(C,1);(D,1);(G,1);(A,2);(A,5);(A,3);(B,4);(D,4) // move Coordinate at 2 to 6 //(A,1);(B,1);(D,1);(G,1);(A,2);(A,5);(C,1);(A,3);(B,4);(D,4) TestHelper(mutant[0], PieceType.Flower, Color.Blue, Color.Cyan, CoordinateProvider.GetCoordinate('A', 1)); //1 TestHelper(mutant[1], PieceType.Flower, Color.Red, Color.Cyan, CoordinateProvider.GetCoordinate('B', 1)); //2 TestHelper(mutant[2], PieceType.Flower, Color.White, Color.Cyan, CoordinateProvider.GetCoordinate('D', 1)); //3 TestHelper(mutant[3], PieceType.Flower, Color.Yellow, Color.Cyan, CoordinateProvider.GetCoordinate('G', 1)); //4 TestHelper(mutant[4], PieceType.Flower, Color.Pink, Color.Cyan, CoordinateProvider.GetCoordinate('A', 2)); //5 TestHelper(mutant[5], PieceType.Flower, Color.Blue, Color.None, CoordinateProvider.GetCoordinate('A', 5)); //6 TestHelper(mutant[6], PieceType.Flower, Color.Blue, Color.Red, CoordinateProvider.GetCoordinate('C', 1)); //7 TestHelper(mutant[7], PieceType.Flower, Color.Blue, Color.White, CoordinateProvider.GetCoordinate('A', 3)); //8 TestHelper(mutant[8], PieceType.Flower, Color.Blue, Color.Yellow, CoordinateProvider.GetCoordinate('B', 4)); //9 TestHelper(mutant[9], PieceType.Flower, Color.Blue, Color.Pink, CoordinateProvider.GetCoordinate('D', 4)); //10 }
public void TestOrderedMutationFirstHighThenLow() { var orderedMutation = new OrderedMutation(new InsertNextItemRandomizer(6, 2)); //RandomizerFactory.CreateRandomizer( RandomizerType.TestHighLow ) ); //randomizer returns 6 and 2 var mutant = orderedMutation.Mutate(_movelist); // 0 1 2 3 4 5 6 7 8 9 //(A,1);(B,1);(C,1);(D,1);(G,1);(A,2);(A,5);(A,3);(B,4);(D,4) // move Coordinate at 6 to 2 //(A,1);(B,1);(A,5);(C,1);(D,1);(G,1);(A,2);(A,3);(B,4);(D,4) TestHelper(mutant[0], PieceType.Flower, Color.Blue, Color.Cyan, CoordinateProvider.GetCoordinate('A', 1)); TestHelper(mutant[1], PieceType.Flower, Color.Red, Color.Cyan, CoordinateProvider.GetCoordinate('B', 1)); TestHelper(mutant[2], PieceType.Flower, Color.White, Color.Cyan, CoordinateProvider.GetCoordinate('A', 5)); TestHelper(mutant[3], PieceType.Flower, Color.Yellow, Color.Cyan, CoordinateProvider.GetCoordinate('C', 1)); TestHelper(mutant[4], PieceType.Flower, Color.Pink, Color.Cyan, CoordinateProvider.GetCoordinate('D', 1)); TestHelper(mutant[5], PieceType.Flower, Color.Blue, Color.None, CoordinateProvider.GetCoordinate('G', 1)); TestHelper(mutant[6], PieceType.Flower, Color.Blue, Color.Red, CoordinateProvider.GetCoordinate('A', 2)); TestHelper(mutant[7], PieceType.Flower, Color.Blue, Color.White, CoordinateProvider.GetCoordinate('A', 3)); TestHelper(mutant[8], PieceType.Flower, Color.Blue, Color.Yellow, CoordinateProvider.GetCoordinate('B', 4)); TestHelper(mutant[9], PieceType.Flower, Color.Blue, Color.Pink, CoordinateProvider.GetCoordinate('D', 4)); }
public void GetInvalidCoordinates() { CoordinateProvider.GetCoordinate(8, 8); }
public void TestFlowersOnBoard_OneOrMoreFlowers_TrueResult() { var playBoard = new Board(_emptyBoard); var move1 = new Move(new Piece(PieceType.Flower, Color.Red, Color.None), CoordinateProvider.GetCoordinate('A', 1)); playBoard.DoMove(move1); Assert.That(playBoard.FlowersOnBoard()); }