
    &hj9                        S SK r S SKrS SK7  S SKr/ SQr\" \5      \" \5      :X  a  \r\r	O-\" \
5      \" \5      :X  a  \
r\r	O\" \5      \" \5      :X  a  \r\r	\" \5      r\\" \5      ::  a  \rO5\\" \5      ::  a  \rO&S\" 5       ;   a  \\" \5      ::  a  \rO\" S\4-  5      e " S S\5      r\" \5      r \R.                  r\\l        \/\l        \R6                  r\\l        \/\l         \R:                  r\\l        \\/\l        \R>                  r\\l        \\/\l        \R@                  r \\ l        \/\ l        \!" S\5      r"\RF                  r#\\#l        \\\" \"5      /\#l        S
 r$Sr%Sr&Sr'Sr(Sr)Sr* " S S5      r+S r,S r-S r. " S S5      r/ " S S\/5      r0 " S S\Rb                  5      r2 " S S\Rb                  5      r3\4S:X  a  \Rj                  " 5         gg! \ a    S r GNf = f! \ a    S	 r Nf = f)    N)*)PAI_CONTIGUOUSPAI_FORTRANPAI_ALIGNEDPAI_NOTSWAPPEDPAI_WRITEABLEPAI_ARR_HAS_DESCRArrayInterface
c_longlongzUnrecognized pointer size %ic            
       f    \ rS rSrS\4S\4S\4S\4S\4S\" \5      4S\" \5      4S	\4S
