Ë
    èÿæi3  ã                   óˆ  — d Z ddlZddlZddlZddlZddlmZ ddlZddl	m
Z
mZmZmZ ddlmZmZmZ ddlmc mc mZ ddlmZmZmZmZ ddlZddlmZ d„ Zd	„ Zd
„ Z dZ!dZ"dZ#d„ Z$dZ%d„ Z& e&e«      Z' e&e«      Z(d„ Z) e)e«      Z* e)e«      Z+ ejX                   ejZ                  ej\                  «       ejZ                  ej\                  «      ej^                  ej^                  «      Z0 ejX                   ejZ                  ejb                  «       ejZ                  ejb                  «      ej^                  ej^                  «      Z2 ejX                  ejf                  ejf                  ej^                  ej^                  «      Z4 G d„ de«      Z5 G d„ de«      Z6e G d„ de«      «       Z7e8dk(  r ejr                  «        yy)z
Tests for @cfunc and friends.
é    N)Ú
namedtuple)ÚcfuncÚcarrayÚfarrayÚnjit)ÚtypesÚtypingÚutils)ÚTestCaseÚskip_unless_cffiÚtagÚcaptured_stderr)Únumpy_supportc                 ó   — | |z   S ©N© ©ÚaÚbs     úk/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_cfunc.pyÚadd_usecaser      s   € Øˆq‰5€Ló    c                 ó   — | |z  }|S r   r   )r   r   Úcs      r   Údiv_usecaser      s   € Ø	ˆA‰€AØ€Hr   c                 ó   — | dz  S )Né   r   )r   s    r   Úsquare_usecaser      s   € Ø�‰6€Mr   zfloat64(float64, float64)zfloat64(int64, int64)zfloat64(float64)c                 ó    — t        «        | |z   S r   )Úobjectr   s     r   Úobjmode_usecaser!   '   s   € Ü
„HØˆq‰5€Lr   é   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó^  •—  ‰	| ||f«      } ‰	|t         «      }|j                  |d<   |j                  |dd |j                  |dd |j                  j
                  |d<   |j                  j                  |d<   d}t        j                  ||«      D ]  \  }}||||f   ||z
  z  z  }Œ ||d<   y )Nr   é   é   é   é   é   )	ÚCARRAY_USECASE_OUT_LENÚndimÚshapeÚstridesÚflagsÚc_contiguousÚf_contiguousÚnpÚndindex©
Úin_ptrÚout_ptrÚmÚnÚin_ÚoutÚsÚiÚjÚfuncs
            €r   Úcfarray_usecasez-make_cfarray_usecase.<locals>.cfarray_usecase1   s³   ø€ á�6˜A˜q˜6Ó"ˆá�7Ô2Ó3ˆØ—‘ˆˆA‰Ø—9‘9ˆˆAˆaˆØ—;‘;ˆˆAˆaˆØ—‘×'Ñ'ˆˆA‰Ø—‘×'Ñ'ˆˆA‰ØˆÜ—J‘J˜q !Ö$‰DˆAˆqØ��Q˜�T‘˜a !™eÑ$Ñ$‰Að %àˆˆAŠr   r   ©r=   r>   s   ` r   Úmake_cfarray_usecaser@   /   s   ø€ ôð Ðr   c                 ó   ‡ — ˆ fd„}|S )Nc                 óœ  •—  ‰	| ||ft         j                  ¬«      } ‰	|t        t         j                  «      }|j                  |d<   |j                  |dd |j
                  |dd |j                  j                  |d<   |j                  j                  |d<   d}t        j                  ||«      D ]  \  }}||||f   ||z
  z  z  }Œ ||d<   y )N©Údtyper   r%   r&   r'   r(   r)   )
