From ee2df24f22afdceff20cbd0ac00e08bf409ee92e Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Mon, 1 Dec 2025 23:32:50 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BA=20PR=20#1584:=20=D1=81=D0=BE=D1=80=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BA=20=D1=80=D0=B0=D0=B7=D0=BD=D1=8B=D1=85=20=D0=B0=D0=BB?= =?UTF-8?q?=D1=84=D0=B0=D0=B2=D0=B8=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/BslStringValue.cs | 2 +- tests/valuetable.os | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/OneScript.Core/Values/BslStringValue.cs b/src/OneScript.Core/Values/BslStringValue.cs index ab2d11078..fccdec229 100644 --- a/src/OneScript.Core/Values/BslStringValue.cs +++ b/src/OneScript.Core/Values/BslStringValue.cs @@ -53,7 +53,7 @@ public override int CompareTo(BslValue other) return 0; if (other is BslStringValue s) - return String.Compare(_value, s._value, StringComparison.CurrentCulture); + return String.Compare(_value, s._value, StringComparison.InvariantCulture); return base.CompareTo(other); } diff --git a/tests/valuetable.os b/tests/valuetable.os index fed94d134..d02bb4653 100644 --- a/tests/valuetable.os +++ b/tests/valuetable.os @@ -47,6 +47,7 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Булевых"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Дат"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Строк"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_СтрокРазныхАлфавитов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуНеупорядочиваемыхТипов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуРазныхТипов"); @@ -932,3 +933,21 @@ КонецПроцедуры +Процедура ТестДолжен_ПроверитьСортировку_СтрокРазныхАлфавитов() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + ТЗ.Добавить().Тест = "Е"; // cyrillic + ТЗ.Добавить().Тест = "E"; // latin + ТЗ.Добавить().Тест = "Ε"; // greek + ТЗ.Добавить().Тест = "∃"; // math + ТЗ.Добавить().Тест = "E"; // full-width + + ТЗ.Сортировать("Тест"); + + юТест.ПроверитьРавенство(КодСимвола(ТЗ[0].Тест,1), 8707, "math"); + юТест.ПроверитьРавенство(КодСимвола(ТЗ[1].Тест,1), 69, "latin"); + юТест.ПроверитьРавенство(КодСимвола(ТЗ[2].Тест,1), 65317, "full-width"); + юТест.ПроверитьРавенство(КодСимвола(ТЗ[3].Тест,1), 917, "greek"); + юТест.ПроверитьРавенство(КодСимвола(ТЗ[4].Тест,1), 1045, "cyrillic"); +КонецПроцедуры