Browse Source

Rename Argb, Add Color to tests

pull/180/head
James Jackson-South 9 years ago
parent
commit
29cbdc4a1b
  1. 36
      src/ImageSharp/Colors/Color.Transforms.cs
  2. 2
      src/ImageSharp/Colors/ColorspaceTransforms.cs
  3. 46
      src/ImageSharp/Colors/PackedPixel/Argb32.cs
  4. 2
      src/ImageSharp/Colors/PackedPixel/PackedPixelConverterHelper.cs
  5. 2
      tests/ImageSharp.Benchmarks/Color/Bulk/ToXyzw.cs
  6. 2
      tests/ImageSharp.Tests/Colors/BulkPixelOperationsTests.cs
  7. 8
      tests/ImageSharp.Tests/Colors/ColorConstructorTests.cs
  8. 12
      tests/ImageSharp.Tests/Colors/ColorEqualityTests.cs
  9. 4
      tests/ImageSharp.Tests/Colors/ColorPackingTests.cs
  10. 2
      tests/ImageSharp.Tests/Colors/ColorTests.cs
  11. 46
      tests/ImageSharp.Tests/Colors/PackedPixelTests.cs
  12. 4
      tests/ImageSharp.Tests/TestUtilities/Tests/TestUtilityExtensionsTests.cs

36
src/ImageSharp/Colors/Color.Transforms.cs

