Test positions invalid moves

Discussion of chess software programming and technical issues.

Moderator: Ras

Henk
Posts: 7251
Joined: Mon May 27, 2013 10:31 am

Test positions invalid moves

Post by Henk »

Yesterday Skipper played after Kh7 b7-b8 because I changed move generator and it did not compute captures anymore after an promotion. Took me at least half a day to find it.

Some simpel Perft tests did not catch it.

[d]3qr1k1/1P1p3Q/2nP1p2/6p1/3P3p/3B1P1P/5P2/1R4K1 b - - 3 32

This morning it played another invalid move: h5xg6 because of a bug in CanCaptureSingleTargetOnce

[d]8/8/6R1/4K2k/4B3/8/8/8 b - - 12 53


Probably there are more.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Test positions invalid moves

Post by Sven »

Henk wrote:Yesterday Skipper played after Kh7 b7-b8 because [...]
[d]3qr1k1/1P1p3Q/2nP1p2/6p1/3P3p/3B1P1P/5P2/1R4K1 b - - 3 32
So the opponent was? Skipper-Twin? ;-)

Anyway, Kxh7! wins a pawn after b8Q Kg8!!

:P
Henk
Posts: 7251
Joined: Mon May 27, 2013 10:31 am

Re: Test positions invalid moves

Post by Henk »

No white was fairy max and illegal move Kh7 was played. When reconstructing the bug I used Skipper and it missed Bh7 in the PV.

Problem is that you are planning to work only one hour but when you get a tough bug you spend all day fixing it.

Also when running Perfts you get the illusion that move generator is working fine.

Of course I already knew that you can't use perft for testing move generator in QSearch. So I also have to create a large set of easy check mate problems.