using System.Text.RegularExpressions; namespace TinyTUI.Tests.TestInfrastructure; /// /// 提供 ANSI 感知的测试断言辅助 /// internal static partial class AnsiAssert { /// /// 移除常见 ANSI 控制序列后比较可见文本 /// public static void EqualVisible(string expected, string actual) => Assert.Equal(expected, AnsiRegex().Replace(actual, string.Empty)); /// /// 移除常见 ANSI 控制序列后判断可见文本是否包含指定片段 /// public static void ContainsVisible(string expected, string actual) => Assert.Contains(expected, AnsiRegex().Replace(actual, string.Empty), StringComparison.Ordinal); [GeneratedRegex(@"\x1B(?:\[[0-?]*[ -/]*[@-~]|\][^\a]*(?:\a|\x1B\\)|_[^\a]*(?:\a|\x1B\\)|P[^\a]*(?:\a|\x1B\\))")] private static partial Regex AnsiRegex(); }