Skip to content

Commit 5a4e4af

Browse files
committed
Updated unit tests due to changes in ImageMagick.
1 parent 103c038 commit 5a4e4af

File tree

8 files changed

+78
-56
lines changed

8 files changed

+78
-56
lines changed

tests/Magick.NET.Tests/MagickImageCollectionTests/TheComplexMethod.cs

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,24 +32,39 @@ public void ShouldThrowExceptionWhenSettingsIsNull()
3232
[Fact]
3333
public void ShouldApplyTheOperatorToTheImages()
3434
{
35-
Assert.SkipWhen(Runtime.Architecture == Architecture.Arm64, "Flaky result on Linux and Windows arm64.");
36-
3735
using var images = new MagickImageCollection();
3836
images.Read(Files.RoseSparkleGIF);
3937

40-
var settings = new ComplexSettings(ComplexOperator.Conjugate);
38+
var settings = new ComplexSettings(ComplexOperator.MagnitudePhase);
4139
images.Complex(settings);
4240

4341
Assert.Equal(2, images.Count);
4442

4543
#if Q8
46-
ColorAssert.Equal(new MagickColor("#abb4ba01"), images[1], 10, 10);
44+
ColorAssert.Equal(new MagickColor("#a4a4a39f"), images[1], 10, 10);
4745

4846
#elif Q16
49-
ColorAssert.Equal(new MagickColor("#aaabb3b4b9ba0001"), images[1], 10, 10);
47+
ColorAssert.Equal(new MagickColor("#a4cda471a3ce9fff"), images[1], 10, 10);
48+
#else
49+
ColorAssert.Equal(new MagickColor("#a4cca470a3ce9fff"), images[1], 10, 10);
50+
#endif
51+
}
52+
53+
[Fact]
54+
public void ShouldClampTheValuesOfThePixel()
55+
{
56+
using var images = new MagickImageCollection();
57+
images.Read(Files.RoseSparkleGIF);
58+
59+
var settings = new ComplexSettings(ComplexOperator.Conjugate);
60+
images.Complex(settings);
61+
62+
Assert.Equal(2, images.Count);
63+
64+
#if Q16HDRI
65+
ColorAssert.Equal(new MagickColor("#00000000"), images[1], 39, 10);
5066
#else
51-
images[1].Clamp();
52-
ColorAssert.Equal(new MagickColor("#0000000000000000"), images[1], 10, 10);
67+
ColorAssert.Equal(new MagickColor("#00000000"), images[1], 10, 10);
5368
#endif
5469
}
5570
}

tests/Magick.NET.Tests/MagickImageTests/TheCompareMethod.cs

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public void ShouldReturnErrorInfoWhenTheImagesAreNotEqual()
115115
Assert.InRange(errorInfo.MeanErrorPerPixel, 11450.85, 11450.86);
116116
#endif
117117
Assert.Equal(1, errorInfo.NormalizedMaximumError);
118-
Assert.InRange(errorInfo.NormalizedMeanError, 0.13, 0.14);
118+
Assert.InRange(errorInfo.NormalizedMeanError, 0.40, 0.41);
119119
}
120120

121121
[Fact]
@@ -156,25 +156,19 @@ public void ShouldUseTheColorFuzz()
156156
}
157157

