+ const bool testBitboards = all || false;
+ const bool testState = all || false;
+ const bool testKingCount = all || false;
+ const bool testKingCapture = all || false;
+ const bool testPieceCounts = all || false;
+ const bool testPieceList = all || false;
+ const bool testCastlingSquares = all || false;
+
+ if (step)
+ *step = 1;
+
+ if ( (sideToMove != WHITE && sideToMove != BLACK)
+ || piece_on(king_square(WHITE)) != W_KING
+ || piece_on(king_square(BLACK)) != B_KING
+ || ( ep_square() != SQ_NONE
+ && relative_rank(sideToMove, ep_square()) != RANK_6))
+ return false;
+
+ if (step && ++*step, testBitboards)