Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: SEE checking

Author: Christophe Theron

Date: 09:27:37 12/02/00

Go up one level in this thread


On November 30, 2000 at 16:33:49, Edward Screven wrote:

>On November 29, 2000 at 16:24:09, David Rasmussen wrote:
>
>>Does anybody have a good idea on how to check if a SEE implementation works
>>correctly?
>>
>>If anyone has other good ideas on how to check certain typical parts of a
>>chessprogram, please come forward. Yesterday, I made a debug function that
>>constructed random, symmetrical positions, and checked whether the evaluation
>>was 0 or not, assuming no assymetry. I actually found a well-hidden bug in my
>>rook evaluation code this way. Not a brilliant idea, but these kinds of small
>>ideas that make debugging (and even discovering bugs) easier, would be very
>>appreciated.
>
>when i implemented SEE i created two versions: a production version,
>and a verifier.  the production version included lots of tricky bits
>to make it (hopefully) fast.  the verifier was as simple as i could
>make it.  the verifier was also explicitly different, using alternate
>approaches for even the simple parts of the production version.
>
>through conditional compilation, i could cause the verifier to run
>after each execution of the production SEE code, aborting the program
>immediately with lots of useful debug information if the verifier didn't
>agree with the production version.
>
>i used this techinique for many parts of my program, which i call proof
>(a long story), and i cannot emphasize enough how useful it was.
>
>  - edward



You are 100% right, this way of verifying code is excellent. It can sound a
little overkill, but in the end you get huge time savings.



    Christophe



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.