public void TestFindEmptyCell_ValidEmptyCell()
        {
            // Arrange
            matrix[4, 3] = 0;
            var emptyCell = new RotatingWalkInMatrix.Position(4, 3);

            // Act
            var positionFound = RotatingWalkInMatrix.FindEmptyCell(matrix);

            // Assert
            Assert.AreEqual(emptyCell.X, positionFound.X);
            Assert.AreEqual(emptyCell.Y, positionFound.Y);
        }
        public void TestIsNextPositionValid_InvalidPositionCoordinates()
        {
            // Arrange
            RotatingWalkInMatrix.Position currentPosition = new RotatingWalkInMatrix.Position(5, 5);
            RotatingWalkInMatrix.Position movementDirection = new RotatingWalkInMatrix.Position(1, 1);

            // Act
            bool isNextPositionInvalid = RotatingWalkInMatrix.IsNextPositionInvalid(
                currentPosition.X, currentPosition.Y,
                movementDirection.X, movementDirection.Y, matrix);

            // Assert
            Assert.IsTrue(isNextPositionInvalid);
        }
        public void TestIsNextPositionInvalid_ValidPosition()
        {
            // Arrange
            RotatingWalkInMatrix.Position currentPosition = new RotatingWalkInMatrix.Position(1, 2);
            matrix[2, 3] = 0;
            RotatingWalkInMatrix.Position movementDirection = new RotatingWalkInMatrix.Position(1, 1);

            // Act
            bool isNextPositionInvalid = RotatingWalkInMatrix.IsNextPositionInvalid(currentPosition.X, currentPosition.Y,
                movementDirection.X, movementDirection.Y, matrix);

            // Assert
            Assert.IsFalse(isNextPositionInvalid);
        }