diff options
Diffstat (limited to 'libs/audiographer/tests/sndfile/tmp_file_test.cc')
-rw-r--r-- | libs/audiographer/tests/sndfile/tmp_file_test.cc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/libs/audiographer/tests/sndfile/tmp_file_test.cc b/libs/audiographer/tests/sndfile/tmp_file_test.cc new file mode 100644 index 0000000000..d2d1b3581e --- /dev/null +++ b/libs/audiographer/tests/sndfile/tmp_file_test.cc @@ -0,0 +1,47 @@ +#include "tests/utils.h" +#include "audiographer/sndfile/tmp_file.h" + +using namespace AudioGrapher; + +class TmpFileTest : public CppUnit::TestFixture +{ + CPPUNIT_TEST_SUITE (TmpFileTest); + CPPUNIT_TEST (testProcess); + CPPUNIT_TEST_SUITE_END (); + + public: + void setUp() + { + frames = 128; + random_data = TestUtils::init_random_data(frames); + } + + void tearDown() + { + delete [] random_data; + } + + void testProcess() + { + uint channels = 2; + file.reset (new TmpFile<float>(SF_FORMAT_WAV | SF_FORMAT_FLOAT, channels, 44100)); + AllocatingProcessContext<float> c (random_data, frames, channels); + c.set_flag (ProcessContext<float>::EndOfInput); + file->process (c); + + TypeUtils<float>::zero_fill (c.data (), c.frames()); + + file->seek (0, SEEK_SET); + file->read (c); + CPPUNIT_ASSERT (TestUtils::array_equals (random_data, c.data(), c.frames())); + } + + private: + boost::shared_ptr<TmpFile<float> > file; + + float * random_data; + nframes_t frames; +}; + +CPPUNIT_TEST_SUITE_REGISTRATION (TmpFileTest); + |