Browse Source

Better way to test all colors with Vector4 and Vector3 constructors.

pull/53/head
Olivia 9 years ago
parent
commit
7b97edd123
  1. 65
      tests/ImageSharp.Tests/Colors/ColorConstructorTests.cs

65
tests/ImageSharp.Tests/Colors/ColorConstructorTests.cs

@ -5,25 +5,68 @@
namespace ImageSharp.Tests.Colors
{
using System.Collections.Generic;
using System.Numerics;
using Xunit;
public class ColorConstructorTests
{
public static readonly TheoryData<object, Vector4> ColorData =
new TheoryData<object, Vector4>()
public static IEnumerable<object[]> Vector4Data
{
get
{
{ new Alpha8(.5F), new Vector4(0, 0, 0, .5F) },
{ new Argb(Vector4.One), Vector4.One },
{ new Argb(Vector4.Zero), Vector4.Zero },
{ new Argb(Vector4.UnitX), Vector4.UnitX },
{ new Argb(Vector4.UnitY), Vector4.UnitY },
{ new Argb(Vector4.UnitZ), Vector4.UnitZ },
{ new Argb(Vector4.UnitW), Vector4.UnitW },
};
var vector4Values = new Vector4[]
{
Vector4.Zero,
Vector4.One,
Vector4.UnitX,
Vector4.UnitY,
Vector4.UnitZ,
Vector4.UnitW,
};
foreach (var vector4 in vector4Values)
{
yield return new object[] { new Argb(vector4), vector4 };
yield return new object[] { new Bgra4444(vector4), vector4 };
yield return new object[] { new Bgra5551(vector4), vector4 };
yield return new object[] { new Byte4(vector4), vector4 };
yield return new object[] { new HalfVector4(vector4), vector4 };
yield return new object[] { new NormalizedByte4(vector4), vector4 };
yield return new object[] { new NormalizedShort4(vector4), vector4 };
yield return new object[] { new Rgba1010102(vector4), vector4 };
yield return new object[] { new Rgba64(vector4), vector4 };
yield return new object[] { new Short4(vector4), vector4 };
}
}
}
public static IEnumerable<object[]> Vector3Data
{
get
{
var vector3Values = new Dictionary<Vector3, Vector4>()
{
{ Vector3.One, Vector4.One },
{ Vector3.Zero, new Vector4(0, 0, 0, 1) },
{ Vector3.UnitX, new Vector4(1, 0, 0, 1) },
{ Vector3.UnitY, new Vector4(0, 1, 0, 1) },
{ Vector3.UnitZ, new Vector4(0, 0, 1, 1) },
};
foreach (var vector3 in vector3Values.Keys)
{
var vector4 = vector3Values[vector3];
yield return new object[] { new Argb(vector3), vector4 };
yield return new object[] { new Bgr565(vector3), vector4 };
}
}
}
[Theory]
[MemberData(nameof(ColorData))]
[MemberData(nameof(Vector4Data))]
[MemberData(nameof(Vector3Data))]
public void ConstructorToVector4(IPackedVector color, Vector4 expectedVector4)
{
// Arrange

Loading…
Cancel
Save