File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44dist /
55* .pyc
66annotator.log
7+ .cache
Original file line number Diff line number Diff line change @@ -268,7 +268,7 @@ def truncate_pv(board, pv):
268268 assert board .is_legal (move )
269269 board .push (move )
270270
271- if board .is_game_over ():
271+ if board .is_game_over (claim_draw = True ):
272272 return pv
273273 else :
274274 return pv [:10 ]
@@ -387,7 +387,7 @@ def clean_game(game):
387387 """
388388 node = game .end ()
389389
390- while not node == game . root () :
390+ while True :
391391 prev_node = node .parent
392392
393393 node .comment = None
@@ -396,6 +396,9 @@ def clean_game(game):
396396 if not variation .is_main_variation ():
397397 node .remove_variation (variation )
398398
399+ if node == game .root ():
400+ break
401+
399402 node = prev_node
400403
401404 return node .root ()
Original file line number Diff line number Diff line change @@ -351,7 +351,20 @@ class test_classify_fen(unittest.TestCase):
351351
352352
353353class test_clean_game (unittest .TestCase ):
354- pass
354+
355+ def test_commented_game (self ):
356+ pgn_string = "{ Stockfish 8 64 POPCNT } 1. Nf3 { test comment } Nf6 2. g3 g6 { A05 King's Indian Attack: Symmetrical Defense } 3. Bg2 Bg7 4. O-O O-O 5. c4 d6 6. b3 e5 7. Bb2 c5 8. e3 Nc6 9. Nc3 Bf5 10. d4 e4 11. Ne1 Re8 12. Nc2 h5 13. Qd2 h4 14. Ba3 $6 { -1.13 } ( 14. h3 g5 15. g4 Bg6 16. Rad1 Qe7 17. Qe2 a6 18. Ba3 a5 { 0.19/25 } ) 14... b6 $6 { -0.04 } ( 14... Nh7 15. Nd5 Ng5 16. Bb2 Rc8 17. Rac1 Ne7 18. Nf4 h3 19. Bh1 { -1.11/24 } ) 15. Rfd1 $6 { -1.15 } ( 15. h3 d5 16. g4 Be6 17. cxd5 Nxd5 18. Nxe4 f5 19. gxf5 gxf5 { 0.00/26 } ) 15... Bg4 16. Rdc1 Qd7 17. b4 Qf5 18. Bb2 Rad8 19. Nb5 Bf3 20. d5 Ne5 $6 { -1.66 } ( 20... Nxb4 21. Ne1 Bxg2 22. Nxg2 Nd3 23. Nxh4 Qh3 24. Bxf6 Bxf6 25. f4 { -3.14/25 } ) 21. Bxe5 Rxe5 22. Ne1 hxg3 23. fxg3 Bh6 24. Rab1 Kg7 $6 { -1.08 } ( 24... Qh5 25. Rb3 Rf5 26. bxc5 dxc5 27. Rc2 Ng4 28. h3 Bxg2 29. Kxg2 { -2.48/24 } ) 25. Rb3 Qh5 26. h3 $6 { -3.08 } ( 26. bxc5 bxc5 27. Nxa7 Rh8 28. h4 Qg4 29. Nc6 Rh5 30. Qf2 Bd1 { -2.00/23 } ) 26... Nh7 $2 { -1.37 } ( 26... Rg5 27. Qf2 { -2.89/24 }) 27. g4 Bxg4 28. hxg4 Qxg4 29. Qd1 $4 { -5.69 } ( 29. Qb2 Ng5 30. Nxd6 Qg3 31. Nf5+ gxf5 32. Kf1 Nf3 33. Qf2 Nh2+ { -2.30/24 } ) 29... Qg3 30. Qe2 Ng5 31. Kh1 Rh8 32. Nxd6 Kg8 33. bxc5 Bf8+ 34. Kg1 Nh3+ 35. Kf1 Bxd6 36. cxd6 Rf5+ 37. Nf3 Rxf3+ 0-1"
357+ pgn = StringIO (pgn_string )
358+ game = chess .pgn .read_game (pgn )
359+ result = annotator .clean_game (game )
360+ node = result .end ()
361+ while True :
362+ assert len (node .variations ) <= 1
363+ assert node .comment is None
364+ assert node .nags == []
365+ if node == game .root ():
366+ break
367+ node = node .parent
355368
356369
357370class test_game_length (unittest .TestCase ):
You can’t perform that action at this time.
0 commit comments