r1   Úfloat32r*   r+   r,   r-   r.   r/   r0   r2   r3   s
            €r   r>   z3make_cfarray_dtype_usecase.<locals>.cfarray_usecaseI   s¿   ø€ á�6˜A˜q˜6¬¯©Ô4ˆá�7Ô2´B·J±JÓ?ˆØ—‘ˆˆA‰Ø—9‘9ˆˆAˆaˆØ—;‘;ˆˆAˆaˆØ—‘×'Ñ'ˆˆA‰Ø—‘×'Ñ'ˆˆA‰ØˆÜ—J‘J˜q !Ö$‰DˆAˆqØ��Q˜�T‘˜a !™eÑ$Ñ$‰Að %àˆˆAŠr   r   r?   s   ` r   Úmake_cfarray_dtype_usecaserF   F   s   ø€ ôð Ðr   c                   ó:   — e Zd Zd„ Zed„ «       Zd„ Zd„ Zd„ Zd„ Z	y)Ú	TestCFuncc                 óX  —  t        t        «      t        «      }| j                  |j                  d«       | j                  |j
                  d«       | j                  |j                  t        «       |j                  }| j                  |t        «       | j                  d|«       |j                  }| j                  |t        «       |j                  }| j                  t        j                  |t        j                   «      j"                  |«       | j%                   |dd«      d«       y)z8
        Basic usage and properties of a cfunc.
        r   ç       @g      @g      @N)r   Úadd_sigr   ÚassertEqualÚ__name__Ú__qualname__ÚassertIsÚ__wrapped__Únative_nameÚassertIsInstanceÚstrÚassertInÚaddressÚintÚctypesÚcastÚc_void_pÚvalueÚassertPreciseEqual)ÚselfÚfÚsymbolÚaddrÚcts        r   Ú
test_basiczTestCFunc.test_basick   sÒ   € ð ŒE”'‹Nœ;Ó'ˆà×Ñ˜Ÿ™ ]Ô3Ø×Ñ˜Ÿ™¨Ô7Ø�‰�a—m‘m¤[Ô1à—‘ˆØ×Ñ˜f¤cÔ*Ø�‰�m VÔ,à�y‰yˆØ×Ñ˜d¤CÔ(à�X‰XˆØ×ÑœŸ™ R¬¯©Ó9×?Ñ?ÀÔFà×Ñ¡ 3¨£¨cÕ2r   c                 óÂ   — ddl m} |j                  «       \  }} t        t        «      t
        «      }|j                  |j                  «      }| j                  |d«       y )Nr   )Úcffi_usecasesg      @)	Únumba.testsrc   Úload_inline_moduler   Ú
square_sigr   Ú_numba_test_funcptrÚcffir[   )r\   rc   ÚffiÚlibr]   Úress         r   Ú	test_cffizTestCFunc.test_cffi�   sL   € å-Ø ×3Ñ3Ó5‰ˆˆSàŒE”*ÓœnÓ-ˆà×%Ñ% a§f¡fÓ-ˆØ×Ñ  TÕ*r   c                 óž   —  t        t        dt        j                  i¬«      t        «      }| j                  |j                  dd«      d«       y )Nr   )Úlocalsr"   r&   rJ   )r   Údiv_sigr   Úint64r   r[   rW   )r\   r]   s     r   Útest_localszTestCFunc.test_locals‹   s:   € ð 6ŒE”' 3¬¯©Ð"4Ô5´kÓBˆØ×Ñ §¡¨¨A£°Õ4r   c                 óæ  —  t        t        «      t        «      }t        «       5 }| j	                  |j                  dd«      d«       d d d «       | j                  j                  «       d«       t        «       5 }|j                  dd«      }| j	                  |d«       d d d «       |j                  «       }| j                  d|«       | j                  d|«       y # 1 sw Y   Œ•xY w# 1 sw Y   ŒJxY w)	Nr'   r   g      @Ú r   g        zZeroDivisionError:zException ignored)	r   ro   r   r   r[   rW   rL   ÚgetvaluerT   )r\   r]   Úerrrk   s       r   Útest_errorszTestCFunc.test_errors‘   sº   € ØŒE”'‹Nœ;Ó'ˆäÔ #Ø×#Ñ# A§H¡H¨Q°£N°CÔ8÷ à×Ñ˜Ÿ™›¨Ô,äÔ #Ø—(‘(˜1˜a“.ˆCð ×#Ñ# C¨Ô-÷	 ð
 �l‰l‹nˆØ�‰Ð*¨CÔ0Ø�‰Ð)¨3Õ/÷ Ðú÷ Ðús   ¤#CÁ9%C'ÃC$Ã'C0c                 ó²   —  t        t        «      t        «      }|j                  «       }| j	                  |j
                  |«       | j	                  d|«       y )Nzfadd double)r   rK   r   Úinspect_llvmrT   rQ   )r\   r]   Úirs      r   Útest_llvm_irzTestCFunc.test_llvm_ir¡   s>   € ØŒE”'‹Nœ;Ó'ˆØ�^‰^ÓˆØ�‰�a—m‘m RÔ(Ø�‰�m RÕ(r   c                 óT  — | j                  t        «      5   t        t        d¬«      t        «       ddd«       | j                  «       5 } t        t        «      t        «       ddd«       | j                  dt        j                  «      «       y# 1 sw Y   ŒaxY w# 1 sw Y   Œ;xY w)z7
        Object mode is currently unsupported.
        T)ÚforceobjNzUntyped global name 'object')
ÚassertRaisesÚNotImplementedErrorr   rK   r   ÚassertTypingErrorr!   rT   rS   Ú	exception)r\   Úraisess     r   Útest_object_modezTestCFunc.test_object_mode§   st   € ð ×ÑÔ2Õ3Ø)ŒE”' DÔ)¬+Ô6÷ 4à×#Ñ#Ô%¨ØŒE”'‹Nœ?Ô+÷ &à�‰Ð4´c¸&×:JÑ:JÓ6KÕL÷	 4Ð3úç%Ð%ús   –BÁ
BÂBÂB'N)
rM   Ú
__module__rN   ra   r   rl   rq   rv   rz   r‚   r   r   r   rH   rH   i   s0   „ ò3ð, ñ+ó ð+ò5ò0ò )óMr   rH   c                   óX   — 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y)Ú
TestCArrayz*
    Tests for carray() and farray().
    c                 ó  — t        j                  dd«      j                  d«      j                  t         j                  «      }t        j
                  t        t         j                  ¬«      } | ||«       ||«      g|j                  ¢­Ž  |S )Né
   é   ©r   r&   rC   )r1   ÚarangeÚreshapeÚastyperE   Úemptyr*   r,   )r\   Úpointer_factoryr=   r   r9   s        r   Úrun_carray_usecasezTestCArray.run_carray_usecase·   sc   € Ü�I‰I�b˜"Ó×%Ñ% fÓ-×4Ñ4´R·Z±ZÓ@ˆÜ�h‰hÔ-´R·Z±ZÔ@ˆÙ‰_˜QÓ¡°Ó!5Ð@¸¿¹Ó@Øˆ
r   c                 óp   — | j                  ||«      }| j                  ||«      }| j                  ||«       y r   )r�   r[   )r\   rŽ   Úpyfuncr   ÚexpectedÚgots         r   Úcheck_carray_usecasezTestCArray.check_carray_usecase½   s6   € Ø×*Ñ*¨?¸FÓCˆØ×%Ñ% o°uÓ=ˆØ×Ñ ¨#Õ.r   c                 óT   — |j                   j                  t         j                  «      S r   )rW   Údata_asrY   ©r\   Úarrs     r   Úmake_voidptrzTestCArray.make_voidptrÂ   s   € Ø�z‰z×!Ñ!¤&§/¡/Ó2Ð2r   c                 óz   — |j                   j                  t        j                  t         j                  «      «      S r   )rW   r–   ÚPOINTERÚc_floatr—   s     r   Úmake_float32_pointerzTestCArray.make_float32_pointerÅ   s$   € Ø�z‰z×!Ñ!¤&§.¡.´·±Ó"@ÓAÐAr   c                 óz   — |j                   j                  t        j                  t         j                  «      «      S r   )rW   r–   r›   Úc_doubler—   s     r   Úmake_float64_pointerzTestCArray.make_float64_pointerÈ   s$   € Ø�z‰z×!Ñ!¤&§.¡.´·±Ó"AÓBÐBr   c                 ó°  ‡ — ˆ fd„}t        j                  d«      j                  d«      j                  t         j                  «      j                  |¬«      } |‰ j                  |«      |j                  «      } |||«        |‰ j                  |«      |j                  «      } |||j                  d«      «        |‰ j                  |«      |j                  |j                  «      } |||«        |‰ j                  |«      |j                  t         j                  «      } |||«        |‰ j                  |«      |j                  |j                  «      } |||«        |‰ j                  |«      |j                  t         j                  «      } |||j                  t         j                  «      «       ‰ j                  t        «      5   |‰ j                  |«      |j                  «       d d d «       ‰ j                  t        «      5   ||j                   j"                  |j                  «       d d d «       ‰ j                  t        «      5 } |‰ j                  |«      |j                  t         j                  «       d d d «       ‰ j%                  dt'        j(                  «      «       y # 1 sw Y   ŒÃxY w# 1 sw Y   ŒŠxY w# 1 sw Y   ŒGxY w)Nc                 óž   •— ‰j                  | |«       ‰j                  | j                  j                  |j                  j                  «       y r   )r[   rL   rW   Údata)r“   r’   r\   s     €r   Úeqz*TestCArray.check_carray_farray.<locals>.eqÌ   s5   ø€ à×#Ñ# C¨Ô2à×Ñ˜SŸZ™ZŸ_™_¨h¯o©o×.BÑ.BÕCr   r(   r‰   )ÚorderÚKz%mismatching dtype 'int32' for pointer)r1   rŠ   r‹   rŒ   rE   Úcopyr�   r,   ÚsizeÚravelrD   r™   Úint32Úviewr}   Ú	TypeErrorrW   r£   rT   rS   r€   )r\   r=   r¥   r¤   Úbaser   r�   s   `      r   Úcheck_carray_farrayzTestCArray.check_carray_farrayË   s  ø€ ô	Dô �y‰y˜‹|×#Ñ# FÓ+×2Ñ2´2·:±:Ó>×CÑCÈ%ÐCÓPˆñ �×*Ñ*¨4Ó0°$·*±*Ó=ˆÙ
ˆ1ˆdŒá�×*Ñ*¨4Ó0°$·)±)Ó<ˆÙ
ˆ1ˆd�j‰j˜‹oÔñ �×*Ñ*¨4Ó0°$·*±*¸d¿j¹jÓIˆÙ
ˆ1ˆdŒÙ�×*Ñ*¨4Ó0°$·*±*¼b¿j¹jÓIˆÙ
ˆ1ˆdŒñ �×"Ñ" 4Ó(¨$¯*©*°d·j±jÓAˆÙ
ˆ1ˆdŒÙ�×"Ñ" 4Ó(¨$¯*©*´b·h±hÓ?ˆÙ
ˆ1ˆd�i‰iœŸ™Ó!Ô"ð ×ÑœyÕ)Ù�×"Ñ" 4Ó(¨$¯*©*Ô5÷ *ð ×ÑœyÕ)Ù�—‘×!Ñ! 4§:¡:Ô.÷ *ð ×ÑœyÔ)¨VÙ�×*Ñ*¨4Ó0°$·*±*¼b¿h¹hÔG÷ *à�‰Ð=Ü˜&×*Ñ*Ó+õ	-÷ *Ð)ú÷ *Ð)ú÷ *Ð)ús$   Ç#J4È(K É2KÊ4J=Ë K	ËKc                 ó0   — | j                  t        d«       y)z,
        Test pure Python carray().
        ÚCN)r®   r   ©r\   s    r   Útest_carrayzTestCArray.test_carrayó   ó   € ð 	× Ñ ¤¨Õ-r   c                 ó0   — | j                  t        d«       y)z,
        Test pure Python farray().
        ÚFN)r®   r   r±   s    r   Útest_farrayzTestCArray.test_farrayù   r³   r   c              #   ó.  ‡K  — t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  fD ]1  Št        ˆfd„|j                  D «       «      } |j                  |Ž –— Œ3 y­w)zŠ
        Generate a bunch of concrete signatures by varying the width
        and signedness of size arguments (see issue #1923).
        c              3   óL   •K  — | ]  }|t         j                  k(  r‰n|–— Œ y ­wr   )r   Úintp)Ú.0r   Úactual_sizes     €r   Ú	<genexpr>z.TestCArray.make_carray_sigs.<locals>.<genexpr>  s(   øè ø€ ð 3Ù"1˜Qð )*¬U¯Z©Zª™¸QÓ>Ù"1ùs   ƒ!$N)
