@@ -288,9 +288,10 @@ TEST_SUITE ("WavLoadingTests - Floating Point Types - 32-bit File")
288
288
TEST_SUITE (" WavLoadingTests - Integer Types - 8-bit file" )
289
289
{
290
290
// =============================================================
291
- TEST_CASE (" WavLoadingTests_Stereo_8bit_44100_int8_t" )
291
+ template <typename T>
292
+ void test8Bit44100WithInteger ()
292
293
{
293
- AudioFile<int8_t > audioFile;
294
+ AudioFile<T > audioFile;
294
295
bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_8bit_44100.wav" );
295
296
296
297
CHECK (loadedOK);
@@ -299,149 +300,38 @@ TEST_SUITE ("WavLoadingTests - Integer Types - 8-bit file")
299
300
CHECK_EQ (audioFile.getSampleRate (), wav_stereo_8bit_44100::sampleRate);
300
301
CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_8bit_44100::testBuffer.size ()));
301
302
302
- for (size_t i = 0 ; i < wav_stereo_8bit_44100::testBuffer[0 ].size (); i++)
303
- {
304
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
305
- {
306
- REQUIRE_EQ (audioFile.samples [k][i], doctest::Approx (wav_stereo_8bit_44100::testBuffer[k][i] * 127 ).epsilon (0.01 ));
307
- }
308
- }
309
- }
310
-
311
- // =============================================================
312
- TEST_CASE (" WavLoadingTests_Stereo_8bit_44100_uint8_t" )
313
- {
314
- AudioFile<uint8_t > audioFile;
315
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_8bit_44100.wav" );
316
-
317
- CHECK (loadedOK);
318
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_8bit_44100::numSamplesPerChannel);
319
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_8bit_44100::bitDepth);
320
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_8bit_44100::sampleRate);
321
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_8bit_44100::testBuffer.size ()));
322
-
323
- for (size_t i = 0 ; i < wav_stereo_8bit_44100::testBuffer[0 ].size (); i++)
324
- {
325
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
326
- {
327
- REQUIRE_EQ (audioFile.samples [k][i], doctest::Approx (wav_stereo_8bit_44100::testBuffer[k][i] * 127 + 128 ).epsilon (0.01 ));
328
- }
329
- }
330
- }
331
-
332
- // =============================================================
333
- TEST_CASE (" WavLoadingTests_Stereo_8bit_44100_int16_t" )
334
- {
335
- AudioFile<int16_t > audioFile;
336
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_8bit_44100.wav" );
337
-
338
- CHECK (loadedOK);
339
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_8bit_44100::numSamplesPerChannel);
340
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_8bit_44100::bitDepth);
341
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_8bit_44100::sampleRate);
342
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_8bit_44100::testBuffer.size ()));
343
-
344
- for (size_t i = 0 ; i < wav_stereo_8bit_44100::testBuffer[0 ].size (); i++)
345
- {
346
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
347
- {
348
- REQUIRE_EQ (audioFile.samples [k][i], doctest::Approx (wav_stereo_8bit_44100::testBuffer[k][i] * 127 ).epsilon (0.01 ));
349
- }
350
- }
351
- }
352
-
353
- // =============================================================
354
- TEST_CASE (" WavLoadingTests_Stereo_8bit_44100_uint16_t" )
355
- {
356
- AudioFile<uint16_t > audioFile;
357
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_8bit_44100.wav" );
358
-
359
- CHECK (loadedOK);
360
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_8bit_44100::numSamplesPerChannel);
361
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_8bit_44100::bitDepth);
362
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_8bit_44100::sampleRate);
363
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_8bit_44100::testBuffer.size ()));
364
-
365
- for (size_t i = 0 ; i < wav_stereo_8bit_44100::testBuffer[0 ].size (); i++)
366
- {
367
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
368
- {
369
- REQUIRE_EQ (audioFile.samples [k][i], doctest::Approx (wav_stereo_8bit_44100::testBuffer[k][i] * 127 + 128 ).epsilon (0.01 ));
370
- }
371
- }
372
- }
373
-
374
- // =============================================================
375
- TEST_CASE (" WavLoadingTests_Stereo_8bit_44100_int32_t" )
376
- {
377
- AudioFile<int32_t > audioFile;
378
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_8bit_44100.wav" );
379
-
380
- CHECK (loadedOK);
381
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_8bit_44100::numSamplesPerChannel);
382
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_8bit_44100::bitDepth);
383
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_8bit_44100::sampleRate);
384
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_8bit_44100::testBuffer.size ()));
303
+ int offset = std::is_signed_v<T> ? 0 : 128 ;
385
304
386
305
for (size_t i = 0 ; i < wav_stereo_8bit_44100::testBuffer[0 ].size (); i++)
387
306
{
388
307
for (int k = 0 ; k < audioFile.getNumChannels (); k++)
389
308
{
390
- REQUIRE_EQ (audioFile.samples [k][i], doctest::Approx (wav_stereo_8bit_44100::testBuffer[k][i] * 127 ).epsilon (0.01 ));
309
+ REQUIRE_EQ (audioFile.samples [k][i], doctest::Approx (wav_stereo_8bit_44100::testBuffer[k][i] * 127 + offset ).epsilon (0.01 ));
391
310
}
392
311
}
393
312
}
394
-
395
313
// =============================================================
396
- TEST_CASE (" WavLoadingTests_Stereo_8bit_44100_uint32_t " )
314
+ TEST_CASE (" WavLoadingTests_Stereo_8bit_44100_integers " )
397
315
{
398
- AudioFile<uint32_t > audioFile;
399
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_8bit_44100.wav" );
400
-
401
- CHECK (loadedOK);
402
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_8bit_44100::numSamplesPerChannel);
403
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_8bit_44100::bitDepth);
404
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_8bit_44100::sampleRate);
405
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_8bit_44100::testBuffer.size ()));
406
-
407
- for (size_t i = 0 ; i < wav_stereo_8bit_44100::testBuffer[0 ].size (); i++)
408
- {
409
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
410
- {
411
- REQUIRE_EQ (audioFile.samples [k][i], doctest::Approx (wav_stereo_8bit_44100::testBuffer[k][i] * 127 + 128 ).epsilon (0.01 ));
412
- }
413
- }
316
+ test8Bit44100WithInteger<int8_t >();
317
+ test8Bit44100WithInteger<uint8_t >();
318
+ test8Bit44100WithInteger<int16_t >();
319
+ test8Bit44100WithInteger<uint16_t >();
320
+ test8Bit44100WithInteger<int32_t >();
321
+ test8Bit44100WithInteger<uint32_t >();
322
+ test8Bit44100WithInteger<int64_t >();
323
+ test8Bit44100WithInteger<uint64_t >();
414
324
}
415
325
}
416
326
417
327
// =============================================================
418
328
TEST_SUITE (" WavLoadingTests - Integer Types - 16-bit file" )
419
329
{
420
330
// =============================================================
421
- TEST_CASE (" WavLoadingTests_Stereo_16bit_44100_int16_t" )
331
+ template <typename T>
332
+ void test16Bit44100WithInteger ()
422
333
{
423
- AudioFile<int16_t > audioFile;
424
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_16bit_44100.wav" );
425
-
426
- CHECK (loadedOK);
427
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_16bit_44100::numSamplesPerChannel);
428
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_16bit_44100::bitDepth);
429
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_16bit_44100::sampleRate);
430
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_16bit_44100::testBuffer.size ()));
431
-
432
- for (size_t i = 0 ; i < wav_stereo_16bit_44100::testBuffer[0 ].size (); i++)
433
- {
434
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
435
- {
436
- CHECK_EQ (audioFile.samples [k][i], std::round (wav_stereo_16bit_44100::testBuffer[k][i] * 32767 ));
437
- }
438
- }
439
- }
440
-
441
- // =============================================================
442
- TEST_CASE (" WavLoadingTests_Stereo_16bit_44100_uint16_t" )
443
- {
444
- AudioFile<uint16_t > audioFile;
334
+ AudioFile<T> audioFile;
445
335
bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_16bit_44100.wav" );
446
336
447
337
CHECK (loadedOK);
@@ -450,97 +340,26 @@ TEST_SUITE ("WavLoadingTests - Integer Types - 16-bit file")
450
340
CHECK_EQ (audioFile.getSampleRate (), wav_stereo_16bit_44100::sampleRate);
451
341
CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_16bit_44100::testBuffer.size ()));
452
342
453
- for (size_t i = 0 ; i < wav_stereo_16bit_44100::testBuffer[0 ].size (); i++)
454
- {
455
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
456
- {
457
- CHECK_EQ (audioFile.samples [k][i], std::round (wav_stereo_16bit_44100::testBuffer[k][i] * 32767 + 32768 ));
458
- }
459
- }
460
- }
461
-
462
- // =============================================================
463
- TEST_CASE (" WavLoadingTests_Stereo_16bit_44100_int32_t" )
464
- {
465
- AudioFile<int32_t > audioFile;
466
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_16bit_44100.wav" );
467
-
468
- CHECK (loadedOK);
469
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_16bit_44100::numSamplesPerChannel);
470
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_16bit_44100::bitDepth);
471
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_16bit_44100::sampleRate);
472
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_16bit_44100::testBuffer.size ()));
343
+ int offset = std::is_signed_v<T> ? 0 : 32768 ;
473
344
474
345
for (size_t i = 0 ; i < wav_stereo_16bit_44100::testBuffer[0 ].size (); i++)
475
346
{
476
347
for (int k = 0 ; k < audioFile.getNumChannels (); k++)
477
348
{
478
- CHECK_EQ (audioFile.samples [k][i], std::round (wav_stereo_16bit_44100::testBuffer[k][i] * 32767 ));
349
+ REQUIRE_EQ (audioFile.samples [k][i], std::round (wav_stereo_16bit_44100::testBuffer[k][i] * 32767 + offset ));
479
350
}
480
351
}
481
352
}
482
353
483
354
// =============================================================
484
- TEST_CASE (" WavLoadingTests_Stereo_16bit_44100_uint16_t " )
355
+ TEST_CASE (" WavLoadingTests_Stereo_16bit_44100_integers " )
485
356
{
486
- AudioFile<uint32_t > audioFile;
487
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_16bit_44100.wav" );
488
-
489
- CHECK (loadedOK);
490
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_16bit_44100::numSamplesPerChannel);
491
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_16bit_44100::bitDepth);
492
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_16bit_44100::sampleRate);
493
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_16bit_44100::testBuffer.size ()));
494
-
495
- for (size_t i = 0 ; i < wav_stereo_16bit_44100::testBuffer[0 ].size (); i++)
496
- {
497
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
498
- {
499
- CHECK_EQ (audioFile.samples [k][i], std::round (wav_stereo_16bit_44100::testBuffer[k][i] * 32767 + 32768 ));
500
- }
501
- }
502
- }
503
-
504
- // =============================================================
505
- TEST_CASE (" WavLoadingTests_Stereo_16bit_44100_int64_t" )
506
- {
507
- AudioFile<int64_t > audioFile;
508
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_16bit_44100.wav" );
509
-
510
- CHECK (loadedOK);
511
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_16bit_44100::numSamplesPerChannel);
512
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_16bit_44100::bitDepth);
513
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_16bit_44100::sampleRate);
514
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_16bit_44100::testBuffer.size ()));
515
-
516
- for (size_t i = 0 ; i < wav_stereo_16bit_44100::testBuffer[0 ].size (); i++)
517
- {
518
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
519
- {
520
- CHECK_EQ (audioFile.samples [k][i], std::round (wav_stereo_16bit_44100::testBuffer[k][i] * 32767 ));
521
- }
522
- }
523
- }
524
-
525
- // =============================================================
526
- TEST_CASE (" WavLoadingTests_Stereo_16bit_44100_uint64_t" )
527
- {
528
- AudioFile<uint64_t > audioFile;
529
- bool loadedOK = audioFile.load (projectBuildDirectory + " /test-audio/wav_stereo_16bit_44100.wav" );
530
-
531
- CHECK (loadedOK);
532
- CHECK_EQ (audioFile.getNumSamplesPerChannel (), wav_stereo_16bit_44100::numSamplesPerChannel);
533
- CHECK_EQ (audioFile.getBitDepth (), wav_stereo_16bit_44100::bitDepth);
534
- CHECK_EQ (audioFile.getSampleRate (), wav_stereo_16bit_44100::sampleRate);
535
- CHECK_EQ (audioFile.getNumChannels (), static_cast <int > (wav_stereo_16bit_44100::testBuffer.size ()));
536
-
537
- for (size_t i = 0 ; i < wav_stereo_16bit_44100::testBuffer[0 ].size (); i++)
538
- {
539
- for (int k = 0 ; k < audioFile.getNumChannels (); k++)
540
- {
541
- CHECK_EQ (audioFile.samples [k][i], std::round (wav_stereo_16bit_44100::testBuffer[k][i] * 32767 + 32768 ));
542
- }
543
- }
357
+ test16Bit44100WithInteger<int16_t >();
358
+ test16Bit44100WithInteger<uint16_t >();
359
+ test16Bit44100WithInteger<int32_t >();
360
+ test16Bit44100WithInteger<uint32_t >();
361
+ test16Bit44100WithInteger<int64_t >();
362
+ test16Bit44100WithInteger<uint64_t >();
544
363
}
545
364
}
546
365
0 commit comments