Beispiel #1
0
        public void IsShipDirectionValid_ValidPointValidSizeLeftDirection()
        {
            Point         point         = new Point(9, 1);
            int           shipSize      = 5;
            ShipDirection shipDirection = ShipDirection.Left;

            Assert.IsTrue(GridValidator.IsShipDirectionValid(shipSize, point, shipDirection));
        }
Beispiel #2
0
        public void IsShipDirectionValid_ValidPointValidSizeRightDirection()
        {
            Point         point         = new Point(9, 6);
            int           shipSize      = 4;
            ShipDirection shipDirection = ShipDirection.Right;

            Assert.IsFalse(GridValidator.IsShipDirectionValid(shipSize, point, shipDirection));
        }
Beispiel #3
0
        public void IsShipDirectionValid_ValidPointValidSizeDownDirection()
        {
            Point         point         = new Point(9, 6);
            int           shipSize      = 4;
            ShipDirection shipDirection = ShipDirection.Down;

            Assert.IsTrue(GridValidator.IsShipDirectionValid(shipSize, point, shipDirection));
        }
Beispiel #4
0
        public void IsShipDirectionValid_ValidPointSizeDirection()
        {
            Point         point         = new Point(4, 6);
            int           shipSize      = 5;
            ShipDirection shipDirection = ShipDirection.Right;

            Assert.IsTrue(GridValidator.IsShipDirectionValid(shipSize, point, shipDirection));
        }
Beispiel #5
0
        public void ParseAmountFromString_RegularNumberIsNotChanged()
        {
            GridValidator.ParseAmountFromString("1", out decimal parsedDecimalAmount);
            Assert.AreEqual(1M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("-10", out parsedDecimalAmount);
            Assert.AreEqual(-10M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("100.98", out parsedDecimalAmount);
            Assert.AreEqual(100.98M, parsedDecimalAmount);
        }
        private void OnAvailableCellEditEnding(string newText)
        {
            if (!GridValidator.ParseAmountFromString(newText, out decimal newBudgetedAmount))
            {
                return;
            }

            decimal difference = SelectedCategory.Available - newBudgetedAmount;

            SelectedCategory.Budgeted -= difference;
        }
Beispiel #7
0
 private void ConstructShip(Point point, ShipDirection direction)
 {
     if (GridValidator.IsShipDirectionValid(Size, point, direction))
     {
         FillPoints(point, direction);
     }
     else
     {
         int randTrial = rand.Next(1, 2) % 2;
         direction = randTrial == 0 ? GetRandomDirection() : direction;
         point     = randTrial == 1 ? new Point(rand.Next(1, Constants.GridLength), rand.Next(1, Constants.GridLength)) : point;
         ConstructShip(point, direction);
     }
 }
Beispiel #8
0
        public Grid Map(IList <string> gridScale)
        {
            EnsureArg.IsNotNull(gridScale, nameof(gridScale));
            EnsureArg.SizeIs(gridScale, 2, nameof(gridScale));

            var grid = new Grid
            {
                XScale = int.Parse(gridScale[0]),
                YScale = int.Parse(gridScale[1])
            };

            var gridValidator = new GridValidator();

            gridValidator.ValidateAndThrow(grid);

            return(grid);
        }
Beispiel #9
0
        public void ParseAmountFromString_AdditionWorks()
        {
            GridValidator.ParseAmountFromString("$1.00 + $1.00", out decimal parsedDecimalAmount);
            Assert.AreEqual(2M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("9+7", out parsedDecimalAmount);
            Assert.AreEqual(16M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("$1000 + 8.85", out parsedDecimalAmount);
            Assert.AreEqual(1008.85M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("100 + $9.12", out parsedDecimalAmount);
            Assert.AreEqual(109.12M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("($9.00) + 9", out parsedDecimalAmount);
            Assert.AreEqual(0M, parsedDecimalAmount);
        }
        private static void GridIsGeneratedCorrectly(IPuzzlePolicy policy)
        {
            var validator = new GridValidator();
            var solver    = new SudokuSolver(validator);
            var generator = new SudokuGenerator(validator, solver);

            for (int i = 0; i < 5; i++)
            {
                var puzzle   = generator.GeneratePuzzle(policy);
                var fullGrid = puzzle.FullGrid;

                Assert.IsTrue(validator.GridIsComplete(fullGrid));
                Assert.IsTrue(validator.ValidRows(fullGrid));
                Assert.IsTrue(validator.ValidColumns(fullGrid));
                Assert.IsTrue(validator.ValidGroups(fullGrid));

                var puzzleGrid = puzzle.puzzleGrid;
                // Actual number of blanks can be less than specified in policy
                // as we could not find a puzzle with on single solutions with MaxBlanks
                Assert.IsTrue(validator.GetNumBlanks(puzzleGrid) <= policy.MaxBlanks);
            }
        }
Beispiel #11
0
        public void ParseAmountFromString_SubtractionWorks()
        {
            GridValidator.ParseAmountFromString("$10.00 - $4.00", out decimal parsedDecimalAmount);
            Assert.AreEqual(6M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("$1000 - 8.85", out parsedDecimalAmount);
            Assert.AreEqual(991.15M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("100 - $9.12", out parsedDecimalAmount);
            Assert.AreEqual(90.88M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("7 - 9", out parsedDecimalAmount);
            Assert.AreEqual(-2M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("-9", out parsedDecimalAmount);
            Assert.AreEqual(-9M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("($9.00) - 9", out parsedDecimalAmount);
            Assert.AreEqual(-18M, parsedDecimalAmount);

            GridValidator.ParseAmountFromString("($9.00) - 9 - 5", out parsedDecimalAmount);
            Assert.AreEqual(-23M, parsedDecimalAmount);
        }
Beispiel #12
0
 private static void OnInflowCellEditEnding(TextBox textBox)
 {
     GridValidator.ParseAmountFromString(textBox.Text, out decimal newBudgetedAmount);
     textBox.Text = newBudgetedAmount.ToString(CultureInfo.CurrentUICulture);
 }
 private void OnBudgetedCellEditEnding(string newText)
 {
     viewModel.SelectedItem.Budgeted = GridValidator.ParseAmountFromString(newText, out decimal newBudgetedAmount) ? newBudgetedAmount : 0;
 }
 private void OnNameCellEditEnding(string newText)
 {
     SelectedCategory.Name = GridValidator.ValidateNewStringIsUniqueFromExistingStrings(newText, viewModel.ItemList.Select(account => account.Name).ToList(), SelectedCategory.Name);
 }
Beispiel #15
0
 private Ship GenerateShip(Ship ship)
 {
     return(GridValidator.IsShipValid(ships, ship) ? ship : GenerateShip(new Ship(ship.Size)));
 }