158158
[Theory]
159-
[InlineData(ErrorMetric.Undefined, 0.0682)]
160-
[InlineData(ErrorMetric.Absolute, 6462)]
161-
[InlineData(ErrorMetric.Fuzz, 0.4726)]
159+
[InlineData(ErrorMetric.Undefined, 0.4726)]
160+
[InlineData(ErrorMetric.Absolute, 0.3944)]
161+
[InlineData(ErrorMetric.Fuzz, 0.5677)]
162162
[InlineData(ErrorMetric.MeanAbsolute, 0.2714)]
163-
#if Q8
164-
[InlineData(ErrorMetric.MeanErrorPerPixel, 4536868.5411)]
165-
#else
166-
[InlineData(ErrorMetric.MeanErrorPerPixel, 1165975215.0823)]
167-
#endif
163+
[InlineData(ErrorMetric.MeanErrorPerPixel, 0.2714)]
168164
[InlineData(ErrorMetric.MeanSquared, 0.2233)]
169-
[InlineData(ErrorMetric.NormalizedCrossCorrelation, 0.0682)]
165+
[InlineData(ErrorMetric.NormalizedCrossCorrelation, 0.4748)]
170166
[InlineData(ErrorMetric.PeakAbsolute, 1)]
171-
[InlineData(ErrorMetric.PeakSignalToNoiseRatio, 0.2233)]
167+
[InlineData(ErrorMetric.PeakSignalToNoiseRatio, 0.0542)]
172168
[InlineData(ErrorMetric.PerceptualHash, 0)]
173169
[InlineData(ErrorMetric.RootMeanSquared, 0.4726)]
174-
[InlineData(ErrorMetric.StructuralSimilarity, 0.4220)]
175-
[InlineData(ErrorMetric.StructuralDissimilarity, 0.2889)]
176-
[InlineData(ErrorMetric.PhaseCorrelation, 0.0682)]
177-
[InlineData(ErrorMetric.DotProductCorrelation, 0.0682)]
170+
[InlineData(ErrorMetric.StructuralSimilarity, 0.2889)]
171+
[InlineData(ErrorMetric.StructuralDissimilarity, 0.7110)]
178172
public void ShouldReturnTheCorrectValueForEachErrorMetric(ErrorMetric errorMetric, double expectedResult)
179173
{
180174
using var image = new MagickImage(Files.MagickNETIconPNG);
@@ -186,5 +180,18 @@ public void ShouldReturnTheCorrectValueForEachErrorMetric(ErrorMetric errorMetri
186180
else
187181
Assert.InRange(result, expectedResult, expectedResult + 0.0001);
188182
}
183+
184+
[Theory]
185+
[InlineData(ErrorMetric.PhaseCorrelation)]
186+
[InlineData(ErrorMetric.DotProductCorrelation)]
187+
public void ShouldThrowExceptionWhenErrorMetricIsSupported(ErrorMetric errorMetric)
188+
{
189+
using var image = new MagickImage(Files.Builtin.Logo);
190+
using var other = image.CloneAndMutate(image => image.Rotate(180));
191+
192+
var exception = Assert.Throws<MagickImageErrorException>(() => image.Compare(other, errorMetric));
193+
194+
Assert.Contains("metric not supported", exception.Message);
195+
}
189196
}
190197
}

tests/Magick.NET.Tests/MagickImageTests/ThePerceptualHashMethod.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,25 @@ public void ShouldReturnThePerceptualHash()
5353
AssertChannel(channel, 1, 3.2660, 0.6686);
5454
AssertChannel(channel, 2, 3.5856, 0.9196);
5555
AssertChannel(channel, 3, 3.6610, 2.3355);
56-
AssertChannel(channel, 4, 7.3919, 5.2277);
57-
AssertChannel(channel, 5, 6.1113, 2.8360);
58-
AssertChannel(channel, 6, 7.4884, 3.9636);
56+
AssertChannel(channel, 4, 12, 12);
57+
AssertChannel(channel, 5, 12, 12);
58+
AssertChannel(channel, 6, 12, 3.9636);
5959
#elif Q16
6060
AssertChannel(channel, 0, 0.2599, 0.2570);
6161
AssertChannel(channel, 1, 3.2673, 1.0553);
6262
AssertChannel(channel, 2, 3.5846, 1.3801);
6363
AssertChannel(channel, 3, 3.6533, 2.8361);
64-
AssertChannel(channel, 4, 7.3709, 5.1087);
65-
AssertChannel(channel, 5, 6.0810, 3.4734);
66-
AssertChannel(channel, 6, 7.4910, 5.0815);
64+
AssertChannel(channel, 4, 12, 12);
65+
AssertChannel(channel, 5, 12, 12);
66+
AssertChannel(channel, 6, 12, 12);
6767
#else
6868
AssertChannel(channel, 0, 0.2599, 0.2946);
6969
AssertChannel(channel, 1, 3.2673, 1.1834);
7070
AssertChannel(channel, 2, 3.5846, 1.5010);
7171
AssertChannel(channel, 3, 3.6533, 3.0420);
72-
AssertChannel(channel, 4, 7.3708, 5.3652);
73-
AssertChannel(channel, 5, 6.0809, 3.6675);
74-
AssertChannel(channel, 6, 7.4910, 5.6501);
72+
AssertChannel(channel, 4, 12, 12);
73+
AssertChannel(channel, 5, 12, 12);
74+
AssertChannel(channel, 6, 12, 12);
7575
#endif
7676

