示例#1
0
        public void FloodPixels_ColorsAllAdjacentPixelsOfSameColor()
        {
            //  Arrange
            PixelPainter pixelPainter = new PixelPainter(9, 9);

            pixelPainter.Grid[new Point(2, 3)] = Color.Blue;
            pixelPainter.Grid[new Point(3, 2)] = Color.Green;
            pixelPainter.Grid[new Point(3, 3)] = Color.Green;
            pixelPainter.Grid[new Point(3, 4)] = Color.Green;
            pixelPainter.Grid[new Point(3, 5)] = Color.Green;
            pixelPainter.Grid[new Point(3, 6)] = Color.Green;
            pixelPainter.Grid[new Point(4, 3)] = Color.Blue;
            pixelPainter.Grid[new Point(5, 3)] = Color.Blue;
            pixelPainter.Grid[new Point(5, 4)] = Color.Blue;
            pixelPainter.Grid[new Point(6, 3)] = Color.Blue;
            pixelPainter.Grid[new Point(6, 4)] = Color.Blue;
            pixelPainter.Grid[new Point(7, 3)] = Color.Blue;
            pixelPainter.Grid[new Point(8, 2)] = Color.Yellow;
            pixelPainter.Grid[new Point(8, 4)] = Color.Blue;
            pixelPainter.Grid[new Point(8, 5)] = Color.Blue;

            //  Act
            pixelPainter.FloodPixels(new Point(6, 3), Color.Red);
            var numberOfFloodedPixels = pixelPainter.Grid.Values.Where(x => x == Color.Red).Count();

            //  Assert
            Assert.AreEqual(6, numberOfFloodedPixels);
        }
示例#2
0
        public void FloodPixels_StopsAtGridBoundaries()
        {
            //  Arrange
            PixelPainter pixelPainter = new PixelPainter(9, 9);

            //  Act
            pixelPainter.FloodPixels(new Point(1, 1), Color.Red);
            var numberOfFloodedPixels = pixelPainter.Grid.Values.Where(x => x == Color.Red).Count();

            //  Assert
            Assert.AreEqual(81, numberOfFloodedPixels);
        }