@ -6,9 +6,10 @@
namespace ImageSharp namespace ImageSharp
{ {
using System.Numerics; using System.Numerics;
using System.Runtime.CompilerServices;
/// <summary> /// <summary>
/// Unpacked pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255. /// Packed pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255.
/// The color components are stored in red, green, blue, and alpha order. /// The color components are stored in red, green, blue, and alpha order.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
@ -25,10 +26,11 @@ namespace ImageSharp
/// <returns> /// <returns>
/// The <see cref="Color"/>. /// The <see cref="Color"/>.
/// </returns> /// </returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Color operator +(Color left, Color right) public static Color operator +(Color left, Color right)
{ {
Vector4 add = left.ToVector4() + right.ToVector4(); Vector4 add = left.ToVector4() + right.ToVector4();
return Pack(ref add); return PackNew(ref add);
} }
/// <summary> /// <summary>
@ -39,10 +41,11 @@ namespace ImageSharp
/// <returns> /// <returns>
/// The <see cref="Color"/>. /// The <see cref="Color"/>.
/// </returns> /// </returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Color operator -(Color left, Color right) public static Color operator -(Color left, Color right)
{ {
Vector4 sub = left.ToVector4() - right.ToVector4(); Vector4 sub = left.ToVector4() - right.ToVector4();
return Pack(ref sub); return PackNew(ref sub);
} }
/// <summary> /// <summary>
@ -56,7 +59,7 @@ namespace ImageSharp
public static Color Normal(Color backdrop, Color source) public static Color Normal(Color backdrop, Color source)
{ {
Vector4 normal = Vector4BlendTransforms.Normal(backdrop.ToVector4(), source.ToVector4()); Vector4 normal = Vector4BlendTransforms.Normal(backdrop.ToVector4(), source.ToVector4());
return Pack(ref normal); return PackNew(ref normal);
} }
/// <summary> /// <summary>
@ -76,7 +79,7 @@ namespace ImageSharp
public static Color Multiply(Color backdrop, Color source) public static Color Multiply(Color backdrop, Color source)
{ {
Vector4 multiply = Vector4BlendTransforms.Multiply(backdrop.ToVector4(), source.ToVector4()); Vector4 multiply = Vector4BlendTransforms.Multiply(backdrop.ToVector4(), source.ToVector4());
return Pack(ref multiply); return PackNew(ref multiply);
} }
/// <summary> /// <summary>
@ -95,7 +98,7 @@ namespace ImageSharp
public static Color Screen(Color backdrop, Color source) public static Color Screen(Color backdrop, Color source)
{ {
Vector4 subtract = Vector4BlendTransforms.Screen(backdrop.ToVector4(), source.ToVector4()); Vector4 subtract = Vector4BlendTransforms.Screen(backdrop.ToVector4(), source.ToVector4());
return Pack(ref subtract); return PackNew(ref subtract);
} }
/// <summary> /// <summary>
@ -110,7 +113,7 @@ namespace ImageSharp
public static Color HardLight(Color backdrop, Color source) public static Color HardLight(Color backdrop, Color source)
{ {
Vector4 hardlight = Vector4BlendTransforms.HardLight(backdrop.ToVector4(), source.ToVector4()); Vector4 hardlight = Vector4BlendTransforms.HardLight(backdrop.ToVector4(), source.ToVector4());
return Pack(ref hardlight); return PackNew(ref hardlight);
} }
/// <summary> /// <summary>
@ -129,7 +132,7 @@ namespace ImageSharp
public static Color Overlay(Color backdrop, Color source) public static Color Overlay(Color backdrop, Color source)
{ {
Vector4 overlay = Vector4BlendTransforms.Overlay(backdrop.ToVector4(), source.ToVector4()); Vector4 overlay = Vector4BlendTransforms.Overlay(backdrop.ToVector4(), source.ToVector4());
return Pack(ref overlay); return PackNew(ref overlay);
} }
/// <summary> /// <summary>
@ -144,7 +147,7 @@ namespace ImageSharp
public static Color Darken(Color backdrop, Color source) public static Color Darken(Color backdrop, Color source)
{ {
Vector4 darken = Vector4BlendTransforms.Darken(backdrop.ToVector4(), source.ToVector4()); Vector4 darken = Vector4BlendTransforms.Darken(backdrop.ToVector4(), source.ToVector4());
return Pack(ref darken); return PackNew(ref darken);
} }
/// <summary> /// <summary>
@ -159,7 +162,7 @@ namespace ImageSharp
public static Color Lighten(Color backdrop, Color source) public static Color Lighten(Color backdrop, Color source)
{ {
Vector4 lighten = Vector4BlendTransforms.Lighten(backdrop.ToVector4(), source.ToVector4()); Vector4 lighten = Vector4BlendTransforms.Lighten(backdrop.ToVector4(), source.ToVector4());
return Pack(ref lighten); return PackNew(ref lighten);
} }
/// <summary> /// <summary>
@ -174,7 +177,7 @@ namespace ImageSharp
public static Color SoftLight(Color backdrop, Color source) public static Color SoftLight(Color backdrop, Color source)
{ {
Vector4 softlight = Vector4BlendTransforms.SoftLight(backdrop.ToVector4(), source.ToVector4()); Vector4 softlight = Vector4BlendTransforms.SoftLight(backdrop.ToVector4(), source.ToVector4());
return Pack(ref softlight); return PackNew(ref softlight);
} }
/// <summary> /// <summary>
@ -188,7 +191,7 @@ namespace ImageSharp
public static Color ColorDodge(Color backdrop, Color source) public static Color ColorDodge(Color backdrop, Color source)
{ {
Vector4 dodge = Vector4BlendTransforms.Dodge(backdrop.ToVector4(), source.ToVector4()); Vector4 dodge = Vector4BlendTransforms.Dodge(backdrop.ToVector4(), source.ToVector4());
return Pack(ref dodge); return PackNew(ref dodge);
} }
/// <summary> /// <summary>
@ -202,7 +205,7 @@ namespace ImageSharp
public static Color ColorBurn(Color backdrop, Color source) public static Color ColorBurn(Color backdrop, Color source)
{ {
Vector4 burn = Vector4BlendTransforms.Burn(backdrop.ToVector4(), source.ToVector4()); Vector4 burn = Vector4BlendTransforms.Burn(backdrop.ToVector4(), source.ToVector4());
return Pack(ref burn); return PackNew(ref burn);
} }
/// <summary> /// <summary>
@ -217,7 +220,7 @@ namespace ImageSharp
public static Color Difference(Color backdrop, Color source) public static Color Difference(Color backdrop, Color source)
{ {
Vector4 difference = Vector4BlendTransforms.Difference(backdrop.ToVector4(), source.ToVector4()); Vector4 difference = Vector4BlendTransforms.Difference(backdrop.ToVector4(), source.ToVector4());
return Pack(ref difference); return PackNew(ref difference);
} }
/// <summary> /// <summary>
@ -232,7 +235,7 @@ namespace ImageSharp
public static Color Exclusion(Color backdrop, Color source) public static Color Exclusion(Color backdrop, Color source)
{ {
Vector4 exclusion = Vector4BlendTransforms.Exclusion(backdrop.ToVector4(), source.ToVector4()); Vector4 exclusion = Vector4BlendTransforms.Exclusion(backdrop.ToVector4(), source.ToVector4());
return Pack(ref exclusion); return PackNew(ref exclusion);
} }
/// <summary> /// <summary>
@ -249,7 +252,8 @@ namespace ImageSharp
/// </returns> /// </returns>
public static Color Lerp(Color from, Color to, float amount) public static Color Lerp(Color from, Color to, float amount)
{ {
return new Color(Vector4.Lerp(from.ToVector4(), to.ToVector4(), amount)); Vector4 lerp = Vector4.Lerp(from.ToVector4(), to.ToVector4(), amount);
return PackNew(ref lerp);
} }
} }
} }

