Ejemplo n.º 1
0
        public void Realize()
        {
            var HashTableint = new ChainingHashTable <int, int>(8);

            HashTableint.Add(1, 0);
            HashTableint.Add(2, 0);
            HashTableint.Add(3, 0);
            HashTableint.Add(4, 0);
            HashTableint.Add(5, 1);
            HashTableint.Add(6, 2);
            HashTableint.Add(7, 3);
            HashTableint.Add(8, 4);
            HashTableint.Add(9, 5);
            HashTableint.Add(10, 0);
            HashTableint.Add(11, 0);
            HashTableint.Add(12, 1);
            HashTableint.Add(13, 13);
            HashTableint.Add(14, 14);
            HashTableint.Add(15, 15);
            HashTableint.Add(16, 16);
            Console.WriteLine("Проводиться поиск");
            Console.WriteLine(HashTableint.Find(4));
            Console.WriteLine(HashTableint.Find(5));
            Console.WriteLine(HashTableint.Find(8));
            Console.WriteLine(HashTableint.Find(9));
            Console.WriteLine(HashTableint.Find(22));
            Console.WriteLine("Проводиться удаление");
            Console.WriteLine(HashTableint.Remove(4));
            Console.WriteLine(HashTableint.Remove(12));
            Console.WriteLine(HashTableint.Remove(22));
        }
Ejemplo n.º 2
0
        public void Constructor_ForBadParameter_ThrowsException()
        {
            //arrange + act
            Action act = () => { var cht = new ChainingHashTable <string, int>(0); };

            //assert
            act.Should().Throw <ArgumentException>();
        }
Ejemplo n.º 3
0
        public void Get_ForNotExistingKey_ThrowsException()
        {
            //arrange
            var cht = new ChainingHashTable <string, int>(5);
            //arrange + act
            Action act = () => { cht.Get("null"); };

            //assert
            act.Should().Throw <System.Collections.Generic.KeyNotFoundException>();
        }
Ejemplo n.º 4
0
        public void Get_ForNull_ThrowsException()
        {
            //arrange
            var cht = new ChainingHashTable <string, int>(5);
            //arrange + act
            Action act = () => { cht.Get(null); };

            //assert
            act.Should().Throw <ArgumentException>();
        }
Ejemplo n.º 5
0
        public void Add_ForNullKey_ThrowsException()
        {
            //arrange
            var cht = new ChainingHashTable <string, int>(5);
            //act
            Action act = () => { cht.Add(null, 1); };

            //assert
            act.Should().Throw <ArgumentException>();
        }
Ejemplo n.º 6
0
        public void Add_ForGoodValues_InsertsIt()
        {
            //arrange
            const string key   = "1";
            const int    value = 1;
            var          cht   = new ChainingHashTable <string, int>(5);

            //act
            cht.Add(key, value);
            //assert
            cht[key].Should().Be(value);
        }
Ejemplo n.º 7
0
        public void Get_ForExistingKey_ReturnsTheValue()
        {
            //arrange
            const string key   = "1";
            const int    value = 1;
            var          cht   = new ChainingHashTable <string, int>(5);

            cht.Add(key, value);
            //act
            var result = cht.Get(key);

            //assert
            result.Should().Be(value);
        }
Ejemplo n.º 8
0
        static void Main(string[] args)
        {
            // Sizes for both the sample data and the table itself. (eventually user input)
            const int TableSize = 100;
            const int DataSize  = 1000;

            // Array of random ints. This will be sample data for all hash tables
            int[] arrayOfRandomInts = GetArrayOfRandomInts(DataSize, 100000);

            // Create an empty chaining hash table
            ChainingHashTable chainingHashTable = new ChainingHashTable(TableSize);

            chainingHashTable.Populate(arrayOfRandomInts);
            chainingHashTable.Print();
        }
