public void IndexCollision_TryGetValue_ReturnsFalse() { TransposTable tt = new TransposTable(8); TTEntry orig = new TTEntry(0x12_34_56_78_9A_BC_DE_F1, new Square(4, 5), 6, 7, TTFlag.Exact); tt.Write(orig); TTEntry returned; bool retVal = tt.TryGetValue(0xFF_FF_FF_FF_9A_BC_DE_F1, out returned); Assert.AreEqual(false, retVal); }
public void IndexCollision_HigherDepth_Remains() { ulong hash1 = 0x12_34_56_78_9A_BC_DE_F1; ulong hash2 = 0xFF_FF_FF_FF_9A_BC_DE_F1; TransposTable tt = new TransposTable(8); TTEntry orig = new TTEntry(hash1, new Square(4, 5), 6, 7, TTFlag.Exact); tt.Write(orig); TTEntry higherDepth = new TTEntry(hash2, new Square(4, 5), 60, 7, TTFlag.Exact); tt.Write(higherDepth); //should overwrite TTEntry returned; bool retVal = tt.TryGetValue(hash2, out returned); Assert.AreEqual(true, retVal); tt.Write(orig); //should not overwrite retVal = tt.TryGetValue(hash2, out returned); Assert.AreEqual(true, retVal); }
public void FirstRecordOfAHashGetsReturned() { ulong hash = 0x12_34_56_78_9A_BC_DE_F1; TransposTable tt = new TransposTable(8); TTEntry orig = new TTEntry(hash, new Square(4, 5), 6, 7, TTFlag.Exact); tt.Write(orig); TTEntry returned; bool retVal = tt.TryGetValue(hash, out returned); Assert.AreEqual(true, retVal); Assert.AreEqual(orig.Hash, returned.Hash); Assert.AreEqual(orig.BestMove, returned.BestMove); Assert.AreEqual(orig.Depth, returned.Depth); Assert.AreEqual(orig.Score, returned.Score); Assert.AreEqual(orig.Flag, returned.Flag); }