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));
}
}
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));
}
}