Skip to content

Commit 51d50c7

Browse files
authored
Merge pull request #349 from uklotzde/split-unit-tests
AudioBufferSource: Split and extend unit tests
2 parents b30c58e + c8b2f39 commit 51d50c7

File tree

1 file changed

+42
-55
lines changed

1 file changed

+42
-55
lines changed

src/node/audio_buffer_source.rs

Lines changed: 42 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,43 +1262,24 @@ mod tests {
12621262
}
12631263

12641264
#[test]
1265-
// just to make things more readable when populating expected values
1266-
#[allow(clippy::erasing_op)]
1267-
#[allow(clippy::identity_op)]
1268-
fn test_fast_track_loop() {
1269-
// buffer smaller than block
1270-
{
1271-
let sample_rate = 480000.;
1272-
let context = OfflineAudioContext::new(1, RENDER_QUANTUM_SIZE * 2, sample_rate);
1273-
1274-
let mut dirac = context.create_buffer(1, RENDER_QUANTUM_SIZE / 2, sample_rate);
1275-
dirac.copy_to_channel(&[1.], 0);
1276-
1277-
let src = context.create_buffer_source();
1278-
src.connect(&context.destination());
1279-
src.set_loop(true);
1280-
src.set_buffer(dirac);
1281-
src.start();
1282-
1283-
let result = context.start_rendering_sync();
1284-
let channel = result.get_channel_data(0);
1285-
1286-
let mut expected = vec![0.; 256];
1287-
expected[64 * 0] = 1.;
1288-
expected[64 * 1] = 1.;
1289-
expected[64 * 2] = 1.;
1290-
expected[64 * 3] = 1.;
1291-
1292-
assert_float_eq!(channel[..], expected[..], abs_all <= 0.);
1293-
}
1294-
1295-
// buffer larger than block
1296-
{
1297-
let sample_rate = 480000.;
1298-
let len = RENDER_QUANTUM_SIZE * 4;
1265+
fn test_fast_track_loop_mono() {
1266+
let sample_rate = 480000.;
1267+
let len = RENDER_QUANTUM_SIZE * 4;
1268+
1269+
for buffer_len in [
1270+
RENDER_QUANTUM_SIZE / 2 - 1,
1271+
RENDER_QUANTUM_SIZE / 2,
1272+
RENDER_QUANTUM_SIZE / 2 + 1,
1273+
RENDER_QUANTUM_SIZE - 1,
1274+
RENDER_QUANTUM_SIZE,
1275+
RENDER_QUANTUM_SIZE + 1,
1276+
RENDER_QUANTUM_SIZE * 2 - 1,
1277+
RENDER_QUANTUM_SIZE * 2,
1278+
RENDER_QUANTUM_SIZE * 2 + 1,
1279+
] {
12991280
let context = OfflineAudioContext::new(1, len, sample_rate);
13001281

1301-
let mut dirac = context.create_buffer(1, 129, sample_rate);
1282+
let mut dirac = context.create_buffer(1, buffer_len, sample_rate);
13021283
dirac.copy_to_channel(&[1.], 0);
13031284

13041285
let src = context.create_buffer_source();
@@ -1311,21 +1292,32 @@ mod tests {
13111292
let channel = result.get_channel_data(0);
13121293

13131294
let mut expected = vec![0.; len];
1314-
expected[129 * 0] = 1.;
1315-
expected[129 * 1] = 1.;
1316-
expected[129 * 2] = 1.;
1317-
expected[129 * 3] = 1.;
1295+
for i in (0..len).step_by(buffer_len) {
1296+
expected[i] = 1.;
1297+
}
13181298

13191299
assert_float_eq!(channel[..], expected[..], abs_all <= 0.);
13201300
}
1301+
}
13211302

1322-
// stereo
1323-
{
1324-
let sample_rate = 480000.;
1325-
let len = RENDER_QUANTUM_SIZE * 4;
1303+
#[test]
1304+
fn test_fast_track_loop_stereo() {
1305+
let sample_rate = 480000.;
1306+
let len = RENDER_QUANTUM_SIZE * 4;
1307+
1308+
for buffer_len in [
1309+
RENDER_QUANTUM_SIZE / 2 - 1,
1310+
RENDER_QUANTUM_SIZE / 2,
1311+
RENDER_QUANTUM_SIZE / 2 + 1,
1312+
RENDER_QUANTUM_SIZE - 1,
1313+
RENDER_QUANTUM_SIZE,
1314+
RENDER_QUANTUM_SIZE + 1,
1315+
RENDER_QUANTUM_SIZE * 2 - 1,
1316+
RENDER_QUANTUM_SIZE * 2,
1317+
RENDER_QUANTUM_SIZE * 2 + 1,
1318+
] {
13261319
let context = OfflineAudioContext::new(2, len, sample_rate);
1327-
1328-
let mut dirac = context.create_buffer(2, 129, sample_rate);
1320+
let mut dirac = context.create_buffer(2, buffer_len, sample_rate);
13291321
dirac.copy_to_channel(&[1.], 0);
13301322
dirac.copy_to_channel(&[0., 1.], 1);
13311323

@@ -1337,17 +1329,12 @@ mod tests {
13371329

13381330
let result = context.start_rendering_sync();
13391331

1340-
let mut expected_left = vec![0.; len];
1341-
expected_left[129 * 0] = 1.;
1342-
expected_left[129 * 1] = 1.;
1343-
expected_left[129 * 2] = 1.;
1344-
expected_left[129 * 3] = 1.;
1345-
1332+
let mut expected_left: Vec<f32> = vec![0.; len];
13461333
let mut expected_right = vec![0.; len];
1347-
expected_right[129 * 0 + 1] = 1.;
1348-
expected_right[129 * 1 + 1] = 1.;
1349-
expected_right[129 * 2 + 1] = 1.;
1350-
expected_right[129 * 3 + 1] = 1.;
1334+
for i in (0..len - 1).step_by(buffer_len) {
1335+
expected_left[i] = 1.;
1336+
expected_right[i + 1] = 1.;
1337+
}
13511338

13521339
assert_float_eq!(
13531340
result.get_channel_data(0)[..],

0 commit comments

Comments
 (0)