
    daf0                         d dl mZ d dlmZmZ d dlZd dlZd dlZ G d dej                        Z	 G d d      Z
 G d d	e
      Z G d
 de
      Zy)    )findfile)TESTFNunlinkNc                       e Zd Zd Zd Zy)UnseekableIOc                 "    t         j                  NioUnsupportedOperationselfs    */root/Python-3.12.4/Lib/test/audiotests.pytellzUnseekableIO.tell	       %%%    c                 "    t         j                  r	   r
   )r   argskwargss      r   seekzUnseekableIO.seek   r   r   N)__name__
__module____qualname__r   r    r   r   r   r      s    &&r   r   c                   "    e Zd ZdZd Zd Zd Zy)
AudioTestsFc                      d x| _         | _        y r	   )ffoutr   s    r   setUpzAudioTests.setUp   s    !!r   c                     | j                   | j                   j                          | j                  | j                  j                          t        t               y r	   )r   closer   r   r   r   s    r   tearDownzAudioTests.tearDown   s8    66FFLLN99 IIOOvr   c           	         | j                  |j                         |       | j                  |j                         |       | j                  |j                         |       | j                  |j	                         |       | j                  |j                         |       | j                  |j                         |       |j                         }| j                  |||||||f       | j                  |j                  |       | j                  |j                  |       | j                  |j                  |       | j                  |j                  |       | j                  |j                  |       | j                  |j                  |       t        t        j                   dz         D ]=  }	t        j"                  ||	      }
| j                  t        j$                  |
      |       ? y )N   )assertEqualgetnchannelsgetsampwidthgetframerate
getnframesgetcomptypegetcompname	getparams	nchannels	sampwidth	frameratenframescomptypecompnamerangepickleHIGHEST_PROTOCOLdumpsloads)r   r   r.   r/   r0   r1   r2   r3   paramsprotodumps              r   check_paramszAudioTests.check_params   s{   )95)95)951(3(3Iy'8XN	P))95))95))951(3(3622Q67 	9E<<.DV\\$/8	9r   N)r   r   r   close_fdr    r#   r<   r   r   r   r   r      s    H"9r   r   c                   r    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)AudioWriteTestsc                 :   | j                   j                  |d      x}| _        |j                  | j                         |j                  | j                         |j                  | j                         |j                  | j                  | j                         |S Nwb)moduleopenr   setnchannelsr.   setsampwidthr/   setframerater0   setcomptyper2   r3   r   testfiler   s      r   create_filezAudioWriteTests.create_file7   sj    ((488DI	t~~&	t~~&	t~~&	dmmT]]3r   c                    | j                   j                  |d      5 }| j                  |j                         | j                         | j                  |j                         | j                         | j                  |j                         | j                         | j                  |j                         |       | j                  |j                  |      |       d d d        y # 1 sw Y   y xY wNrb)rC   rD   r&   r'   r.   r(   r/   r)   r0   r*   
readframes)r   rJ   r1   framesr   s        r   
check_filezAudioWriteTests.check_file?   s    [[h- 	<Q^^-t~~>Q^^-t~~>Q^^-t~~>Q\\^W5Q\\'2F;	< 	< 	<s   C C&&C/c           	      `   | j                  t              }|j                  | j                         |j	                  | j
                         | j                  || j                  | j                  | j                  | j                  | j                  | j                         |j                          y r	   )rK   r   
setnframesr1   writeframesrP   r<   r.   r/   r0   r2   r3   r"   r   r   s     r   test_write_paramsz!AudioWriteTests.test_write_paramsG   sq    V$	T\\"	dkk"!T^^T^^T^^,,t}}	F		r   c                    | j                  | j                  j                        5  | j                  j                  t        d      5  	 d d d        d d d        | j                  | j                  j                        5  t        t        d      5 }| j                  j                  |      5  	 d d d        d d d        d d d        y # 1 sw Y   ~xY w# 1 sw Y   xY w# 1 sw Y   2xY w# 1 sw Y   6xY w# 1 sw Y   y xY wrA   )assertRaisesrC   ErrorrD   r   )r   rJ   s     r   &test_write_context_manager_calls_closez6AudioWriteTests.test_write_context_manager_calls_closeO   s     t{{001 	!!&$/ 	 t{{001 	fd# x[[%%h/ 	 	 	 	
  	 	s_   !CC	C>C6C*+C-C*5C6C	CCC'#C**C3	/C66C?c                    t        t        d      5 }| j                  j                  |      5 }|j                  | j                         |j                  | j                         |j                  | j                         |j                  | j                  | j                         d d d        | j                  |j                  | j                         d d d        t        t        d      5 }| j                  j                  |      5 }| j                  |j!                         j                         |j#                         }| j                  |j                  | j                         | j                  |j                  | j                         | j                  |j                  | j                         d d d        | j                  s| j%                  j!                                | j                  |j                  | j                         d d d        y # 1 sw Y   rxY w# 1 sw Y   QxY w# 1 sw Y   }xY w# 1 sw Y   y xY w)NrB   rN   )rD   r   rC   rE   r.   rF   r/   rG   r0   rH   r2   r3   r&   closedr=   assertFalsegetfpr-   assertIsNone)r   rJ   r   r9   s       r   #test_context_manager_with_open_filez3AudioWriteTests.test_context_manager_with_open_fileZ   s   &$ 	=8!!(+ <qt~~.t~~.t~~.dmmT]];	<
 X__dmm<	= &$ 		=8!!(+ Cq  !1!12  !1!14>>B  !1!14>>B  !1!14>>BC ==!!!''),X__dmm<		= 		=< <	= 	=C C		= 		=sI   H"A8H%.H"+H;B,H/3AH;H	H""H,/H8	4H;;Ic                 t   | j                   j                  t        d      5 }|j                  | j                         |j                  | j                         |j                  | j                         |j                  | j                  | j                         d d d        | j                   j                  t              5 }| j                  |j                         j                         |j                         }| j!                  |j                  | j                         | j!                  |j                  | j                         | j!                  |j                  | j                         d d d        | j"                  s | j%                  j                                y y # 1 sw Y   
