Files
@ addcbaf1754f
Branch filter:
Location: OneEye/src/tests/testStatebag.py - annotation
addcbaf1754f
1.8 KiB
text/x-python
fix: BoardView padding now relative
b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 9a3f61bf97f2 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 9a3f61bf97f2 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 b06733513452 | import os.path
from unittest import TestCase
import config as cfg
from util import BLACK as B,WHITE as W,EMPTY as _
from go.engine import SpecGo,Engine
import go.engine
from statebag import BoardState,StateBag,updateDiff
from .util import simpleLoadSgf,listStates
class TestBoardState(TestCase):
def testBasic(self):
s1=BoardState([
[_,_,_],
[_,_,_],
[_,_,_]
])
s2=BoardState([
[_,_,_],
[_,B,_],
[_,_,_]
])
g=SpecGo(3)
go.engine.eng=Engine(g)
s2.tryConnect(s1)
self.assertIs(s2.getPrev(), s1)
self.assertEqual(s2.getWeight(), 1)
def test2ply(self):
s1=BoardState([
[_,_,_],
[_,_,_],
[_,_,_]
])
s2=BoardState([
[_,_,_],
[_,B,_],
[_,_,_]
])
s3=BoardState([
[_,W,_],
[_,B,B],
[_,_,_]
])
g=SpecGo(3)
go.engine.eng=Engine(g)
s2.tryConnect(s1)
s3.tryConnect(s2)
self.assertIs(s3.getPrev(), s2)
self.assertEqual(s3.getWeight(), 1)
def testUpdateDiff(self):
files=["O-Takao-20110106.sgf","Sakai-Iyama-20110110.sgf"]
for f in files:
moves=simpleLoadSgf(os.path.join(cfg.srcDir,"tests/data",f))
states=listStates(moves)
for (i,j,k) in [(1,2,3),(10,20,30),(90,100,110),(20,70,120)]:
s1=states[i]
s2=states[j]
s3=states[k]
diff1=s2-s1
diff2=s3-s2
with self.subTest(file=f,ijk=(i,j,k)):
self.assertEqual(s3-s1,updateDiff(diff1,diff2))
class TestStateBag(TestCase):
def testReal(self):
go.engine.eng=Engine()
files=["O-Takao-20110106.sgf","Sakai-Iyama-20110110.sgf"]
for f in files:
moves=simpleLoadSgf(os.path.join(cfg.srcDir,"tests/data",f))
states=listStates(moves)
for k in range(1,3):
bag=StateBag()
i=0
for s_ in states:
i+=1
if i%(2*k-1)>=k: # keep k, skip k-1
continue
s=bag.pushState(s_)
if len(bag._states)>1:
self.assertIs(s.getPrev(), bag._states[-2])
|