Browse Source

Fixing unit tests

Former-commit-id: fc41dd3f921e5fd4a6594b3fe5efb61c20d66515
af/merge-core
James South 12 years ago
parent
commit
f0e3bf887b
  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="expected">Expected result</param>
[Test]
[TestCase(-10, 0x0)]
[TestCase(1.5, 0x1)]
[TestCase(25.7, 0x19)]
[TestCase(1289047, 0xFF)]
[TestCase(-10, 0)]
[TestCase(1.5, 2)]
[TestCase(25.7, 26)]
[TestCase(1289047, 255)]
public void TestDoubleToByte(double input, byte expected)
{
byte result = input.ToByte();

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

@ -32,7 +32,7 @@ namespace ImageProcessor.Common.Extensions
/// </returns>
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>
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>
@ -231,7 +237,14 @@ namespace ImageProcessor.Imaging.Colors
/// </returns>
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>
@ -283,7 +296,29 @@ namespace ImageProcessor.Imaging.Colors
/// </returns>
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>

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

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

Loading…
Cancel
Save