xY w# 1 sw Y   CxY wrA   )rC   rD   r   rE   r.   rF   r/   rG   r0   rH   r2   r3   r]   r^   r\   r-   r&   r=   r_   )r   r   r9   s      r   "test_context_manager_with_filenamez2AudioWriteTests.test_context_manager_with_filenamem   s5    [[fd+ 	8qNN4>>*NN4>>*NN4>>*MM$--7		8
 [[f% 	?QWWY--.[[]FV--t~~>V--t~~>V--t~~>	? }}aggi( 	8 	8
	? 	?s   A8F! B,F.!F+.F7c                    | j                  t              }|j                  | j                         |j	                  | j
                         |j                          | j                  t        | j                  | j
                         y r	   )rK   r   rS   r1   rT   rP   r"   rQ   rU   s     r   
test_writezAudioWriteTests.test_write~   sS    V$	T\\"	dkk"		dkk:r   c                 "   | j                  t              }|j                  | j                         |j	                  t        | j                               |j                          | j                  t        | j                  | j                         y r	   )	rK   r   rS   r1   rT   	bytearrayrP   r"   rQ   rU   s     r   test_write_bytearrayz$AudioWriteTests.test_write_bytearray   sX    V$	T\\"	i,-		dkk:r   c                 8   | j                  t              }|j                  | j                         |j	                  t        j
                  d| j                               |j                          | j                  t        | j                  | j                         y )Nh)	rK   r   rS   r1   rT   arrayrP   r"   rQ   rU   s     r   test_write_arrayz AudioWriteTests.test_write_array   s^    V$	T\\"	ekk#t{{34		dkk:r   c                 "   | j                  t              }|j                  | j                         |j	                  t        | j                               |j                          | j                  t        | j                  | j                         y r	   )	rK   r   rS   r1   rT   