r   r¹   rª   ÚintcÚuintpÚuint32ÚuintcÚtupleÚargsÚreturn_type)r\   Ú
formal_sigrÂ   r»   s      @r   Úmake_carray_sigszTestCArray.make_carray_sigsÿ   sk   øè ø€ ô
 "ŸJ™J¬¯©´U·Z±ZÜ!ŸK™K¬¯©´u·{±{óDˆKäó 3Ø",§/¢/ó3ó 3ˆDà(�*×(Ñ(¨$Ð/Ó/ñ	Dùs   ƒBBc                 óº  — |}| j                  t        «      D ]:  } t        |«      |«      }| j                  | j                  ||j
                  «       Œ< |}| j                  t        «      D ]:  } t        |«      |«      }| j                  | j                  ||j
                  «       Œ< | j                  «       5 } t        t        «      |«      }d d d «       | j                  dt        j                  «      «       |}| j                  t        «      D ]:  } t        |«      |«      }| j                  | j                  ||j
                  «       Œ< y # 1 sw Y   ŒƒxY w)Nz7mismatching dtype 'float32' for pointer type 'float64*')rÅ   Úcarray_float32_usecase_sigr   r”   r�   rW   r   Úcarray_float64_usecase_sigrT   rS   r€   Úcarray_voidptr_usecase_sig)r\   ÚusecaseÚdtype_usecaser‘   Úsigr]   r�   s          r   Úcheck_numba_carray_farrayz$TestCArray.check_numba_carray_farray
  s+  € àˆØ×(Ñ(Ô)CÖDˆCØ”�c“
˜6Ó"ˆAØ×%Ñ% d×&?Ñ&?ÀÈÏÉÕRð Eð
 ˆØ×(Ñ(Ô)CÖDˆCØ”�c“
˜6Ó"ˆAØ×%Ñ% d×&?Ñ&?ÀÈÏÉÕRð Eð ×#Ñ#Ô%¨Ø1”Ô0Ó1°&Ó9ˆA÷ &à�‰ÐOÜ˜&×*Ñ*Ó+ô	-ð ˆØ×(Ñ(Ô)CÖDˆCØ”�c“
˜6Ó"ˆAØ×%Ñ% d×&?Ñ&?ÀÈÏÉÕRñ E÷ &Ð%ús   Â9EÅEc                 ó8   — | j                  t        t        «       y)zK
        Test Numba-compiled carray() against pure Python carray()
        N)rÍ   Úcarray_usecaseÚcarray_dtype_usecaser±   s    r   Útest_numba_carrayzTestCArray.test_numba_carray"  ó   € ð 	×&Ñ&¤~Ô7KÕLr   c                 ó8   — | j                  t        t        «       y)zK
        Test Numba-compiled farray() against pure Python farray()
        N)rÍ   Úfarray_usecaseÚfarray_dtype_usecaser±   s    r   Útest_numba_farrayzTestCArray.test_numba_farray(  rÒ   r   N)rM   rƒ   rN   Ú__doc__r�   r”   r™   r�   r    r®   r²   r¶   rÅ   rÍ   rÑ   rÖ   r   r   r   r…   r…   ²   sI   „ ñòò/ò
