Skip to content

Commit 65f186b

Browse files
authored
Merge pull request #8 from sfaqer/feature/timSort
Timsort и документация
2 parents cac1e24 + cabb42d commit 65f186b

22 files changed

+624
-85
lines changed

.github/workflows/testing.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@ jobs:
1010
strategy:
1111
fail-fast: false
1212
matrix:
13-
oscript_version: ['dev', 'lts-dev', 'default']
14-
uses: autumn-library/workflows/.github/workflows/test.yml@main
13+
include:
14+
- oscript_version: 'default'
15+
test_engine: '1testrunner'
16+
- oscript_version: 'lts-dev'
17+
test_engine: '1testrunner'
18+
- oscript_version: 'dev'
19+
test_engine: 'oneunit'
20+
uses: autumn-library/workflows/.github/workflows/test.yml@oneunit
1521
with:
1622
oscript_version: ${{ matrix.oscript_version }}
23+
test_engine: ${{ matrix.test_engine }}

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Описание.Имя("collectionos")
2-
.Версия("0.7.2")
2+
.Версия("0.8.1")
33
.Автор("Кирилл Черненко")
44
.АдресАвтора("https://github.com/sfaqer")
55
.Описание("Фреймворк коллекций для OneScript")

src/Классы/Коллекции/Списки/СписокМассив.os

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -292,55 +292,7 @@
292292
Возврат;
293293
КонецЕсли;
294294

295-
Если ТипЗнч(СравнениеЗначений) = Тип("Строка") Тогда
296-
297-
СравнениеЗначений = Лямбда.Выражение(СравнениеЗначений)
298-
.Интерфейс(ФункциональныеИнтерфейсы.БиФункция());
299-
300-
Если ТипЗнч(Контекст) = Тип("Структура")
301-
Или ТипЗнч(Контекст) = Тип("ФиксированнаяСтруктура") Тогда
302-
СравнениеЗначений.Контекст(Контекст);
303-
Иначе
304-
СравнениеЗначений.ЗахватитьОбъект(Контекст);
305-
КонецЕсли;
306-
307-
СравнениеЗначений =СравнениеЗначений.ВДействие();
308-
309-
КонецЕсли;
310-
311-
Для Индекс = 0 По ВГраница() Цикл
312-
313-
Флаг = Ложь;
314-
Счетчик = ВГраница();
315-
316-
Пока Счетчик > Индекс Цикл
317-
318-
Элемент = Получить(Счетчик - 1);
319-
СледующийЭлемент = Получить(Счетчик);
320-
321-
РезультатСравнения = СравнениеЗначений.Выполнить(
322-
Элемент,
323-
СледующийЭлемент
324-
);
325-
326-
Если РезультатСравнения > 0 Тогда
327-
328-
Установить(Счетчик - 1, СледующийЭлемент);
329-
Установить(Счетчик, Элемент);
330-
331-
Флаг = Истина;
332-
333-
КонецЕсли;
334-
335-
Счетчик = Счетчик - 1;
336-
337-
КонецЦикла;
338-
339-
Если НЕ Флаг Тогда
340-
Прервать;
341-
КонецЕсли;
342-
343-
КонецЦикла;
295+
Массивы.Сортировать(Массив, СравнениеЗначений, Контекст);
344296

345297
КонецПроцедуры
346298

src/Модули/Карты.os

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,31 @@
1-
Функция ИзЭлементов(
1+
// Создает фиксированную карту из переданных пар ключ-значение
2+
//
3+
// Параметры:
4+
// Ключ1 - Произвольный - Первый ключ для создания карты
5+
// Значение1 - Произвольный - Значение для первого ключа
6+
// Ключ2 - Произвольный - Второй ключ для создания карты
7+
// Значение2 - Произвольный - Значение для второго ключа
8+
// Ключ3 - Произвольный - Третий ключ для создания карты
9+
// Значение3 - Произвольный - Значение для третьего ключа
10+
// Ключ4 - Произвольный - Четвертый ключ для создания карты
11+
// Значение4 - Произвольный - Значение для четвертого ключа
12+
// Ключ5 - Произвольный - Пятый ключ для создания карты
13+
// Значение5 - Произвольный - Значение для пятого ключа
14+
// Ключ6 - Произвольный - Шестой ключ для создания карты
15+
// Значение6 - Произвольный - Значение для шестого ключа
16+
// Ключ7 - Произвольный - Седьмой ключ для создания карты
17+
// Значение7 - Произвольный - Значение для седьмого ключа
18+
// Ключ8 - Произвольный - Восьмой ключ для создания карты
19+
// Значение8 - Произвольный - Значение для восьмого ключа
20+
// Ключ9 - Произвольный - Девятый ключ для создания карты
21+
// Значение9 - Произвольный - Значение для девятого ключа
22+
// Ключ10 - Произвольный - Десятый ключ для создания карты
23+
// Значение10 - Произвольный - Значение для десятого ключа
24+
//
25+
// Возвращаемое значение:
26+
// ФиксированнаяКарта - Карта с переданными ключами и значениями
27+
//
28+
Функция ИзЭлементов(
229
// BSLLS:NumberOfParams-off
330
// BSLLS:NumberOfOptionalParams-off
431
// BSLLS:UnusedParameters-off
@@ -31,16 +58,24 @@
3158

3259
КонецФункции
3360

61+
// Создает копию переданной карты
62+
//
63+
// Параметры:
64+
// Карта - Карта - Карта, которую необходимо скопировать
65+
//
66+
// Возвращаемое значение:
67+
// ФиксированнаяКарта - Копия исходной карты
68+
//
3469
Функция Скопировать(Карта) Экспорт
35-
70+
3671
ФиксированныеКарты = Новый Массив;
3772
ФиксированныеКарты.Добавить(Тип("ФиксированнаяКарта"));
3873

3974
Если ФиксированныеКарты.Найти(ТипЗнч(Карта)) <> Неопределено Тогда
4075
Возврат Карта;
4176
КонецЕсли;
4277

43-
Результат = Новый(ТипЗнч(Карта));
78+
Результат = Новый КартаСоответствие;
4479

4580
Результат.ВставитьВсе(Карта);
4681

0 commit comments

Comments
 (0)