Skip to content

Commit 89f3de4

Browse files
authored
Merge pull request #903 from brianpopow/feature/incTestCovPixelFormats
Add additional pixel conversion tests
2 parents e76add2 + ef3edbf commit 89f3de4

File tree

14 files changed

+1199
-7
lines changed

14 files changed

+1199
-7
lines changed

src/ImageSharp/PixelFormats/PixelImplementations/Byte4.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public void ToRgba32(ref Rgba32 dest)
149149
public override string ToString()
150150
{
151151
var vector = this.ToVector4();
152-
return FormattableString.Invariant($"Bgra5551({vector.X:#0.##}, {vector.Y:#0.##}, {vector.Z:#0.##}, {vector.W:#0.##})");
152+
return FormattableString.Invariant($"Byte4({vector.X:#0.##}, {vector.Y:#0.##}, {vector.Z:#0.##}, {vector.W:#0.##})");
153153
}
154154

155155
/// <summary>

tests/ImageSharp.Tests/PixelFormats/Argb32Tests.cs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) Six Labors and contributors.
22
// Licensed under the Apache License, Version 2.0.
33

4+
using System;
45
using System.Numerics;
56
using SixLabors.ImageSharp.PixelFormats;
67
using Xunit;
@@ -9,6 +10,67 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
910
{
1011
public class Argb32Tests
1112
{
13+
/// <summary>
14+
/// Tests the equality operators for equality.
15+
/// </summary>
16+
[Fact]
17+
public void AreEqual()
18+
{
19+
var color1 = new Argb32(0.0f, 0.0f, 0.0f, 0.0f);
20+
var color2 = new Argb32(new Vector4(0.0f));
21+
var color3 = new Argb32(new Vector4(1.0f, 0.0f, 1.0f, 1.0f));
22+
var color4 = new Argb32(1.0f, 0.0f, 1.0f, 1.0f);
23+
24+
Assert.Equal(color1, color2);
25+
Assert.Equal(color3, color4);
26+
}
27+
28+
/// <summary>
29+
/// Tests the equality operators for inequality.
30+
/// </summary>
31+
[Fact]
32+
public void AreNotEqual()
33+
{
34+
var color1 = new Argb32(0.0f, 0.0f, 0.0f, 0.0f);
35+
var color2 = new Argb32(new Vector4(1.0f));
36+
var color3 = new Argb32(new Vector4(1.0f, 0.0f, 0.0f, 1.0f));
37+
var color4 = new Argb32(1.0f, 1.0f, 0.0f, 1.0f);
38+
39+
Assert.NotEqual(color1, color2);
40+
Assert.NotEqual(color3, color4);
41+
}
42+
43+
/// <summary>
44+
/// Tests whether the color constructor correctly assign properties.
45+
/// </summary>
46+
[Fact]
47+
public void ConstructorAssignsProperties()
48+
{
49+
var color1 = new Argb32(1, .1f, .133f, .864f);
50+
Assert.Equal(255, color1.R);
51+
Assert.Equal((byte)Math.Round(.1f * 255), color1.G);
52+
Assert.Equal((byte)Math.Round(.133f * 255), color1.B);
53+
Assert.Equal((byte)Math.Round(.864f * 255), color1.A);
54+
55+
var color2 = new Argb32(1, .1f, .133f);
56+
Assert.Equal(255, color2.R);
57+
Assert.Equal(Math.Round(.1f * 255), color2.G);
58+
Assert.Equal(Math.Round(.133f * 255), color2.B);
59+
Assert.Equal(255, color2.A);
60+
61+
var color4 = new Argb32(new Vector3(1, .1f, .133f));
62+
Assert.Equal(255, color4.R);
63+
Assert.Equal(Math.Round(.1f * 255), color4.G);
64+
Assert.Equal(Math.Round(.133f * 255), color4.B);
65+
Assert.Equal(255, color4.A);
66+
67+
var color5 = new Argb32(new Vector4(1, .1f, .133f, .5f));
68+
Assert.Equal(255, color5.R);
69+
Assert.Equal(Math.Round(.1f * 255), color5.G);
70+
Assert.Equal(Math.Round(.133f * 255), color5.B);
71+
Assert.Equal(Math.Round(.5f * 255), color5.A);
72+
}
73+
1274
[Fact]
1375
public void Argb32_PackedValue()
1476
{

tests/ImageSharp.Tests/PixelFormats/Bgr24Tests.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,24 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
99
{
1010
public class Bgr24Tests
1111
{
12+
[Fact]
13+
public void AreEqual()
14+
{
15+
var color1 = new Bgr24(byte.MaxValue, 0, byte.MaxValue);
16+
var color2 = new Bgr24(byte.MaxValue, 0, byte.MaxValue);
17+
18+
Assert.Equal(color1, color2);
19+
}
20+
21+
[Fact]
22+
public void AreNotEqual()
23+
{
24+
var color1 = new Bgr24(byte.MaxValue, 0, 0);
25+
var color2 = new Bgr24(byte.MaxValue, 0, byte.MaxValue);
26+
27+
Assert.NotEqual(color1, color2);
28+
}
29+
1230
public static readonly TheoryData<byte, byte, byte> ColorData =
1331
new TheoryData<byte, byte, byte>() { { 1, 2, 3 }, { 4, 5, 6 }, { 0, 255, 42 } };
1432

tests/ImageSharp.Tests/PixelFormats/Bgr565Tests.cs

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,36 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
99
{
1010
public class Bgr565Tests
1111
{
12+
/// <summary>
13+
/// Tests the equality operators for equality.
14+
/// </summary>
15+
[Fact]
16+
public void AreEqual()
17+
{
18+
var color1 = new Bgr565(0.0f, 0.0f, 0.0f);
19+
var color2 = new Bgr565(new Vector3(0.0f));
20+
var color3 = new Bgr565(new Vector3(1.0f, 0.0f, 1.0f));
21+
var color4 = new Bgr565(1.0f, 0.0f, 1.0f);
22+
23+
Assert.Equal(color1, color2);
24+
Assert.Equal(color3, color4);
25+
}
26+
27+
/// <summary>
28+
/// Tests the equality operators for inequality.
29+
/// </summary>
30+
[Fact]
31+
public void AreNotEqual()
32+
{
33+
var color1 = new Bgr565(0.0f, 0.0f, 0.0f);
34+
var color2 = new Bgr565(new Vector3(1.0f));
35+
var color3 = new Bgr565(new Vector3(1.0f, 0.0f, 0.0f));
36+
var color4 = new Bgr565(1.0f, 1.0f, 0.0f);
37+
38+
Assert.NotEqual(color1, color2);
39+
Assert.NotEqual(color3, color4);
40+
}
41+
1242
[Fact]
1343
public void Bgr565_PackedValue()
1444
{
@@ -77,6 +107,140 @@ public void Bgr565_FromBgra5551()
77107
Assert.Equal(expected, bgr.PackedValue);
78108
}
79109

110+
[Fact]
111+
public void Bgr565_FromArgb32()
112+
{
113+
// arrange
114+
var bgr1 = default(Bgr565);
115+
var bgr2 = default(Bgr565);
116+
ushort expected1 = ushort.MaxValue;
117+
ushort expected2 = ushort.MaxValue;
118+
119+
// act
120+
bgr1.FromArgb32(new Argb32(1.0f, 1.0f, 1.0f, 1.0f));
121+
bgr2.FromArgb32(new Argb32(1.0f, 1.0f, 1.0f, 0.0f));
122+
123+
// assert
124+
Assert.Equal(expected1, bgr1.PackedValue);
125+
Assert.Equal(expected2, bgr2.PackedValue);
126+
}
127+
128+
[Fact]
129+
public void Bgr565_FromRgba32()
130+
{
131+
// arrange
132+
var bgr1 = default(Bgr565);
133+
var bgr2 = default(Bgr565);
134+
ushort expected1 = ushort.MaxValue;
135+
ushort expected2 = ushort.MaxValue;
136+
137+
// act
138+
bgr1.FromRgba32(new Rgba32(1.0f, 1.0f, 1.0f, 1.0f));
139+
bgr2.FromRgba32(new Rgba32(1.0f, 1.0f, 1.0f, 0.0f));
140+
141+
// assert
142+
Assert.Equal(expected1, bgr1.PackedValue);
143+
Assert.Equal(expected2, bgr2.PackedValue);
144+
}
145+
146+
[Fact]
147+
public void Bgr565_ToRgba32()
148+
{
149+
// arrange
150+
var bgra = new Bgr565(Vector3.One);
151+
var expected = new Rgba32(Vector4.One);
152+
var actual = default(Rgba32);
153+
154+
// act
155+
bgra.ToRgba32(ref actual);
156+
157+
Assert.Equal(expected, actual);
158+
}
159+
160+
[Fact]
161+
public void Bgra565_FromRgb48()
162+
{
163+
// arrange
164+
var bgr = default(Bgr565);
165+
ushort expectedPackedValue = ushort.MaxValue;
166+
167+
// act
168+
bgr.FromRgb48(new Rgb48(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
169+
170+
// assert
171+
Assert.Equal(expectedPackedValue, bgr.PackedValue);
172+
}
173+
174+
[Fact]
175+
public void Bgra565_FromRgba64()
176+
{
177+
// arrange
178+
var bgr = default(Bgr565);
179+
ushort expectedPackedValue = ushort.MaxValue;
180+
181+
// act
182+
bgr.FromRgba64(new Rgba64(ushort.MaxValue, ushort.MaxValue, ushort.MaxValue, ushort.MaxValue));
183+
184+
// assert
185+
Assert.Equal(expectedPackedValue, bgr.PackedValue);
186+
}
187+
188+
[Fact]
189+
public void Bgr565_FromBgr24()
190+
{
191+
// arrange
192+
var bgr = default(Bgr565);
193+
ushort expected = ushort.MaxValue;
194+
195+
// act
196+
bgr.FromBgr24(new Bgr24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
197+
198+
// assert
199+
Assert.Equal(expected, bgr.PackedValue);
200+
}
201+
202+
[Fact]
203+
public void Bgr565_FromRgb24()
204+
{
205+
// arrange
206+
var bgr = default(Bgr565);
207+
ushort expected = ushort.MaxValue;
208+
209+
// act
210+
bgr.FromRgb24(new Rgb24(byte.MaxValue, byte.MaxValue, byte.MaxValue));
211+
212+
// assert
213+
Assert.Equal(expected, bgr.PackedValue);
214+
}
215+
216+
[Fact]
217+
public void Bgr565_FromGrey8()
218+
{
219+
// arrange
220+
var bgr = default(Bgr565);
221+
ushort expected = ushort.MaxValue;
222+
223+
// act
224+
bgr.FromGray8(new Gray8(byte.MaxValue));
225+
226+
// assert
227+
Assert.Equal(expected, bgr.PackedValue);
228+
}
229+
230+
[Fact]
231+
public void Bgr565_FromGrey16()
232+
{
233+
// arrange
234+
var bgr = default(Bgr565);
235+
ushort expected = ushort.MaxValue;
236+
237+
// act
238+
bgr.FromGray16(new Gray16(ushort.MaxValue));
239+
240+
// assert
241+
Assert.Equal(expected, bgr.PackedValue);
242+
}
243+
80244
[Fact]
81245
public void Bgr565_Clamping()
82246
{

tests/ImageSharp.Tests/PixelFormats/Bgra32Tests.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) Six Labors and contributors.
22
// Licensed under the Apache License, Version 2.0.
33

4+
using System;
45
using System.Numerics;
56
using SixLabors.ImageSharp.PixelFormats;
67
using Xunit;
@@ -9,6 +10,30 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats
910
{
1011
public class Bgra32Tests
1112
{
13+
/// <summary>
14+
/// Tests the equality operators for equality.
15+
/// </summary>
16+
[Fact]
17+
public void AreEqual()
18+
{
19+
var color1 = new Bgra32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
20+
var color2 = new Bgra32(byte.MaxValue, byte.MaxValue, byte.MaxValue);
21+
22+
Assert.Equal(color1, color2);
23+
}
24+
25+
/// <summary>
26+
/// Tests the equality operators for inequality.
27+
/// </summary>
28+
[Fact]
29+
public void AreNotEqual()
30+
{
31+
var color1 = new Bgra32(0, 0, byte.MaxValue, byte.MaxValue);
32+
var color2 = new Bgra32(byte.MaxValue, byte.MaxValue, byte.MaxValue);
33+
34+
Assert.NotEqual(color1, color2);
35+
}
36+
1237
public static readonly TheoryData<byte, byte, byte, byte> ColorData =
1338
new TheoryData<byte, byte, byte, byte>()
1439
{

0 commit comments

Comments
 (0)