XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
UTF-8
using XFESystem.Console;

namespace XFESystem.Console.Tests;

public sealed class TerminalColorTests
{
    [Theory]
    [InlineData(ConsoleColor.Black, 0)] [InlineData(ConsoleColor.DarkRed, 1)]
    [InlineData(ConsoleColor.DarkGreen, 2)] [InlineData(ConsoleColor.DarkYellow, 3)]
    [InlineData(ConsoleColor.DarkBlue, 4)] [InlineData(ConsoleColor.DarkMagenta, 5)]
    [InlineData(ConsoleColor.DarkCyan, 6)] [InlineData(ConsoleColor.Gray, 7)]
    [InlineData(ConsoleColor.DarkGray, 8)] [InlineData(ConsoleColor.Red, 9)]
    [InlineData(ConsoleColor.Green, 10)] [InlineData(ConsoleColor.Yellow, 11)]
    [InlineData(ConsoleColor.Blue, 12)] [InlineData(ConsoleColor.Magenta, 13)]
    [InlineData(ConsoleColor.Cyan, 14)] [InlineData(ConsoleColor.White, 15)]
    public void ConsoleColorsAreNotMistakenForAnsiPaletteIndices(ConsoleColor color, byte index)
    {
        Assert.Equal(TerminalColor.FromIndexed(index), TerminalColor.FromConsoleColor(color));
    }

    [Theory]
    [InlineData(16, "#000000")] [InlineData(21, "#0000FF")]
    [InlineData(46, "#00FF00")] [InlineData(196, "#FF0000")]
    [InlineData(202, "#FF5F00")] [InlineData(231, "#FFFFFF")]
    [InlineData(232, "#080808")] [InlineData(236, "#303030")]
    [InlineData(255, "#EEEEEE")]
    public void IndexedColorCubeAndGrayscaleMatchXterm(byte index, string hex)
    {
        Assert.Equal(hex, TerminalColor.FromIndexed(index).Hex);
    }

    [Fact]
    public void InvalidConsoleColorIsRejected()
    {
        Assert.Throws<ArgumentOutOfRangeException>(() => TerminalColor.FromConsoleColor((ConsoleColor)16));
    }
}