2
src/ImageSharp/Colors/ColorspaceTransforms.cs

@ -10,7 +10,7 @@ namespace ImageSharp
using Colors.Spaces; using Colors.Spaces;
/// <summary> /// <summary>
/// Unpacked pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255. /// Packed pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255.
/// The color components are stored in red, green, blue, and alpha order. /// The color components are stored in red, green, blue, and alpha order.
/// </summary> /// </summary>
/// <remarks> /// <remarks>

46
src/ImageSharp/Colors/PackedPixel/Argb.cs → src/ImageSharp/Colors/PackedPixel/Argb32.cs

@ -1,4 +1,4 @@
// <copyright file="Argb.cs" company="James Jackson-South"> // <copyright file="Argb32.cs" company="James Jackson-South">
// Copyright (c) James Jackson-South and contributors. // Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
// </copyright> // </copyright>
@ -17,7 +17,7 @@ namespace ImageSharp
/// This struct is fully mutable. This is done (against the guidelines) for the sake of performance, /// This struct is fully mutable. This is done (against the guidelines) for the sake of performance,
/// as it avoids the need to create new values for modification operations. /// as it avoids the need to create new values for modification operations.
/// </remarks> /// </remarks>
public struct Argb : IPixel<Argb>, IPackedVector<uint> public struct Argb32 : IPixel<Argb32>, IPackedVector<uint>
{ {
/// <summary> /// <summary>
/// The shift count for the blue component /// The shift count for the blue component
@ -50,58 +50,58 @@ namespace ImageSharp
private static readonly Vector4 Half = new Vector4(0.5F); private static readonly Vector4 Half = new Vector4(0.5F);
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Argb"/> struct. /// Initializes a new instance of the <see cref="Argb32"/> struct.
/// </summary> /// </summary>
/// <param name="r">The red component.</param> /// <param name="r">The red component.</param>
/// <param name="g">The green component.</param> /// <param name="g">The green component.</param>
/// <param name="b">The blue component.</param> /// <param name="b">The blue component.</param>
/// <param name="a">The alpha component.</param> /// <param name="a">The alpha component.</param>
public Argb(byte r, byte g, byte b, byte a = 255) public Argb32(byte r, byte g, byte b, byte a = 255)
{ {
this.PackedValue = Pack(r, g, b, a); this.PackedValue = Pack(r, g, b, a);
} }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Argb"/> struct. /// Initializes a new instance of the <see cref="Argb32"/> struct.
/// </summary> /// </summary>
/// <param name="r">The red component.</param> /// <param name="r">The red component.</param>
/// <param name="g">The green component.</param> /// <param name="g">The green component.</param>
/// <param name="b">The blue component.</param> /// <param name="b">The blue component.</param>
/// <param name="a">The alpha component.</param> /// <param name="a">The alpha component.</param>
public Argb(float r, float g, float b, float a = 1) public Argb32(float r, float g, float b, float a = 1)
{ {
this.PackedValue = Pack(r, g, b, a); this.PackedValue = Pack(r, g, b, a);
} }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Argb"/> struct. /// Initializes a new instance of the <see cref="Argb32"/> struct.
/// </summary> /// </summary>
/// <param name="vector"> /// <param name="vector">
/// The vector containing the components for the packed vector. /// The vector containing the components for the packed vector.
/// </param> /// </param>
public Argb(Vector3 vector) public Argb32(Vector3 vector)
{ {
this.PackedValue = Pack(ref vector); this.PackedValue = Pack(ref vector);
} }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Argb"/> struct. /// Initializes a new instance of the <see cref="Argb32"/> struct.
/// </summary> /// </summary>
/// <param name="vector"> /// <param name="vector">
/// The vector containing the components for the packed vector. /// The vector containing the components for the packed vector.
/// </param> /// </param>
public Argb(Vector4 vector) public Argb32(Vector4 vector)
{ {
this.PackedValue = Pack(ref vector); this.PackedValue = Pack(ref vector);
} }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Argb"/> struct. /// Initializes a new instance of the <see cref="Argb32"/> struct.
/// </summary> /// </summary>
/// <param name="packed"> /// <param name="packed">
/// The packed value. /// The packed value.
/// </param> /// </param>
public Argb(uint packed = 0) public Argb32(uint packed = 0)
{ {
this.PackedValue = packed; this.PackedValue = packed;
} }
@ -182,33 +182,33 @@ namespace ImageSharp
} }
/// <summary> /// <summary>
/// Compares two <see cref="Argb"/> objects for equality. /// Compares two <see cref="Argb32"/> objects for equality.
/// </summary> /// </summary>
/// <param name="left"> /// <param name="left">
/// The <see cref="Argb"/> on the left side of the operand. /// The <see cref="Argb32"/> on the left side of the operand.
/// </param> /// </param>
/// <param name="right"> /// <param name="right">
/// The <see cref="Argb"/> on the right side of the operand. /// The <see cref="Argb32"/> on the right side of the operand.
/// </param> /// </param>
/// <returns> /// <returns>
/// True if the <paramref name="left"/> parameter is equal to the <paramref name="right"/> parameter; otherwise, false. /// True if the <paramref name="left"/> parameter is equal to the <paramref name="right"/> parameter; otherwise, false.
/// </returns> /// </returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool operator ==(Argb left, Argb right) public static bool operator ==(Argb32 left, Argb32 right)
{ {
return left.PackedValue == right.PackedValue; return left.PackedValue == right.PackedValue;
} }
/// <summary> /// <summary>
/// Compares two <see cref="Argb"/> objects for equality. /// Compares two <see cref="Argb32"/> objects for equality.
/// </summary> /// </summary>
/// <param name="left">The <see cref="Argb"/> on the left side of the operand.</param> /// <param name="left">The <see cref="Argb32"/> on the left side of the operand.</param>
/// <param name="right">The <see cref="Argb"/> on the right side of the operand.</param> /// <param name="right">The <see cref="Argb32"/> on the right side of the operand.</param>
/// <returns> /// <returns>
/// True if the <paramref name="left"/> parameter is not equal to the <paramref name="right"/> parameter; otherwise, false. /// True if the <paramref name="left"/> parameter is not equal to the <paramref name="right"/> parameter; otherwise, false.
/// </returns> /// </returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool operator !=(Argb left, Argb right) public static bool operator !=(Argb32 left, Argb32 right)
{ {
return left.PackedValue != right.PackedValue; return left.PackedValue != right.PackedValue;
} }
@ -221,7 +221,7 @@ namespace ImageSharp
} }
/// <inheritdoc /> /// <inheritdoc />
public BulkPixelOperations<Argb> CreateBulkOperations() => new BulkPixelOperations<Argb>(); public BulkPixelOperations<Argb32> CreateBulkOperations() => new BulkPixelOperations<Argb32>();
/// <inheritdoc/> /// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
@ -278,12 +278,12 @@ namespace ImageSharp
/// <inheritdoc/> /// <inheritdoc/>
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
return obj is Argb && this.Equals((Argb)obj); return obj is Argb32 && this.Equals((Argb32)obj);
} }
/// <inheritdoc/> /// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool Equals(Argb other) public bool Equals(Argb32 other)
{ {
return this.PackedValue == other.PackedValue; return this.PackedValue == other.PackedValue;
} }

