示例#1
0
        /// <summary>
        /// Формирование массивов и их последующее сопоставление
        /// для выяснения процента совпадений.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Compare_OnClick(object sender, EventArgs e)
        {
            try
            {
                // Наполение массивов.
                string[] lost = new string[9] {
                    TypeMessageLost.Text, NameLost.Text, AdressLost.Text, DateLost.Text, TypeLost.Text, ColorLost.Text, SizeLost.Text, BreedLost.Text, DescriptionLost.Text
                };

                string[] found = new string[9] {
                    TypeMessageFound.Text, NameFound.Text, AdressFound.Text, DateFound.Text, TypeFound.Text, ColorFound.Text, SizeFound.Text, BreedFound.Text, DescriptionFound.Text
                };

                // Проверка совпадений строк массива.
                double resultCompare = MessagesCompare.Compare(lost, found);

                // Вывод полученного процента совпадений.
                string resultCompareText = resultCompare.ToString("F");
                Result.Text = resultCompareText;
            }
            catch (Exception ex)
            {
                ExeptionBlock.Text = ex.Message;
            }
        }
示例#2
0
        public void FoundNull()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Найдено", "Сумка", "Листовская, 14-5", "01.14.2010", "Аксессуар", "Синяя", "Объемная", "Нет", "Внутри фотография и расческа"
            };

            // Act.
            var exeption = Assert.Throws <ArgumentNullException>(() => MessagesCompare.Compare(lost, null));

            // Assert.
            // Проверяется не только вызов исключения, но и его контекст.
            Assert.Contains("Массив found не заполнен.", exeption.Message);
        }
示例#3
0
        protected void Compare_OnClick(object sender, EventArgs e)
        {
            string[] lost = new string[9] {
                TypeMessageLost.Text, NameLost.Text, AdressLost.Text, DateLost.Text, TypeLost.Text, ColorLost.Text, SizeLost.Text, BreedLost.Text, DescriptionLost.Text
            };

            string[] found = new string[9] {
                TypeMessageFound.Text, NameFound.Text, AdressFound.Text, DateFound.Text, TypeFound.Text, ColorFound.Text, SizeFound.Text, BreedFound.Text, DescriptionFound.Text
            };

            double resultCompare = MessagesCompare.Compare(lost, found);
            string a             = resultCompare.ToString("F");

            Result.Text = a;
        }
示例#4
0
        public void DateNotExist()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Потеряно", "Кошка", "Ивановская, 4", "", "Животное", "Пятнистая", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами"
            };

            string[] found = new string[9] {
                "Найдено", "Сумка", "Листовская, 14-5", "01/14/2010", "Аксессуар", "Синяя", "Объемная", "Нет", "Внутри фотография и расческа"
            };

            // Act.
            var exeption = Assert.Throws <Exception>(() => MessagesCompare.Compare(lost, found));

            // Assert.
            // Проверяется не только вызов исключения, но и его контекст.
            Assert.Contains("Дата сообщения не заполнена.", exeption.Message);
        }
示例#5
0
        public void ArraysLenghtNotEqual()
        {
            // Arrange.
            string[] lost = new string[10] {
                "Потеряно", "Кошка", "Ивановская, 4", "01.02.2000", "Животное", "Пятнистая", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами", ""
            };

            string[] found = new string[9] {
                "Найдено", "Сумка", "Листовская, 14-5", "01.14.2010", "Аксессуар", "Синяя", "Объемная", "Нет", "Внутри фотография и расческа"
            };

            // Act.
            var exeption = Assert.Throws <Exception>(() => MessagesCompare.Compare(lost, found));

            // Assert.
            // Проверяется не только вызов исключения, но и его контекст.
            Assert.Contains("Массивы, сообщающие о пропаже или находке, должны иметь одинаковое количество элементов. Сравнение невозможно.", exeption.Message);
        }
示例#6
0
        public void WordRegisterArrayEqual()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Потеряно", "КошкА", "ивановская, 4", "01.02.2000", "ЖивОТное", "ПЯТНИСТАЯ", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами"
            };

            string[] found = new string[9] {
                "Найдено", "Кошка", "Ивановская, 4", "01.02.2000", "Животное", "Пятнистая", "маленькая", "Беспородная", " Белая с рыжими и черными пятнами"
            };

            // При полной идентичности массивов строк совпадение должно равняться 100%.
            double expectedPercent = MessagesCompare.fullPercent;

            // Act.
            double actualPercent = MessagesCompare.Compare(lost, found);

            // Assert.
            Assert.Equal(expectedPercent, actualPercent);
        }
