Browse Source

internalise colorspace interfaces

pull/299/head
Scott Williams 9 years ago
parent
commit
ae195e9146
  1. 2
      src/ImageSharp/ColorSpaces/IAlmostEquatable.cs
  2. 2
      src/ImageSharp/ColorSpaces/IColorVector.cs
  3. 39
      tests/ImageSharp.Tests/Colorspaces/ColorSpaceEqualityTests.cs

2
src/ImageSharp/ColorSpaces/IAlmostEquatable.cs

@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// </summary> /// </summary>
/// <typeparam name="TPixel">The type of objects to compare.</typeparam> /// <typeparam name="TPixel">The type of objects to compare.</typeparam>
/// <typeparam name="TPrecision">The object specifying the type to specify precision with.</typeparam> /// <typeparam name="TPrecision">The object specifying the type to specify precision with.</typeparam>
public interface IAlmostEquatable<in TPixel, in TPrecision> internal interface IAlmostEquatable<in TPixel, in TPrecision>
where TPrecision : struct, IComparable<TPrecision> where TPrecision : struct, IComparable<TPrecision>
{ {
/// <summary> /// <summary>

2
src/ImageSharp/ColorSpaces/IColorVector.cs

@ -8,7 +8,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// <summary> /// <summary>
/// Color represented as a vector in its color space /// Color represented as a vector in its color space
/// </summary> /// </summary>
public interface IColorVector internal interface IColorVector
{ {
/// <summary> /// <summary>
/// Gets the vector representation of the color /// Gets the vector representation of the color

39
tests/ImageSharp.Tests/Colorspaces/ColorSpaceEqualityTests.cs

@ -2,6 +2,8 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.ColorSpaces; using SixLabors.ImageSharp.ColorSpaces;
using Xunit; using Xunit;
@ -14,24 +16,26 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces
/// </summary> /// </summary>
public class ColorSpaceEqualityTests public class ColorSpaceEqualityTests
{ {
public static readonly TheoryData<IColorVector> EmptyData = internal static readonly Dictionary<string, IColorVector> EmptyDataLookup =
new TheoryData<IColorVector> new Dictionary<string, IColorVector>
{ {
CieLab.Empty, {nameof( CieLab), CieLab.Empty },
CieLch.Empty, {nameof( CieLch), CieLch.Empty },
CieLchuv.Empty, {nameof( CieLchuv), CieLchuv.Empty },
CieLuv.Empty, {nameof( CieLuv), CieLuv.Empty },
CieXyz.Empty, {nameof( CieXyz), CieXyz.Empty },
CieXyy.Empty, {nameof( CieXyy), CieXyy.Empty },
Hsl.Empty, {nameof( Hsl), Hsl.Empty },
Hsl.Empty, {nameof( Hsl), Hsl.Empty },
HunterLab.Empty, {nameof( HunterLab), HunterLab.Empty },
Lms.Empty, {nameof( Lms), Lms.Empty },
LinearRgb.Empty, {nameof( LinearRgb), LinearRgb.Empty },
Rgb.Empty, {nameof( Rgb), Rgb.Empty },
YCbCr.Empty {nameof( YCbCr), YCbCr.Empty }
}; };
public static readonly IEnumerable<object[]> EmptyData = EmptyDataLookup.Select(x => new [] { x.Key });
public static readonly TheoryData<object, object, Type> EqualityData = public static readonly TheoryData<object, object, Type> EqualityData =
new TheoryData<object, object, Type> new TheoryData<object, object, Type>
{ {
@ -139,10 +143,11 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces
[Theory] [Theory]
[MemberData(nameof(EmptyData))] [MemberData(nameof(EmptyData))]
public void Vector_Equals_WhenTrue(IColorVector color) public void Vector_Equals_WhenTrue(string color)
{ {
IColorVector colorVector = EmptyDataLookup[color];
// Act // Act
bool equal = color.Vector.Equals(Vector3.Zero); bool equal = colorVector.Vector.Equals(Vector3.Zero);
// Assert // Assert
Assert.True(equal); Assert.True(equal);

Loading…
Cancel
Save