public void TestAdjacentCell() { var pf = new Playfield(3, 3); for (int c = 0; c < pf.NumCellColumns; c++) { for (int r = 0; r < pf.NumCellRows; r++) { var currCell = pf.Cells[c][r]; Cell expected = pf.IsValid(c - 1, r) ? pf.Cells[c - 1][r] : null; Assert.AreEqual(expected, pf.AdjacentCell(currCell, Playfield.Position.Left)); expected = pf.IsValid(c + 1, r) ? pf.Cells[c + 1][r] : null; Assert.AreEqual(expected, pf.AdjacentCell(currCell, Playfield.Position.Right)); expected = pf.IsValid(c, r - 1) ? pf.Cells[c][r - 1] : null; Assert.AreEqual(expected, pf.AdjacentCell(currCell, Playfield.Position.Up)); expected = pf.IsValid(c, r + 1) ? pf.Cells[c][r + 1] : null; Assert.AreEqual(expected, pf.AdjacentCell(currCell, Playfield.Position.Down)); expected = pf.IsValid(c - 1, r - 1) ? pf.Cells[c - 1][r - 1] : null; Assert.AreEqual(expected, pf.AdjacentCell(currCell, Playfield.Position.UpLeft)); expected = pf.IsValid(c + 1, r - 1) ? pf.Cells[c + 1][r - 1] : null; Assert.AreEqual(expected, pf.AdjacentCell(currCell, Playfield.Position.UpRight)); expected = pf.IsValid(c - 1, r + 1) ? pf.Cells[c - 1][r + 1] : null; Assert.AreEqual(expected, pf.AdjacentCell(currCell, Playfield.Position.DownLeft)); expected = pf.IsValid(c + 1, r + 1) ? pf.Cells[c + 1][r + 1] : null; Assert.AreEqual(expected, pf.AdjacentCell(currCell, Playfield.Position.DownRight)); } } }