Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: SEE checking

Author: Scott Gasch

Date: 23:33:06 11/29/00

Go up one level in this thread


Hi,

I've recently been working on an SEE also and find that the best way to verify
it is to just construct a position where there are pins and xray attacks and
then walk through the SEE code in a debugger.  It's not very fun but I think I
have found all the "issues" now.  Here's an interesting FEN to start with.  It
has no pins but I tested that code with a breakpoint and a search...

[D]r3k2r/ppq2ppp/1pnbbn2/3pp3/3PP3/1PNBBN2/PPQ2PPP/R3K2R w KQkq - 2 0

I really liked your idea about eval testing with symmetric positions.  One thing
I do (that probably a lot of others do also) is to put a bunch of asserts all
over the code that get compiled out in a "fast" version.  I have three levels of
debugger code -- none, normal and paranoid.  The paranoid setting does things
like calculate the pawn eval numbers even if it got a hash hit and then compare
the scores with what was in the hash... save a copy of the board before the
MakeMove / UnmakeMove sequence in search and then compare it after it comes
out... etc.  Whereas the normal debug level is just your typical asserts... "I
just captured a piece... make sure it was the right color" or "I expect a pawn
to be at square X".

That's about all I have to say... would love to hear some more original ideas
about testing engines!

Scott



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.