from unittest import TestCase from go.engine import SpecGo,Engine from statebag import BoardState class TestTransitions(TestCase): def testBasic(self): s1=BoardState([ [0,0,0], [0,0,0], [0,0,0] ]) s2=BoardState([ [0,0,0], [0,1,0], [0,0,0] ]) g=SpecGo(3) eng=Engine(g) eng.load(s1,s2-s1) self.assertEqual(eng.dfs(s2,1),[(1,1,1)]) def testCapture(self): s1=BoardState([ [0,-1,0], [-1,1,0], [0,-1,0] ]) s2=BoardState([ [0,-1,0], [-1,0,-1], [0,-1,0] ]) g=SpecGo(3) g.toMove=-1 eng=Engine(g) eng.load(s1,s2-s1) self.assertEqual(eng.dfs(s2,1),[(-1,1,2)]) def testMulti(self): s1=BoardState([ [0,0,0], [0,0,0], [0,0,0] ]) s2=BoardState([ [0,0,0], [0,1,-1], [0,0,0] ]) g=SpecGo(3) eng=Engine(g) eng.load(s1,s2-s1) self.assertEqual(eng.dfs(s2,2),[(-1,1,2),(1,1,1)])