Update sudoku.py
This commit is contained in:
parent
818380d4f1
commit
412d97a87e
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]))
|
||||
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 ################
|
||||
|
||||
def parse_grid(grid):
|
||||
@ -125,6 +109,22 @@ def search(values):
|
||||
result = search(assign(values.copy(), s, d))
|
||||
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 ################
|
||||
|
||||
import time
|
||||
|
Loading…
Reference in New Issue
Block a user