
    &hW                         S SK r S SKrS SKrS\R                  " 5       :H  r S SKJr  S SKrS q	S r
 " S S\R                  5      r\S:X  a  \R                  " 5         gg! \ a     N?f = f)    NPyPy)arrinterc                      [         S-  q g )N   )
quit_count     N/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/base_test.py	quit_hookr      s    !OJr	   c                   r   \ rS rSrS rS rS r " S S5      rS rS r	S	 r
\R                  (       a  S
SKJr  S r\R"                  " \R                  (       + S5      \R"                  " \S5      S 5       5       r\R"                  " \R                  (       + S5      S 5       r\R"                  " \R                  (       + S5      \R"                  " \S5      S 5       5       r\R"                  " \=(       d    \R                  (       + S5      S 5       rS rS rS rS rS rS rS rS rS rS r S r!S  r"S!r#g")#BaseModuleTest   c                 .    [         R                  " 5         g N)pygamequitselfs    r
   tearDownBaseModuleTest.tearDown   s    r	   c                     [         R                  " 5       n[         R                  [         R                  4nU R	                  X5        g)z"Ensure the SDL byte order is validN)r   get_sdl_byteorder
LIL_ENDIAN
BIG_ENDIANassertIn)r   
byte_orderexpected_optionss      r
   test_get_sdl_byteorder%BaseModuleTest.test_get_sdl_byteorder   s3    --/
"--v/@/@Aj3r	   c                 `    U R                  [        [        R                  " 5       5      S5        g)zEnsure the SDL version is valid   N)assertEquallenr   get_sdl_versionr   s    r
   test_get_sdl_version#BaseModuleTest.test_get_sdl_version#   s     V3356:r	   c                       \ rS rSrS rSrg)BaseModuleTest.ExporterBase'   c                    SS K n[        U5      nXPl        [        U5      U l        SnU H  nXg-  nM	     X6-  U l        UR                  U R
                  5      U l        X0l        U/U-  n[        US-
  SS5       H  n	X   X   -  XS-
  '   M     [        U5      U l
        UR                  U R                  5      S4U l        U R                  S:X  a  Sn
O[        R                  S:X  a  Sn
OSn
X-   [        U R                  5      -   U l        g )	Nr   r   F|big><)ctypesr#   ndimtupleshapesizecreate_string_bufferparentitemsizerangestrides	addressofdatasys	byteorderstrtypestr)r   r3   typecharr7   r0   r1   	array_lendr9   ir=   s              r
   __init__$BaseModuleTest.ExporterBase.__init__(   s    u:DIuDJI	  ,DI 55dii@DK$Mj4'G4!8Q+!(eh!6A , >DL((5u<DI}}!	%'		$/#dmm2DDDLr	   )r;   r7   r1   r6   r3   r4   r9   r?   N)__name__
__module____qualname____firstlineno__rD   __static_attributes__r   r	   r
   ExporterBaser(   '   s    	Er	   rK   c                 `   U R                  UR                  UR                  5        UR                  nU R                  US   UR                  5        U R                  US   UR
                  5        U R                  US   UR                  5        U R                  US   UR                  5        g )Nr?   r3   r9   r;   )r"   lengthr4   __array_interface__r?   r3   r9   r;   )r   proxyobjifaces       r
   
assertSameBaseModuleTest.assertSameA   s    sxx0))y)3;;7w3y)3;;7v1r	   c                 :  ^^^^ SSK Jn   " S SU R                  5      m/ SQn[        S[	        U5      5       H)  nT" USU SS5      nU" U5      nU R                  XT5        M+     SnUSU nS	 H.  nS
 H%  nT" XgU5      nU" U5      nU R                  XT5        M'     M0     S H&  nT" USU5      nU" U5      nU R                  XT5        M(     SS KmSS Kn	 " S S[        5      m " S S[        5      m " UUUU4S jST5      n
