Сгруппировать тестовые проекты по областям
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:
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user