import java.math.BigInteger; public class Testing { public static void testRookMoves() { int rookSquare = 36; long WP_STARTING_POSITIONS = 71776119061217280L; long BP_STARTING_POSITIONS = 65280L; long COMBINED_OCC = WP_STARTING_POSITIONS | BP_STARTING_POSITIONS; long rookMoves = MoveUtils.getRookMovesSeparate(COMBINED_OCC, rookSquare); //Bitboard.printBigInteger(rookMoves); } public static void TestKnightMoves() { BigInteger MAX_BIGINT = new BigInteger("18446744073709551615"); // Max u64 value BigInteger knightBitboard = BigInteger.ZERO; knightBitboard = knightBitboard.setBit(45); knightBitboard = knightBitboard.setBit(42); Bitboard.printBigInteger(knightBitboard); Bitboard.printBigInteger(MAX_BIGINT); BigInteger tempBitboard = knightBitboard; while (!tempBitboard.equals(BigInteger.ZERO)) { int knightSquare = Bitboard.bitScanForwardSlow(tempBitboard); tempBitboard = tempBitboard.clearBit(knightSquare); Pr.println("Knight square: " + knightSquare); if (knightSquare == -1) { Pr.println("Error knight sq -1"); break; } //BigInteger knightAttacks = MoveConstants.KNIGHT_ATTACKS[knightSquare]; Pr.println("Knight on square " + knightSquare); //Bitboard.printBigInteger(knightAttacks); } } public static void printRookMoves() { for (int direction = 0; direction < 4; direction++) { Pr.println("direction: " + direction); for (int sq = 0; sq < 64; sq++) { // Bitboard.printBigInteger(MoveConstants.ROOK_ATTACKS[direction][sq]); } } } public static void printBishopMoves() { for (int direction = 0; direction < 4; direction++) { Pr.println("direction: " + direction); for (int sq = 0; sq < 64; sq++) { // Bitboard.printBigInteger(MoveConstants.BISHOP_ATTACKS[direction][sq]); } } } public static void testLong() { long knight_bitboard = 0L; knight_bitboard |= MoveConstants.SQUARE_BBS[63]; Bitboard.printLong(knight_bitboard); } public static void bitScanTest() { for (int i = 0; i < 64; i++) { int square = Perft.bitScanForward(MoveConstants.SQUARE_BBS[i]); Pr.print("i: "); System.out.println(i); Pr.print("sq: "); System.out.println(square); } } }