U
" SSS5      nU" U5      nU R                  TUR                  5        UR                  nU R                  UR                  5       5        UR                  5         U	R                  5         U R!                  UR                  5       5        g )Nr   BufferProxyc                   <    \ rS rSrS r\" \5      r\" S 5      rSrg)HBaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.ExporterL   c                 b    SU R                   U R                  U R                  U R                  S.$ )Nr!   )versionr?   r3   r9   r;   r?   r3   r9   r;   r   s    r
   get__array_interface___BaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.Exporter.get__array_interface__M   s+     #||!ZZ#|| II r	   c                     g r   r   r   s    r
   <lambda>QBaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.Exporter.<lambda>X   s    Tr	   r   N)	rF   rG   rH   rI   r]   propertyrN   __array_struct__rJ   r   r	   r
   ExporterrX   L   s!     #++A"B'(9:r	   rd      r!            r   rC   rf   rC   ur   rf         rm   rn   fc                       \ rS rSrSrg)KBaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.NoDictErrorx   r   N)rF   rG   rH   rI   rJ   r   r	   r
   NoDictErrorrr   x   s    r	   rt   c                       \ rS rSrSrSrg)FBaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.WRDict{   zWeak referenceable dictr   N)rF   rG   rH   rI   __doc__rJ   r   r	   r
   WRDictrv   {   s    )r	   ry   c                   H   > \ rS rSrU UU4S jr\" \5      rS rU4S jrSr	g)IBaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.Exporter2   c                    > T" TR                  U 5      5      U l        TR                  U R                  5      U l        U R                  $ r   )r]   rB   refdict_ref)r   rd   ry   weakrefs    r
   get__array_interface__2aBaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.Exporter2.get__array_interface__2   s7     ? ? EF 'DFF 3vvr	   c                     S U l         g r   )rB   r   s    r
   	free_dictSBaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.Exporter2.free_dict   s	    r	   c                 V   >  U R                  5       S L$ ! [         a	    T" S5      ef = f)Nz__array_interface__ is unread)r   AttributeError)r   rt   s    r
   is_dict_aliveWBaseModuleTest.test_PgObject_GetBuffer_array_interface.<locals>.Exporter2.is_dict_alive   s7    G==?$66% G%&EFFGs    ()rB   r   N)
rF   rG   rH   rI   r   rb   rN   r   r   rJ   )rd   rt   ry   r   s   r
   	Exporter2r{      s'    
 #++B"CG Gr	   r   )rf   rm   rk   rm   )pygame.bufferproxyrV   rK   r8   r#   rR   r   gcRuntimeErrordictassertRaisesr   rM   
assertTruer   collectassertFalse)r   rV   _shaper1   ovr3   r@   r7   r   r   rM   rd   rt   ry   r   s               @@@@r
   'test_PgObject_GetBuffer_array_interface6BaseModuleTest.test_PgObject_GetBuffer_array_interfaceI   st   2	;t(( 	; "!S[)D$a0AAAOOA! * q"H(Uh7N% ) #
 HX.AAAOOA!   		, 		T 	
	G 	G 	G" fc1%N+q7)*	


*+r	   c                 "  ^
 SSK Jm
   " U
