| 131 | ' A B C\n\n' |
| 132 | |
| 133 | def isValidTowerConfiguration(towers): |
| 134 | # Make sure there are exactly 5 disks: |
| 135 | assert len(towers['A'] + towers['B'] + towers['C']) == 5 |
| 136 | |
| 137 | # Make sure there's only one disk of each size: |
| 138 | assert len(towers['A'] + towers['B'] + towers['C']) == len(set(towers['A'] + towers['B'] + towers['C'])) |
| 139 | assert set(towers['A'] + towers['B'] + towers['C']) == set([1, 2, 3, 4, 5]) |
| 140 | |
| 141 | # Make sure a larger disk is not on a smaller disk: |
| 142 | for label in ('A', 'B', 'C'): |
| 143 | for i in range(len(towers[label]) - 1): |
| 144 | assert towers[label][i] > towers[label][i + 1] |
| 145 | |
| 146 | |
| 147 | def test_randomMoves(): |