Included gomill framework for SGF and GTP support, and sketched out SGF game-loading code.
This commit is contained in:
parent
700a6a2f32
commit
692dc294d6
119 changed files with 27458 additions and 3 deletions
98
gomill/gomill_tests/competition_scheduler_tests.py
Normal file
98
gomill/gomill_tests/competition_scheduler_tests.py
Normal file
|
@ -0,0 +1,98 @@
|
|||
"""Tests for competition_schedulers.py"""
|
||||
|
||||
import cPickle as pickle
|
||||
|
||||
from gomill import competition_schedulers
|
||||
|
||||
from gomill_tests import gomill_test_support
|
||||
|
||||
def make_tests(suite):
|
||||
suite.addTests(gomill_test_support.make_simple_tests(globals()))
|
||||
|
||||
|
||||
def test_simple(tc):
|
||||
sc = competition_schedulers.Simple_scheduler()
|
||||
|
||||
def issue(n):
|
||||
result = [sc.issue() for _ in xrange(n)]
|
||||
sc._check_consistent()
|
||||
return result
|
||||
|
||||
sc._check_consistent()
|
||||
tc.assertEqual(issue(4), [0, 1, 2, 3])
|
||||
sc.fix(2)
|
||||
sc._check_consistent()
|
||||
sc.fix(1)
|
||||
sc._check_consistent()
|
||||
tc.assertEqual(sc.issue(), 4)
|
||||
tc.assertEqual(sc.fixed, 2)
|
||||
tc.assertEqual(sc.issued, 5)
|
||||
sc.rollback()
|
||||
sc._check_consistent()
|
||||
tc.assertEqual(sc.issued, 2)
|
||||
tc.assertEqual(sc.fixed, 2)
|
||||
|
||||
tc.assertListEqual(issue(2), [0, 3])
|
||||
|
||||
sc.rollback()
|
||||
sc._check_consistent()
|
||||
|
||||
tc.assertListEqual(issue(4), [0, 3, 4, 5])
|
||||
sc.fix(3)
|
||||
sc._check_consistent()
|
||||
sc.fix(5)
|
||||
sc._check_consistent()
|
||||
tc.assertEqual(sc.issue(), 6)
|
||||
sc._check_consistent()
|
||||
|
||||
sc = pickle.loads(pickle.dumps(sc))
|
||||
sc._check_consistent()
|
||||
sc.rollback()
|
||||
sc._check_consistent()
|
||||
|
||||
tc.assertListEqual(issue(6), [0, 4, 6, 7, 8, 9])
|
||||
tc.assertEqual(sc.issued, 10)
|
||||
tc.assertEqual(sc.fixed, 4)
|
||||
|
||||
|
||||
def test_grouped(tc):
|
||||
sc = competition_schedulers.Group_scheduler()
|
||||
def issue(n):
|
||||
return [sc.issue() for _ in xrange(n)]
|
||||
|
||||
sc.set_groups([('m1', 4), ('m2', None)])
|
||||
|
||||
tc.assertTrue(sc.nothing_issued_yet())
|
||||
tc.assertFalse(sc.all_fixed())
|
||||
|
||||
tc.assertListEqual(issue(3), [
|
||||
('m1', 0),
|
||||
('m2', 0),
|
||||
('m1', 1),
|
||||
])
|
||||
|
||||
tc.assertFalse(sc.nothing_issued_yet())
|
||||
|
||||
sc.fix('m1', 1)
|
||||
sc.rollback()
|
||||
issued = issue(14)
|
||||
tc.assertListEqual(issued, [
|
||||
('m2', 0),
|
||||
('m1', 0),
|
||||
('m2', 1),
|
||||
('m1', 2),
|
||||
('m2', 2),
|
||||
('m1', 3),
|
||||
('m2', 3),
|
||||
('m2', 4),
|
||||
('m2', 5),
|
||||
('m2', 6),
|
||||
('m2', 7),
|
||||
('m2', 8),
|
||||
('m2', 9),
|
||||
('m2', 10),
|
||||
])
|
||||
tc.assertFalse(sc.all_fixed())
|
||||
for token in issued:
|
||||
sc.fix(*token)
|
||||
tc.assertTrue(sc.all_fixed())
|
Loading…
Add table
Add a link
Reference in a new issue