4S jSU R                  5      n/ SQn[        S[	        U5      5       H)  nU" USU SS5      nT
" U5      nU R                  XT5        M+     SnUSU nS	 H.  nS
 H%  nU" XgU5      nT
" U5      nU R                  XT5        M'     M0     S H&  nU" USU5      nT
" U5      nU R                  XT5        M(      SSKJn	  U" UWW5      nU R                  U	" UR                  5      S5        g ! [         a     g f = f)Nr   rU   c                   T   >^  \ rS rSrUU 4S jrS r\" \5      r\" S 5      rSr	U =r
$ ):BaseModuleTest.test_GetView_array_struct.<locals>.Exporter   c                 T   > [         TU ]  XU5        T" U R                  5      U l        g r   )superrD   __dict__view)r   r3   r@   r7   rV   	__class__s       r
   rD   CBaseModuleTest.test_GetView_array_struct.<locals>.Exporter.__init__   s"     (;'6	r	   c                 .    U R                   R                  $ r   )r   rc   r   s    r
   get__array_struct__NBaseModuleTest.test_GetView_array_struct.<locals>.Exporter.get__array_struct__   s    yy111r	   c                     g r   r   r   s    r
   r`   CBaseModuleTest.test_GetView_array_struct.<locals>.Exporter.<lambda>   s    r	   )r   )rF   rG   rH   rI   rD   r   rb   rc   rN   rJ   __classcell__)r   rV   s   @r
   rd   r      s'    72  ((;<"*+<"=r	   rd   re   r   rC   rf   rj   rl   ro   rp   )getrefcount)r   rV   rK   r8   r#   rR   r<   r   r"   rc   ImportError)r   rd   r   r1   r   r   r3   r@   r7   r   rV   s             @r
   test_GetView_array_struct(BaseModuleTest.test_GetView_array_struct   s   2
	>t(( 
	> "!S[)D$a0AAAOOA! * q"H(Uh7N% ) #
 HX.AAAOOA! 	A'
 (3A[););<a@  		s   D 
DDr   )buftoolsc                    U R                   nUR                  nU R                  UR                  UR                  5        U" XR
                  5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  S L 5        g r   )r   Importerr"   rM   r#   PyBUF_RECORDS_ROreadonlyformatr7   r1   r3   r9   r   
suboffsets)r   rO   expr   r   imps         r
   NEWBUF_assertSame BaseModuleTest.NEWBUF_assertSame   s    ==$$sww/u778s||4SZZ0s||4388,CII.ckk2$./r	   znewbuf not implementedzpypy no likeyc                 (   SSK Jn  U R                  R                  n/ SQn[	        S[        U5      5       H(  nU" USU S5      nU" U5      nU R                  Xe5        M*     SnUSU nS H$  nU" Xx5      nU" U5      nU R                  Xe5        M&     g )Nr   rU   re   r   =hrf   )bBr   z=Hz=iz=Iz=qz=Qrp   rB   1hz=1hx1x2x3x4x5x6x7x8x9x)r   rV   r   rd   r8   r#   r   )	r   rV   rd   r   r1   r   r   r3   r   s	            r
   test_newbufBaseModuleTest.test_newbuf   s     	3==))!!S[)D$.AAA""1( * q
F0 'AAA""1(5
r	   c                     SSK Jn  SSKJn  SSKJnJn  U R                  nUR                  nUR                  nUR                  nS H*  n	U" SU	SS9n
U" U
5      nU R                  [        X{U5        M,     g )	Nr   rU   )BufferMixin)r5   r:   ) =1 2hz=2h0x11xz=!zh z hhh?)r   rf   )r7   )r   rV   pygame.newbufferr   r0   r5   r:   r   rd   r   PyBUF_FORMATr   
ValueError)r   rV   r   r5   r:   r   rd   r   r   r   r   r   s               r
   test_bad_formatBaseModuleTest.test_bad_format   sm    20:==$$$$,,
F 4!4CC Aj(|D#
r	   zfails on pypyc                 T   SSK Jn  [        R                  " 5       [        R                  :H  nU(       a  SOSu  p4U R
                  nUR                  nU" SSSS.5      nU" XuR                  5      nU R                  UR                  S5        U R                  UR                  S L 5        U R                  UR                  UR                  5        U R                  UR                  S	5        U R                  UR                  S L 5        U R                  UR                   S L 5        U R                  UR"                  S L 5        U R%                  UR&                  5        U R                  UR(                  S
5        U" XuR*                  5      nU R                  UR                  S5        U R                  UR                  S L 5        U R                  UR                  UR                  5        U R                  UR                  S	5        U R                  UR                  S L 5        U R                  UR                   S L 5        U R                  UR"                  S L 5        U R%                  UR&                  5        U R                  UR(                  S
5        U" XuR,                  5      nU R                  UR                  S5        U R                  UR                  S L 5        U R                  UR                  UR                  5        U R                  UR                  S	5        U R                  UR                  S5        U R                  UR                   S L 5        U R                  UR"                  S L 5        U R%                  UR&                  5        U R                  UR(                  S
5        U" US-   SSSS.5      nU" XuR.                  5      nU R                  UR                  S5        U R                  UR                  S L 5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                   S5        U R                  UR"                  S L 5        U R%                  UR&                  5        U R                  UR(                  S5        U" XuR0                  5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                   S5        U R                  UR"                  S L 5        U R%                  UR&                  5        U R                  UR(                  S5        U R3                  [4        XgUR                  5        U R3                  [4        XgUR,                  5        U R3                  [4        XgUR6                  5        U R3                  [4        XgUR8                  5        U R3                  [4        XgUR:                  5        U R3                  [4        XgUR<                  5        U R3                  [4        XgUR                  5        U R3                  [4        XgUR,                  5        U R3                  [4        XgUR6                  5        U R3                  [4        XgUR8                  5        U R3                  [4        XgUR:                  5        U R3                  [4        XgUR<                  5        U" US-   SSSS.5      nU" XuR0                  5      nU R                  UR                  S5        U R                  UR                  US-   5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                   S5        U R                  UR"                  S L 5        U R                  UR&                  5        U R                  UR(                  S5        U R3                  [4        XgUR>                  5        g )Nr   rU   r/   r.   r.   r/   z|u4
   rf   )	   F)r?   r3   r;   rm   r   rf   i2rg   r      rf   )*   Fr\   d   r   r   r!   rg   r   rs   r   rf   )@B Tr!   hi,  r   ) r   rV   r   r   r   r   r   PyBUF_SIMPLEr"   r1   r   r   r#   rM   r7   r3   r9   r   r   r   bufPyBUF_WRITABLEPyBUF_NDPyBUF_STRIDESPyBUF_FULL_ROr   BufferErrorPyBUF_C_CONTIGUOUSPyBUF_F_CONTIGUOUSPyBUF_ANY_CONTIGUOUSPyBUF_CONTIG
PyBUF_FULL)	r   rV   is_lil_endianfsysfrevr   r   ar   s	            r
    test_PgDict_AsBuffer_PyBUF_flags/BaseModuleTest.test_PgDict_AsBuffer_PyBUF_flags  sv    	3002f6G6GG#0Zj
==$$D
 Q--.#D())Q'4(		T)*,-$"Q//0#D())Q'4(		T)*,-$"Q))*#D())Q''*		T)*,-$"$; "#	
 Q../#D()$Q''*G,,-$#Q../#4($Q''*G,,-$#+xH4I4IJ+xH4E4EF+xH4O4OP+xH4O4OP+xH4Q4QR+xH4I4IJ+xH4I4IJ+xH4E4EF+xH4O4OP+xH4O4OP+xH4Q4QR+xH4I4IJ$;#''	
 Q../#4#:.$Q'*-L1,-

#(+xH4G4GHr	   znewbuf with ctypesc                    SSK Jn  SS Kn[        R                  " 5       [        R
                  :H  nU(       a  SOSu  pEU R                  nUR                  n[        R                  " SSUR                  UR                  5      S9nU" U5      n	U" XR                  5      n
U R                  U
R                  S5        U R                  U
R                   S L 5        U R                  U
R"                  UR"                  5        U R                  U
R$                  UR$                  5        U R                  U
R&                  S L 5        U R                  U
R(                  S L 5        U R                  U
R*                  S L 5        U R-                  U
R.                  5        U R                  U
R0                  UR2                  5        U" XR4                  5      n
U R                  U
R                  S5        U R                  U
R                   S L 5        U R                  U
R"                  UR"                  5        U R                  U
R$                  UR$                  5        U R                  U
R&                  S L 5        U R                  U
R(                  S L 5        U R                  U
R*                  S L 5        U R-                  U
R.                  5        U R                  U
R0                  UR2                  5        U" XR6                  5      n
U R                  U
R                  UR8                  5        U R                  U
R                   S L 5        U R                  U
R"                  U	R:                  5        U R                  U
R$                  UR$                  5        U R                  U
R&                  UR&                  5        U R                  U
R(                  S L 5        U R                  U
R*                  S L 5        U R-                  U
R.                  5        U R                  U
R0                  UR2                  5        [        R                  " SS	S
SS9nU" U5      n	U" XR<                  5      n
U R                  U
R                  UR8                  5        U R                  U
R                   S L 5        U R                  U
R"                  UR"                  5        U R                  U
R$                  UR$                  5        U R                  U
R&                  UR&                  5        U R                  U
R(                  UR(                  5        U R                  U
R*                  S L 5        U R-                  U
R.                  5        U R                  U
R0                  UR2                  5        U" XR>                  5      n
U R                  U
R                  UR8                  5        U R                  U
R                   S5        U R                  U
R"                  UR"                  5        U R                  U
R$                  UR$                  5        U R                  U
R&                  UR&                  5        U R                  U
R(                  UR(                  5        U R                  U
R*                  S L 5        U R-                  U
R.                  5        U R                  U
R0                  UR2                  5        U RA                  [B        XyUR                  5        U RA                  [B        XyUR4                  5        U RA                  [B        XyUR4                  5        U RA                  [B        XyUR6                  5        U RA                  [B        XyURD                  5        U RA                  [B        XyURF                  5        U RA                  [B        XyURH                  5        U RA                  [B        XyURJ                  5        U RA                  [B        XyUR                  5        U RA                  [B        XyUR6                  5        U RA                  [B        XyURD                  5        U RA                  [B        XyURF                  5        U RA                  [B        XyURH                  5        U RA                  [B        XyURJ                  5        [        R                  " SS	S
S[        RL                  S9nU" U5      n	U" XR>                  5      n
U R                  U
R                  UR8                  5        U R                  U
R                   US-   5        U R                  U
R"                  UR"                  5        U R                  U
R$                  UR$                  5        U R                  U
R&                  UR&                  5        U R                  U
R(                  UR(                  5        U R                  U
R*                  S L 5        U R                  U
R.                  5        U R                  U
R0                  UR2                  5        U RA                  [B        XyURN                  5        g )Nr   rU   r   r   r   rp   )typekindr7   r   rC   rf   r   )r   r7   r9   r   r   r   )r   r7   r9   flagsr   )(r   rV   r0   r   r   r   r   r   r   rd   sizeofc_doubler   r"   r1   r   r   r#   r7   r3   r9   r   r   r   r   r;   r   r   ndrM   r   r   r   r   r   r   r   r   PAI_ALIGNEDr   )r   rV   r0   r   r   r   r   r   er   r   s              r
   "test_PgObject_AsBuffer_PyBUF_flags1BaseModuleTest.test_PgObject_AsBuffer_PyBUF_flags  s5   2002f6G6GG#0Zj
==$$cFMM&//,J
 NQ--.#D()&QZZ04(		T)*,-$'Q//0#D()&QZZ04(		T)*,-$'Q))*&D())QZZ0!''*		T)*,-$'gaQNQ../&D()&QZZ0!''*AII.,-$'Q../&4(&QZZ0!''*AII.,-$'+xH4I4IJ+xH4K4KL+xH4K4KL+xH4E4EF+xH4O4OP+xH4O4OP+xH4Q4QR+xH4I4IJ+xH4I4IJ+xH4E4EF+xH4O4OP+xH4O4OP+xH4Q4QR+xH4I4IJ &&
 NQ../&4#:.&QZZ0!''*AII.,-

#'+xH4G4GHr	   c                 X    SSK Jn  U" S5      nU R                  [        [        US5        g )Nr   rU   r   rM   )r   rV   r   r   getattr)r   rV   bps      r
   !test_PgObject_GetBuffer_exception0BaseModuleTest.test_PgObject_GetBuffer_exception  s"    2^*gr8<r	   c                    U R                  [        R                  " 5       S5        U R                  [        R                  R                  5       S5        S[        R
                  ;   a.  U R                  [        R                  R                  5       S5        S[        R
                  ;   a.  U R                  [        R                  R                  5       S5        SS KnUR                  " 5       R                  S5      (       a  g  U R                  [        R                  [        R                  R                  5        g ! [         a     g f = f)	Nzpygame shouldn't be initializedz display shouldn't be initializedpygame.mixerzmixer shouldn't be initializedpygame.fontzinit shouldn't be initializedr   Darwin)r   r   get_initdisplayr<   modulesmixerfontplatformsystem
startswithr   errorscrapgetNotImplementedError)r   r  s     r
   not_init_assertions"BaseModuleTest.not_init_assertions  s    *,MN0024VWS[[(V\\2246VWCKK'V[[1135TU 	??''11	fllFLL,<,<=" 		s   8D< <
E	E	c                    U R                  [        R                  " 5       5        U R                  [        R                  R                  5       5        S[        R
                  ;   a-  U R                  [        R                  R                  5       5        S[        R
                  ;   a.  U R                  [        R                  R                  5       5        g g )Nr
  r  )r   r   r  r  r<   r  r  r  r   s    r
   init_assertionsBaseModuleTest.init_assertions  s}    )*//12S[[(OOFLL1134CKK'OOFKK0023 (r	   c                     U R                  5         [        R                  " 5         U R                  5         [        R                  " 5         U R                  5         g r   )r  r   initr  r   r   s    r
   test_quit__and_init"BaseModuleTest.test_quit__and_init  sB     	  " 	 	 	 	  "r	   c                     U R                  [        S5        [        R                  " 5         [        R                  " [
        5        [        R                  " 5         U R                  [        S5        g)z5Ensure that a registered function is called on quit()r   r   N)r"   r   r   r  register_quitr   r   r   s    r
   test_register_quit!BaseModuleTest.test_register_quit#  sB    Q'Y'Q'r	   c                    [         R                  " 5       n[         R                  " S5        U R                  [         R                  " 5       S5        [         R                  " S5        U R                  [         R                  " 5       S5        g Nhir   r   	get_error	set_errorr"   r   r  s     r
   test_get_errorBaseModuleTest.test_get_error-  s`     ))+T2))+R0r	   c                    [         R                  " 5       n[         R                  " S5        U R                  [         R                  " 5       S5        [         R                  " S5        U R                  [         R                  " 5       S5        g r'  r)  r,  s     r
   test_set_errorBaseModuleTest.test_set_error?  s^    ))+T2))+R0r	   c                 z    [         R                  " S5        U R                  S[         R                  " 5       5        g )Nu   你好)r   r+  r"   r*  r   s    r
   test_unicode_error!BaseModuleTest.test_unicode_errorG  s)    "6#3#3#56r	   c                     U R                  5         SnSn[        R                  " 5       u  p4U R                  5         U R	                  X15        U R                  XB5        g)zEnsures init() works properly.rf   r   N)r  r   r  r  assertGreaterEqualr"   )r   expected_min_passesexpected_failspassesfailss        r
   	test_initBaseModuleTest.test_initK  sT     	  "   </r	   c                 L    U R                  [        R                  " 5       5        g r   )r   r   r  r   s    r
   test_get_initBaseModuleTest.test_get_init\  s    *+r	   c                 v    [         R                  " 5         U R                  [         R                  " 5       5        g r   )r   r  r   r  r   s    r
   test_get_init__after_init(BaseModuleTest.test_get_init__after_init`  s    )*r	   c                     [         R                  " 5         [         R                  " 5         U R                  [         R                  " 5       5        g r   )r   r  r   r   r  r   s    r
   test_get_init__after_quit(BaseModuleTest.test_get_init__after_quitf  s)    *+r	   r   N)$rF   rG   rH   rI   r   r   r%   rK   rR   r   r   r   HAVE_NEWBUFpygame.tests.test_utilsr   r   unittestskipIfIS_PYPYr   r   r   r  r  r  r  r   r$  r-  r0  r3  r;  r>  rA  rD  rJ   r   r	   r
   r   r      s_   4;E E42O,b(AT 40 __+++-EF__Wo.%) / G%)N __+++-EFE GE: __+++-EF__Wo.bI / GbIH __W8V%7%7!7:NO`I P`ID=24#*(1$170",+,r	   r   __main__)r<   rH  r  python_implementationrJ  rG  r   	NameErrorr   r   r   TestCaser   rF   mainr   r	   r
   <module>rP     s|    
  
H224
4	0  

T	,X&& T	,n zMMO I  		s   A A('A(