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
            }));
        }
Beispiel #4
0
        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
            }));
        }
Beispiel #11
0
        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));
        }
Beispiel #12
0
        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);
        }