3òBòCò&-òP.ò.ò	0òSò0MóMr   r…   c                   ó,   — e Zd ZdZefd„Zd„ Zd„ Zd„ Zy)ÚTestCffiStructzÎ
typedef struct _big_struct {
    int    i1;
    float  f2;
    double d3;
    float  af4[9];
} big_struct;

typedef struct _error {
    int bits:4;
} error;

typedef double (*myfunc)(big_struct*, size_t);
c                 óB   — ddl m}  |«       }|j                  |«       |S )Nr   )ÚFFI)rh   rÛ   Úcdef)r\   ÚsrcrÛ   ri   s       r   Úget_ffizTestCffiStruct.get_ffi@  s   € Ýá‹eˆØ�‰�ŒØˆ
r   c                 ó.  — | j                  «       }|j                  d«      }t        j                  |d¬«      }| j	                  |t
        j                  «       | j                  t        |«      d«       | j                  |j                  d«      t
        j                  «       | j                  |j                  d«      t
        j                  «       | j                  |j                  d«      t
        j                  «       | j                  |j                  d«      t        j                  t
        j                  d	¬
«      «       |j                  d«      }t        j                  |d¬«      }| j	                  |t        j                  «       | j                  |j                  d   t        j                   |«      «       | j                  |j                  d   t
        j"                  «       | j                  |j$                  t
        j                  «       y )NÚ
