diff --git a/README.md b/README.md index eda96b9..0fa7cf8 100644 --- a/README.md +++ b/README.md @@ -317,8 +317,13 @@ class ИтераторЗначениеСоответствие { // начиная с того на который указывает итератор // // Параметры: -// Действие - Действие - Делегат на процедуру с одном параметром +// Действие - Действие - Делегат на процедуру с одним параметром // которая принимает элемент коллекции +// - Строка - Лямбда выражение с одним параметром +// которая принимает элемент коллекции +// +// Пример: +// Итератор.ДляКаждогоОставшегося(Элемент -> Сообщить(Элемент)); // Процедура ДляКаждогоОставшегося(Действие) ``` @@ -425,9 +430,14 @@ class ИтераторЗначениеСоответствие { // Выполняет переданный алгоритм для каждого элемента коллекции // // Параметры: -// Алгоритм - Действие - Делегат на процедуру с одном параметром, в который +// Алгоритм - Действие - Делегат на процедуру с одним параметром, в который +// будет передан элемент коллекции +// - Строка - Лямбда выражение с одним параметром, в который будет // будет передан элемент коллекции // +// Пример: +// Обходимое.ДляКаждого("Элемент -> Сообщить(Элемент)"); +// Процедура ДляКаждого(Алгоритм) ``` --- @@ -580,6 +590,10 @@ class ИтераторЗначениеСоответствие { // // Параметры: // Предикат - Действие - Делегат на функцию с одним параметром, в которой передаётся элемент коллекции +// - Строка - Лямбда выражение с одним параметром, в который передаётся элемент коллекции +// +// Пример: +// Коллекция.УдалитьЕсли("(Элемент) -> Элемент >= 2"); // // Возвращаемое значение: // Булево - Истина, если был удалён хотя бы один элемент @@ -697,6 +711,11 @@ class ИтераторЗначениеСоответствие { // Параметры: // Алгоритм - Действие - Делегат на функцию с одним параметром, в которую передаётся // элемент списка, и которая возвращает новое значение элемента +// - Строка - Лямбда выражение с одним параметром, в который передаётся +// элемент списка, и которая возвращает новое значение элемента +// +// Пример: +// Список.ЗаменитьВсе("Элемент -> Элемент + 1"); // Процедура ЗаменитьВсе(Алгоритм) ``` @@ -708,12 +727,28 @@ class ИтераторЗначениеСоответствие { // // Параметры: // СравнениеЗначений - Действие - Делегат на функцию с двумя параметрами -// в которую передаются 2 элемента коллекции, и которая возвращает число: -// 1 - Если первый элемент больше -// -1 - Если второй элемент больше -// 0 - Если элементы равны +// в которую передаются 2 элемента коллекции, и которая возвращает число +// 1 - Если первый элемент больше, +// -1 - Если второй элемент больше, +// 0 - Если элементы равны +// - Строка - Лямбда выражение с двумя параметрами +// в которую передаются 2 элемента коллекции, и которая возвращает число +// 1 - Если первый элемент больше, +// -1 - Если второй элемент больше, +// 0 - Если элементы равны +// +// Пример: +// Список.Сортировать("Первый, Второй -> { +// | Если Первый > Второй Тогда +// | Возврат 1; +// | ИначеЕсли Второй > Первый Тогда +// | Возврат -1; +// | Иначе +// | Возврат 0; +// | КонецЕсли; +// |}" +// ); // -Процедура Сортировать(СравнениеЗначений) ``` ### УдалитьПоИндексу @@ -783,7 +818,11 @@ class ИтераторЗначениеСоответствие { // // Параметры: // Алгоритм - Действие - Делегат на метод с двумя параметрами который будет выполнятся -// в первый параметр передаёт ключ во второй значение +// в первый параметр передаётся ключ во второй значение +// - Строка - Лямбда выражение с двумя параметрами в первый параметр передаётся ключ во второй значение +// +// Пример: +// Карта.ДляКаждого("(Ключ, Значение) -> Сообщить(СтрШаблон(""Ключ: %1, Значение:2"", Ключ, Значение))"); // Процедура ДляКаждого(Алгоритм) ``` @@ -935,7 +974,12 @@ class ИтераторЗначениеСоответствие { // Параметры: // Ключ - Произвольный - Ключ, для которого вычисляется значение // ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую передаются ключ -// и Опциональный от текущего значения ключа (пустой если ключа нет). +// и Опциональный от текущего значения ключа (пустой если ключа нет) +// - Строка - Лямбда выражение с двумя параметрами в которую будут переданы ключ +// и Опциональный от текущего значения ключа (пустой если ключа нет) +// +// Пример: +// Карта.ВычислитьБезусловно("Ключ", "(Ключ, Значение) -> ?(Значение.Пустой(), Истина, Ложь)") // // Возвращаемое значение: // Опциональный<Произвольный> - Новое значение ключа @@ -954,6 +998,10 @@ class ИтераторЗначениеСоответствие { // Параметры: // Ключ - Произвольный - Ключ, для которого вычисляется значение // ФункцияНазначения - Действие - Делегат на функцию с одним параметром, в которую передаётся переданный ключ +// - Строка - Лямбда выражение с одним параметром в который будет передан переданный ключ +// +// Пример: +// Карта.ВычислитьЕслиОтсутствует("Ключ", "(Ключ) -> СтрДлина(Ключ)") // // Возвращаемое значение: // Опциональный<Произвольный> - Новое значение ключа если оно было вычислено, или текущее значение ключа @@ -974,6 +1022,18 @@ class ИтераторЗначениеСоответствие { // Ключ - Произвольный - Ключ, для которого вычисляется значение // ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую передаются ключ // и текущее значение ключа +// - Строка - Лямбда выражение с двумя параметрами, в которые передаются ключ и текущее +// значение ключа +// +// Пример: +// Карта.ВычислитьЕслиПрисутствует("Ключ", "(Ключ, Значение) -> { +// | Если Ключ = ""Ключ"" Тогда +// | Возврат СтрДлина(Значение.Получить()); +// | Иначе +// | Возврат Неопределенно; +// | КонецЕсли; +// |}" +// ); // // Возвращаемое значение: // Опциональный<Произвольный> - Новое значение ключа @@ -992,8 +1052,17 @@ class ИтераторЗначениеСоответствие { // Параметры: // Ключ - Произвольный - Ключ, значения для которого требуется объединить // Значение - Произвольный - Новое значение ключа -// ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами со старым и новым -// значением ключа +// ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами в которые передаются +// существующее и новое значение ключа +// - Строка - Лямбда выражение с двумя параметрами в которые передаются +// существующее и новое значение ключа +// +// Пример: +// Карта.Слить("Ключ", 4, "(СуществующееЗначение, НовоеЗначение) -> +// | Возврат ?(НовоеЗначение > СуществующееЗначение, +// | НовоеЗначение, +// | СуществующееЗначение +// | );") // // Возвращаемое значение: // Опциональный<Произвольный> - Новое значение ключа @@ -1040,7 +1109,12 @@ class ИтераторЗначениеСоответствие { // // Параметры: // ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую -// передаются ключ и значение карты +// передаются ключ и значение ключа +// - Строка - Лямбда выражение с двумя параметрами, в которые передаются +// ключ и значение ключа +// +// Пример: +// Карта.ЗаменитьВсе("(Ключ, Значение) -> Значение + 1") // Процедура ЗаменитьВсе(ФункцияПереназначения) ``` @@ -1058,4 +1132,3 @@ class ИтераторЗначениеСоответствие { // Функция Удалить(Ключ) ``` - diff --git a/packagedef b/packagedef index 7b2722c..2a6d090 100644 --- a/packagedef +++ b/packagedef @@ -1,5 +1,5 @@ Описание.Имя("collectionos") - .Версия("0.1.0") + .Версия("0.2.0") .Автор("Кирилл Черненко") .АдресАвтора("https://github.com/sfaqer") .Описание("Фреймворк коллекций для OneScript") @@ -10,6 +10,7 @@ .ВключитьФайл("package-loader.os") .ЗависитОт("reflector", "0.7.1") .ЗависитОт("fluent", "0.5.0") + .ЗависитОт("lambdas", "0.1.1") .ЗависитОт("optional") .РазработкаЗависитОт("1commands") .РазработкаЗависитОт("1testrunner") diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\232\320\260\321\200\321\202\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\232\320\260\321\200\321\202\320\260.os" index 53e2447..26b8ead 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\232\320\260\321\200\321\202\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\232\320\260\321\200\321\202\320\260.os" @@ -44,7 +44,12 @@ // Параметры: // Ключ - Произвольный - Ключ, для которого вычисляется значение // ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую передаются ключ -// и Опциональный от текущего значения ключа (пустой если ключа нет). +// и Опциональный от текущего значения ключа (пустой если ключа нет) +// - Строка - Лямбда выражение с двумя параметрами в которую будут переданы ключ +// и Опциональный от текущего значения ключа (пустой если ключа нет) +// +// Пример: +// Карта.ВычислитьБезусловно("Ключ", "(Ключ, Значение) -> ?(Значение.Пустой(), Истина, Ложь)") // // Возвращаемое значение: // Опциональный<Произвольный> - Новое значение ключа @@ -60,6 +65,10 @@ // Параметры: // Ключ - Произвольный - Ключ, для которого вычисляется значение // ФункцияНазначения - Действие - Делегат на функцию с одним параметром, в которую передаётся переданный ключ +// - Строка - Лямбда выражение с одним параметром в который будет передан переданный ключ +// +// Пример: +// Карта.ВычислитьЕслиОтсутствует("Ключ", "(Ключ) -> СтрДлина(Ключ)") // // Возвращаемое значение: // Опциональный<Произвольный> - Новое значение ключа если оно было вычислено, или текущее значение ключа @@ -77,6 +86,18 @@ // Ключ - Произвольный - Ключ, для которого вычисляется значение // ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую передаются ключ // и текущее значение ключа +// - Строка - Лямбда выражение с двумя параметрами, в которые передаются ключ и текущее +// значение ключа +// +// Пример: +// Карта.ВычислитьЕслиПрисутствует("Ключ", "(Ключ, Значение) -> { +// | Если Ключ = ""Ключ"" Тогда +// | Возврат СтрДлина(Значение.Получить()); +// | Иначе +// | Возврат Неопределенно; +// | КонецЕсли; +// |}" +// ); // // Возвращаемое значение: // Опциональный<Произвольный> - Новое значение ключа @@ -92,8 +113,17 @@ // Параметры: // Ключ - Произвольный - Ключ, значения для которого требуется объединить // Значение - Произвольный - Новое значение ключа -// ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами со старым и новым -// значением ключа +// ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами в которые передаются +// существующее и новое значение ключа +// - Строка - Лямбда выражение с двумя параметрами в которые передаются +// существующее и новое значение ключа +// +// Пример: +// Карта.Слить("Ключ", 4, "(СуществующееЗначение, НовоеЗначение) -> +// | Возврат ?(НовоеЗначение > СуществующееЗначение, +// | НовоеЗначение, +// | СуществующееЗначение +// | );") // // Возвращаемое значение: // Опциональный<Произвольный> - Новое значение ключа @@ -131,7 +161,12 @@ // // Параметры: // ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую -// передаются ключ и значение карты +// передаются ключ и значение ключа +// - Строка - Лямбда выражение с двумя параметрами, в которые передаются +// ключ и значение ключа +// +// Пример: +// Карта.ЗаменитьВсе("(Ключ, Значение) -> Значение + 1") // Процедура ЗаменитьВсе(ФункцияПереназначения) Экспорт КонецПроцедуры diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217.os" index bba6520..13fb38c 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217.os" @@ -53,6 +53,10 @@ // // Параметры: // Предикат - Действие - Делегат на функцию с одним параметром, в которой передаётся элемент коллекции +// - Строка - Лямбда выражение с одним параметром, в который передаётся элемент коллекции +// +// Пример: +// Коллекция.УдалитьЕсли("(Элемент) -> Элемент >= 2"); // // Возвращаемое значение: // Булево - Истина, если был удалён хотя бы один элемент diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\236\320\261\321\205\320\276\320\264\320\270\320\274\320\276\320\265.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\236\320\261\321\205\320\276\320\264\320\270\320\274\320\276\320\265.os" index 3695809..dfafca6 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\236\320\261\321\205\320\276\320\264\320\270\320\274\320\276\320\265.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\236\320\261\321\205\320\276\320\264\320\270\320\274\320\276\320\265.os" @@ -11,8 +11,13 @@ // Выполняет переданный алгоритм для каждого элемента коллекции // // Параметры: -// Алгоритм - Действие - Делегат на процедуру с одном параметром, в который +// Алгоритм - Действие - Делегат на процедуру с одним параметром, в который // будет передан элемент коллекции +// - Строка - Лямбда выражение с одним параметром, в который будет +// будет передан элемент коллекции +// +// Пример: +// Обходимое.ДляКаждого("Элемент -> Сообщить(Элемент)"); // Процедура ДляКаждого(Алгоритм) Экспорт КонецПроцедуры diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272.os" index 10a0926..fd2868d 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272.os" @@ -29,6 +29,11 @@ // Параметры: // Алгоритм - Действие - Делегат на функцию с одним параметром, в которую передаётся // элемент списка, и которая возвращает новое значение элемента +// - Строка - Лямбда выражение с одним параметром, в который передаётся +// элемент списка, и которая возвращает новое значение элемента +// +// Пример: +// Список.ЗаменитьВсе("Элемент -> Элемент + 1"); // Процедура ЗаменитьВсе(Алгоритм) Экспорт КонецПроцедуры @@ -37,10 +42,27 @@ // // Параметры: // СравнениеЗначений - Действие - Делегат на функцию с двумя параметрами -// в которую передаются 2 элемента коллекции, и которая возвращает число: -// 1 - Если первый элемент больше -// -1 - Если второй элемент больше -// 0 - Если элементы равны +// в которую передаются 2 элемента коллекции, и которая возвращает число +// 1 - Если первый элемент больше, +// -1 - Если второй элемент больше, +// 0 - Если элементы равны +// - Строка - Лямбда выражение с двумя параметрами +// в которую передаются 2 элемента коллекции, и которая возвращает число +// 1 - Если первый элемент больше, +// -1 - Если второй элемент больше, +// 0 - Если элементы равны +// +// Пример: +// Список.Сортировать("Первый, Второй -> { +// | Если Первый > Второй Тогда +// | Возврат 1; +// | ИначеЕсли Второй > Первый Тогда +// | Возврат -1; +// | Иначе +// | Возврат 0; +// | КонецЕсли; +// |}" +// ); // Процедура Сортировать(СравнениеЗначений) Экспорт КонецПроцедуры diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\247\320\270\321\202\320\260\320\265\320\274\320\260\321\217\320\232\320\260\321\200\321\202\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\247\320\270\321\202\320\260\320\265\320\274\320\260\321\217\320\232\320\260\321\200\321\202\320\260.os" index fdcb4a3..56dfe9c 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\247\320\270\321\202\320\260\320\265\320\274\320\260\321\217\320\232\320\260\321\200\321\202\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\247\320\270\321\202\320\260\320\265\320\274\320\260\321\217\320\232\320\260\321\200\321\202\320\260.os" @@ -26,7 +26,11 @@ // // Параметры: // Алгоритм - Действие - Делегат на метод с двумя параметрами который будет выполнятся -// в первый параметр передаёт ключ во второй значение +// в первый параметр передаётся ключ во второй значение +// - Строка - Лямбда выражение с двумя параметрами в первый параметр передаётся ключ во второй значение +// +// Пример: +// Карта.ДляКаждого("(Ключ, Значение) -> Сообщить(СтрШаблон(""Ключ: %1, Значение:2"", Ключ, Значение))"); // Процедура ДляКаждого(Алгоритм) Экспорт КонецПроцедуры diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\247\320\270\321\202\320\260\321\216\321\211\320\270\320\271\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\247\320\270\321\202\320\260\321\216\321\211\320\270\320\271\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200.os" index 6b5d5dc..69296e6 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\247\320\270\321\202\320\260\321\216\321\211\320\270\320\271\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\321\213/\320\247\320\270\321\202\320\260\321\216\321\211\320\270\320\271\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200.os" @@ -20,8 +20,13 @@ // начиная с того на который указывает итератор // // Параметры: -// Действие - Действие - Делегат на процедуру с одном параметром +// Действие - Действие - Делегат на процедуру с одним параметром // которая принимает элемент коллекции +// - Строка - Лямбда выражение с одним параметром +// которая принимает элемент коллекции +// +// Пример: +// Итератор.ДляКаждогоОставшегося(Элемент -> Сообщить(Элемент)); // Процедура ДляКаждогоОставшегося(Действие) Экспорт КонецПроцедуры diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index 160aa71..d67bf44 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -1,3 +1,5 @@ +#Использовать lambdas + Перем ВнутреннийИтератор; // Ссылка на итератор соответствия Функция ЕстьСледующий() Экспорт @@ -12,8 +14,16 @@ ВнутреннийИтератор.Удалить(); КонецПроцедуры -Процедура ДляКаждогоОставшегося(Действие) Экспорт +Процедура ДляКаждогоОставшегося(Знач Действие) Экспорт + Если ТипЗнч(Действие) = Тип("Строка") Тогда + + Действие = Лямбда.Выражение(Действие) + .Интерфейс(ФункциональныеИнтерфейсы.УниПроцедура()) + .ВДействие(); + + КонецЕсли; + Пока ЕстьСледующий() Цикл Действие.Выполнить(Следующий()); КонецЦикла; diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\232\320\273\321\216\321\207\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\232\320\273\321\216\321\207\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index e618467..43c8393 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\232\320\273\321\216\321\207\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\232\320\273\321\216\321\207\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -1,3 +1,5 @@ +#Использовать lambdas + Перем ВнутреннийИтератор; // Ссылка на итератор соответствия Функция ЕстьСледующий() Экспорт @@ -12,8 +14,16 @@ ВнутреннийИтератор.Удалить(); КонецПроцедуры -Процедура ДляКаждогоОставшегося(Действие) Экспорт +Процедура ДляКаждогоОставшегося(Знач Действие) Экспорт + Если ТипЗнч(Действие) = Тип("Строка") Тогда + + Действие = Лямбда.Выражение(Действие) + .Интерфейс(ФункциональныеИнтерфейсы.УниПроцедура()) + .ВДействие(); + + КонецЕсли; + Пока ЕстьСледующий() Цикл Действие.Выполнить(Следующий()); КонецЦикла; diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\234\320\260\321\201\321\201\320\270\320\262.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\234\320\260\321\201\321\201\320\270\320\262.os" index 06b5cf8..3c58422 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\234\320\260\321\201\321\201\320\270\320\262.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\321\213/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\234\320\260\321\201\321\201\320\270\320\262.os" @@ -1,3 +1,5 @@ +#Использовать lambdas + Перем Массив; // Итерируемый массив Перем Курсор; // Индекс на который указывает итератор Перем ПоследнийВозвращенный; // Индекс последнего возвращенного элемента @@ -38,8 +40,16 @@ КонецПроцедуры -Процедура ДляКаждогоОставшегося(Действие) Экспорт +Процедура ДляКаждогоОставшегося(Знач Действие) Экспорт + Если ТипЗнч(Действие) = Тип("Строка") Тогда + + Действие = Лямбда.Выражение(Действие) + .Интерфейс(ФункциональныеИнтерфейсы.УниПроцедура()) + .ВДействие(); + + КонецЕсли; + Пока ЕстьСледующий() Цикл Действие.Выполнить(Следующий()); КонецЦикла; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\232\320\260\321\200\321\202\321\213/\320\232\320\260\321\200\321\202\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\232\320\260\321\200\321\202\321\213/\320\232\320\260\321\200\321\202\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index 9d5cf66..c82cbad 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\232\320\260\321\200\321\202\321\213/\320\232\320\260\321\200\321\202\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\232\320\260\321\200\321\202\321\213/\320\232\320\260\321\200\321\202\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -1,5 +1,6 @@ #Использовать fluent #Использовать optional +#Использовать lambdas #Использовать "../../../internal" @@ -17,10 +18,20 @@ Возврат Значения().Содержит(Значение); КонецФункции -Процедура ДляКаждого(Алгоритм) Экспорт +Процедура ДляКаждого(Знач Алгоритм) Экспорт + + Если ТипЗнч(Алгоритм) = Тип("Строка") Тогда + + Алгоритм = Лямбда.Выражение(Алгоритм) + .Интерфейс(ФункциональныеИнтерфейсы.БиПроцедура()) + .ВДействие(); + + КонецЕсли; + Для каждого КлючИЗначение Из Соответствие Цикл Алгоритм.Выполнить(КлючИЗначение.Ключ, КлючИЗначение.Значение); КонецЦикла; + КонецПроцедуры Функция Получить(Ключ) Экспорт @@ -132,7 +143,13 @@ КонецФункции -Функция ВычислитьБезусловно(Ключ, ФункцияПереназначения) Экспорт +Функция ВычислитьБезусловно(Ключ, Знач ФункцияПереназначения) Экспорт + + Если ТипЗнч(ФункцияПереназначения) = Тип("Строка") Тогда + ФункцияПереназначения = Лямбда.Выражение(ФункцияПереназначения) + .Интерфейс(ФункциональныеИнтерфейсы.БиФункция()) + .ВДействие(); + КонецЕсли; СтароеЗначение = Получить(Ключ); НовоеЗначение = ФункцияПереназначения.Выполнить(Ключ, СтароеЗначение); @@ -155,7 +172,13 @@ КонецФункции -Функция ВычислитьЕслиОтсутствует(Ключ, ФункцияНазначения) Экспорт +Функция ВычислитьЕслиОтсутствует(Ключ, Знач ФункцияНазначения) Экспорт + + Если ТипЗнч(ФункцияНазначения) = Тип("Строка") Тогда + ФункцияНазначения = Лямбда.Выражение(ФункцияНазначения) + .Интерфейс(ФункциональныеИнтерфейсы.УниФункция()) + .ВДействие(); + КонецЕсли; НовоеЗначение = Неопределено; ТекущееЗначение = Получить(Ключ); @@ -180,8 +203,14 @@ КонецФункции -Функция ВычислитьЕслиПрисутствует(Ключ, ФункцияПереназначения) Экспорт +Функция ВычислитьЕслиПрисутствует(Ключ, Знач ФункцияПереназначения) Экспорт + Если ТипЗнч(ФункцияПереназначения) = Тип("Строка") Тогда + ФункцияПереназначения = Лямбда.Выражение(ФункцияПереназначения) + .Интерфейс(ФункциональныеИнтерфейсы.БиФункция()) + .ВДействие(); + КонецЕсли; + НовоеЗначение = Неопределено; Если СодержитКлюч(Ключ) Тогда @@ -205,7 +234,13 @@ КонецФункции -Функция Слить(Ключ, Значение, ФункцияПереназначения) Экспорт +Функция Слить(Ключ, Значение, Знач ФункцияПереназначения) Экспорт + + Если ТипЗнч(ФункцияПереназначения) = Тип("Строка") Тогда + ФункцияПереназначения = Лямбда.Выражение(ФункцияПереназначения) + .Интерфейс(ФункциональныеИнтерфейсы.БиФункция()) + .ВДействие(); + КонецЕсли; СтароеЗначение = Получить(Ключ); НовоеЗначение = ?( @@ -254,7 +289,13 @@ КонецФункции -Процедура ЗаменитьВсе(ФункцияПереназначения) Экспорт +Процедура ЗаменитьВсе(Знач ФункцияПереназначения) Экспорт + + Если ТипЗнч(ФункцияПереназначения) = Тип("Строка") Тогда + ФункцияПереназначения = Лямбда.Выражение(ФункцияПереназначения) + .Интерфейс(ФункциональныеИнтерфейсы.БиФункция()) + .ВДействие(); + КонецЕсли; НовыеЗначения = Новый Соответствие; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\260/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\232\320\260\321\200\321\202\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\260/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\232\320\260\321\200\321\202\320\260.os" index 5815789..9a6e066 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\260/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\232\320\260\321\200\321\202\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\260/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\232\320\260\321\200\321\202\320\260.os" @@ -1,4 +1,5 @@ #Использовать fluent +#Использовать lambdas #Использовать "../../../internal" @@ -91,7 +92,13 @@ КонецФункции -Функция УдалитьЕсли(Предикат) Экспорт +Функция УдалитьЕсли(Знач Предикат) Экспорт + + Если ТипЗнч(Предикат) = Тип("Строка") Тогда + Предикат = Лямбда.Выражение(Предикат) + .Интерфейс(ФункциональныеИнтерфейсы.УниФункция()) + .ВДействие(); + КонецЕсли; БылУдаленХотяБыОдинЭлемент = Ложь; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\260/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\260/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index 1fdb301..58d2a00 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\260/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\260/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -1,4 +1,5 @@ #Использовать fluent +#Использовать lambdas #Использовать "../../../internal" @@ -13,7 +14,13 @@ КонецФункции -Процедура ДляКаждого(Алгоритм) Экспорт +Процедура ДляКаждого(Знач Алгоритм) Экспорт + + Если ТипЗнч(Алгоритм) = Тип("Строка") Тогда + Алгоритм = Лямбда.Выражение(Алгоритм) + .Интерфейс(ФункциональныеИнтерфейсы.УниПроцедура()) + .ВДействие(); + КонецЕсли; Для каждого КлючИЗначение Из Соответствие Цикл Алгоритм.Выполнить(КлючИЗначение.Ключ); @@ -137,7 +144,13 @@ КонецФункции -Функция УдалитьЕсли(Предикат) Экспорт +Функция УдалитьЕсли(Знач Предикат) Экспорт + + Если ТипЗнч(Предикат) = Тип("Строка") Тогда + Предикат = Лямбда.Выражение(Предикат) + .Интерфейс(ФункциональныеИнтерфейсы.УниФункция()) + .ВДействие(); + КонецЕсли; БылУдаленХотяБыОдинЭлемент = Ложь; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\241\320\277\320\270\321\201\320\272\320\270/\320\241\320\277\320\270\321\201\320\276\320\272\320\234\320\260\321\201\321\201\320\270\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\241\320\277\320\270\321\201\320\272\320\270/\320\241\320\277\320\270\321\201\320\276\320\272\320\234\320\260\321\201\321\201\320\270\320\262.os" index 5b49cf4..41c56ab 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\241\320\277\320\270\321\201\320\272\320\270/\320\241\320\277\320\270\321\201\320\276\320\272\320\234\320\260\321\201\321\201\320\270\320\262.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\241\320\277\320\270\321\201\320\272\320\270/\320\241\320\277\320\270\321\201\320\276\320\272\320\234\320\260\321\201\321\201\320\270\320\262.os" @@ -13,7 +13,13 @@ КонецФункции -Процедура ДляКаждого(Алгоритм) Экспорт +Процедура ДляКаждого(Знач Алгоритм) Экспорт + + Если ТипЗнч(Алгоритм) = Тип("Строка") Тогда + Алгоритм = Лямбда.Выражение(Алгоритм) + .Интерфейс(ФункциональныеИнтерфейсы.УниПроцедура()) + .ВДействие(); + КонецЕсли; Для Каждого Элемент Из Массив Цикл Алгоритм.Выполнить(Элемент); @@ -171,7 +177,13 @@ КонецФункции -Функция УдалитьЕсли(Предикат) Экспорт +Функция УдалитьЕсли(Знач Предикат) Экспорт + + Если ТипЗнч(Предикат) = Тип("Строка") Тогда + Предикат = Лямбда.Выражение(Предикат) + .Интерфейс(ФункциональныеИнтерфейсы.УниФункция()) + .ВДействие(); + КонецЕсли; БылУдаленХотяБыОдинЭлемент = Ложь; @@ -246,7 +258,13 @@ КонецФункции -Процедура ЗаменитьВсе(Алгоритм) Экспорт +Процедура ЗаменитьВсе(Знач Алгоритм) Экспорт + + Если ТипЗнч(Алгоритм) = Тип("Строка") Тогда + Алгоритм = Лямбда.Выражение(Алгоритм) + .Интерфейс(ФункциональныеИнтерфейсы.УниФункция()) + .ВДействие(); + КонецЕсли; Для Индекс = 0 По ВГраница() Цикл Установить(Индекс, Алгоритм.Выполнить(Получить(Индекс))); @@ -254,7 +272,13 @@ КонецПроцедуры -Процедура Сортировать(СравнениеЗначений) Экспорт +Процедура Сортировать(Знач СравнениеЗначений) Экспорт + + Если ТипЗнч(СравнениеЗначений) = Тип("Строка") Тогда + СравнениеЗначений = Лямбда.Выражение(СравнениеЗначений) + .Интерфейс(ФункциональныеИнтерфейсы.БиФункция()) + .ВДействие(); + КонецЕсли; Для Индекс = 0 По ВГраница() Цикл diff --git "a/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index 8995284..3d12b80 100644 --- "a/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\265\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -1,5 +1,6 @@ #Использовать asserts #Использовать ".." +#Использовать "./ТестМодуль" Перем ДляКаждогоВыполнилсяРаз; // Количество раз которое выполнился метод ДляКаждого @@ -192,6 +193,38 @@ КонецПроцедуры +&Тест +Процедура ДляКаждогоОставшегосяЛямбда() Экспорт + + // Дано + + ТестМодуль.ДляКаждогоВыполнилсяРаз = 0; + ТестМодуль.СуммаЭлементов = 0; + + Коллекция = Новый Соответствие; + Коллекция.Вставить(0, 1); + Коллекция.Вставить(1, 2); + Коллекция.Вставить(2, 3); + + Итератор = Новый ИтераторЗначениеСоответствие(Коллекция, ЭтотОбъект); + + Итератор.Следующий(); + + // Когда + + Итератор.ДляКаждогоОставшегося( + "Элемент -> ТестМодуль.ДляКаждогоВыполнилсяРаз = ТестМодуль.ДляКаждогоВыполнилсяРаз + 1; + | ТестМодуль.СуммаЭлементов = ТестМодуль.СуммаЭлементов + Элемент;" + ); + + // Тогда + + Ожидаем.Что(ТестМодуль.ДляКаждогоВыполнилсяРаз).Равно(2); + Ожидаем.Что(ТестМодуль.СуммаЭлементов).Равно(5); + Ожидаем.Что(Итератор.ЕстьСледующий()).ЭтоЛожь(); + +КонецПроцедуры + &Тест Процедура ПриМутацииИтераторомИнвалидируютсяДругиеИтераторы() Экспорт diff --git "a/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\232\320\273\321\216\321\207\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\232\320\273\321\216\321\207\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index 0aa89d9..e372edc 100644 --- "a/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\232\320\273\321\216\321\207\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\232\320\273\321\216\321\207\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -1,5 +1,6 @@ #Использовать asserts #Использовать ".." +#Использовать "./ТестМодуль" Перем ДляКаждогоВыполнилсяРаз; // Количество раз которое выполнился метод ДляКаждого @@ -192,6 +193,38 @@ КонецПроцедуры +&Тест +Процедура ДляКаждогоОставшегосяЛямбда() Экспорт + + // Дано + + ТестМодуль.ДляКаждогоВыполнилсяРаз = 0; + ТестМодуль.СуммаЭлементов = 0; + + Коллекция = Новый Соответствие; + Коллекция.Вставить(0, 0); + Коллекция.Вставить(1, 1); + Коллекция.Вставить(2, 2); + + Итератор = Новый ИтераторКлючСоответствие(Коллекция, ЭтотОбъект); + + Итератор.Следующий(); + + // Когда + + Итератор.ДляКаждогоОставшегося( + "Элемент -> ТестМодуль.ДляКаждогоВыполнилсяРаз = ТестМодуль.ДляКаждогоВыполнилсяРаз + 1; + | ТестМодуль.СуммаЭлементов = ТестМодуль.СуммаЭлементов + Элемент;" + ); + + // Тогда + + Ожидаем.Что(ТестМодуль.ДляКаждогоВыполнилсяРаз).Равно(2); + Ожидаем.Что(ТестМодуль.СуммаЭлементов).Равно(3); + Ожидаем.Что(Итератор.ЕстьСледующий()).ЭтоЛожь(); + +КонецПроцедуры + &Тест Процедура ПриМутацииИтераторомИнвалидируютсяДругиеИтераторы() Экспорт diff --git "a/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\234\320\260\321\201\321\201\320\270\320\262.os" "b/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\234\320\260\321\201\321\201\320\270\320\262.os" index f2fd1fc..33ecf05 100644 --- "a/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\234\320\260\321\201\321\201\320\270\320\262.os" +++ "b/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\234\320\260\321\201\321\201\320\270\320\262.os" @@ -1,5 +1,6 @@ #Использовать asserts #Использовать ".." +#Использовать "./ТестМодуль" Перем Рефлектор; // Рефлектор Перем ДляКаждогоВыполнилсяРаз; // Количество раз которое выполнился метод ДляКаждого @@ -230,6 +231,38 @@ КонецПроцедуры +&Тест +Процедура ДляКаждогоОставшегосяЛямбда() Экспорт + + // Дано + + ТестМодуль.ДляКаждогоВыполнилсяРаз = 0; + ТестМодуль.СуммаЭлементов = 0; + + Коллекция = Новый Массив; + Коллекция.Добавить(0); + Коллекция.Добавить(1); + Коллекция.Добавить(2); + + Итератор = Новый ИтераторМассив(Коллекция, ЭтотОбъект); + + Итератор.Следующий(); + + // Когда + + Итератор.ДляКаждогоОставшегося( + "Элемент -> ТестМодуль.ДляКаждогоВыполнилсяРаз = ТестМодуль.ДляКаждогоВыполнилсяРаз + 1; + | ТестМодуль.СуммаЭлементов = ТестМодуль.СуммаЭлементов + Элемент;" + ); + + // Тогда + + Ожидаем.Что(ТестМодуль.ДляКаждогоВыполнилсяРаз).Равно(2); + Ожидаем.Что(ТестМодуль.СуммаЭлементов).Равно(3); + Ожидаем.Что(Итератор.ЕстьСледующий()).ЭтоЛожь(); + +КонецПроцедуры + &Тест Процедура ПриМутацииИтераторомИнвалидируютсяДругиеИтераторы() Экспорт diff --git "a/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index 12d5633..3bcd632 100644 --- "a/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/tests/\320\230\321\202\320\265\321\200\320\260\321\202\320\276\321\200\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -1,5 +1,6 @@ #Использовать asserts #Использовать ".." +#Использовать "./ТестМодуль" Перем ДляКаждогоВыполнилсяРаз; // Количество раз которое выполнился метод ДляКаждого @@ -194,6 +195,38 @@ КонецПроцедуры +&Тест +Процедура ДляКаждогоОставшегосяЛямбда() Экспорт + + // Дано + + ТестМодуль.ДляКаждогоВыполнилсяРаз = 0; + ТестМодуль.СуммаЭлементов = 0; + + Коллекция = Новый Соответствие; + Коллекция.Вставить(0, 0); + Коллекция.Вставить(1, 1); + Коллекция.Вставить(2, 2); + + Итератор = Новый ИтераторСоответствие(Коллекция, ЭтотОбъект); + + Итератор.Следующий(); + + // Когда + + Итератор.ДляКаждогоОставшегося( + "Элемент -> ТестМодуль.ДляКаждогоВыполнилсяРаз = ТестМодуль.ДляКаждогоВыполнилсяРаз + 1; + | ТестМодуль.СуммаЭлементов = ТестМодуль.СуммаЭлементов + Элемент.Ключ + Элемент.Значение;" + ); + + // Тогда + + Ожидаем.Что(ТестМодуль.ДляКаждогоВыполнилсяРаз).Равно(2); + Ожидаем.Что(ТестМодуль.СуммаЭлементов).Равно(6); + Ожидаем.Что(Итератор.ЕстьСледующий()).ЭтоЛожь(); + +КонецПроцедуры + &Тест Процедура ПриМутацииИтераторомИнвалидируютсяДругиеИтераторы() Экспорт diff --git "a/tests/\320\232\320\260\321\200\321\202\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/tests/\320\232\320\260\321\200\321\202\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index d8bc7b3..e498453 100644 --- "a/tests/\320\232\320\260\321\200\321\202\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/tests/\320\232\320\260\321\200\321\202\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -2,6 +2,7 @@ #Использовать decorator #Использовать ".." +#Использовать "./ТестМодуль" Перем Рефлектор; // Рефлектор Перем ДляКаждогоВыполнилсяРаз; // Количество раз которое выполнился метод ДляКаждого @@ -118,6 +119,31 @@ КонецПроцедуры +&Тест +Процедура ДляКаждогоЛямбда() Экспорт + + // Дано + + ТестМодуль.ДляКаждогоВыполнилсяРаз = 0; + ТестМодуль.СуммаЭлементов = 0; + + ПроверяемаяКарта = Новый КартаСоответствие(); + Рефлектор.УстановитьСвойство(ПроверяемаяКарта, "Соответствие", Соответствие()); + + // Когда + + ПроверяемаяКарта.ДляКаждого( + "(Ключ, Значение) -> ТестМодуль.ДляКаждогоВыполнилсяРаз = ТестМодуль.ДляКаждогоВыполнилсяРаз + 1; + | ТестМодуль.СуммаЭлементов = ТестМодуль.СуммаЭлементов + Ключ + Значение;" + ); + + // Тогда + + Ожидаем.Что(ТестМодуль.ДляКаждогоВыполнилсяРаз).Равно(3); + Ожидаем.Что(ТестМодуль.СуммаЭлементов).Равно(12); + +КонецПроцедуры + &Тест Процедура ПолучитьСуществует() Экспорт @@ -617,6 +643,36 @@ КонецПроцедуры +&Тест +Процедура ВычислитьБезусловноЛямбда() Экспорт + + // Дано + + Соответствие = Соответствие(); + + ПроверяемаяКарта = Новый КартаСоответствие(); + Рефлектор.УстановитьСвойство(ПроверяемаяКарта, "Соответствие", Соответствие); + + КоллекцияМодифицирована = Ложь; + ДобавитьОбработчик ПроверяемаяКарта.КоллекцияМодифицирована, КоллекцияМодифицирована; + + // Когда + + Результат = ПроверяемаяКарта.ВычислитьБезусловно("1", "Ключ, Значение -> 2"); + + // Тогда + + Ожидаем.Что(Результат).ИмеетТип("Опциональный"); + Ожидаем.Что(Результат.Пустой()).ЭтоЛожь(); + Ожидаем.Что(Результат.Получить()).Равно(2); + + Ожидаем.Что(Соответствие).ИмеетДлину(3); + Ожидаем.Что(Соответствие.Получить("1")).Равно(2); + + Ожидаем.Что(КоллекцияМодифицирована).ЭтоИстина(); + +КонецПроцедуры + &Тест Процедура ВычислитьЕслиОтсутствуетКлючСуществует() Экспорт @@ -712,6 +768,36 @@ КонецПроцедуры +&Тест +Процедура ВычислитьЕслиОтсутствуетЛямбда() Экспорт + + // Дано + + Соответствие = Соответствие(); + + ПроверяемаяКарта = Новый КартаСоответствие(); + Рефлектор.УстановитьСвойство(ПроверяемаяКарта, "Соответствие", Соответствие); + + КоллекцияМодифицирована = Ложь; + ДобавитьОбработчик ПроверяемаяКарта.КоллекцияМодифицирована, КоллекцияМодифицирована; + + // Когда + + Результат = ПроверяемаяКарта.ВычислитьЕслиОтсутствует("4", "Ключ -> 4"); + + // Тогда + + Ожидаем.Что(Результат).ИмеетТип("Опциональный"); + Ожидаем.Что(Результат.Пустой()).ЭтоЛожь(); + Ожидаем.Что(Результат.Получить()).Равно(4); + + Ожидаем.Что(Соответствие).ИмеетДлину(4); + Ожидаем.Что(Соответствие.Получить("4")).Равно(4); + + Ожидаем.Что(КоллекцияМодифицирована).ЭтоИстина(); + +КонецПроцедуры + &Тест Процедура ВычислитьЕслиПрисутствуетКлючСуществует() Экспорт @@ -806,6 +892,36 @@ КонецПроцедуры +&Тест +Процедура ВычислитьЕслиПрисутствуетЛямбда() Экспорт + + // Дано + + Соответствие = Соответствие(); + + ПроверяемаяКарта = Новый КартаСоответствие(); + Рефлектор.УстановитьСвойство(ПроверяемаяКарта, "Соответствие", Соответствие); + + КоллекцияМодифицирована = Ложь; + ДобавитьОбработчик ПроверяемаяКарта.КоллекцияМодифицирована, КоллекцияМодифицирована; + + // Когда + + Результат = ПроверяемаяКарта.ВычислитьЕслиПрисутствует("1", "Ключ, Значение -> 2"); + + // Тогда + + Ожидаем.Что(Результат).ИмеетТип("Опциональный"); + Ожидаем.Что(Результат.Пустой()).ЭтоЛожь(); + Ожидаем.Что(Результат.Получить()).Равно(2); + + Ожидаем.Что(Соответствие).ИмеетДлину(3); + Ожидаем.Что(Соответствие.Получить("1")).Равно(2); + + Ожидаем.Что(КоллекцияМодифицирована).ЭтоИстина(); + +КонецПроцедуры + &Тест Процедура СлитьКлючСуществует() Экспорт @@ -901,6 +1017,36 @@ КонецПроцедуры +&Тест +Процедура СлитьЛямбда() Экспорт + + // Дано + + Соответствие = Соответствие(); + + ПроверяемаяКарта = Новый КартаСоответствие(); + Рефлектор.УстановитьСвойство(ПроверяемаяКарта, "Соответствие", Соответствие); + + КоллекцияМодифицирована = Ложь; + ДобавитьОбработчик ПроверяемаяКарта.КоллекцияМодифицирована, КоллекцияМодифицирована; + + // Когда + + Результат = ПроверяемаяКарта.Слить("1", 2, "СтароеЗначение, НовоеЗначение -> СтароеЗначение + НовоеЗначение"); + + // Тогда + + Ожидаем.Что(Результат).ИмеетТип("Опциональный"); + Ожидаем.Что(Результат.Пустой()).ЭтоЛожь(); + Ожидаем.Что(Результат.Получить()).Равно(3); + + Ожидаем.Что(Соответствие).ИмеетДлину(3); + Ожидаем.Что(Соответствие.Получить("1")).Равно(3); + + Ожидаем.Что(КоллекцияМодифицирована).ЭтоИстина(); + +КонецПроцедуры + &Тест Процедура ЗаменитьКлючСуществует() Экспорт @@ -1071,6 +1217,33 @@ КонецПроцедуры +&Тест +Процедура ЗаменитьВсеЛямбда() Экспорт + + // Дано + + Соответствие = Соответствие(); + + ПроверяемаяКарта = Новый КартаСоответствие(); + Рефлектор.УстановитьСвойство(ПроверяемаяКарта, "Соответствие", Соответствие); + + КоллекцияМодифицирована = Ложь; + ДобавитьОбработчик ПроверяемаяКарта.КоллекцияМодифицирована, КоллекцияМодифицирована; + + // Когда + + ПроверяемаяКарта.ЗаменитьВсе("Ключ, Значение -> Число(Ключ) + Значение"); + + // Тогда + + Ожидаем.Что(Соответствие).ИмеетДлину(3); + + Ожидаем.Что(Соответствие.Получить("1")).Равно(2); + Ожидаем.Что(Соответствие.Получить("2")).Равно(4); + Ожидаем.Что(Соответствие.Получить("3")).Равно(6); + +КонецПроцедуры + &Тест Процедура УдалитьНеСуществует() Экспорт diff --git "a/tests/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\232\320\260\321\200\321\202\320\260.os" "b/tests/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\232\320\260\321\200\321\202\320\260.os" index 58504db..cec926e 100644 --- "a/tests/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\232\320\260\321\200\321\202\320\260.os" +++ "b/tests/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\232\320\260\321\200\321\202\320\260.os" @@ -1,6 +1,7 @@ #Использовать asserts #Использовать ".." +#Использовать "./ТестМодуль" Перем Рефлектор; // Рефлектор Перем ДляКаждогоВыполнилсяРаз; // Количество раз которое выполнился метод ДляКаждого @@ -68,6 +69,41 @@ КонецПроцедуры +&Тест +Процедура ДляКаждогоЛямбда() Экспорт + + // Дано + + ТестМодуль.ДляКаждогоВыполнилсяРаз = 0; + ТестМодуль.СуммаЭлементов = 0; + + Соответствие = Новый Соответствие; + Соответствие.Вставить(1, Истина); + Соответствие.Вставить(2, Истина); + Соответствие.Вставить(3, Истина); + + МножествоКарта = Новый МножествоКарта; + + Рефлектор.УстановитьСвойство( + МножествоКарта, + "ВнутренняяКарта", + Соответствия.КакКарта(Соответствие) + ); + + // Когда + + МножествоКарта.ДляКаждого( + "Элемент -> ТестМодуль.ДляКаждогоВыполнилсяРаз = ТестМодуль.ДляКаждогоВыполнилсяРаз + 1; + | ТестМодуль.СуммаЭлементов = ТестМодуль.СуммаЭлементов + Элемент;" + ); + + // Тогда + + Ожидаем.Что(ТестМодуль.ДляКаждогоВыполнилсяРаз).Равно(3); + Ожидаем.Что(ТестМодуль.СуммаЭлементов).Равно(6); + +КонецПроцедуры + &Тест Процедура Содержит() Экспорт @@ -661,6 +697,42 @@ КонецПроцедуры +&Тест +Процедура УдалитьЕслиЛямбда() Экспорт + + // Дано + + Соответствие = Новый Соответствие; + Соответствие.Вставить(1, Истина); + Соответствие.Вставить(2, Истина); + Соответствие.Вставить(3, Истина); + + МножествоКарта = Новый МножествоКарта; + + ВнутренняяКарта = Соответствия.КакКарта(Соответствие); + Соответствие = Рефлектор.ПолучитьСвойство(ВнутренняяКарта, "Соответствие"); + + Рефлектор.УстановитьСвойство( + МножествоКарта, + "ВнутренняяКарта", + ВнутренняяКарта + ); + + // Когда + + Результат = МножествоКарта.УдалитьЕсли( + "Элемент -> Элемент >= 2" + ); + + // Тогда + + Ожидаем.Что(Результат).ЭтоИстина(); + + Ожидаем.Что(Соответствие).ИмеетДлину(1); + Ожидаем.Что(Соответствие.Получить(1)).Не_().ЭтоНеопределено(); + +КонецПроцедуры + &Тест Процедура СохранитьВсе() Экспорт diff --git "a/tests/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" "b/tests/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" index e819ff3..541bf5c 100644 --- "a/tests/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" +++ "b/tests/\320\234\320\275\320\276\320\266\320\265\321\201\321\202\320\262\320\276\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265.os" @@ -1,6 +1,7 @@ #Использовать asserts #Использовать ".." +#Использовать "./ТестМодуль" Перем Рефлектор; // Рефлектор Перем ДляКаждогоВыполнилсяРаз; // Количество раз которое выполнился метод ДляКаждого @@ -68,6 +69,41 @@ КонецПроцедуры +&Тест +Процедура ДляКаждогоЛямбда() Экспорт + + // Дано + + ТестМодуль.ДляКаждогоВыполнилсяРаз = 0; + ТестМодуль.СуммаЭлементов = 0; + + Соответствие = Новый Соответствие; + Соответствие.Вставить(1, Истина); + Соответствие.Вставить(2, Истина); + Соответствие.Вставить(3, Истина); + + МножествоСоответствие = Новый МножествоСоответствие; + + Рефлектор.УстановитьСвойство( + МножествоСоответствие, + "Соответствие", + Соответствие + ); + + // Когда + + МножествоСоответствие.ДляКаждого( + "Элемент -> ТестМодуль.ДляКаждогоВыполнилсяРаз = ТестМодуль.ДляКаждогоВыполнилсяРаз + 1; + | ТестМодуль.СуммаЭлементов = ТестМодуль.СуммаЭлементов + Элемент;" + ); + + // Тогда + + Ожидаем.Что(ТестМодуль.ДляКаждогоВыполнилсяРаз).Равно(3); + Ожидаем.Что(ТестМодуль.СуммаЭлементов).Равно(6); + +КонецПроцедуры + &Тест Процедура Содержит() Экспорт @@ -629,6 +665,39 @@ КонецПроцедуры +&Тест +Процедура УдалитьЕслиЛямбда() Экспорт + + // Дано + + Соответствие = Новый Соответствие; + Соответствие.Вставить(1, Истина); + Соответствие.Вставить(2, Истина); + Соответствие.Вставить(3, Истина); + + МножествоСоответствие = Новый МножествоСоответствие; + + Рефлектор.УстановитьСвойство( + МножествоСоответствие, + "Соответствие", + Соответствие + ); + + // Когда + + Результат = МножествоСоответствие.УдалитьЕсли( + "Элемент -> Элемент >= 2" + ); + + // Тогда + + Ожидаем.Что(Результат).ЭтоИстина(); + + Ожидаем.Что(Соответствие).ИмеетДлину(1); + Ожидаем.Что(Соответствие.Получить(1)).Не_().ЭтоНеопределено(); + +КонецПроцедуры + &Тест Процедура СохранитьВсе() Экспорт diff --git "a/tests/\320\241\320\277\320\270\321\201\320\276\320\272\320\234\320\260\321\201\321\201\320\270\320\262.os" "b/tests/\320\241\320\277\320\270\321\201\320\276\320\272\320\234\320\260\321\201\321\201\320\270\320\262.os" index 19683ca..ee676f5 100644 --- "a/tests/\320\241\320\277\320\270\321\201\320\276\320\272\320\234\320\260\321\201\321\201\320\270\320\262.os" +++ "b/tests/\320\241\320\277\320\270\321\201\320\276\320\272\320\234\320\260\321\201\321\201\320\270\320\262.os" @@ -1,6 +1,7 @@ #Использовать asserts #Использовать ".." +#Использовать "./ТестМодуль" Перем Рефлектор; // Рефлектор Перем ДляКаждогоВыполнилсяРаз; // Количество раз которое выполнился метод ДляКаждого @@ -68,6 +69,41 @@ КонецПроцедуры +&Тест +Процедура ДляКаждогоЛямбда() Экспорт + + // Дано + + ТестМодуль.ДляКаждогоВыполнилсяРаз = 0; + ТестМодуль.СуммаЭлементов = 0; + + Массив = Новый Массив; + Массив.Добавить(1); + Массив.Добавить(2); + Массив.Добавить(3); + + СписокМассив = Новый СписокМассив; + + Рефлектор.УстановитьСвойство( + СписокМассив, + "Массив", + Массив + ); + + // Когда + + СписокМассив.ДляКаждого( + "Элемент -> ТестМодуль.ДляКаждогоВыполнилсяРаз = ТестМодуль.ДляКаждогоВыполнилсяРаз + 1; + | ТестМодуль.СуммаЭлементов = ТестМодуль.СуммаЭлементов + Элемент;" + ); + + // Тогда + + Ожидаем.Что(ТестМодуль.ДляКаждогоВыполнилсяРаз).Равно(3); + Ожидаем.Что(ТестМодуль.СуммаЭлементов).Равно(6); + +КонецПроцедуры + &Тест Процедура Содержит() Экспорт @@ -605,6 +641,40 @@ КонецПроцедуры +&Тест +Процедура УдалитьЕслиЛямбда() Экспорт + + // Дано + + Массив = Новый Массив; + Массив.Добавить(1); + Массив.Добавить(2); + Массив.Добавить(3); + + СписокМассив = Новый СписокМассив; + + Рефлектор.УстановитьСвойство( + СписокМассив, + "Массив", + Массив + ); + + // Когда + + Результат = СписокМассив.УдалитьЕсли( + "Элемент -> Элемент >= 2" + ); + + // Тогда + + Ожидаем.Что(Результат).ЭтоИстина(); + + Ожидаем.Что(Массив) + .ИмеетДлину(1) + .Содержит(1); + +КонецПроцедуры + &Тест Процедура СохранитьВсе() Экспорт @@ -1012,6 +1082,40 @@ КонецПроцедуры +&Тест +Процедура ЗаменитьВсеЛямбда() Экспорт + + // Дано + + Массив = Новый Массив; + Массив.Добавить(1); + Массив.Добавить(2); + Массив.Добавить(3); + + СписокМассив = Новый СписокМассив; + + Рефлектор.УстановитьСвойство( + СписокМассив, + "Массив", + Массив + ); + + // Когда + + СписокМассив.ЗаменитьВсе( + "Элемент -> Элемент + 1" + ); + + // Тогда + + Ожидаем.Что(Массив).ИмеетДлину(3); + + Ожидаем.Что(Массив[0]).Равно(2); + Ожидаем.Что(Массив[1]).Равно(3); + Ожидаем.Что(Массив[2]).Равно(4); + +КонецПроцедуры + &Тест Процедура СортироватьПрямойПорядок() Экспорт @@ -1084,6 +1188,49 @@ КонецПроцедуры +&Тест +Процедура СортироватьЛямбда() Экспорт + + // Дано + + Массив = Новый Массив; + Массив.Добавить(2); + Массив.Добавить(3); + Массив.Добавить(1); + Массив.Добавить(2); // BSLLS:DuplicatedInsertionIntoCollection-off + + СписокМассив = Новый СписокМассив; + + Рефлектор.УстановитьСвойство( + СписокМассив, + "Массив", + Массив + ); + + // Когда + + СписокМассив.Сортировать( + "Первый, Второй -> + | Если Первый > Второй Тогда + | Возврат 1; + | ИначеЕсли Второй > Первый Тогда + | Возврат -1; + | Иначе + | Возврат 0; + | КонецЕсли;" + ); + + // Тогда + + Ожидаем.Что(Массив).ИмеетДлину(4); + + Ожидаем.Что(Массив[0]).Равно(1); + Ожидаем.Что(Массив[1]).Равно(2); + Ожидаем.Что(Массив[2]).Равно(2); + Ожидаем.Что(Массив[3]).Равно(3); + +КонецПроцедуры + &Тест Процедура УдалитьПоИндексуСуществует() Экспорт diff --git "a/tests/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214/lib.config" "b/tests/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214/lib.config" new file mode 100644 index 0000000..df93c87 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214/lib.config" @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214.os" "b/tests/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214.os" new file mode 100644 index 0000000..6c3f853 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214/\320\242\320\265\321\201\321\202\320\234\320\276\320\264\321\203\320\273\321\214.os" @@ -0,0 +1,5 @@ +Перем ДляКаждогоВыполнилсяРаз Экспорт; +Перем СуммаЭлементов Экспорт; + +ДляКаждогоВыполнилсяРаз = 0; +СуммаЭлементов = 0; \ No newline at end of file