Dmitry
686dcfa9ce
реализованы тесты: - Тест_СоздатьНовый - Тест_Клонировать - Тест_Начать - Тест_НачатьС - Тест_ВзятьИз - Тест_РазделитьСтроку - Тест_УстановитьКонтекст - Тест_Собрать - Тест_СобратьСтроку - Тест_Контекст - Тест_Карта - Тест_Фильтр - Тест_Свернуть - Тест_ВзятьНеБольше - Тест_Пропустить - Тест_Срез - Тест_Хвост - Тест_Обратить - Тест_Транспонировать - Тест_Сортировать - Тест_Перемешать
459 lines
24 KiB
Plaintext
459 lines
24 KiB
Plaintext
Перем КонтекстЯдра;
|
||
Перем Ожидаем;
|
||
Перем Утверждения;
|
||
Перем СтроковыеУтилиты;
|
||
|
||
// { интерфейс тестирования
|
||
|
||
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
|
||
КонтекстЯдра = КонтекстЯдраПараметр;
|
||
Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
|
||
Ожидаем = КонтекстЯдра.Плагин("Утверждения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) // чем больше тем меньше вероятность случайного провала, но дольше время теста
|
||
.КакСтроки();
|
||
|
||
Оригинал = Итератор.СобратьСтроку(" ");
|
||
мОригинал = Итератор.Собрать();
|
||
Результат = Итератор.Перемешать().СобратьСтроку(" ");
|
||
|
||
Ожидаем.Что(Итератор.Количество()).Равно(мОригинал.Количество());
|
||
Ожидаем.Что(Результат).Не_().Равно(Оригинал);
|
||
КонецПроцедуры
|
||
|
||
|
||
Процедура Тест_ВГраница() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Количество() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Вставить() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Добавить() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Найти() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Очистить() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Получить() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Удалить() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Установить() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
|
||
Процедура Тест_Пустой() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Содержит() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Первый() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Последний() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_СнятьПервый() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_СнятьПоследний() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
|
||
Процедура Тест_Дополнить() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_ТолькоУникальные() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_РазностьС() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_УдалитьЗначение() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_УдалитьВсеВхождения() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_УдалитьВсеВхожденияТипа() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
|
||
Процедура Тест_СделатьПлоским() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
|
||
Процедура Тест_СброситьПозицию() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Следующий() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_ТекущийИндекс() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_ТекущийЭлемент() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_СледующийЭлемент() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_УстановитьИндекс() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Продвинуть() Экспорт
|
||
ВызватьИсключение "Не реализовано";КонецПроцедуры
|
||
Процедура Тест_ИндексКорректен() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
|
||
Процедура Тест_Максимум() Экспорт
|
||
ВызватьИсключение "Не реализовано";КонецПроцедуры
|
||
Процедура Тест_Минимум() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Сумма() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Произведение() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Среднее() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_Медиана() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
|
||
Процедура Тест_КакСтроки() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_КакЧисла() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_КакДаты() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_КакБулево() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
|
||
Процедура Тест_ВерноВсе() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_ВерноЛюбое() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
Процедура Тест_ВерноТолькоОдно() Экспорт
|
||
ВызватьИсключение "Не реализовано";
|
||
КонецПроцедуры
|
||
|
||
|