def testValueAt(self):
     grid = [
         [1, 2, 4],
         [3, 5, 6],
         [3, 5, 6],
         ]
     expected = 5
     cell = (1, 0)
     actual = value_at(grid, cell)
     self.assertEqual(expected, actual)
 def test_max_cell(self):
     grid = [
         [1, 2, 4],
         [3, 5, 6],
         [7, 8, 9],
         ]
     cells = [(0,0), (1,0), (2,0)]
     expected = (2,0)
     self.assertEqual(9, value_at(grid, expected))
     actual = max_cell(grid, cells)
     self.assertEqual(expected, actual)
 def test_valid_cells_from_bottom_edge(self):
     grid = [
         [1, 2, 4],
         [3, 5, 6],
         [7, 8, 9],
         ]
     current_xy = (1,0)
     self.assertEqual(8, value_at(grid, current_xy))
     
     seen_cells = []
     expected = [ (0, 0), (1, 1), (2, 0) ]
     actual = valid_cells_from(current_xy, seen_cells, len(grid))
     self.assertEqual(sorted(expected), sorted(actual))