7777
channel = phash.GetChannel(PixelChannel.Green);
@@ -81,25 +81,25 @@ public void ShouldReturnThePerceptualHash()
8181
AssertChannel(channel, 1, 2.9572, 0.6036);
8282
AssertChannel(channel, 2, 3.2473, 0.9508);
8383
AssertChannel(channel, 3, 3.5944, 1.1199);
84-
AssertChannel(channel, 4, 7.3856, 2.5020);
85-
AssertChannel(channel, 5, 5.6999, 1.4574);
86-
AssertChannel(channel, 6, 7.0589, 2.2044);
84+
AssertChannel(channel, 4, 12, 2.5020);
85+
AssertChannel(channel, 5, 12, 1.4574);
86+
AssertChannel(channel, 6, 12, 12);
8787
#elif Q16
8888
AssertChannel(channel, 0, 0.2619, 0.0635);
8989
AssertChannel(channel, 1, 2.9594, 0.6031);
9090
AssertChannel(channel, 2, 3.2480, 0.9501);
9191
AssertChannel(channel, 3, 3.5936, 1.1202);
92-
AssertChannel(channel, 4, 7.3770, 2.5015);
93-
AssertChannel(channel, 5, 5.6950, 1.4575);
94-
AssertChannel(channel, 6, 7.0597, 2.2046);
92+
AssertChannel(channel, 4, 12, 2.5015);
93+
AssertChannel(channel, 5, 12, 1.4575);
94+
AssertChannel(channel, 6, 12, 12);
9595
#else
9696
AssertChannel(channel, 0, 0.2619, 0.0635);
9797
AssertChannel(channel, 1, 2.9594, 0.6031);
9898
AssertChannel(channel, 2, 3.2480, 0.9501);
9999
AssertChannel(channel, 3, 3.5936, 1.1202);
100-
AssertChannel(channel, 4, 7.3769, 2.5015);
101-
AssertChannel(channel, 5, 5.6950, 1.4575);
102-
AssertChannel(channel, 6, 7.0597, 2.2046);
100+
AssertChannel(channel, 4, 12, 2.5015);
101+
AssertChannel(channel, 5, 12, 1.4575);
102+
AssertChannel(channel, 6, 12, 12);
103103
#endif
104104

105105
channel = phash.GetChannel(PixelChannel.Blue);
@@ -111,23 +111,23 @@ public void ShouldReturnThePerceptualHash()
111111
AssertChannel(channel, 3, 3.9979, 5.1225);
112112
AssertChannel(channel, 4, 7.8607, 10.1992);
113113
AssertChannel(channel, 5, 5.8132, 7.2678);
114-
AssertChannel(channel, 6, 8.7422, 10.7048);
114+
AssertChannel(channel, 6, 12, 12);
115115
#elif Q16
116116
AssertChannel(channel, 0, 0.6558, 0.7381);
117117
AssertChannel(channel, 1, 3.1021, 4.0982);
118118
AssertChannel(channel, 2, 3.7194, 4.9910);
119119
AssertChannel(channel, 3, 3.9968, 5.1224);
120120
AssertChannel(channel, 4, 7.8584, 10.1987);
121121
AssertChannel(channel, 5, 5.8102, 7.2667);
122-
AssertChannel(channel, 6, 8.7492, 10.7102);
122+
AssertChannel(channel, 6, 12, 12);
123123
#else
124124
AssertChannel(channel, 0, 0.6558, 0.7381);
125125
AssertChannel(channel, 1, 3.1021, 4.0982);
126126
AssertChannel(channel, 2, 3.7194, 4.9910);
127127
AssertChannel(channel, 3, 3.9968, 5.1224);
128128
AssertChannel(channel, 4, 7.8584, 10.1987);
129129
AssertChannel(channel, 5, 5.8102, 7.2667);
130-
AssertChannel(channel, 6, 8.7493, 10.7102);
130+
AssertChannel(channel, 6, 12, 12);
131131
#endif
132132
}
133133

tests/Magick.NET.Tests/ResourceLimitsTests/TheTimeProperty.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void ShouldHaveTheCorrectValue()
1616
{
1717
IsolatedUnitTest.Execute(() =>
1818
{
19-
Assert.Equal(0U, ResourceLimits.Time);
19+
Assert.Equal((ulong)long.MaxValue, ResourceLimits.Time);
2020
});
2121
}
2222

tests/Magick.NET.Tests/Statistics/ChannelPerceptualHashTests/TheSumSquaredDistanceMethod.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ public void ShouldReturnTheCorrectValue()
2323
Assert.NotNull(green);
2424

2525
#if Q8
26-
Assert.Equal(14.48, red.SumSquaredDistance(green), 2);
26+
Assert.Equal(267.64, red.SumSquaredDistance(green), 2);
2727
#elif Q16
28-
Assert.Equal(23.06, red.SumSquaredDistance(green), 2);
28+
Assert.Equal(204.95, red.SumSquaredDistance(green), 2);
2929
#else
30-
Assert.Equal(29.89, red.SumSquaredDistance(green), 2);
30+
Assert.Equal(205.96, red.SumSquaredDistance(green), 2);
3131
#endif
3232
}
3333
}

