public void HashTableRemovingTest() { foreach (Type hashTableType in this.hashTableTypes) { IHashTable hashTable = Activator.CreateInstance(hashTableType) as IHashTable; Assert.IsTrue(hashTable.Add(5)); Assert.IsTrue(hashTable.Add(15)); Assert.IsTrue(hashTable.Add(14)); Assert.IsTrue(hashTable.Remove(15), "hash table [{0}] should remove existed element", hashTableType.Name); Assert.IsFalse(hashTable.Remove(17), "hash table [{0}] should not be able to remove not existed element", hashTableType.Name); Assert.IsTrue(hashTable.Contains(5), "hash table [{0}] should contains not removed element", hashTableType.Name); Assert.IsFalse(hashTable.Contains(15), "hash table [{0}] should not contains removed element", hashTableType.Name); } }
public void Contains_ShouldReturnFalse_WhenElementIsNotInTable(string notExistingKey) { // arrange _hashTable.Add(Key2, Value2); // act & assert _hashTable.Contains(notExistingKey).ShouldBeFalse(); }
public void Test_Contains() { IHashTable <string> ht = this.CreateFullHashTable(); foreach (string value in VALUES) { Assert.True(ht.Contains(value)); } }
public void Test_Add() { IHashTable <string> ht = this.CreateInstance(2); ht.Add("Metal Church"); Assert.True(ht.Contains("Metal Church")); Assert.Equal(1, ht.Count); }
public void HashTableAddingTest() { foreach (Type hashTableType in this.hashTableTypes) { IHashTable hashTable = Activator.CreateInstance(hashTableType) as IHashTable; Assert.IsTrue(hashTable.Add(5)); Assert.IsTrue(hashTable.Contains(5), "hash table [{0}] should contains added value", hashTableType.Name); } }
public void HashTableCreationTest() { foreach (Type hashTableType in this.hashTableTypes) { IHashTable hashTable = Activator.CreateInstance(hashTableType) as IHashTable; Assert.IsNotNull(hashTable); Assert.IsFalse(hashTable.Contains(5), "hash table [{0}] should not contains any value after creation", hashTableType.Name); } }
public void Test_Delete() { IHashTable <string> ht = this.CreateFullHashTable(); foreach (string value in VALUES) { ht.Delete(value); Assert.False(ht.Contains(value)); } Assert.Equal(0, ht.Count); }
public void HashTableRebuildTest() { foreach (Type hashTableType in this.hashTableTypes) { IHashTable hashTable = Activator.CreateInstance(hashTableType, 2) as IHashTable; Assert.IsTrue(hashTable.Add(5)); Assert.IsTrue(hashTable.Add(15)); Assert.IsTrue(hashTable.Add(13)); Assert.IsTrue(hashTable.Add(17)); Assert.IsTrue(hashTable.Contains(15), "hash table [{0}] should contains element 15 after rebuilding", hashTableType.Name); Assert.IsTrue(hashTable.Contains(5), "hash table [{0}] should contains element 5 after rebuilding", hashTableType.Name); Assert.IsTrue(hashTable.Contains(13), "hash table [{0}] should contains element 14 after rebuilding", hashTableType.Name); } }
public void Test_Resize_Up() { IHashTable <string> ht = this.CreateInstance(10); int oldSize = ht.Size; // It's needed more than 75% to trigger // a resize up. for (int i = 0; i < oldSize; i++) { ht.Add(i.ToString()); } for (int i = 0; i < oldSize; i++) { Assert.True(ht.Contains(i.ToString())); } Assert.Equal(oldSize * 2, ht.Size); Assert.Equal(oldSize, ht.Count); }
public void Test_Resize_Down() { IHashTable <string> ht = this.CreateInstance(10); int oldSize = ht.Size; // It's needed more than 75% to trigger // a resize up. for (int i = 0; i < oldSize; i++) { ht.Add(i.ToString()); } oldSize = ht.Size; // Resize up = 20 // 20 - 20 * 0.75 = 5 // Trigger count = 5 int triggerCount = (int)(oldSize - oldSize * 0.75); // It's needed less than 25% to trigger // a resize down. // Removing the upper values eases testing. for (int i = oldSize; i >= triggerCount; i--) { ht.Delete(i.ToString()); } for (int i = 0; i < (oldSize - oldSize * 0.75); i++) { Assert.True(ht.Contains(i.ToString())); } Assert.Equal(oldSize / 2, ht.Size); Assert.Equal(triggerCount, ht.Count); }