big_structT©Úuse_record_dtypeé   Úi1Úf2Úd3Úaf4)é	   )rD   r,   Úmyfuncr   r%   )rÞ   ÚtypeofÚcffi_supportÚmap_typerR   r   ÚRecordrL   Úlenrª   rE   Úfloat64ÚNestedArrayr	   Ú	SignaturerÂ   ÚCPointerr¾   rÃ   )r\   ri   rà   Únbtyperé   rÌ   s         r   Útest_type_parsingz TestCffiStruct.test_type_parsingG  sg  € Ø�l‰l‹nˆà—Z‘Z Ó-ˆ
Ü×&Ñ& zÀDÔIˆØ×Ñ˜f¤e§l¡lÔ3Ø×Ñœ˜V› aÔ(Ø×Ñ˜Ÿ™ tÓ,¬e¯k©kÔ:Ø×Ñ˜Ÿ™ tÓ,¬e¯m©mÔ<Ø×Ñ˜Ÿ™ tÓ,¬e¯m©mÔ<Ø×ÑØ�M‰M˜%Ó Ü×Ñ¤E§M¡M¸Ô>ô	
ð —‘˜HÓ%ˆÜ×#Ñ# F¸TÔBˆØ×Ñ˜c¤6×#3Ñ#3Ô4Ø×Ñ˜Ÿ™ !™¤e§n¡n°VÓ&<Ô=Ø×Ñ˜Ÿ™ !™¤e§k¡kÔ2Ø×Ñ˜Ÿ™¬%¯-©-Õ8r   c                 ó  ‡— | j                  «       }|j                  d«      }t        j                  |d¬«      }t        j                  |j                  d«      d¬«      }t        d„ «       Št        |«      ˆfd„«       }|j                  d«      }|j                  d|«      }t        d	«      D ]T  }|d
z  ||   _	        |dz  ||   _
        d|z   dz  ||   _        t        d«      D ]  }	|dz  |	z   ||   j                  |	<   Œ ŒV t        |j                  d|«      «      }
