@@ -7,79 +7,86 @@ use chess::{
77
88use crate :: {
99 phased_score:: { PhasedScore , S } ,
10+ score:: ScoreType ,
1011 traits:: EvalValues ,
1112} ;
1213
14+ /// Game phase increment for each piece
15+ /// Ordered to match the indexing of [`Piece`]
16+ /// King, Queen, Rook, Bishop, Knight, Pawn
17+ pub const GAMEPHASE_INC : [ ScoreType ; 6 ] = [ 0 , 4 , 2 , 1 , 1 , 0 ] ;
18+
19+ /// Maximum game phase
1320pub const GAME_PHASE_MAX : i32 = 24 ;
1421
1522/// Piece-Square Tables, ordered by the ordinality of the pieces. See ['pieces::Piece']
1623#[ rustfmt:: skip]
17- pub const PSQTS : [ [ PhasedScore ; NumberOf :: SQUARES ] ; NumberOf :: PIECE_TYPES ] = [
24+ pub const PSQTS : [ [ PhasedScore ; NumberOf :: SQUARES ] ; NumberOf :: PIECE_TYPES ] = [
1825 // King
1926 [
20- S ( - 65 , -74 ) , S ( 23 , -35 ) , S ( 16 , -18 ) , S ( - 15 , - 18 ) , S ( -56 , - 11 ) , S ( -34 , 15 ) , S ( 2 , 4 ) , S ( 13 , - 17 ) ,
21- S ( 29 , - 12 ) , S ( - 1 , 17 ) , S ( - 20 , 14 ) , S ( - 7 , 17 ) , S ( - 8 , 17 ) , S ( - 4 , 38 ) , S ( - 38 , 23 ) , S ( -29 , 11 ) ,
22- S ( - 9 , 10 ) , S ( 24 , 17 ) , S ( 2 , 23 ) , S ( - 16 , 15 ) , S ( -20 , 20 ) , S ( 6 , 45 ) , S ( 22 , 44 ) , S ( -22 , 13 ) ,
23- S ( -17 , - 8 ) , S ( - 20 , 22 ) , S ( - 12 , 24 ) , S ( - 27 , 27 ) , S ( - 30 , 26 ) , S ( - 25 , 33 ) , S ( - 14 , 26 ) , S ( - 36 , 3 ) ,
24- S ( -49 , - 18 ) , S ( - 1 , - 4 ) , S ( - 27 , 21 ) , S ( - 39 , 24 ) , S ( - 46 , 27 ) , S ( - 44 , 23 ) , S ( - 33 , 9 ) , S ( - 51 , - 11 ) ,
25- S ( -14 , - 19 ) , S ( -14 , - 3 ) , S ( -22 , 11 ) , S ( -46 , 21 ) , S ( -44 , 23 ) , S ( -30 , 16 ) , S ( -15 , 7 ) , S ( -27 , - 9 ) ,
26- S ( 1 , -27 ) , S ( 7 , - 11 ) , S ( -8 , 4 ) , S ( -64 , 13 ) , S ( -43 , 14 ) , S ( -16 , 4 ) , S ( 9 , -5 ) , S ( 8 , -17 ) ,
27- S ( - 15 , -53 ) , S ( 36 , -34 ) , S ( 12 , -21 ) , S ( -54 , - 11 ) , S ( 8 , -28 ) , S ( -28 , -14 ) , S ( 24 , -24 ) , S ( 14 , -43 ) ,
27+ S ( 15 , -85 ) , S ( - 9 , -35 ) , S ( 24 , -26 ) , S ( - 116 , 24 ) , S ( -61 , 4 ) , S ( -10 , 7 ) , S ( 38 , - 1 ) , S ( 145 , - 108 ) ,
28+ S ( - 101 , 7 ) , S ( - 62 , 36 ) , S ( - 106 , 49 ) , S ( 1 , 30 ) , S ( - 52 , 51 ) , S ( - 46 , 62 ) , S ( - 7 , 52 ) , S ( -27 , 22 ) ,
29+ S ( - 123 , 23 ) , S ( - 21 , 41 ) , S ( - 88 , 60 ) , S ( - 106 , 71 ) , S ( -66 , 70 ) , S ( 9 , 62 ) , S ( - 11 , 61 ) , S ( -47 , 32 ) ,
30+ S ( -90 , 13 ) , S ( - 101 , 47 ) , S ( - 116 , 64 ) , S ( - 161 , 77 ) , S ( - 148 , 76 ) , S ( - 110 , 70 ) , S ( - 110 , 62 ) , S ( - 134 , 37 ) ,
31+ S ( -84 , 1 ) , S ( - 93 , 31 ) , S ( - 123 , 55 ) , S ( - 150 , 69 ) , S ( - 148 , 69 ) , S ( - 111 , 56 ) , S ( - 116 , 44 ) , S ( - 139 , 28 ) ,
32+ S ( -41 , - 9 ) , S ( -26 , 13 ) , S ( -82 , 35 ) , S ( -94 , 47 ) , S ( -88 , 46 ) , S ( -85 , 38 ) , S ( -40 , 18 ) , S ( -57 , 6 ) ,
33+ S ( 46 , -31 ) , S ( 6 , - 4 ) , S ( -8 , 8 ) , S ( -42 , 19 ) , S ( -43 , 22 ) , S ( -25 , 13 ) , S ( 22 , -5 ) , S ( 31 , -23 ) ,
34+ S ( 42 , -65 ) , S ( 65 , -46 ) , S ( 39 , -27 ) , S ( -59 , - 9 ) , S ( 4 , -34 ) , S ( -35 , -11 ) , S ( 46 , -37 ) , S ( 47 , -65 ) ,
2835 ] ,
2936 // Queen
3037 [
31- S ( 997 , 927 ) , S ( 1025 , 958 ) , S ( 1054 , 958 ) , S ( 1037 , 963 ) , S ( 1084 , 963 ) , S ( 1069 , 955 ) , S ( 1068 , 946 ) , S ( 1070 , 956 ) ,
32- S ( 1001 , 919 ) , S ( 986 , 956 ) , S ( 1020 , 968 ) , S ( 1026 , 977 ) , S ( 1009 , 994 ) , S ( 1082 , 961 ) , S ( 1053 , 966 ) , S ( 1079 , 936 ) ,
33- S ( 1012 , 916 ) , S ( 1008 , 942 ) , S ( 1032 , 945 ) , S ( 1033 , 985 ) , S ( 1054 , 983 ) , S ( 1081 , 971 ) , S ( 1072 , 955 ) , S ( 1082 , 945 ) ,
34- S ( 998 , 939 ) , S ( 998 , 958 ) , S ( 1009 , 960 ) , S ( 1009 , 981 ) , S ( 1024 , 993 ) , S ( 1042 , 976 ) , S ( 1023 , 993 ) , S ( 1026 , 972 ) ,
35- S ( 1016 , 918 ) , S ( 999 , 964 ) , S ( 1016 , 955 ) , S ( 1015 , 983 ) , S ( 1023 , 967 ) , S ( 1021 , 970 ) , S ( 1028 , 975 ) , S ( 1022 , 959 ) ,
36- S ( 1011 , 920 ) , S ( 1027 , 909 ) , S ( 1014 , 951 ) , S ( 1023 , 942 ) , S ( 1020 , 945 ) , S ( 1027 , 953 ) , S ( 1039 , 946 ) , S ( 1030 , 941 ) ,
37- S ( 990 , 914 ) , S ( 1017 , 913 ) , S ( 1036 , 906 ) , S ( 1027 , 920 ) , S ( 1033 , 920 ) , S ( 1040 , 913 ) , S ( 1022 , 900 ) , S ( 1026 , 904 ) ,
38- S ( 1024 , 903 ) , S ( 1007 , 908 ) , S ( 1016 , 914 ) , S ( 1035 , 893 ) , S ( 1010 , 931 ) , S ( 1000 , 904 ) , S ( 994 , 916 ) , S ( 975 , 895 ) ,
38+ S ( 728 , 1199 ) , S ( 736 , 1212 ) , S ( 766 , 1228 ) , S ( 799 , 1215 ) , S ( 799 , 1212 ) , S ( 803 , 1205 ) , S ( 822 , 1162 ) , S ( 769 , 1192 ) ,
39+ S ( 765 , 1163 ) , S ( 743 , 1206 ) , S ( 750 , 1240 ) , S ( 743 , 1257 ) , S ( 748 , 1274 ) , S ( 785 , 1234 ) , S ( 764 , 1218 ) , S ( 807 , 1194 ) ,
40+ S ( 765 , 1175 ) , S ( 763 , 1192 ) , S ( 761 , 1233 ) , S ( 777 , 1235 ) , S ( 782 , 1249 ) , S ( 823 , 1229 ) , S ( 823 , 1193 ) , S ( 821 , 1180 ) ,
41+ S ( 749 , 1185 ) , S ( 753 , 1208 ) , S ( 757 , 1222 ) , S ( 756 , 1245 ) , S ( 758 , 1258 ) , S ( 771 , 1244 ) , S ( 770 , 1229 ) , S ( 776 , 1208 ) ,
42+ S ( 751 , 1182 ) , S ( 749 , 1211 ) , S ( 747 , 1220 ) , S ( 756 , 1239 ) , S ( 755 , 1237 ) , S ( 754 , 1229 ) , S ( 765 , 1209 ) , S ( 768 , 1196 ) ,
43+ S ( 748 , 1171 ) , S ( 755 , 1187 ) , S ( 750 , 1210 ) , S ( 749 , 1208 ) , S ( 752 , 1212 ) , S ( 759 , 1203 ) , S ( 771 , 1181 ) , S ( 765 , 1169 ) ,
44+ S ( 746 , 1166 ) , S ( 751 , 1170 ) , S ( 762 , 1167 ) , S ( 761 , 1177 ) , S ( 759 , 1180 ) , S ( 768 , 1154 ) , S ( 774 , 1126 ) , S ( 785 , 1096 ) ,
45+ S ( 744 , 1159 ) , S ( 734 , 1167 ) , S ( 741 , 1171 ) , S ( 756 , 1162 ) , S ( 748 , 1166 ) , S ( 735 , 1165 ) , S ( 757 , 1135 ) , S ( 750 , 1135 ) ,
3946 ] ,
4047 // Rook
4148 [
42- S ( 509 , 525 ) , S ( 519 , 522 ) , S ( 509 , 530 ) , S ( 528 , 527 ) , S ( 540 , 524 ) , S ( 486 , 524 ) , S ( 508 , 520 ) , S ( 520 , 517 ) ,
43- S ( 504 , 523 ) , S ( 509 , 525 ) , S ( 535 , 525 ) , S ( 539 , 523 ) , S ( 557 , 509 ) , S ( 544 , 515 ) , S ( 503 , 520 ) , S ( 521 , 515 ) ,
44- S ( 472 , 519 ) , S ( 496 , 519 ) , S ( 503 , 519 ) , S ( 513 , 517 ) , S ( 494 , 516 ) , S ( 522 , 509 ) , S ( 538 , 507 ) , S ( 493 , 509 ) ,
45- S ( 453 , 516 ) , S ( 466 , 515 ) , S ( 484 , 525 ) , S ( 503 , 513 ) , S ( 501 , 514 ) , S ( 512 , 513 ) , S ( 469 , 511 ) , S ( 457 , 514 ) ,
46- S ( 441 , 515 ) , S ( 451 , 517 ) , S ( 465 , 520 ) , S ( 476 , 516 ) , S ( 486 , 507 ) , S ( 470 , 506 ) , S ( 483 , 504 ) , S ( 454 , 501 ) ,
47- S ( 432 , 508 ) , S ( 452 , 512 ) , S ( 461 , 507 ) , S ( 460 , 511 ) , S ( 480 , 505 ) , S ( 477 , 500 ) , S ( 472 , 504 ) , S ( 444 , 496 ) ,
48- S ( 433 , 506 ) , S ( 461 , 506 ) , S ( 457 , 512 ) , S ( 468 , 514 ) , S ( 476 , 503 ) , S ( 488 , 503 ) , S ( 471 , 501 ) , S ( 406 , 509 ) ,
49- S ( 458 , 503 ) , S ( 464 , 514 ) , S ( 478 , 515 ) , S ( 494 , 511 ) , S ( 493 , 507 ) , S ( 484 , 499 ) , S ( 440 , 516 ) , S ( 451 , 492 ) ,
49+ S ( 409 , 639 ) , S ( 400 , 646 ) , S ( 407 , 655 ) , S ( 412 , 651 ) , S ( 430 , 642 ) , S ( 446 , 632 ) , S ( 429 , 634 ) , S ( 449 , 629 ) ,
50+ S ( 391 , 639 ) , S ( 390 , 651 ) , S ( 409 , 655 ) , S ( 428 , 646 ) , S ( 414 , 646 ) , S ( 443 , 632 ) , S ( 430 , 628 ) , S ( 460 , 615 ) ,
51+ S ( 370 , 639 ) , S ( 391 , 642 ) , S ( 393 , 644 ) , S ( 396 , 642 ) , S ( 424 , 629 ) , S ( 425 , 623 ) , S ( 462 , 614 ) , S ( 439 , 610 ) ,
52+ S ( 355 , 641 ) , S ( 368 , 640 ) , S ( 370 , 649 ) , S ( 379 , 645 ) , S ( 384 , 630 ) , S ( 385 , 625 ) , S ( 393 , 621 ) , S ( 396 , 615 ) ,
53+ S ( 336 , 634 ) , S ( 339 , 639 ) , S ( 349 , 641 ) , S ( 361 , 640 ) , S ( 361 , 636 ) , S ( 346 , 634 ) , S ( 369 , 621 ) , S ( 361 , 616 ) ,
54+ S ( 330 , 630 ) , S ( 339 , 630 ) , S ( 347 , 629 ) , S ( 347 , 634 ) , S ( 352 , 630 ) , S ( 350 , 622 ) , S ( 383 , 602 ) , S ( 362 , 603 ) ,
55+ S ( 327 , 625 ) , S ( 339 , 629 ) , S ( 353 , 629 ) , S ( 350 , 631 ) , S ( 354 , 623 ) , S ( 356 , 619 ) , S ( 373 , 610 ) , S ( 344 , 615 ) ,
56+ S ( 345 , 620 ) , S ( 347 , 630 ) , S ( 356 , 637 ) , S ( 361 , 636 ) , S ( 365 , 628 ) , S ( 355 , 623 ) , S ( 370 , 619 ) , S ( 347 , 612 ) ,
5057 ] ,
5158 // Bishop
5259 [
53- S ( 336 , 283 ) , S ( 369 , 276 ) , S ( 283 , 286 ) , S ( 328 , 289 ) , S ( 340 , 290 ) , S ( 323 , 288 ) , S ( 372 , 280 ) , S ( 357 , 273 ) ,
54- S ( 339 , 289 ) , S ( 381 , 293 ) , S ( 347 , 304 ) , S ( 352 , 285 ) , S ( 395 , 294 ) , S ( 424 , 284 ) , S ( 383 , 293 ) , S ( 318 , 283 ) ,
55- S ( 349 , 299 ) , S ( 402 , 289 ) , S ( 408 , 297 ) , S ( 405 , 296 ) , S ( 400 , 295 ) , S ( 415 , 303 ) , S ( 402 , 297 ) , S ( 363 , 301 ) ,
56- S ( 361 , 294 ) , S ( 370 , 306 ) , S ( 384 , 309 ) , S ( 415 , 306 ) , S ( 402 , 311 ) , S ( 402 , 307 ) , S ( 372 , 300 ) , S ( 363 , 299 ) ,
57- S ( 359 , 291 ) , S ( 378 , 300 ) , S ( 378 , 310 ) , S ( 391 , 316 ) , S ( 399 , 304 ) , S ( 377 , 307 ) , S ( 375 , 294 ) , S ( 369 , 288 ) ,
58- S ( 365 , 285 ) , S ( 380 , 294 ) , S ( 380 , 305 ) , S ( 380 , 307 ) , S ( 379 , 310 ) , S ( 392 , 300 ) , S ( 383 , 290 ) , S ( 375 , 282 ) ,
59- S ( 369 , 283 ) , S ( 380 , 279 ) , S ( 381 , 290 ) , S ( 365 , 296 ) , S ( 372 , 301 ) , S ( 386 , 288 ) , S ( 398 , 282 ) , S ( 366 , 270 ) ,
60- S ( 332 , 274 ) , S ( 362 , 288 ) , S ( 351 , 274 ) , S ( 344 , 292 ) , S ( 352 , 288 ) , S ( 353 , 281 ) , S ( 326 , 292 ) , S ( 344 , 280 ) ,
60+ S ( 274 , 350 ) , S ( 256 , 361 ) , S ( 267 , 359 ) , S ( 227 , 372 ) , S ( 237 , 366 ) , S ( 255 , 356 ) , S ( 284 , 350 ) , S ( 247 , 348 ) ,
61+ S ( 291 , 337 ) , S ( 314 , 356 ) , S ( 308 , 360 ) , S ( 291 , 363 ) , S ( 320 , 354 ) , S ( 319 , 353 ) , S ( 311 , 361 ) , S ( 300 , 336 ) ,
62+ S ( 300 , 366 ) , S ( 323 , 361 ) , S ( 324 , 371 ) , S ( 347 , 360 ) , S ( 333 , 366 ) , S ( 364 , 366 ) , S ( 341 , 359 ) , S ( 329 , 359 ) ,
63+ S ( 292 , 362 ) , S ( 306 , 377 ) , S ( 327 , 372 ) , S ( 337 , 385 ) , S ( 334 , 378 ) , S ( 330 , 376 ) , S ( 306 , 375 ) , S ( 292 , 362 ) ,
64+ S ( 286 , 358 ) , S ( 298 , 375 ) , S ( 304 , 383 ) , S ( 324 , 379 ) , S ( 321 , 379 ) , S ( 307 , 377 ) , S ( 299 , 372 ) , S ( 294 , 347 ) ,
65+ S ( 296 , 357 ) , S ( 303 , 367 ) , S ( 303 , 375 ) , S ( 306 , 375 ) , S ( 307 , 379 ) , S ( 302 , 375 ) , S ( 304 , 358 ) , S ( 308 , 347 ) ,
66+ S ( 298 , 351 ) , S ( 299 , 352 ) , S ( 310 , 350 ) , S ( 289 , 365 ) , S ( 296 , 367 ) , S ( 309 , 355 ) , S ( 315 , 358 ) , S ( 302 , 332 ) ,
67+ S ( 277 , 335 ) , S ( 296 , 352 ) , S ( 281 , 333 ) , S ( 272 , 355 ) , S ( 277 , 351 ) , S ( 276 , 352 ) , S ( 300 , 338 ) , S ( 287 , 322 ) ,
6168 ] ,
6269 // Knight
6370 [
64- S ( 170 , 223 ) , S ( 248 , 243 ) , S ( 303 , 268 ) , S ( 288 , 253 ) , S ( 398 , 250 ) , S ( 240 , 254 ) , S ( 322 , 218 ) , S ( 230 , 182 ) ,
65- S ( 264 , 256 ) , S ( 296 , 273 ) , S ( 409 , 256 ) , S ( 373 , 279 ) , S ( 360 , 272 ) , S ( 399 , 256 ) , S ( 344 , 257 ) , S ( 320 , 229 ) ,
66- S ( 290 , 257 ) , S ( 397 , 261 ) , S ( 374 , 291 ) , S ( 402 , 290 ) , S ( 421 , 280 ) , S ( 466 , 272 ) , S ( 410 , 262 ) , S ( 381 , 240 ) ,
67- S ( 328 , 264 ) , S ( 354 , 284 ) , S ( 356 , 303 ) , S ( 390 , 303 ) , S ( 374 , 303 ) , S ( 406 , 292 ) , S ( 355 , 289 ) , S ( 359 , 263 ) ,
68- S ( 324 , 263 ) , S ( 341 , 275 ) , S ( 353 , 297 ) , S ( 350 , 306 ) , S ( 365 , 297 ) , S ( 356 , 298 ) , S ( 358 , 285 ) , S ( 329 , 263 ) ,
69- S ( 314 , 258 ) , S ( 328 , 278 ) , S ( 349 , 280 ) , S ( 347 , 296 ) , S ( 356 , 291 ) , S ( 354 , 278 ) , S ( 362 , 261 ) , S ( 321 , 259 ) ,
70- S ( 308 , 239 ) , S ( 284 , 261 ) , S ( 325 , 271 ) , S ( 334 , 276 ) , S ( 336 , 279 ) , S ( 355 , 261 ) , S ( 323 , 258 ) , S ( 318 , 237 ) ,
71- S ( 232 , 252 ) , S ( 316 , 230 ) , S ( 279 , 258 ) , S ( 304 , 266 ) , S ( 320 , 259 ) , S ( 309 , 263 ) , S ( 318 , 231 ) , S ( 314 , 217 ) ,
71+ S ( 125 , 261 ) , S ( 157 , 322 ) , S ( 220 , 335 ) , S ( 252 , 328 ) , S ( 283 , 331 ) , S ( 228 , 308 ) , S ( 174 , 329 ) , S ( 179 , 240 ) ,
72+ S ( 256 , 314 ) , S ( 272 , 336 ) , S ( 297 , 343 ) , S ( 314 , 343 ) , S ( 298 , 335 ) , S ( 359 , 320 ) , S ( 272 , 332 ) , S ( 294 , 300 ) ,
73+ S ( 270 , 331 ) , S ( 303 , 346 ) , S ( 320 , 362 ) , S ( 332 , 363 ) , S ( 368 , 347 ) , S ( 369 , 342 ) , S ( 326 , 336 ) , S ( 296 , 321 ) ,
74+ S ( 266 , 342 ) , S ( 279 , 362 ) , S ( 303 , 373 ) , S ( 323 , 375 ) , S ( 306 , 376 ) , S ( 330 , 371 ) , S ( 289 , 361 ) , S ( 299 , 334 ) ,
75+ S ( 253 , 343 ) , S ( 268 , 352 ) , S ( 282 , 375 ) , S ( 283 , 375 ) , S ( 292 , 378 ) , S ( 287 , 369 ) , S ( 286 , 354 ) , S ( 263 , 334 ) ,
76+ S ( 235 , 327 ) , S ( 256 , 346 ) , S ( 270 , 355 ) , S ( 273 , 369 ) , S ( 284 , 367 ) , S ( 274 , 351 ) , S ( 277 , 340 ) , S ( 250 , 329 ) ,
77+ S ( 222 , 318 ) , S ( 233 , 334 ) , S ( 249 , 343 ) , S ( 261 , 346 ) , S ( 262 , 346 ) , S ( 264 , 341 ) , S ( 251 , 325 ) , S ( 248 , 329 ) ,
78+ S ( 180 , 311 ) , S ( 232 , 298 ) , S ( 219 , 327 ) , S ( 233 , 331 ) , S ( 237 , 332 ) , S ( 250 , 321 ) , S ( 234 , 305 ) , S ( 209 , 300 ) ,
7279 ] ,
7380 // Pawn
7481 [
75- S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) ,
76- S ( 180 , 272 ) , S ( 216 , 267 ) , S ( 143 , 252 ) , S ( 177 , 228 ) , S ( 150 , 241 ) , S ( 208 , 226 ) , S ( 116 , 259 ) , S ( 71 , 281 ) ,
77- S ( 76 , 188 ) , S ( 89 , 194 ) , S ( 108 , 179 ) , S ( 113 , 161 ) , S ( 147 , 150 ) , S ( 138 , 147 ) , S ( 107 , 176 ) , S ( 62 , 178 ) ,
78- S ( 68 , 126 ) , S ( 95 , 118 ) , S ( 88 , 107 ) , S ( 103 , 99 ) , S ( 105 , 92 ) , S ( 94 , 98 ) , S ( 99 , 111 ) , S ( 59 , 111 ) ,
79- S ( 55 , 107 ) , S ( 80 , 103 ) , S ( 77 , 91 ) , S ( 94 , 87 ) , S ( 99 , 87 ) , S ( 88 , 86 ) , S ( 92 , 97 ) , S ( 57 , 93 ) ,
80- S ( 56 , 98 ) , S ( 78 , 101 ) , S ( 78 , 88 ) , S ( 72 , 95 ) , S ( 85 , 94 ) , S ( 85 , 89 ) , S ( 115 , 93 ) , S ( 70 , 86 ) ,
81- S ( 47 , 107 ) , S ( 81 , 102 ) , S ( 62 , 102 ) , S ( 59 , 104 ) , S ( 67 , 107 ) , S ( 106 , 94 ) , S ( 120 , 96 ) , S ( 60 , 87 ) ,
82- S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) , S ( 82 , 94 ) ,
82+ S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) ,
83+ S ( 136 , 281 ) , S ( 157 , 274 ) , S ( 135 , 274 ) , S ( 165 , 226 ) , S ( 148 , 222 ) , S ( 132 , 233 ) , S ( 66 , 277 ) , S ( 41 , 291 ) ,
84+ S ( 58 , 223 ) , S ( 71 , 231 ) , S ( 104 , 197 ) , S ( 109 , 176 ) , S ( 112 , 168 ) , S ( 134 , 153 ) , S ( 114 , 199 ) , S ( 72 , 198 ) ,
85+ S ( 43 , 154 ) , S ( 67 , 144 ) , S ( 70 , 124 ) , S ( 73 , 115 ) , S ( 93 , 107 ) , S ( 85 , 110 ) , S ( 89 , 128 ) , S ( 66 , 129 ) ,
86+ S ( 33 , 130 ) , S ( 60 , 127 ) , S ( 58 , 110 ) , S ( 74 , 107 ) , S ( 75 , 105 ) , S ( 67 , 106 ) , S ( 75 , 118 ) , S ( 54 , 110 ) ,
87+ S ( 31 , 124 ) , S ( 55 , 126 ) , S ( 55 , 108 ) , S ( 56 , 120 ) , S ( 71 , 113 ) , S ( 60 , 111 ) , S ( 89 , 116 ) , S ( 60 , 107 ) ,
88+ S ( 32 , 128 ) , S ( 56 , 129 ) , S ( 52 , 116 ) , S ( 42 , 122 ) , S ( 61 , 127 ) , S ( 76 , 116 ) , S ( 98 , 115 ) , S ( 53 , 108 ) ,
89+ S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) , S ( 0 , 0 ) ,
8390 ] ,
8491] ;
8592
@@ -93,29 +100,3 @@ impl EvalValues for ByteKnightValues {
93100 PSQTS [ piece as usize ] [ square:: flip_if ( side == Side :: White , square) as usize ]
94101 }
95102}
96-
97- #[ cfg( test) ]
98- mod tests {
99- use chess:: board:: Board ;
100-
101- use super :: * ;
102- use crate :: { evaluation:: Evaluation , psqt:: Psqt , traits:: Eval } ;
103-
104- #[ test]
105- fn verify_values_match_pesto ( ) {
106- let values = ByteKnightValues :: default ( ) ;
107- let eval = Evaluation :: new ( values) ;
108-
109- let psqt = Psqt :: new ( ) ;
110-
111- let board =
112- Board :: from_fen ( "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1" )
113- . unwrap ( ) ;
114-
115- let score = psqt. evaluate ( & board) ;
116- println ! ( "{}" , score) ;
117- let new_eval_score = eval. eval ( & board) ;
118- println ! ( "{}" , new_eval_score) ;
119- assert_eq ! ( score, new_eval_score) ;
120- }
121- }
0 commit comments