public void TestGetDistance() { var board = new BlockBoardStorage(1, 2, null); var items = new BoardStorageItem[3, 3]; var bonusItems = new BoardStorageItem[3, 3]; var pass1 = new Pass(null, null, new IntVector2(1, 2), new IntVector2(1, 1), new IntVector2(2, 2)); var pass2 = new Pass(null, null, new IntVector2(1, 1), new IntVector2(2, 2), new IntVector2(1, 1)); bonusItems[1, 1] = pass1; board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems); bonusItems[1, 1] = null; bonusItems[2, 2] = pass2; board.FillBlockForTesting(new IntVector2(1, 2), items, bonusItems); var graph = new Graph(board); var cell0 = board.GetBlock(new IntVector2(1, 1)).GetCellByPosition(new IntVector2(1, 2)); var cell1 = board.GetBlock(new IntVector2(1, 1)).GetCellByPosition(new IntVector2(1, 1)); var cell2 = board.GetBlock(new IntVector2(1, 2)).GetCellByPosition(new IntVector2(2, 2)); Assert.True(graph.GetDistance(cell0, cell2) == 1); Assert.True(graph.GetDistance(cell0, cell1) == 1); }
public void TestBoardWithTwoBlocksGetUserArmies() { var board = new BlockBoardStorage(1, 2, null); var items = new BoardStorageItem[3, 3]; var bonusItems = new BoardStorageItem[3, 3]; var playerType = PlayerType.FIRST; var item1 = new ArmyStorageItem(new UserArmy(playerType, null), null); var item2 = new ArmyStorageItem(new UserArmy(playerType, null), null); var item3 = new ArmyStorageItem(new UserArmy(playerType, null), null); var item4 = new ArmyStorageItem(new UserArmy(playerType, null), null); items[1, 1] = item1; items[2, 2] = item2; board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems); items[1, 1] = item3; items[2, 2] = item4; board.FillBlockForTesting(new IntVector2(1, 2), items, bonusItems); var armies = board.FindPlayerArmies(playerType); Assert.True(armies.Count == 4); }
public void TestBoardWithTwoBlocksGetPasses() { var board = new BlockBoardStorage(1, 2, null); var items = new BoardStorageItem[3, 3]; var bonusItems = new BoardStorageItem[3, 3]; var pass1 = new Pass(null, null, new IntVector2(1, 2), new IntVector2(1, 1), new IntVector2(2, 2)); var pass2 = new Pass(null, null, new IntVector2(1, 2), new IntVector2(2, 2), new IntVector2(1, 1)); var pass3 = new Pass(null, null, new IntVector2(1, 1), new IntVector2(1, 1), new IntVector2(2, 2)); var pass4 = new Pass(null, null, new IntVector2(1, 1), new IntVector2(2, 2), new IntVector2(1, 1)); bonusItems[1, 1] = pass1; bonusItems[2, 2] = pass2; board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems); bonusItems[1, 1] = pass3; bonusItems[2, 2] = pass4; board.FillBlockForTesting(new IntVector2(1, 2), items, bonusItems); var passes = board.GetPassesAsFromToCells(); Assert.True(passes.Count() == 4); }
public void TestGetPasses() { int size = 3; var board = new SingleBoardStorage(size, size, null); var bonusTable = new BoardStorageItem[size + 1, size + 1]; var boardTable = new BoardStorageItem[size + 1, size + 1]; var pass = new Pass(null, null, null, null, null); bonusTable[2, 2] = pass; board.Fill(boardTable, bonusTable); Assert.True(board.GetPasses().Count() == 1); Assert.AreSame(board.GetPasses().GetEnumerator().Current, pass); }
public void TestGetDistanceInNotConnectedGraph() { var board = new BlockBoardStorage(1, 2, null); var items = new BoardStorageItem[3, 3]; var bonusItems = new BoardStorageItem[3, 3]; board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems); board.FillBlockForTesting(new IntVector2(1, 2), items, bonusItems); var graph = new Graph(board); var cell0 = board.GetBlock(new IntVector2(1, 1)).GetCellByPosition(new IntVector2(1, 2)); var cell1 = board.GetBlock(new IntVector2(1, 1)).GetCellByPosition(new IntVector2(1, 1)); var cell2 = board.GetBlock(new IntVector2(1, 2)).GetCellByPosition(new IntVector2(2, 2)); Assert.True(graph.GetDistance(cell0, cell2) > 2); Assert.True(graph.GetDistance(cell0, cell1) == 1); }
public void TestGetUserArmiesWithoutArmies() { var board = new BlockBoardStorage(1, 1, null); var items = new BoardStorageItem[3, 3]; var bonusItems = new BoardStorageItem[3, 3]; var item1 = new ArmyStorageItem(new UserArmy(PlayerType.FIRST, null), null); var item2 = new ArmyStorageItem(new UserArmy(PlayerType.FIRST, null), null); items[1, 1] = item1; items[2, 2] = item2; board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems); var foundItems = board.FindPlayerArmies(PlayerType.SECOND); Assert.True(foundItems.Count == 0); }
public void TestInvertBoard() { int width = 3; int height = 2; var board = new SingleBoardStorage(width, height, null); var bonusTable = new BoardStorageItem[width + 1, height + 1]; var boardTable = new BoardStorageItem[width + 1, height + 1]; var pass = new Pass(null, null, null, null, null); var item = new ArmyStorageItem(null, null); bonusTable[2, 1] = pass; boardTable[3, 2] = item; board.Fill(boardTable, bonusTable); board.InvertBoard(); Assert.AreSame(board.GetItem(3, 2), null); Assert.AreSame(board.GetBonusItem(2, 1), null); Assert.AreSame(board.GetItem(2, 2), item); Assert.AreSame(board.GetBonusItem(1, 1), pass); }
public void TestFindPlayerArmies() { var firstPlayerType = PlayerType.FIRST; var secondPlayerType = PlayerType.SECOND; int size = 3; var board = new SingleBoardStorage(size, size, null); var bonusTable = new BoardStorageItem[size + 1, size + 1]; var boardTable = new BoardStorageItem[size + 1, size + 1]; boardTable[2, 2] = new ArmyStorageItem(new UserArmy(firstPlayerType, null), null); boardTable[1, 2] = new ArmyStorageItem(new UserArmy(firstPlayerType, null), null); board.Fill(boardTable, bonusTable); Assert.True(board.ContainsPlayerArmies(firstPlayerType)); Assert.False(board.ContainsPlayerArmies(secondPlayerType)); var armies = board.FindPlayerArmies(firstPlayerType); Assert.True(armies.Contains(board.GetCellByPosition(new IntVector2(1, 2)))); Assert.True(armies.Contains(board.GetCellByPosition(new IntVector2(2, 2)))); Assert.True(armies.Count == 2); }