/** Test of insert method, of class TranspositionTable. */ @Test public void testInsert() throws ChessParseError { System.out.println("insert"); TranspositionTable tt = new TranspositionTable(16); Position pos = TextIO.readFEN(TextIO.startPosFEN); String[] moves = { "e4", "e5", "Nf3", "Nc6", "Bb5", "a6", "Ba4", "b5", "Bb3", "Nf6", "O-O", "Be7", "Re1" }; UndoInfo ui = new UndoInfo(); for (int i = 0; i < moves.length; i++) { Move m = TextIO.stringToMove(pos, moves[i]); pos.makeMove(m, ui); int score = i * 17 + 3; m.score = score; int type = TranspositionTable.TTEntry.T_EXACT; int ply = i + 1; int depth = i * 2 + 5; tt.insert(pos.historyHash(), m, type, ply, depth, score * 2 + 3); } pos = TextIO.readFEN(TextIO.startPosFEN); for (int i = 0; i < moves.length; i++) { Move m = TextIO.stringToMove(pos, moves[i]); pos.makeMove(m, ui); TranspositionTable.TTEntry ent = tt.probe(pos.historyHash()); assertEquals(TranspositionTable.TTEntry.T_EXACT, ent.type); int score = i * 17 + 3; int ply = i + 1; int depth = i * 2 + 5; assertEquals(score, ent.getScore(ply)); assertEquals(depth, ent.getDepth()); assertEquals(score * 2 + 3, ent.evalScore); Move tmpMove = new Move(0, 0, 0); ent.getMove(tmpMove); assertEquals(m, tmpMove); } }