public void NawHashTable_Add_Twice_ShouldDoLinearProbing() { NawHashTable hashtable = new NawHashTable(10); hashtable.Add(naw0); hashtable.Add(naw0); hashtable.Show(); var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET).ToArray(); Assert.AreEqual(2, setters.Count(), "\n\nNawHashTable.Add(): Er zouden twee elementen toegevoegd moeten zijn aan de array"); Assert.AreEqual(5, setters[1].Index1, "\n\nNawHashTable.Add(): De eerste NAW wordt op plek 4 gezet, de tweede zou op plek 5 moeten komen"); }
public void NawHashTable_Add_Thrice_LinearProbingShouldWrap() { NawHashTable hashtable = new NawHashTable(10); hashtable.Add(naw2); hashtable.Add(naw2); hashtable.Add(naw2); hashtable.Show(); var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET).ToArray(); Assert.AreEqual(3, setters.Count(), "\n\nNawHashTable.Add(): Er zouden twee elementen toegevoegd moeten zijn aan de array"); Assert.AreEqual(0, setters[2].Index1, "\n\nNawHashTable.Add(): De eerste NAW wordt op plek 8 gezet, de tweede op 9. De derde moet op plek 0 komen te staan."); }
public void NawHashTable_Add_ShouldAddToArray() { // Arrange NawHashTable hashtable = new NawHashTable(10); int hash = (naw0.Naam.GetHashCode() % 10); bool result = hashtable.Add(naw0); hashtable.Show(); Assert.IsTrue(result, "De returnwaarde geeft aan dat het element niet is toegevoegd ?"); var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET).ToArray(); Assert.AreEqual(1, hashtable.Count, "\n\nNawHashTable.Add(): Count geeft niet juiste aantal items terug."); Assert.AreEqual(1, setters.Count(), "\n\nNawHashTable.Add(): Bij in toevoegen van 1 item aan een lege hashtable zou maar 1 index moeten worden beschreven."); Assert.AreEqual(4, setters.First().Index1, "\n\nNawHashTable.Add(): De GetHashCode van de naam in de NAW is {0}. De absolute waarde hiervan modulo 10 is 4. Dit is de index waarop de waarde moet worden gezet i.p.v. op {1}.", hash, setters.First().Index1); }