コード例 #1
0
        public void Test2()
        {
            string firstName = "Миша", secondName = "Нигер";
            var    hashTable = new HashTable.HashTable(2);

            hashTable.PutPair(0, firstName);
            hashTable.PutPair(0, secondName);
            Assert.AreEqual(secondName, hashTable.GetValueByKey(0));
        }
コード例 #2
0
        public void TwoElements()
        {
            var wtf = new HashTable.HashTable(3);

            wtf.PutPair("1", "Один");
            wtf.PutPair("1", "Два");

            Assert.AreEqual(wtf.GetValueByKey("1"), "Два");
        }
コード例 #3
0
        public void TestEqualElements()
        {
            //Добавление одного и того же ключа дважды с разными значениями сохраняет последнее добавленное значение
            var hashTable = new HashTable.HashTable(2);

            hashTable.PutPair(1, "aaa");
            hashTable.PutPair(1, "bbb");

            Assert.AreEqual(hashTable.GetValueByKey(1), "bbb");
        }
コード例 #4
0
        public void TestEqualElements()
        {
            string[] value = new string[] { "Чайник", "Микроволновка" };
            var      table = new HashTable.HashTable(3);

            table.PutPair(1, value[0]);
            table.PutPair(1, value[1]);
            Assert.AreEqual(table.GetValueByKey(1), value[0]);
            Assert.AreEqual(table.GetValueByKey(1), value[1]);
        }
コード例 #5
0
        public void BigElements()
        {
            var wtf = new HashTable.HashTable(10000);

            for (int i = 0; i < 10000; i++)
            {
                wtf.PutPair(i, i + "Один");
            }

            Assert.AreEqual(wtf.GetValueByKey(1), "1Один");
        }
コード例 #6
0
        public void TestManyElements()
        {
            int size  = 100000;
            var table = new HashTable.HashTable(size);

            for (int i = 0; i < size; i++)
            {
                table.PutPair(i, i++);
            }
            Assert.AreEqual(table.GetValueByKey(920), 921);
        }
コード例 #7
0
        public void Test10000Elements()
        {
            //Добавление 10000 элементов в структуру и поиск одного из них
            var hashTable = new HashTable.HashTable(10000);

            for (var i = 0; i < 10000; i++)
            {
                hashTable.PutPair(i, "a" + i);
            }

            Assert.AreEqual(hashTable.GetValueByKey(100), "a100");
        }
コード例 #8
0
        public void Test1()
        {
            string firstName = "Миша", secondName = "Нигер", thirdName = "Гриша";
            var    hashTable = new HashTable.HashTable(3);

            hashTable.PutPair(0, firstName);
            hashTable.PutPair(1, secondName);
            hashTable.PutPair(2, thirdName);
            Assert.AreEqual(firstName, hashTable.GetValueByKey(0));
            Assert.AreEqual(secondName, hashTable.GetValueByKey(1));
            Assert.AreEqual(thirdName, hashTable.GetValueByKey(2));
        }
コード例 #9
0
ファイル: UnitTest1.cs プロジェクト: ivanovna/prog2018
        public void TwoEquialsElementsTest()
        {
            //Добавление одного и того же ключа дважды с разными значениями сохраняет последнее добавленное значение
            var hashTest = new HashTable.HashTable(2);

            hashTest.PutPair("1", "One");
            hashTest.PutPair("1", "Three");

            if (!(hashTest.GetValueByKey("1")).Equals("Three"))
            {
                throw new Exception();
            }
        }
コード例 #10
0
ファイル: UnitTest1.cs プロジェクト: ivanovna/prog2018
        public void ThreeElementsTest()
        {
            //Добавление и поиск трёх элементов
            var hashTest = new HashTable.HashTable(3);

            hashTest.PutPair("One", "Один");
            hashTest.PutPair("Two", "Два");
            hashTest.PutPair("Three", "Три");

            Assert.AreEqual(hashTest.GetValueByKey("One"), "Один");
            Assert.AreEqual(hashTest.GetValueByKey("Two"), "Два");
            Assert.AreEqual(hashTest.GetValueByKey("Three"), "Три");
        }
