diff --git a/tests/data/non_standard_rate.wv b/tests/data/non_standard_rate.wv new file mode 100644 index 00000000..ccc90277 Binary files /dev/null and b/tests/data/non_standard_rate.wv differ diff --git a/tests/test_wavpack.cpp b/tests/test_wavpack.cpp index 07bf49b0..591529fb 100644 --- a/tests/test_wavpack.cpp +++ b/tests/test_wavpack.cpp @@ -42,6 +42,7 @@ class TestWavPack : public CppUnit::TestFixture CPPUNIT_TEST(testNoLengthProperties); CPPUNIT_TEST(testMultiChannelProperties); CPPUNIT_TEST(testDsdStereoProperties); + CPPUNIT_TEST(testNonStandardRateProperties); CPPUNIT_TEST(testTaggedProperties); CPPUNIT_TEST(testFuzzedFile); CPPUNIT_TEST(testStripAndProperties); @@ -95,6 +96,21 @@ public: CPPUNIT_ASSERT_EQUAL(1040, f.audioProperties()->version()); } + void testNonStandardRateProperties() + { + WavPack::File f(TEST_FILE_PATH_C("non_standard_rate.wv")); + CPPUNIT_ASSERT(f.audioProperties()); + CPPUNIT_ASSERT_EQUAL(3, f.audioProperties()->lengthInSeconds()); + CPPUNIT_ASSERT_EQUAL(3675, f.audioProperties()->lengthInMilliseconds()); + CPPUNIT_ASSERT_EQUAL(0, f.audioProperties()->bitrate()); + CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->channels()); + CPPUNIT_ASSERT_EQUAL(16, f.audioProperties()->bitsPerSample()); + CPPUNIT_ASSERT_EQUAL(true, f.audioProperties()->isLossless()); + CPPUNIT_ASSERT_EQUAL(1000, f.audioProperties()->sampleRate()); + CPPUNIT_ASSERT_EQUAL(3675U, f.audioProperties()->sampleFrames()); + CPPUNIT_ASSERT_EQUAL(1040, f.audioProperties()->version()); + } + void testTaggedProperties() { WavPack::File f(TEST_FILE_PATH_C("tagged.wv"));