memoryviewrP   r"   rQ   rU   s     r   test_write_memoryviewz%AudioWriteTests.test_write_memoryview   sX    V$	T\\"	j-.		dkk:r   c                    t        t        d      5 }|j                  d       | j                  |      }|j	                  | j
                  dz          |j                  | j                         |j                          d d d        t        t        d      5 }| j                  |j                  d      d       | j                  || j
                  | j                         d d d        y # 1 sw Y   kxY w# 1 sw Y   y xY wNrB      ababagalamagar%   rN      rD   r   writerK   rS   r1   rT   rP   r"   r&   readrQ   rI   s      r   test_incompleted_writez&AudioWriteTests.test_incompleted_write       &$ 	8NN+,  *ALL)*MM$++&GGI	 &$ 	A8X]]2.0@AOOHdllDKK@	A 	A	 		A 	A   A,C'A	C3'C03C<c                 p   t        t        d      5 }|j                  d       | j                  |      }|j	                  | j
                         | j                  | j                  z  }|j                  | j                  d |         |j                  | j                  | d         |j                          d d d        t        t        d      5 }| j                  |j                  d      d       | j                  || j
                  | j                         d d d        y # 1 sw Y   kxY w# 1 sw Y   y xY wNrB   rq   rN   rr   )rD   r   rt   rK   rS   r1   r.   r/   rT   rP   r"   r&   ru   rQ   r   rJ   r   	framesizes       r   test_multiple_writesz$AudioWriteTests.test_multiple_writes   s    &$ 	8NN+,  *ALL&7IMM$++k	z23MM$++yjk23GGI	 &$ 	A8X]]2.0@AOOHdllDKK@	A 	A	 		A 	As   B%D A	D, D),D5c                    t        t        d      5 }|j                  d       | j                  |      }|j	                  | j
                  dz
         |j                  | j                         |j                          d d d        t        t        d      5 }| j                  |j                  d      d       | j                  || j
                  | j                         d d d        y # 1 sw Y   kxY w# 1 sw Y   y xY wrp   rs   rI   s      r   test_overflowed_writez%AudioWriteTests.test_overflowed_write   rw   rx   c                 \   | j                  t              5 }|j                  | j                         |j	                  | j
                         d d d        t        t        d      5 }| j                  || j                  | j
                         d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY wrM   )rK   r   rS   r1   rT   rP   r   rQ   )r   r   rJ   s      r   test_unseekable_readz$AudioWriteTests.test_unseekable_read   s    f% 	'LL&MM$++&	' &$' 	A8OOHdllDKK@	A 	A		' 	'	A 	As   7B%(B"B"B+c                 \   t        t        d      5 }| j                  |      5 }|j                  | j                         |j                  | j                         d d d        d d d        | j                  t        | j                  | j                         y # 1 sw Y   =xY w# 1 sw Y   AxY wrA   )r   r   rK   rS   r1   rT   rP   rQ   rI   s      r   test_unseekable_writez%AudioWriteTests.test_unseekable_write   s    &$' 	+8!!(+ +qT\\*dkk*+	+
 	dkk:	+ +	+ 	+s"   B"7BB"B	B""B+c                 D   t        t        d      5 }|j                  d       | j                  |      }|j	                  | j
                  dz          	 |j                  | j                         	 |j                          d d d        t        t        d      5 }| j                  |j                  d      d       | j                  || j
                  dz   | j                         d d d        y # t        $ r Y w xY w# t        $ r Y w xY w# 1 sw Y   xY w# 1 sw Y   y xY wrp   )r   r   rt   rK   rS   r1   rT   rP   OSErrorr"   rD   r&   ru   rQ   rI   s      r   !test_unseekable_incompleted_writez1AudioWriteTests.test_unseekable_incompleted_write   s   &$' 	8NN+,  *ALL)*dkk*		 &$ 	E8X]]2.0@AOOHdllQ&6D	E 	E    	 		E 	EsU   AD
C,/C;AD,	C85D
7C88D
;	DD
DD

DDc                 ~   t        t        d      5 }|j                  d       | j                  |      }|j	                  | j
                  dz
         	 |j                  | j                         	 |j                          d d d        t        t        d      5 }| j                  |j                  d      d       | j                  | j                  z  }| j                  || j
                  dz
  | j                  d |         d d d        y # t        $ r Y w xY w# t        $ r Y w xY w# 1 sw Y   xY w# 1 sw Y   y xY wrp   )r   r   rt   rK   rS   r1   rT   rP   r   r"   rD   r&   ru   r.   r/   rQ   r{   s       r    test_unseekable_overflowed_writez0AudioWriteTests.test_unseekable_overflowed_write   s   &$' 	8NN+,  *ALL)*dkk*		 &$ 	R8X]]2.0@A7IOOHdllQ&6KiZ8PQ	R 	R    	 		R 	RsU   AD'D	/DA)D3		DD'DD'	D$!D'#D$$D''D03D<N)r   r   r   rK   rQ   rV   rZ   r`   rb   rd   rg   rk   rn   rv   r}   r   r   r   r   r   r   r   r   r?   r?   5   s]    <	=&)";;;;
