|
|
@ -10,6 +10,7 @@ |
|
|
|
|
|
|
|
|
namespace ImageProcessor.Tests |
|
|
namespace ImageProcessor.Tests |
|
|
{ |
|
|
{ |
|
|
|
|
|
using System; |
|
|
using System.Diagnostics.CodeAnalysis; |
|
|
using System.Diagnostics.CodeAnalysis; |
|
|
|
|
|
|
|
|
using Xunit; |
|
|
using Xunit; |
|
|
@ -94,13 +95,21 @@ namespace ImageProcessor.Tests |
|
|
Justification = "Reviewed. Suppression is OK here.")] |
|
|
Justification = "Reviewed. Suppression is OK here.")] |
|
|
public void BgrToHsv() |
|
|
public void BgrToHsv() |
|
|
{ |
|
|
{ |
|
|
|
|
|
// Black
|
|
|
|
|
|
Bgra b = new Bgra(0, 0, 0, 255); |
|
|
|
|
|
Hsv h = b; |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(0, h.H); |
|
|
|
|
|
Assert.Equal(0, h.S); |
|
|
|
|
|
Assert.Equal(0, h.V); |
|
|
|
|
|
|
|
|
// White
|
|
|
// White
|
|
|
Bgra color = new Bgra(255, 255, 255, 255); |
|
|
Bgra color = new Bgra(255, 255, 255, 255); |
|
|
Hsv hsv = color; |
|
|
Hsv hsv = color; |
|
|
|
|
|
|
|
|
Assert.Equal(0, hsv.H); |
|
|
Assert.Equal(0, hsv.H); |
|
|
Assert.Equal(0, hsv.S); |
|
|
Assert.Equal(0, hsv.S); |
|
|
Assert.Equal(1, hsv.V); |
|
|
Assert.Equal(100, hsv.V); |
|
|
|
|
|
|
|
|
// Dark moderate pink.
|
|
|
// Dark moderate pink.
|
|
|
Bgra color2 = new Bgra(106, 64, 128, 255); |
|
|
Bgra color2 = new Bgra(106, 64, 128, 255); |
|
|
@ -109,6 +118,51 @@ namespace ImageProcessor.Tests |
|
|
Assert.Equal(320.6, hsv2.H, 1); |
|
|
Assert.Equal(320.6, hsv2.H, 1); |
|
|
Assert.Equal(50, hsv2.S, 1); |
|
|
Assert.Equal(50, hsv2.S, 1); |
|
|
Assert.Equal(50.2, hsv2.V, 1); |
|
|
Assert.Equal(50.2, hsv2.V, 1); |
|
|
|
|
|
|
|
|
|
|
|
// Ochre.
|
|
|
|
|
|
Bgra color3 = new Bgra(34, 119, 204, 255); |
|
|
|
|
|
Hsv hsv3 = color3; |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(30, hsv3.H, 1); |
|
|
|
|
|
Assert.Equal(83.3, hsv3.S, 1); |
|
|
|
|
|
Assert.Equal(80, hsv3.V, 1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Fact] |
|
|
|
|
|
public void HsvToBgr() |
|
|
|
|
|
{ |
|
|
|
|
|
// Dark moderate pink.
|
|
|
|
|
|
Hsv hsv = new Hsv(320.6f, 50, 50.2f); |
|
|
|
|
|
Bgra bgra = hsv; |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(bgra.B, 106); |
|
|
|
|
|
Assert.Equal(bgra.G, 64); |
|
|
|
|
|
Assert.Equal(bgra.R, 128); |
|
|
|
|
|
|
|
|
|
|
|
// Ochre
|
|
|
|
|
|
Hsv hsv2 = new Hsv(30, 83.3f, 80); |
|
|
|
|
|
Bgra bgra2 = hsv2; |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(bgra2.B, 34); |
|
|
|
|
|
Assert.Equal(bgra2.G, 119); |
|
|
|
|
|
Assert.Equal(bgra2.R, 204); |
|
|
|
|
|
|
|
|
|
|
|
// White
|
|
|
|
|
|
Hsv hsv3 = new Hsv(0, 0, 100); |
|
|
|
|
|
Bgra bgra3 = hsv3; |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(bgra3.B, 255); |
|
|
|
|
|
Assert.Equal(bgra3.G, 255); |
|
|
|
|
|
Assert.Equal(bgra3.R, 255); |
|
|
|
|
|
|
|
|
|
|
|
// Check others.
|
|
|
|
|
|
Random random = new Random(0); |
|
|
|
|
|
for (var i = 0; i < 1000; i++) |
|
|
|
|
|
{ |
|
|
|
|
|
Bgra bgra4 = new Bgra((byte)random.Next(255), (byte)random.Next(255), (byte)random.Next(255)); |
|
|
|
|
|
Hsv hsb4 = bgra4; |
|
|
|
|
|
Assert.Equal(bgra4, (Bgra)hsb4); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|