Exemplo n.º 1
0
        public void NawHashTable_Find_ShouldFindFirstOccurences()
        {
            // Arrange
            NawHashTable hashtable = new NawHashTable(10);

            hashtable.Add(naw0);
            hashtable.Add(naw1);
            hashtable.Add(naw2);
            hashtable.Add(naw3);
            hashtable.Add(naw4);
            hashtable.Add(naw5);
            hashtable.Add(naw6);
            hashtable.Add(naw7);
            hashtable.Add(naw8);
            hashtable.Add(naw9);
            Logger.Instance.ClearLog();

            // Act
            NAW nawFound4 = hashtable.Find(naw4.Naam);
            NAW nawFound5 = hashtable.Find(naw5.Naam);
            NAW nawFound6 = hashtable.Find(naw6.Naam);
            NAW nawFound7 = hashtable.Find(naw7.Naam);

            // Assert
            Assert.IsTrue(nawFound4 != null && nawFound5 != null && nawFound6 != null && nawFound7 != null, "Een of meerdere elementen zijn onterecht niet gevonden.");
            Assert.IsTrue(nawFound4.CompareTo(naw0) == 0, "Voor {0} is niet de eerste gevonden.", naw0.Naam);
            Assert.IsTrue(nawFound5.CompareTo(naw1) == 0, "Voor {0} is niet de eerste gevonden.", naw0.Naam);
            Assert.IsTrue(nawFound6.CompareTo(naw2) == 0, "Voor {0} is niet de eerste gevonden.", naw0.Naam);
            Assert.IsTrue(nawFound7.CompareTo(naw3) == 0, "Voor {0} is niet de eerste gevonden.", naw0.Naam);
        }
Exemplo n.º 2
0
        public void NawHashTable_Add_ShouldAddToArray()
        {
            NawHashTable hashtable = new NawHashTable(10);

            hashtable.Add(naw0);

            var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET);

            Assert.AreEqual(1, setters.Count(), "\n\nNawHashTable.Add(): Er zijn geen of teveel schrijf operaties geweest in de array");
            Assert.AreEqual(8, setters.First().Index1, "\n\nNawHashTable.Add(): De GetHashCode van de NAW is -953963338. De absolute waarde hiervan modulo 10 is 8. Dit is de index waarop de waarde moet worden gezet.");
        }
Exemplo n.º 3
0
        public void NawHashTable_Add_Twice_ShouldDoLinearProbing()
        {
            NawHashTable hashtable = new NawHashTable(10);

            hashtable.Add(naw0);
            hashtable.Add(naw0);

            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(9, setters[1].Index1, "\n\nNawHashTable.Add(): De eerste NAW wordt op plek 8 gezet, de tweede zou op plek 9 moeten komen");
        }
Exemplo n.º 4
0
        public void NawHashTable_Add_Thrice_LinearProbingShouldWrap()
        {
            NawHashTable hashtable = new NawHashTable(10);

            hashtable.Add(naw0);
            hashtable.Add(naw0);
            hashtable.Add(naw0);

            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, op 9. De derde moet op plek 0 komen te staan.");
        }
Exemplo n.º 5
0
        public void NawHashTable_Add_TenTimes_ShouldFillArray()
        {
            NawHashTable hashtable = new NawHashTable(10);

            bool result = true;

            for (int i = 0; i < 10; i++)
            {
                result = result && hashtable.Add(i % 2 == 0 ? naw0 : naw1);
            }
            var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET).ToArray();

            Assert.AreEqual(10, setters.Count(), "\n\nNawHashTable.Add(): Er zouden precies 10 elementen gevuld moeten zijn");
            Assert.IsTrue(result, "\n\nNawHashTable.Add(): Er wordt niet geretourneerd dat de operatie succesvol was.");
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        public void NawHashTable_Find_ShouldFindNawAddedToArray()
        {
            // Arrange
            NawHashTable hashtable = new NawHashTable(10);

            hashtable.Add(naw0);
            Logger.Instance.ClearLog();

            // Act
            NAW nawFound = hashtable.Find(naw0.Naam);

            // Assert
            Assert.IsTrue(nawFound != null, "De returnwaarde is leeg. Het element is dus onterecht niet correct gevonden ?");
            var getters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.GET).ToArray();

            Assert.AreEqual(1, getters.Count(), "\n\nNawHashTable.Find(): Bij in zoeken zijn meerdere indexen in de array van de hashtable gelezen terwijl er maar 1 element in zit.");
            Assert.IsTrue(nawFound.CompareTo(naw0) == 0, "\n\nNawHashTable.Find(): Het NAW object dat wordt teruggeven is anders dan de NAW die aan de hashtable was toegevoegd.");
        }
Exemplo n.º 8
0
        public void NawHashTable_Add_ElevenTimes_ShouldIgnoreLast()
        {
            NawHashTable hashtable = new NawHashTable(10);

            for (int i = 0; i < 10; i++)
            {
                hashtable.Add(i % 2 == 0 ? naw0 : naw1);
            }
            Logger.Instance.ClearLog();

            // Elfde keer
            bool result = hashtable.Add(naw2);

            Assert.IsFalse(result, "De returnwaarde geeft niet aan dat het element niet kon worden toegevoegd");
            var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET).ToArray();

            Assert.AreEqual(0, setters.Count(), "\n\nNawHashTable.Add(): Er wordt een element in de array gezet terwijl deze al vol is.");
        }
Exemplo n.º 9
0
        public void NawHashTable_Find_ShouldNotFindNawNotAddedToArray()
        {
            // Arrange
            NawHashTable hashtable = new NawHashTable(10);

            hashtable.Add(naw0);
            hashtable.Add(naw1);
            hashtable.Add(naw2);
            hashtable.Add(naw3);
            Logger.Instance.ClearLog();

            // Act
            NAW nawFound = hashtable.Find(naw9.Naam);

            // Assert
            Assert.IsTrue(nawFound == null, "De returnwaarde is niet leeg ? Er is dus onterecht een element gevonden ?");
            var getters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.GET).ToArray();

            Assert.IsTrue(getters.Count() >= 1, "\n\nNawHashTable.Find(): Er worden helemaal geen indexen bekeken. Zoek je wel in je array ?");
        }
Exemplo n.º 10
0
        public void NawHashTable_Add_TenTimes_ShouldFillArray()
        {
            NawHashTable hashtable = new NawHashTable(10);

            /*
             * for (int i = 0; i < 10; i++)
             * {
             *  hashtable.Add(i % 2 == 0 ? naw0 : naw1);
             * }*/
            hashtable.Add(naw0);
            hashtable.Add(naw1);
            hashtable.Add(naw2);
            hashtable.Add(naw3);
            hashtable.Add(naw4);
            hashtable.Add(naw5);
            hashtable.Add(naw6);
            hashtable.Add(naw7);
            hashtable.Add(naw8);
            hashtable.Add(naw9);

            var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET).ToArray();

            Assert.AreEqual(10, setters.Count(), "\n\nNawHashTable.Add(): Er zouden precies 10 elementen gevuld moeten zijn");
        }