Browse Source

Fixing unit tests

Former-commit-id: 368a3a00dc2f284f5ea3dea3d2a43a456141b0cc
pull/17/head
James South 12 years ago
parent
commit
c13bddc07c
  1. 8
      src/ImageProcessor.UnitTests/Extensions/DoubleExtensionsUnitTests.cs
  2. 2
      src/ImageProcessor/Common/Extensions/DoubleExtensions.cs
  3. 41
      src/ImageProcessor/Imaging/Colors/HSLAColor.cs
  4. 28
      src/ImageProcessor/Imaging/Colors/RGBAColor.cs

8
src/ImageProcessor.UnitTests/Extensions/DoubleExtensionsUnitTests.cs

@ -25,10 +25,10 @@ namespace ImageProcessor.UnitTests.Extensions
/// <param name="input">Double input</param> /// <param name="input">Double input</param>
/// <param name="expected">Expected result</param> /// <param name="expected">Expected result</param>
[Test] [Test]
[TestCase(-10, 0x0)] [TestCase(-10, 0)]
[TestCase(1.5, 0x1)] [TestCase(1.5, 2)]
[TestCase(25.7, 0x19)] [TestCase(25.7, 26)]
[TestCase(1289047, 0xFF)] [TestCase(1289047, 255)]
public void TestDoubleToByte(double input, byte expected) public void TestDoubleToByte(double input, byte expected)
{ {
byte result = input.ToByte(); byte result = input.ToByte();

2
src/ImageProcessor/Common/Extensions/DoubleExtensions.cs

@ -32,7 +32,7 @@ namespace ImageProcessor.Common.Extensions
/// </returns> /// </returns>
public static byte ToByte(this double d) public static byte ToByte(this double d)
{ {
return Convert.ToByte(Math.Max(0.0d, Math.Min(255d, d))); // ((d > byte.MaxValue) ? byte.MaxValue : ((d < byte.MinValue) ? byte.MinValue : d)); return Convert.ToByte(Math.Max(0.0d, Math.Min(255d, d)));
} }
} }
} }

41
src/ImageProcessor/Imaging/Colors/HSLAColor.cs

@ -201,7 +201,13 @@ namespace ImageProcessor.Imaging.Colors
/// </returns> /// </returns>
public static implicit operator HslaColor(Color color) public static implicit operator HslaColor(Color color)
{ {
return FromColor(color); HslaColor hslColor = new HslaColor(
color.GetHue() / 360.0f,
color.GetSaturation(),
color.GetBrightness(),
color.A / 255f);
return hslColor;
} }
/// <summary> /// <summary>
@ -231,7 +237,14 @@ namespace ImageProcessor.Imaging.Colors
/// </returns> /// </returns>
public static implicit operator HslaColor(YCbCrColor ycbcrColor) public static implicit operator HslaColor(YCbCrColor ycbcrColor)
{ {
return FromColor(ycbcrColor); Color color = ycbcrColor;
HslaColor hslColor = new HslaColor(
color.GetHue() / 360.0f,
color.GetSaturation(),
color.GetBrightness(),
color.A / 255f);
return hslColor;
} }
/// <summary> /// <summary>
@ -283,7 +296,29 @@ namespace ImageProcessor.Imaging.Colors
/// </returns> /// </returns>
public static implicit operator RgbaColor(HslaColor hslaColor) public static implicit operator RgbaColor(HslaColor hslaColor)
{ {
return RgbaColor.FromColor(hslaColor); float r = 0, g = 0, b = 0;
if (Math.Abs(hslaColor.l - 0) > .0001)
{
if (Math.Abs(hslaColor.s - 0) <= .0001)
{
r = g = b = hslaColor.l;
}
else
{
float temp2 = GetTemp2(hslaColor);
float temp1 = (2.0f * hslaColor.l) - temp2;
r = GetColorComponent(temp1, temp2, hslaColor.h + (1.0f / 3.0f));
g = GetColorComponent(temp1, temp2, hslaColor.h);
b = GetColorComponent(temp1, temp2, hslaColor.h - (1.0f / 3.0f));
}
}
return RgbaColor.FromRgba(
Convert.ToByte(255 * r),
Convert.ToByte(255 * g),
Convert.ToByte(255 * b),
Convert.ToByte(255 * hslaColor.a));
} }
/// <summary> /// <summary>

28
src/ImageProcessor/Imaging/Colors/RGBAColor.cs

@ -254,20 +254,20 @@ namespace ImageProcessor.Imaging.Colors
return HslaColor.FromColor(rgba); return HslaColor.FromColor(rgba);
} }
/// <summary> ///// <summary>
/// Allows the implicit conversion of an instance of <see cref="RgbaColor"/> to a ///// Allows the implicit conversion of an instance of <see cref="RgbaColor"/> to a
/// <see cref="YCbCrColor"/>. ///// <see cref="YCbCrColor"/>.
/// </summary> ///// </summary>
/// <param name="rgba"> ///// <param name="rgba">
/// The instance of <see cref="RgbaColor"/> to convert. ///// The instance of <see cref="RgbaColor"/> to convert.
/// </param> ///// </param>
/// <returns> ///// <returns>
/// An instance of <see cref="YCbCrColor"/>. ///// An instance of <see cref="YCbCrColor"/>.
/// </returns> ///// </returns>
public static implicit operator YCbCrColor(RgbaColor rgba) //public static implicit operator YCbCrColor(RgbaColor rgba)
{ //{
return YCbCrColor.FromColor(rgba); // return YCbCrColor.FromColor(rgba);
} //}
/// <summary> /// <summary>
/// Returns a <see cref="System.String" /> that represents this instance. /// Returns a <see cref="System.String" /> that represents this instance.

Loading…
Cancel
Save