Update sudoku.py
This commit is contained in:
32
py/sudoku.py
32
py/sudoku.py
@@ -27,22 +27,6 @@ units = dict((s, [u for u in unitlist if s in u])
|
|||||||
peers = dict((s, set(sum(units[s],[]))-set([s]))
|
peers = dict((s, set(sum(units[s],[]))-set([s]))
|
||||||
for s in squares)
|
for s in squares)
|
||||||
|
|
||||||
################ Unit Tests ################
|
|
||||||
|
|
||||||
def test():
|
|
||||||
"A set of tests that must pass."
|
|
||||||
assert len(squares) == 81
|
|
||||||
assert len(unitlist) == 27
|
|
||||||
assert all(len(units[s]) == 3 for s in squares)
|
|
||||||
assert all(len(peers[s]) == 20 for s in squares)
|
|
||||||
assert units['C2'] == [['A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'],
|
|
||||||
['C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'],
|
|
||||||
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']]
|
|
||||||
assert peers['C2'] == set(['A2', 'B2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2',
|
|
||||||
'C1', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9',
|
|
||||||
'A1', 'A3', 'B1', 'B3'])
|
|
||||||
print('All tests pass.')
|
|
||||||
|
|
||||||
################ Parse a Grid ################
|
################ Parse a Grid ################
|
||||||
|
|
||||||
def parse_grid(grid):
|
def parse_grid(grid):
|
||||||
@@ -125,6 +109,22 @@ def search(values):
|
|||||||
result = search(assign(values.copy(), s, d))
|
result = search(assign(values.copy(), s, d))
|
||||||
if result: return result
|
if result: return result
|
||||||
|
|
||||||
|
################ Unit Tests ################
|
||||||
|
|
||||||
|
def test():
|
||||||
|
"A set of tests that must pass."
|
||||||
|
assert len(squares) == 81
|
||||||
|
assert len(unitlist) == 27
|
||||||
|
assert all(len(units[s]) == 3 for s in squares)
|
||||||
|
assert all(len(peers[s]) == 20 for s in squares)
|
||||||
|
assert units['C2'] == [['A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'],
|
||||||
|
['C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'],
|
||||||
|
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']]
|
||||||
|
assert peers['C2'] == set(['A2', 'B2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2',
|
||||||
|
'C1', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9',
|
||||||
|
'A1', 'A3', 'B1', 'B3'])
|
||||||
|
print('All tests pass.')
|
||||||
|
|
||||||
################ System test ################
|
################ System test ################
|
||||||
|
|
||||||
import time
|
import time
|
||||||
|
|||||||
Reference in New Issue
Block a user