b26104fe95
- add xunit regression project with virtual terminal output - cover text input overlay rendering and component checks
25 lines
909 B
C#
25 lines
909 B
C#
using System.Text.RegularExpressions;
|
|
|
|
namespace TinyTUI.Tests.TestInfrastructure;
|
|
|
|
/// <summary>
|
|
/// 提供 ANSI 感知的测试断言辅助
|
|
/// </summary>
|
|
internal static partial class AnsiAssert
|
|
{
|
|
/// <summary>
|
|
/// 移除常见 ANSI 控制序列后比较可见文本
|
|
/// </summary>
|
|
public static void EqualVisible(string expected, string actual)
|
|
=> Assert.Equal(expected, AnsiRegex().Replace(actual, string.Empty));
|
|
|
|
/// <summary>
|
|
/// 移除常见 ANSI 控制序列后判断可见文本是否包含指定片段
|
|
/// </summary>
|
|
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();
|
|
}
|