
    &hY\                        S r SSKr\R                  (       d
  Sr\" \5      eSSKrSSKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJr  SSKrSSKrSSKrSSKJr  SS/r \R:                    S	 r' " S
 S\RP                  RR                  5      r* " S S5      r+ " S S\RX                  5      r-\.S:X  a  \R^                  " 5         gg! \ a    \R>                  " \R@                  5      r!\R>                  " \RD                  5      \!:X  a  \RD                  \l         N\R>                  " \RF                  5      \!:X  a  \RF                  \l         N\R>                  " \RH                  5      \!:X  a  \RH                  \l         GN\R>                  " \RJ                  5      \!:X  a  \RJ                  \l         GNJ\&" S\!-  5      ef = f)aR  Module pygame.tests.test_utils.array

Export the Exporter and Importer classes.

Class Exporter has configurable shape and strides. Exporter objects
provide a convenient target for unit tests on Pygame objects and functions
that import a new buffer interface.

Class Importer imports a buffer interface with the given PyBUF_* flags.
It returns NULL Py_buffer fields as None. The shape, strides, and suboffsets
arrays are returned as tuples of ints. All Py_buffer field properties are
read-only. This class is useful in comparing exported buffer interfaces
with the actual request. The simular Python builtin memoryview currently
does not support configurable PyBUF_* flags.

This module contains its own unit tests. When Pygame is installed, these tests
can be run with the following command line statement:

python -m pygame.tests.test_utils.array

    Nz:This Pygame build does not support the new buffer protocol)PyBUF_SIMPLEPyBUF_FORMATPyBUF_NDPyBUF_WRITABLEPyBUF_STRIDESPyBUF_C_CONTIGUOUSPyBUF_F_CONTIGUOUSPyBUF_ANY_CONTIGUOUSPyBUF_INDIRECTPyBUF_STRIDEDPyBUF_STRIDED_ROPyBUF_RECORDSPyBUF_RECORDS_RO
PyBUF_FULLPyBUF_FULL_ROPyBUF_CONTIGPyBUF_CONTIG_RO)reduceExporterImporterz*Cannot set c_ssize_t: sizeof(void *) is %ic                     [        U 5      $ N)property)fns    X/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/test_utils/buftools.py	_prop_getr   H   s    B<    c                   D   \ rS rSrSrSSSSSSSSSS	S
SSS.r0 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"                  _S\R$                  _S\R&                  _S\R(                  _S\R*                  _0 S\R,                  _S \R&                  _S!\R(                  _S"\R.                  _S#\R0                  _S$\R2                  _S%\R4                  _S&\R6                  _S'\R8                  _S(\R:                  _S)\R                  S*-  _S+\R                  S,-  _S-\R                  S.-  _S/\R                  S0-  _S1\R                  S2-  _S3\R                  S4-  _S5\R                  S6-  _E\R                  S7-  \R                  S8-  S9.ErSBS; jrS< r S= r!S> r"S? r#S@ r$SAr%g:)Cr   L   zAn object that exports a multi-dimension new buffer interface