2
src/ImageSharp/Colors/PackedPixel/PackedPixelConverterHelper.cs

@ -300,7 +300,7 @@ namespace ImageSharp
private static bool IsStandardNormalizedType(Type type) private static bool IsStandardNormalizedType(Type type)
{ {
return type == typeof(Color) return type == typeof(Color)
|| type == typeof(Argb) || type == typeof(Argb32)
|| type == typeof(Alpha8) || type == typeof(Alpha8)
|| type == typeof(Bgr565) || type == typeof(Bgr565)
|| type == typeof(Bgra4444) || type == typeof(Bgra4444)

2
tests/ImageSharp.Benchmarks/Color/Bulk/ToXyzw.cs

@ -64,7 +64,7 @@ namespace ImageSharp.Benchmarks.Color.Bulk
{ {
} }
public class ToXyzw_Argb : ToXyzw<Argb> public class ToXyzw_Argb : ToXyzw<Argb32>
{ {
} }
} }

2
tests/ImageSharp.Tests/Colors/BulkPixelOperationsTests.cs

@ -58,7 +58,7 @@ namespace ImageSharp.Tests.Colors
} }
} }
public class Argb : BulkPixelOperationsTests<ImageSharp.Argb> public class Argb : BulkPixelOperationsTests<ImageSharp.Argb32>
{ {
// For 4.6 test runner MemberData does not work without redeclaring the public field in the derived test class: // For 4.6 test runner MemberData does not work without redeclaring the public field in the derived test class:
public Argb(ITestOutputHelper output) public Argb(ITestOutputHelper output)

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

@ -30,7 +30,7 @@ namespace ImageSharp.Tests.Colors
// using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData // using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData
float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W }; float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W };
yield return new object[] { new Argb(vector4), vector4Components }; yield return new object[] { new Argb32(vector4), vector4Components };
yield return new object[] { new Bgra4444(vector4), vector4Components }; yield return new object[] { new Bgra4444(vector4), vector4Components };
yield return new object[] { new Bgra5551(vector4), vector4Components }; yield return new object[] { new Bgra5551(vector4), vector4Components };
yield return new object[] { new Byte4(vector4), vector4Components }; yield return new object[] { new Byte4(vector4), vector4Components };
@ -63,7 +63,7 @@ namespace ImageSharp.Tests.Colors
// using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData // using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData
float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W }; float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W };
yield return new object[] { new Argb(vector3), vector4Components }; yield return new object[] { new Argb32(vector3), vector4Components };
yield return new object[] { new Bgr565(vector3), vector4Components }; yield return new object[] { new Bgr565(vector3), vector4Components };
} }
} }
@ -88,7 +88,7 @@ namespace ImageSharp.Tests.Colors
// using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData // using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData
float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W }; float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W };
yield return new object[] { new Argb(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; yield return new object[] { new Argb32(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components };
yield return new object[] { new Bgra4444(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; yield return new object[] { new Bgra4444(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components };
yield return new object[] { new Bgra5551(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; yield return new object[] { new Bgra5551(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components };
yield return new object[] { new Byte4(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; yield return new object[] { new Byte4(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components };
@ -121,7 +121,7 @@ namespace ImageSharp.Tests.Colors
// using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData // using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData
float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W }; float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W };
yield return new object[] { new Argb(vector3.X, vector3.Y, vector3.Z), vector4Components }; yield return new object[] { new Argb32(vector3.X, vector3.Y, vector3.Z), vector4Components };
yield return new object[] { new Bgr565(vector3.X, vector3.Y, vector3.Z), vector4Components }; yield return new object[] { new Bgr565(vector3.X, vector3.Y, vector3.Z), vector4Components };
} }
} }

12
tests/ImageSharp.Tests/Colors/ColorEqualityTests.cs

@ -19,7 +19,7 @@ namespace ImageSharp.Tests.Colors
new TheoryData<object, object, Type>() new TheoryData<object, object, Type>()
{ {
{ new Alpha8(.5F), new Alpha8(.5F), typeof(Alpha8) }, { new Alpha8(.5F), new Alpha8(.5F), typeof(Alpha8) },
{ new Argb(Vector4.One), new Argb(Vector4.One), typeof(Argb) }, { new Argb32(Vector4.One), new Argb32(Vector4.One), typeof(Argb32) },
{ new Bgr565(Vector3.One), new Bgr565(Vector3.One), typeof(Bgr565) }, { new Bgr565(Vector3.One), new Bgr565(Vector3.One), typeof(Bgr565) },
{ new Bgra4444(Vector4.One), new Bgra4444(Vector4.One), typeof(Bgra4444) }, { new Bgra4444(Vector4.One), new Bgra4444(Vector4.One), typeof(Bgra4444) },
{ new Bgra5551(Vector4.One), new Bgra5551(Vector4.One), typeof(Bgra5551) }, { new Bgra5551(Vector4.One), new Bgra5551(Vector4.One), typeof(Bgra5551) },
@ -33,7 +33,7 @@ namespace ImageSharp.Tests.Colors
{ new NormalizedShort4(Vector4.One), new NormalizedShort4(Vector4.One), typeof(NormalizedShort4) }, { new NormalizedShort4(Vector4.One), new NormalizedShort4(Vector4.One), typeof(NormalizedShort4) },
{ new Rg32(Vector2.One), new Rg32(Vector2.One), typeof(Rg32) }, { new Rg32(Vector2.One), new Rg32(Vector2.One), typeof(Rg32) },
{ new Rgba1010102(Vector4.One), new Rgba1010102(Vector4.One), typeof(Rgba1010102) }, { new Rgba1010102(Vector4.One), new Rgba1010102(Vector4.One), typeof(Rgba1010102) },
{ new Rgba32(Vector4.One), new Rgba32(Vector4.One), typeof(Rgba32) }, { new Color(Vector4.One), new Color(Vector4.One), typeof(Color) },
{ new Rgba64(Vector4.One), new Rgba64(Vector4.One), typeof(Rgba64) }, { new Rgba64(Vector4.One), new Rgba64(Vector4.One), typeof(Rgba64) },
{ new Short2(Vector2.One * 0x7FFF), new Short2(Vector2.One * 0x7FFF), typeof(Short2) }, { new Short2(Vector2.One * 0x7FFF), new Short2(Vector2.One * 0x7FFF), typeof(Short2) },
{ new Short4(Vector4.One * 0x7FFF), new Short4(Vector4.One * 0x7FFF), typeof(Short4) }, { new Short4(Vector4.One * 0x7FFF), new Short4(Vector4.One * 0x7FFF), typeof(Short4) },
@ -76,7 +76,7 @@ namespace ImageSharp.Tests.Colors
{ {
// Valid object against null // Valid object against null
{ new Alpha8(.5F), null, typeof(Alpha8) }, { new Alpha8(.5F), null, typeof(Alpha8) },
{ new Argb(Vector4.One), null, typeof(Argb) }, { new Argb32(Vector4.One), null, typeof(Argb32) },
{ new Bgr565(Vector3.One), null, typeof(Bgr565) }, { new Bgr565(Vector3.One), null, typeof(Bgr565) },
{ new Bgra4444(Vector4.One), null, typeof(Bgra4444) }, { new Bgra4444(Vector4.One), null, typeof(Bgra4444) },
{ new Bgra5551(Vector4.One), null, typeof(Bgra5551) }, { new Bgra5551(Vector4.One), null, typeof(Bgra5551) },
@ -111,7 +111,7 @@ namespace ImageSharp.Tests.Colors
new TheoryData<object, object, Type>() new TheoryData<object, object, Type>()
{ {
// Valid objects of different types but not equal // Valid objects of different types but not equal
{ new Alpha8(.5F), new Argb(Vector4.Zero), null }, { new Alpha8(.5F), new Argb32(Vector4.Zero), null },
{ new HalfSingle(-1F), new NormalizedShort2(Vector2.Zero), null }, { new HalfSingle(-1F), new NormalizedShort2(Vector2.Zero), null },
{ new Rgba1010102(Vector4.One), new Bgra5551(Vector4.Zero), null }, { new Rgba1010102(Vector4.One), new Bgra5551(Vector4.Zero), null },
}; };
@ -131,7 +131,7 @@ namespace ImageSharp.Tests.Colors
{ {
// Valid objects of the same type but not equal // Valid objects of the same type but not equal
{ new Alpha8(.5F), new Alpha8(.8F), typeof(Alpha8) }, { new Alpha8(.5F), new Alpha8(.8F), typeof(Alpha8) },
{ new Argb(Vector4.One), new Argb(Vector4.Zero), typeof(Argb) }, { new Argb32(Vector4.One), new Argb32(Vector4.Zero), typeof(Argb32) },
{ new Bgr565(Vector3.One), new Bgr565(Vector3.Zero), typeof(Bgr565) }, { new Bgr565(Vector3.One), new Bgr565(Vector3.Zero), typeof(Bgr565) },
{ new Bgra4444(Vector4.One), new Bgra4444(Vector4.Zero), typeof(Bgra4444) }, { new Bgra4444(Vector4.One), new Bgra4444(Vector4.Zero), typeof(Bgra4444) },
{ new Bgra5551(Vector4.One), new Bgra5551(Vector4.Zero), typeof(Bgra5551) }, { new Bgra5551(Vector4.One), new Bgra5551(Vector4.Zero), typeof(Bgra5551) },
@ -145,7 +145,7 @@ namespace ImageSharp.Tests.Colors
{ new NormalizedShort4(Vector4.One), new NormalizedShort4(Vector4.Zero), typeof(NormalizedShort4) }, { new NormalizedShort4(Vector4.One), new NormalizedShort4(Vector4.Zero), typeof(NormalizedShort4) },
{ new Rg32(Vector2.One), new Rg32(Vector2.Zero), typeof(Rg32) }, { new Rg32(Vector2.One), new Rg32(Vector2.Zero), typeof(Rg32) },
{ new Rgba1010102(Vector4.One), new Rgba1010102(Vector4.Zero), typeof(Rgba1010102) }, { new Rgba1010102(Vector4.One), new Rgba1010102(Vector4.Zero), typeof(Rgba1010102) },
{ new Rgba32(Vector4.One), new Rgba32(Vector4.Zero), typeof(Rgba32) }, { new Color(Vector4.One), new Color(Vector4.Zero), typeof(Color) },
{ new Rgba64(Vector4.One), new Rgba64(Vector4.Zero), typeof(Rgba64) }, { new Rgba64(Vector4.One), new Rgba64(Vector4.Zero), typeof(Rgba64) },
{ new Short2(Vector2.One * 0x7FFF), new Short2(Vector2.Zero), typeof(Short2) }, { new Short2(Vector2.One * 0x7FFF), new Short2(Vector2.Zero), typeof(Short2) },
{ new Short4(Vector4.One * 0x7FFF), new Short4(Vector4.Zero), typeof(Short4) }, { new Short4(Vector4.One * 0x7FFF), new Short4(Vector4.Zero), typeof(Short4) },

4
tests/ImageSharp.Tests/Colors/ColorPackingTests.cs

@ -29,7 +29,7 @@ namespace ImageSharp.Tests.Colors
{ {
float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W }; float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W };
yield return new object[] { new Argb(), vector4Components }; yield return new object[] { new Argb32(), vector4Components };
yield return new object[] { new Bgra4444(), vector4Components }; yield return new object[] { new Bgra4444(), vector4Components };
yield return new object[] { new Bgra5551(), vector4Components }; yield return new object[] { new Bgra5551(), vector4Components };
yield return new object[] { new Byte4(), vector4Components }; yield return new object[] { new Byte4(), vector4Components };
@ -60,7 +60,7 @@ namespace ImageSharp.Tests.Colors
{ {
float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W }; float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W };
yield return new object[] { new Argb(), vector4Components }; yield return new object[] { new Argb32(), vector4Components };
yield return new object[] { new Bgr565(), vector4Components }; yield return new object[] { new Bgr565(), vector4Components };
} }
} }

2
tests/ImageSharp.Tests/Colors/ColorTests.cs

@ -124,6 +124,8 @@ namespace ImageSharp.Tests
Assert.Equal(2, colorBase[1]); Assert.Equal(2, colorBase[1]);
Assert.Equal(3, colorBase[2]); Assert.Equal(3, colorBase[2]);
Assert.Equal(4, colorBase[3]); Assert.Equal(4, colorBase[3]);
Assert.Equal(4, sizeof(Color));
} }
} }
} }

46
tests/ImageSharp.Tests/Colors/PackedPixelTests.cs

@ -65,26 +65,26 @@ namespace ImageSharp.Tests.Colors
public void Argb() public void Argb()
{ {
// Test the limits. // Test the limits.
Assert.Equal((uint)0x0, new Argb(Vector4.Zero).PackedValue); Assert.Equal((uint)0x0, new Argb32(Vector4.Zero).PackedValue);
Assert.Equal(0xFFFFFFFF, new Argb(Vector4.One).PackedValue); Assert.Equal(0xFFFFFFFF, new Argb32(Vector4.One).PackedValue);
// Test ToVector4. // Test ToVector4.
Assert.True(Equal(Vector4.One, new Argb(Vector4.One).ToVector4())); Assert.True(Equal(Vector4.One, new Argb32(Vector4.One).ToVector4()));
Assert.True(Equal(Vector4.Zero, new Argb(Vector4.Zero).ToVector4())); Assert.True(Equal(Vector4.Zero, new Argb32(Vector4.Zero).ToVector4()));
Assert.True(Equal(Vector4.UnitX, new Argb(Vector4.UnitX).ToVector4())); Assert.True(Equal(Vector4.UnitX, new Argb32(Vector4.UnitX).ToVector4()));
Assert.True(Equal(Vector4.UnitY, new Argb(Vector4.UnitY).ToVector4())); Assert.True(Equal(Vector4.UnitY, new Argb32(Vector4.UnitY).ToVector4()));
Assert.True(Equal(Vector4.UnitZ, new Argb(Vector4.UnitZ).ToVector4())); Assert.True(Equal(Vector4.UnitZ, new Argb32(Vector4.UnitZ).ToVector4()));
Assert.True(Equal(Vector4.UnitW, new Argb(Vector4.UnitW).ToVector4())); Assert.True(Equal(Vector4.UnitW, new Argb32(Vector4.UnitW).ToVector4()));
// Test clamping. // Test clamping.
Assert.True(Equal(Vector4.Zero, new Argb(Vector4.One * -1234.0f).ToVector4())); Assert.True(Equal(Vector4.Zero, new Argb32(Vector4.One * -1234.0f).ToVector4()));
Assert.True(Equal(Vector4.One, new Argb(Vector4.One * +1234.0f).ToVector4())); Assert.True(Equal(Vector4.One, new Argb32(Vector4.One * +1234.0f).ToVector4()));
float x = +0.1f; float x = +0.1f;
float y = -0.3f; float y = -0.3f;
float z = +0.5f; float z = +0.5f;
float w = -0.7f; float w = -0.7f;
Argb argb = new Argb(x, y, z, w); Argb32 argb = new Argb32(x, y, z, w);
Assert.Equal(0x001a0080u, argb.PackedValue); Assert.Equal(0x001a0080u, argb.PackedValue);
// Test ordering // Test ordering
@ -712,29 +712,29 @@ namespace ImageSharp.Tests.Colors
} }
[Fact] [Fact]
public void Rgba32() public void Color()
{ {
// Test the limits. // Test the limits.
Assert.Equal((uint)0x0, new Rgba32(Vector4.Zero).PackedValue); Assert.Equal((uint)0x0, new Color(Vector4.Zero).PackedValue);
Assert.Equal(0xFFFFFFFF, new Rgba32(Vector4.One).PackedValue); Assert.Equal(0xFFFFFFFF, new Color(Vector4.One).PackedValue);
// Test ToVector4. // Test ToVector4.
Assert.True(Equal(Vector4.One, new Rgba32(Vector4.One).ToVector4())); Assert.True(Equal(Vector4.One, new Color(Vector4.One).ToVector4()));
Assert.True(Equal(Vector4.Zero, new Rgba32(Vector4.Zero).ToVector4())); Assert.True(Equal(Vector4.Zero, new Color(Vector4.Zero).ToVector4()));
Assert.True(Equal(Vector4.UnitX, new Rgba32(Vector4.UnitX).ToVector4())); Assert.True(Equal(Vector4.UnitX, new Color(Vector4.UnitX).ToVector4()));
Assert.True(Equal(Vector4.UnitY, new Rgba32(Vector4.UnitY).ToVector4())); Assert.True(Equal(Vector4.UnitY, new Color(Vector4.UnitY).ToVector4()));
Assert.True(Equal(Vector4.UnitZ, new Rgba32(Vector4.UnitZ).ToVector4())); Assert.True(Equal(Vector4.UnitZ, new Color(Vector4.UnitZ).ToVector4()));
Assert.True(Equal(Vector4.UnitW, new Rgba32(Vector4.UnitW).ToVector4())); Assert.True(Equal(Vector4.UnitW, new Color(Vector4.UnitW).ToVector4()));
// Test clamping. // Test clamping.
Assert.True(Equal(Vector4.Zero, new Rgba32(Vector4.One * -1234.0f).ToVector4())); Assert.True(Equal(Vector4.Zero, new Color(Vector4.One * -1234.0f).ToVector4()));
Assert.True(Equal(Vector4.One, new Rgba32(Vector4.One * +1234.0f).ToVector4())); Assert.True(Equal(Vector4.One, new Color(Vector4.One * +1234.0f).ToVector4()));
float x = +0.1f; float x = +0.1f;
float y = -0.3f; float y = -0.3f;
float z = +0.5f; float z = +0.5f;
float w = -0.7f; float w = -0.7f;
Rgba32 rgba32 = new Rgba32(x, y, z, w); Color rgba32 = new Color(x, y, z, w);
Assert.Equal(0x80001Au, rgba32.PackedValue); Assert.Equal(0x80001Au, rgba32.PackedValue);
// Test ordering // Test ordering

4
tests/ImageSharp.Tests/TestUtilities/Tests/TestUtilityExtensionsTests.cs

@ -85,7 +85,7 @@ namespace ImageSharp.Tests
[Theory] [Theory]
[InlineData(PixelTypes.Color, typeof(Color))] [InlineData(PixelTypes.Color, typeof(Color))]
[InlineData(PixelTypes.Argb, typeof(Argb))] [InlineData(PixelTypes.Argb, typeof(Argb32))]
[InlineData(PixelTypes.HalfVector4, typeof(HalfVector4))] [InlineData(PixelTypes.HalfVector4, typeof(HalfVector4))]
[InlineData(PixelTypes.StandardImageClass, typeof(Color))] [InlineData(PixelTypes.StandardImageClass, typeof(Color))]
public void ToType(PixelTypes pt, Type expectedType) public void ToType(PixelTypes pt, Type expectedType)
@ -95,7 +95,7 @@ namespace ImageSharp.Tests
[Theory] [Theory]
[InlineData(typeof(Color), PixelTypes.Color)] [InlineData(typeof(Color), PixelTypes.Color)]
[InlineData(typeof(Argb), PixelTypes.Argb)] [InlineData(typeof(Argb32), PixelTypes.Argb)]
public void GetPixelType(Type clrType, PixelTypes expectedPixelType) public void GetPixelType(Type clrType, PixelTypes expectedPixelType)
{ {
Assert.Equal(expectedPixelType, clrType.GetPixelType()); Assert.Equal(expectedPixelType, clrType.GetPixelType());

Loading…
Cancel
Save