@@ -36,7 +36,7 @@ public JpegColorConverterTests(ITestOutputHelper output)
36
36
[ Fact ]
37
37
public void GetConverterThrowsExceptionOnInvalidColorSpace ( )
38
38
{
39
- var invalidColorSpace = ( JpegColorSpace ) ( - 1 ) ;
39
+ JpegColorSpace invalidColorSpace = ( JpegColorSpace ) ( - 1 ) ;
40
40
Assert . Throws < InvalidImageContentException > ( ( ) => JpegColorConverterBase . GetConverter ( invalidColorSpace , 8 ) ) ;
41
41
}
42
42
@@ -61,7 +61,7 @@ public void GetConverterThrowsExceptionOnInvalidPrecision()
61
61
[ InlineData ( JpegColorSpace . YCbCr , 12 ) ]
62
62
internal void GetConverterReturnsValidConverter ( JpegColorSpace colorSpace , int precision )
63
63
{
64
- var converter = JpegColorConverterBase . GetConverter ( colorSpace , precision ) ;
64
+ JpegColorConverterBase converter = JpegColorConverterBase . GetConverter ( colorSpace , precision ) ;
65
65
66
66
Assert . NotNull ( converter ) ;
67
67
Assert . True ( converter . IsAvailable ) ;
@@ -77,7 +77,7 @@ internal void GetConverterReturnsValidConverter(JpegColorSpace colorSpace, int p
77
77
[ InlineData ( JpegColorSpace . YCbCr , 3 ) ]
78
78
internal void ConvertWithSelectedConverter ( JpegColorSpace colorSpace , int componentCount )
79
79
{
80
- var converter = JpegColorConverterBase . GetConverter ( colorSpace , 8 ) ;
80
+ JpegColorConverterBase converter = JpegColorConverterBase . GetConverter ( colorSpace , 8 ) ;
81
81
ValidateConversion (
82
82
converter ,
83
83
componentCount ,
@@ -93,7 +93,7 @@ public void FromYCbCrBasic(int seed) =>
93
93
[ MemberData ( nameof ( Seeds ) ) ]
94
94
public void FromYCbCrVector ( int seed )
95
95
{
96
- var converter = new JpegColorConverterBase . YCbCrVector ( 8 ) ;
96
+ JpegColorConverterBase . YCbCrVector converter = new ( 8 ) ;
97
97
98
98
if ( ! converter . IsAvailable )
99
99
{
@@ -111,7 +111,8 @@ static void RunTest(string arg) =>
111
111
ValidateConversion (
112
112
new JpegColorConverterBase . YCbCrVector ( 8 ) ,
113
113
3 ,
114
- FeatureTestRunner . Deserialize < int > ( arg ) ) ;
114
+ FeatureTestRunner . Deserialize < int > ( arg ) ,
115
+ new JpegColorConverterBase . YCbCrScalar ( 8 ) ) ;
115
116
}
116
117
117
118
[ Theory ]
@@ -123,7 +124,7 @@ public void FromCmykBasic(int seed) =>
123
124
[ MemberData ( nameof ( Seeds ) ) ]
124
125
public void FromCmykVector ( int seed )
125
126
{
126
- var converter = new JpegColorConverterBase . CmykVector ( 8 ) ;
127
+ JpegColorConverterBase . CmykVector converter = new ( 8 ) ;
127
128
128
129
if ( ! converter . IsAvailable )
129
130
{
@@ -141,7 +142,8 @@ static void RunTest(string arg) =>
141
142
ValidateConversion (
142
143
new JpegColorConverterBase . CmykVector ( 8 ) ,
143
144
4 ,
144
- FeatureTestRunner . Deserialize < int > ( arg ) ) ;
145
+ FeatureTestRunner . Deserialize < int > ( arg ) ,
146
+ new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
145
147
}
146
148
147
149
[ Theory ]
@@ -153,7 +155,7 @@ public void FromGrayscaleBasic(int seed) =>
153
155
[ MemberData ( nameof ( Seeds ) ) ]
154
156
public void FromGrayscaleVector ( int seed )
155
157
{
156
- var converter = new JpegColorConverterBase . GrayScaleVector ( 8 ) ;
158
+ JpegColorConverterBase . GrayScaleVector converter = new JpegColorConverterBase . GrayScaleVector ( 8 ) ;
157
159
158
160
if ( ! converter . IsAvailable )
159
161
{
@@ -171,7 +173,8 @@ static void RunTest(string arg) =>
171
173
ValidateConversion (
172
174
new JpegColorConverterBase . GrayScaleVector ( 8 ) ,
173
175
1 ,
174
- FeatureTestRunner . Deserialize < int > ( arg ) ) ;
176
+ FeatureTestRunner . Deserialize < int > ( arg ) ,
177
+ new JpegColorConverterBase . GrayscaleScalar ( 8 ) ) ;
175
178
}
176
179
177
180
[ Theory ]
@@ -183,7 +186,7 @@ public void FromRgbBasic(int seed) =>
183
186
[ MemberData ( nameof ( Seeds ) ) ]
184
187
public void FromRgbVector ( int seed )
185
188
{
186
- var converter = new JpegColorConverterBase . RgbVector ( 8 ) ;
189
+ JpegColorConverterBase . RgbVector converter = new JpegColorConverterBase . RgbVector ( 8 ) ;
187
190
188
191
if ( ! converter . IsAvailable )
189
192
{
@@ -201,7 +204,8 @@ static void RunTest(string arg) =>
201
204
ValidateConversion (
202
205
new JpegColorConverterBase . RgbVector ( 8 ) ,
203
206
3 ,
204
- FeatureTestRunner . Deserialize < int > ( arg ) ) ;
207
+ FeatureTestRunner . Deserialize < int > ( arg ) ,
208
+ new JpegColorConverterBase . RgbScalar ( 8 ) ) ;
205
209
}
206
210
207
211
[ Theory ]
@@ -213,7 +217,7 @@ public void FromYccKBasic(int seed) =>
213
217
[ MemberData ( nameof ( Seeds ) ) ]
214
218
public void FromYccKVector ( int seed )
215
219
{
216
- var converter = new JpegColorConverterBase . YccKVector ( 8 ) ;
220
+ JpegColorConverterBase . YccKVector converter = new JpegColorConverterBase . YccKVector ( 8 ) ;
217
221
218
222
if ( ! converter . IsAvailable )
219
223
{
@@ -231,48 +235,50 @@ static void RunTest(string arg) =>
231
235
ValidateConversion (
232
236
new JpegColorConverterBase . YccKVector ( 8 ) ,
233
237
4 ,
234
- FeatureTestRunner . Deserialize < int > ( arg ) ) ;
238
+ FeatureTestRunner . Deserialize < int > ( arg ) ,
239
+ new JpegColorConverterBase . YccKScalar ( 8 ) ) ;
235
240
}
236
241
237
242
[ Theory ]
238
243
[ MemberData ( nameof ( Seeds ) ) ]
239
244
public void FromYCbCrAvx2 ( int seed ) =>
240
- this . TestConverter ( new JpegColorConverterBase . YCbCrAvx ( 8 ) , 3 , seed ) ;
245
+ this . TestConverter ( new JpegColorConverterBase . YCbCrAvx ( 8 ) , 3 , seed , new JpegColorConverterBase . YCbCrScalar ( 8 ) ) ;
241
246
242
247
[ Theory ]
243
248
[ MemberData ( nameof ( Seeds ) ) ]
244
249
public void FromCmykAvx2 ( int seed ) =>
245
- this . TestConverter ( new JpegColorConverterBase . CmykAvx ( 8 ) , 4 , seed ) ;
250
+ this . TestConverter ( new JpegColorConverterBase . CmykAvx ( 8 ) , 4 , seed , new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
246
251
247
252
[ Theory ]
248
253
[ MemberData ( nameof ( Seeds ) ) ]
249
254
public void FromCmykArm ( int seed ) =>
250
- this . TestConverter ( new JpegColorConverterBase . CmykArm64 ( 8 ) , 4 , seed ) ;
255
+ this . TestConverter ( new JpegColorConverterBase . CmykArm64 ( 8 ) , 4 , seed , new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
251
256
252
257
[ Theory ]
253
258
[ MemberData ( nameof ( Seeds ) ) ]
254
259
public void FromGrayscaleAvx2 ( int seed ) =>
255
- this . TestConverter ( new JpegColorConverterBase . GrayscaleAvx ( 8 ) , 1 , seed ) ;
260
+ this . TestConverter ( new JpegColorConverterBase . GrayscaleAvx ( 8 ) , 1 , seed , new JpegColorConverterBase . GrayscaleScalar ( 8 ) ) ;
256
261
257
262
[ Theory ]
258
263
[ MemberData ( nameof ( Seeds ) ) ]
259
264
public void FromRgbAvx2 ( int seed ) =>
260
- this . TestConverter ( new JpegColorConverterBase . RgbAvx ( 8 ) , 3 , seed ) ;
265
+ this . TestConverter ( new JpegColorConverterBase . RgbAvx ( 8 ) , 3 , seed , new JpegColorConverterBase . RgbScalar ( 8 ) ) ;
261
266
262
267
[ Theory ]
263
268
[ MemberData ( nameof ( Seeds ) ) ]
264
269
public void FromRgbArm ( int seed ) =>
265
- this . TestConverter ( new JpegColorConverterBase . RgbArm ( 8 ) , 3 , seed ) ;
270
+ this . TestConverter ( new JpegColorConverterBase . RgbArm ( 8 ) , 3 , seed , new JpegColorConverterBase . RgbScalar ( 8 ) ) ;
266
271
267
272
[ Theory ]
268
273
[ MemberData ( nameof ( Seeds ) ) ]
269
274
public void FromYccKAvx2 ( int seed ) =>
270
- this . TestConverter ( new JpegColorConverterBase . YccKAvx ( 8 ) , 4 , seed ) ;
275
+ this . TestConverter ( new JpegColorConverterBase . YccKAvx ( 8 ) , 4 , seed , new JpegColorConverterBase . YccKScalar ( 8 ) ) ;
271
276
272
277
private void TestConverter (
273
278
JpegColorConverterBase converter ,
274
279
int componentCount ,
275
- int seed )
280
+ int seed ,
281
+ JpegColorConverterBase baseLineConverter = null )
276
282
{
277
283
if ( ! converter . IsAvailable )
278
284
{
@@ -284,7 +290,8 @@ private void TestConverter(
284
290
ValidateConversion (
285
291
converter ,
286
292
componentCount ,
287
- seed ) ;
293
+ seed ,
294
+ baseLineConverter ) ;
288
295
}
289
296
290
297
private static JpegColorConverterBase . ComponentValues CreateRandomValues (
@@ -316,21 +323,52 @@ private static JpegColorConverterBase.ComponentValues CreateRandomValues(
316
323
private static void ValidateConversion (
317
324
JpegColorConverterBase converter ,
318
325
int componentCount ,
319
- int seed )
326
+ int seed ,
327
+ JpegColorConverterBase baseLineConverter = null )
320
328
{
321
329
JpegColorConverterBase . ComponentValues original = CreateRandomValues ( TestBufferLength , componentCount , seed ) ;
322
- JpegColorConverterBase . ComponentValues values = new (
330
+ JpegColorConverterBase . ComponentValues actual = new (
323
331
original . ComponentCount ,
324
332
original . Component0 . ToArray ( ) ,
325
333
original . Component1 . ToArray ( ) ,
326
334
original . Component2 . ToArray ( ) ,
327
335
original . Component3 . ToArray ( ) ) ;
328
336
329
- converter . ConvertToRgbInplace ( values ) ;
337
+ converter . ConvertToRgbInplace ( actual ) ;
330
338
331
339
for ( int i = 0 ; i < TestBufferLength ; i ++ )
332
340
{
333
- Validate ( converter . ColorSpace , original , values , i ) ;
341
+ Validate ( converter . ColorSpace , original , actual , i ) ;
342
+ }
343
+
344
+ if ( baseLineConverter != null )
345
+ {
346
+ JpegColorConverterBase . ComponentValues expected = new (
347
+ original . ComponentCount ,
348
+ original . Component0 . ToArray ( ) ,
349
+ original . Component1 . ToArray ( ) ,
350
+ original . Component2 . ToArray ( ) ,
351
+ original . Component3 . ToArray ( ) ) ;
352
+ baseLineConverter . ConvertToRgbInplace ( expected ) ;
353
+ if ( componentCount == 1 )
354
+ {
355
+ Assert . True ( expected . Component0 . SequenceEqual ( actual . Component0 ) ) ;
356
+ }
357
+
358
+ if ( componentCount == 2 )
359
+ {
360
+ Assert . True ( expected . Component1 . SequenceEqual ( actual . Component1 ) ) ;
361
+ }
362
+
363
+ if ( componentCount == 3 )
364
+ {
365
+ Assert . True ( expected . Component2 . SequenceEqual ( actual . Component2 ) ) ;
366
+ }
367
+
368
+ if ( componentCount == 4 )
369
+ {
370
+ Assert . True ( expected . Component3 . SequenceEqual ( actual . Component3 ) ) ;
371
+ }
334
372
}
335
373
}
336
374
@@ -368,9 +406,9 @@ private static void ValidateYCbCr(in JpegColorConverterBase.ComponentValues valu
368
406
float y = values . Component0 [ i ] ;
369
407
float cb = values . Component1 [ i ] ;
370
408
float cr = values . Component2 [ i ] ;
371
- var expected = ColorSpaceConverter . ToRgb ( new YCbCr ( y , cb , cr ) ) ;
409
+ Rgb expected = ColorSpaceConverter . ToRgb ( new YCbCr ( y , cb , cr ) ) ;
372
410
373
- var actual = new Rgb ( result . Component0 [ i ] , result . Component1 [ i ] , result . Component2 [ i ] ) ;
411
+ Rgb actual = new ( result . Component0 [ i ] , result . Component1 [ i ] , result . Component2 [ i ] ) ;
374
412
375
413
bool equal = ColorSpaceComparer . Equals ( expected , actual ) ;
376
414
Assert . True ( equal , $ "Colors { expected } and { actual } are not equal at index { i } ") ;
0 commit comments