public void BasicBlinkerOscilatesTwoTimes()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell(0, 0));
     alive.Add(new Cell(1, 0));
     alive.Add(new Cell(2, 0));
     GameBoard board = new GameBoard(alive);
     List<Cell> aliveNew = new List<Cell>();
     aliveNew.Add(new Cell(1, 0));
     aliveNew.Add(new Cell(0, 0));
     aliveNew.Add(new Cell(2, 0));
     board.Tick();
     board.Tick();
     CollectionAssert.AreEqual(aliveNew, board.AliveCells);
 }
        public void TestEmptyBoard()
        {
            var g = new GameBoard(new int[][]
            {
                new[] { 0, 0, 0 },
                new[] { 0, 0, 0 },
                new[] { 0, 0, 0 },
            });

            g.Tick();

            AssertEqualBoard(g, new int[][]
            {
                new[] { 0, 0, 0 },
                new[] { 0, 0, 0 },
                new[] { 0, 0, 0 },
            });
        }
        public void TestFourCornersReturnEmpty()
        {
            var g = new GameBoard(new int[][]
            {
                new [] { 1, 0, 1 },
                new [] { 0, 0, 0 },
                new [] { 1, 0, 1 },
            });

            g.Tick();

            AssertEqualBoard(g, new int[][]
            {
                new [] { 0, 0, 0 },
                new [] { 0, 0, 0 },
                new [] { 0, 0, 0 },
            });
        }
        public void TestBoardGrowsLeft()
        {
            var g = new GameBoard(new int[][]
            {
                new [] { 1, 0, 0 },
                new [] { 1, 0, 0 },
                new [] { 1, 0, 0 },
            });

            g.Tick();

            AssertEqualBoard(g, new int[][]
            {
                new [] { 0, 0, 0, 0 },
                new [] { 1, 1, 0, 0 },
                new [] { 0, 0, 0, 0 },
            });
        }
 public void SqaureStaysASquare()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell(0, 0));
     alive.Add(new Cell(0, 1));
     alive.Add(new Cell(1, 0));
     alive.Add(new Cell(1, 1));
     GameBoard board = new GameBoard(alive);
     board.Tick();
     Assert.AreEqual(4, board.AliveCells.Count);
 }
        public void TestFourNeigborsKillsYou()
        {
            var g = new GameBoard(new int[][]
            {
                new [] { 0, 0, 0, 0 },
                new [] { 0, 1, 1, 0 },
                new [] { 0, 1, 1, 0 },
                new [] { 0, 1, 0, 0 },
            });

            g.Tick();

            AssertEqualBoard(g, new int[][]
            {
                new [] { 0, 0, 0, 0 },
                new [] { 0, 1, 1, 0 },
                new [] { 1, 0, 0, 0 },
                new [] { 0, 1, 1, 0 },
            });
        }
        public void TestUpperEdgeReturnsEmpty()
        {
            var g = new GameBoard(new int[][]
            {
                new [] { 0, 1, 0 },
                new [] { 0, 0, 0 },
                new [] { 0, 0, 0 },
            });

            g.Tick();

            AssertEqualBoard(g, new int[][]
            {
                new [] { 0, 0, 0 },
                new [] { 0, 0, 0 },
                new [] { 0, 0, 0 },
            });
        }
        public void TestThreeNeighborsComesAlive()
        {
            var g = new GameBoard(new int[][]
            {
                new [] { 0, 1, 0 },
                new [] { 0, 1, 0 },
                new [] { 0, 1, 0 },
            });

            g.Tick();

            AssertEqualBoard(g, new int[][]
            {
                new [] { 0, 0, 0 },
                new [] { 1, 1, 1 },
                new [] { 0, 0, 0 },
            });
        }
        public void TestOneNeighborDies()
        {
            var g = new GameBoard(new int[][]
            {
                new [] { 0, 0, 0,},
                new [] { 0, 0, 1,},
                new [] { 0, 0, 1,},
            });

            g.Tick();

            AssertEqualBoard(g, new int[][]
            {
                new [] { 0, 0, 0,},
                new [] { 0, 0, 0,},
                new [] { 0, 0, 0,},
            });
        }
        public void TestOneAliveDies()
        {
            var g = new GameBoard(new int[][]
            {
                new [] { 0, 0, 0 },
                new [] { 0, 1, 0 },
                new [] { 0, 0, 0 },
            });

            g.Tick();

            AssertEqualBoard(g, new int[][]
            {
                new [] { 0, 0, 0 },
                new [] { 0, 0, 0 },
                new [] { 0, 0, 0 },
            });
        }