|j                  |
d	«      }t        j                   |j#                  |«      t%        j&                  |«      d	¬«      } ‰|«      }| j)                  ||«       y )Nrà   Trá   ré   c                 óÚ   — d}t        | j                  «      D ]P  }| |   }||j                  |j                  z  |j                  z  z  }|| |   j
                  j                  «       z  }ŒR |S )Nr   )Úranger¨   rä   rå   ræ   rç   Úsum)r­   Útmpr;   Úelems       r   Úcalcz0TestCffiStruct.test_cfunc_callback.<locals>.calcd  sc   € àˆCÜ˜4Ÿ9™9Ö%�Ø˜A‘w�Ø�t—w‘w §¡Ñ(¨4¯7©7Ñ2Ñ2�Ø�t˜A‘w—{‘{—‘Ó(Ñ(‘ð &ð ˆJr   c                 ó,   •— t        | |«      } ‰|«      S r   )r   )Úptrr7   r­   rû   s      €r   Úfooz/TestCffiStruct.test_cfunc_callback.<locals>.foom  s   ø€ ä˜#˜q“>ˆDÙ˜“:Ðr   zbig_struct[3]zbig_struct*r&   é{   éÕ   r%   rè   r‡   Úsize_t)ÚbufferrD   r,   )rÞ   rê   rë   rì   r   r   ÚnewrX   r÷   rä   rå   ræ   rç   rV   rW   r1   Úndarrayr  r   Úas_dtyperL   )r\   ri   rà   Únb_big_structrÌ   rþ   Úmydatarý   r;   r<   r_   r“   ÚarrayÚexpectrû   s                 @r   Útest_cfunc_callbackz"TestCffiStruct.test_cfunc_callback^  sh  ø€ Ø�l‰l‹nˆØ—Z‘Z Ó-ˆ
Ü$×-Ñ-¨jÈ4ÔPˆÜ×#Ñ# C§J¡J¨xÓ$8È4ÔPˆä	ñ	ó 
ð	ô 
ˆs‹ó	ó 
ð	ð
 —‘˜Ó)ˆØ�h‰h�} fÓ-ˆÜ�q–ˆAØ˜C™ˆC�‰FŒIØ˜C™ˆC�‰FŒIØ˜Q™ #™ˆC�‰FŒIÜ˜1–X�Ø ! B¡¨¡
