@@ -10,58 +10,72 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
1010 public partial class JpegDecoderTests
1111 {
1212 public static string [ ] BaselineTestJpegs =
13- {
14- TestImages . Jpeg . Baseline . Calliphora ,
15- TestImages . Jpeg . Baseline . Cmyk ,
16- TestImages . Jpeg . Baseline . Ycck ,
17- TestImages . Jpeg . Baseline . Jpeg400 ,
18- TestImages . Jpeg . Baseline . Turtle420 ,
19- TestImages . Jpeg . Baseline . Testorig420 ,
20- TestImages . Jpeg . Baseline . Jpeg420Small ,
21- TestImages . Jpeg . Issues . Fuzz . AccessViolationException922 ,
22- TestImages . Jpeg . Baseline . Jpeg444 ,
23- TestImages . Jpeg . Baseline . Jpeg422 ,
24- TestImages . Jpeg . Baseline . Bad . BadEOF ,
25- TestImages . Jpeg . Baseline . MultiScanBaselineCMYK ,
26- TestImages . Jpeg . Baseline . YcckSubsample1222 ,
27- TestImages . Jpeg . Baseline . Bad . BadRST ,
28- TestImages . Jpeg . Issues . MultiHuffmanBaseline394 ,
29- TestImages . Jpeg . Issues . ExifDecodeOutOfRange694 ,
30- TestImages . Jpeg . Issues . InvalidEOI695 ,
31- TestImages . Jpeg . Issues . ExifResizeOutOfRange696 ,
32- TestImages . Jpeg . Issues . InvalidAPP0721 ,
33- TestImages . Jpeg . Issues . ExifGetString750Load ,
34- TestImages . Jpeg . Issues . ExifGetString750Transform ,
35- TestImages . Jpeg . Issues . BadSubSampling1076 ,
13+ {
14+ TestImages . Jpeg . Baseline . Calliphora ,
15+ TestImages . Jpeg . Baseline . Cmyk ,
16+ TestImages . Jpeg . Baseline . Ycck ,
17+ TestImages . Jpeg . Baseline . Jpeg400 ,
18+ TestImages . Jpeg . Baseline . Turtle420 ,
19+ TestImages . Jpeg . Baseline . Testorig420 ,
20+ TestImages . Jpeg . Baseline . Jpeg420Small ,
21+ TestImages . Jpeg . Issues . Fuzz . AccessViolationException922 ,
22+ TestImages . Jpeg . Baseline . Jpeg444 ,
23+ TestImages . Jpeg . Baseline . Jpeg422 ,
24+ TestImages . Jpeg . Baseline . Bad . BadEOF ,
25+ TestImages . Jpeg . Baseline . MultiScanBaselineCMYK ,
26+ TestImages . Jpeg . Baseline . YcckSubsample1222 ,
27+ TestImages . Jpeg . Baseline . Bad . BadRST ,
28+ TestImages . Jpeg . Issues . MultiHuffmanBaseline394 ,
29+ TestImages . Jpeg . Issues . ExifDecodeOutOfRange694 ,
30+ TestImages . Jpeg . Issues . InvalidEOI695 ,
31+ TestImages . Jpeg . Issues . ExifResizeOutOfRange696 ,
32+ TestImages . Jpeg . Issues . InvalidAPP0721 ,
33+ TestImages . Jpeg . Issues . ExifGetString750Load ,
34+ TestImages . Jpeg . Issues . ExifGetString750Transform ,
35+ TestImages . Jpeg . Issues . BadSubSampling1076 ,
3636
37- // LibJpeg can open this despite the invalid density units.
38- TestImages . Jpeg . Issues . Fuzz . ArgumentOutOfRangeException825B ,
37+ // LibJpeg can open this despite the invalid density units.
38+ TestImages . Jpeg . Issues . Fuzz . ArgumentOutOfRangeException825B ,
3939
40- // LibJpeg can open this despite incorrect colorspace metadata.
41- TestImages . Jpeg . Issues . IncorrectColorspace855 ,
40+ // LibJpeg can open this despite incorrect colorspace metadata.
41+ TestImages . Jpeg . Issues . IncorrectColorspace855 ,
4242
43- // High depth images
44- TestImages . Jpeg . Baseline . Testorig12bit ,
45- } ;
43+ // High depth images
44+ TestImages . Jpeg . Baseline . Testorig12bit ,
45+ } ;
4646
4747 public static string [ ] ProgressiveTestJpegs =
48- {
49- TestImages . Jpeg . Progressive . Fb ,
50- TestImages . Jpeg . Progressive . Progress ,
51- TestImages . Jpeg . Progressive . Festzug ,
52- TestImages . Jpeg . Progressive . Bad . BadEOF ,
53- TestImages . Jpeg . Issues . BadCoeffsProgressive178 ,
54- TestImages . Jpeg . Issues . MissingFF00ProgressiveGirl159 ,
55- TestImages . Jpeg . Issues . MissingFF00ProgressiveBedroom159 ,
56- TestImages . Jpeg . Issues . BadZigZagProgressive385 ,
57- TestImages . Jpeg . Progressive . Bad . ExifUndefType ,
58- TestImages . Jpeg . Issues . NoEoiProgressive517 ,
59- TestImages . Jpeg . Issues . BadRstProgressive518 ,
60- TestImages . Jpeg . Issues . DhtHasWrongLength624 ,
61- TestImages . Jpeg . Issues . OrderedInterleavedProgressive723A ,
62- TestImages . Jpeg . Issues . OrderedInterleavedProgressive723B ,
63- TestImages . Jpeg . Issues . OrderedInterleavedProgressive723C
64- } ;
48+ {
49+ TestImages . Jpeg . Progressive . Fb ,
50+ TestImages . Jpeg . Progressive . Progress ,
51+ TestImages . Jpeg . Progressive . Festzug ,
52+ TestImages . Jpeg . Progressive . Bad . BadEOF ,
53+ TestImages . Jpeg . Issues . BadCoeffsProgressive178 ,
54+ TestImages . Jpeg . Issues . MissingFF00ProgressiveGirl159 ,
55+ TestImages . Jpeg . Issues . MissingFF00ProgressiveBedroom159 ,
56+ TestImages . Jpeg . Issues . BadZigZagProgressive385 ,
57+ TestImages . Jpeg . Progressive . Bad . ExifUndefType ,
58+ TestImages . Jpeg . Issues . NoEoiProgressive517 ,
59+ TestImages . Jpeg . Issues . BadRstProgressive518 ,
60+ TestImages . Jpeg . Issues . DhtHasWrongLength624 ,
61+ TestImages . Jpeg . Issues . OrderedInterleavedProgressive723A ,
62+ TestImages . Jpeg . Issues . OrderedInterleavedProgressive723B ,
63+ TestImages . Jpeg . Issues . OrderedInterleavedProgressive723C
64+ } ;
65+
66+ public static string [ ] UnsupportedTestJpegs =
67+ {
68+ // Invalid componentCount value (2 or > 4)
69+ TestImages . Jpeg . Issues . Fuzz . NullReferenceException823 ,
70+ TestImages . Jpeg . Issues . MalformedUnsupportedComponentCount ,
71+
72+ // Arithmetic coding
73+ TestImages . Jpeg . Baseline . ArithmeticCoding ,
74+ TestImages . Jpeg . Baseline . ArithmeticCodingProgressive ,
75+
76+ // Lossless jpeg
77+ TestImages . Jpeg . Baseline . Lossless
78+ } ;
6579
6680 public static string [ ] UnrecoverableTestJpegs =
6781 {
@@ -70,7 +84,6 @@ public partial class JpegDecoderTests
7084 TestImages . Jpeg . Issues . Fuzz . AccessViolationException798 ,
7185 TestImages . Jpeg . Issues . Fuzz . DivideByZeroException821 ,
7286 TestImages . Jpeg . Issues . Fuzz . DivideByZeroException822 ,
73- TestImages . Jpeg . Issues . Fuzz . NullReferenceException823 ,
7487 TestImages . Jpeg . Issues . Fuzz . IndexOutOfRangeException824A ,
7588 TestImages . Jpeg . Issues . Fuzz . IndexOutOfRangeException824B ,
7689 TestImages . Jpeg . Issues . Fuzz . IndexOutOfRangeException824D ,
@@ -91,28 +104,27 @@ public partial class JpegDecoderTests
91104 TestImages . Jpeg . Issues . Fuzz . IndexOutOfRangeException824C ,
92105 } ;
93106
94- private static readonly Dictionary < string , float > CustomToleranceValues =
95- new Dictionary < string , float >
96- {
97- // Baseline:
98- [ TestImages . Jpeg . Baseline . Calliphora ] = 0.00002f / 100 ,
99- [ TestImages . Jpeg . Baseline . Bad . BadEOF ] = 0.38f / 100 ,
100- [ TestImages . Jpeg . Baseline . Bad . BadRST ] = 0.0589f / 100 ,
107+ private static readonly Dictionary < string , float > CustomToleranceValues = new ( )
108+ {
109+ // Baseline:
110+ [ TestImages . Jpeg . Baseline . Calliphora ] = 0.00002f / 100 ,
111+ [ TestImages . Jpeg . Baseline . Bad . BadEOF ] = 0.38f / 100 ,
112+ [ TestImages . Jpeg . Baseline . Bad . BadRST ] = 0.0589f / 100 ,
101113
102- [ TestImages . Jpeg . Baseline . Jpeg422 ] = 0.0013f / 100 ,
103- [ TestImages . Jpeg . Baseline . Testorig420 ] = 0.38f / 100 ,
104- [ TestImages . Jpeg . Baseline . Jpeg420Small ] = 0.287f / 100 ,
105- [ TestImages . Jpeg . Baseline . Turtle420 ] = 1.0f / 100 ,
114+ [ TestImages . Jpeg . Baseline . Jpeg422 ] = 0.0013f / 100 ,
115+ [ TestImages . Jpeg . Baseline . Testorig420 ] = 0.38f / 100 ,
116+ [ TestImages . Jpeg . Baseline . Jpeg420Small ] = 0.287f / 100 ,
117+ [ TestImages . Jpeg . Baseline . Turtle420 ] = 1.0f / 100 ,
106118
107- // Progressive:
108- [ TestImages . Jpeg . Issues . MissingFF00ProgressiveGirl159 ] = 0.34f / 100 ,
109- [ TestImages . Jpeg . Issues . BadCoeffsProgressive178 ] = 0.38f / 100 ,
110- [ TestImages . Jpeg . Progressive . Bad . BadEOF ] = 0.3f / 100 ,
111- [ TestImages . Jpeg . Progressive . Festzug ] = 0.02f / 100 ,
112- [ TestImages . Jpeg . Progressive . Fb ] = 0.16f / 100 ,
113- [ TestImages . Jpeg . Progressive . Progress ] = 0.31f / 100 ,
114- [ TestImages . Jpeg . Issues . BadZigZagProgressive385 ] = 0.23f / 100 ,
115- [ TestImages . Jpeg . Progressive . Bad . ExifUndefType ] = 0.011f / 100 ,
116- } ;
119+ // Progressive:
120+ [ TestImages . Jpeg . Issues . MissingFF00ProgressiveGirl159 ] = 0.34f / 100 ,
121+ [ TestImages . Jpeg . Issues . BadCoeffsProgressive178 ] = 0.38f / 100 ,
122+ [ TestImages . Jpeg . Progressive . Bad . BadEOF ] = 0.3f / 100 ,
123+ [ TestImages . Jpeg . Progressive . Festzug ] = 0.02f / 100 ,
124+ [ TestImages . Jpeg . Progressive . Fb ] = 0.16f / 100 ,
125+ [ TestImages . Jpeg . Progressive . Progress ] = 0.31f / 100 ,
126+ [ TestImages . Jpeg . Issues . BadZigZagProgressive385 ] = 0.23f / 100 ,
127+ [ TestImages . Jpeg . Progressive . Bad . ExifUndefType ] = 0.011f / 100 ,
128+ } ;
117129 }
118130}
0 commit comments