コード例 #11
0
        public void TestThreeElements()
        {
            //Добавление трёх элементов, поиск трёх элементов
            var hashTable = new HashTable.HashTable(3);

            hashTable.PutPair(1, "aaa");
            hashTable.PutPair(2, "bbb");
            hashTable.PutPair(3, "ccc");

            Assert.AreEqual(hashTable.GetValueByKey(1), "aaa");
            Assert.AreEqual(hashTable.GetValueByKey(2), "bbb");
            Assert.AreEqual(hashTable.GetValueByKey(3), "ccc");
        }
コード例 #12
0
        public void TestThreeElements()
        {
            string[] value = new string[] { "Компьютер", "Чайник", "Микроволновка" };
            var      table = new HashTable.HashTable(3);

            for (int i = 0; i < value.Length; i++)
            {
                table.PutPair(i + 1, value[i]);
            }
            for (int i = 0; i < value.Length; i++)
            {
                Assert.AreEqual(table.GetValueByKey(i + 1), value[i]);
            }
        }
コード例 #13
0
ファイル: UnitTest1.cs プロジェクト: ivanovna/prog2018
        public void BigElementsTest()
        {
            //Поиск одного элемента из тысячи
            var hashTest = new HashTable.HashTable(10000);
            var rnd      = new Random();

            for (int i = 0; i < 10000; i++)
            {
                hashTest.PutPair(i, i + 1);
            }
            var key = rnd.Next(0, 9999);

            Assert.AreEqual(hashTest.GetValueByKey(key), (key + 1));
        }
コード例 #14
0
        public void DifficultTest()
        {
            var wtf = new HashTable.HashTable(11000);

            for (int i = 0; i < 10000; i++)
            {
                wtf.PutPair(i, i + "Один");
            }

            for (int i = 10000; i < 11000; i++)
            {
                Assert.AreEqual(wtf.GetValueByKey(i), null);
            }
        }
コード例 #15
0
ファイル: UnitTest1.cs プロジェクト: ivanovna/prog2018
        public void BigElementsSearchTests()
        {
            //Поиск тысячи недобавленныех ключей
            var hashTest = new HashTable.HashTable(11000);

            for (int i = 0; i < 10000; i++)
            {
                hashTest.PutPair(i, i);
            }

            for (int i = 10000; i < 11000; i++)
            {
                Assert.AreEqual(hashTest.GetValueByKey(i), null);
            }
        }
コード例 #16
0
        public void TestNotAddedKeys()
        {
            //Добавление 10000 элементов в структуру и поиск 1000 недобавленных ключей, поиск которых должен вернуть null
            var hashTable = new HashTable.HashTable(10000);

            for (var i = 0; i < 10000; i++)
            {
                hashTable.PutPair(i, "a" + i);
            }

            for (var i = 10000; i < 11000; i++)
            {
                Assert.AreEqual(hashTable.GetValueByKey(i), null);
            }
        }
コード例 #17
0
        static void Main(string[] args)
        {
            Console.WriteLine("Введите мат. ожидание:");
            double lambda = 1.0 / Convert.ToDouble(Console.ReadLine());
            var    table  = new HashTable.HashTable();

            for (int i = 0; i < 100; i++)
            {
                int val = (int)Math.Round(GenerateExp(lambda), 0);
                try
                {
                    var col = table.Add(val);
                    Console.WriteLine($"Добавили число: {val}, кол-во коллизий: {col}, сумма: {table.Count}");
                }
                catch (ArgumentException) { i--; }
            }
        }
コード例 #18
0
        public void Test3()
        {
            var j              = -1;
            var hashTable      = new HashTable.HashTable(10000);
            var rand           = new Random();
            var massiveOfValue = new char[10000];

            for (int i = 0; i < 10000; i++)
            {
                massiveOfValue[i] = (char)rand.Next(0x00A1, 0x27B2);
            }
            foreach (var e in massiveOfValue)
            {
                hashTable.PutPair(j++, e);
            }
            hashTable.GetValueByKey(5000);
        }