public void IsDeadCount7()
 {
     GameBoard board = new GameBoard(10);
     board.MakeCellAlive(5, 5);
     int actual = board.NeighborsAlive(4, 5)[1];
     Assert.AreEqual(7, actual);
 }
 public void ChangeStatusAccordingToRules()
 {
     GameBoard board = new GameBoard(6);
     board.MakeCellAlive(5, 5);
     bool actual = board.ChangeStatus(5, 5, 0, 8);
     Assert.AreEqual(true, actual);
 }
 public void IsAliveCount1()
 {
     GameBoard board = new GameBoard(10);
     board.MakeCellAlive(5, 5);
     int actual = board.NeighborsAlive(4,5)[0];
     Assert.AreEqual(1, actual);
 }
 public void CanConvertCellsToBools()
 {
     GameBoard board = new GameBoard(10);
     List<List<bool>> boolList = board.CellsToBoolsConverter();
     bool actual = boolList[0][0];
     Assert.AreEqual(false, actual);
 }
 public void CanConvertNthCellToBool()
 {
     GameBoard board = new GameBoard(10);
     board.MakeCellAlive(5, 5);
     List<List<bool>> boolList = board.CellsToBoolsConverter();
     bool actual = boolList[5][5];
     Assert.AreEqual(true, actual);
 }
 public void CanApplyKillRules()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell ( 1, 2 ));
     alive.Add(new Cell ( 2, 2 ));
     alive.Add(new Cell ( 2, 3 ));
     alive.Add(new Cell ( 4, 3 ));
     GameBoard board = new GameBoard(alive);
     Cell cellToKill = new Cell(1, 2);
     board.ApplyKillRules(cellToKill, 4);
     Assert.IsTrue(cellToKill.MarkForChange);
 }
 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 MainWindow()
        {
            // currentBoard = new FauxGameOfLife();
            currentBoard = new GameBoard(10);
            currentBoard.MakeCellAlive(5, 5);
            currentBoard.MakeCellAlive(6, 5);
            currentBoard.MakeCellAlive(6, 6);
            currentBoard.MakeCellAlive(7, 6);
            currentBoard.MakeCellAlive(6, 7);
            currentBoard.MakeCellAlive(7, 7);
            dispatcherTimer = new DispatcherTimer();

            InitializeComponent();

            TheListView.ItemsSource = currentBoard.ToList();
            dispatcherTimer.Tick += dispatcherTimerClick;
            dispatcherTimer.Interval = TimeSpan.FromSeconds((double)RunSpeed.Value);
        }
        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 CanGenerateNeighborsList()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell (1, 2));
     alive.Add(new Cell(0, 1));
     alive.Add(new Cell(1, 4));
     alive.Add(new Cell(3, 2));
     GameBoard board = new GameBoard(alive);
     List<Cell> expected = new List<Cell>();
     expected.Add(new Cell(1, 1));
     expected.Add(new Cell(1, 2));
     expected.Add(new Cell(1, 3));
     expected.Add(new Cell(2, 1));
     expected.Add(new Cell(2, 3));
     expected.Add(new Cell(3, 1));
     expected.Add(new Cell(3, 2));
     expected.Add(new Cell(3, 3));
     List<Cell> neighbors = board.GenerateNeighborsList(new Cell(2, 2));
     CollectionAssert.AreEqual(expected, neighbors);
 }
 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 NewBoardIsNotNull()
 {
     GameBoard board = new GameBoard();
     Assert.IsNotNull(board);
 }
 public void NewBoardAcceptsAliveArgument()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell(1, 2));
     GameBoard board = new GameBoard(alive);
     Assert.AreEqual(1, board.AliveCells.Count);
     CollectionAssert.AreEqual(alive, board.AliveCells);
 }
 public void GetAliveCellRange()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell(1, 2));
     alive.Add(new Cell(1, 4));
     alive.Add(new Cell(3, 2));
     alive.Add(new Cell(0, 1));
     GameBoard board = new GameBoard(alive);
     Assert.AreEqual(0, board.Range.LowRow);
     Assert.AreEqual(1, board.Range.LowCol);
     Assert.AreEqual(3, board.Range.HighRow);
     Assert.AreEqual(4, board.Range.HighCol);
 }
        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 CanCreateGameBoard()
 {
     GameBoard board = new GameBoard(4);
     Assert.IsNotNull(board);
 }
 public void CanCreateTableRowOfCorrectSize()
 {
     GameBoard board = new GameBoard(4);
     Assert.AreEqual(4, board.FillRow(0, 4).Count);
 }
        private static void AssertEqualBoard(GameBoard gameBoard, int[][] expectedState)
        {
            Assert.AreEqual(expectedState.Length, gameBoard.CurrentBoard.Length);

            for (int boardRow = 0; boardRow < gameBoard.CurrentBoard.Length; boardRow++)
            {
                CollectionAssert.AreEqual(expectedState[boardRow], gameBoard.CurrentBoard[boardRow],
                    string.Format("Row {0} does not match:  Expected:  {1}  Actual:  {2} ",
                                  boardRow,
                                  expectedState[boardRow].ListContents(),
                                  gameBoard.CurrentBoard[boardRow].ListContents()));
            }
        }
        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 SumOfAliveNeighbors()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell ( 1, 2 ));
     alive.Add(new Cell ( 2, 2 ));
     alive.Add(new Cell ( 2, 3 ));
     alive.Add(new Cell ( 4, 3 ));
     GameBoard board = new GameBoard(alive);
     Assert.AreEqual(3, board.NeighborsAliveCount(new Cell(1, 3)));
 }
        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 SumOfNeighborsFour()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell(0, 0));
     alive.Add(new Cell(1, 0));
     alive.Add(new Cell(2, 0));
     alive.Add(new Cell(2, 1));
     alive.Add(new Cell(1, 2));
     GameBoard board = new GameBoard(alive);
     Assert.AreEqual(3, board.NeighborsAliveCount(board.AliveCells[3]));
 }
 public void CorrectDeadCellCanComeToLife()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell(1, 2));
     alive.Add(new Cell(2, 2));
     alive.Add(new Cell(2, 3));
     alive.Add(new Cell(4, 3));
     GameBoard board = new GameBoard(alive);
     List<Cell> liveCellCandidates = new List<Cell>();
     liveCellCandidates.Add(new Cell ( 1, 3 ));
     liveCellCandidates.Add(new Cell ( 1, 3 ));
     liveCellCandidates.Add(new Cell ( 4, 1 ));
     liveCellCandidates.Add(new Cell ( 1, 3 ));
     board.CheckBringCellToLife(liveCellCandidates);
     Assert.AreEqual(5, board.AliveCells.Count);
 }
 public void CanCreateBoardWithCorrectNumberOfCells()
 {
     GameBoard board = new GameBoard(10);
     int actual = board.Cells.Count;
     Assert.AreEqual(10, actual);
 }
 public void EnsureTwoCellsAreEqualInList()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell(1, 2));
     alive.Add(new Cell(1, 2));
     GameBoard board = new GameBoard(alive);
     Assert.AreEqual(board.AliveCells[0], board.AliveCells[1]);
 }
 public void CellMarkedForChangeIsRemoved()
 {
     List<Cell> alive = new List<Cell>();
     alive.Add(new Cell(1, 2));
     alive.Add(new Cell(2, 2));
     alive.Add(new Cell(2, 3));
     alive.Add(new Cell(4, 3));
     GameBoard board = new GameBoard(alive);
     board.ApplyKillRules(board.AliveCells[0], 4);
     board.RemoveCellsThatDied();
     Assert.AreEqual(3, board.AliveCells.Count);
     //board.AliveCells = board.RemoveCellsThatDied();
     //Assert.AreEqual(3, board.AliveCells.Count);
 }
        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 },
            });
        }