Browse Source

Merge pull request #903 from brianpopow/feature/incTestCovPixelFormats

Add additional pixel conversion tests
pull/905/head
Anton Firsov 7 years ago
committed by GitHub
parent
commit
89f3de402c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/ImageSharp/PixelFormats/PixelImplementations/Byte4.cs
  2. 62
      tests/ImageSharp.Tests/PixelFormats/Argb32Tests.cs
  3. 18
      tests/ImageSharp.Tests/PixelFormats/Bgr24Tests.cs
  4. 164
      tests/ImageSharp.Tests/PixelFormats/Bgr565Tests.cs
  5. 25
      tests/ImageSharp.Tests/PixelFormats/Bgra32Tests.cs
  6. 160
      tests/ImageSharp.Tests/PixelFormats/Bgra4444Tests.cs
  7. 75
      tests/ImageSharp.Tests/PixelFormats/Bgra5551Tests.cs
  8. 162
      tests/ImageSharp.Tests/PixelFormats/Byte4Tests.cs
  9. 18
      tests/ImageSharp.Tests/PixelFormats/Gray16Tests.cs
  10. 20
      tests/ImageSharp.Tests/PixelFormats/Gray8Tests.cs
  11. 156
      tests/ImageSharp.Tests/PixelFormats/NormalizedByte4Tests.cs
  12. 156
      tests/ImageSharp.Tests/PixelFormats/NormalizedShort4Tests.cs
  13. 146
      tests/ImageSharp.Tests/PixelFormats/Rgba1010102Tests.cs
  14. 42
      tests/ImageSharp.Tests/PixelFormats/RgbaVectorTests.cs

2
src/ImageSharp/PixelFormats/PixelImplementations/Byte4.cs

@ -149,7 +149,7 @@ namespace SixLabors.ImageSharp.PixelFormats
public override string ToString() public override string ToString()
{ {
var vector = this.ToVector4(); var vector = this.ToVector4();
return FormattableString.Invariant($"Bgra5551({vector.X:#0.##}, {vector.Y:#0.##}, {vector.Z:#0.##}, {vector.W:#0.##})"); return FormattableString.Invariant($"Byte4({vector.X:#0.##}, {vector.Y:#0.##}, {vector.Z:#0.##}, {vector.W:#0.##})");
} }
/// <summary> /// <summary>

