diff --git a/src/tests/testStatebag.py b/src/tests/testStatebag.py --- a/src/tests/testStatebag.py +++ b/src/tests/testStatebag.py @@ -5,7 +5,7 @@ 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 +from statebag import BoardState,StateBag,updateDiff from .util import simpleLoadSgf,listStates @@ -52,6 +52,21 @@ class TestBoardState(TestCase): 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):