@@ -242,62 +242,103 @@ static void RunTest(string arg) =>
242
242
[ Theory ]
243
243
[ MemberData ( nameof ( Seeds ) ) ]
244
244
public void FromYCbCrAvx2 ( int seed ) =>
245
- this . TestConversionToRgb ( new JpegColorConverterBase . YCbCrAvx ( 8 ) , 3 , seed , new JpegColorConverterBase . YCbCrScalar ( 8 ) ) ;
245
+ this . TestConversionToRgb ( new JpegColorConverterBase . YCbCrAvx ( 8 ) ,
246
+ 3 ,
247
+ seed ,
248
+ new JpegColorConverterBase . YCbCrScalar ( 8 ) ) ;
246
249
247
250
[ Theory ]
248
251
[ MemberData ( nameof ( Seeds ) ) ]
249
252
public void FromRgbToYCbCrAvx2 ( int seed ) =>
250
- this . TestConversionFromRgb ( new JpegColorConverterBase . YCbCrAvx ( 8 ) , 3 , seed , new JpegColorConverterBase . YCbCrScalar ( 8 ) ) ;
253
+ this . TestConversionFromRgb ( new JpegColorConverterBase . YCbCrAvx ( 8 ) ,
254
+ 3 ,
255
+ seed ,
256
+ new JpegColorConverterBase . YCbCrScalar ( 8 ) ,
257
+ precísion : 2 ) ;
251
258
252
259
[ Theory ]
253
260
[ MemberData ( nameof ( Seeds ) ) ]
254
261
public void FromCmykAvx2 ( int seed ) =>
255
- this . TestConversionToRgb ( new JpegColorConverterBase . CmykAvx ( 8 ) , 4 , seed , new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
262
+ this . TestConversionToRgb ( new JpegColorConverterBase . CmykAvx ( 8 ) ,
263
+ 4 ,
264
+ seed ,
265
+ new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
256
266
257
267
[ Theory ]
258
268
[ MemberData ( nameof ( Seeds ) ) ]
259
269
public void FromRgbToCmykAvx2 ( int seed ) =>
260
- this . TestConversionFromRgb ( new JpegColorConverterBase . CmykAvx ( 8 ) , 4 , seed , new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
270
+ this . TestConversionFromRgb ( new JpegColorConverterBase . CmykAvx ( 8 ) ,
271
+ 4 ,
272
+ seed ,
273
+ new JpegColorConverterBase . CmykScalar ( 8 ) ,
274
+ precísion : 4 ) ;
261
275
262
276
[ Theory ]
263
277
[ MemberData ( nameof ( Seeds ) ) ]
264
278
public void FromCmykArm ( int seed ) =>
265
- this . TestConversionToRgb ( new JpegColorConverterBase . CmykArm64 ( 8 ) , 4 , seed , new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
279
+ this . TestConversionToRgb ( new JpegColorConverterBase . CmykArm64 ( 8 ) ,
280
+ 4 ,
281
+ seed ,
282
+ new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
266
283
267
284
[ Theory ]
268
285
[ MemberData ( nameof ( Seeds ) ) ]
269
286
public void FromRgbToCmykArm ( int seed ) =>
270
- this . TestConversionFromRgb ( new JpegColorConverterBase . CmykArm64 ( 8 ) , 4 , seed , new JpegColorConverterBase . CmykScalar ( 8 ) ) ;
287
+ this . TestConversionFromRgb ( new JpegColorConverterBase . CmykArm64 ( 8 ) ,
288
+ 4 ,
289
+ seed ,
290
+ new JpegColorConverterBase . CmykScalar ( 8 ) ,
291
+ precísion : 4 ) ;
271
292
272
293
[ Theory ]
273
294
[ MemberData ( nameof ( Seeds ) ) ]
274
295
public void FromGrayscaleAvx2 ( int seed ) =>
275
- this . TestConversionToRgb ( new JpegColorConverterBase . GrayscaleAvx ( 8 ) , 1 , seed , new JpegColorConverterBase . GrayscaleScalar ( 8 ) ) ;
296
+ this . TestConversionToRgb ( new JpegColorConverterBase . GrayscaleAvx ( 8 ) ,
297
+ 1 ,
298
+ seed ,
299
+ new JpegColorConverterBase . GrayscaleScalar ( 8 ) ) ;
276
300
277
301
[ Theory ]
278
302
[ MemberData ( nameof ( Seeds ) ) ]
279
303
public void FromRgbToGrayscaleAvx2 ( int seed ) =>
280
- this . TestConversionFromRgb ( new JpegColorConverterBase . GrayscaleAvx ( 8 ) , 1 , seed , new JpegColorConverterBase . GrayscaleScalar ( 8 ) ) ;
304
+ this . TestConversionFromRgb ( new JpegColorConverterBase . GrayscaleAvx ( 8 ) ,
305
+ 1 ,
306
+ seed ,
307
+ new JpegColorConverterBase . GrayscaleScalar ( 8 ) ,
308
+ precísion : 3 ) ;
281
309
282
310
[ Theory ]
283
311
[ MemberData ( nameof ( Seeds ) ) ]
284
312
public void FromRgbAvx2 ( int seed ) =>
285
- this . TestConversionToRgb ( new JpegColorConverterBase . RgbAvx ( 8 ) , 3 , seed , new JpegColorConverterBase . RgbScalar ( 8 ) ) ;
313
+ this . TestConversionToRgb ( new JpegColorConverterBase . RgbAvx ( 8 ) ,
314
+ 3 ,
315
+ seed ,
316
+ new JpegColorConverterBase . RgbScalar ( 8 ) ) ;
286
317
287
318
[ Theory ]
288
319
[ MemberData ( nameof ( Seeds ) ) ]
289
320
public void FromRgbArm ( int seed ) =>
290
- this . TestConversionToRgb ( new JpegColorConverterBase . RgbArm ( 8 ) , 3 , seed , new JpegColorConverterBase . RgbScalar ( 8 ) ) ;
321
+ this . TestConversionToRgb ( new JpegColorConverterBase . RgbArm ( 8 ) ,
322
+ 3 ,
323
+ seed ,
324
+ new JpegColorConverterBase . RgbScalar ( 8 ) ) ;
291
325
292
326
[ Theory ]
293
327
[ MemberData ( nameof ( Seeds ) ) ]
294
328
public void FromYccKAvx2 ( int seed ) =>
295
- this . TestConversionToRgb ( new JpegColorConverterBase . YccKAvx ( 8 ) , 4 , seed , new JpegColorConverterBase . YccKScalar ( 8 ) ) ;
329
+ this . TestConversionToRgb ( new JpegColorConverterBase . YccKAvx ( 8 ) ,
330
+ 4 ,
331
+ seed ,
332
+ new JpegColorConverterBase . YccKScalar ( 8 ) ) ;
296
333
297
334
[ Theory ]
298
335
[ MemberData ( nameof ( Seeds ) ) ]
299
336
public void FromRgbToYccKAvx2 ( int seed ) =>
300
- this . TestConversionFromRgb ( new JpegColorConverterBase . YccKAvx ( 8 ) , 4 , seed , new JpegColorConverterBase . YccKScalar ( 8 ) ) ;
337
+ this . TestConversionFromRgb ( new JpegColorConverterBase . YccKAvx ( 8 ) ,
338
+ 4 ,
339
+ seed ,
340
+ new JpegColorConverterBase . YccKScalar ( 8 ) ,
341
+ precísion : 4 ) ;
301
342
302
343
private void TestConversionToRgb (
303
344
JpegColorConverterBase converter ,
@@ -323,7 +364,8 @@ private void TestConversionFromRgb(
323
364
JpegColorConverterBase converter ,
324
365
int componentCount ,
325
366
int seed ,
326
- JpegColorConverterBase baseLineConverter )
367
+ JpegColorConverterBase baseLineConverter ,
368
+ int precísion )
327
369
{
328
370
if ( ! converter . IsAvailable )
329
371
{
@@ -336,7 +378,8 @@ private void TestConversionFromRgb(
336
378
converter ,
337
379
componentCount ,
338
380
seed ,
339
- baseLineConverter ) ;
381
+ baseLineConverter ,
382
+ precísion ) ;
340
383
}
341
384
342
385
private static JpegColorConverterBase . ComponentValues CreateRandomValues (
@@ -434,7 +477,8 @@ private static void ValidateConversionFromRgb(
434
477
JpegColorConverterBase converter ,
435
478
int componentCount ,
436
479
int seed ,
437
- JpegColorConverterBase baseLineConverter )
480
+ JpegColorConverterBase baseLineConverter ,
481
+ int precision = 4 )
438
482
{
439
483
// arrange
440
484
JpegColorConverterBase . ComponentValues actual = CreateRandomValues ( TestBufferLength , componentCount , seed ) ;
@@ -451,22 +495,30 @@ private static void ValidateConversionFromRgb(
451
495
// assert
452
496
if ( componentCount == 1 )
453
497
{
454
- Assert . True ( expected . Component0 . SequenceEqual ( actual . Component0 ) ) ;
498
+ CompareSequenceWithTolerance ( expected . Component0 , actual . Component0 , precision ) ;
455
499
}
456
500
457
501
if ( componentCount == 2 )
458
502
{
459
- Assert . True ( expected . Component1 . SequenceEqual ( actual . Component1 ) ) ;
503
+ CompareSequenceWithTolerance ( expected . Component1 , actual . Component1 , precision ) ;
460
504
}
461
505
462
506
if ( componentCount == 3 )
463
507
{
464
- Assert . True ( expected . Component2 . SequenceEqual ( actual . Component2 ) ) ;
508
+ CompareSequenceWithTolerance ( expected . Component2 , actual . Component2 , precision ) ;
465
509
}
466
510
467
511
if ( componentCount == 4 )
468
512
{
469
- Assert . True ( expected . Component3 . SequenceEqual ( actual . Component3 ) ) ;
513
+ CompareSequenceWithTolerance ( expected . Component3 , actual . Component3 , precision ) ;
514
+ }
515
+ }
516
+
517
+ private static void CompareSequenceWithTolerance ( Span < float > expected , Span < float > actual , int precision )
518
+ {
519
+ for ( int i = 0 ; i < expected . Length ; i ++ )
520
+ {
521
+ Assert . Equal ( expected [ i ] , actual [ i ] , precision : precision ) ;
470
522
}
471
523
}
472
524
0 commit comments