using Deal.Telegram.Dialogs; namespace Deal.Telegram.Tests.Telegram; /// /// Unit-тесты цвета диалога. /// public sealed class DialogHueTests { /// /// Цвет по паре /// [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)); } /// /// Цвет детерминирован /// [Fact] public void Compute_IsDeterministic() { string first = DialogHue.Compute("-1001234567890", "IT Канал"); Assert.Equal(first, DialogHue.Compute("-1001234567890", "IT Канал")); } /// /// Разные источники распределяются по палитре /// [Fact] public void Compute_DifferentSources_DistributeAcrossPalette() { string[] hues = new[] { DialogHue.Compute("-100111", "Канал А"), DialogHue.Compute("-100222", "Канал Б"), DialogHue.Compute("+79990001122", "Иван Петров"), DialogHue.Compute("-5", "Работа"), }; Assert.Equal(3, hues.Distinct().Count()); } }