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)])