Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }