From 7ea0e92da221e365da582c645d564dbde0efbc51 Mon Sep 17 00:00:00 2001 From: Olivia Date: Tue, 20 Dec 2016 14:37:06 +0200 Subject: [PATCH] Adding color packing tests - FromVector4 ToVector4. --- .../Colors/ColorPackingTests.cs | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 tests/ImageSharp.Tests/Colors/ColorPackingTests.cs diff --git a/tests/ImageSharp.Tests/Colors/ColorPackingTests.cs b/tests/ImageSharp.Tests/Colors/ColorPackingTests.cs new file mode 100644 index 000000000..d4fc337a6 --- /dev/null +++ b/tests/ImageSharp.Tests/Colors/ColorPackingTests.cs @@ -0,0 +1,84 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Tests.Colors +{ + using System.Collections.Generic; + using System.Numerics; + using Xunit; + + public class ColorPackingTests + { + public static IEnumerable Vector4PackData + { + get + { + 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 }; + yield return new object[] { new Bgra4444(), vector4 }; + yield return new object[] { new Bgra5551(), vector4 }; + yield return new object[] { new Byte4(), vector4 }; + yield return new object[] { new HalfVector4(), vector4 }; + yield return new object[] { new NormalizedByte4(), vector4 }; + yield return new object[] { new NormalizedShort4(), vector4 }; + yield return new object[] { new Rgba1010102(), vector4 }; + yield return new object[] { new Rgba64(), vector4 }; + yield return new object[] { new Short4(), vector4 }; + } + } + } + + public static IEnumerable Vector3PackData + { + get + { + var vector4Values = new Vector4[] + { + Vector4.One, + new Vector4(0, 0, 0, 1), + new Vector4(1, 0, 0, 1), + new Vector4(0, 1, 0, 1), + new Vector4(0, 0, 1, 1), + }; + + foreach (var vector4 in vector4Values) + { + yield return new object[] { new Argb(), vector4 }; + yield return new object[] { new Bgr565(), vector4 }; + } + } + } + + [Theory] + [MemberData(nameof(Vector4PackData))] + [MemberData(nameof(Vector3PackData))] + public void FromVector4ToVector4(IPackedVector packedVector, Vector4 vector4ToPack) + { + // Arrange + var precision = 2; + packedVector.PackFromVector4(vector4ToPack); + + // Act + var vector4 = packedVector.ToVector4(); + + // Assert + Assert.Equal(vector4ToPack.X, vector4.X, precision); + Assert.Equal(vector4ToPack.Y, vector4.Y, precision); + Assert.Equal(vector4ToPack.Z, vector4.Z, precision); + Assert.Equal(vector4ToPack.W, vector4.W, precision); + } + } +}