From 7b97edd123eb338d485a588be3ba59495ab35d30 Mon Sep 17 00:00:00 2001 From: Olivia Date: Tue, 20 Dec 2016 12:56:25 +0200 Subject: [PATCH] Better way to test all colors with Vector4 and Vector3 constructors. --- .../Colors/ColorConstructorTests.cs | 65 +++++++++++++++---- 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/tests/ImageSharp.Tests/Colors/ColorConstructorTests.cs b/tests/ImageSharp.Tests/Colors/ColorConstructorTests.cs index 64529b5cc..502eadbe3 100644 --- a/tests/ImageSharp.Tests/Colors/ColorConstructorTests.cs +++ b/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 ColorData = - new TheoryData() + public static IEnumerable 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 Vector3Data + { + get + { + var vector3Values = new Dictionary() + { + { 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