AA
AA;E$Rr   r?   c                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)AudioTestsWithSourceFilec                 <    t        | j                  d      | _        y )N	audiodata)subdir)r   sndfilenamesndfilepath)clss    r   
setUpClassz#AudioTestsWithSourceFile.setUpClass   s    "3??;Gr   c           	         | j                   j                  | j                        x}| _        | j	                  || j
                  | j                  | j                  | j                  | j                  | j                         y r	   )rC   rD   r   r   r<   r.   r/   r0   sndfilenframesr2   r3   rU   s     r   test_read_paramsz)AudioTestsWithSourceFile.test_read_params   s[    [[%%d&6&677DF!T^^T^^T^^--t}}dmm	Mr   c                    t        | j                  d      5 }| j                  j                  |      x}| _        | j	                  |j
                         |j                          | j                  |j
                  | j                         d d d        t        t        d      5 }| j                  j                  |d      x}| _
        | j	                  |j
                         | j                  | j                  j                        5  |j                          d d d        | j                  |j
                  | j                         |j                          d d d        y # 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   y xY w)NrN   rB   )rD   r   rC   r   r]   r\   r"   r&   r=   r   r   rX   rY   )r   rJ   r   r   s       r   
test_closez#AudioTestsWithSourceFile.test_close  s%   $""D) 	=X))(33AX__-GGIX__dmm<		=
 &$ 	8#{{//$??D49X__-""4;;#4#45 

X__dmm<JJL	 		= 	= 	 	s1   A4E#A$E7E+>E7E(+E4	0E77F c                    | j                   | j                  z  }| j                  d d|z   }| j                  d|z  d|z   }| j                  j	                  | j
                        x}| _        | j                  |j                  d      d       | j                  |j                         d       | j                  |j                  d      |       |j                          |j                         }| j                  |d       | j                  |j                  d      |       |j                         }| j                  |d       | j                  |j                  d      |       |j                  |       | j                  |j                  d      |       |j                  |       | j                  |j                  d      |       | j                  | j                  j                        5  |j                  d       d d d        | j                  | j                  j                        5  |j                  |j                         dz          d d d        y # 1 sw Y   ZxY w# 1 sw Y   y xY w)N      r   r   r%   )r.   r/   rP   rC   rD   r   r   r&   rO   r   rewindsetposrX   rY   r*   )r   r|   chunk1chunk2r   pos0pos2s          r   	test_readz"AudioTestsWithSourceFile.test_read  s   NNT^^3	^a)m,Q]A	M:[[%%d&6&677DFa#.1%a&1	
vvxq!a&1vvxq!a&1	a&1	a&1t{{001 	HHRL	t{{001 	)HHQ\\^a'(	) 	)	 		) 	)s   .I-#I%I"%I.c                    | j                   j                  | j                        x}| _        | j                   j                  t        d      x}| _        |j                  |j                                d}|j                         }|dkD  r0|dz  }|j                  |j                  |             ||z  }|dkD  r0|j                          | j                   j                  t        d      x}| _        |j                          | j                  |j                         |j                                | j                  |j                  |j                               |j                  |j                                      y )NrB   r   r%   rN   )rC   rD   r   r   r   r   	setparamsr-   r*   rT   rO   r"   r   r&   )r   r   r   ins        r   	test_copyz"AudioTestsWithSourceFile.test_copy,  s   [[%%d&6&677DF;;++FD99tyq{{}%LLN!eFAQ\\!_-FA !e 	

;;++FD99ty	
(89alln5):;	=r   c                    t        t        d      5 }|j                  d       t        | j                  d      5 }|j                  |j	                                d d d        d d d        t        t        d      5 }| j                  |j	                  d      d       | j                  j                  |d      5 }| j                  |j                         | j                         | j                  |j                         | j                         | j                  |j                         | j                         | j                  |j                         | j                         | j                  |j                  | j                         | j"                         d d d        d d d        y # 1 sw Y   OxY w# 1 sw Y   TxY w# 1 sw Y   ,xY w# 1 sw Y   y xY wrz   )rD   r   rt   r   ru   r&   rC   r'   r.   r(   r/   r)   r0   r*   r   rO   r1   rP   rI   s      r   test_read_not_from_startz1AudioTestsWithSourceFile.test_read_not_from_start=  sm   &$ 	)8NN+,d&&- )qvvx()	)
 &$ 	J8X]]2.0@A!!(D1 JQ  !14>>B  !14>>B  !14>>B  1D1DE  dll!;T[[IJ	J 	J) )	) 	)J J	J 	JsG   (F3 F&F39>G7CG G&F0	+F33F= G		GGN)
r   r   r   classmethodr   r   r   r   r   r   r   r   r   r   r      s1    H HM)0="Jr   r   )test.supportr   test.support.os_helperr   r   rj   r   r5   FileIOr   r   r?   r   r   r   r   <module>r      sP    ! 1  	 &299 &"9 "9JBRj BRJPJz PJr   