def test_mandatory_empty_square_between_groups(self): nonogram = [[' ', 'X', 'X', 'X'], ['X', ' ', ' ', 'X']] keys = {'rows': [[1], [1]], 'columns': [[1], [1], [1], [2]]} self.assertFalse(solution.validate_nonogram(nonogram, keys))
def test_valid_nonogram(self): nonogram = [['X', 'X', ' ', ' ', ' '], ['X', 'X', ' ', 'X', ' '], [' ', 'X', ' ', 'X', ' '], [' ', 'X', 'X', 'X', 'X'], [' ', ' ', 'X', 'X', ' ']] keys = {'rows': [[2], [2, 1], [1, 1], [4], [2]], 'columns': [[2], [4], [2], [4], [1]]} self.assertTrue(solution.validate_nonogram(nonogram, keys))
def test_valid_nonogram(self): nonogram = [['X', 'X', ' ', ' ', ' '], ['X', 'X', ' ', 'X', ' '], [' ', 'X', ' ', 'X', ' '], [' ', 'X', 'X', 'X', 'X'], [' ', ' ', 'X', 'X', ' ']] keys = { 'rows': [[2], [2, 1], [1, 1], [4], [2]], 'columns': [[2], [4], [2], [4], [1]] } self.assertTrue(solution.validate_nonogram(nonogram, keys))
def test_validate_nonogram4(self): rows = [[6], [1, 2, 1], [1, 2, 1], [1, 2, 1], [1, 2, 1], [6]] cols = [[6], [1, 1], [2, 3], [6], [1, 1], [6]] keys = {"rows": rows, "columns": cols} nonogram = [ ["X", "X", "X", "X", "X", "X"], ["X", " ", "X", "X", " ", "X"], ["X", " ", " ", "X", " ", "X"], ["X", " ", "X", "X", " ", "X"], ["X", " ", "X", "X", " ", "X"], ["X", "X", "X", "X", "X", "X"], ] self.assertFalse(validate_nonogram(nonogram, keys))
def test_validate_nonogram3(self): rows = [[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]] cols = [[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]] keys = {"rows": rows, "columns": cols} nonogram = [ ["X", " ", "X", " ", "X", " "], [" ", "X", " ", "X", " ", "X"], ["X", " ", "X", " ", "X", " "], [" ", "X", " ", "X", " ", "X"], ["X", " ", "X", " ", "X", " "], [" ", "X", " ", "X", " ", "X"], ] self.assertTrue(validate_nonogram(nonogram, keys))
def test_validate_nonogram1(self): rows = [[4], [6], [3, 2], [3, 1, 1], [3, 3], [5, 1], [8], [10], [7, 3]] cols = [[1], [2], [3], [4], [6], [7], [8], [3, 3], [2, 2], [2, 1, 3], [3, 2, 2], [4, 1], [1], [0], [0]] keys = {"rows": rows, "columns": cols} nonogram = [ [" ", " ", " ", " ", " ", " ", " ", "X", "X", "X", "X", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "X", "X", "X", "X", "X", "X", " ", " ", " "], [" ", " ", " ", " ", " ", "X", "X", "X", " ", " ", "X", "X", " ", " ", " "], [" ", " ", " ", " ", "X", "X", "X", " ", " ", "X", " ", "X", " ", " ", " "], [" ", " ", " ", " ", "X", "X", "X", " ", " ", " ", "X", "X", "X", " ", " "], [" ", " ", " ", "X", "X", "X", "X", "X", " ", " ", "X", " ", " ", " ", " "], [" ", " ", "X", "X", "X", "X", "X", "X", "X", "X", " ", " ", " ", " ", " "], [" ", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", " ", " ", " "], ["X", "X", "X", "X", "X", "X", "X", " ", " ", "X", "X", "X", " ", " ", " "], ] self.assertTrue(validate_nonogram(nonogram, keys))
def test_python_nonogram(self): python_nonogram = [ [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' '], [' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' '], ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' '], [' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], ] python_keys = { 'rows': [ [12], [14], [3, 11], [3, 11], [16], [16], [16], [7], [26], [22, 1], [23, 1], [23, 1], [23, 1], [22, 1], [21, 1], [8, 1], [7, 1], [7, 1], [7, 1], [7, 1], [6, 1], [6, 15], [1, 1], [1, 10], [1, 1], [1, 1], [1, 2, 1], [1, 2, 1], [1, 1], [12] ], 'columns': [ [10], [12], [14], [14], [14], [14], [14], [5, 8, 7], [6, 7, 1], [7, 7, 1], [2, 3, 7, 1], [2, 3, 7, 1], [7, 7, 1], [7, 7, 3, 1], [7, 7, 1, 1, 1], [7, 7, 1, 1, 1], [15, 1, 1, 1], [15, 1, 1, 1], [15, 1, 1, 2, 1], [15, 1, 1, 2, 1], [15, 1, 1, 1], [13, 1, 1, 1], [11, 1, 5], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [10] ] } self.assertTrue(solution.validate_nonogram(python_nonogram, python_keys))
def test_ruby_nonogram(self): ruby_nonogram = [ [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X'], [' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X'], ['X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X'], ['X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', 'X'], ['X', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', 'X'], ['X', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X'], ['X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', 'X'], ['X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', 'X'], ['X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X'], ['X', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', 'X'], ['X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ', 'X', 'X', ' ', 'X'], ['X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', ' ', 'X'], ['X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X'], ['X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ], ] ruby_keys = { 'rows': [ [15], [3, 3], [2, 2, 2, 1], [2, 2, 2, 1], [2, 2, 2, 1], [2, 2, 2, 1], [2, 1, 2, 1], [2, 3, 1], [2, 8, 1], [2, 6, 3, 1], [2, 1, 2, 1, 1], [2, 1, 2, 2, 1], [2, 1, 2, 1, 1], [2, 1, 2, 1, 1], [2, 2, 2, 2, 1], [2, 1, 2, 1, 1], [3, 1, 2, 1, 1], [1, 2, 1, 2, 2, 1], [1, 2, 1, 2, 1, 1], [1, 2, 3, 1, 1], [1, 5, 2, 1], [1, 5, 1, 1], [1, 2, 4, 1, 1], [1, 2, 4, 2, 1], [1, 2, 4, 1, 1], [1, 2, 4, 2, 1], [1, 2, 2, 1, 1], [3, 6], [2, 3], [30] ], 'columns': [ [15], [3, 3], [2, 2, 2, 1], [2, 2, 2, 1], [2, 2, 2, 1], [2, 2, 2, 1], [2, 1, 2, 1], [2, 3, 1], [2, 8, 1], [2, 6, 3, 1], [2, 1, 2, 1, 1], [2, 1, 2, 2, 1], [2, 1, 2, 1, 1], [2, 1, 2, 1, 1], [2, 2, 2, 2, 1], [2, 1, 2, 1, 1], [3, 1, 2, 1, 1], [1, 2, 1, 2, 2, 1], [1, 2, 1, 2, 1, 1], [1, 2, 3, 1, 1], [1, 5, 2, 1], [1, 5, 1, 1], [1, 2, 4, 1, 1], [1, 2, 4, 2, 1], [1, 2, 4, 2, 1], [1, 2, 4, 1, 1], [1, 2, 3, 1, 1], [3, 5], [2, 3], [30] ], } self.assertTrue(solution.validate_nonogram(ruby_nonogram, ruby_keys))
def test_python_nonogram(self): python_nonogram = [ [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ' ], [ ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ' ], [ ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ], ] python_keys = { 'rows': [[12], [14], [3, 11], [3, 11], [16], [16], [16], [7], [26], [22, 1], [23, 1], [23, 1], [23, 1], [22, 1], [21, 1], [8, 1], [7, 1], [7, 1], [7, 1], [7, 1], [6, 1], [6, 15], [1, 1], [1, 10], [1, 1], [1, 1], [1, 2, 1], [1, 2, 1], [1, 1], [12]], 'columns': [[10], [12], [14], [14], [14], [14], [14], [5, 8, 7], [6, 7, 1], [7, 7, 1], [2, 3, 7, 1], [2, 3, 7, 1], [7, 7, 1], [7, 7, 3, 1], [7, 7, 1, 1, 1], [7, 7, 1, 1, 1], [15, 1, 1, 1], [15, 1, 1, 1], [15, 1, 1, 2, 1], [15, 1, 1, 2, 1], [15, 1, 1, 1], [13, 1, 1, 1], [11, 1, 5], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [10]] } self.assertTrue( solution.validate_nonogram(python_nonogram, python_keys))
def test_ruby_nonogram(self): ruby_nonogram = [ [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X' ], [ ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X' ], [ 'X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X' ], [ 'X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', 'X' ], [ 'X', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ', 'X' ], [ 'X', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X' ], [ 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', 'X' ], [ 'X', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ', 'X' ], [ 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X' ], [ 'X', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', 'X', ' ', ' ', 'X' ], [ 'X', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ', 'X', 'X', ' ', 'X' ], [ 'X', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', 'X', ' ', 'X' ], [ 'X', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X' ], [ 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'X', 'X', 'X' ], [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', ], ] ruby_keys = { 'rows': [[15], [3, 3], [2, 2, 2, 1], [2, 2, 2, 1], [2, 2, 2, 1], [2, 2, 2, 1], [2, 1, 2, 1], [2, 3, 1], [2, 8, 1], [2, 6, 3, 1], [2, 1, 2, 1, 1], [2, 1, 2, 2, 1], [2, 1, 2, 1, 1], [2, 1, 2, 1, 1], [2, 2, 2, 2, 1], [2, 1, 2, 1, 1], [3, 1, 2, 1, 1], [1, 2, 1, 2, 2, 1], [1, 2, 1, 2, 1, 1], [1, 2, 3, 1, 1], [1, 5, 2, 1], [1, 5, 1, 1], [1, 2, 4, 1, 1], [1, 2, 4, 2, 1], [1, 2, 4, 1, 1], [1, 2, 4, 2, 1], [1, 2, 2, 1, 1], [3, 6], [2, 3], [30]], 'columns': [[15], [3, 3], [2, 2, 2, 1], [2, 2, 2, 1], [2, 2, 2, 1], [2, 2, 2, 1], [2, 1, 2, 1], [2, 3, 1], [2, 8, 1], [2, 6, 3, 1], [2, 1, 2, 1, 1], [2, 1, 2, 2, 1], [2, 1, 2, 1, 1], [2, 1, 2, 1, 1], [2, 2, 2, 2, 1], [2, 1, 2, 1, 1], [3, 1, 2, 1, 1], [1, 2, 1, 2, 2, 1], [1, 2, 1, 2, 1, 1], [1, 2, 3, 1, 1], [1, 5, 2, 1], [1, 5, 1, 1], [1, 2, 4, 1, 1], [1, 2, 4, 2, 1], [1, 2, 4, 2, 1], [1, 2, 4, 1, 1], [1, 2, 3, 1, 1], [3, 5], [2, 3], [30]], } self.assertTrue(solution.validate_nonogram(ruby_nonogram, ruby_keys))
def test_validate_python_nonogram(self): rows = [[12], [14], [3, 11], [3, 11], [16], [16], [16], [7], [26], [22, 1], [23, 1], [23, 1], [23, 1], [22, 1], [21, 1], [8, 1], [7, 1], [7, 1], [7, 1], [7, 1], [6, 1], [6, 15], [1, 1], [1, 10], [1, 1], [1, 1], [1, 2, 1], [1, 2, 1], [1, 1], [12]] cols = [ [10], [12], [14], [14], [14], [14], [14], [5, 8, 7], [6, 7, 1], [7, 7, 1], [2, 3, 7, 1], [2, 3, 7, 1], [7, 7, 1], [7, 7, 3, 1], [7, 7, 1, 1, 1], [7, 7, 1, 1, 1], [15, 1, 1, 1], [15, 1, 1, 1], [15, 1, 1, 2, 1], [15, 1, 1, 2, 1], [15, 1, 1, 1], [13, 1, 1, 1], [11, 1, 5], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [10] ] keys = {'rows': rows, 'columns': cols} python_nonogram = [ [' ',' ',' ',' ',' ',' ',' ',' ',' ','X','X','X','X','X','X', 'X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ',' ','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X','X','X',' ',' ','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X','X','X',' ',' ','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ', ' ','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ','X','X','X','X','X','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X','X','X','X','X','X','X',' ',' '], [' ','X','X','X','X','X','X','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ','X',' '], ['X','X','X','X','X','X','X','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X','X','X','X','X','X','X','X','X', 'X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X'], ['X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X'], [' ','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X',' '], [' ',' ','X','X','X','X','X','X',' ',' ',' ',' ',' ','X','X', 'X','X','X','X','X','X','X','X','X','X','X','X','X',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ','X',' ', ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ','X','X', 'X','X','X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ','X','X',' ',' ','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ',' ', ' ',' ',' ','X','X',' ',' ','X',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ', ' ',' ',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ',' ',' ','X','X','X','X','X','X', 'X','X','X','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ',' '] ] self.assertTrue(validate_nonogram(python_nonogram, keys))