testing eval

Discussion of chess software programming and technical issues.

Moderator: Ras

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: testing eval

Post by bob »

michiguel wrote:
bob wrote:
sje wrote:Also, for positions with no pawns it might be useful to reflect the board about the lines y = x and y = -x to see if the evaluation changes.
It would be difficult for me to think how I might pass the first 4 tests, and then have a bug with respect to diagonal flipping.
You have, for instance, a PST with values that are symmetric horizontally and vertically, but not diagonally. In absence of pawns that is not desirable. That will be detected by steve's test. I kind of like the idea.

Miguel
I still have trouble thinking of an example of how that might happen, yet still look reasonable...
outAtime
Posts: 226
Joined: Sun Mar 08, 2009 3:08 pm
Location: Canada

Re: testing eval

Post by outAtime »

Here is my problem:

Code: Select all

case (bbishop):
			score -= 325;
			score -= end_bishop[i];
			score -= end_black_bishop_fmobility(i) * bmef;
			score -= end_black_bishop_bmobility(i) * bmeb;
			printf ("bishop fmobility: %d\n", end_black_bishop_fmobility(i));
			/* bishop pair bonus: */
			bb++;
			if (bb == 2) {
			score -= 50;
			}
			break;
I get so much info in the debug window its practically useless, and if I add code to also output the board position then it just crashes. I don't really need to know the value of this mobility every time the code passes, just once, for the position on the board.... maybe i've put the printf in the wrong place? Thanks.
outAtime
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: testing eval

Post by bob »

outAtime wrote:Here is my problem:

Code: Select all

case (bbishop):
			score -= 325;
			score -= end_bishop[i];
			score -= end_black_bishop_fmobility(i) * bmef;
			score -= end_black_bishop_bmobility(i) * bmeb;
			printf ("bishop fmobility: %d\n", end_black_bishop_fmobility(i));
			/* bishop pair bonus: */
			bb++;
			if (bb == 2) {
			score -= 50;
			}
			break;
I get so much info in the debug window its practically useless, and if I add code to also output the board position then it just crashes. I don't really need to know the value of this mobility every time the code passes, just once, for the position on the board.... maybe i've put the printf in the wrong place? Thanks.
My "evtest" code is not doing a search. So I get one score info dump per different position. And in my code, I don't dump anything if the 4 scores match (flip, flop and flip/flop scores)