public void GetBitColumn_ShouldReturnAccurateColumn_GivenFullColumn() { var boardColumn = new BoardColumn(0, 0, null, null, null); boardColumn.SetSpace(DiscColor.Black); boardColumn.SetSpace(DiscColor.Black); boardColumn.SetSpace(DiscColor.Black); boardColumn.SetSpace(DiscColor.Red); boardColumn.SetSpace(DiscColor.Red); boardColumn.SetSpace(DiscColor.Red); var bitColumn = boardColumn.GetBitColumn(); Assert.IsTrue(BitBoardHelpers.CheckSingleBit(bitColumn.BlackDiscs, 0)); Assert.IsTrue(BitBoardHelpers.CheckSingleBit(bitColumn.BlackDiscs, 1)); Assert.IsTrue(BitBoardHelpers.CheckSingleBit(bitColumn.BlackDiscs, 2)); Assert.IsFalse(BitBoardHelpers.CheckSingleBit(bitColumn.BlackDiscs, 3)); Assert.IsFalse(BitBoardHelpers.CheckSingleBit(bitColumn.BlackDiscs, 4)); Assert.IsFalse(BitBoardHelpers.CheckSingleBit(bitColumn.BlackDiscs, 5)); Assert.IsFalse(BitBoardHelpers.CheckSingleBit(bitColumn.RedDiscs, 0)); Assert.IsFalse(BitBoardHelpers.CheckSingleBit(bitColumn.RedDiscs, 1)); Assert.IsFalse(BitBoardHelpers.CheckSingleBit(bitColumn.RedDiscs, 2)); Assert.IsTrue(BitBoardHelpers.CheckSingleBit(bitColumn.RedDiscs, 3)); Assert.IsTrue(BitBoardHelpers.CheckSingleBit(bitColumn.RedDiscs, 4)); Assert.IsTrue(BitBoardHelpers.CheckSingleBit(bitColumn.RedDiscs, 5)); }
public void CheckVictory_ShouldReturnNone_GivenNonWinningThirdRowHorizontals( int blackOne, int blackTwo, int redOne, int redTwo) { var board = BitBoardHelpers.GetNewBoard(); // Fill first row with non winners board = BitBoardHelpers.BitBoardMove(in board, 0, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, 1, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, 2, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, 3, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, 4, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, 5, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, 6, DiscColor.Black); // Fill second row with non winners board = BitBoardHelpers.BitBoardMove(in board, 0, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, 1, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, 2, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, 3, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, 4, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, 5, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, 6, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, blackOne, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, blackTwo, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, redOne, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, redTwo, DiscColor.Red); var winner = BitBoardHelpers.CheckVictory(in board); Assert.AreEqual(DiscColor.None, winner); }
public void PossibleFallingDiagonals_ShouldReturnZero_GivenEmptyBoard() { var board = BitBoardHelpers.GetNewBoard(); Assert.AreEqual(0.0m, BitBoardHelpers.ScorePossibleFallingDiagonals(board, DiscColor.Red)); Assert.AreEqual(0.0m, BitBoardHelpers.ScorePossibleFallingDiagonals(board, DiscColor.Black)); }
public void GetNewBoard_ShouldReturnBoardWithAllOpenColumns() { var board = BitBoardHelpers.GetNewBoard(); Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 0)); Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 1)); Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 2)); Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 3)); Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 4)); Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 5)); Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 6)); }
public void BitBoardMove_ShouldReturnOpenColumn_GivenFiveMovesInSameColumn(int column) { var board = BitBoardHelpers.GetNewBoard(); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red); Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, column)); }
public void CheckVictory_ShouldReturnNone_GivenThreeBlackMovesInColumn(int column) { var board = BitBoardHelpers.GetNewBoard(); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black); var winner = BitBoardHelpers.CheckVictory(board); Assert.AreEqual(DiscColor.None, winner); }
public void CheckVictory_ShouldReturnBlack_GivenBlackWinningColumn(int column) { var board = BitBoardHelpers.GetNewBoard(); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black); var winner = BitBoardHelpers.CheckVictory(board); Assert.AreEqual(DiscColor.Black, winner); }
public void CheckVictory_ShouldReturnNone_GivenNonWinningFirstRowHorizontals( int blackOne, int blackTwo, int redOne, int redTwo) { var board = BitBoardHelpers.GetNewBoard(); board = BitBoardHelpers.BitBoardMove(in board, blackOne, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, blackTwo, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, redOne, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, redTwo, DiscColor.Red); var winner = BitBoardHelpers.CheckVictory(in board); Assert.AreEqual(DiscColor.None, winner); }
public void CheckVictory_ShouldReturnNone_GivenThreeBlackMovesInRow( int firstColumn, int secondColumn, int thirdColumn) { var board = BitBoardHelpers.GetNewBoard(); board = BitBoardHelpers.BitBoardMove(in board, firstColumn, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, secondColumn, DiscColor.Black); board = BitBoardHelpers.BitBoardMove(in board, thirdColumn, DiscColor.Black); var winner = BitBoardHelpers.CheckVictory(board); Assert.AreEqual(DiscColor.None, winner); }
public void CheckVictory_ShouldReturnRed_GivenFourRedMovesInRow( int firstColumn, int secondColumn, int thirdColumn, int fourthColumn) { var board = BitBoardHelpers.GetNewBoard(); board = BitBoardHelpers.BitBoardMove(in board, firstColumn, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, secondColumn, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, thirdColumn, DiscColor.Red); board = BitBoardHelpers.BitBoardMove(in board, fourthColumn, DiscColor.Red); var winner = BitBoardHelpers.CheckVictory(board); Assert.AreEqual(DiscColor.Red, winner); }