コード例 #1
0
ファイル: HashTable.cs プロジェクト: vosen/kora
 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));
     }
 }
コード例 #2
0
ファイル: HashTable.cs プロジェクト: vosen/kora
 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);
 }
コード例 #3
0
ファイル: HashTable.cs プロジェクト: vosen/kora
 public void MultipleSameAdd()
 {
     var table = new HashTable<string>();
     table.Add(0, "0");
     for (int i = 0; i < 7; i++)
         Assert.Throws<ArgumentException>(() => table.Add(0, "0"));
     Assert.AreEqual(1, table.Count);
 }
コード例 #4
0
ファイル: HashTable.cs プロジェクト: vosen/kora
 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);
 }