epf_Iterator/test/Тест_Итератор/Ext/ObjectModule.bsl

626 lines
32 KiB
Plaintext
Raw Normal View History

2022-08-31 11:01:08 +00:00
Перем КонтекстЯдра;
Перем Ожидаем;
Перем Утверждения;
Перем СтроковыеУтилиты;
// { интерфейс тестирования
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты");
КонецПроцедуры
Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
НаборТестов.Добавить("ТестДолжен_ПроверитьСозданиеИтератора");
НаборТестов.НачатьГруппу("Тесты итератора", Истина);
НаборТестов.Добавить("Тест_СоздатьНовый");
НаборТестов.Добавить("Тест_Клонировать");
НаборТестов.Добавить("Тест_ОтклБезопасныйРежим");
2022-08-31 11:01:08 +00:00
НаборТестов.Добавить("Тест_Начать");
НаборТестов.Добавить("Тест_НачатьС");
НаборТестов.Добавить("Тест_ВзятьИз");
НаборТестов.Добавить("Тест_РазделитьСтроку");
НаборТестов.Добавить("Тест_УстановитьКонтекст");
НаборТестов.Добавить("Тест_Собрать");
НаборТестов.Добавить("Тест_СобратьСтроку");
НаборТестов.Добавить("Тест_Контекст");
НаборТестов.Добавить("Тест_Карта");
НаборТестов.Добавить("Тест_Фильтр");
НаборТестов.Добавить("Тест_Свернуть");
НаборТестов.Добавить("Тест_ВзятьНеБольше");
НаборТестов.Добавить("Тест_Первые");
2022-08-31 11:01:08 +00:00
НаборТестов.Добавить("Тест_Пропустить");
НаборТестов.Добавить("Тест_Срез");
НаборТестов.Добавить("Тест_Хвост");
НаборТестов.Добавить("Тест_Последние");
2022-08-31 11:01:08 +00:00
НаборТестов.Добавить("Тест_Обратить");
НаборТестов.Добавить("Тест_Транспонировать");
НаборТестов.Добавить("Тест_Сортировать");
НаборТестов.Добавить("Тест_Перемешать");
НаборТестов.Добавить("Тест_ВГраница");
НаборТестов.Добавить("Тест_Количество");
НаборТестов.Добавить("Тест_Вставить");
НаборТестов.Добавить("Тест_Добавить");
НаборТестов.Добавить("Тест_Найти");
НаборТестов.Добавить("Тест_Очистить");
НаборТестов.Добавить("Тест_Получить");
НаборТестов.Добавить("Тест_Удалить");
НаборТестов.Добавить("Тест_Установить");
НаборТестов.Добавить("Тест_Пустой");
НаборТестов.Добавить("Тест_Содержит");
НаборТестов.Добавить("Тест_Первый");
НаборТестов.Добавить("Тест_Последний");
НаборТестов.Добавить("Тест_СнятьПервый");
НаборТестов.Добавить("Тест_СнятьПоследний");
НаборТестов.Добавить("Тест_Дополнить");
НаборТестов.Добавить("Тест_ТолькоУникальные");
НаборТестов.Добавить("Тест_РазностьС");
НаборТестов.Добавить("Тест_УдалитьЗначение");
НаборТестов.Добавить("Тест_УдалитьВсеВхождения");
НаборТестов.Добавить("Тест_УдалитьВсеВхожденияТипа");
НаборТестов.Добавить("Тест_СделатьПлоским");
НаборТестов.Добавить("Тест_СброситьПозицию");
НаборТестов.Добавить("Тест_Следующий");
НаборТестов.Добавить("Тест_ТекущийИндекс");
НаборТестов.Добавить("Тест_ТекущийЭлемент");
НаборТестов.Добавить("Тест_СледующийЭлемент");
НаборТестов.Добавить("Тест_УстановитьИндекс");
НаборТестов.Добавить("Тест_Продвинуть");
НаборТестов.Добавить("Тест_ИндексКорректен");
НаборТестов.Добавить("Тест_Максимум");
НаборТестов.Добавить("Тест_Минимум");
НаборТестов.Добавить("Тест_Сумма");
НаборТестов.Добавить("Тест_Произведение");
НаборТестов.Добавить("Тест_Среднее");
НаборТестов.Добавить("Тест_Медиана");
НаборТестов.Добавить("Тест_КакСтроки");
НаборТестов.Добавить("Тест_КакЧисла");
НаборТестов.Добавить("Тест_КакДаты");
НаборТестов.Добавить("Тест_КакБулево");
НаборТестов.Добавить("Тест_ВерноВсе");
НаборТестов.Добавить("Тест_ВерноЛюбое");
НаборТестов.Добавить("Тест_ВерноТолькоОдно");
НаборТестов.Добавить("Тест_Пронумеровать");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура ПередЗапускомТеста() Экспорт
КонецПроцедуры
Процедура ПослеЗапускаТеста() Экспорт
КонецПроцедуры
Функция ПутьКФайлу_ОбъектаТестирования()
ПутьКЭтойОбработке = ЭтотОбъект["ИспользуемоеИмяФайла"];
Файл_Этот = Новый Файл(ПутьКЭтойОбработке);
Возврат СтрШаблон("%1%2Итератор.epf", Файл_Этот.Путь, ПолучитьРазделительПути());
КонецФункции
Функция Итератор()
ОЗООД = Новый ОписаниеЗащитыОтОпасныхДействий;
ОЗООД.ПредупреждатьОбОпасныхДействиях = Ложь;
Возврат ВнешниеОбработки.Создать(ПутьКФайлу_ОбъектаТестирования(), Ложь, ОЗООД);
КонецФункции
// } интерфейс тестирования
// { блок юнит-тестов - сами тесты
Процедура ТестДолжен_ПроверитьСозданиеИтератора() Экспорт
Ожидаем.Что(Итератор().Метаданные().Синоним).Равно("Итератор");
КонецПроцедуры
Процедура Тест_СоздатьНовый() Экспорт
Итератор_1 = Итератор();
Итератор_2 = Итератор_1.СоздатьНовый();
Ожидаем.Что(Итератор_2).Не_().Равно(Итератор_1);
Ожидаем.Что(Итератор_2.Метаданные().Синоним).Равно("Итератор");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Клонировать() Экспорт
Итератор_1 = Итератор().ВзятьИз(СтрРазделить("1,2,3", ","));
Итератор_2 = Итератор_1.Клонировать();
Итератор_1.СнятьПоследний();
Ожидаем.Что(Итератор_2).Не_().Равно(Итератор_1);
Ожидаем.Что(Итератор_1.Количество()).Меньше(Итератор_2.Количество());
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ОтклБезопасныйРежим() Экспорт
Статус = "Не выполнено создание без откл.безопасного режима.";
Попытка
Итератор().СоздатьНовый().Клонировать().СоздатьНовый();
Статус = "ОШИБКА! Выполнено создание без откл.безопасного режима!";
Исключение
;
КонецПопытки;
Ожидаем.Что(Статус).Равно("Не выполнено создание без откл.безопасного режима.");
// - - -
Статус = "ОШИБКА! Не выполнено создание с откл.безопасного режима!";
Попытка
Итератор().ОтклБезопасныйРежим().СоздатьНовый().Клонировать().СоздатьНовый();
Статус = "Успешно выполнено создание с откл.безопасного режима.";
Исключение
;
КонецПопытки;
Ожидаем.Что(Статус).Равно("Успешно выполнено создание с откл.безопасного режима.");
КонецПроцедуры
2022-08-31 11:01:08 +00:00
Процедура Тест_Начать() Экспорт
Итератор = Итератор().ВзятьИз(СтрРазделить("1,2,3", ","));
Итератор.Начать();
Ожидаем.Что(Итератор.Пустой()).ЭтоИстина();
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_НачатьС() Экспорт
Итератор = Итератор().НачатьС("тест");
Ожидаем.Что(Итератор.Количество()).Равно(1);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ВзятьИз() Экспорт
Итератор = Итератор().ВзятьИз(СтрРазделить("1,2,3", ","));
Ожидаем.Что(Итератор.Количество()).Равно(3);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_РазделитьСтроку() Экспорт
Итератор = Итератор().РазделитьСтроку("1,2,3", ",");
Ожидаем.Что(Итератор.Количество()).Равно(3);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_УстановитьКонтекст() Экспорт
Итератор = Итератор().УстановитьКонтекст(1234);
Ожидаем.Что(Итератор.Контекст()).Равно(1234);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Собрать() Экспорт
Итератор = Итератор().РазделитьСтроку("1,2,3", ",");
Результат = Итератор.Собрать();
Ожидаем.Что(Результат.Количество()).Равно(3);
Ожидаем.Что(Результат).ИмеетТип(Тип("Массив"));
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_СобратьСтроку() Экспорт
Итератор = Итератор().РазделитьСтроку("1,2,3", ",");
Результат = Итератор.СобратьСтроку("/");
Ожидаем.Что(Результат).Равно("1/2/3");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Контекст() Экспорт
Итератор = Итератор().УстановитьКонтекст(4321);
Ожидаем.Что(Итератор.Контекст()).Равно(4321);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Карта() Экспорт
Результат = Итератор()
.УстановитьКонтекст(10)
.Начать()
.Добавить(1)
.Добавить(2)
.Добавить(3)
.Карта("Результат = Элемент + Элемент * _")
.КакСтроки()
.СобратьСтроку(" ");
Ожидаем.Что(Результат).Равно("11 22 33");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Фильтр() Экспорт
Результат = Итератор()
.УстановитьКонтекст(2)
.ПоДиапазону(1,10)
.Фильтр("Условие = 0 = Элемент % _")
.КакСтроки()
.СобратьСтроку(" ");
Ожидаем.Что(Результат).Равно("2 4 6 8 10");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Свернуть() Экспорт
Результат = Итератор()
.УстановитьКонтекст(10)
.ПоДиапазону(1,3)
.Свернуть("Результат = Результат + Элемент * _ ", 0);
Ожидаем.Что(Результат).Равно(10 + 20 + 30);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ВзятьНеБольше() Экспорт
Результат = Итератор()
.ПоДиапазону(1,10)
.КакСтроки()
.ВзятьНеБольше(5)
.СобратьСтроку(" ");
Ожидаем.Что(Результат).Равно("1 2 3 4 5");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Первые() Экспорт
Результат = Итератор()
.ВзятьИз("123456789")
.Первые(3)
.СобратьСтроку("");
Ожидаем.Что(Результат).Равно("123");
КонецПроцедуры
2022-08-31 11:01:08 +00:00
Процедура Тест_Пропустить() Экспорт
Результат = Итератор()
.ПоДиапазону(1,10)
.КакСтроки()
.Пропустить(5)
.СобратьСтроку(" ");
Ожидаем.Что(Результат).Равно("6 7 8 9 10");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Срез() Экспорт
Результат = Итератор()
.ПоДиапазону(1,10)
.КакСтроки()
.Срез(3, 4)
.СобратьСтроку(" ");
Ожидаем.Что(Результат).Равно("4 5 6 7");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Хвост() Экспорт
Результат = Итератор()
.ПоДиапазону(1,10)
.КакСтроки()
.Хвост(3)
.СобратьСтроку(" ");
Ожидаем.Что(Результат).Равно("8 9 10");
КонецПроцедуры
Процедура Тест_Последние() Экспорт
Результат = Итератор()
.ВзятьИз("1234567890")
.КакСтроки()
.Последние(4)
.СобратьСтроку("-");
Ожидаем.Что(Результат).Равно("7-8-9-0");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Обратить() Экспорт
Результат = Итератор()
.ПоДиапазону(1,3)
.КакСтроки()
.Обратить()
.СобратьСтроку(" ");
Ожидаем.Что(Результат).Равно("3 2 1");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Транспонировать() Экспорт
Длина_А = 3;
Длина_Б = 4;
// формирование
Итератор = Итератор().Начать();
ПодИтератор = Итератор();
Для Каждого Тек_А Из Итератор().ПоДиапазону(1, Длина_А).Собрать() Цикл
ПодИтератор.Начать();
Для Каждого Тек_Б Из Итератор().ПоДиапазону(1, Длина_Б).Обратить().Собрать() Цикл
ПодИтератор.Добавить(Тек_А * 10 + Тек_Б);
КонецЦикла;
Итератор.Добавить(ПодИтератор.КакСтроки().Собрать());
КонецЦикла;
// проверка исходных
Ожидаем.Что(Итератор().ВзятьИз(Итератор.Получить(0)).СобратьСтроку(" ")).Равно("14 13 12 11");
Ожидаем.Что(Итератор().ВзятьИз(Итератор.Получить(1)).СобратьСтроку(" ")).Равно("24 23 22 21");
Ожидаем.Что(Итератор().ВзятьИз(Итератор.Получить(2)).СобратьСтроку(" ")).Равно("34 33 32 31");
// преобразование
Результат = Итератор.Транспонировать();
// проверка результата
Ожидаем.Что(Итератор().ВзятьИз(Итератор.Получить(0)).СобратьСтроку(" ")).Равно("14 24 34");
Ожидаем.Что(Итератор().ВзятьИз(Итератор.Получить(1)).СобратьСтроку(" ")).Равно("13 23 33");
Ожидаем.Что(Итератор().ВзятьИз(Итератор.Получить(2)).СобратьСтроку(" ")).Равно("12 22 32");
Ожидаем.Что(Итератор().ВзятьИз(Итератор.Получить(3)).СобратьСтроку(" ")).Равно("11 21 31");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Сортировать() Экспорт
Результат = Итератор()
.Начать()
.Добавить(7)
.Добавить(9)
.Добавить(3)
.Добавить(6)
.Сортировать()
.КакСтроки()
.СобратьСтроку(" ");
Ожидаем.Что(Результат).Равно("3 6 7 9");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Перемешать() Экспорт
Итератор = Итератор()
.Начать()
.ПоДиапазону(1,300) // чем больше тем меньше вероятность случайного провала, но дольше время теста
.КакСтроки();
Оригинал = Итератор.СобратьСтроку(" ");
мОригинал = Итератор.Собрать();
Результат = Итератор.Перемешать().СобратьСтроку(" ");
Ожидаем.Что(Итератор.Количество()).Равно(мОригинал.Количество());
Ожидаем.Что(Результат).Не_().Равно(Оригинал);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ВГраница() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(123).Добавить(456).ВГраница()).Равно(1);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Количество() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(123).Добавить(456).Количество()).Равно(2);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Вставить() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(123).Вставить(0, 42).Получить(0)).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Добавить() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().Начать().Добавить(42).Получить(0)).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Найти() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(41).Добавить(42)._Найти(42)).Равно(1);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Очистить() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(42).Очистить().Количество()).Равно(0);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Получить() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(42).Получить(0)).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Удалить() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(42).Удалить(0).Количество()).Равно(0);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Установить() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(333).Установить(0, 42).Получить(0)).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Пустой() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(42).Пустой()).ЭтоЛожь();
Ожидаем.Что(Итератор().Начать().Пустой()).ЭтоИстина();
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Содержит() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().Начать().Содержит(42)).ЭтоЛожь();
Ожидаем.Что(Итератор().НачатьС(42).Содержит(42)).ЭтоИстина();
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Первый() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(42).Добавить(234).Первый()).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Последний() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(34636).Добавить(42).Последний()).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_СнятьПервый() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().НачатьС(42).Добавить(874);
Ожидаем.Что(Ит.СнятьПервый()).Равно(42);
Ожидаем.Что(Ит.Количество()).Равно(1);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_СнятьПоследний() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().НачатьС(235).Добавить(42);
Ожидаем.Что(Ит.СнятьПоследний()).Равно(42);
Ожидаем.Что(Ит.Количество()).Равно(1);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Дополнить() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(1).Добавить(2).Дополнить(Итератор().ВзятьИз("345")).СобратьСтроку("")).Равно("12345");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ТолькоУникальные() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().ВзятьИз("1231245563477218980").ТолькоУникальные().СобратьСтроку("")).Равно("1234567890");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_РазностьС() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().ВзятьИз("123456").РазностьС(Итератор().ВзятьИз("4567890")).СобратьСтроку("")).Равно("123");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_УдалитьЗначение() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().ВзятьИз("123123123").УдалитьЗначение("3").СобратьСтроку("")).Равно("12123123");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_УдалитьВсеВхождения() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().ВзятьИз("123123123").УдалитьВсеВхождения("3").СобратьСтроку("")).Равно("121212");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_УдалитьВсеВхожденияТипа() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор().НачатьС(1).Добавить("2").Добавить(3).Добавить("4").УдалитьВсеВхожденияТипа(Тип("Строка")).СобратьСтроку("")).Равно("13");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_СделатьПлоским() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.Добавить(Итератор().ВзятьИз("123"))
.Добавить(Итератор().НачатьС(1).Добавить(2).Добавить(3))
.Добавить(Итератор().РазделитьСтроку("1,2,3", ","))
.СделатьПлоским()
.СобратьСтроку("")
).Равно("123123123");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_СброситьПозицию() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().ВзятьИз("1234567890").КакЧисла();
Ит.УстановитьИндекс(4);
Ожидаем.Что(Ит.ТекущийЭлемент()).Равно(5);
Ит.СброситьПозицию();
Ожидаем.Что(Ит.ТекущийЭлемент()).Равно(1);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Следующий() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().ВзятьИз("123").КакЧисла();
Ит.Следующий();
Ит.Следующий();
Ожидаем.Что(Ит.ТекущийЭлемент()).Равно(2);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ТекущийИндекс() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().ВзятьИз("1234");
Ит.Следующий();
Ит.Следующий();
Ит.Следующий();
Ожидаем.Что(Ит.ТекущийИндекс()).Равно(2);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ТекущийЭлемент() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().ВзятьИз("12").КакЧисла();
Ит.Следующий();
Ожидаем.Что(Ит.ТекущийЭлемент()).Равно(1);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_СледующийЭлемент() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().ВзятьИз("12").КакЧисла();
Ожидаем.Что(Ит.СледующийЭлемент()).Равно(1);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_УстановитьИндекс() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().ВзятьИз("1234").КакЧисла();
Ит.УстановитьИндекс(2);
Ожидаем.Что(Ит.ТекущийЭлемент()).Равно(3);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Продвинуть() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().ВзятьИз("12345").КакЧисла();
Ит.Продвинуть(3);
Ожидаем.Что(Ит.ТекущийЭлемент()).Равно(4);
КонецПроцедуры
2022-08-31 11:01:08 +00:00
Процедура Тест_ИндексКорректен() Экспорт
2022-09-01 08:29:14 +00:00
Ит = Итератор().ВзятьИз("12345").КакЧисла();
Ит.УстановитьИндекс(9);
Ожидаем.Что(Ит.ИндексКорректен()).ЭтоЛожь();
Ит.СброситьПозицию();
Ожидаем.Что(Ит.ИндексКорректен()).ЭтоИстина();
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Максимум() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.НачатьС(1)
.Добавить(10)
.Добавить(42)
.Добавить(40)
.Добавить(42)
.Максимум()
).Равно(42);
КонецПроцедуры
2022-08-31 11:01:08 +00:00
Процедура Тест_Минимум() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.НачатьС(42)
.Добавить(50)
.Добавить(42)
.Добавить(60)
.Добавить(50)
.Минимум()
).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Сумма() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.НачатьС(10)
.Добавить(5)
.Добавить(20)
.Добавить(2)
.Добавить(5)
.Сумма()
).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Произведение() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.ВзятьИз("237")
.КакЧисла()
.Произведение()
).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Среднее() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.РазделитьСтроку("74,24,32,38", ",")
.КакЧисла()
.Среднее()
).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Медиана() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.РазделитьСтроку("10,20,30,54,60,70", ",")
.КакЧисла()
.Медиана()
).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_КакСтроки() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.НачатьС(42)
.КакСтроки()
.Первый()
).Равно("42");
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_КакЧисла() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.НачатьС("42")
.КакЧисла()
.Первый()
).Равно(42);
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_КакДаты() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.НачатьС("01.09.2022 00:00:00")
.КакДаты()
.Первый()
).Равно(Дата(2022, 9, 1));
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_КакБулево() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.НачатьС("")
.КакБулево()
.Первый()
).ЭтоЛожь();
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ВерноВсе() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.ВзятьИз("111111")
.КакЧисла()
.КакБулево()
.ВерноВсе()
).ЭтоИстина();
Ожидаем.Что(Итератор()
.ВзятьИз("111101")
.КакЧисла()
.КакБулево()
.ВерноВсе()
).ЭтоЛожь();
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ВерноЛюбое() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.ВзятьИз("010100")
.КакЧисла()
.КакБулево()
.ВерноЛюбое()
).ЭтоИстина();
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_ВерноТолькоОдно() Экспорт
2022-09-01 08:29:14 +00:00
Ожидаем.Что(Итератор()
.ВзятьИз("010100")
.КакЧисла()
.КакБулево()
.ВерноТолькоОдно()
).ЭтоЛожь();
Ожидаем.Что(Итератор()
.ВзятьИз("000100")
.КакЧисла()
.КакБулево()
.ВерноТолькоОдно()
).ЭтоИстина();
2022-08-31 11:01:08 +00:00
КонецПроцедуры
Процедура Тест_Пронумеровать() Экспорт
Ожидаем.Что(Итератор()
.ВзятьИз("АБВГД")
.Пронумеровать()
.Карта("Результат = СтрШаблон(""%1.%2"", Элемент.Ключ, Элемент.Значение)")
.СобратьСтроку(" ")
).Равно("0.А 1.Б 2.В 3.Г 4.Д");
КонецПроцедуры
2022-08-31 11:01:08 +00:00