Skip to content

Commit 458a559

Browse files
committed
fix EvilBeaver#1573: добавлен корректный хеш для поиска в таблице по индексу +тест
1 parent da9a017 commit 458a559

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

src/OneScript.Core/Values/BslDateValue.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public override bool Equals(BslValue other)
4444

4545
return base.Equals(other);
4646
}
47+
48+
public override int GetHashCode() => _value.GetHashCode();
4749

4850
public override TypeDescriptor SystemType => BasicTypes.Date;
4951

src/OneScript.Core/Values/BslStringValue.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ public override bool Equals(BslValue other)
4545
return other is BslStringValue sv ? _value.Equals(sv._value) : base.Equals(other);
4646
}
4747

48+
public override int GetHashCode() => _value.GetHashCode();
49+
4850
public override int CompareTo(BslValue other)
4951
{
5052
if (ReferenceEquals(null, other))

tests/ValueTableIndex.os

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
ВсеТесты.Добавить("ТестДолжен_ПоведениеИндексовПриУдаленииКолонок");
2626
ВсеТесты.Добавить("ТестДолжен_ПоведениеИндексовПриИзмененииЗначенийИндексированныхПолей");
2727
ВсеТесты.Добавить("ТестДолжен_ПроверитьВыбросИсключений");
28+
ВсеТесты.Добавить("ТестДолжен_ПроверитьПоискПоИндексированнойКолонкеСЗаданнымТипом");
2829

2930
Возврат ВсеТесты;
3031

@@ -243,3 +244,22 @@
243244
юТест.ПроверитьРавенство(ПоискПоИндексу[0][ИндексированноеПоле], ИскомоеЗначение, Пояснение);
244245

245246
КонецПроцедуры
247+
248+
// к issue #1573
249+
Процедура ТестДолжен_ПроверитьПоискПоИндексированнойКолонкеСЗаданнымТипом() Экспорт
250+
251+
Т = Новый ТаблицаЗначений;
252+
Т.Колонки.Добавить("К1",Новый ОписаниеТипов("Строка"));
253+
Т.Индексы.Добавить("К1");
254+
255+
Т.Добавить().К1 = "Стр1";
256+
Т.Добавить().К1 = "Стр2";
257+
Т.Добавить().К1 = "Стр3";
258+
259+
260+
СтруктураПоиска = Новый Структура("К1", "Стр2");
261+
НайденныеСтроки = Т.НайтиСтроки(СтруктураПоиска);
262+
юТест.ПроверитьРавенство(НайденныеСтроки.Количество(), 1);
263+
юТест.ПроверитьРавенство(НайденныеСтроки[0].К1, "Стр2");
264+
265+
КонецПроцедуры

0 commit comments

Comments
 (0)