示例#7
0
        public void FullArrayNotEqual()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Потеряно", "Кошка", "Ивановская, 4", "01.02.2000", "Животное", "Пятнистая", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами"
            };

            string[] found = new string[9] {
                "Найдено", "Сумка", "Листовская, 14-5", "01.14.2010", "Аксессуар", "Синяя", "Объемная", "Нет", "Внутри фотография и расческа"
            };

            // При полном различии массивов строк совпадение должно равняться 0%.
            double expectedPercent = 0;

            // Act.
            double actualPercent = MessagesCompare.Compare(lost, found);

            // Assert.
            Assert.Equal(expectedPercent, actualPercent);
        }
示例#8
0
        public void NullElementLost()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Потеряно", " ", "Ивановская, 4", "01.02.2000", "Животное", "Пятнистая", "Маленькая", "Беспородная", " "
            };

            string[] found = new string[9] {
                "Найдено", "Кошка", "Ивановская, 4", "01.02.2000", "Животное", "Пятнистая", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами"
            };

            // В данном случае массивы отличаются в две строки, процент совпадения
            // равен 75 (при приведении к целому).
            double expectedPercent = 75;

            // Act.
            double actualPercent = (int)MessagesCompare.Compare(lost, found);

            // Assert.
            Assert.Equal(expectedPercent, actualPercent);
        }
示例#9
0
        public void DateArraysNotParse()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Потеряно", "Кошка", "Ивановская, 4", "1 февраля", "Животное", "Пятнистая", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами"
            };

            string[] found = new string[9] {
                "Найдено", "Кошка", "Ивановская, 4", "01.02.2010", "Животное", "Пятнистая", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами"
            };

            // В данном случае для сообщений различны только даты, процент совпадения
            // равен 87 (при приведении к целому).
            double expectedPercent = 87;

            // Act.
            double actualPercent = (int)MessagesCompare.Compare(lost, found);

            // Assert.
            Assert.Equal(expectedPercent, actualPercent);
        }
示例#10
0
        public void DateFormatNotEqual()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Потеряно", "Кошка", "Ивановская, 4", "15.05.2009", "Животное", "Пятнистая", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами"
            };

            string[] found = new string[9] {
                "Найдено", "Кошка", "Ивановская, 4", "15 May 2009", "Животное", "Пятнистая", "Маленькая", "Беспородная", "Белая с рыжими и черными пятнами"
            };

            // При полной идентичности массивов строк совпадение должно равняться 100%.
            // В данном случае идентичность должна быть полной.
            double expectedPercent = MessagesCompare.fullPercent;

            // Act.
            double actualPercent = MessagesCompare.Compare(lost, found);

            // Assert.
            Assert.Equal(expectedPercent, actualPercent);
        }
示例#11
0
        public void SameArraysElements()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно"
            };

            string[] found = new string[9] {
                "Найдено", "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно", "Потеряно"
            };

            // Если 2 и более строки в массивах совпадают, то итоговый процент может превысить 100%,
            // задано условие, что в таких случаях процент совпадения считать равным 100%.
            double expectedPercent = MessagesCompare.fullPercent;

            // Act.
            double actualPercent = MessagesCompare.Compare(lost, found);

            // Assert.
            Assert.Equal(expectedPercent, actualPercent);
        }
示例#12
0
        public void ArraysNull()
        {
            // Arrange.
            // Массивы не заданы.

            // Объявление переменной для перехвата исключения.
            bool exeptionCalled = false;

            // Act & assert.
            // Вызов метода и перехват исключения.
            try
            {
                MessagesCompare.Compare(null, null);
            }
            catch (ArgumentNullException exception)
            {
                exeptionCalled = true;
            }

            // При корректной работе должно быть вызвано исключение.
            Assert.True(exeptionCalled);
        }
示例#13
0
        public void FullFewElement()
        {
            // Arrange.
            string[] lost = new string[9] {
                "Потеряно", "Сумка", "", "01.02.2000", "", "", "", "", ""
            };

            string[] found = new string[9] {
                "Найдено", "Сумка", "", "01.02.2000", "", "", "", "", ""
            };

            // Строки равные null исключаются из подсчета совпадений,
            // в заданных условиях идентичны 2 строки (2 совпадения),
            // поэтому процент при приведении к целому должен равняться 25%.
            double expectedPercent = 25;

            // Act.
            double actualPercent = (int)MessagesCompare.Compare(lost, found);

            // Assert.
            Assert.Equal(expectedPercent, actualPercent);
        }