Ejemplo n.º 9
0
        public static void HashTableTest()
        {
            ChainingHashTable ht = new ChainingHashTable();

            //Set()
            ht.Set(123456, 100);
            ht.Set(654321, 200);
            ht.Set("ABC", 300);
            ht.Set("CBA", 400);

            //Get()
            Console.WriteLine("Get(CDE) = {0}", ht.Get("123456"));
            Console.WriteLine("Get(ABC) = {0}\n\n", ht.Get("ABC"));

            //Indexer set
            ht[1]   = 500;
            ht[0.5] = 600;
            ht['A'] = 700;

            //Indexer get
            Console.WriteLine("ht[1] = {0}", ht[1]);
            Console.WriteLine("ht[0.5] = {0}", ht[0.5]);
        }
Ejemplo n.º 10
0
        public void Realize()
        {
            var HashTable = new ChainingHashTable <int, string>(8);

            HashTable.Add(12, "Привет");
            HashTable.Add(12, "Здрасте");
            HashTable.Add(12, "Бонжур");
            HashTable.Add(13, "Тринадцать");
            HashTable.Add(14, "Четырнадцать");
            HashTable.Add(15, "Четырнадцать");
            HashTable.Add(16, "Четырнадцать");
            HashTable.Add(17, "Четырнадцать");
            HashTable.Add(18, "Четырнадцать");
            HashTable.Add(19, "Четырнадцать");
            Console.WriteLine("Проводиться поиск");
            Console.WriteLine(HashTable.Find(12));
            Console.WriteLine(HashTable.Find(13));
            Console.WriteLine(HashTable.Find(15));
            Console.WriteLine(HashTable.Find(22));
            Console.WriteLine("Проводиться удаление");
            Console.WriteLine(HashTable.Remove(4));
            Console.WriteLine(HashTable.Remove(22));
            Console.WriteLine(HashTable.Remove(12));
        }
Ejemplo n.º 11
0
        public void testChainingTable()
        {
            var hashmap = new ChainingHashTable();

            hashmap.Add("test", "test1");
            hashmap.Add("test1", "test2");
            hashmap.Add("test2", "test3");
            hashmap.Add("test3", "test4");
            hashmap.Add("test4", "test5");
            hashmap.Add("test5", "test6");
            hashmap.Add("test6", "test7");
            hashmap.Add("test7", "test8");
            hashmap.Add("test8", "test9");
            hashmap.Add("test9", "test10");
            hashmap.Add("test10", "test11");
            hashmap.Add("test11", "test12");
            hashmap.Add("test12", "test13");
            hashmap.Add("test13", "test14");
            hashmap.Add("test14", "test15");
            hashmap.Add("test15", "test16");
            hashmap.Add("test16", "test17");
            hashmap.Add("test17", "test18");

            hashmap.Delete("test");
            var result   = hashmap.Lookup("test");
            var result1  = hashmap.Lookup("test1");
            var result2  = hashmap.Lookup("test2");
            var result3  = hashmap.Lookup("test3");
            var result4  = hashmap.Lookup("test4");
            var result5  = hashmap.Lookup("test5");
            var result6  = hashmap.Lookup("test6");
            var result7  = hashmap.Lookup("test7");
            var result8  = hashmap.Lookup("test8");
            var result9  = hashmap.Lookup("test9");
            var result10 = hashmap.Lookup("test10");
            var result11 = hashmap.Lookup("test11");
            var result12 = hashmap.Lookup("test12");
            var result13 = hashmap.Lookup("test13");
            var result14 = hashmap.Lookup("test14");
            var result15 = hashmap.Lookup("test15");
            var result16 = hashmap.Lookup("test16");
            var result17 = hashmap.Lookup("test17");


            Assert.AreEqual("", result);
            Assert.AreEqual("test2", result1);
            Assert.AreEqual("test3", result2);
            Assert.AreEqual("test4", result3);
            Assert.AreEqual("test5", result4);
            Assert.AreEqual("test6", result5);
            Assert.AreEqual("test7", result6);
            Assert.AreEqual("test8", result7);
            Assert.AreEqual("test9", result8);
            Assert.AreEqual("test10", result9);
            Assert.AreEqual("test11", result10);
            Assert.AreEqual("test12", result11);
            Assert.AreEqual("test13", result12);
            Assert.AreEqual("test14", result13);
            Assert.AreEqual("test15", result14);
            Assert.AreEqual("test16", result15);
            Assert.AreEqual("test17", result16);
            Assert.AreEqual("test18", result17);
        }