from unittest import TestCase import wavinfo from wavinfo.wave_dbmd_reader import SegmentType, DolbyAtmosMetadata, DolbyDigitalPlusMetadata class TestDolby(TestCase): def setUp(self): self.test_file = "tests/test_files/protools/Test_ADM_ProTools.wav" def test_version(self): t1 = wavinfo.WavInfoReader(self.test_file) d = t1.dolby self.assertEqual((1,0,0,6), d.version) def test_segments(self): t1 = wavinfo.WavInfoReader(self.test_file) d = t1.dolby ddp = [x for x in d.segment_list if x[0] == SegmentType.DolbyDigitalPlus] atmos = [x for x in d.segment_list if x[0] == SegmentType.DolbyAtmos] self.assertEqual(len(ddp), 1) self.assertEqual(len(atmos), 1) def test_checksums(self): t1 = wavinfo.WavInfoReader(self.test_file) d = t1.dolby for seg in d.segment_list: self.assertTrue(seg[1]) def test_ddp(self): t1 = wavinfo.WavInfoReader(self.test_file) d = t1.dolby ddp = d.dolby_digital_plus() self.assertEqual(len(ddp), 1, "Failed to find exactly one Dolby Digital Plus metadata segment") self.assertTrue( ddp[0].audio_coding_mode, DolbyDigitalPlusMetadata.AudioCodingMode.CH_ORD_3_2 ) self.assertTrue( ddp[0].lfe_on) def test_atmos(self): t1 = wavinfo.WavInfoReader(self.test_file) d = t1.dolby atmos = d.dolby_atmos() self.assertEqual(len(atmos), 1, "Failed to find exactly one Atmos metadata segment")