\	4/	r
Srg)PyArrayInterface&   twondtypekinditemsizeflagsshapestridesdatadescr N)__name__
__module____qualname____firstlineno__c_intc_charPOINTERPy_intptr_tc_void_p	py_object_fields___static_attributes__r       X/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/test_utils/arrinter.pyr   r   &   sY    		u	V	U	%	'+&'	GK()		)
Hr%   r   c                     [        S5      e)NzNot available)	TypeError)os    r&   PyCObject_AsVoidPtrr*   :   s    ((r%   c                     gNr   r   )capsulenames     r&   PyCapsule_IsValidr/   H   s    r%   c                 .    [        [        U 5      S S 5      $ N)PyCapsule_New	addressof)ps    r&   capsule_newr5   [   s    1tT22r%            i   i   i   c                   &    \ rS rSrS rS rS rSrg)r
   g   c                     UR                   U l        U R                  (       d  [        S5      e [	        U R                  5      n[        U R                  5      U l        [        U[        5      S   U l        g ! [         a    [        S5      ef = f! [         aZ    [        U R                  S 5      (       a  [        U R                  S 5      nO[        S5      e[        U R                  5      U l         Nf = f)Nz)The array object lacks an array structurez1The array object has a NULL array structure valuez/The array object has an invalid array structurer   )__array_struct___cobjAttributeErrorr(   r*   PyCObject_GetDescdescr/   PyCapsule_GetPointerPyCapsule_GetContextcastPAI_Ptr_inter)selfarrvps      r&   __init__ArrayInterface.__init__h   s    	I--DJ zzOPP		6$TZZ0B *$**5DI2w'*  	IGHH	I  	9 T22)$**d; QRR,TZZ8DI	9s   A8 B 8BA!C54C5c                     US:X  a%  U R                   R                  R                  S5      $ [        U R                   U5      $ )Nr   zlatin-1)rE   r   decodegetattr)rF   r.   s     r&   __getattr__ArrayInterface.__getattr__{   s6    :;;''..y99t{{D))r%   c           
      V   [        U R                  [        5      (       a  U R                  S   nOSnSU R                  U R                  U R
                  [        U R                  5      [        U R                  U R                  5      [        U R                  U R                  5      U4-  $ )Nr   zN/AzInd: %i
typekind: %s
itemsize: %i
flags: %s
shape: %s
strides: %s
ver: %s
)
isinstancer@   tupler   r   r   format_flagsr   format_shaper   format_stridesr   )rF   vers     r&   __str__ArrayInterface.__str__   s    dii''))A,CC TZZ(TWWdjj1tww5	
r%   )r=   rE   r@   N)r   r   r   r   rI   rN   rW   r$   r   r%   r&   r
   r
   g   s    +&*

r%   r
   c                     / n[         S4[        S4[        S4[        S4[        S4[
        S44 H!  u  p#X -  (       d  M  UR                  U5        M#     SR                  U5      $ )N
CONTIGUOUSFORTRANALIGNED
NOTSWAPPED	WRITEABLEARR_HAS_DESCR, )r   r   r   r   r   r	   appendjoin)r   namesflagr.   s       r&   rS   rS      sk    E	&	i 	i 	&	$	O,
 <<LL 99Ur%   c           	      x    SR                  [        U 5       Vs/ s H  n[        X   5      PM     sn5      $ s  snf Nr`   rb   rangestr)r   r   is      r&   rT   rT      s-    99U2Y7Yc%(mY7887   7c           	      x    SR                  [        U 5       Vs/ s H  n[        X   5      PM     sn5      $ s  snf rf   rg   )r   r   rj   s      r&   rU   rU      s-    99uRy9y!c'*oy9::9rk   c                   8    \ rS rSr SS jr\" S 5      rS rSrg)Exporter   Nc                 j  ^^ Uc  SnUc  SnUc  [         [        -  [        -  nUb	  U[        -  n[	        U5      S:w  a  [        S5      e[	        T5      nX l        X0l        Xpl        [        T5      U l
        [        U R                  -  " U R                  6 U l        Tc  [        U R                  -  " 5       U l        U R                  U R                  U R                  S-
  '   [        U R                  S-
  SS5       H2  nU R                  U   U R                  U   -  U R                  US-
  '   M4     [        U R                  5      mTU l        OP[	        T5      U:X  a6  [        T5      U l        [        U R                  -  " U R                  6 U l        O[        S5      eXPl        U R#                  S5      (       a	  U[$        -  nU R#                  S5      (       a	  U[&        -  nX`l        [+        UU4S	 j[        U5       5       5      n	[,        U	-  " 5       U l        [1        U R.                  5      U l        [5        S
UUR7                  S5      UUU R                  U R                  U R2                  U5	      U l        X0l        [        U5       H%  nU =R                  U R                  U   -  sl        M'     g )Nur6   z+Argument 'typekind' must be length 1 stringr   z'Mismatch in length of strides and shapeCFc              3   :   >#    U  H  nTU   TU   -  v   M     g 7fr1   r   ).0rj   r   r   s     r&   	<genexpr>$Exporter.__init__.<locals>.<genexpr>   s     :	1qGAJ&	s   r7   latin_1)r   r   r   r	   len
ValueErrorr   r   r   rR   r   	c_ssize_t_shape_stridesrh   r   r   is_contiguousr   r   r   maxc_ubyte_datar3   r   r   encoderE   )
rF   r   r   r   r   r   r   r   rj   szs
    `  `     r&   rI   Exporter.__init__   s3    HH=!K/.@E&&Ex=AJKKZ  5\
 477*TZZ8?&03DM)-DMM$''A+&477Q;2.'+zz!}t}}Q7G'Ga!e$ /DMM*G"DL\R >DL&04<<@DMFGG
c""^#Ec""[ E
:b	::l%
djj)	&OOI&KKMMII

 rAHH

1%H r%   c                 ,    [        U R                  5      $ r1   )r5   rE   rF   s    r&   <lambda>Exporter.<lambda>   s    [-Er%   c                    US;   at  U R                   S   U R                  :X  aW  [        U R                  S-
  SS5       H8  nU R                   US-
     U R                  U   U R                   U   -  :w  d  M8    O   gUS;   as  U R                   S   U R                  :X  aV  [        SU R                  S-
  5       H8  nU R                   US-      U R                  U   U R                   U   -  :w  d  M8    g   gg)NCArr   r6   r   TFAF)r   r   rh   r   r   )rF   fortranrj   s      r&   r   Exporter.is_contiguous   s    d?||B4==0tww{Ar2A||AE*djjmdll1o.MM 3  d?||A$--/q$''A+.A||AE*djjmdll1o.MM  /  r%   )r   rE   r}   r~   r   r   r   r   rz   r   r   r   r   )NNNNN)	r   r   r   r   rI   propertyr<   r   r$   r   r%   r&   rn   rn      s    SW5&n   EFr%   rn   c            	       P   ^  \ rS rSr\\\\\\	\
\S.rU 4S jrS rS rS rSrU =r$ )Array   ))rq   r6   )rq   r7   )rq      )rq      )rj   r6   )rj   r7   )rj   r   )rj   r   c                   > [         TU ]  " U0 UD6   U R                  [        -  (       a&  U R                  U R
                  U R                  4   nOw[        R                  [        L a0  U R                  U R
                  U R                  4   R                  nO0U R                  U R
                  U R                  4   R                  n X0l        [        U5      U l        g ! [         a    [        U R                  -  n N6f = fr1   )superrI   r   r   _ctypesr   r   r   __ctype_le____ctype_be__KeyErrorc_uint8_ctyper   _ctype_p)rF   argskwdsct	__class__s       r&   rI   Array.__init__  s    $'$'	)zzN*\\$--">?##u,\\$--">?LL\\$--">?LL   	)4==(B	)s   =C AC /C C?>C?c                 R    [        U R                  U5      U R                  5      S   $ r,   rC   _addr_atr   )rF   keys     r&   __getitem__Array.__getitem__  s!    DMM#&6q99r%   c                 T    U[        U R                  U5      U R                  5      S'   g r,   r   )rF   r   values      r&   __setitem__Array.__setitem__  s     5:T]]3/2r%   c                 p   [        U[        5      (       d  U4n[        U5      U R                  :w  a  [	        S5      e[        U R                  5       H0  nSX   s=::  a  U R                  U   :  a  M!  O  [        SU S35      e   U R                  [        S [        XR                  5       5       5      -   $ )Nzwrong number of indexesr   zindex z out of rangec              3   .   #    U  H  u  pX-  v   M     g 7fr1   r   )rv   rj   ss      r&   rw   !Array._addr_at.<locals>.<genexpr>$  s     H1Gqu1Gs   )rQ   rR   rz   r   r{   rh   r   
IndexErrorr   sumzipr   )rF   r   rj   s      r&   r   Array._addr_at  s    #u%%&Cs8tww677twwA/$**Q-/ 6!M!:;;   yy3HS,,1GHHHHr%   )r   r   )r   r   r   r   r   c_uint16c_uint32c_uint64c_int8c_int16c_int32c_int64r   rI   r   r   r   r$   __classcell__)r   s   @r&   r   r      s=    	G$:;I Ir%   r   c                   ,    \ rS rSrS rS r SS jrSrg)ExporterTesti'  c           	         U R                  SSSSSSS5        U R                  SSSSS	S	S5        U R                  SS
SSSSS5        U R                  SSSSSSS5        U R                  SS
SSSSS5        U R                  SS
SSSSS5        U R                  SSSSSSS5        U R                  SSSSSSS5        U R                  SSSSSSS5        U R                  SSSS SS!S5        g )"Nr   
   rq   )r7      r7   )      )   r7      )   r   r   )r   r   r7         r      r   iJ  B   r   r7   i  r   rj   )r7      *   x)r7      0      %)i  X   r   r7   iX  )r   r   -)   r   i   r   )r       )r      x   )
