Browse Source

Add Rgb specific tests

pull/664/head
James Jackson-South 8 years ago
parent
commit
e516dfe82f
  1. 2
      src/ImageSharp/ColorSpaces/Rgb.cs
  2. 8
      src/ImageSharp/PixelFormats/Rgba32.cs
  3. 11
      tests/ImageSharp.Tests/Colorspaces/ColorSpaceEqualityTests.cs
  4. 86
      tests/ImageSharp.Tests/Colorspaces/RgbTests.cs

2
src/ImageSharp/ColorSpaces/Rgb.cs

@ -118,7 +118,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
[MethodImpl(InliningOptions.ShortMethod)]
public static implicit operator Rgb(Rgba32 color)
{
return new Rgba32(color.R / 255F, color.G / 255F, color.B / 255F);
return new Rgb(color.R / 255F, color.G / 255F, color.B / 255F);
}
/// <summary>

8
src/ImageSharp/PixelFormats/Rgba32.cs

@ -224,12 +224,8 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <summary>
/// Compares two <see cref="Rgba32"/> objects for equality.
/// </summary>
/// <param name="left">
/// The <see cref="Rgba32"/> on the left side of the operand.
/// </param>
/// <param name="right">
/// The <see cref="Rgba32"/> on the right side of the operand.
/// </param>
/// <param name="left">The <see cref="Rgba32"/> on the left side of the operand.</param>
/// <param name="right">The <see cref="Rgba32"/> on the right side of the operand.</param>
/// <returns>
/// True if the <paramref name="left"/> parameter is equal to the <paramref name="right"/> parameter; otherwise, false.
/// </returns>

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

@ -137,17 +137,6 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces
Assert.False(x.Equals(y));
}
[Fact]
public void RgbEquality()
{
var x = default(Rgb);
var y = new Rgb(Vector3.One);
Assert.Equal(default(Rgb), default(Rgb));
Assert.Equal(new Rgb(1, 0, 1), new Rgb(1, 0, 1));
Assert.Equal(new Rgb(Vector3.One), new Rgb(Vector3.One));
Assert.False(x.Equals(y));
}
[Fact]
public void YCbCrEquality()
{

86
tests/ImageSharp.Tests/Colorspaces/RgbTests.cs

@ -0,0 +1,86 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System.Numerics;
using SixLabors.ImageSharp.ColorSpaces;
using SixLabors.ImageSharp.PixelFormats;
using Xunit;
namespace SixLabors.ImageSharp.Tests.Colorspaces
{
/// <summary>
/// Tests the <see cref="Rgb"/> struct.
/// </summary>
public class RgbTests
{
[Fact]
public void RgbConstructorAssignsFields()
{
const float r = .75F;
const float g = .64F;
const float b = .87F;
var rgb = new Rgb(r, g, b);
Assert.Equal(r, rgb.R);
Assert.Equal(g, rgb.G);
Assert.Equal(b, rgb.B);
}
[Fact]
public void RgbEquality()
{
var x = default(Rgb);
var y = new Rgb(Vector3.One);
Assert.True(default(Rgb) == default(Rgb));
Assert.False(default(Rgb) != default(Rgb));
Assert.Equal(default(Rgb), default(Rgb));
Assert.Equal(new Rgb(1, 0, 1), new Rgb(1, 0, 1));
Assert.Equal(new Rgb(Vector3.One), new Rgb(Vector3.One));
Assert.False(x.Equals(y));
}
[Fact]
public void RgbAndRgb24Operators()
{
const byte r = 64;
const byte g = 128;
const byte b = 255;
var rgb = new Rgb(r / 255F, g / 255F, b / 255F);
Rgb24 rgb24 = rgb;
Rgb rgb2 = rgb24;
Assert.Equal(r, rgb24.R);
Assert.Equal(g, rgb24.G);
Assert.Equal(b, rgb24.B);
Assert.Equal(r / 255F, rgb2.R);
Assert.Equal(g / 255F, rgb2.G);
Assert.Equal(b / 255F, rgb2.B);
}
[Fact]
public void RgbAndRgba32Operators()
{
const byte r = 64;
const byte g = 128;
const byte b = 255;
var rgb = new Rgb(r / 255F, g / 255F, b / 255F);
Rgba32 rgba32 = rgb;
Rgb rgb2 = rgba32;
Assert.Equal(r, rgba32.R);
Assert.Equal(g, rgba32.G);
Assert.Equal(b, rgba32.B);
Assert.Equal(r / 255F, rgb2.R);
Assert.Equal(g / 255F, rgb2.G);
Assert.Equal(b / 255F, rgb2.B);
}
}
}
Loading…
Cancel
Save