��A‘—
‘
˜1’ñ ð	 ô �3—8‘8˜H cÓ*Ó+ˆØ�j‰j˜˜qÓ!ˆô —
‘
Ø—:‘:˜fÓ%Ü×(Ñ(¨Ó7Øôˆñ
 �e“ˆØ×Ñ˜˜fÕ%r   c                 ó  — | j                  «       }| j                  t        «      5 }t        j                  |j                  d«      d¬«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NÚerrorTrá   z0field 'bits' has bitshift, this is not supported)	rÞ   r}   Ú
ValueErrorrë   rì   rê   rL   rS   r€   )r\   ri   r�   s      r   Útest_unsupport_bitsizez%TestCffiStruct.test_unsupport_bitsize‰  si   € Ø�l‰l‹nˆØ×ÑœzÔ*¨fÜ×!Ñ!Ø—
‘
˜7Ó#Ø!%õ÷ +ð 	×ÑØ>Ü�× Ñ Ó!õ	
÷ +Ð*ús   ¦'A;Á;BN)rM   rƒ   rN   Úc_sourcerÞ   rô   r
  r  r   r   r   rÙ   rÙ   /  s#   „ ð€Hð #ó ò9ò.)&óV
r   rÙ   Ú__main__):r×   rW   ÚosÚ
subprocessÚsysÚcollectionsr   Únumpyr1   Únumbar   r   r   r   Ú
numba.corer   r	   r
   Únumba.core.typing.cffi_utilsÚcoreÚ
cffi_utilsrë   Únumba.tests.supportr   r   r   r   ÚunittestÚnumba.npr   r   r   r   rK   ro   rf   r!   r*   r@   rÏ   rÔ   rF   rÐ   rÕ   Úvoidrò   rE   r¹   rÇ   rï   rÈ   ÚvoidptrrÉ   rH   r…   rÙ   rM   Úmainr   r   r   Ú<module>r!     s³  ðñó
 Û 	Û Û 
Ý "ã ç -Ó -ß +Ñ +ß 3Ó 3÷2ó 2ã Ý "òòòð &€à
!€à€
òð Ð òñ& & fÓ-€Ù% fÓ-€òñ( 2°&Ó9Ð Ù1°&Ó9Ð à'˜UŸZ™Z¨¨¯©°u·}±}Ó(EØ(6¨¯©°u·}±}Ó(EØ(-¯
©
°E·J±Jó@Ð ð (˜UŸZ™Z¨¨¯©°u·}±}Ó(EØ(6¨¯©°u·}±}Ó(EØ(-¯
©
°E·J±Jó@Ð ð (˜UŸZ™Z¨¯©°u·}±}Ø(-¯
©
°E·J±Jó@Ð ôFM�ô FMôRzM�ô zMðz ôd
�Xó d
ó ðd
ðN ˆzÒØ€H‡M�M…Oð r   