mirror of https://github.com/SixLabors/ImageSharp
20 changed files with 198 additions and 2436 deletions
@ -1,175 +1,112 @@ |
|||
//// Copyright (c) Six Labors and contributors.
|
|||
//// Licensed under the Apache License, Version 2.0.
|
|||
|
|||
//using System;
|
|||
//using System.Numerics;
|
|||
//using SixLabors.ImageSharp.PixelFormats;
|
|||
//using Xunit;
|
|||
|
|||
//namespace SixLabors.ImageSharp.Tests.PixelFormats
|
|||
//{
|
|||
// public class Rgb24Tests
|
|||
// {
|
|||
// public static readonly TheoryData<byte, byte, byte> ColorData =
|
|||
// new TheoryData<byte, byte, byte>() { { 1, 2, 3 }, { 4, 5, 6 }, { 0, 255, 42 } };
|
|||
|
|||
// [Theory]
|
|||
// [MemberData(nameof(ColorData))]
|
|||
// public void Constructor(byte r, byte g, byte b)
|
|||
// {
|
|||
// var p = new Rgb24(r, g, b);
|
|||
|
|||
// Assert.Equal(r, p.R);
|
|||
// Assert.Equal(g, p.G);
|
|||
// Assert.Equal(b, p.B);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public unsafe void ByteLayoutIsSequentialRgb()
|
|||
// {
|
|||
// var color = new Rgb24(1, 2, 3);
|
|||
// byte* ptr = (byte*)&color;
|
|||
|
|||
// Assert.Equal(1, ptr[0]);
|
|||
// Assert.Equal(2, ptr[1]);
|
|||
// Assert.Equal(3, ptr[2]);
|
|||
// }
|
|||
|
|||
// [Theory]
|
|||
// [MemberData(nameof(ColorData))]
|
|||
// public void Equals_WhenTrue(byte r, byte g, byte b)
|
|||
// {
|
|||
// var x = new Rgb24(r, g, b);
|
|||
// var y = new Rgb24(r, g, b);
|
|||
|
|||
// Assert.True(x.Equals(y));
|
|||
// Assert.True(x.Equals((object)y));
|
|||
// Assert.Equal(x.GetHashCode(), y.GetHashCode());
|
|||
// }
|
|||
|
|||
// [Theory]
|
|||
// [InlineData(1, 2, 3, 1, 2, 4)]
|
|||
// [InlineData(0, 255, 0, 0, 244, 0)]
|
|||
// [InlineData(1, 255, 0, 0, 255, 0)]
|
|||
// public void Equals_WhenFalse(byte r1, byte g1, byte b1, byte r2, byte g2, byte b2)
|
|||
// {
|
|||
// var a = new Rgb24(r1, g1, b1);
|
|||
// var b = new Rgb24(r2, g2, b2);
|
|||
|
|||
// Assert.False(a.Equals(b));
|
|||
// Assert.False(a.Equals((object)b));
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void PackFromRgba32()
|
|||
// {
|
|||
// var rgb = default(Rgb24);
|
|||
// rgb.PackFromRgba32(new Rgba32(1, 2, 3, 4));
|
|||
|
|||
// Assert.Equal(1, rgb.R);
|
|||
// Assert.Equal(2, rgb.G);
|
|||
// Assert.Equal(3, rgb.B);
|
|||
// }
|
|||
|
|||
// private static Vector4 Vec(byte r, byte g, byte b, byte a = 255) => new Vector4(
|
|||
// r / 255f,
|
|||
// g / 255f,
|
|||
// b / 255f,
|
|||
// a / 255f);
|
|||
|
|||
// [Fact]
|
|||
// public void PackFromVector4()
|
|||
// {
|
|||
// var rgb = default(Rgb24);
|
|||
// rgb.PackFromVector4(Vec(1, 2, 3, 4));
|
|||
|
|||
// Assert.Equal(1, rgb.R);
|
|||
// Assert.Equal(2, rgb.G);
|
|||
// Assert.Equal(3, rgb.B);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void ToVector4()
|
|||
// {
|
|||
// var rgb = new Rgb24(1, 2, 3);
|
|||
|
|||
// Assert.Equal(Vec(1, 2, 3), rgb.ToVector4());
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void ToRgb24()
|
|||
// {
|
|||
// var rgb = new Rgb24(1, 2, 3);
|
|||
// var dest = default(Rgb24);
|
|||
|
|||
// rgb.ToRgb24(ref dest);
|
|||
|
|||
// Assert.Equal(rgb, dest);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void ToRgba32()
|
|||
// {
|
|||
// var rgb = new Rgb24(1, 2, 3);
|
|||
// var rgba = default(Rgba32);
|
|||
|
|||
// rgb.ToRgba32(ref rgba);
|
|||
|
|||
// Assert.Equal(new Rgba32(1, 2, 3, 255), rgba);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void ToBgr24()
|
|||
// {
|
|||
// var rgb = new Rgb24(1, 2, 3);
|
|||
// var bgr = default(Bgr24);
|
|||
|
|||
// rgb.ToBgr24(ref bgr);
|
|||
|
|||
// Assert.Equal(new Bgr24(1, 2, 3), bgr);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void ToBgra32()
|
|||
// {
|
|||
// var rgb = new Rgb24(1, 2, 3);
|
|||
// var bgra = default(Bgra32);
|
|||
|
|||
// rgb.ToBgra32(ref bgra);
|
|||
|
|||
// Assert.Equal(new Bgra32(1, 2, 3, 255), bgra);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void Rgb24_PackFromRgb48_ToRgb48()
|
|||
// {
|
|||
// // arrange
|
|||
// var input = default(Rgb24);
|
|||
// var actual = default(Rgb48);
|
|||
// var expected = new Rgb48(65535, 0, 65535);
|
|||
|
|||
// // act
|
|||
// input.PackFromRgb48(expected);
|
|||
// input.ToRgb48(ref actual);
|
|||
|
|||
// // assert
|
|||
// Assert.Equal(expected, actual);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void Rgb24_PackFromRgba64_ToRgba64()
|
|||
// {
|
|||
// // arrange
|
|||
// var input = default(Rgb24);
|
|||
// var actual = default(Rgba64);
|
|||
// var expected = new Rgba64(65535, 0, 65535, 65535);
|
|||
|
|||
// // act
|
|||
// input.PackFromRgba64(expected);
|
|||
// input.ToRgba64(ref actual);
|
|||
|
|||
// // assert
|
|||
// Assert.Equal(expected, actual);
|
|||
// }
|
|||
// }
|
|||
//}
|
|||
// Copyright (c) Six Labors and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
|
|||
using System.Numerics; |
|||
using SixLabors.ImageSharp.PixelFormats; |
|||
using Xunit; |
|||
|
|||
namespace SixLabors.ImageSharp.Tests.PixelFormats |
|||
{ |
|||
public class Rgb24Tests |
|||
{ |
|||
public static readonly TheoryData<byte, byte, byte> ColorData = |
|||
new TheoryData<byte, byte, byte>() |
|||
{ |
|||
{ 1, 2, 3 }, |
|||
{ 4, 5, 6 }, |
|||
{ 0, 255, 42 } |
|||
}; |
|||
|
|||
[Theory] |
|||
[MemberData(nameof(ColorData))] |
|||
public void Constructor(byte r, byte g, byte b) |
|||
{ |
|||
var p = new Rgb24(r, g, b); |
|||
|
|||
Assert.Equal(r, p.R); |
|||
Assert.Equal(g, p.G); |
|||
Assert.Equal(b, p.B); |
|||
} |
|||
|
|||
[Fact] |
|||
public unsafe void ByteLayoutIsSequentialRgb() |
|||
{ |
|||
var color = new Rgb24(1, 2, 3); |
|||
byte* ptr = (byte*)&color; |
|||
|
|||
Assert.Equal(1, ptr[0]); |
|||
Assert.Equal(2, ptr[1]); |
|||
Assert.Equal(3, ptr[2]); |
|||
} |
|||
|
|||
[Theory] |
|||
[MemberData(nameof(ColorData))] |
|||
public void Equals_WhenTrue(byte r, byte g, byte b) |
|||
{ |
|||
var x = new Rgb24(r, g, b); |
|||
var y = new Rgb24(r, g, b); |
|||
|
|||
Assert.True(x.Equals(y)); |
|||
Assert.True(x.Equals((object)y)); |
|||
Assert.Equal(x.GetHashCode(), y.GetHashCode()); |
|||
} |
|||
|
|||
[Theory] |
|||
[InlineData(1, 2, 3, 1, 2, 4)] |
|||
[InlineData(0, 255, 0, 0, 244, 0)] |
|||
[InlineData(1, 255, 0, 0, 255, 0)] |
|||
public void Equals_WhenFalse(byte r1, byte g1, byte b1, byte r2, byte g2, byte b2) |
|||
{ |
|||
var a = new Rgb24(r1, g1, b1); |
|||
var b = new Rgb24(r2, g2, b2); |
|||
|
|||
Assert.False(a.Equals(b)); |
|||
Assert.False(a.Equals((object)b)); |
|||
} |
|||
|
|||
[Fact] |
|||
public void PackFromRgba32() |
|||
{ |
|||
var rgb = default(Rgb24); |
|||
rgb.PackFromRgba32(new Rgba32(1, 2, 3, 4)); |
|||
|
|||
Assert.Equal(1, rgb.R); |
|||
Assert.Equal(2, rgb.G); |
|||
Assert.Equal(3, rgb.B); |
|||
} |
|||
|
|||
private static Vector4 Vec(byte r, byte g, byte b, byte a = 255) => new Vector4( |
|||
r / 255f, |
|||
g / 255f, |
|||
b / 255f, |
|||
a / 255f); |
|||
|
|||
[Fact] |
|||
public void PackFromVector4() |
|||
{ |
|||
var rgb = default(Rgb24); |
|||
rgb.PackFromVector4(Vec(1, 2, 3, 4)); |
|||
|
|||
Assert.Equal(1, rgb.R); |
|||
Assert.Equal(2, rgb.G); |
|||
Assert.Equal(3, rgb.B); |
|||
} |
|||
|
|||
[Fact] |
|||
public void ToVector4() |
|||
{ |
|||
var rgb = new Rgb24(1, 2, 3); |
|||
|
|||
Assert.Equal(Vec(1, 2, 3), rgb.ToVector4()); |
|||
} |
|||
|
|||
[Fact] |
|||
public void ToRgba32() |
|||
{ |
|||
var rgb = new Rgb24(1, 2, 3); |
|||
var rgba = rgb.ToRgba32(); |
|||
|
|||
Assert.Equal(new Rgba32(1, 2, 3, 255), rgba); |
|||
} |
|||
} |
|||
} |
|||
@ -1,192 +1,61 @@ |
|||
//// Copyright (c) Six Labors and contributors.
|
|||
//// Licensed under the Apache License, Version 2.0.
|
|||
|
|||
//using System.Numerics;
|
|||
//using SixLabors.ImageSharp.PixelFormats;
|
|||
//using Xunit;
|
|||
|
|||
//namespace SixLabors.ImageSharp.Tests.PixelFormats
|
|||
//{
|
|||
// public class Rgb48Tests
|
|||
// {
|
|||
// [Fact]
|
|||
// public void Rgb48_Values()
|
|||
// {
|
|||
// var rgb = new Rgba64(5243, 9830, 19660, 29491);
|
|||
|
|||
// Assert.Equal(5243, rgb.R);
|
|||
// Assert.Equal(9830, rgb.G);
|
|||
// Assert.Equal(19660, rgb.B);
|
|||
// Assert.Equal(29491, rgb.A);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void Rgb48_ToVector4()
|
|||
// {
|
|||
// Assert.Equal(new Vector4(0, 0, 0, 1), new Rgb48(0, 0, 0, 0).ToVector4());
|
|||
// Assert.Equal(Vector4.One, new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue).ToVector4());
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void Rgb48_ToScaledVector4()
|
|||
// {
|
|||
// // arrange
|
|||
// var short2 = new Rgb48(Vector3.One);
|
|||
|
|||
// // act
|
|||
// Vector4 actual = short2.ToScaledVector4();
|
|||
|
|||
// // assert
|
|||
// Assert.Equal(1, actual.X);
|
|||
// Assert.Equal(1, actual.Y);
|
|||
// Assert.Equal(1, actual.Z);
|
|||
// Assert.Equal(1, actual.W);
|
|||
// }
|
|||
|
|||
// [Fact]
|
|||
// public void Rgb48_PackFromScaledVector4()
|
|||
// {
|
|||
// // arrange
|
|||
// var pixel = default(Rgb48);
|
|||
// var short3 = new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue);
|
|||
// var expected = new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue);
|
|||
|
|||
// // act
|
|||
// Vector4 scaled = short3.ToScaledVector4();
|
|||
// pixel.PackFromScaledVector4(scaled);
|
|||
|
|||
// // assert
|
|||
// Assert.Equal(expected, pixel);
|
|||
// }
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgb48_Clamping()
|
|||
// //{
|
|||
// // Assert.Equal(new Vector4(0, 0, 0, 1), new Rgb48(Vector3.One * -1234.0f).ToVector4());
|
|||
// // Assert.Equal(Vector4.One, new Rgb48(Vector3.One * 1234.0f).ToVector4());
|
|||
// //}
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgb48_ToRgb24()
|
|||
// //{
|
|||
// // // arrange
|
|||
// // var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
|||
// // var actual = default(Rgb24);
|
|||
// // var expected = new Rgb24(20, 38, 76);
|
|||
|
|||
// // // act
|
|||
// // rgba48.ToRgb24(ref actual);
|
|||
|
|||
// // // assert
|
|||
// // Assert.Equal(expected, actual);
|
|||
// //}
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgb48_ToRgba32()
|
|||
// //{
|
|||
// // // arrange
|
|||
// // var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
|||
// // var actual = default(Rgba32);
|
|||
// // var expected = new Rgba32(20, 38, 76, 255);
|
|||
|
|||
// // // act
|
|||
// // rgba48.ToRgba32(ref actual);
|
|||
|
|||
// // // assert
|
|||
// // Assert.Equal(expected, actual);
|
|||
// //}
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgb48_ToArgb32()
|
|||
// //{
|
|||
// // // arrange
|
|||
// // var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
|||
// // var actual = default(Argb32);
|
|||
// // var expected = new Argb32(20, 38, 76, 255);
|
|||
|
|||
// // // act
|
|||
// // rgba48.ToArgb32(ref actual);
|
|||
|
|||
// // // assert
|
|||
// // Assert.Equal(expected, actual);
|
|||
// //}
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgba64_ToBgr24()
|
|||
// //{
|
|||
// // // arrange
|
|||
// // var rgb48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
|||
// // var actual = default(Bgr24);
|
|||
// // var expected = new Bgr24(20, 38, 76);
|
|||
|
|||
// // // act
|
|||
// // rgb48.ToBgr24(ref actual);
|
|||
|
|||
// // // assert
|
|||
// // Assert.Equal(expected, actual);
|
|||
// //}
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgb48_ToBgra32()
|
|||
// //{
|
|||
// // // arrange
|
|||
// // var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
|||
// // var actual = default(Bgra32);
|
|||
// // var expected = new Bgra32(20, 38, 76, 255);
|
|||
|
|||
// // // act
|
|||
// // rgba48.ToBgra32(ref actual);
|
|||
|
|||
// // // assert
|
|||
// // Assert.Equal(expected, actual);
|
|||
// //}
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgb48_PackFromRgba32_ToRgba32()
|
|||
// //{
|
|||
// // // arrange
|
|||
// // var rgb48 = default(Rgb48);
|
|||
// // var actual = default(Rgba32);
|
|||
// // var expected = new Rgba32(20, 38, 76, 255);
|
|||
|
|||
// // // act
|
|||
// // rgb48.PackFromRgba32(expected);
|
|||
// // rgb48.ToRgba32(ref actual);
|
|||
|
|||
// // // assert
|
|||
// // Assert.Equal(expected, actual);
|
|||
// //}
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgb48_PackFromRgb48_ToRgb48()
|
|||
// //{
|
|||
// // // arrange
|
|||
// // var input = default(Rgb48);
|
|||
// // var actual = default(Rgb48);
|
|||
// // var expected = new Rgb48(65535, 0, 65535);
|
|||
|
|||
// // // act
|
|||
// // input.PackFromRgb48(expected);
|
|||
// // input.ToRgb48(ref actual);
|
|||
|
|||
// // // assert
|
|||
// // Assert.Equal(expected, actual);
|
|||
// //}
|
|||
|
|||
// //[Fact]
|
|||
// //public void Rgb48_PackFromRgba64_ToRgba64()
|
|||
// //{
|
|||
// // // arrange
|
|||
// // var input = default(Rgb48);
|
|||
// // var actual = default(Rgba64);
|
|||
// // var expected = new Rgba64(65535, 0, 65535, 65535);
|
|||
|
|||
// // // act
|
|||
// // input.PackFromRgba64(expected);
|
|||
// // input.ToRgba64(ref actual);
|
|||
|
|||
// // // assert
|
|||
// // Assert.Equal(expected, actual);
|
|||
// //}
|
|||
// }
|
|||
//}
|
|||
// Copyright (c) Six Labors and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
|
|||
using System.Numerics; |
|||
using SixLabors.ImageSharp.PixelFormats; |
|||
using Xunit; |
|||
|
|||
namespace SixLabors.ImageSharp.Tests.PixelFormats |
|||
{ |
|||
public class Rgb48Tests |
|||
{ |
|||
[Fact] |
|||
public void Rgb48_Values() |
|||
{ |
|||
var rgb = new Rgba64(5243, 9830, 19660, 29491); |
|||
|
|||
Assert.Equal(5243, rgb.R); |
|||
Assert.Equal(9830, rgb.G); |
|||
Assert.Equal(19660, rgb.B); |
|||
Assert.Equal(29491, rgb.A); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Rgb48_ToVector4() |
|||
=> Assert.Equal(Vector4.One, new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue).ToVector4()); |
|||
|
|||
[Fact] |
|||
public void Rgb48_ToScaledVector4() |
|||
=> Assert.Equal(Vector4.One, new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue).ToVector4()); |
|||
|
|||
[Fact] |
|||
public void Rgb48_PackFromScaledVector4() |
|||
{ |
|||
// arrange
|
|||
var pixel = default(Rgb48); |
|||
var short3 = new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue); |
|||
var expected = new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue); |
|||
|
|||
// act
|
|||
Vector4 scaled = short3.ToScaledVector4(); |
|||
pixel.PackFromScaledVector4(scaled); |
|||
|
|||
// assert
|
|||
Assert.Equal(expected, pixel); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Rgb48_ToRgba32() |
|||
{ |
|||
// arrange
|
|||
var rgba48 = new Rgb48(5140, 9766, 19532); |
|||
var expected = new Rgba32(20, 38, 76, 255); |
|||
|
|||
// act
|
|||
var actual = rgba48.ToRgba32(); |
|||
|
|||
// assert
|
|||
Assert.Equal(expected, actual); |
|||
} |
|||
} |
|||
} |
|||
@ -1 +1 @@ |
|||
Subproject commit 1a807d17b4cf5ab50558983d4137614cabe96ce3 |
|||
Subproject commit ee90e5f32218027744b5d40058b587cc1047b76f |
|||
Loading…
Reference in new issue