Перем КонтекстЯдра; Перем Ожидаем; Перем Утверждения; Перем СтроковыеУтилиты; // { интерфейс тестирования Процедура Инициализация(КонтекстЯдраПараметр) Экспорт КонтекстЯдра = КонтекстЯдраПараметр; Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты"); КонецПроцедуры Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт НаборТестов.Добавить("ТестДолжен_ПроверитьСозданиеИтератора"); НаборТестов.НачатьГруппу("Тесты итератора", Истина); НаборТестов.Добавить("Тест_СоздатьНовый"); НаборТестов.Добавить("Тест_Клонировать"); НаборТестов.Добавить("Тест_Начать"); НаборТестов.Добавить("Тест_НачатьС"); НаборТестов.Добавить("Тест_ВзятьИз"); НаборТестов.Добавить("Тест_РазделитьСтроку"); НаборТестов.Добавить("Тест_УстановитьКонтекст"); НаборТестов.Добавить("Тест_Собрать"); НаборТестов.Добавить("Тест_СобратьСтроку"); НаборТестов.Добавить("Тест_Контекст"); НаборТестов.Добавить("Тест_Карта"); НаборТестов.Добавить("Тест_Фильтр"); НаборТестов.Добавить("Тест_Свернуть"); НаборТестов.Добавить("Тест_ВзятьНеБольше"); НаборТестов.Добавить("Тест_Пропустить"); НаборТестов.Добавить("Тест_Срез"); НаборТестов.Добавить("Тест_Хвост"); НаборТестов.Добавить("Тест_Обратить"); НаборТестов.Добавить("Тест_Транспонировать"); НаборТестов.Добавить("Тест_Сортировать"); НаборТестов.Добавить("Тест_Перемешать"); НаборТестов.Добавить("Тест_ВГраница"); НаборТестов.Добавить("Тест_Количество"); НаборТестов.Добавить("Тест_Вставить"); НаборТестов.Добавить("Тест_Добавить"); НаборТестов.Добавить("Тест_Найти"); НаборТестов.Добавить("Тест_Очистить"); НаборТестов.Добавить("Тест_Получить"); НаборТестов.Добавить("Тест_Удалить"); НаборТестов.Добавить("Тест_Установить"); НаборТестов.Добавить("Тест_Пустой"); НаборТестов.Добавить("Тест_Содержит"); НаборТестов.Добавить("Тест_Первый"); НаборТестов.Добавить("Тест_Последний"); НаборТестов.Добавить("Тест_СнятьПервый"); НаборТестов.Добавить("Тест_СнятьПоследний"); НаборТестов.Добавить("Тест_Дополнить"); НаборТестов.Добавить("Тест_ТолькоУникальные"); НаборТестов.Добавить("Тест_РазностьС"); НаборТестов.Добавить("Тест_УдалитьЗначение"); НаборТестов.Добавить("Тест_УдалитьВсеВхождения"); НаборТестов.Добавить("Тест_УдалитьВсеВхожденияТипа"); НаборТестов.Добавить("Тест_СделатьПлоским"); НаборТестов.Добавить("Тест_СброситьПозицию"); НаборТестов.Добавить("Тест_Следующий"); НаборТестов.Добавить("Тест_ТекущийИндекс"); НаборТестов.Добавить("Тест_ТекущийЭлемент"); НаборТестов.Добавить("Тест_СледующийЭлемент"); НаборТестов.Добавить("Тест_УстановитьИндекс"); НаборТестов.Добавить("Тест_Продвинуть"); НаборТестов.Добавить("Тест_ИндексКорректен"); НаборТестов.Добавить("Тест_Максимум"); НаборТестов.Добавить("Тест_Минимум"); НаборТестов.Добавить("Тест_Сумма"); НаборТестов.Добавить("Тест_Произведение"); НаборТестов.Добавить("Тест_Среднее"); НаборТестов.Добавить("Тест_Медиана"); НаборТестов.Добавить("Тест_КакСтроки"); НаборТестов.Добавить("Тест_КакЧисла"); НаборТестов.Добавить("Тест_КакДаты"); НаборТестов.Добавить("Тест_КакБулево"); НаборТестов.Добавить("Тест_ВерноВсе"); НаборТестов.Добавить("Тест_ВерноЛюбое"); НаборТестов.Добавить("Тест_ВерноТолькоОдно"); КонецПроцедуры Процедура ПередЗапускомТеста() Экспорт КонецПроцедуры Процедура ПослеЗапускаТеста() Экспорт КонецПроцедуры Функция ПутьКФайлу_ОбъектаТестирования() ПутьКЭтойОбработке = ЭтотОбъект["ИспользуемоеИмяФайла"]; Файл_Этот = Новый Файл(ПутьКЭтойОбработке); Возврат СтрШаблон("%1%2Итератор.epf", Файл_Этот.Путь, ПолучитьРазделительПути()); КонецФункции Функция Итератор() ОЗООД = Новый ОписаниеЗащитыОтОпасныхДействий; ОЗООД.ПредупреждатьОбОпасныхДействиях = Ложь; Возврат ВнешниеОбработки.Создать(ПутьКФайлу_ОбъектаТестирования(), Ложь, ОЗООД); КонецФункции // } интерфейс тестирования // { блок юнит-тестов - сами тесты Процедура ТестДолжен_ПроверитьСозданиеИтератора() Экспорт Ожидаем.Что(Итератор().Метаданные().Синоним).Равно("Итератор"); КонецПроцедуры Процедура Тест_СоздатьНовый() Экспорт Итератор_1 = Итератор(); Итератор_2 = Итератор_1.СоздатьНовый(); Ожидаем.Что(Итератор_2).Не_().Равно(Итератор_1); Ожидаем.Что(Итератор_2.Метаданные().Синоним).Равно("Итератор"); КонецПроцедуры Процедура Тест_Клонировать() Экспорт Итератор_1 = Итератор().ВзятьИз(СтрРазделить("1,2,3", ",")); Итератор_2 = Итератор_1.Клонировать(); Итератор_1.СнятьПоследний(); Ожидаем.Что(Итератор_2).Не_().Равно(Итератор_1); Ожидаем.Что(Итератор_1.Количество()).Меньше(Итератор_2.Количество()); КонецПроцедуры Процедура Тест_Начать() Экспорт Итератор = Итератор().ВзятьИз(СтрРазделить("1,2,3", ",")); Итератор.Начать(); Ожидаем.Что(Итератор.Пустой()).ЭтоИстина(); КонецПроцедуры Процедура Тест_НачатьС() Экспорт Итератор = Итератор().НачатьС("тест"); Ожидаем.Что(Итератор.Количество()).Равно(1); КонецПроцедуры Процедура Тест_ВзятьИз() Экспорт Итератор = Итератор().ВзятьИз(СтрРазделить("1,2,3", ",")); Ожидаем.Что(Итератор.Количество()).Равно(3); КонецПроцедуры Процедура Тест_РазделитьСтроку() Экспорт Итератор = Итератор().РазделитьСтроку("1,2,3", ","); Ожидаем.Что(Итератор.Количество()).Равно(3); КонецПроцедуры Процедура Тест_УстановитьКонтекст() Экспорт Итератор = Итератор().УстановитьКонтекст(1234); Ожидаем.Что(Итератор.Контекст()).Равно(1234); КонецПроцедуры Процедура Тест_Собрать() Экспорт Итератор = Итератор().РазделитьСтроку("1,2,3", ","); Результат = Итератор.Собрать(); Ожидаем.Что(Результат.Количество()).Равно(3); Ожидаем.Что(Результат).ИмеетТип(Тип("Массив")); КонецПроцедуры Процедура Тест_СобратьСтроку() Экспорт Итератор = Итератор().РазделитьСтроку("1,2,3", ","); Результат = Итератор.СобратьСтроку("/"); Ожидаем.Что(Результат).Равно("1/2/3"); КонецПроцедуры Процедура Тест_Контекст() Экспорт Итератор = Итератор().УстановитьКонтекст(4321); Ожидаем.Что(Итератор.Контекст()).Равно(4321); КонецПроцедуры Процедура Тест_Карта() Экспорт Результат = Итератор() .УстановитьКонтекст(10) .Начать() .Добавить(1) .Добавить(2) .Добавить(3) .Карта("Результат = Элемент + Элемент * _") .КакСтроки() .СобратьСтроку(" "); Ожидаем.Что(Результат).Равно("11 22 33"); КонецПроцедуры Процедура Тест_Фильтр() Экспорт Результат = Итератор() .УстановитьКонтекст(2) .ПоДиапазону(1,10) .Фильтр("Условие = 0 = Элемент % _") .КакСтроки() .СобратьСтроку(" "); Ожидаем.Что(Результат).Равно("2 4 6 8 10"); КонецПроцедуры Процедура Тест_Свернуть() Экспорт Результат = Итератор() .УстановитьКонтекст(10) .ПоДиапазону(1,3) .Свернуть("Результат = Результат + Элемент * _ ", 0); Ожидаем.Что(Результат).Равно(10 + 20 + 30); КонецПроцедуры Процедура Тест_ВзятьНеБольше() Экспорт Результат = Итератор() .ПоДиапазону(1,10) .КакСтроки() .ВзятьНеБольше(5) .СобратьСтроку(" "); Ожидаем.Что(Результат).Равно("1 2 3 4 5"); КонецПроцедуры Процедура Тест_Пропустить() Экспорт Результат = Итератор() .ПоДиапазону(1,10) .КакСтроки() .Пропустить(5) .СобратьСтроку(" "); Ожидаем.Что(Результат).Равно("6 7 8 9 10"); КонецПроцедуры Процедура Тест_Срез() Экспорт Результат = Итератор() .ПоДиапазону(1,10) .КакСтроки() .Срез(3, 4) .СобратьСтроку(" "); Ожидаем.Что(Результат).Равно("4 5 6 7"); КонецПроцедуры Процедура Тест_Хвост() Экспорт Результат = Итератор() .ПоДиапазону(1,10) .КакСтроки() .Хвост(3) .СобратьСтроку(" "); Ожидаем.Что(Результат).Равно("8 9 10"); КонецПроцедуры Процедура Тест_Обратить() Экспорт Результат = Итератор() .ПоДиапазону(1,3) .КакСтроки() .Обратить() .СобратьСтроку(" "); Ожидаем.Что(Результат).Равно("3 2 1"); КонецПроцедуры Процедура Тест_Транспонировать() Экспорт Длина_А = 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"); КонецПроцедуры Процедура Тест_Сортировать() Экспорт Результат = Итератор() .Начать() .Добавить(7) .Добавить(9) .Добавить(3) .Добавить(6) .Сортировать() .КакСтроки() .СобратьСтроку(" "); Ожидаем.Что(Результат).Равно("3 6 7 9"); КонецПроцедуры Процедура Тест_Перемешать() Экспорт Итератор = Итератор() .Начать() .ПоДиапазону(1,300) // чем больше тем меньше вероятность случайного провала, но дольше время теста .КакСтроки(); Оригинал = Итератор.СобратьСтроку(" "); мОригинал = Итератор.Собрать(); Результат = Итератор.Перемешать().СобратьСтроку(" "); Ожидаем.Что(Итератор.Количество()).Равно(мОригинал.Количество()); Ожидаем.Что(Результат).Не_().Равно(Оригинал); КонецПроцедуры Процедура Тест_ВГраница() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Количество() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Вставить() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Добавить() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Найти() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Очистить() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Получить() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Удалить() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Установить() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Пустой() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Содержит() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Первый() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Последний() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_СнятьПервый() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_СнятьПоследний() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Дополнить() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_ТолькоУникальные() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_РазностьС() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_УдалитьЗначение() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_УдалитьВсеВхождения() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_УдалитьВсеВхожденияТипа() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_СделатьПлоским() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_СброситьПозицию() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Следующий() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_ТекущийИндекс() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_ТекущийЭлемент() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_СледующийЭлемент() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_УстановитьИндекс() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Продвинуть() Экспорт ВызватьИсключение "Не реализовано";КонецПроцедуры Процедура Тест_ИндексКорректен() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Максимум() Экспорт ВызватьИсключение "Не реализовано";КонецПроцедуры Процедура Тест_Минимум() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Сумма() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Произведение() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Среднее() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_Медиана() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_КакСтроки() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_КакЧисла() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_КакДаты() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_КакБулево() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_ВерноВсе() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_ВерноЛюбое() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры Процедура Тест_ВерноТолькоОдно() Экспорт ВызватьИсключение "Не реализовано"; КонецПроцедуры