From a7fb45927791e2d3d112f6fa020a0be9d0f82672 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Mon, 1 Feb 2010 21:55:34 +0000 Subject: Add some basic tests for Audio::convertTimeToStreamPos. svn-id: r47804 --- test/sound/audiostream.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/sound/audiostream.h diff --git a/test/sound/audiostream.h b/test/sound/audiostream.h new file mode 100644 index 0000000000..57ea27f62e --- /dev/null +++ b/test/sound/audiostream.h @@ -0,0 +1,31 @@ +#include + +#include "sound/audiostream.h" + +class AudioStreamTestSuite : public CxxTest::TestSuite +{ +public: + void test_convertTimeToStreamPos() { + const Audio::Timestamp a = Audio::convertTimeToStreamPos(Audio::Timestamp(500, 1000), 11025, true); + // The last bit has to be 0 in any case for a stereo stream. + TS_ASSERT_EQUALS(a.totalNumberOfFrames() & 1, 0); + + // TODO: This test is rather hacky... actually converTimeToStreamPos might also return 11026 + // instead of 11024 and it would still be a valid sample position for ~500ms. + TS_ASSERT_EQUALS(a.totalNumberOfFrames(), 11024); + + const Audio::Timestamp b = Audio::convertTimeToStreamPos(Audio::Timestamp(500, 1000), 11025, false); + TS_ASSERT_EQUALS(b.totalNumberOfFrames(), 500 * 11025 / 1000); + + // Test Audio CD positioning + + // for 44kHz and stereo + const Audio::Timestamp c = Audio::convertTimeToStreamPos(Audio::Timestamp(0, 50, 75), 44100, true); + TS_ASSERT_EQUALS(c.totalNumberOfFrames(), 50 * 44100 * 2 / 75); + + // for 11kHz and mono + const Audio::Timestamp d = Audio::convertTimeToStreamPos(Audio::Timestamp(0, 50, 75), 11025, false); + TS_ASSERT_EQUALS(d.totalNumberOfFrames(), 50 * 11025 / 75); + } +}; + -- cgit v1.2.3