mirror of https://github.com/SixLabors/ImageSharp
83 changed files with 5479 additions and 9355 deletions
@ -1,151 +0,0 @@ |
|||||
// Copyright (c) Six Labors and contributors.
|
|
||||
// Licensed under the Apache License, Version 2.0.
|
|
||||
|
|
||||
using System.Collections.Generic; |
|
||||
using System.Numerics; |
|
||||
using SixLabors.ImageSharp.PixelFormats; |
|
||||
using Xunit; |
|
||||
|
|
||||
namespace SixLabors.ImageSharp.Tests.Colors |
|
||||
{ |
|
||||
public class ColorConstructorTests |
|
||||
{ |
|
||||
public static IEnumerable<object[]> Vector4Data |
|
||||
{ |
|
||||
get |
|
||||
{ |
|
||||
Vector4[] vector4Values = new Vector4[] |
|
||||
{ |
|
||||
Vector4.Zero, |
|
||||
Vector4.One, |
|
||||
Vector4.UnitX, |
|
||||
Vector4.UnitY, |
|
||||
Vector4.UnitZ, |
|
||||
Vector4.UnitW, |
|
||||
}; |
|
||||
|
|
||||
foreach (Vector4 vector4 in vector4Values) |
|
||||
{ |
|
||||
// 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 }; |
|
||||
|
|
||||
yield return new object[] { new Argb32(vector4), vector4Components }; |
|
||||
yield return new object[] { new Bgra4444(vector4), vector4Components }; |
|
||||
yield return new object[] { new Bgra5551(vector4), vector4Components }; |
|
||||
yield return new object[] { new Byte4(vector4), vector4Components }; |
|
||||
yield return new object[] { new HalfVector4(vector4), vector4Components }; |
|
||||
yield return new object[] { new NormalizedByte4(vector4), vector4Components }; |
|
||||
yield return new object[] { new NormalizedShort4(vector4), vector4Components }; |
|
||||
yield return new object[] { new Rgba1010102(vector4), vector4Components }; |
|
||||
yield return new object[] { new Rgba64(vector4), vector4Components }; |
|
||||
yield return new object[] { new Short4(vector4), vector4Components }; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
public static IEnumerable<object[]> Vector3Data |
|
||||
{ |
|
||||
get |
|
||||
{ |
|
||||
Dictionary<Vector3, Vector4> vector3Values = new Dictionary<Vector3, Vector4>() |
|
||||
{ |
|
||||
{ Vector3.One, Vector4.One }, |
|
||||
{ Vector3.Zero, new Vector4(0, 0, 0, 1) }, |
|
||||
{ Vector3.UnitX, new Vector4(1, 0, 0, 1) }, |
|
||||
{ Vector3.UnitY, new Vector4(0, 1, 0, 1) }, |
|
||||
{ Vector3.UnitZ, new Vector4(0, 0, 1, 1) }, |
|
||||
}; |
|
||||
|
|
||||
foreach (Vector3 vector3 in vector3Values.Keys) |
|
||||
{ |
|
||||
Vector4 vector4 = vector3Values[vector3]; |
|
||||
// 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 }; |
|
||||
|
|
||||
yield return new object[] { new Argb32(vector3), vector4Components }; |
|
||||
yield return new object[] { new Bgr565(vector3), vector4Components }; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
public static IEnumerable<object[]> Float4Data |
|
||||
{ |
|
||||
get |
|
||||
{ |
|
||||
Vector4[] vector4Values = new Vector4[] |
|
||||
{ |
|
||||
Vector4.Zero, |
|
||||
Vector4.One, |
|
||||
Vector4.UnitX, |
|
||||
Vector4.UnitY, |
|
||||
Vector4.UnitZ, |
|
||||
Vector4.UnitW, |
|
||||
}; |
|
||||
|
|
||||
foreach (Vector4 vector4 in vector4Values) |
|
||||
{ |
|
||||
// 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 }; |
|
||||
|
|
||||
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 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 HalfVector4(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; |
|
||||
yield return new object[] { new NormalizedByte4(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; |
|
||||
yield return new object[] { new NormalizedShort4(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; |
|
||||
yield return new object[] { new Rgba1010102(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; |
|
||||
yield return new object[] { new Rgba64(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; |
|
||||
yield return new object[] { new Short4(vector4.X, vector4.Y, vector4.Z, vector4.W), vector4Components }; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
public static IEnumerable<object[]> Float3Data |
|
||||
{ |
|
||||
get |
|
||||
{ |
|
||||
Dictionary<Vector3, Vector4> vector3Values = new Dictionary<Vector3, Vector4>() |
|
||||
{ |
|
||||
{ Vector3.One, Vector4.One }, |
|
||||
{ Vector3.Zero, new Vector4(0, 0, 0, 1) }, |
|
||||
{ Vector3.UnitX, new Vector4(1, 0, 0, 1) }, |
|
||||
{ Vector3.UnitY, new Vector4(0, 1, 0, 1) }, |
|
||||
{ Vector3.UnitZ, new Vector4(0, 0, 1, 1) }, |
|
||||
}; |
|
||||
|
|
||||
foreach (Vector3 vector3 in vector3Values.Keys) |
|
||||
{ |
|
||||
Vector4 vector4 = vector3Values[vector3]; |
|
||||
// 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 }; |
|
||||
|
|
||||
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 }; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(Vector4Data))] |
|
||||
[MemberData(nameof(Vector3Data))] |
|
||||
[MemberData(nameof(Float4Data))] |
|
||||
[MemberData(nameof(Float3Data))] |
|
||||
public void ConstructorToVector4(IPixel packedVector, float[] expectedVector4Components) |
|
||||
{ |
|
||||
// Arrange
|
|
||||
int precision = 2; |
|
||||
// using float array to work around a bug in xunit corruptint the state of any Vector4 passed as MemberData
|
|
||||
Vector4 expectedVector4 = new Vector4(expectedVector4Components[0], expectedVector4Components[1], expectedVector4Components[2], expectedVector4Components[3]); |
|
||||
|
|
||||
// Act
|
|
||||
Vector4 vector4 = packedVector.ToVector4(); |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.Equal(expectedVector4.X, vector4.X, precision); |
|
||||
Assert.Equal(expectedVector4.Y, vector4.Y, precision); |
|
||||
Assert.Equal(expectedVector4.Z, vector4.Z, precision); |
|
||||
Assert.Equal(expectedVector4.W, vector4.W, precision); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,216 +0,0 @@ |
|||||
// Copyright (c) Six Labors and contributors.
|
|
||||
// Licensed under the Apache License, Version 2.0.
|
|
||||
|
|
||||
using System; |
|
||||
using System.Numerics; |
|
||||
using SixLabors.ImageSharp.PixelFormats; |
|
||||
using Xunit; |
|
||||
|
|
||||
namespace SixLabors.ImageSharp.Tests.Colors |
|
||||
{ |
|
||||
/// <summary>
|
|
||||
/// Test implementations of IEquatable
|
|
||||
/// </summary>
|
|
||||
public class ColorEqualityTests |
|
||||
{ |
|
||||
public static readonly TheoryData<object, object, Type> EqualityData = |
|
||||
new TheoryData<object, object, Type>() |
|
||||
{ |
|
||||
{ new Alpha8(.5F), new Alpha8(.5F), typeof(Alpha8) }, |
|
||||
{ new Argb32(Vector4.One), new Argb32(Vector4.One), typeof(Argb32) }, |
|
||||
{ new Bgr565(Vector3.One), new Bgr565(Vector3.One), typeof(Bgr565) }, |
|
||||
{ new Bgra4444(Vector4.One), new Bgra4444(Vector4.One), typeof(Bgra4444) }, |
|
||||
{ new Bgra5551(Vector4.One), new Bgra5551(Vector4.One), typeof(Bgra5551) }, |
|
||||
{ new Byte4(Vector4.One * 255), new Byte4(Vector4.One * 255), typeof(Byte4) }, |
|
||||
{ new HalfSingle(-1F), new HalfSingle(-1F), typeof(HalfSingle) }, |
|
||||
{ new HalfVector2(0.1f, -0.3f), new HalfVector2(0.1f, -0.3f), typeof(HalfVector2) }, |
|
||||
{ new HalfVector4(Vector4.One), new HalfVector4(Vector4.One), typeof(HalfVector4) }, |
|
||||
{ new NormalizedByte2(-Vector2.One), new NormalizedByte2(-Vector2.One), typeof(NormalizedByte2) }, |
|
||||
{ new NormalizedByte4(Vector4.One), new NormalizedByte4(Vector4.One), typeof(NormalizedByte4) }, |
|
||||
{ new NormalizedShort2(Vector2.One), new NormalizedShort2(Vector2.One), typeof(NormalizedShort2) }, |
|
||||
{ new NormalizedShort4(Vector4.One), new NormalizedShort4(Vector4.One), typeof(NormalizedShort4) }, |
|
||||
{ new Rg32(Vector2.One), new Rg32(Vector2.One), typeof(Rg32) }, |
|
||||
{ new Rgba1010102(Vector4.One), new Rgba1010102(Vector4.One), typeof(Rgba1010102) }, |
|
||||
{ new Rgba32(Vector4.One), new Rgba32(Vector4.One), typeof(Rgba32) }, |
|
||||
{ new Rgba64(Vector4.One), new Rgba64(Vector4.One), typeof(Rgba64) }, |
|
||||
{ new Short2(Vector2.One * 0x7FFF), new Short2(Vector2.One * 0x7FFF), typeof(Short2) }, |
|
||||
{ new Short4(Vector4.One * 0x7FFF), new Short4(Vector4.One * 0x7FFF), typeof(Short4) }, |
|
||||
}; |
|
||||
|
|
||||
public static readonly TheoryData<object, object, Type> NotEqualityDataNulls = |
|
||||
new TheoryData<object, object, Type>() |
|
||||
{ |
|
||||
// Valid object against null
|
|
||||
{ new Alpha8(.5F), null, typeof(Alpha8) }, |
|
||||
{ new Argb32(Vector4.One), null, typeof(Argb32) }, |
|
||||
{ new Bgr565(Vector3.One), null, typeof(Bgr565) }, |
|
||||
{ new Bgra4444(Vector4.One), null, typeof(Bgra4444) }, |
|
||||
{ new Bgra5551(Vector4.One), null, typeof(Bgra5551) }, |
|
||||
{ new Byte4(Vector4.One * 255), null, typeof(Byte4) }, |
|
||||
{ new HalfSingle(-1F), null, typeof(HalfSingle) }, |
|
||||
{ new HalfVector2(0.1f, -0.3f), null, typeof(HalfVector2) }, |
|
||||
{ new HalfVector4(Vector4.One), null, typeof(HalfVector4) }, |
|
||||
{ new NormalizedByte2(-Vector2.One), null, typeof(NormalizedByte2) }, |
|
||||
{ new NormalizedByte4(Vector4.One), null, typeof(NormalizedByte4) }, |
|
||||
{ new NormalizedShort2(Vector2.One), null, typeof(NormalizedShort2) }, |
|
||||
{ new NormalizedShort4(Vector4.One), null, typeof(NormalizedShort4) }, |
|
||||
{ new Rg32(Vector2.One), null, typeof(Rg32) }, |
|
||||
{ new Rgba1010102(Vector4.One), null, typeof(Rgba1010102) }, |
|
||||
{ new Rgba64(Vector4.One), null, typeof(Rgba64) }, |
|
||||
{ new Short2(Vector2.One * 0x7FFF), null, typeof(Short2) }, |
|
||||
{ new Short4(Vector4.One * 0x7FFF), null, typeof(Short4) }, |
|
||||
}; |
|
||||
|
|
||||
public static readonly TheoryData<object, object, Type> NotEqualityDataDifferentObjects = |
|
||||
new TheoryData<object, object, Type>() |
|
||||
{ |
|
||||
// Valid objects of different types but not equal
|
|
||||
{ new Alpha8(.5F), new Argb32(Vector4.Zero), null }, |
|
||||
{ new HalfSingle(-1F), new NormalizedShort2(Vector2.Zero), null }, |
|
||||
{ new Rgba1010102(Vector4.One), new Bgra5551(Vector4.Zero), null }, |
|
||||
}; |
|
||||
|
|
||||
public static readonly TheoryData<object, object, Type> NotEqualityData = |
|
||||
new TheoryData<object, object, Type>() |
|
||||
{ |
|
||||
// Valid objects of the same type but not equal
|
|
||||
{ new Alpha8(.5F), new Alpha8(.8F), typeof(Alpha8) }, |
|
||||
{ new Argb32(Vector4.One), new Argb32(Vector4.Zero), typeof(Argb32) }, |
|
||||
{ new Bgr565(Vector3.One), new Bgr565(Vector3.Zero), typeof(Bgr565) }, |
|
||||
{ new Bgra4444(Vector4.One), new Bgra4444(Vector4.Zero), typeof(Bgra4444) }, |
|
||||
{ new Bgra5551(Vector4.One), new Bgra5551(Vector4.Zero), typeof(Bgra5551) }, |
|
||||
{ new Byte4(Vector4.One * 255), new Byte4(Vector4.Zero), typeof(Byte4) }, |
|
||||
{ new HalfSingle(-1F), new HalfSingle(1F), typeof(HalfSingle) }, |
|
||||
{ new HalfVector2(0.1f, -0.3f), new HalfVector2(0.1f, 0.3f), typeof(HalfVector2) }, |
|
||||
{ new HalfVector4(Vector4.One), new HalfVector4(Vector4.Zero), typeof(HalfVector4) }, |
|
||||
{ new NormalizedByte2(-Vector2.One), new NormalizedByte2(-Vector2.Zero), typeof(NormalizedByte2) }, |
|
||||
{ new NormalizedByte4(Vector4.One), new NormalizedByte4(Vector4.Zero), typeof(NormalizedByte4) }, |
|
||||
{ new NormalizedShort2(Vector2.One), new NormalizedShort2(Vector2.Zero), typeof(NormalizedShort2) }, |
|
||||
{ new NormalizedShort4(Vector4.One), new NormalizedShort4(Vector4.Zero), typeof(NormalizedShort4) }, |
|
||||
{ new Rg32(Vector2.One), new Rg32(Vector2.Zero), typeof(Rg32) }, |
|
||||
{ new Rgba1010102(Vector4.One), new Rgba1010102(Vector4.Zero), typeof(Rgba1010102) }, |
|
||||
{ new Rgba32(Vector4.One), new Rgba32(Vector4.Zero), typeof(Rgba32) }, |
|
||||
{ new Rgba64(Vector4.One), new Rgba64(Vector4.Zero), typeof(Rgba64) }, |
|
||||
{ new Short2(Vector2.One * 0x7FFF), new Short2(Vector2.Zero), typeof(Short2) }, |
|
||||
{ new Short4(Vector4.One * 0x7FFF), new Short4(Vector4.Zero), typeof(Short4) }, |
|
||||
}; |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(EqualityData))] |
|
||||
public void Equality(object first, object second, Type type) |
|
||||
{ |
|
||||
// Act
|
|
||||
bool equal = first.Equals(second); |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.True(equal); |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(NotEqualityDataNulls))] |
|
||||
[MemberData(nameof(NotEqualityDataDifferentObjects))] |
|
||||
[MemberData(nameof(NotEqualityData))] |
|
||||
public void NotEquality(object first, object second, Type type) |
|
||||
{ |
|
||||
// Act
|
|
||||
bool equal = first.Equals(second); |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.False(equal); |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(EqualityData))] |
|
||||
public void HashCodeEqual(object first, object second, Type type) |
|
||||
{ |
|
||||
// Act
|
|
||||
bool equal = first.GetHashCode() == second.GetHashCode(); |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.True(equal); |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(NotEqualityDataDifferentObjects))] |
|
||||
public void HashCodeNotEqual(object first, object second, Type type) |
|
||||
{ |
|
||||
// Act
|
|
||||
bool equal = first.GetHashCode() == second.GetHashCode(); |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.False(equal); |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(EqualityData))] |
|
||||
public void EqualityObject(object first, object second, Type type) |
|
||||
{ |
|
||||
// Arrange
|
|
||||
// Cast to the known object types, this is so that we can hit the
|
|
||||
// equality operator on the concrete type, otherwise it goes to the
|
|
||||
// default "object" one :)
|
|
||||
dynamic firstObject = Convert.ChangeType(first, type); |
|
||||
dynamic secondObject = Convert.ChangeType(second, type); |
|
||||
|
|
||||
// Act
|
|
||||
dynamic equal = firstObject.Equals(secondObject); |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.True(equal); |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(NotEqualityData))] |
|
||||
public void NotEqualityObject(object first, object second, Type type) |
|
||||
{ |
|
||||
// Arrange
|
|
||||
// Cast to the known object types, this is so that we can hit the
|
|
||||
// equality operator on the concrete type, otherwise it goes to the
|
|
||||
// default "object" one :)
|
|
||||
dynamic firstObject = Convert.ChangeType(first, type); |
|
||||
dynamic secondObject = Convert.ChangeType(second, type); |
|
||||
|
|
||||
// Act
|
|
||||
dynamic equal = firstObject.Equals(secondObject); |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.False(equal); |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(EqualityData))] |
|
||||
public void EqualityOperator(object first, object second, Type type) |
|
||||
{ |
|
||||
// Arrange
|
|
||||
// Cast to the known object types, this is so that we can hit the
|
|
||||
// equality operator on the concrete type, otherwise it goes to the
|
|
||||
// default "object" one :)
|
|
||||
dynamic firstObject = Convert.ChangeType(first, type); |
|
||||
dynamic secondObject = Convert.ChangeType(second, type); |
|
||||
|
|
||||
// Act
|
|
||||
dynamic equal = firstObject == secondObject; |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.True(equal); |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(NotEqualityData))] |
|
||||
public void NotEqualityOperator(object first, object second, Type type) |
|
||||
{ |
|
||||
// Arrange
|
|
||||
// Cast to the known object types, this is so that we can hit the
|
|
||||
// equality operator on the concrete type, otherwise it goes to the
|
|
||||
// default "object" one :)
|
|
||||
dynamic firstObject = Convert.ChangeType(first, type); |
|
||||
dynamic secondObject = Convert.ChangeType(second, type); |
|
||||
|
|
||||
// Act
|
|
||||
dynamic notEqual = firstObject != secondObject; |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.True(notEqual); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,88 +0,0 @@ |
|||||
// Copyright (c) Six Labors and contributors.
|
|
||||
// Licensed under the Apache License, Version 2.0.
|
|
||||
|
|
||||
using System.Collections.Generic; |
|
||||
using System.Numerics; |
|
||||
using SixLabors.ImageSharp.PixelFormats; |
|
||||
using Xunit; |
|
||||
|
|
||||
namespace SixLabors.ImageSharp.Tests.Colors |
|
||||
{ |
|
||||
public class ColorPackingTests |
|
||||
{ |
|
||||
public static IEnumerable<object[]> Vector4PackData |
|
||||
{ |
|
||||
get |
|
||||
{ |
|
||||
Vector4[] vector4Values = new Vector4[] |
|
||||
{ |
|
||||
Vector4.Zero, |
|
||||
Vector4.One, |
|
||||
Vector4.UnitX, |
|
||||
Vector4.UnitY, |
|
||||
Vector4.UnitZ, |
|
||||
Vector4.UnitW, |
|
||||
}; |
|
||||
|
|
||||
foreach (Vector4 vector4 in vector4Values) |
|
||||
{ |
|
||||
float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W }; |
|
||||
|
|
||||
yield return new object[] { default(Argb32), vector4Components }; |
|
||||
yield return new object[] { default(Bgra4444), vector4Components }; |
|
||||
yield return new object[] { default(Bgra5551), vector4Components }; |
|
||||
yield return new object[] { default(Byte4), vector4Components }; |
|
||||
yield return new object[] { default(HalfVector4), vector4Components }; |
|
||||
yield return new object[] { default(NormalizedByte4), vector4Components }; |
|
||||
yield return new object[] { default(NormalizedShort4), vector4Components }; |
|
||||
yield return new object[] { default(Rgba1010102), vector4Components }; |
|
||||
yield return new object[] { default(Rgba64), vector4Components }; |
|
||||
yield return new object[] { default(Short4), vector4Components }; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
public static IEnumerable<object[]> Vector3PackData |
|
||||
{ |
|
||||
get |
|
||||
{ |
|
||||
Vector4[] vector4Values = new Vector4[] |
|
||||
{ |
|
||||
Vector4.One, |
|
||||
new Vector4(0, 0, 0, 1), |
|
||||
new Vector4(1, 0, 0, 1), |
|
||||
new Vector4(0, 1, 0, 1), |
|
||||
new Vector4(0, 0, 1, 1), |
|
||||
}; |
|
||||
|
|
||||
foreach (Vector4 vector4 in vector4Values) |
|
||||
{ |
|
||||
float[] vector4Components = new float[] { vector4.X, vector4.Y, vector4.Z, vector4.W }; |
|
||||
|
|
||||
yield return new object[] { default(Argb32), vector4Components }; |
|
||||
yield return new object[] { new Bgr565(), vector4Components }; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
[Theory] |
|
||||
[MemberData(nameof(Vector4PackData))] |
|
||||
[MemberData(nameof(Vector3PackData))] |
|
||||
public void FromVector4ToVector4(IPixel packedVector, float[] vector4ComponentsToPack) |
|
||||
{ |
|
||||
// Arrange
|
|
||||
int precision = 2; |
|
||||
Vector4 vector4ToPack = new Vector4(vector4ComponentsToPack[0], vector4ComponentsToPack[1], vector4ComponentsToPack[2], vector4ComponentsToPack[3]); |
|
||||
packedVector.PackFromVector4(vector4ToPack); |
|
||||
|
|
||||
// Act
|
|
||||
Vector4 vector4 = packedVector.ToVector4(); |
|
||||
|
|
||||
// Assert
|
|
||||
Assert.Equal(vector4ToPack.X, vector4.X, precision); |
|
||||
Assert.Equal(vector4ToPack.Y, vector4.Y, precision); |
|
||||
Assert.Equal(vector4ToPack.Z, vector4.Z, precision); |
|
||||
Assert.Equal(vector4ToPack.W, vector4.W, precision); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
File diff suppressed because it is too large
@ -1,175 +1,175 @@ |
|||||
// Copyright (c) Six Labors and contributors.
|
//// Copyright (c) Six Labors and contributors.
|
||||
// Licensed under the Apache License, Version 2.0.
|
//// Licensed under the Apache License, Version 2.0.
|
||||
|
|
||||
using System; |
//using System;
|
||||
using System.Numerics; |
//using System.Numerics;
|
||||
using SixLabors.ImageSharp.PixelFormats; |
//using SixLabors.ImageSharp.PixelFormats;
|
||||
using Xunit; |
//using Xunit;
|
||||
|
|
||||
namespace SixLabors.ImageSharp.Tests.PixelFormats |
//namespace SixLabors.ImageSharp.Tests.PixelFormats
|
||||
{ |
//{
|
||||
public class Rgb24Tests |
// public class Rgb24Tests
|
||||
{ |
// {
|
||||
public static readonly TheoryData<byte, byte, byte> ColorData = |
// public static readonly TheoryData<byte, byte, byte> ColorData =
|
||||
new TheoryData<byte, byte, byte>() { { 1, 2, 3 }, { 4, 5, 6 }, { 0, 255, 42 } }; |
// new TheoryData<byte, byte, byte>() { { 1, 2, 3 }, { 4, 5, 6 }, { 0, 255, 42 } };
|
||||
|
|
||||
[Theory] |
// [Theory]
|
||||
[MemberData(nameof(ColorData))] |
// [MemberData(nameof(ColorData))]
|
||||
public void Constructor(byte r, byte g, byte b) |
// public void Constructor(byte r, byte g, byte b)
|
||||
{ |
// {
|
||||
var p = new Rgb24(r, g, b); |
// var p = new Rgb24(r, g, b);
|
||||
|
|
||||
Assert.Equal(r, p.R); |
// Assert.Equal(r, p.R);
|
||||
Assert.Equal(g, p.G); |
// Assert.Equal(g, p.G);
|
||||
Assert.Equal(b, p.B); |
// Assert.Equal(b, p.B);
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public unsafe void ByteLayoutIsSequentialRgb() |
// public unsafe void ByteLayoutIsSequentialRgb()
|
||||
{ |
// {
|
||||
var color = new Rgb24(1, 2, 3); |
// var color = new Rgb24(1, 2, 3);
|
||||
byte* ptr = (byte*)&color; |
// byte* ptr = (byte*)&color;
|
||||
|
|
||||
Assert.Equal(1, ptr[0]); |
// Assert.Equal(1, ptr[0]);
|
||||
Assert.Equal(2, ptr[1]); |
// Assert.Equal(2, ptr[1]);
|
||||
Assert.Equal(3, ptr[2]); |
// Assert.Equal(3, ptr[2]);
|
||||
} |
// }
|
||||
|
|
||||
[Theory] |
// [Theory]
|
||||
[MemberData(nameof(ColorData))] |
// [MemberData(nameof(ColorData))]
|
||||
public void Equals_WhenTrue(byte r, byte g, byte b) |
// public void Equals_WhenTrue(byte r, byte g, byte b)
|
||||
{ |
// {
|
||||
var x = new Rgb24(r, g, b); |
// var x = new Rgb24(r, g, b);
|
||||
var y = new Rgb24(r, g, b); |
// var y = new Rgb24(r, g, b);
|
||||
|
|
||||
Assert.True(x.Equals(y)); |
// Assert.True(x.Equals(y));
|
||||
Assert.True(x.Equals((object)y)); |
// Assert.True(x.Equals((object)y));
|
||||
Assert.Equal(x.GetHashCode(), y.GetHashCode()); |
// Assert.Equal(x.GetHashCode(), y.GetHashCode());
|
||||
} |
// }
|
||||
|
|
||||
[Theory] |
// [Theory]
|
||||
[InlineData(1, 2, 3, 1, 2, 4)] |
// [InlineData(1, 2, 3, 1, 2, 4)]
|
||||
[InlineData(0, 255, 0, 0, 244, 0)] |
// [InlineData(0, 255, 0, 0, 244, 0)]
|
||||
[InlineData(1, 255, 0, 0, 255, 0)] |
// [InlineData(1, 255, 0, 0, 255, 0)]
|
||||
public void Equals_WhenFalse(byte r1, byte g1, byte b1, byte r2, byte g2, byte b2) |
// public void Equals_WhenFalse(byte r1, byte g1, byte b1, byte r2, byte g2, byte b2)
|
||||
{ |
// {
|
||||
var a = new Rgb24(r1, g1, b1); |
// var a = new Rgb24(r1, g1, b1);
|
||||
var b = new Rgb24(r2, g2, b2); |
// var b = new Rgb24(r2, g2, b2);
|
||||
|
|
||||
Assert.False(a.Equals(b)); |
// Assert.False(a.Equals(b));
|
||||
Assert.False(a.Equals((object)b)); |
// Assert.False(a.Equals((object)b));
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void PackFromRgba32() |
// public void PackFromRgba32()
|
||||
{ |
// {
|
||||
var rgb = default(Rgb24); |
// var rgb = default(Rgb24);
|
||||
rgb.PackFromRgba32(new Rgba32(1, 2, 3, 4)); |
// rgb.PackFromRgba32(new Rgba32(1, 2, 3, 4));
|
||||
|
|
||||
Assert.Equal(1, rgb.R); |
// Assert.Equal(1, rgb.R);
|
||||
Assert.Equal(2, rgb.G); |
// Assert.Equal(2, rgb.G);
|
||||
Assert.Equal(3, rgb.B); |
// Assert.Equal(3, rgb.B);
|
||||
} |
// }
|
||||
|
|
||||
private static Vector4 Vec(byte r, byte g, byte b, byte a = 255) => new Vector4( |
// private static Vector4 Vec(byte r, byte g, byte b, byte a = 255) => new Vector4(
|
||||
r / 255f, |
// r / 255f,
|
||||
g / 255f, |
// g / 255f,
|
||||
b / 255f, |
// b / 255f,
|
||||
a / 255f); |
// a / 255f);
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void PackFromVector4() |
// public void PackFromVector4()
|
||||
{ |
// {
|
||||
var rgb = default(Rgb24); |
// var rgb = default(Rgb24);
|
||||
rgb.PackFromVector4(Vec(1, 2, 3, 4)); |
// rgb.PackFromVector4(Vec(1, 2, 3, 4));
|
||||
|
|
||||
Assert.Equal(1, rgb.R); |
// Assert.Equal(1, rgb.R);
|
||||
Assert.Equal(2, rgb.G); |
// Assert.Equal(2, rgb.G);
|
||||
Assert.Equal(3, rgb.B); |
// Assert.Equal(3, rgb.B);
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void ToVector4() |
// public void ToVector4()
|
||||
{ |
// {
|
||||
var rgb = new Rgb24(1, 2, 3); |
// var rgb = new Rgb24(1, 2, 3);
|
||||
|
|
||||
Assert.Equal(Vec(1, 2, 3), rgb.ToVector4()); |
// Assert.Equal(Vec(1, 2, 3), rgb.ToVector4());
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void ToRgb24() |
// public void ToRgb24()
|
||||
{ |
// {
|
||||
var rgb = new Rgb24(1, 2, 3); |
// var rgb = new Rgb24(1, 2, 3);
|
||||
var dest = default(Rgb24); |
// var dest = default(Rgb24);
|
||||
|
|
||||
rgb.ToRgb24(ref dest); |
// rgb.ToRgb24(ref dest);
|
||||
|
|
||||
Assert.Equal(rgb, dest); |
// Assert.Equal(rgb, dest);
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void ToRgba32() |
// public void ToRgba32()
|
||||
{ |
// {
|
||||
var rgb = new Rgb24(1, 2, 3); |
// var rgb = new Rgb24(1, 2, 3);
|
||||
var rgba = default(Rgba32); |
// var rgba = default(Rgba32);
|
||||
|
|
||||
rgb.ToRgba32(ref rgba); |
// rgb.ToRgba32(ref rgba);
|
||||
|
|
||||
Assert.Equal(new Rgba32(1, 2, 3, 255), rgba); |
// Assert.Equal(new Rgba32(1, 2, 3, 255), rgba);
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void ToBgr24() |
// public void ToBgr24()
|
||||
{ |
// {
|
||||
var rgb = new Rgb24(1, 2, 3); |
// var rgb = new Rgb24(1, 2, 3);
|
||||
var bgr = default(Bgr24); |
// var bgr = default(Bgr24);
|
||||
|
|
||||
rgb.ToBgr24(ref bgr); |
// rgb.ToBgr24(ref bgr);
|
||||
|
|
||||
Assert.Equal(new Bgr24(1, 2, 3), bgr); |
// Assert.Equal(new Bgr24(1, 2, 3), bgr);
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void ToBgra32() |
// public void ToBgra32()
|
||||
{ |
// {
|
||||
var rgb = new Rgb24(1, 2, 3); |
// var rgb = new Rgb24(1, 2, 3);
|
||||
var bgra = default(Bgra32); |
// var bgra = default(Bgra32);
|
||||
|
|
||||
rgb.ToBgra32(ref bgra); |
// rgb.ToBgra32(ref bgra);
|
||||
|
|
||||
Assert.Equal(new Bgra32(1, 2, 3, 255), bgra); |
// Assert.Equal(new Bgra32(1, 2, 3, 255), bgra);
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void Rgb24_PackFromRgb48_ToRgb48() |
// public void Rgb24_PackFromRgb48_ToRgb48()
|
||||
{ |
// {
|
||||
// arrange
|
// // arrange
|
||||
var input = default(Rgb24); |
// var input = default(Rgb24);
|
||||
var actual = default(Rgb48); |
// var actual = default(Rgb48);
|
||||
var expected = new Rgb48(65535, 0, 65535); |
// var expected = new Rgb48(65535, 0, 65535);
|
||||
|
|
||||
// act
|
// // act
|
||||
input.PackFromRgb48(expected); |
// input.PackFromRgb48(expected);
|
||||
input.ToRgb48(ref actual); |
// input.ToRgb48(ref actual);
|
||||
|
|
||||
// assert
|
// // assert
|
||||
Assert.Equal(expected, actual); |
// Assert.Equal(expected, actual);
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void Rgb24_PackFromRgba64_ToRgba64() |
// public void Rgb24_PackFromRgba64_ToRgba64()
|
||||
{ |
// {
|
||||
// arrange
|
// // arrange
|
||||
var input = default(Rgb24); |
// var input = default(Rgb24);
|
||||
var actual = default(Rgba64); |
// var actual = default(Rgba64);
|
||||
var expected = new Rgba64(65535, 0, 65535, 65535); |
// var expected = new Rgba64(65535, 0, 65535, 65535);
|
||||
|
|
||||
// act
|
// // act
|
||||
input.PackFromRgba64(expected); |
// input.PackFromRgba64(expected);
|
||||
input.ToRgba64(ref actual); |
// input.ToRgba64(ref actual);
|
||||
|
|
||||
// assert
|
// // assert
|
||||
Assert.Equal(expected, actual); |
// Assert.Equal(expected, actual);
|
||||
} |
// }
|
||||
} |
// }
|
||||
} |
//}
|
||||
@ -1,199 +1,192 @@ |
|||||
// Copyright (c) Six Labors and contributors.
|
//// Copyright (c) Six Labors and contributors.
|
||||
// Licensed under the Apache License, Version 2.0.
|
//// Licensed under the Apache License, Version 2.0.
|
||||
|
|
||||
using System.Numerics; |
//using System.Numerics;
|
||||
using SixLabors.ImageSharp.PixelFormats; |
//using SixLabors.ImageSharp.PixelFormats;
|
||||
using Xunit; |
//using Xunit;
|
||||
|
|
||||
namespace SixLabors.ImageSharp.Tests.PixelFormats |
//namespace SixLabors.ImageSharp.Tests.PixelFormats
|
||||
{ |
//{
|
||||
public class Rgb48Tests |
// public class Rgb48Tests
|
||||
{ |
// {
|
||||
[Fact] |
// [Fact]
|
||||
public void Rgb48_Values() |
// public void Rgb48_Values()
|
||||
{ |
// {
|
||||
var rgb = new Rgba64(5243, 9830, 19660, 29491); |
// var rgb = new Rgba64(5243, 9830, 19660, 29491);
|
||||
|
|
||||
Assert.Equal(5243, rgb.R); |
// Assert.Equal(5243, rgb.R);
|
||||
Assert.Equal(9830, rgb.G); |
// Assert.Equal(9830, rgb.G);
|
||||
Assert.Equal(19660, rgb.B); |
// Assert.Equal(19660, rgb.B);
|
||||
Assert.Equal(29491, rgb.A); |
// Assert.Equal(29491, rgb.A);
|
||||
|
// }
|
||||
rgb = new Rgba64(5243 / 65535F, 9830 / 65535F, 19660 / 65535F, 29491 / 65535F); |
|
||||
|
// [Fact]
|
||||
Assert.Equal(5243, rgb.R); |
// public void Rgb48_ToVector4()
|
||||
Assert.Equal(9830, rgb.G); |
// {
|
||||
Assert.Equal(19660, rgb.B); |
// Assert.Equal(new Vector4(0, 0, 0, 1), new Rgb48(0, 0, 0, 0).ToVector4());
|
||||
Assert.Equal(29491, rgb.A); |
// Assert.Equal(Vector4.One, new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue).ToVector4());
|
||||
} |
// }
|
||||
|
|
||||
[Fact] |
// [Fact]
|
||||
public void Rgb48_ToVector4() |
// public void Rgb48_ToScaledVector4()
|
||||
{ |
// {
|
||||
Assert.Equal(new Vector4(0, 0, 0, 1), new Rgb48(Vector3.Zero).ToVector4()); |
// // arrange
|
||||
Assert.Equal(Vector4.One, new Rgb48(Vector3.One).ToVector4()); |
// var short2 = new Rgb48(Vector3.One);
|
||||
} |
|
||||
|
// // act
|
||||
[Fact] |
// Vector4 actual = short2.ToScaledVector4();
|
||||
public void Rgb48_ToScaledVector4() |
|
||||
{ |
// // assert
|
||||
// arrange
|
// Assert.Equal(1, actual.X);
|
||||
var short2 = new Rgb48(Vector3.One); |
// Assert.Equal(1, actual.Y);
|
||||
|
// Assert.Equal(1, actual.Z);
|
||||
// act
|
// Assert.Equal(1, actual.W);
|
||||
Vector4 actual = short2.ToScaledVector4(); |
// }
|
||||
|
|
||||
// assert
|
// [Fact]
|
||||
Assert.Equal(1, actual.X); |
// public void Rgb48_PackFromScaledVector4()
|
||||
Assert.Equal(1, actual.Y); |
// {
|
||||
Assert.Equal(1, actual.Z); |
// // arrange
|
||||
Assert.Equal(1, actual.W); |
// var pixel = default(Rgb48);
|
||||
} |
// var short3 = new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue);
|
||||
|
// var expected = new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue);
|
||||
[Fact] |
|
||||
public void Rgb48_PackFromScaledVector4() |
// // act
|
||||
{ |
// Vector4 scaled = short3.ToScaledVector4();
|
||||
// arrange
|
// pixel.PackFromScaledVector4(scaled);
|
||||
var pixel = default(Rgb48); |
|
||||
var short3 = new Rgb48(Vector3.One); |
// // assert
|
||||
var expected = new Rgb48(Vector3.One); |
// Assert.Equal(expected, pixel);
|
||||
|
// }
|
||||
// act
|
|
||||
Vector4 scaled = short3.ToScaledVector4(); |
// //[Fact]
|
||||
pixel.PackFromScaledVector4(scaled); |
// //public void Rgb48_Clamping()
|
||||
|
// //{
|
||||
// assert
|
// // Assert.Equal(new Vector4(0, 0, 0, 1), new Rgb48(Vector3.One * -1234.0f).ToVector4());
|
||||
Assert.Equal(expected, pixel); |
// // Assert.Equal(Vector4.One, new Rgb48(Vector3.One * 1234.0f).ToVector4());
|
||||
} |
// //}
|
||||
|
|
||||
[Fact] |
// //[Fact]
|
||||
public void Rgb48_Clamping() |
// //public void Rgb48_ToRgb24()
|
||||
{ |
// //{
|
||||
Assert.Equal(new Vector4(0, 0, 0, 1), new Rgb48(Vector3.One * -1234.0f).ToVector4()); |
// // // arrange
|
||||
Assert.Equal(Vector4.One, new Rgb48(Vector3.One * 1234.0f).ToVector4()); |
// // var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
||||
} |
// // var actual = default(Rgb24);
|
||||
|
// // var expected = new Rgb24(20, 38, 76);
|
||||
[Fact] |
|
||||
public void Rgb48_ToRgb24() |
// // // act
|
||||
{ |
// // rgba48.ToRgb24(ref actual);
|
||||
// arrange
|
|
||||
var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f); |
// // // assert
|
||||
var actual = default(Rgb24); |
// // Assert.Equal(expected, actual);
|
||||
var expected = new Rgb24(20, 38, 76); |
// //}
|
||||
|
|
||||
// act
|
// //[Fact]
|
||||
rgba48.ToRgb24(ref actual); |
// //public void Rgb48_ToRgba32()
|
||||
|
// //{
|
||||
// assert
|
// // // arrange
|
||||
Assert.Equal(expected, actual); |
// // var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
||||
} |
// // var actual = default(Rgba32);
|
||||
|
// // var expected = new Rgba32(20, 38, 76, 255);
|
||||
[Fact] |
|
||||
public void Rgb48_ToRgba32() |
// // // act
|
||||
{ |
// // rgba48.ToRgba32(ref actual);
|
||||
// arrange
|
|
||||
var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f); |
// // // assert
|
||||
var actual = default(Rgba32); |
// // Assert.Equal(expected, actual);
|
||||
var expected = new Rgba32(20, 38, 76, 255); |
// //}
|
||||
|
|
||||
// act
|
// //[Fact]
|
||||
rgba48.ToRgba32(ref actual); |
// //public void Rgb48_ToArgb32()
|
||||
|
// //{
|
||||
// assert
|
// // // arrange
|
||||
Assert.Equal(expected, actual); |
// // var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
||||
} |
// // var actual = default(Argb32);
|
||||
|
// // var expected = new Argb32(20, 38, 76, 255);
|
||||
[Fact] |
|
||||
public void Rgb48_ToArgb32() |
// // // act
|
||||
{ |
// // rgba48.ToArgb32(ref actual);
|
||||
// arrange
|
|
||||
var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f); |
// // // assert
|
||||
var actual = default(Argb32); |
// // Assert.Equal(expected, actual);
|
||||
var expected = new Argb32(20, 38, 76, 255); |
// //}
|
||||
|
|
||||
// act
|
// //[Fact]
|
||||
rgba48.ToArgb32(ref actual); |
// //public void Rgba64_ToBgr24()
|
||||
|
// //{
|
||||
// assert
|
// // // arrange
|
||||
Assert.Equal(expected, actual); |
// // var rgb48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
||||
} |
// // var actual = default(Bgr24);
|
||||
|
// // var expected = new Bgr24(20, 38, 76);
|
||||
[Fact] |
|
||||
public void Rgba64_ToBgr24() |
// // // act
|
||||
{ |
// // rgb48.ToBgr24(ref actual);
|
||||
// arrange
|
|
||||
var rgb48 = new Rgb48(0.08f, 0.15f, 0.30f); |
// // // assert
|
||||
var actual = default(Bgr24); |
// // Assert.Equal(expected, actual);
|
||||
var expected = new Bgr24(20, 38, 76); |
// //}
|
||||
|
|
||||
// act
|
// //[Fact]
|
||||
rgb48.ToBgr24(ref actual); |
// //public void Rgb48_ToBgra32()
|
||||
|
// //{
|
||||
// assert
|
// // // arrange
|
||||
Assert.Equal(expected, actual); |
// // var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f);
|
||||
} |
// // var actual = default(Bgra32);
|
||||
|
// // var expected = new Bgra32(20, 38, 76, 255);
|
||||
[Fact] |
|
||||
public void Rgb48_ToBgra32() |
// // // act
|
||||
{ |
// // rgba48.ToBgra32(ref actual);
|
||||
// arrange
|
|
||||
var rgba48 = new Rgb48(0.08f, 0.15f, 0.30f); |
// // // assert
|
||||
var actual = default(Bgra32); |
// // Assert.Equal(expected, actual);
|
||||
var expected = new Bgra32(20, 38, 76, 255); |
// //}
|
||||
|
|
||||
// act
|
// //[Fact]
|
||||
rgba48.ToBgra32(ref actual); |
// //public void Rgb48_PackFromRgba32_ToRgba32()
|
||||
|
// //{
|
||||
// assert
|
// // // arrange
|
||||
Assert.Equal(expected, actual); |
// // var rgb48 = default(Rgb48);
|
||||
} |
// // var actual = default(Rgba32);
|
||||
|
// // var expected = new Rgba32(20, 38, 76, 255);
|
||||
[Fact] |
|
||||
public void Rgb48_PackFromRgba32_ToRgba32() |
// // // act
|
||||
{ |
// // rgb48.PackFromRgba32(expected);
|
||||
// arrange
|
// // rgb48.ToRgba32(ref actual);
|
||||
var rgb48 = default(Rgb48); |
|
||||
var actual = default(Rgba32); |
// // // assert
|
||||
var expected = new Rgba32(20, 38, 76, 255); |
// // Assert.Equal(expected, actual);
|
||||
|
// //}
|
||||
// act
|
|
||||
rgb48.PackFromRgba32(expected); |
// //[Fact]
|
||||
rgb48.ToRgba32(ref actual); |
// //public void Rgb48_PackFromRgb48_ToRgb48()
|
||||
|
// //{
|
||||
// assert
|
// // // arrange
|
||||
Assert.Equal(expected, actual); |
// // var input = default(Rgb48);
|
||||
} |
// // var actual = default(Rgb48);
|
||||
|
// // var expected = new Rgb48(65535, 0, 65535);
|
||||
[Fact] |
|
||||
public void Rgb48_PackFromRgb48_ToRgb48() |
// // // act
|
||||
{ |
// // input.PackFromRgb48(expected);
|
||||
// arrange
|
// // input.ToRgb48(ref actual);
|
||||
var input = default(Rgb48); |
|
||||
var actual = default(Rgb48); |
// // // assert
|
||||
var expected = new Rgb48(65535, 0, 65535); |
// // Assert.Equal(expected, actual);
|
||||
|
// //}
|
||||
// act
|
|
||||
input.PackFromRgb48(expected); |
// //[Fact]
|
||||
input.ToRgb48(ref actual); |
// //public void Rgb48_PackFromRgba64_ToRgba64()
|
||||
|
// //{
|
||||
// assert
|
// // // arrange
|
||||
Assert.Equal(expected, actual); |
// // var input = default(Rgb48);
|
||||
} |
// // var actual = default(Rgba64);
|
||||
|
// // var expected = new Rgba64(65535, 0, 65535, 65535);
|
||||
[Fact] |
|
||||
public void Rgb48_PackFromRgba64_ToRgba64() |
// // // act
|
||||
{ |
// // input.PackFromRgba64(expected);
|
||||
// arrange
|
// // input.ToRgba64(ref actual);
|
||||
var input = default(Rgb48); |
|
||||
var actual = default(Rgba64); |
// // // assert
|
||||
var expected = new Rgba64(65535, 0, 65535, 65535); |
// // Assert.Equal(expected, actual);
|
||||
|
// //}
|
||||
// act
|
// }
|
||||
input.PackFromRgba64(expected); |
//}
|
||||
input.ToRgba64(ref actual); |
|
||||
|
|
||||
// assert
|
|
||||
Assert.Equal(expected, actual); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|||||
Loading…
Reference in new issue