forked from Manuel/meeting-assistant
feat(macos): enable meeting integrations
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
namespace MeetingAssistant.Tests;
|
||||
|
||||
internal static class PngTestFixture
|
||||
{
|
||||
private const string Solid2X2 =
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAAqADAAQAAAABAAAAAgAAAADO0J6QAAAAEklEQVQIHWP8DwQMQMAEIkAAAD34BACALvQ5AAAAAElFTkSuQmCC";
|
||||
private const string Solid4X4 =
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAABKADAAQAAAABAAAABAAAAADmpNw4AAAAFUlEQVQIHWP8DwQMSIAJiQ1mEhYAAAZdBAQjjGwcAAAAAElFTkSuQmCC";
|
||||
private const string Solid8X6 =
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAGCAYAAAD+Bd/7AAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAACKADAAQAAAABAAAABgAAAAAJfOcJAAAAFklEQVQIHWP8DwQMeAATHjmw1GBQAAAQiQQIVmhjoQAAAABJRU5ErkJggg==";
|
||||
|
||||
public static byte[] Solid(int width, int height)
|
||||
{
|
||||
var encoded = (width, height) switch
|
||||
{
|
||||
(2, 2) => Solid2X2,
|
||||
(4, 4) => Solid4X4,
|
||||
(8, 6) => Solid8X6,
|
||||
_ => throw new ArgumentOutOfRangeException(
|
||||
nameof(width),
|
||||
$"No deterministic PNG fixture exists for {width}x{height}.")
|
||||
};
|
||||
return Convert.FromBase64String(encoded);
|
||||
}
|
||||
|
||||
public static (int Width, int Height) ReadDimensions(byte[] png)
|
||||
{
|
||||
if (!png.AsSpan(0, 8).SequenceEqual(
|
||||
new byte[] { 137, 80, 78, 71, 13, 10, 26, 10 }))
|
||||
{
|
||||
throw new InvalidDataException("The fixture is not a PNG.");
|
||||
}
|
||||
|
||||
return (
|
||||
System.Buffers.Binary.BinaryPrimitives.ReadInt32BigEndian(png.AsSpan(16, 4)),
|
||||
System.Buffers.Binary.BinaryPrimitives.ReadInt32BigEndian(png.AsSpan(20, 4)));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user