14 for (
auto i :
xrange(10)) {
21 SECTION(
"empty file") {
22 uint8_t buffer[] = {};
28 CHECK(
e.getMessage() ==
"Read beyond end of wav file.");
31 SECTION(
"garbage data") {
34 0x00,0x01,0x02,0x03, 0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b, 0x0c,0x0d,0x0e,0x0f,
35 0x10,0x11,0x12,0x13, 0x14,0x15,0x16,0x17, 0x18,0x19,0x1a,0x1b, 0x1c,0x1d,0x1e,0x1f,
42 CHECK(
e.getMessage() ==
"Invalid WAV file.");
45 SECTION(
"unsupported format") {
48 'R',
'I',
'F',
'F', 0x04,0x05,0x06,0x07,
'W',
'A',
'V',
'E',
'f',
'm',
't' ,
' ',
49 0x10,0x11,0x12,0x13, 0x14,0x15,0x16,0x17, 0x18,0x19,0x1a,0x1b, 0x1c,0x1d,0x1e,0x1f,
56 CHECK(
e.getMessage() ==
"WAV format unsupported, must be 8 or 16 bit PCM.");
59 SECTION(
"missing data chunk") {
62 'R',
'I',
'F',
'F', 0x04,0x05,0x06,0x07,
'W',
'A',
'V',
'E',
'f',
'm',
't' ,
' ',
63 0x10,0x00,0x00,0x00, 0x01,0x00,0x01,0x00, 0x44,0xac,0x00,0x00, 0x88,0x58,0x01,0x00,
70 CHECK(
e.getMessage() ==
"Read beyond end of wav file.");
73 SECTION(
"data chunk with incorrect length") {
76 'R',
'I',
'F',
'F', 0x04,0x05,0x06,0x07,
'W',
'A',
'V',
'E',
'f',
'm',
't' ,
' ',
77 0x10,0x00,0x00,0x00, 0x01,0x00,0x01,0x00, 0x44,0xac,0x00,0x00, 0x88,0x58,0x01,0x00,
78 0x02,0x00,0x10,0x00,
'd',
'a',
't',
'a', 0x64,0x00,0x00,0x00,
84 CHECK(
e.getMessage() ==
"Read beyond end of wav file.");
87 SECTION(
"finally a correct, but empty wav file") {
90 'R',
'I',
'F',
'F', 0x04,0x05,0x06,0x07,
'W',
'A',
'V',
'E',
'f',
'm',
't' ,
' ',
91 0x10,0x00,0x00,0x00, 0x01,0x00,0x01,0x00, 0x44,0xac,0x00,0x00, 0x88,0x58,0x01,0x00,
93 'd',
'a',
't',
'a', 0x00,0x00,0x00,0x00,
103 SECTION(
"mono, 8 bit") {
106 'R',
'I',
'F',
'F', 0x04,0x05,0x06,0x07,
'W',
'A',
'V',
'E',
'f',
'm',
't' ,
' ',
107 0x10,0x00,0x00,0x00, 0x01,0x00,0x01,0x00, 0x44,0xac,0x00,0x00, 0x44,0xac,0x00,0x00,
109 'd',
'a',
't',
'a', 0x05,0x00,0x00,0x00,
110 0x00, 0x45, 0x80, 0xbe, 0xff
122 SECTION(
"mono, 16 bit") {
125 'R',
'I',
'F',
'F', 0x04,0x05,0x06,0x07,
'W',
'A',
'V',
'E',
'f',
'm',
't' ,
' ',
126 0x10,0x00,0x00,0x00, 0x01,0x00,0x01,0x00, 0x44,0xac,0x00,0x00, 0x44,0xac,0x00,0x00,
128 'd',
'a',
't',
'a', 0x08,0x00,0x00,0x00,
129 0x23,0x45, 0x00,0x7e, 0xff,0xff, 0x23,0xc0
141 SECTION(
"stereo, 8 bit") {
144 'R',
'I',
'F',
'F', 0x04,0x05,0x06,0x07,
'W',
'A',
'V',
'E',
'f',
'm',
't' ,
' ',
145 0x10,0x00,0x00,0x00, 0x01,0x00,0x02,0x00, 0x44,0xac,0x00,0x00, 0x44,0xac,0x00,0x00,
147 'd',
'a',
't',
'a', 0x08,0x00,0x00,0x00,
148 0x00,0xff, 0x40,0xef, 0x80,0xdf, 0xc0,0xcf
159 SECTION(
"stereo, 16 bit") {
162 'R',
'I',
'F',
'F', 0x04,0x05,0x06,0x07,
'W',
'A',
'V',
'E',
'f',
'm',
't' ,
' ',
163 0x10,0x00,0x00,0x00, 0x01,0x00,0x02,0x00, 0x44,0xac,0x00,0x00, 0x44,0xac,0x00,0x00,
165 'd',
'a',
't',
'a', 0x10,0x00,0x00,0x00,
166 0x12,0x34,0xff,0xee, 0x56,0x78,0xdd,0xcc, 0x9a,0xbc,0xbb,0xaa, 0xde,0xf0,0x99,0x88,
TEST_CASE("WavData, default constructor")
int16_t getSample(unsigned pos) const
This file implemented 3 utility functions:
File memory_buffer_file(std::span< const uint8_t > buffer)
constexpr auto xrange(T e)