check_argsr   s    r&   test_stridesExporterTest.test_strides(  s    5#tRQ763B:9c;S!D>3tQO9c;S!D9c;S!D>3tQO63c1=63c1=63c1=r%   c                    [        SSS9nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        [        SSS9nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        [        SSS	S
9nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        [        SSSS
9nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        [        SSSS
9nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        [        SSSS
9nU R                  UR                  S5      5        [        SSSS
9nU R                  UR                  S5      5        [        SSSS
9nU R                  UR                  S5      5        [        SSSS
9nU R                  UR                  S5      5        g )Nr   r7   )r   rs   rt   A)r   r   r   r   r   r   )r7   r   )r7         i  )r7   r   r   r   )i@  r   r   r7   )r7   r   r   i   )r   r7   r7   )r   r   r   )r      r   )rn   
assertTruer   assertFalserF   as     r&   test_is_contiguousExporterTest.test_is_contiguous4  s   UQ',-,-,-Wq),-,--.^aI,-,--.Wq':,-,--.^a9KL,-,--.]QH-.]QH-.YJ?-.YK@-.r%   c	                 z   US-  (       a  Un	OS n	US-  (       a  Un
OS n
[        X'U
S9nU R                  [        UR                  5      U5        U R                  UR                  [
        R                  " UR                  5      U-   5        [        U5      nU R                  UR                  UR                  5        U R                  UR                  U5        U R                  [        UR                  SUR                   5      U5        U R                  [        UR                  SUR                   5      U5        g )Nr6   r7   r   r   )rn   assertEqualsizeofr   r   ctypesr3   r
   r   rR   r   r   r   )rF   
call_flagsr   r   r   lengthbufsizer   offsettypekind_argstrides_argr   ms                r&   r   ExporterTest.check_argsR  s     >#LL>!KKU{C'2!1!1!''!:V!CD1(X.qwwq1440159qyyQTT23W=r%   r   N)r   )r   r   r   r   r   r   r   r$   r   r%   r&   r   r   '  s    
>/> WX>r%   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)	ArrayTestig  c                 p    [         R                  R                  " U /UQ70 UD6  [        SSS5      U l        g )N)r   r   rj   r   )unittestTestCaserI   r   r   )rF   r   r   s      r&   rI   ArrayTest.__init__h  s0    ""47$7$7xa(r%   c                     [        U R                  R                  S[        U R                  R                  5      5        g r,   )memsetr   r   r   r   r   s    r&   setUpArrayTest.setUpl  s#    tvv{{Avdffll34r%   c                    U R                   nU R                  UR                  S5      UR                  5        U R                  UR                  S5      UR                  S-   5        U R                  UR                  S5      UR                  S-   5        U R                  UR                  S5      UR                  S-   5        g )Nr   r   )r   r6   r   )r6   r   <   )r6   r6   @   )r   r   r   r   r   s     r&   test__addr_atArrayTest.test__addr_atp  s    FFF+QVV4F+QVVaZ8F+QVVb[9F+QVVb[9r%   c                 0   U R                   nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S5        SUS'   SUS'   U R                  US   S5        U R                  US   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5        [        SSS5      nSUS'   U R                  US   S5        g )Nr  r   )   r   )r   r   )r	  r   )r   r   r   c   )rr   r   )r   rr   )r   r   )r   r   )r   r   r   )r   rj   r   iM  r6   )r   r   assertRaisesr   r   r{   r   r   s     r&   test_indicesArrayTest.test_indicesw  sX   FF4!$51%51%6A&4!$$$4"%4"%*ammW=*ammW=*ammW=*ammW=*ammQ7*ammY?$Q!1s#r%   c                    [        SSS5      nU R                  UR                  [        L 5        U R                  UR                  [        [        5      L 5        [        SSS5      nU R                  UR                  [        L 5        U R                  UR                  [        [        5      L 5        [        SSS5      nUR                  nU R                  [        U[        R                   5      5        U R                  [        U5      S5        g )Nr6   rj   r   rq   f)r   r   r   r   r   r   r   
issubclassr   r   r   )rF   r   r   s      r&   test_typekindArrayTest.test_typekind  s    $QG+,

gg&667$QH,-

gh&778$QXX
2v||45Q'r%   c                     S H`  n[        SSU5      nUR                  nU R                  [        U[        R
                  5      5        U R                  [        U5      U5        Mb     g )N)r6   r7   r   r   r  rj   )r   r   r   r  r   _SimpleCDatar   r   rF   sizer   r   s       r&   test_itemsizeArrayTest.test_itemsize  sP     DdC&ABOOJr6+>+>?@VBZ.	 !r%   c                     S H`  n[        SSU5      nUR                  nU R                  [        U[        R                   5      5        U R                  [        U5      U5        Mb     g )N)r   r   r   r   	   r  rj   )r   r   r   r  r   r   r   r  s       r&   test_oddball_itemsizeArrayTest.test_oddball_itemsize  sN    #DdC&ABOOJr6<<89VBZ.	 $r%   c           	         [        SSS[        [        -  S9nUR                  nU R	                  U[
        L5        [        R                  S:X  a"  U R	                  U[
        R                  L 5        O!U R	                  U[
        R                  L 5        Sn[        U5      nX1S'   U R                  US   U5        U R                  UR                  SS [        [        U5      [        [        5      5      SS	S	2   5        g )
Nr  rq   r   )r   littlei
r   r   rr   )r   r   r   r   r   r   sys	byteorderr   r   r   r   rC   r3   r   r   )rF   r   r   rj   ns        r&   test_byteswappedArrayTest.test_byteswapped  s    $Q{]'BDXX(*+==H$OOB("7"778OOB("7"778QK!1q!1tIaL'':J'KAbQSG'TUr%   )r   N)r   r   r   r   rI   r   r  r  r  r  r  r#  r$   r   r%   r&   r   r   g  s+    )5:$*
(//Vr%   r   __main__)6r   r   r   __all__r   c_uintr!   c_size_tr   r|   c_ulongc_longc_ulonglongr   SIZEOF_VOID_Pr    globalsRuntimeError	Structurer   r   rD   	pythonapir*   restyper"   argtypesr?   r>   r/   c_char_prA   rB   	CFUNCTYPEPyCapsule_Destructorr2   r5   r   r   r   r   r   r	   r
   rS   rT   rU   rn   r   r   r   r   r   mainr   r%   r&   <module>r7     s   
    
&>VH%%HIG_x((HIKF8,,HI x F5M!KfVn$KWY=F:4F#FK
58HH
IIy  "
#-#77 #+$-; !33 ("+0!33 !&"+X!6$99#+ %.$9!$99#+ %.K! y1 ''! "Hg6J.KL 3  /
 /
d9;I IX(IH (IV=>8$$ =>@KV!! KV\ zMMO {  )))  s$   :G* 1G: *	G76G7:	HH