@@ -127,6 +127,20 @@ def test_append(self):
127
127
self .assertEqual (len (merged1 ), len (self .seg1 ) + len (self .seg3 ) - 100 )
128
128
self .assertEqual (len (merged2 ), len (self .seg2 ) + len (self .seg3 ) - 100 )
129
129
130
+ def test_sum (self ):
131
+ def gen ():
132
+ yield self .seg1
133
+ yield self .seg2
134
+ yield self .seg3
135
+
136
+ try :
137
+ summed = sum (gen ())
138
+ except TypeError as e :
139
+ if "unsupported operand" in str (e ):
140
+ self .fail ("Could not sum() audio segments." )
141
+ else :
142
+ raise
143
+
130
144
def test_volume_with_add_sub (self ):
131
145
quieter = self .seg1 - 6
132
146
self .assertAlmostEqual (ratio_to_db (quieter .rms , self .seg1 .rms ),
@@ -242,7 +256,7 @@ def test_indexing(self):
242
256
for part in short :
243
257
rebuilt1 += part
244
258
245
- rebuilt2 = sum ([part for part in short ], short [: 0 ] )
259
+ rebuilt2 = sum ([part for part in short ])
246
260
247
261
self .assertTrue (short ._data == rebuilt1 ._data )
248
262
self .assertTrue (short ._data == rebuilt2 ._data )
@@ -662,18 +676,18 @@ def test_max_dBFS(self):
662
676
sine_minus_3_dbfs = Sine (1000 ).to_audio_segment (volume = - 3.0 )
663
677
self .assertAlmostEqual (- 0.0 , sine_0_dbfs .max_dBFS , 2 )
664
678
self .assertAlmostEqual (- 3.0 , sine_minus_3_dbfs .max_dBFS , 2 )
665
-
679
+
666
680
def test_array_type (self ):
667
681
self .assertEqual (self .seg1 .array_type , "h" )
668
682
self .assertEqual (self .seg2 .array_type , "h" )
669
683
self .assertEqual (self .seg3 .array_type , "h" )
670
684
self .assertEqual (self .mp3_seg_party .array_type , "h" )
671
-
685
+
672
686
silence = AudioSegment .silent (50 )
673
687
self .assertEqual (silence .array_type , "h" )
674
688
self .assertEqual (silence .set_sample_width (1 ).array_type , "b" )
675
689
self .assertEqual (silence .set_sample_width (4 ).array_type , "i" )
676
-
690
+
677
691
def test_sample_array (self ):
678
692
samples = Sine (450 ).to_audio_segment ().get_array_of_samples ()
679
693
self .assertEqual (
@@ -806,34 +820,34 @@ def test_opening_mp3_file_fails(self):
806
820
807
821
func = partial (AudioSegment .from_file , self .mp3_file , format = "mp3" )
808
822
self .assertRaises (OSError , func )
809
-
823
+
810
824
def test_init_AudioSegment_data_buffer (self ):
811
825
seg = AudioSegment (data = "\0 " * 34 , sample_width = 2 , frame_rate = 4 , channels = 1 )
812
-
826
+
813
827
self .assertEqual (seg .duration_seconds , 4.25 )
814
-
828
+
815
829
self .assertEqual (seg .sample_width , 2 )
816
-
830
+
817
831
self .assertEqual (seg .frame_rate , 4 )
818
-
819
-
832
+
833
+
820
834
def test_init_AudioSegment_data_buffer_with_missing_args_fails (self ):
821
-
835
+
822
836
func = partial (AudioSegment , data = "\0 " * 16 , sample_width = 2 , frame_rate = 2 )
823
837
self .assertRaises (MissingAudioParameter , func )
824
-
838
+
825
839
func = partial (AudioSegment , data = "\0 " * 16 , sample_width = 2 , channels = 1 )
826
840
self .assertRaises (MissingAudioParameter , func )
827
-
841
+
828
842
func = partial (AudioSegment , data = "\0 " * 16 , frame_rate = 2 , channels = 1 )
829
843
self .assertRaises (MissingAudioParameter , func )
830
-
831
-
844
+
845
+
832
846
def test_init_AudioSegment_data_buffer_with_bad_values_fails (self ):
833
-
847
+
834
848
func = partial (AudioSegment , data = "\0 " * 14 , sample_width = 4 , frame_rate = 2 , channels = 1 )
835
849
self .assertRaises (ValueError , func )
836
-
850
+
837
851
838
852
def test_exporting (self ):
839
853
seg = AudioSegment .from_wav (self .wave_file )
0 commit comments