Commit 7a4a6880 by samrobinson Committed by microkatz

Fix nits in FloatAudioMixingAlgorithmTest.

* Reorder methods.
* Arrange, act, assert split.

PiperOrigin-RevId: 517158351
parent ad68c7cc
...@@ -67,20 +67,51 @@ public final class FloatAudioMixingAlgorithmTest { ...@@ -67,20 +67,51 @@ public final class FloatAudioMixingAlgorithmTest {
} }
@Test @Test
public void doesNotSupportSampleRateConversion() {
AudioMixingAlgorithm algorithm =
new FloatAudioMixingAlgorithm(
new AudioFormat(/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_FLOAT));
assertThat(
algorithm.supportsSourceAudioFormat(
new AudioFormat(
/* sampleRate= */ 48000, /* channelCount= */ 2, C.ENCODING_PCM_FLOAT)))
.isFalse();
}
@Test
public void doesNotSupportSampleFormats() {
AudioMixingAlgorithm algorithm =
new FloatAudioMixingAlgorithm(
new AudioFormat(/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_FLOAT));
assertThat(
algorithm.supportsSourceAudioFormat(
new AudioFormat(
/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_24BIT)))
.isFalse();
assertThat(
algorithm.supportsSourceAudioFormat(
new AudioFormat(
/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_32BIT)))
.isFalse();
}
@Test
public void mixStereoFloatIntoStereoFloat() { public void mixStereoFloatIntoStereoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_STEREO_PCM_FLOAT); AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_STEREO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f, 0.5f, -0.5f}); ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f, 0.5f, -0.5f});
ByteBuffer sourceBuffer = createByteBuffer(new float[] {-0.5f, 0.25f, -0.25f, 0.5f}); ByteBuffer sourceBuffer = createByteBuffer(new float[] {-0.5f, 0.25f, -0.25f, 0.5f});
algorithm.mix( algorithm.mix(
sourceBuffer, sourceBuffer,
AUDIO_FORMAT_STEREO_PCM_FLOAT, AUDIO_FORMAT_STEREO_PCM_FLOAT,
STEREO_TO_STEREO.scaleBy(0.5f), STEREO_TO_STEREO.scaleBy(0.5f),
/* frameCount= */ 2, /* frameCount= */ 2,
mixingBuffer); mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0); assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0); assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip(); mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)).isEqualTo(new float[] {0f, -0.125f, 0.375f, -0.25f}); assertThat(createFloatArray(mixingBuffer)).isEqualTo(new float[] {0f, -0.125f, 0.375f, -0.25f});
} }
...@@ -88,64 +119,25 @@ public final class FloatAudioMixingAlgorithmTest { ...@@ -88,64 +119,25 @@ public final class FloatAudioMixingAlgorithmTest {
@Test @Test
public void mixMonoFloatIntoStereoFloat() { public void mixMonoFloatIntoStereoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_STEREO_PCM_FLOAT); AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_STEREO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f, 0.5f, -0.5f}); ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f, 0.5f, -0.5f});
ByteBuffer sourceBuffer = createByteBuffer(new float[] {-0.5f, 0.5f}); ByteBuffer sourceBuffer = createByteBuffer(new float[] {-0.5f, 0.5f});
algorithm.mix( algorithm.mix(
sourceBuffer, sourceBuffer,
AUDIO_FORMAT_MONO_PCM_FLOAT, AUDIO_FORMAT_MONO_PCM_FLOAT,
MONO_TO_STEREO.scaleBy(0.5f), MONO_TO_STEREO.scaleBy(0.5f),
/* frameCount= */ 2, /* frameCount= */ 2,
mixingBuffer); mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)).isEqualTo(new float[] {0f, -0.5f, 0.75f, -0.25f});
}
@Test
public void mixStereoFloatIntoMonoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_MONO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, 0.5f});
ByteBuffer sourceBuffer = createByteBuffer(new float[] {-0.5f, 0.25f, -0.25f, 0.5f});
algorithm.mix(
sourceBuffer,
AUDIO_FORMAT_STEREO_PCM_FLOAT,
STEREO_TO_MONO.scaleBy(0.5f),
/* frameCount= */ 2,
mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0); assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0); assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip(); mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)).isEqualTo(new float[] {0.1875f, 0.5625f}); assertThat(createFloatArray(mixingBuffer)).isEqualTo(new float[] {0f, -0.5f, 0.75f, -0.25f});
}
@Test
public void mixMonoFloatIntoMonoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_MONO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f});
ByteBuffer sourceBuffer = createByteBuffer(new float[] {0.5f, 0.25f});
algorithm.mix(
sourceBuffer,
AUDIO_FORMAT_MONO_PCM_FLOAT,
MONO_TO_MONO.scaleBy(0.5f),
/* frameCount= */ 2,
mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)).isEqualTo(new float[] {0.5f, -0.125f});
} }
@Test @Test
public void mixStereoS16IntoStereoFloat() { public void mixStereoS16IntoStereoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_STEREO_PCM_FLOAT); AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_STEREO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f, 0.5f, -0.5f}); ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f, 0.5f, -0.5f});
ByteBuffer sourceBuffer = ByteBuffer sourceBuffer =
createByteBuffer( createByteBuffer(
...@@ -155,15 +147,16 @@ public final class FloatAudioMixingAlgorithmTest { ...@@ -155,15 +147,16 @@ public final class FloatAudioMixingAlgorithmTest {
-8192 /* -0.25f */, -8192 /* -0.25f */,
16384 /* 0.50001525925f */ 16384 /* 0.50001525925f */
}); });
algorithm.mix( algorithm.mix(
sourceBuffer, sourceBuffer,
AUDIO_FORMAT_STEREO_PCM_16BIT, AUDIO_FORMAT_STEREO_PCM_16BIT,
STEREO_TO_STEREO.scaleBy(0.5f), STEREO_TO_STEREO.scaleBy(0.5f),
/* frameCount= */ 2, /* frameCount= */ 2,
mixingBuffer); mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0); assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0); assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip(); mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)) assertThat(createFloatArray(mixingBuffer))
.usingTolerance(1f / Short.MAX_VALUE) .usingTolerance(1f / Short.MAX_VALUE)
...@@ -174,19 +167,19 @@ public final class FloatAudioMixingAlgorithmTest { ...@@ -174,19 +167,19 @@ public final class FloatAudioMixingAlgorithmTest {
@Test @Test
public void mixMonoS16IntoStereoFloat() { public void mixMonoS16IntoStereoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_STEREO_PCM_FLOAT); AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_STEREO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f, 0.5f, -0.5f}); ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f, 0.5f, -0.5f});
ByteBuffer sourceBuffer = ByteBuffer sourceBuffer =
createByteBuffer(new short[] {-16384 /* -0.5f */, 16384 /* 0.50001525925f */}); createByteBuffer(new short[] {-16384 /* -0.5f */, 16384 /* 0.50001525925f */});
algorithm.mix( algorithm.mix(
sourceBuffer, sourceBuffer,
AUDIO_FORMAT_MONO_PCM_16BIT, AUDIO_FORMAT_MONO_PCM_16BIT,
MONO_TO_STEREO.scaleBy(0.5f), MONO_TO_STEREO.scaleBy(0.5f),
/* frameCount= */ 2, /* frameCount= */ 2,
mixingBuffer); mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0); assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0); assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip(); mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)) assertThat(createFloatArray(mixingBuffer))
.usingTolerance(1f / Short.MAX_VALUE) .usingTolerance(1f / Short.MAX_VALUE)
...@@ -195,9 +188,45 @@ public final class FloatAudioMixingAlgorithmTest { ...@@ -195,9 +188,45 @@ public final class FloatAudioMixingAlgorithmTest {
} }
@Test @Test
public void mixStereoS16IntoMonoFloat() { public void mixStereoFloatIntoMonoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_MONO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, 0.5f});
ByteBuffer sourceBuffer = createByteBuffer(new float[] {-0.5f, 0.25f, -0.25f, 0.5f});
algorithm.mix(
sourceBuffer,
AUDIO_FORMAT_STEREO_PCM_FLOAT,
STEREO_TO_MONO.scaleBy(0.5f),
/* frameCount= */ 2,
mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)).isEqualTo(new float[] {0.1875f, 0.5625f});
}
@Test
public void mixMonoFloatIntoMonoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_MONO_PCM_FLOAT); AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_MONO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, -0.25f});
ByteBuffer sourceBuffer = createByteBuffer(new float[] {0.5f, 0.25f});
algorithm.mix(
sourceBuffer,
AUDIO_FORMAT_MONO_PCM_FLOAT,
MONO_TO_MONO.scaleBy(0.5f),
/* frameCount= */ 2,
mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)).isEqualTo(new float[] {0.5f, -0.125f});
}
@Test
public void mixStereoS16IntoMonoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_MONO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, 0.5f}); ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, 0.5f});
ByteBuffer sourceBuffer = ByteBuffer sourceBuffer =
createByteBuffer( createByteBuffer(
...@@ -214,9 +243,9 @@ public final class FloatAudioMixingAlgorithmTest { ...@@ -214,9 +243,9 @@ public final class FloatAudioMixingAlgorithmTest {
STEREO_TO_MONO.scaleBy(0.5f), STEREO_TO_MONO.scaleBy(0.5f),
/* frameCount= */ 2, /* frameCount= */ 2,
mixingBuffer); mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0); assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0); assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip(); mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)) assertThat(createFloatArray(mixingBuffer))
.usingTolerance(1f / Short.MAX_VALUE) .usingTolerance(1f / Short.MAX_VALUE)
...@@ -227,52 +256,23 @@ public final class FloatAudioMixingAlgorithmTest { ...@@ -227,52 +256,23 @@ public final class FloatAudioMixingAlgorithmTest {
@Test @Test
public void mixMonoS16IntoMonoFloat() { public void mixMonoS16IntoMonoFloat() {
AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_MONO_PCM_FLOAT); AudioMixingAlgorithm algorithm = new FloatAudioMixingAlgorithm(AUDIO_FORMAT_MONO_PCM_FLOAT);
ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, 0.5f}); ByteBuffer mixingBuffer = createByteBuffer(new float[] {0.25f, 0.5f});
ByteBuffer sourceBuffer = ByteBuffer sourceBuffer =
createByteBuffer(new short[] {-16384 /* -0.5f */, 8192 /* 0.25000762962f */}); createByteBuffer(new short[] {-16384 /* -0.5f */, 8192 /* 0.25000762962f */});
algorithm.mix( algorithm.mix(
sourceBuffer, sourceBuffer,
AUDIO_FORMAT_MONO_PCM_16BIT, AUDIO_FORMAT_MONO_PCM_16BIT,
MONO_TO_MONO.scaleBy(0.5f), MONO_TO_MONO.scaleBy(0.5f),
/* frameCount= */ 2, /* frameCount= */ 2,
mixingBuffer); mixingBuffer);
assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0); assertWithMessage("Source buffer").that(sourceBuffer.remaining()).isEqualTo(0);
assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0); assertWithMessage("Mixing buffer").that(mixingBuffer.remaining()).isEqualTo(0);
mixingBuffer.flip(); mixingBuffer.flip();
assertThat(createFloatArray(mixingBuffer)) assertThat(createFloatArray(mixingBuffer))
.usingTolerance(1f / Short.MAX_VALUE) .usingTolerance(1f / Short.MAX_VALUE)
.containsExactly(new float[] {0f, 0.625f}) .containsExactly(new float[] {0f, 0.625f})
.inOrder(); .inOrder();
} }
@Test
public void doesNotSupportSampleRateConversion() {
AudioMixingAlgorithm algorithm =
new FloatAudioMixingAlgorithm(
new AudioFormat(/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_FLOAT));
assertThat(
algorithm.supportsSourceAudioFormat(
new AudioFormat(
/* sampleRate= */ 48000, /* channelCount= */ 2, C.ENCODING_PCM_FLOAT)))
.isFalse();
}
@Test
public void doesNotSupportSampleFormats() {
AudioMixingAlgorithm algorithm =
new FloatAudioMixingAlgorithm(
new AudioFormat(/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_FLOAT));
assertThat(
algorithm.supportsSourceAudioFormat(
new AudioFormat(
/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_24BIT)))
.isFalse();
assertThat(
algorithm.supportsSourceAudioFormat(
new AudioFormat(
/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_32BIT)))
.isFalse();
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment