Skip to content

Commit ee2df24

Browse files
committed
к PR EvilBeaver#1584: сортировка строк разных алфавитов
1 parent 45fa39d commit ee2df24

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/OneScript.Core/Values/BslStringValue.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public override int CompareTo(BslValue other)
5353
return 0;
5454

5555
if (other is BslStringValue s)
56-
return String.Compare(_value, s._value, StringComparison.CurrentCulture);
56+
return String.Compare(_value, s._value, StringComparison.InvariantCulture);
5757

5858
return base.CompareTo(other);
5959
}

tests/valuetable.os

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Булевых");
4848
ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Дат");
4949
ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Строк");
50+
ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_СтрокРазныхАлфавитов");
5051

5152
ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуНеупорядочиваемыхТипов");
5253
ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуРазныхТипов");
@@ -932,3 +933,21 @@
932933

933934
КонецПроцедуры
934935

936+
Процедура ТестДолжен_ПроверитьСортировку_СтрокРазныхАлфавитов() Экспорт
937+
ТЗ = Новый ТаблицаЗначений();
938+
ТЗ.Колонки.Добавить("Тест");
939+
940+
ТЗ.Добавить().Тест = "Е"; // cyrillic
941+
ТЗ.Добавить().Тест = "E"; // latin
942+
ТЗ.Добавить().Тест = "Ε"; // greek
943+
ТЗ.Добавить().Тест = "∃"; // math
944+
ТЗ.Добавить().Тест = "E"; // full-width
945+
946+
ТЗ.Сортировать("Тест");
947+
948+
юТест.ПроверитьРавенство(КодСимвола(ТЗ[0].Тест,1), 8707, "math");
949+
юТест.ПроверитьРавенство(КодСимвола(ТЗ[1].Тест,1), 69, "latin");
950+
юТест.ПроверитьРавенство(КодСимвола(ТЗ[2].Тест,1), 65317, "full-width");
951+
юТест.ПроверитьРавенство(КодСимвола(ТЗ[3].Тест,1), 917, "greek");
952+
юТест.ПроверитьРавенство(КодСимвола(ТЗ[4].Тест,1), 1045, "cyrillic");
953+
КонецПроцедуры

0 commit comments

Comments
 (0)