The only array operation this type supports is to export a buffer.
 =23456789)@r!   <>!r"   r#   r$   r%   r&   r'   r(   r)   cbB=c=b=B?=?hH=h=HiI=i=IlL=l=LqQ=q=QfdPx   2x   3x   4x   5x   6x   7x      	   )8x9xNc                    Uc  SnUc  SnSnSnSnU[        U5      :  a   U R                  X(      nUS-  nU[        U5      :  a  X(   S:X  a  US-  nU[        U5      S-
  :X  a  X(   nUc&   [        R                  " U R
                  Xg-      5      n[        U5      U l	        X l
        [        R                  " UR                  S	5      5      U l        [        U5      U l        XPl        [!        ["        R$                  US5      U R                  -  U l         ['        U5      U l        [        R*                  U R                  -  " U R(                  6 U l        Uc  [        R*                  U R                  -  " 5       U l        XPR.                  U R                  S-
  '   [1        U R                  S-
  SS
5       H2  nU R(                  U   U R.                  U   -  U R.                  US-
  '   M4     ['        U R.                  5      U l        Od[        U5      U R                  :X  a@  ['        U5      U l        [        R*                  U R                  -  " U R2                  6 U l        O[        S5      e[5        S [7        U R(                  U R2                  5       5       5      n	Xl        [        R:                  U	-  " 5       U l        [?        S [7        U R(                  U R2                  5       5       5      n
[        R@                  " U R<                  5      U
-   U l!        g ! [         a     GNf = f! [         a    [        SU-   S-   5      ef = f)Nr0   Fr    r   rJ   1zUnknown item format ''latin_1z'Mismatch in length of strides and shapec              3   B   #    U  H  u  pU[        U5      -  v   M     g 7fr   abs.0rG   ss      r   	<genexpr>$Exporter.__init__.<locals>.<genexpr>   s     J,IDAQQZ,Is   c              3   X   #    U  H   u  pUS :  d  M  US-
  [        U5      -  v   M"     g7f)r   rJ   Nra   rc   s      r   rf   rg      s,      
)F!a%QUc!f)Fs   **)"lenprefixesLookupErrorctypessizeoftypesKeyError
ValueErrorboolreadonlyformatcreate_string_bufferencode_formatndimitemsizer   operatormultupleshape	c_ssize_t_shape_stridesrangestridesmaxzipbuflenc_ubyte_bufsum	addressofbuf)selfr|   rs   r   rr   rx   prefixtypecoder:   r   offsets              r   __init__Exporter.__init__   s   >FHs6{?vy1Q s6{?vyC/FAFayHI!==F4E)FG X226==3KLJ	 (,,q1DMMA5\
''$))3djjA?#--		9<DM+3MM$))a-(499q=!R0'+zz!}t}}Q7G'Ga!e$ 1 /DL\TYY& >DL#--		9DLLIDMFGGJC

DLL,IJJ^^f,/	 
),TZZ)F
 
 ##DII.7I    I !86!AC!GHHIs   L -%L% 
L"!L"%Mc                 `    [         R                  " U R                  5      U R                  S   4$ Nr   )rl   r   bufferr|   r   s    r   buffer_infoExporter.buffer_info   s$      -tzz!}==r   c                     [         R                  " U R                  [         R                  " [         R                  5      5      SU R
                   $ r   )rl   castr   POINTERc_char_lenr   s    r   tobytesExporter.tobytes   s/    {{4;;v}}(EFq499UUr   c                      U R                   S   $ r   )r|   r   s    r   __len__Exporter.__len__   s    zz!}r   c                    SSK Jn  U[        -  [        :X  a  U R                  (       a  [	        S5      eU[
        -  [
        :X  a!  U R                  S5      (       d  [	        S5      eU[        -  [        :X  a!  U R                  S5      (       d  [	        S5      eU[        -  [        :X  a!  U R                  S5      (       d  [	        S	5      eU R                  Ul	        U R                  Ul        U R                  Ul
        U[        -  [        :X  a  SUl        OU R                  Ul        U R                  Ul        U[        -  [        :X  a  U" U R                  5      Ul        OS Ul        U[         -  [         :X  a  U" U R"                  5      Ul        O7U R                  S5      (       a  S Ul        O[	        S
U R                   S35      eU[&        -  [&        :X  a&  [         R                  " U R(                  5      Ul        O6UR$                  b  U R                  S5      (       a  S Ul        O[	        S5      eS Ul        S Ul        Xl        g )Nr   )r   zbuffer is read-onlyCzdata is not C contiguousFzdata is not F contiguousAzdata is not contiguouszshape required for z dimensional dataz+strides required for none C contiguous data)rl   r   r   rr   BufferErrorr   is_contiguousr	   r
   r   ri   rw   rx   r   rv   rs   r   r~   r|   r   r   r   
suboffsetsinternalobj)r   viewflagsr   s       r   _get_bufferExporter._get_buffer   s   $N"~5$--344&& (,(:(:3(?(?899&& (,(:(:3(?(?899((!"*.*<*<S*A*A6778888>!^3DI		DIL \1#DLL1DKDKH)"4;;/DJ$$DJ 3DII;>OPQQM!m3!++DMM:DLZZ4#5#5c#:#:DLKLLr   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CAr_   rJ   r   TFAF)r   rx   r   rw   r|   )r   fortranr:   s      r   r   Exporter.is_contiguous   s    d?||B4==0tyy1}a4A||AE*djjmdll1o.MM 5  d?||A$--/q$))a-0A||AE*djjmdll1o.MM  1  r   )r   rv   r~   r   r   r   rs   rx   ri   rw   rr   r|   r   )NNNN)&__name__
__module____qualname____firstlineno____doc__rj   rl   r   c_byter   c_int8c_uint8c_boolc_shortc_ushortc_int16c_uint16c_intc_uintc_int32c_uint32c_longc_ulong
c_longlongc_ulonglongc_int64c_uint64c_floatc_doublec_void_prn   r   r   r   r   r   r   __static_attributes__ r   r   r   r   L   s    H%V]]%V]]% 	V^^% 	fmm	%
 	fmm% 	fnn% 	V]]% 	fmm% 	V^^% 	V__% 	fnn% 	foo% 	V\\% 	V]]% 	fnn%  	foo!%" 	V]]#%$ 	V^^%%& 	fnn'%( 	foo)%* 	V+%, 	V-%. 	fnn/%0 	foo1%2 	V^^3%4 	V__5%6 	V__7%8 	V^^a9%: 	fnnq ;%< 	fnnq =%> 	fnnq ?%@ 	fnnq A%B 	fnnq C%D 	fnnq E%F nnq nnq I%EN08d>V+Zr   c                       \ rS rSrSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       rS rSrg)r   i  zAn object that imports a new buffer interface

The fields of the Py_buffer C struct are exposed by identically
named Importer read-only properties.
c                     [         R                  R                  5       U l        U R                  R	                  X5        g r   )pygame	newbuffer	Py_buffer_view
get_buffer)r   r   r   s      r   r   Importer.__init__	  s*    %%//1


c)r   c                 .    U R                   R                  $ )z$return object or None for NULL field)r   r   r   s    r   r   Importer.obj       zz~~r   c                 .    U R                   R                  $ z!return int or None for NULL field)r   r   r   s    r   r   Importer.buf  r   r   c                 .    U R                   R                  $ z
return int)r   ri   r   s    r   ri   Importer.len  r   r   c                 .    U R                   R                  $ )zreturn bool)r   rr   r   s    r   rr   Importer.readonly       zz"""r   c                     U R                   R                  nUc  g[        R                  " U[        R                  5      R
                  R                  S5      $ )z#return bytes or None for NULL fieldNascii)r   rs   rl   r   c_char_pvaluedecode)r   format_addrs     r   rs   Importer.format!  sB     jj''{{;8>>EEgNNr   c                 .    U R                   R                  $ r   )r   rx   r   s    r   rx   Importer.itemsize)  r   r   c                 .    U R                   R                  $ r   )r   rw   r   s    r   rw   Importer.ndim.  s     zzr   c                 L    U R                  U R                  R                  5      $ z'return int tuple or None for NULL field)_to_ssize_tupler   r|   r   s    r   r|   Importer.shape3  s     ##DJJ$4$455r   c                 L    U R                  U R                  R                  5      $ r   )r   r   r   r   s    r   r   Importer.strides8  s     ##DJJ$6$677r   c                 L    U R                  U R                  R                  5      $ r   )r   r   r   r   s    r   r   Importer.suboffsets=  s     ##DJJ$9$9::r   c                 .    U R                   R                  $ r   )r   r   r   s    r   r   Importer.internalB  r   r   c                 z    SSK JnJnJn  Uc  g [	        U" X" U5      5      SU R
                  R                   5      $ )Nr   )r   r   r}   )rl   r   r   r}   r{   r   rw   )r   addrr   r   r}   s        r   r   Importer._to_ssize_tupleG  s6    33<T$	 23A

HIIr   )r   N)r   r   r   r   r   r   r   r   r   ri   rr   rs   rx   rw   r|   r   r   r   r   r   r   r   r   r   r     s    *       # # O O # #   6 6 8 8 ; ; # #Jr   c                   T    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 r SS jrSrg)ExporterTestiO  zClass Exporter unit testsc           	         [         R                  " [         R                  5      n[         R                  " [         R                  5      n[         R                  " [         R                  5      n[         R                  " [         R
                  5      n[         R                  " [         R                  5      n[         R                  " [         R                  5      n[         R                  " [         R                  5      n[         R                  " [         R                  5      n[         R                  " [         R                  5      n	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U4XU5        U R                  SSSU4X"U5        U R                  SSSU4X"U5        U R                  SSS	U4X3U5        U R                  SSS
U4X3U5        U R                  SSSU4XDU5        U R                  SSSU4XDU5        U R                  SSSU4XUU5        U R                  SSSU4XUU5        U R                  SSSU4XfU5        U R                  SSSU4XwU5        U R                  SSSSSSS5        U R                  SSSU4XU5        U R                  SSSU	4XU	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U4XU5        U R                  SSSU4X"U5        U R                  SSSU4X"U5        U R                  SSSU4X3U5        U R                  SSSU4X3U5        U R                  SSSU4XDU5        U R                  SSSU4XDU5        U R                  SSSU4XUU5        U R                  SSSU4XUU5        U R                  SSSU4XfU5        U R                  SSS U4XwU5        U R                  SSS!U	4XU	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        U R                  SSS/S0S1S1S15        U R                  SSS2S0S1S1S15        U R                  SSS3SSSS5        U R                  SSS4S&S'S'S'5        U R                  SSS5S&S'S'S'5        U R                  SSS6S&S'S'S'5        U R                  SSS7S0S1S1S15        U R                  SSS8S0S1S1S15        U R                  SSS9S0S1S1S15        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@SASBSBSB5        U R                  SSSCSDSESESE5        U R                  SSSFSGSHSHSH5        U R                  SSSIS0S1S1S15        U R                  SSSJSKSLSLSL5        U R                  SSSMS&S'S'S'5        U R                  SSSNS&S'S'S'5        U R                  [        [        SOSP5        U R                  [        [        SOSQ5        U R                  [        [        SOSR5        U R                  [        [        SOSS5        U R                  [        [        SOST5        U R                  [        [        SOSU5        U R                  [        [        SOSV5        U R                  [        [        SOSW5        U R                  [        [        SOSX5        U R                  [        [        SOSY5        U R                  [        [        SOSZ5        U R                  [        [        SOS[5        U R                  [        [        SOS\5        U R                  [        [        SOS]5        U R                  [        [        SOS^5        g )_Nr   rJ   r0   rJ   r/   r.   r6   r7   r:   r;   r>   r?   rB   rC   rF   rG   rI   rH   r4   z@bz@Bz@cz@hz@Hz@iz@Iz@lz@Lz@qz@Qz@fz@dz@?r2   r3   r1   r8   rL   rL   r9   r<   )rP   rP   r=   r@   rA   rD   rW   rW   rE   r5   z<hz>hz!hz<qz>qz!q1xrK   rM   )rN   rN   rO   rQ   )rR   rR   rS   )rT   rT   rU   )rV   rV   rY   rZ   )rX   rX   1hz=1h)rL   rJ   r    Wz^Qz=Wz=fz=dz<fz<dz>fz>dz!fz!d0x11xBB)rl   rm   r   r   r   r   r   r   r   r   r   
check_argsassertRaisesrp   r   )
r   char_szshort_szint_szlong_szlonglong_szfloat_sz	double_szvoidp_szbool_szs
             r   test_formatsExporterTest.test_formatsR  s   --.==0v||,--.mmF$5$56==0MM&//2	==1--.4dAq!44dAq!44dAq!44wj'GL4xk8xP4xk8xP4viH4viH4wj'GL4wj'GLtS;.+K	
 	tS;.+K	
 	4xk8xP4ylI)T4dAq!44xk8xP4wj'GL4tQ154tQ154z7WM4{HQ4{HQ4y&&I4y&&I4z7WM4z7WMtTK>;[	
 	tTK>;[	
 	4{HQ4	|Y9U4z7WM4tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154tQ154aA6*h;*h<*h=*h=*h=*h=*h=*h=*h=*h=*h=*h=*h=*h>*h=r   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 )NrJ   
   r8   r      rL   )rR   rN   )rT   rL      )rV   rN   rR   )r  r  rL         rR      rN   iJ  B   rT   rL     rN   )rL      *   )rL      0      i  X   rW   rL   X  )rV   rR   rM   )   rN   i   )rN      )rN      x   r  r   s    r   test_stridesExporterTest.test_strides  s    5$b"a864R;9dKc1E>4$aP9dKc1E9dKc1E>4$aP64#sA>64#sA>64#sA>r   c                     [        SSSS9nU R                  UR                  5        [        U[        5      nU R                  [        [        U[        5        [        U[        5      ng )Nr   r6   T)rr   )r   
assertTruerr   r   r   r  r   r   r   ar/   s      r   test_readonlyExporterTest.test_readonly  sN    T3.

#Q()+xMBQ()r   c                    [        SS5      nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        [        SS5      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5      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	5      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
5      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5      nU R                  UR                  S5      5        [        SSS5      nU R                  UR                  S5      5        [        SSS5      nU R                  UR                  S5      5        [        SSS5      nU R                  UR                  S5      5        g )Nr  r8   r   r   r   )r  rP   r  r  )rL   r  )rL         i  )rL   r  rT   rP   )i@  r"  rW   rL   )rL   rP   r"  i   )rN   rL   rL   )r!  rW   rP   )rP      r*  )r   r0  r   assertFalser   r2  s     r   test_is_contiguousExporterTest.test_is_contiguous  s   UD!,-,-,-Wd#,-,--.^T?;,-,--.WdG,,-,--.^T+=>,-,--.]D/:-.]D/:-.Yj1-.Yk2-.r   c                    [        SS5      n[        U[        5      nU R                  UR                  UL 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                  S L 5        U R                  UR                  5        [        U[        5      nU R                  UR                  UL 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                  S L 5        U R                  UR                  5        [        U[         5      nU R                  UR                  UL 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                  S L 5        U R                  UR                  5        [        SSS5      n[        U["        5      nU R                  UR                  UL 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                  S L 5        U R                  UR                  5        [        U[$        5      nU R                  UR                  UL 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                  S L 5        U R                  UR                  5        U R'                  [(        [        U[        5        U R'                  [(        [        U[        5        U R'                  [(        [        U[         5        U R'                  [(        [        U[*        5        U R'                  [(        [        U[,        5        U R'                  [(        [        U[.        5        U R'                  [(        [        U[0        5        g )N)r  rL   rG   )rR   r  r8   )r*  rL   )r   r   r   r0  r   rs   assertEqualri   rx   r|   r   r   r   r9  rr   r   r   r   r   r  r   r   r	   r
   r   r1  s      r   test_PyBUF_flagsExporterTest.test_PyBUF_flags  s   Wc"Q%
#D()&QZZ04(		T)*,-

d*+$Q'
#D()&QZZ04(		T)*,-

d*+$Q!
#D()&QZZ0!''*		T)*,-

d*+$WdG,Q&
#D()&QZZ0!''*AII.,-

d*+$Q
#
#4(&QZZ0!''*AII.,-

d*+$+xLA+xNC+xH=+x4FG+x4FG+x4HI+xLAr   c           
          U R                  SSSSSSSS5        U R                  SSSSSSSS	5        U R                  SSSS
SSSS5        U R                  SSSSSSSS5        U R                  SSSSSSSS5        g )NrN   )rN   rR   rP   r0   )r  rP   r_   <   rJ   )rN   rR   rN   -   rL   )r  rJ   r!  )irD  r_   ;   :   r,  r   s    r   test_negative_strides"ExporterTest.test_negative_strides  s    9c;B1E9c;B1E9c;B2F9c="b!RH9c="b!RHr   c                    [        SSS5      nU R                  UR                  S5        U R                  UR                  S5        U R	                  UR
                  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                  [        R                  " UR                  5      5        [        S5      nU R                  UR                  S	5        U R                  UR                  S	5        U R	                  UR
                  5        U R                  UR                  S5        U R                  UR                  S
5        U R                  [!        UR                  ["        5      5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        [        / SQS/ SQ5      nU R                  [!        UR                  ["        5      5        U R                  [!        UR                  ["        5      5        U R                  UR                  S5        U R                  UR                  S5        g )Nr  r8   r$  rP   rL   r  r&  r   rJ   r0   r   rW   )r   r>  rw   rx   r9  rr   r|   rs   r   ri   r   r   rl   r   r   r0  
isinstancer{   r:  s     r   test_attributesExporterTest.test_attributes&  s   ^T?;#Q'$.14(O4%4( 0 0 89TN#Q'$$'3'
199e45D)"1%^T?;
177E23
199e45.1O4r   c                    [        SSSS9n[        U[        5      nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        [        SSSS9n[        U[        5      nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        g )	N)rP   rR   r0   rW   )rs   rx   )(   rW   weirdrR   )   rR   )r   r   r   r>  rx   rs   r   )r   expimps      r   test_itemsizeExporterTest.test_itemsizeA  s    vcA6sM*q)S)g.vg:sM*q)W-g.r   c	                    US-  (       a  UOS n	US-  (       a  UOS n
[        X)U
5      nU R                  UR                  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                  U5        U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        g )NrJ   rL   )r   r>  r   r   rl   r   r   r   r   ri   rs   rx   r|   r   )r   
call_flagsr|   rs   r   lengthbufsizerx   r   
format_argstrides_argr2  ms                r   r  ExporterTest.check_argsM  s      *A~V4
!+agTU47+ 0 0 86 ABQ()&'6*X.%(G,r   r   N)r   )r   r   r   r   r   r  r-  r3  r;  r?  rG  rK  rS  r  r   r   r   r   r   r   O  s>    #]>~
?*/<;BzI56
/ UV-r   r   __main__)0r   r   HAVE_NEWBUFemsgImportErrorpygame.newbufferr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   unittestrl   ry   	functoolsr   __all__r}   AttributeErrorrm   r   	void_p_szr   r   r   r   RuntimeErrorr   r   BufferMixinr   r   TestCaser   r   mainr   r   r   <module>rk     s  , GD
d
     (    z
"U
sv++ slJJ JJZL-8$$ L-^ zMMO I  Ufoo.I}}V^^$	1!>>	v||	$		1!<<	v}}	%	2!==	v((	)Y	6!,,G)STTUs%   #C	 	AG1G1G1G9G