/// <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; } }
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); }
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; }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public void ArraysNull() { // Arrange. // Массивы не заданы. // Объявление переменной для перехвата исключения. bool exeptionCalled = false; // Act & assert. // Вызов метода и перехват исключения. try { MessagesCompare.Compare(null, null); } catch (ArgumentNullException exception) { exeptionCalled = true; } // При корректной работе должно быть вызвано исключение. Assert.True(exeptionCalled); }
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); }