pygo/gomill/gomill_tests/common_tests.py

73 lines
2.3 KiB
Python
Raw Normal View History

"""Tests for common.py."""
import string
from gomill_tests import gomill_test_support
from gomill import common
def make_tests(suite):
suite.addTests(gomill_test_support.make_simple_tests(globals()))
def test_opponent_of(tc):
oo = common.opponent_of
tc.assertEqual(oo('b'), 'w')
tc.assertEqual(oo('w'), 'b')
tc.assertRaises(ValueError, oo, 'x')
tc.assertRaises(ValueError, oo, None)
tc.assertRaises(ValueError, oo, 'B')
def test_colour_name(tc):
cn = common.colour_name
tc.assertEqual(cn('b'), 'black')
tc.assertEqual(cn('w'), 'white')
tc.assertRaises(ValueError, cn, 'x')
tc.assertRaises(ValueError, cn, None)
tc.assertRaises(ValueError, cn, 'B')
def test_column_letters(tc):
tc.assertEqual(common.column_letters,
"".join(c for c in string.uppercase if c != 'I'))
def test_format_vertex(tc):
fv = common.format_vertex
tc.assertEqual(fv(None), "pass")
tc.assertEqual(fv((0, 0)), "A1")
tc.assertEqual(fv((8, 8)), "J9")
tc.assertEqual(fv((1, 5)), "F2")
tc.assertEqual(fv((24, 24)), "Z25")
tc.assertRaises(ValueError, fv, (-1, 2))
tc.assertRaises(ValueError, fv, (2, -1))
tc.assertRaises(ValueError, fv, (25, 1))
tc.assertRaises(ValueError, fv, (1, 25))
def test_format_vertex_list(tc):
fvl = common.format_vertex_list
tc.assertEqual(fvl([]), "")
tc.assertEqual(fvl([(0, 0)]), "A1")
tc.assertEqual(fvl([(0, 0), (1, 5)]), "A1,F2")
tc.assertEqual(fvl([(0, 0), None, (1, 5)]), "A1,pass,F2")
def test_move_from_vertex(tc):
cv = common.move_from_vertex
tc.assertEqual(cv("pass", 9), None)
tc.assertEqual(cv("pAss", 9), None)
tc.assertEqual(cv("A1", 9), (0, 0))
tc.assertEqual(cv("a1", 9), (0, 0))
tc.assertEqual(cv("A01", 9), (0, 0))
tc.assertEqual(cv("J9", 9), (8, 8))
tc.assertEqual(cv("M11", 19), (10, 11))
tc.assertRaises(ValueError, cv, "M11", 9)
tc.assertRaises(ValueError, cv, "K9", 9)
tc.assertRaises(ValueError, cv, "J10", 9)
tc.assertRaises(ValueError, cv, "I5", 9)
tc.assertRaises(ValueError, cv, "", 9)
tc.assertRaises(ValueError, cv, "29", 9)
tc.assertRaises(ValueError, cv, "@9", 9)
tc.assertRaises(ValueError, cv, "A-3", 9)
tc.assertRaises(ValueError, cv, None, 9)
tc.assertRaises(ValueError, cv, "A1", 0)
tc.assertRaises(ValueError, cv, "A1", 30)