diff --git a/test/Тест_Итератор/Ext/ObjectModule.bsl b/test/Тест_Итератор/Ext/ObjectModule.bsl index ca029d3..65440ea 100644 --- a/test/Тест_Итератор/Ext/ObjectModule.bsl +++ b/test/Тест_Итератор/Ext/ObjectModule.bsl @@ -127,70 +127,196 @@ КонецПроцедуры Процедура Тест_СоздатьНовый() Экспорт - ВызватьИсключение "Не реализовано"; + Итератор_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) // чем больше тем меньше вероятность случайного провала, но дольше время теста + .КакСтроки(); + + Оригинал = Итератор.СобратьСтроку(" "); + мОригинал = Итератор.Собрать(); + Результат = Итератор.Перемешать().СобратьСтроку(" "); + + Ожидаем.Что(Итератор.Количество()).Равно(мОригинал.Количество()); + Ожидаем.Что(Результат).Не_().Равно(Оригинал); КонецПроцедуры