tests/Magick.NET.Tests/Statistics/ChannelPerceptualHashTests/TheToStringMethod.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ public void ShouldReturnTheDifference()
2121
Assert.NotNull(red);
2222

2323
#if Q8
24-
Assert.Equal("a65e687f9488c1088f0261ce08eeb961d40a26ce81a1e823ec85b3b8cc3586ec889ad4", red.ToString());
24+
Assert.Equal("a65e687f9488c1088f0262ee062ee062ee0a26ce81a1e823ec85b3b62ee062ee089ad4", red.ToString());
2525
#elif Q16
26-
Assert.Equal("a658b87fa188c0688eb561ccb8ed8a61d43a646682939835e986ec98c78f887ae8c67f", red.ToString());
26+
Assert.Equal("a658b87fa188c0688eb562ee062ee062ee0a646682939835e986ec962ee062ee062ee0", red.ToString());
2727
#else
28-
Assert.Equal("a658a87fa188c0688eb561ccb8ed8961d43a731182e3a83aa2876d48d19488f438dcb5", red.ToString());
28+
Assert.Equal("a658a87fa188c0688eb562ee062ee062ee0a731182e3a83aa2876d462ee062ee062ee0", red.ToString());
2929
#endif
3030
}
3131
}

tests/Magick.NET.Tests/Statistics/PerceptualHashTests/TheSumSquaredDistanceMethod.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ public void ShouldReturnTheDifference()
4242
Assert.NotNull(otherPhash);
4343

4444
#if Q8
45-
Assert.Equal(390.35, phash.SumSquaredDistance(otherPhash), 2);
45+
Assert.Equal(821.09, phash.SumSquaredDistance(otherPhash), 2);
4646
#elif Q16
47-
Assert.Equal(365.36, phash.SumSquaredDistance(otherPhash), 2);
47+
Assert.Equal(851.76, phash.SumSquaredDistance(otherPhash), 2);
4848
#else
49-
Assert.Equal(356.03, phash.SumSquaredDistance(otherPhash), 2);
49+
Assert.Equal(832.24, phash.SumSquaredDistance(otherPhash), 2);
5050
#endif
5151
}
5252
}

tests/Magick.NET.Tests/Statistics/PerceptualHashTests/TheToStringMethod.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ public void ShouldReturnTheValueAsString()
2323
Assert.Equal(210, hash.Length);
2424

2525
#if Q8
26-
Assert.Equal("a65e687f9488c1088f0261ce08eeb961d40a26ce81a1e823ec85b3b8cc3586ec889ad4a66728738487ed988c6861cda8dea761b93cf8dbaebc98252482bbf861bc838ee8561c819a08793a8915289c2b61eb58e3146222681cd58a01d8c2f18c819627d761c64629d1", hash);
26+
Assert.Equal("a65e687f9488c1088f0262ee062ee062ee0a26ce81a1e823ec85b3b62ee062ee089ad4a66728738487ed988c6862ee062ee062ee0cf8dbaebc98252482bbf861bc838ee62ee0819a08793a8915289c2b61eb58e31462ee081cd58a01d8c2f18c819627d761c6462ee0", hash);
2727
#elif Q16
28-
Assert.Equal("a658b87fa188c0688eb561ccb8ed8a61d43a646682939835e986ec98c78f887ae8c67fa66538739a87ee088c6061cd18de7661b94cf800aeb958251d82bc2861b7838ef8561e8199e8792d8914a89c2061eb28e2f66222d81cd58a0168c2f68c818627d761c63629d6", hash);
28+
Assert.Equal("a658b87fa188c0688eb562ee062ee062ee0a646682939835e986ec962ee062ee062ee0a66538739a87ee088c6062ee062ee062ee0cf800aeb958251d82bc2861b7838ef62ee08199e8792d8914a89c2061eb28e2f662ee081cd58a0168c2f68c818627d761c6362ee0", hash);
2929
#else
30-
Assert.Equal("a658a87fa188c0688eb561ccb8ed8961d43a731182e3a83aa2876d48d19488f438dcb5a66538739a87ee088c6061cd18de7661b94cf800aeb958251d82bc2861b7838ef8561e8199e8792d8914a89c2061eb28e2f66222d81cd58a0168c2f68c818627d761c63629d6", hash);
30+
Assert.Equal("a658a87fa188c0688eb562ee062ee062ee0a731182e3a83aa2876d462ee062ee062ee0a66538739a87ee088c6062ee062ee062ee0cf800aeb958251d82bc2861b7838ef62ee08199e8792d8914a89c2061eb28e2f662ee081cd58a0168c2f68c818627d761c6362ee0", hash);
3131
#endif
3232
var clone = new PerceptualHash(hash);
3333

0 commit comments

Comments
 (0)