62
tests/ImageSharp.Tests/PixelFormats/Argb32Tests.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using Xunit; using Xunit;
@ -9,6 +10,67 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Argb32Tests public class Argb32Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new Argb32(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Argb32(new Vector4(0.0f));
var color3 = new Argb32(new Vector4(1.0f, 0.0f, 1.0f, 1.0f));
var color4 = new Argb32(1.0f, 0.0f, 1.0f, 1.0f);
Assert.Equal(color1, color2);
Assert.Equal(color3, color4);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new Argb32(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Argb32(new Vector4(1.0f));
var color3 = new Argb32(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
var color4 = new Argb32(1.0f, 1.0f, 0.0f, 1.0f);
Assert.NotEqual(color1, color2);
Assert.NotEqual(color3, color4);
}
/// <summary>
/// Tests whether the color constructor correctly assign properties.
/// </summary>
[Fact]
public void ConstructorAssignsProperties()
{
var color1 = new Argb32(1, .1f, .133f, .864f);
Assert.Equal(255, color1.R);
Assert.Equal((byte)Math.Round(.1f * 255), color1.G);
Assert.Equal((byte)Math.Round(.133f * 255), color1.B);
Assert.Equal((byte)Math.Round(.864f * 255), color1.A);
var color2 = new Argb32(1, .1f, .133f);
Assert.Equal(255, color2.R);
Assert.Equal(Math.Round(.1f * 255), color2.G);
Assert.Equal(Math.Round(.133f * 255), color2.B);
Assert.Equal(255, color2.A);
var color4 = new Argb32(new Vector3(1, .1f, .133f));
Assert.Equal(255, color4.R);
Assert.Equal(Math.Round(.1f * 255), color4.G);
Assert.Equal(Math.Round(.133f * 255), color4.B);
Assert.Equal(255, color4.A);
var color5 = new Argb32(new Vector4(1, .1f, .133f, .5f));
Assert.Equal(255, color5.R);
Assert.Equal(Math.Round(.1f * 255), color5.G);
Assert.Equal(Math.Round(.133f * 255), color5.B);
Assert.Equal(Math.Round(.5f * 255), color5.A);
}
[Fact] [Fact]
public void Argb32_PackedValue() public void Argb32_PackedValue()
{ {

18
tests/ImageSharp.Tests/PixelFormats/Bgr24Tests.cs

@ -9,6 +9,24 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Bgr24Tests public class Bgr24Tests
{ {
[Fact]
public void AreEqual()
{
var color1 = new Bgr24(byte.MaxValue, 0, byte.MaxValue);
var color2 = new Bgr24(byte.MaxValue, 0, byte.MaxValue);
Assert.Equal(color1, color2);
}
[Fact]
public void AreNotEqual()
{
var color1 = new Bgr24(byte.MaxValue, 0, 0);
var color2 = new Bgr24(byte.MaxValue, 0, byte.MaxValue);
Assert.NotEqual(color1, color2);
}
public static readonly TheoryData<byte, byte, byte> ColorData = public static readonly TheoryData<byte, byte, byte> ColorData =
new TheoryData<byte, byte, byte>() { { 1, 2, 3 }, { 4, 5, 6 }, { 0, 255, 42 } }; new TheoryData<byte, byte, byte>() { { 1, 2, 3 }, { 4, 5, 6 }, { 0, 255, 42 } };

164
tests/ImageSharp.Tests/PixelFormats/Bgr565Tests.cs

@ -9,6 +9,36 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Bgr565Tests public class Bgr565Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new Bgr565(0.0f, 0.0f, 0.0f);
var color2 = new Bgr565(new Vector3(0.0f));
var color3 = new Bgr565(new Vector3(1.0f, 0.0f, 1.0f));
var color4 = new Bgr565(1.0f, 0.0f, 1.0f);
Assert.Equal(color1, color2);
Assert.Equal(color3, color4);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new Bgr565(0.0f, 0.0f, 0.0f);
var color2 = new Bgr565(new Vector3(1.0f));
var color3 = new Bgr565(new Vector3(1.0f, 0.0f, 0.0f));
var color4 = new Bgr565(1.0f, 1.0f, 0.0f);
Assert.NotEqual(color1, color2);
Assert.NotEqual(color3, color4);
}
[Fact] [Fact]
public void Bgr565_PackedValue() public void Bgr565_PackedValue()
{ {
@ -77,6 +107,140 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(expected, bgr.PackedValue); Assert.Equal(expected, bgr.PackedValue);
} }
[Fact]
public void Bgr565_FromArgb32()
{
// arrange
var bgr1 = default(Bgr565);
var bgr2 = default(Bgr565);
ushort expected1 = ushort.MaxValue;
ushort expected2 = ushort.MaxValue;
// act
bgr1.FromArgb32(new Argb32(1.0f, 1.0f, 1.0f, 1.0f));
bgr2.FromArgb32(new Argb32(1.0f, 1.0f, 1.0f, 0.0f));
// assert
Assert.Equal(expected1, bgr1.PackedValue);
Assert.Equal(expected2, bgr2.PackedValue);
}
[Fact]
public void Bgr565_FromRgba32()
{
// arrange
var bgr1 = default(Bgr565);
var bgr2 = default(Bgr565);
ushort expected1 = ushort.MaxValue;
ushort expected2 = ushort.MaxValue;
// act
bgr1.FromRgba32(new Rgba32(1.0f, 1.0f, 1.0f, 1.0f));
bgr2.FromRgba32(new Rgba32(1.0f, 1.0f, 1.0f, 0.0f));
// assert
Assert.Equal(expected1, bgr1.PackedValue);
Assert.Equal(expected2, bgr2.PackedValue);
}
[Fact]
public void Bgr565_ToRgba32()
{
// arrange
var bgra = new Bgr565(Vector3.One);
var expected = new Rgba32(Vector4.One);
var actual = default(Rgba32);
// act
bgra.ToRgba32(ref actual);
Assert.Equal(expected, actual);
}
[Fact]
public void Bgra565_FromRgb48()
{
// arrange
var bgr = default(Bgr565);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgr.FromRgb48(new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgr.PackedValue);
}
[Fact]
public void Bgra565_FromRgba64()
{
// arrange
var bgr = default(Bgr565);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgr.FromRgba64(new Rgba64(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgr.PackedValue);
}
[Fact]
public void Bgr565_FromBgr24()
{
// arrange
var bgr = default(Bgr565);
ushort expected = ushort.MaxValue;
// act
bgr.FromBgr24(new Bgr24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expected, bgr.PackedValue);
}
[Fact]
public void Bgr565_FromRgb24()
{
// arrange
var bgr = default(Bgr565);
ushort expected = ushort.MaxValue;
// act
bgr.FromRgb24(new Rgb24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expected, bgr.PackedValue);
}
[Fact]
public void Bgr565_FromGrey8()
{
// arrange
var bgr = default(Bgr565);
ushort expected = ushort.MaxValue;
// act
bgr.FromGray8(new Gray8(byte.MaxValue));
// assert
Assert.Equal(expected, bgr.PackedValue);
}
[Fact]
public void Bgr565_FromGrey16()
{
// arrange
var bgr = default(Bgr565);
ushort expected = ushort.MaxValue;
// act
bgr.FromGray16(new Gray16(ushort.MaxValue));
// assert
Assert.Equal(expected, bgr.PackedValue);
}
[Fact] [Fact]
public void Bgr565_Clamping() public void Bgr565_Clamping()
{ {

25
tests/ImageSharp.Tests/PixelFormats/Bgra32Tests.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using Xunit; using Xunit;
@ -9,6 +10,30 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Bgra32Tests public class Bgra32Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new Bgra32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
var color2 = new Bgra32(byte.MaxValue, byte.MaxValue, byte.MaxValue);
Assert.Equal(color1, color2);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new Bgra32(0, 0, byte.MaxValue, byte.MaxValue);
var color2 = new Bgra32(byte.MaxValue, byte.MaxValue, byte.MaxValue);
Assert.NotEqual(color1, color2);
}
public static readonly TheoryData<byte, byte, byte, byte> ColorData = public static readonly TheoryData<byte, byte, byte, byte> ColorData =
new TheoryData<byte, byte, byte, byte>() new TheoryData<byte, byte, byte, byte>()
{ {

160
tests/ImageSharp.Tests/PixelFormats/Bgra4444Tests.cs

@ -9,6 +9,36 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Bgra4444Tests public class Bgra4444Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new Bgra4444(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Bgra4444(new Vector4(0.0f));
var color3 = new Bgra4444(new Vector4(1.0f, 0.0f, 1.0f, 1.0f));
var color4 = new Bgra4444(1.0f, 0.0f, 1.0f, 1.0f);
Assert.Equal(color1, color2);
Assert.Equal(color3, color4);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new Bgra4444(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Bgra4444(new Vector4(1.0f));
var color3 = new Bgra4444(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
var color4 = new Bgra4444(1.0f, 1.0f, 0.0f, 1.0f);
Assert.NotEqual(color1, color2);
Assert.NotEqual(color3, color4);
}
[Fact] [Fact]
public void Bgra4444_PackedValue() public void Bgra4444_PackedValue()
{ {
@ -48,6 +78,20 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(1, actual.W); Assert.Equal(1, actual.W);
} }
[Fact]
public void Bgra4444_ToRgba32()
{
// arrange
var bgra = new Bgra4444(Vector4.One);
var expected = new Rgba32(Vector4.One);
var actual = default(Rgba32);
// act
bgra.ToRgba32(ref actual);
Assert.Equal(expected, actual);
}
[Fact] [Fact]
public void Bgra4444_FromScaledVector4() public void Bgra4444_FromScaledVector4()
{ {
@ -78,6 +122,122 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(expected, bgra.PackedValue); Assert.Equal(expected, bgra.PackedValue);
} }
[Fact]
public void Bgra4444_FromArgb32()
{
// arrange
var bgra = default(Bgra4444);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgra.FromArgb32(new Argb32(255, 255, 255, 255));
// assert
Assert.Equal(expectedPackedValue, bgra.PackedValue);
}
[Fact]
public void Bgra4444_FromRgba32()
{
// arrange
var bgra1 = default(Bgra4444);
var bgra2 = default(Bgra4444);
ushort expectedPackedValue1 = ushort.MaxValue;
ushort expectedPackedValue2 = 0xFF0F;
// act
bgra1.FromRgba32(new Rgba32(255, 255, 255, 255));
bgra2.FromRgba32(new Rgba32(255, 0, 255, 255));
// assert
Assert.Equal(expectedPackedValue1, bgra1.PackedValue);
Assert.Equal(expectedPackedValue2, bgra2.PackedValue);
}
[Fact]
public void Bgra4444_FromRgb48()
{
// arrange
var bgra = default(Bgra4444);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgra.FromRgb48(new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgra.PackedValue);
}
[Fact]
public void Bgra4444_FromRgba64()
{
// arrange
var bgra = default(Bgra4444);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgra.FromRgba64(new Rgba64(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgra.PackedValue);
}
[Fact]
public void Bgra4444_FromGrey16()
{
// arrange
var bgra = default(Bgra4444);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgra.FromGray16(new Gray16(ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgra.PackedValue);
}
[Fact]
public void Bgra4444_FromGrey8()
{
// arrange
var bgra = default(Bgra4444);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgra.FromGray8(new Gray8(byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgra.PackedValue);
}
[Fact]
public void Bgra4444_FromBgr24()
{
// arrange
var bgra = default(Bgra4444);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgra.FromBgr24(new Bgr24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgra.PackedValue);
}
[Fact]
public void Bgra4444_FromRgb24()
{
// arrange
var bgra = default(Bgra4444);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgra.FromRgb24(new Rgb24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgra.PackedValue);
}
[Fact] [Fact]
public void Bgra4444_Clamping() public void Bgra4444_Clamping()
{ {

75
tests/ImageSharp.Tests/PixelFormats/Bgra5551Tests.cs

@ -1,7 +1,6 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using Xunit; using Xunit;
@ -10,6 +9,36 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Bgra5551Tests public class Bgra5551Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new Bgra5551(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Bgra5551(new Vector4(0.0f));
var color3 = new Bgra5551(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
var color4 = new Bgra5551(1.0f, 0.0f, 0.0f, 1.0f);
Assert.Equal(color1, color2);
Assert.Equal(color3, color4);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new Bgra5551(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Bgra5551(new Vector4(1.0f));
var color3 = new Bgra5551(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
var color4 = new Bgra5551(1.0f, 1.0f, 0.0f, 1.0f);
Assert.NotEqual(color1, color2);
Assert.NotEqual(color3, color4);
}
[Fact] [Fact]
public void Bgra5551_PackedValue() public void Bgra5551_PackedValue()
{ {
@ -54,6 +83,20 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(1, actual.W); Assert.Equal(1, actual.W);
} }
[Fact]
public void Bgra5551_ToRgba32()
{
// arrange
var bgra = new Bgra5551(Vector4.One);
var expected = new Rgba32(Vector4.One);
var actual = default(Rgba32);
// act
bgra.ToRgba32(ref actual);
Assert.Equal(expected, actual);
}
[Fact] [Fact]
public void Bgra5551_FromScaledVector4() public void Bgra5551_FromScaledVector4()
{ {
@ -70,6 +113,22 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
[Fact]
public void Bgra5551_FromBgra5551()
{
// arrange
var bgra = default(Bgra5551);
var actual = default(Bgra5551);
var expected = new Bgra5551(1.0f, 0.0f, 1.0f, 1.0f);
// act
bgra.FromBgra5551(expected);
actual.FromBgra5551(bgra);
// assert
Assert.Equal(expected, actual);
}
[Fact] [Fact]
public void Bgra5551_FromRgba32() public void Bgra5551_FromRgba32()
{ {
@ -120,6 +179,20 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(expectedPackedValue, bgra.PackedValue); Assert.Equal(expectedPackedValue, bgra.PackedValue);
} }
[Fact]
public void Bgra5551_FromRgb48()
{
// arrange
var bgra = default(Bgra5551);
ushort expectedPackedValue = ushort.MaxValue;
// act
bgra.FromRgb48(new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, bgra.PackedValue);
}
[Fact] [Fact]
public void Bgra5551_FromRgba64() public void Bgra5551_FromRgba64()
{ {

162
tests/ImageSharp.Tests/PixelFormats/Byte4Tests.cs

@ -9,6 +9,36 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Byte4Tests public class Byte4Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new Byte4(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Byte4(new Vector4(0.0f));
var color3 = new Byte4(new Vector4(1.0f, 0.0f, 1.0f, 1.0f));
var color4 = new Byte4(1.0f, 0.0f, 1.0f, 1.0f);
Assert.Equal(color1, color2);
Assert.Equal(color3, color4);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new Byte4(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Byte4(new Vector4(1.0f));
var color3 = new Byte4(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
var color4 = new Byte4(1.0f, 1.0f, 0.0f, 1.0f);
Assert.NotEqual(color1, color2);
Assert.NotEqual(color3, color4);
}
[Fact] [Fact]
public void Byte4_PackedValue() public void Byte4_PackedValue()
{ {
@ -45,6 +75,20 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(1, actual.W); Assert.Equal(1, actual.W);
} }
[Fact]
public void Byte4_ToRgba32()
{
// arrange
var byte4 = new Byte4(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
var expected = new Rgba32(Vector4.One);
var actual = default(Rgba32);
// act
byte4.ToRgba32(ref actual);
Assert.Equal(expected, actual);
}
[Fact] [Fact]
public void Byte4_FromScaledVector4() public void Byte4_FromScaledVector4()
{ {
@ -61,18 +105,130 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
[Fact]
public void Byte4_FromArgb32()
{
// arrange
var byte4 = default(Byte4);
uint expectedPackedValue = uint.MaxValue;
// act
byte4.FromArgb32(new Argb32(255, 255, 255, 255));
// assert
Assert.Equal(expectedPackedValue, byte4.PackedValue);
}
[Fact]
public void Byte4_FromBgr24()
{
// arrange
var byte4 = default(Byte4);
uint expectedPackedValue = uint.MaxValue;
// act
byte4.FromBgr24(new Bgr24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, byte4.PackedValue);
}
[Fact]
public void Byte4_FromGrey8()
{
// arrange
var byte4 = default(Byte4);
uint expectedPackedValue = uint.MaxValue;
// act
byte4.FromGray8(new Gray8(byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, byte4.PackedValue);
}
[Fact]
public void Byte4_FromGrey16()
{
// arrange
var byte4 = default(Byte4);
uint expectedPackedValue = uint.MaxValue;
// act
byte4.FromGray16(new Gray16(ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, byte4.PackedValue);
}
[Fact]
public void Byte4_FromRgb24()
{
// arrange
var byte4 = default(Byte4);
uint expectedPackedValue = uint.MaxValue;
// act
byte4.FromRgb24(new Rgb24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, byte4.PackedValue);
}
[Fact] [Fact]
public void Byte4_FromBgra5551() public void Byte4_FromBgra5551()
{ {
// arrange // arrange
var rgb = default(Byte4); var byte4 = default(Byte4);
uint expected = 0xFFFFFFFF; uint expected = 0xFFFFFFFF;
// act // act
rgb.FromBgra5551(new Bgra5551(1.0f, 1.0f, 1.0f, 1.0f)); byte4.FromBgra5551(new Bgra5551(1.0f, 1.0f, 1.0f, 1.0f));
// assert
Assert.Equal(expected, byte4.PackedValue);
}
[Fact]
public void Byte4_FromRgba32()
{
// arrange
var byte4 = default(Byte4);
uint expectedPackedValue1 = uint.MaxValue;
// act
byte4.FromRgba32(new Rgba32(255, 255, 255, 255));
// assert
Assert.Equal(expectedPackedValue1, byte4.PackedValue);
}
[Fact]
public void Byte4_FromRgb48()
{
// arrange
var byte4 = default(Byte4);
uint expectedPackedValue = uint.MaxValue;
// act
byte4.FromRgb48(new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, byte4.PackedValue);
}
[Fact]
public void Byte4_FromRgba64()
{
// arrange
var byte4 = default(Byte4);
uint expectedPackedValue = uint.MaxValue;
// act
byte4.FromRgba64(new Rgba64(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert // assert
Assert.Equal(expected, rgb.PackedValue); Assert.Equal(expectedPackedValue, byte4.PackedValue);
} }
[Fact] [Fact]

18
tests/ImageSharp.Tests/PixelFormats/Gray16Tests.cs

@ -9,6 +9,24 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Gray16Tests public class Gray16Tests
{ {
[Fact]
public void AreEqual()
{
var color1 = new Gray16(3000);
var color2 = new Gray16(3000);
Assert.Equal(color1, color2);
}
[Fact]
public void AreNotEqual()
{
var color1 = new Gray16(12345);
var color2 = new Gray16(54321);
Assert.NotEqual(color1, color2);
}
[Theory] [Theory]
[InlineData(0)] [InlineData(0)]
[InlineData(65535)] [InlineData(65535)]

20
tests/ImageSharp.Tests/PixelFormats/Gray8Tests.cs

@ -1,10 +1,8 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System.Diagnostics;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.Common.Helpers;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using Xunit; using Xunit;
@ -45,6 +43,24 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
public void Gray8_PackedValue_EqualsInput(byte input) public void Gray8_PackedValue_EqualsInput(byte input)
=> Assert.Equal(input, new Gray8(input).PackedValue); => Assert.Equal(input, new Gray8(input).PackedValue);
[Fact]
public void AreEqual()
{
var color1 = new Gray8(100);
var color2 = new Gray8(100);
Assert.Equal(color1, color2);
}
[Fact]
public void AreNotEqual()
{
var color1 = new Gray8(100);
var color2 = new Gray8(200);
Assert.NotEqual(color1, color2);
}
[Fact] [Fact]
public void Gray8_FromScaledVector4() public void Gray8_FromScaledVector4()
{ {

156
tests/ImageSharp.Tests/PixelFormats/NormalizedByte4Tests.cs

@ -9,6 +9,36 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class NormalizedByte4Tests public class NormalizedByte4Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new NormalizedByte4(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new NormalizedByte4(new Vector4(0.0f));
var color3 = new NormalizedByte4(new Vector4(1.0f, 0.0f, 1.0f, 1.0f));
var color4 = new NormalizedByte4(1.0f, 0.0f, 1.0f, 1.0f);
Assert.Equal(color1, color2);
Assert.Equal(color3, color4);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new NormalizedByte4(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new NormalizedByte4(new Vector4(1.0f));
var color3 = new NormalizedByte4(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
var color4 = new NormalizedByte4(1.0f, 1.0f, 0.0f, 1.0f);
Assert.NotEqual(color1, color2);
Assert.NotEqual(color3, color4);
}
[Fact] [Fact]
public void NormalizedByte4_PackedValues() public void NormalizedByte4_PackedValues()
{ {
@ -61,6 +91,90 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
[Fact]
public void NormalizedByte4_FromArgb32()
{
// arrange
var byte4 = default(NormalizedByte4);
Vector4 expected = Vector4.One;
// act
byte4.FromArgb32(new Argb32(255, 255, 255, 255));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedByte4_FromBgr24()
{
// arrange
var byte4 = default(NormalizedByte4);
Vector4 expected = Vector4.One;
// act
byte4.FromBgr24(new Bgr24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedByte4_FromGrey8()
{
// arrange
var byte4 = default(NormalizedByte4);
Vector4 expected = Vector4.One;
// act
byte4.FromGray8(new Gray8(byte.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedByte4_FromGrey16()
{
// arrange
var byte4 = default(NormalizedByte4);
Vector4 expected = Vector4.One;
// act
byte4.FromGray16(new Gray16(ushort.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedByte4_FromRgb24()
{
// arrange
var byte4 = default(NormalizedByte4);
Vector4 expected = Vector4.One;
// act
byte4.FromRgb24(new Rgb24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedByte4_FromRgba32()
{
// arrange
var byte4 = default(NormalizedByte4);
Vector4 expected = Vector4.One;
// act
byte4.FromRgba32(new Rgba32(255, 255, 255, 255));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact] [Fact]
public void NormalizedByte4_FromBgra5551() public void NormalizedByte4_FromBgra5551()
{ {
@ -74,5 +188,47 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
// assert // assert
Assert.Equal(expected, normalizedByte4.ToVector4()); Assert.Equal(expected, normalizedByte4.ToVector4());
} }
[Fact]
public void NormalizedByte4_FromRgb48()
{
// arrange
var byte4 = default(NormalizedByte4);
Vector4 expected = Vector4.One;
// act
byte4.FromRgb48(new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedByte4_FromRgba64()
{
// arrange
var byte4 = default(NormalizedByte4);
Vector4 expected = Vector4.One;
// act
byte4.FromRgba64(new Rgba64(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedByte4_ToRgba32()
{
// arrange
var byte4 = new NormalizedByte4(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
var expected = new Rgba32(Vector4.One);
var actual = default(Rgba32);
// act
byte4.ToRgba32(ref actual);
Assert.Equal(expected, actual);
}
} }
} }

156
tests/ImageSharp.Tests/PixelFormats/NormalizedShort4Tests.cs

@ -9,6 +9,36 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class NormalizedShort4Tests public class NormalizedShort4Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new NormalizedShort4(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new NormalizedShort4(new Vector4(0.0f));
var color3 = new NormalizedShort4(new Vector4(1.0f, 0.0f, 1.0f, 1.0f));
var color4 = new NormalizedShort4(1.0f, 0.0f, 1.0f, 1.0f);
Assert.Equal(color1, color2);
Assert.Equal(color3, color4);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new NormalizedShort4(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new NormalizedShort4(new Vector4(1.0f));
var color3 = new NormalizedShort4(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
var color4 = new NormalizedShort4(1.0f, 1.0f, 0.0f, 1.0f);
Assert.NotEqual(color1, color2);
Assert.NotEqual(color3, color4);
}
[Fact] [Fact]
public void NormalizedShort4_PackedValues() public void NormalizedShort4_PackedValues()
{ {
@ -62,6 +92,132 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
[Fact]
public void NormalizedShort4_FromArgb32()
{
// arrange
var byte4 = default(NormalizedShort4);
Vector4 expected = Vector4.One;
// act
byte4.FromArgb32(new Argb32(255, 255, 255, 255));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedShort4_FromBgr24()
{
// arrange
var byte4 = default(NormalizedShort4);
Vector4 expected = Vector4.One;
// act
byte4.FromBgr24(new Bgr24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedShort4_FromGrey8()
{
// arrange
var byte4 = default(NormalizedShort4);
Vector4 expected = Vector4.One;
// act
byte4.FromGray8(new Gray8(byte.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedShort4_FromGrey16()
{
// arrange
var byte4 = default(NormalizedShort4);
Vector4 expected = Vector4.One;
// act
byte4.FromGray16(new Gray16(ushort.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedShort4_FromRgb24()
{
// arrange
var byte4 = default(NormalizedShort4);
Vector4 expected = Vector4.One;
// act
byte4.FromRgb24(new Rgb24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedShort4_FromRgba32()
{
// arrange
var byte4 = default(NormalizedShort4);
Vector4 expected = Vector4.One;
// act
byte4.FromRgba32(new Rgba32(255, 255, 255, 255));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedShort4_FromRgb48()
{
// arrange
var byte4 = default(NormalizedShort4);
Vector4 expected = Vector4.One;
// act
byte4.FromRgb48(new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedShort4_FromRgba64()
{
// arrange
var byte4 = default(NormalizedShort4);
Vector4 expected = Vector4.One;
// act
byte4.FromRgba64(new Rgba64(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expected, byte4.ToScaledVector4());
}
[Fact]
public void NormalizedShort4_ToRgba32()
{
// arrange
var byte4 = new NormalizedShort4(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
var expected = new Rgba32(Vector4.One);
var actual = default(Rgba32);
// act
byte4.ToRgba32(ref actual);
Assert.Equal(expected, actual);
}
[Fact] [Fact]
public void NormalizedShort4_FromBgra5551() public void NormalizedShort4_FromBgra5551()
{ {

146
tests/ImageSharp.Tests/PixelFormats/Rgba1010102Tests.cs

@ -9,6 +9,36 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
{ {
public class Rgba1010102Tests public class Rgba1010102Tests
{ {
/// <summary>
/// Tests the equality operators for equality.
/// </summary>
[Fact]
public void AreEqual()
{
var color1 = new Rgba1010102(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Rgba1010102(new Vector4(0.0f));
var color3 = new Rgba1010102(new Vector4(1.0f, 0.0f, 1.0f, 1.0f));
var color4 = new Rgba1010102(1.0f, 0.0f, 1.0f, 1.0f);
Assert.Equal(color1, color2);
Assert.Equal(color3, color4);
}
/// <summary>
/// Tests the equality operators for inequality.
/// </summary>
[Fact]
public void AreNotEqual()
{
var color1 = new Rgba1010102(0.0f, 0.0f, 0.0f, 0.0f);
var color2 = new Rgba1010102(new Vector4(1.0f));
var color3 = new Rgba1010102(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
var color4 = new Rgba1010102(1.0f, 1.0f, 0.0f, 1.0f);
Assert.NotEqual(color1, color2);
Assert.NotEqual(color3, color4);
}
[Fact] [Fact]
public void Rgba1010102_PackedValue() public void Rgba1010102_PackedValue()
{ {
@ -78,6 +108,122 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
Assert.Equal(expected, rgba.PackedValue); Assert.Equal(expected, rgba.PackedValue);
} }
[Fact]
public void Rgba1010102_FromArgb32()
{
// arrange
var rgba = default(Rgba1010102);
uint expectedPackedValue = uint.MaxValue;
// act
rgba.FromArgb32(new Argb32(255, 255, 255, 255));
// assert
Assert.Equal(expectedPackedValue, rgba.PackedValue);
}
[Fact]
public void Rgba1010102_FromRgba32()
{
// arrange
var rgba1 = default(Rgba1010102);
var rgba2 = default(Rgba1010102);
uint expectedPackedValue1 = uint.MaxValue;
uint expectedPackedValue2 = 0xFFF003FF;
// act
rgba1.FromRgba32(new Rgba32(255, 255, 255, 255));
rgba2.FromRgba32(new Rgba32(255, 0, 255, 255));
// assert
Assert.Equal(expectedPackedValue1, rgba1.PackedValue);
Assert.Equal(expectedPackedValue2, rgba2.PackedValue);
}
[Fact]
public void Rgba1010102_FromBgr24()
{
// arrange
var rgba = default(Rgba1010102);
uint expectedPackedValue = uint.MaxValue;
// act
rgba.FromBgr24(new Bgr24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, rgba.PackedValue);
}
[Fact]
public void Rgba1010102_FromGrey8()
{
// arrange
var rgba = default(Rgba1010102);
uint expectedPackedValue = uint.MaxValue;
// act
rgba.FromGray8(new Gray8(byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, rgba.PackedValue);
}
[Fact]
public void Rgba1010102_FromGrey16()
{
// arrange
var rgba = default(Rgba1010102);
uint expectedPackedValue = uint.MaxValue;
// act
rgba.FromGray16(new Gray16(ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, rgba.PackedValue);
}
[Fact]
public void Rgba1010102_FromRgb24()
{
// arrange
var rgba = default(Rgba1010102);
uint expectedPackedValue = uint.MaxValue;
// act
rgba.FromRgb24(new Rgb24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
// assert
Assert.Equal(expectedPackedValue, rgba.PackedValue);
}
[Fact]
public void Rgba1010102_FromRgb48()
{
// arrange
var rgba = default(Rgba1010102);
uint expectedPackedValue = uint.MaxValue;
// act
rgba.FromRgb48(new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, rgba.PackedValue);
}
[Fact]
public void Rgba1010102_FromRgba64()
{
// arrange
var rgba = default(Rgba1010102);
uint expectedPackedValue = uint.MaxValue;
// act
rgba.FromRgba64(new Rgba64(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
// assert
Assert.Equal(expectedPackedValue, rgba.PackedValue);
}
[Fact] [Fact]
public void Rgba1010102_Clamping() public void Rgba1010102_Clamping()
{ {

42
tests/ImageSharp.Tests/PixelFormats/RgbaVectorTests.cs

@ -146,5 +146,47 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
// assert // assert
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
[Fact]
public void RgbaVector_FromBgra5551()
{
// arrange
var rgb = default(RgbaVector);
Vector4 expected = Vector4.One;
// act
rgb.FromBgra5551(new Bgra5551(1.0f, 1.0f, 1.0f, 1.0f));
// assert
Assert.Equal(expected, rgb.ToScaledVector4());
}
[Fact]
public void RgbaVector_FromGrey16()
{
// arrange
var rgba = default(RgbaVector);
Vector4 expected = Vector4.One;
// act
rgba.FromGray16(new Gray16(ushort.MaxValue));
// assert
Assert.Equal(expected, rgba.ToScaledVector4());
}
[Fact]
public void RgbaVector_FromGrey8()
{
// arrange
var rgba = default(RgbaVector);
Vector4 expected = Vector4.One;
// act
rgba.FromGray8(new Gray8(byte.MaxValue));
// assert
Assert.Equal(expected, rgba.ToScaledVector4());
}
} }
} }
Loading…
Cancel
Save