Skip to content

Commit ce17020

Browse files
committed
Сравнение строк без учета регистра в testrunner.
1 parent eaf9822 commit ce17020

1 file changed

Lines changed: 24 additions & 4 deletions

File tree

tests/testrunner.os

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,18 @@
8282
КонецЕсли;
8383
КонецПроцедуры
8484

85+
Процедура ПроверитьРавенствоСтрокБезУчетаРегистра(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = "") Экспорт
86+
Если нрег(ПервоеЗначение) <> нрег(ВтороеЗначение) Тогда
87+
Если ТипЗнч(ПервоеЗначение) = Тип("Строка") и ТипЗнч(ВтороеЗначение) = Тип("Строка") Тогда
88+
ВызватьИсключение ИсключениеНеравенстваСтрок(ПервоеЗначение, ВтороеЗначение, Истина) + "
89+
|" + ДопСообщениеОшибки;
90+
КонецЕсли;
91+
92+
СообщениеОшибки = "Сравниваемые значения ("+ПервоеЗначение+"; "+ВтороеЗначение+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки);
93+
ВызватьИсключение(СообщениеОшибки);
94+
КонецЕсли;
95+
КонецПроцедуры
96+
8597
Процедура ПроверитьНеРавенство(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = "") Экспорт
8698
Если ПервоеЗначение = ВтороеЗначение Тогда
8799
СообщениеОшибки = "Сравниваемые значения ("+ПервоеЗначение+"; "+ВтороеЗначение+") равны, а хотели, чтобы были не равны." + ФорматДСО(ДопСообщениеОшибки);
@@ -196,20 +208,28 @@
196208
Возврат СтрЗаменить(СтрЗаменить(Строка, Символы.ПС, "\n"), Символы.ВК, "\r");
197209
КонецФункции
198210

199-
Функция ИсключениеНеравенстваСтрок(ПервоеЗначение, ВтороеЗначение)
200-
ДиапазонОтНачала = 5;
201-
ДиапазонВКонце = 5;
202-
СтрокаНабора = " "; // длина = 2*ДиапазонОтНачала
211+
Функция ИсключениеНеравенстваСтрок(ПервоеЗначение, ВтороеЗначение, Знач БезУчетаРегистра = Ложь)
212+
ДиапазонОтНачала = 17;
213+
ДиапазонВКонце = 17;
214+
СтрокаНабора = СтрСоединить(Новый Массив(2*ДиапазонОтНачала), " ");
203215

204216
МинДлина = Мин(СтрДлина(ПервоеЗначение), СтрДлина(ВтороеЗначение));
205217
ИндексРазличия = МинДлина + 1;
206218
Для Сч = 1 По МинДлина Цикл
219+
207220
Символ1 = Сред(ПервоеЗначение, Сч, 1);
208221
Символ2 = Сред(ВтороеЗначение, Сч, 1);
222+
223+
Если БезУчетаРегистра Тогда
224+
Символ1 = нрег(Символ1);
225+
Символ2 = нрег(Символ2);
226+
КонецЕсли;
227+
209228
Если Символ1 <> Символ2 Тогда
210229
ИндексРазличия = Сч;
211230
Прервать;
212231
КонецЕсли;
232+
213233
КонецЦикла;
214234

215235
ОтступНачала = ИндексРазличия - ДиапазонОтНачала;

0 commit comments

Comments
 (0)