Files @ 0cb3fbe06b5d
Branch filter:

Location: OneEye/src/tests/testEngine.py

Laman
Go, Engine: some tests and numerous bugfixes
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)])