Сгруппировать тестовые проекты по областям

Deal.Tests.Unit, Deal.Telegram.Tests, Deal.Ai.Tests, Deal.Ml.Tests
разложены по областям (Modules/<X>, Api, Infrastructure, Contracts,
Grpc, ...), общие хелперы -> Support; namespace = папка, using
между областями добавлены итеративно по ошибкам сборки.
This commit is contained in:
Rustam Khalimov
2026-09-11 13:28:26 +03:00
parent e3a2692507
commit 5bfa92a4ac
212 changed files with 1982 additions and 1686 deletions
@@ -0,0 +1,58 @@
using Deal.Telegram.Dialogs;
using Xunit;
using Deal.Telegram.Tests.Support;
namespace Deal.Telegram.Tests.Telegram;
/// <summary>
/// Unit-тесты цвета диалога (план Task 10: DialogHue — 1:1 dialog_hue прототипа L876–880 и палитры
/// constants.py DIALOG_HUES). Ожидаемые значения посчитаны python-прототипом (те же алгоритм/палитра) —
/// паритет цветов источников между реализациями.
/// </summary>
public sealed class DialogHueTests
{
/// <summary>
/// Цвет по паре (id, имя) совпадает с python-прототипом.
/// </summary>
[Theory]
[InlineData("-1001234567890", "IT Канал", "#a78bfa")]
[InlineData("-123456", "Уютный чат", "#34d399")]
[InlineData("+79990001122", "Иван Петров", "#fb7185")]
[InlineData("-100999", "", "#34d399")]
public void Compute_MatchesPythonPrototype(
string dialogId,
string name,
string expectedHue)
{
Assert.Equal(expectedHue, DialogHue.Compute(dialogId, name));
}
/// <summary>
/// Цвет детерминирован: повторный вызов возвращает то же значение.
/// </summary>
[Fact]
public void Compute_IsDeterministic()
{
string first = DialogHue.Compute("-1001234567890", "IT Канал");
Assert.Equal(first, DialogHue.Compute("-1001234567890", "IT Канал"));
}
/// <summary>
/// Разные источники распределяются по палитре (цвета коллизируют не все вместе).
/// </summary>
[Fact]
public void Compute_DifferentSources_DistributeAcrossPalette()
{
var hues = new[]
{
DialogHue.Compute("-100111", "Канал А"),
DialogHue.Compute("-100222", "Канал Б"),
DialogHue.Compute("+79990001122", "Иван Петров"),
DialogHue.Compute("-5", "Работа"),
};
// Ожидание посчитано python-прототипом: 4 источника дают 3 разных цвета палитры.
Assert.Equal(3, hues.Distinct().Count());
}
}