public void TestLengthOfLongestMissingShip() { var shipTarget = new ShipTarget(); shipTarget[1] = 2; shipTarget[2] = 1; Assert.AreEqual(2, shipTarget.LengthOfLongestMissingShip(new int[3] { 0, 0, 0 })); Assert.AreEqual(1, shipTarget.LengthOfLongestMissingShip(new int[3] { 0, 0, 1 })); Assert.IsNull(shipTarget.LengthOfLongestMissingShip(new int[3] { 0, 2, 1 })); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget.LengthOfLongestMissingShip(new int[3] { 0, 0, 2 })); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget.LengthOfLongestMissingShip(new int[3] { 0, 3, 1 })); }
public void TestSatisfiabilitySeveralLength() { var shipTarget = new ShipTarget(); shipTarget[1] = 2; shipTarget[2] = 1; Assert.AreEqual(Satisfiability.SATISFIABLE, shipTarget.GetSatisfiability(new int[3] { 0, 0, 0 })); Assert.AreEqual(Satisfiability.SATISFIABLE, shipTarget.GetSatisfiability(new int[3] { 0, 0, 1 })); Assert.AreEqual(Satisfiability.VIOLATED, shipTarget.GetSatisfiability(new int[3] { 0, 0, 2 })); Assert.AreEqual(Satisfiability.SATISFIED, shipTarget.GetSatisfiability(new int[3] { 0, 2, 1 })); Assert.AreEqual(Satisfiability.VIOLATED, shipTarget.GetSatisfiability(new int[3] { 0, 3, 1 })); Assert.AreEqual(Satisfiability.VIOLATED, shipTarget.GetSatisfiability(new int[3] { 0, 3, 2 })); }
public void TestSatisfiabilitySingleLength() { var shipTarget = new ShipTarget(); shipTarget[1] = 3; Assert.AreEqual(Satisfiability.SATISFIABLE, shipTarget.GetSatisfiability(new int[2] { 0, 0 })); Assert.AreEqual(Satisfiability.SATISFIABLE, shipTarget.GetSatisfiability(new int[2] { 0, 1 })); Assert.AreEqual(Satisfiability.SATISFIABLE, shipTarget.GetSatisfiability(new int[2] { 0, 2 })); Assert.AreEqual(Satisfiability.SATISFIED, shipTarget.GetSatisfiability(new int[2] { 0, 3 })); Assert.AreEqual(Satisfiability.VIOLATED, shipTarget.GetSatisfiability(new int[2] { 0, 4 })); Assert.AreEqual(Satisfiability.VIOLATED, shipTarget.GetSatisfiability(new int[2] { 0, 5 })); }
public IGame GenerateEmptyGame(int numRows, int numColumns) { var rowTally = new GridTally(numRows); var columnTally = new GridTally(numColumns); var shipSettings = new ShipTarget(); var grid = new BimaruGrid(numRows, numColumns); return(new Game(rowTally, columnTally, shipSettings, grid)); }
public void TestDefaultZero() { var shipTarget = new ShipTarget(); Assert.AreEqual(0, shipTarget[-10]); Assert.AreEqual(0, shipTarget[-2]); Assert.AreEqual(0, shipTarget[-1]); Assert.AreEqual(0, shipTarget[0]); Assert.AreEqual(0, shipTarget[1]); Assert.AreEqual(0, shipTarget[10]); }
public void TestLengthOfLongestMissingShipNoShips() { var shipTarget = new ShipTarget(); Assert.IsNull(shipTarget.LengthOfLongestMissingShip(new int[2] { 0, 0 })); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget.LengthOfLongestMissingShip(new int[2] { 0, 1 })); }
public void TestNumberOfShipsRange() { var shipTarget = new ShipTarget(); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget[1] = -10); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget[1] = -2); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget[1] = -1); shipTarget[1] = 0; shipTarget[1] = 1; shipTarget[1] = 10; }
public void TestShipLengthRange() { var shipTarget = new ShipTarget(); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget[-10] = 1); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget[-1] = 1); Assert.ThrowsException <ArgumentOutOfRangeException>(() => shipTarget[0] = 1); shipTarget[1] = 1; shipTarget[2] = 1; shipTarget[10] = 1; }
public void TestSetTarget() { var shipTarget = new ShipTarget(); shipTarget[1] = 3; shipTarget[2] = 3; shipTarget[3] = 6; Assert.AreEqual(3, shipTarget[1]); Assert.AreEqual(3, shipTarget[2]); Assert.AreEqual(6, shipTarget[3]); Assert.AreEqual(0, shipTarget[4]); }
public void TestSatisfiabilityNoShips() { var shipTarget = new ShipTarget(); Assert.AreEqual(Satisfiability.SATISFIED, shipTarget.GetSatisfiability(new int[2] { 0, 0 })); Assert.AreEqual(Satisfiability.VIOLATED, shipTarget.GetSatisfiability(new int[2] { 0, 1 })); Assert.AreEqual(Satisfiability.VIOLATED, shipTarget.GetSatisfiability(new int[2] { 0, 2 })); }
public void TestNullArguments() { int numRows = 4; int numColumns = 3; var rowTally = new GridTally(numRows); var columnTally = new GridTally(numColumns); var shipTarget = new ShipTarget(); var grid = new BimaruGrid(numRows, numColumns); Assert.ThrowsException <ArgumentNullException>(() => new Game(null, columnTally, shipTarget, grid)); Assert.ThrowsException <ArgumentNullException>(() => new Game(rowTally, null, shipTarget, grid)); Assert.ThrowsException <ArgumentNullException>(() => new Game(rowTally, columnTally, null, grid)); Assert.ThrowsException <ArgumentNullException>(() => new Game(rowTally, columnTally, shipTarget, null)); }
public void TestColumnTallyGridMismatch() { GridTally rowTally = new GridTally(4); GridTally columnTally; var shipTarget = new ShipTarget(); var grid = new BimaruGrid(4, 3); columnTally = new GridTally(2); Assert.ThrowsException <ArgumentOutOfRangeException>(() => new Game(rowTally, columnTally, shipTarget, grid)); columnTally = new GridTally(3); new Game(rowTally, columnTally, shipTarget, grid); columnTally = new GridTally(4); Assert.ThrowsException <ArgumentOutOfRangeException>(() => new Game(rowTally, columnTally, shipTarget, grid)); }
public void TestTotalShipFields() { var shipTarget = new ShipTarget(); Assert.AreEqual(0, shipTarget.TotalShipFields); shipTarget[1] = 3; Assert.AreEqual(3 * 1, shipTarget.TotalShipFields); shipTarget[2] = 4; Assert.AreEqual(3 * 1 + 4 * 2, shipTarget.TotalShipFields); shipTarget[2] = 0; Assert.AreEqual(3 * 1, shipTarget.TotalShipFields); }
public void TestLongestShipLength() { var shipTarget = new ShipTarget(); Assert.IsNull(shipTarget.LongestShipLength); shipTarget[1] = 3; Assert.AreEqual(1, shipTarget.LongestShipLength); shipTarget[3] = 1; Assert.AreEqual(3, shipTarget.LongestShipLength); shipTarget[1] = 0; Assert.AreEqual(3, shipTarget.LongestShipLength); shipTarget[3] = 0; Assert.IsNull(shipTarget.LongestShipLength); }