Пример #1
0
        public void MatrixConstructorShouldCreateValidMatrix()
        {
            Matrix matrix = new Matrix(3, 3);
            var pos = new Position(2, 2);
            matrix[pos] = 5;

            Assert.AreEqual(5, matrix[pos]);
            Assert.AreEqual(0, matrix[new Position(2, 1)]);
        }
        internal static void PrintMatrix(Matrix matrix)
        {
            for (int row = 0; row < matrix.GetLength(0); row++)
            {
                for (int col = 0; col < matrix.GetLength(1); col++)
                {
                    var pos = new Position(row, col);
                    Console.Write(string.Format("{0,5}", matrix[pos]));
                }

                Console.WriteLine();
            }
        }
        public void MatrixGeneratorCheckIfFreeNeighbourCellExistsShouldWorkIfFreeNeighbourCellDeosNotExistsAndPositionIsAtTheBorder()
        {
            var arr = new int[,] {
                {1,1,1,1,1},
                {1,0,1,1,1},
                {1,1,1,1,1}
                         };
            var matrix = new Matrix(3, 5);
            matrix.MatrixArray = arr;
            var position = new Position(0, 4);

            var cellExist = matrix.CheckIfAnyNeighbourCellContainsValue(position, 0);

            Assert.IsFalse(cellExist);
        }
 public void IsPositionValidShouldReturnTrueOnValidPosition()
 {
     var arr = new int[,] {
         {1,1,1,1,0},
         {1,1,1,1,1},
         {1,1,1,0,0}
                  };
     var matrix = new Matrix(3, 5);
     matrix.MatrixArray = arr;
     var position = new Position(0, 4);
     Assert.IsTrue(matrix.IsPositionValid(position), "0 4");
     position = new Position(2, 4);
     Assert.IsTrue(matrix.IsPositionValid(position), "2 4");
     position = new Position(2, 3);
     Assert.IsTrue(matrix.IsPositionValid(position), "2 3");
 }
 public void IsPositionValidShouldReturnFalseOnInvalidPosition()
 {
     var arr = new int[,] {
         {1,1,1,1,1},
         {1,1,1,1,1},
         {1,1,1,1,1}
                  };
     var matrix = new Matrix(3, 5);
     matrix.MatrixArray = arr;
     var position = new Position(-2, 4);
     Assert.IsFalse(matrix.IsPositionValid(position));
     position = new Position(2, -5);
     Assert.IsFalse(matrix.IsPositionValid(position));
     position = new Position(-1, 3);
     Assert.IsFalse(matrix.IsPositionValid(position));
 }
Пример #6
0
        public IPosition getNeighbourPosition(Direction dir)
        {
            IPosition newPosition = new Position(this.Row, this.Col);

            switch (dir)
            {
                case Direction.DownRight:
                    newPosition.Row++;
                    newPosition.Col++;
                    break;
                case Direction.Down:
                    newPosition.Row++;
                    break;
                case Direction.DownLeft:
                    newPosition.Row++;
                    newPosition.Col--;
                    break;
                case Direction.Left:
                    newPosition.Col--;
                    break;
                case Direction.UpLeft:
                    newPosition.Row--;
                    newPosition.Col--;
                    break;
                case Direction.Up:
                    newPosition.Row--;
                    break;
                case Direction.UpRight:
                    newPosition.Row--;
                    newPosition.Col++;
                    break;
                case Direction.Right:
                    newPosition.Col++;
                    break;
                default:
                    throw new ArgumentException("Invalid direction.");
            }

            return newPosition;
        }