Exemplo n.º 1
0
        public void Delete()
        {
            uint   size  = 128;
            string temp  = null;
            var    table = new HashTable <string>();

            for (uint i = 0; i < size; i++)
            {
                table.Add(i, i.ToString());
                CheckInnerTables(table);
            }
            for (uint i = 0; i < size; i++)
            {
                Assert.IsTrue(table.TryGetValue(i, out temp));
                Assert.AreEqual(i.ToString(), temp);
            }
            for (uint i = 0; i < size; i++)
            {
                table.Remove(i);
                CheckInnerTables(table);
            }
            for (uint i = 0; i < size; i++)
            {
                Assert.IsFalse(table.TryGetValue(i, out temp));
            }
        }
Exemplo n.º 2
0
 public void Delete()
 {
     uint size = 128;
     string temp = null;
     var table = new HashTable<string>();
     for (uint i = 0; i < size; i++)
     {
         table.Add(i, i.ToString());
         CheckInnerTables(table);
     }
     for (uint i = 0; i < size; i++)
     {
         Assert.IsTrue(table.TryGetValue(i, out temp));
         Assert.AreEqual(i.ToString(), temp);
     }
     for (uint i = 0; i < size; i++)
     {
         table.Remove(i);
         CheckInnerTables(table);
     }
     for (uint i = 0; i < size; i++)
     {
         Assert.IsFalse(table.TryGetValue(i, out temp));
     }
 }
Exemplo n.º 3
0
        public void AddWithCollision()
        {
            var table = new HashTable <string>();

            table.Add(1, "1");
            CheckInnerTables(table);
            uint firstHash = table.GetHash(1);
            uint collision = 2;

            while (!(table.GetHash(collision) == firstHash))
            {
                collision++;
            }
            // HACK WARNING: I create collision instead of generating it
            uint secondHash = table.inner[firstHash].GetHash(collision);

            table.inner[firstHash].a = 0;
            table.inner[firstHash].b = secondHash;
            table.Add(collision, collision.ToString());
            CheckInnerTables(table);
            string temp = null;

            Assert.IsTrue(table.TryGetValue(collision, out temp));
            Assert.AreEqual(collision.ToString(), temp);
        }
Exemplo n.º 4
0
        public void Adding()
        {
            var table = new HashTable <string>();

            table.Add(1, "1");
            CheckInnerTables(table);
            table.Add(2, "2");
            CheckInnerTables(table);
            table.Add(3, "3");
            CheckInnerTables(table);
            table.Add(4, "4");
            CheckInnerTables(table);
            table.Add(5, "5");
            CheckInnerTables(table);
            table.Add(6, "6");
            CheckInnerTables(table);
            table.Add(7, "7");
            CheckInnerTables(table);
            table.Add(8, "8");
            CheckInnerTables(table);
            string temp = null;

            Assert.IsTrue(table.TryGetValue(1, out temp));
            Assert.AreEqual("1", temp);
            Assert.IsTrue(table.TryGetValue(2, out temp));
            Assert.AreEqual("2", temp);
            Assert.IsTrue(table.TryGetValue(3, out temp));
            Assert.AreEqual("3", temp);
            Assert.IsTrue(table.TryGetValue(4, out temp));
            Assert.AreEqual("4", temp);
            Assert.IsTrue(table.TryGetValue(5, out temp));
            Assert.AreEqual("5", temp);
            Assert.IsTrue(table.TryGetValue(6, out temp));
            Assert.AreEqual("6", temp);
            Assert.IsTrue(table.TryGetValue(7, out temp));
            Assert.AreEqual("7", temp);
            Assert.IsTrue(table.TryGetValue(8, out temp));
            Assert.AreEqual("8", temp);
        }
Exemplo n.º 5
0
 public void Adding()
 {
     var table = new HashTable<string>();
     table.Add(1, "1");
     CheckInnerTables(table);
     table.Add(2, "2");
     CheckInnerTables(table);
     table.Add(3, "3");
     CheckInnerTables(table);
     table.Add(4, "4");
     CheckInnerTables(table);
     table.Add(5, "5");
     CheckInnerTables(table);
     table.Add(6, "6");
     CheckInnerTables(table);
     table.Add(7, "7");
     CheckInnerTables(table);
     table.Add(8, "8");
     CheckInnerTables(table);
     string temp = null;
     Assert.IsTrue(table.TryGetValue(1, out temp));
     Assert.AreEqual("1", temp);
     Assert.IsTrue(table.TryGetValue(2, out temp));
     Assert.AreEqual("2", temp);
     Assert.IsTrue(table.TryGetValue(3, out temp));
     Assert.AreEqual("3", temp);
     Assert.IsTrue(table.TryGetValue(4, out temp));
     Assert.AreEqual("4", temp);
     Assert.IsTrue(table.TryGetValue(5, out temp));
     Assert.AreEqual("5", temp);
     Assert.IsTrue(table.TryGetValue(6, out temp));
     Assert.AreEqual("6", temp);
     Assert.IsTrue(table.TryGetValue(7, out temp));
     Assert.AreEqual("7", temp);
     Assert.IsTrue(table.TryGetValue(8, out temp));
     Assert.AreEqual("8", temp);
 }
Exemplo n.º 6
0
 public void AddWithCollision()
 {
     var table = new HashTable<string>();
     table.Add(1, "1");
     CheckInnerTables(table);
     uint firstHash = table.GetHash(1);
     uint collision = 2;
     while(!(table.GetHash(collision) == firstHash))
     {
         collision++;
     }
     // HACK WARNING: I create collision instead of generating it
     uint secondHash = table.inner[firstHash].GetHash(collision);
     table.inner[firstHash].a = 0;
     table.inner[firstHash].b = secondHash;
     table.Add(collision, collision.ToString());
     CheckInnerTables(table);
     string temp = null;
     Assert.IsTrue(table.TryGetValue(collision, out temp));
     Assert.AreEqual(collision.ToString(), temp);
 }