§
    ƒÛg"-  ã                   óò  — d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZmZmZmZmZ d dlmZ d dlmZ d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z* G d„ dee¦  «        Z+ G d „ d!eej        ¦  «        Z, G d"„ d#eej        ¦  «        Z- G d$„ d%ee¦  «        Z. G d&„ d'ee¦  «        Z/ G d(„ d)ee¦  «        Z0e1d*k    r ej2        ¦   «          dS dS )+é    N)Úcompile_isolated)Ú
from_dtype)ÚnjitÚtypeof)Útypes)ÚTestCaseÚCompilationCacheÚMemoryLeakMixinÚtagÚskip_parfors_unsupported)ÚTypingError)Újitclassc                 ó   — | j         S ©N©Údtype©Úas    úQ/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_array_attr.pyÚarray_dtyper      s	   € ØŒ7€Nó    c                 ó6   — |                       |j        ¦  «        S r   )Úviewr   )r   Úbs     r   Ú	use_dtyper      s   € Ø�6Š6�!”'‰?Œ?Ðr   c                 ó   — | j         S r   )Úitemsizer   s    r   Úarray_itemsizer      s
   € ØŒ:Ðr   c                 ó   — | j         S r   )Únbytesr   s    r   Úarray_nbytesr!      s	   € ØŒ8€Or   c                 ó   — | j         |         S r   )Úshape©r   Úis     r   Úarray_shaper&      s   € ØŒ7�1Œ:Ðr   c                 ó   — | j         |         S r   )Ústridesr$   s     r   Úarray_stridesr)   "   s   € ØŒ9�QŒ<Ðr   c                 ó   — | j         S r   )Úndimr   s    r   Ú
array_ndimr,   &   ó	   € ØŒ6€Mr   c                 ó   — | j         S r   ©Úsizer   s    r   Ú
array_sizer1   *   r-   r   c                 ó   — | j         j        S r   )ÚflagsÚ
contiguousr   s    r   Úarray_flags_contiguousr5   .   s   € ØŒ7ÔÐr   c                 ó   — | j         j        S r   )r3   Úc_contiguousr   s    r   Úarray_flags_c_contiguousr8   1   ó   € ØŒ7ÔÐr   c                 ó   — | j         j        S r   )r3   Úf_contiguousr   s    r   Úarray_flags_f_contiguousr<   4   r9   r   c                 ó   — | j         j        S r   )Úfr   r   s    r   Únested_array_itemsizer?   8   s   € ØŒ3Œ<Ðr   c                 ó   — | j         j        S r   )r>   r    r   s    r   Únested_array_nbytesrA   ;   s   € ØŒ3Œ:Ðr   c                 ó   — | j         j        S r   )r>   r#   r   s    r   Únested_array_shaperC   >   s   € ØŒ3Œ9Ðr   c                 ó   — | j         j        S r   )r>   r(   r   s    r   Únested_array_stridesrE   B   s   € ØŒ3Œ;Ðr   c                 ó   — | j         j        S r   )r>   r+   r   s    r   Únested_array_ndimrG   F   ó   € ØŒ3Œ8€Or   c                 ó   — | j         j        S r   )r>   r0   r   s    r   Únested_array_sizerJ   J   rH   r   c                 ó    — | |         }|j         S r   r/   )Úbufr%   Úsliceds      r   Úsize_after_slicing_usecaserN   N   s   € Ø�ŒV€FàŒ;Ðr   c                 ó   — | j         j        S r   )ÚctypesÚdata©Úarrs    r   Úarray_ctypes_datarT   T   s   € ØŒ:Œ?Ðr   c                 ó   — | j         S r   )ÚrealrR   s    r   Ú
array_realrW   X   ó	   € ØŒ8€Or   c                 ó   — | j         S r   )ÚimagrR   s    r   Ú
array_imagr[   \   rX   r   c                   ór   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚTestArrayAttrc                 óî   •— t          t          | ¦  «                             ¦   «          t          ¦   «         | _        t          j        dt
          j        ¬¦  «                             dd¦  «        | _	        d S )Né   r   é   é   )
Úsuperr]   ÚsetUpr	   ÚccacheÚnpÚarangeÚint32Úreshaper   )ÚselfÚ	__class__s    €r   rc   zTestArrayAttr.setUpb   sX   ø€ Ý�m˜TÑ"Ô"×(Ò(Ñ*Ô*Ð*Ý&Ñ(Ô(ˆŒÝ”˜2¥R¤XÐ.Ñ.Ô.×6Ò6°q¸!Ñ<Ô<ˆŒˆˆr   c                 ó:  — t          |¦  «        }|                      ||f¦  «        } ||¦  «        }|                       ||¦  «        |¦  «         |                      ||                     d¬¦  «        f¦  «        }|                       ||¦  «        |¦  «         d S )NÚA)Úlayout)r   Ú	get_cfuncÚassertPreciseEqualÚcopy)ri   ÚpyfuncrS   ÚarytyÚcfuncÚexpecteds         r   Úcheck_unaryzTestArrayAttr.check_unaryg   s•   € Ý�s‘”ˆØ—’˜v¨ xÑ0Ô0ˆØ�6˜#‘;”;ˆØ×Ò   c¡
¤
¨HÑ5Ô5Ð5à—’˜v¨¯
ª
¸#¨
Ñ(>Ô(>Ð'@ÑAÔAˆØ×Ò   c¡
¤
¨HÑ5Ô5Ð5Ð5Ð5r   c                 óæ  — |                       || j        ¦  «         |                       || j        j        ¦  «         |                       || j        d d d…         ¦  «         t          j        dg¦  «                             d¦  «        }|                       ||¦  «         t          j        d¦  «        }|                       ||¦  «         |                       ||                     d¦  «        ¦  «         d S )Né   é*   © r   )é   r   rw   )ru   r   ÚTre   Úarrayrh   Úzeros)ri   rq   rS   s      r   Úcheck_unary_with_arraysz%TestArrayAttr.check_unary_with_arraysp   sÖ   € Ø×Ò˜ ¤Ñ(Ô(Ð(Ø×Ò˜ ¤¤Ñ*Ô*Ð*Ø×Ò˜ ¤¨¨¨!¨¤Ñ-Ô-Ð-åŒh˜�t‰nŒn×$Ò$ RÑ(Ô(ˆØ×Ò˜ Ñ%Ô%Ð%åŒh�q‰kŒkˆØ×Ò˜ Ñ%Ô%Ð%ð 	×Ò˜ §¢¨YÑ!7Ô!7Ñ8Ô8Ð8Ð8Ð8r   c                 óF   — | j                              ||¦  «        }|j        S r   )rd   ÚcompileÚentry_point)ri   rq   ÚargspecÚcress       r   rn   zTestArrayAttr.get_cfunc~   s"   € ØŒ{×"Ò" 6¨7Ñ3Ô3ˆØÔÐr   c                 ó$  — t           }|                      |t          j        d d …d d …f         t          j        f¦  «        }t	          | j        j        ¦  «        D ]6}|                       || j        |¦  «         || j        |¦  «        ¦  «         Œ7d S r   )r&   rn   r   rg   Úranger   r+   ÚassertEqual©ri   rq   rs   r%   s       r   Ú
test_shapezTestArrayAttr.test_shape‚   s’   € ÝˆØ—’˜v­¬°A°A°A°a°a°a°CÔ(8½%¼+Ð'FÑGÔGˆå�t”v”{Ñ#Ô#ð 	Bð 	BˆAØ×Ò˜V˜V D¤F¨AÑ.Ô.°°°d´f¸aÑ0@Ô0@ÑAÔAÐAÐAð	Bð 	Br   c                 ó$  — t           }|                      |t          j        d d …d d …f         t          j        f¦  «        }t	          | j        j        ¦  «        D ]6}|                       || j        |¦  «         || j        |¦  «        ¦  «         Œ7d S r   )r)   rn   r   rg   r…   r   r+   r†   r‡   s       r   Útest_strideszTestArrayAttr.test_strides‰   s’   € ÝˆØ—’˜v­¬°A°A°A°a°a°a°CÔ(8½%¼+Ð'FÑGÔGˆå�t”v”{Ñ#Ô#ð 	Bð 	BˆAØ×Ò˜V˜V D¤F¨AÑ.Ô.°°°d´f¸aÑ0@Ô0@ÑAÔAÐAÐAð	Bð 	Br   c                 ó:   — |                       t          ¦  «         d S r   )r~   r,   ©ri   s    r   Ú	test_ndimzTestArrayAttr.test_ndim�   ó   € Ø×$Ò$¥ZÑ0Ô0Ð0Ð0Ð0r   c                 ó:   — |                       t          ¦  «         d S r   )r~   r1   rŒ   s    r   Ú	test_sizezTestArrayAttr.test_size“   rŽ   r   c                 ó:   — |                       t          ¦  «         d S r   )r~   r   rŒ   s    r   Útest_itemsizezTestArrayAttr.test_itemsize–   s   € Ø×$Ò$¥^Ñ4Ô4Ð4Ð4Ð4r   c                 ó:   — |                       t          ¦  «         d S r   )r~   r!   rŒ   s    r   Útest_nbyteszTestArrayAttr.test_nbytes™   s   € Ø×$Ò$¥\Ñ2Ô2Ð2Ð2Ð2r   c                 óþ   — t           }|                      || j        ¦  «         t          j        dt          j        fdt          j        fg¦  «        }t          j        d|¬¦  «        }|                      ||¦  «         d S )NÚxÚyr`   r   )r   ru   r   re   r   Úint8r}   )ri   rq   r   rS   s       r   Ú
test_dtypezTestArrayAttr.test_dtypeœ   so   € ÝˆØ×Ò˜ ¤Ñ(Ô(Ð(Ý”˜3¥¤˜.¨3µ´¨.Ð9Ñ:Ô:ˆÝŒh�q Ð&Ñ&Ô&ˆØ×Ò˜ Ñ%Ô%Ð%Ð%Ð%r   c                 ó.  — t          j        dt           j        ¬¦  «        }t          }|                      |t          | j        ¦  «        t          |¦  «        f¦  «        } || j        |¦  «        }|                       || j        |¦  «        |¦  «         d S )Nrz   r   )re   ÚemptyÚint16r   rn   r   r   ro   )ri   r   rq   rs   rt   s        r   Útest_use_dtypezTestArrayAttr.test_use_dtype£   s€   € åŒH�Q�bœhÐ'Ñ'Ô'ˆÝˆØ—’˜v­¨t¬v©¬½¸q¹	¼	Ð'BÑCÔCˆØ�6˜$œ& !Ñ$Ô$ˆØ×Ò   d¤f¨aÑ 0Ô 0°(Ñ;Ô;Ð;Ð;Ð;r   c                 ó:   — |                       t          ¦  «         d S r   )r~   r5   rŒ   s    r   Útest_flags_contiguousz#TestArrayAttr.test_flags_contiguous«   s   € Ø×$Ò$Õ%;Ñ<Ô<Ð<Ð<Ð<r   c                 ó:   — |                       t          ¦  «         d S r   )r~   r8   rŒ   s    r   Útest_flags_c_contiguousz%TestArrayAttr.test_flags_c_contiguous®   ó   € Ø×$Ò$Õ%=Ñ>Ô>Ð>Ð>Ð>r   c                 ó:   — |                       t          ¦  «         d S r   )r~   r<   rŒ   s    r   Útest_flags_f_contiguousz%TestArrayAttr.test_flags_f_contiguous±   r¢   r   )Ú__name__Ú
__module__Ú__qualname__rc   ru   r~   rn   rˆ   rŠ   r�   r�   r’   r”   r™   r�   rŸ   r¡   r¤   Ú__classcell__©rj   s   @r   r]   r]   `   s  ø€ € € € € ð=ð =ð =ð =ð =ð
6ð 6ð 6ð9ð 9ð 9ð ð  ð  ðBð Bð BðBð Bð Bð1ð 1ð 1ð1ð 1ð 1ð5ð 5ð 5ð3ð 3ð 3ð&ð &ð &ð<ð <ð <ð=ð =ð =ð?ð ?ð ?ð?ð ?ð ?ð ?ð ?ð ?ð ?r   r]   c                   óH   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )	ÚTestNestedArrayAttrc                 ó0  •— t          t          | ¦  «                             ¦   «          t          j        dt          j        fdt          j        dfg¦  «        }t          j        d|¦  «        d         | _        t          | j        j        ¦  «        | _	        d S )Nr   r>   )rw   ra   rz   r   )
rb   r«   rc   re   r   rg   Úrecarrayr   r   Únbrecord)ri   r   rj   s     €r   rc   zTestNestedArrayAttr.setUp¶   sr   ø€ ÝÕ! 4Ñ(Ô(×.Ò.Ñ0Ô0Ð0Ý”˜3¥¤˜/¨Cµ´¸6Ð+BÐCÑDÔDˆÝ”˜Q Ñ&Ô& qÔ)ˆŒÝ" 4¤6¤<Ñ0Ô0ˆŒˆˆr   c                 ó<   — t          || j        f¦  «        }|j        S r   )r   r®   r�   )ri   rq   rƒ   s      r   rn   zTestNestedArrayAttr.get_cfunc¼   s   € Ý ¨¬Ð(8Ñ9Ô9ˆØÔÐr   c                 ó¢   — t           }|                      |¦  «        }|                       || j        ¦  «         || j        ¦  «        ¦  «         d S r   )rC   rn   r†   r   ©ri   rq   rs   s      r   rˆ   zTestNestedArrayAttr.test_shapeÀ   sH   € Ý#ˆØ—’˜vÑ&Ô&ˆà×Ò˜˜ ¤™œ¨¨¨t¬v©¬Ñ7Ô7Ð7Ð7Ð7r   c                 ó¢   — t           }|                      |¦  «        }|                       || j        ¦  «         || j        ¦  «        ¦  «         d S r   )rE   rn   r†   r   r±   s      r   rŠ   z TestNestedArrayAttr.test_stridesÆ   sH   € Ý%ˆØ—’˜vÑ&Ô&ˆà×Ò˜˜ ¤™œ¨¨¨t¬v©¬Ñ7Ô7Ð7Ð7Ð7r   c                 ó¢   — t           }|                      |¦  «        }|                       || j        ¦  «         || j        ¦  «        ¦  «         d S r   )rG   rn   r†   r   r±   s      r   r�   zTestNestedArrayAttr.test_ndimÌ   óH   € Ý"ˆØ—’˜vÑ&Ô&ˆà×Ò˜˜ ¤™œ¨¨¨t¬v©¬Ñ7Ô7Ð7Ð7Ð7r   c                 ó¢   — t           }|                      |¦  «        }|                       || j        ¦  «         || j        ¦  «        ¦  «         d S r   )rA   rn   r†   r   r±   s      r   r”   zTestNestedArrayAttr.test_nbytesÒ   sH   € Ý$ˆØ—’˜vÑ&Ô&ˆà×Ò˜˜ ¤™œ¨¨¨t¬v©¬Ñ7Ô7Ð7Ð7Ð7r   c                 ó¢   — t           }|                      |¦  «        }|                       || j        ¦  «         || j        ¦  «        ¦  «         d S r   )rJ   rn   r†   r   r±   s      r   r�   zTestNestedArrayAttr.test_sizeØ   r´   r   c                 ó¢   — t           }|                      |¦  «        }|                       || j        ¦  «         || j        ¦  «        ¦  «         d S r   )r?   rn   r†   r   r±   s      r   r’   z!TestNestedArrayAttr.test_itemsizeÞ   sH   € Ý&ˆØ—’˜vÑ&Ô&ˆà×Ò˜˜ ¤™œ¨¨¨t¬v©¬Ñ7Ô7Ð7Ð7Ð7r   )r¥   r¦   r§   rc   rn   rˆ   rŠ   r�   r”   r�   r’   r¨   r©   s   @r   r«   r«   µ   s¡   ø€ € € € € ð1ð 1ð 1ð 1ð 1ð ð  ð  ð8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð 8ð 8ð 8ð 8r   r«   c                   ó   — e Zd Zd„ ZdS )ÚTestSlicedArrayAttrc                 óð  — t           }t          |¦  «        }t          j        d¦  «                             dd¦  «        }t          |j        d         ¦  «        D ],}|                       |||¦  «         |||¦  «        ¦  «         Œ-t          j        d¦  «                             ddd¦  «        }t          |j        d         ¦  «        D ],}|                       |||¦  «         |||¦  «        ¦  «         Œ-d S )Né
   rw   ra   r   é   é   )rN   r   re   rf   rh   r…   r#   r†   )ri   rq   rs   rS   r%   s        r   Útest_size_after_slicingz+TestSlicedArrayAttr.test_size_after_slicingæ   sð   € Ý+ˆÝ�V‘”ˆÝŒi˜ÑÔ×&Ò& q¨!Ñ,Ô,ˆÝ�s”y ”|Ñ$Ô$ð 	<ð 	<ˆAØ×Ò˜V˜V C¨™^œ^¨U¨U°3¸©]¬]Ñ;Ô;Ð;Ð;ÝŒi˜	Ñ"Ô"×*Ò*¨1¨a°Ñ3Ô3ˆÝ�s”y ”|Ñ$Ô$ð 	<ð 	<ˆAØ×Ò˜V˜V C¨™^œ^¨U¨U°3¸©]¬]Ñ;Ô;Ð;Ð;ð	<ð 	<r   N)r¥   r¦   r§   r¾   ry   r   r   r¹   r¹   å   s#   € € € € € ð<ð <ð <ð <ð <r   r¹   c                   ó.   — e Zd ZdZd„ Zed„ ¦   «         ZdS )ÚTestArrayCTypesFc                 óª   — t           }t          |¦  «        }t          j        d¦  «        }|                       ||¦  «         ||¦  «        ¦  «         d S )Nr½   )rT   r   re   rf   r†   )ri   rq   rs   rS   s       r   Útest_array_ctypes_dataz&TestArrayCTypes.test_array_ctypes_dataõ   sK   € Ý"ˆÝ�V‘”ˆÝŒi˜‰lŒlˆØ×Ò˜˜ ™œ e e¨C¡j¤jÑ1Ô1Ð1Ð1Ð1r   c                 ó:  ‡	‡
— ddl m}m}m}mŠ	m}  |||||¦  «        ˆ	fd„¦   «         Š
t          d¬¦  «        ˆ
fd„¦   «         }d} ||¦  «        \  }}|                      |¦  «         |                      |t          j
        |¦  «        |z   d         ¦  «         d S )Nr   )Ú	CFUNCTYPEÚc_void_pÚc_int32Úc_doubleÚc_boolc                 óT  •— 	 ‰|z                        | ¦  «        }‰dz                        |¦  «        }t          j        ||t          j        ¬¦  «        }t          j        d|t          j        ¬¦  «        }||j        z   d         |d<   dS #  dd l}|                     ¦   «          Y dS xY w)Nrz   )Úbufferr   r   TF)Úfrom_addressre   ÚndarrayÚfloat64r0   Ú	tracebackÚprint_exception)	Úinptrr0   ÚoutptrÚinbufÚoutbufr   r   rÎ   rÇ   s	           €r   ÚcallbackzITestArrayCTypes.test_array_ctypes_ref_error_in_parallel.<locals>.callback   s¬   ø€ ð
Ø! D™×6Ò6°uÑ=Ô=�Ø" Q™,×4Ò4°VÑ<Ô<�Ý”J˜t¨E½¼ÐDÑDÔD�Ý”J˜q¨µr´zÐBÑBÔB�Ø˜AœF™
 A”��!‘Ø�tøðØ Ð Ð Ð Ø×)Ò)Ñ+Ô+Ð+Ø�u�uøøøs   ƒBB
 Â
B'T)Úparallelc                 ó²   •— t          j        | ¦  «        }t          j        d¦  «        }|j        }|j        } ‰|j        | |j        ¦  «        }||d         fS )Nrz   r   )re   Úonesr›   rP   rQ   )r0   rS   ÚoutÚinctÚoutctÚstatusrÔ   s         €r   ÚfoozDTestArrayCTypes.test_array_ctypes_ref_error_in_parallel.<locals>.foo  sP   ø€ å”'˜$‘-”-ˆCÝ”(˜1‘+”+ˆCà”:ˆDØ”JˆEà�X˜dœi¨¨u¬zÑ:Ô:ˆFØ˜3˜qœ6�>Ð!r   r½   )rP   rÄ   rÅ   rÆ   rÇ   rÈ   r   Ú
assertTruero   re   r×   )ri   rÄ   rÅ   rÆ   rÈ   rÜ   r0   rÛ   ÚgotrÇ   rÔ   s            @@r   Ú'test_array_ctypes_ref_error_in_parallelz7TestArrayCTypes.test_array_ctypes_ref_error_in_parallelû   sî   øø€ ð 	JÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIà	ˆ�6˜8 W¨hÑ	7Ô	7ð	ð 	ð 	ð 	ñ 
8Ô	7ð	õ  
�tÐ	Ñ	Ô	ð	"ð 	"ð 	"ð 	"ñ 
Ô	ð	"ð ˆØ�c˜$‘i”i‰ˆ�Ø�Š˜ÑÔÐØ×Ò ¥b¤g¨d¡m¤m°dÑ&:¸AÔ%>Ñ?Ô?Ð?Ð?Ð?r   N)r¥   r¦   r§   Ú_numba_parallel_test_rÂ   r   rß   ry   r   r   rÀ   rÀ   ñ   sJ   € € € € € à!Ðð2ð 2ð 2ð ð#@ð #@ñ Ôð#@ð #@ð #@r   rÀ   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestRealImagAttrc                 óL  — t          |¦  «        }d}t          j        |¦  «        t          j        |¦  «        dz  z   }|                       ||¦  «         ||¦  «        ¦  «         |                     dd¦  «        }|                       ||¦  «         ||¦  «        ¦  «         d S )Nr»   y              $@rw   ra   )r   re   rf   ro   rh   )ri   rq   rs   r0   rS   s        r   Úcheck_complexzTestRealImagAttr.check_complex#  s–   € Ý�V‘”ˆàˆÝŒi˜‰oŒo¥¤	¨$¡¤°#Ñ 5Ñ5ˆØ×Ò   s¡¤¨U¨U°3©Z¬ZÑ8Ô8Ð8à�kŠk˜!˜QÑÔˆØ×Ò   s¡¤¨U¨U°3©Z¬ZÑ8Ô8Ð8Ð8Ð8r   c                 ó:   — |                       t          ¦  «         d S r   )rä   rW   rŒ   s    r   Útest_complex_realz"TestRealImagAttr.test_complex_real-  ó   € Ø×Ò�:Ñ&Ô&Ð&Ð&Ð&r   c                 ó:   — |                       t          ¦  «         d S r   )rä   r[   rŒ   s    r   Útest_complex_imagz"TestRealImagAttr.test_complex_imag0  rç   r   c                 ób  — t           }t          |¦  «        }d}t          j        ||¬¦  «        }|                       ||¦  «         ||¦  «        ¦  «         |                     dd¦  «        }|                       ||¦  «         ||¦  «        ¦  «         |                      |j         ||¦  «        j        ¦  «         |                      |j         ||¦  «        j        ¦  «          ||¦  «        }|                      |d         d¦  «         d|d<   |                      |d         d¦  «         d S )Nr»   r   rw   ra   )r   r   )	rW   r   re   rf   ro   rh   r†   rQ   ÚassertNotEqual)ri   r   rq   rs   r0   rS   rV   s          r   Úcheck_number_realz"TestRealImagAttr.check_number_real3  s  € ÝˆÝ�V‘”ˆàˆÝŒi˜ EÐ*Ñ*Ô*ˆØ×Ò   s¡¤¨U¨U°3©Z¬ZÑ8Ô8Ð8à�kŠk˜!˜QÑÔˆØ×Ò   s¡¤¨U¨U°3©Z¬ZÑ8Ô8Ð8à×Ò˜œ 6 6¨#¡;¤;Ô#3Ñ4Ô4Ð4Ø×Ò˜œ 5 5¨¡:¤:¤?Ñ3Ô3Ð3àˆu�S‰zŒzˆØ×Ò˜C œI qÑ)Ô)Ð)ØˆˆT‰
Ø×Ò˜˜Tœ AÑ&Ô&Ð&Ð&Ð&r   c                 ó’   — t           j        t           j        t           j        t           j        fD ]}|                      |¦  «         ŒdS )z5
        Testing .real of non-complex dtypes
        N)re   Úuint8rg   Úfloat32rÍ   rì   ©ri   r   s     r   Útest_number_realz!TestRealImagAttr.test_number_realF  óE   € õ ”h¥¤­"¬*µb´jÐAð 	*ð 	*ˆEØ×"Ò" 5Ñ)Ô)Ð)Ð)ð	*ð 	*r   c                 ó¬  — t           }t          |¦  «        }d}t          j        ||¬¦  «        }|                       ||¦  «         ||¦  «        ¦  «         |                     dd¦  «        }|                       ||¦  «         ||¦  «        ¦  «         |                       ||¦  «                             ¦   «         t          j        |¦  «                             ¦   «         ¦  «          ||¦  «        }|  	                    t          ¦  «        5 }d|d<   d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr»   r   rw   ra   rz   r   z#assignment destination is read-only)r[   r   re   rf   ro   rh   r†   ÚtolistÚ
zeros_likeÚassertRaisesÚ
ValueErrorÚstrÚ	exception)ri   r   rq   rs   r0   rS   rZ   Úraisess           r   Úcheck_number_imagz"TestRealImagAttr.check_number_imagM  sy  € ÝˆÝ�V‘”ˆàˆÝŒi˜ EÐ*Ñ*Ô*ˆØ×Ò   s¡¤¨U¨U°3©Z¬ZÑ8Ô8Ð8à�kŠk˜!˜QÑÔˆØ×Ò   s¡¤¨U¨U°3©Z¬ZÑ8Ô8Ð8à×Ò˜˜˜s™œ×*Ò*Ñ,Ô,­b¬m¸CÑ.@Ô.@×.GÒ.GÑ.IÔ.IÑJÔJÐJàˆu�S‰zŒzˆØ×Ò�zÑ*Ô*ð 	¨fØˆD�‰Gð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×ÒÐ>Ý˜VÔ-Ñ.Ô.ñ	0ô 	0ð 	0ð 	0ð 	0s   ÄD!Ä!D%Ä(D%c                 ó’   — t           j        t           j        t           j        t           j        fD ]}|                      |¦  «         ŒdS )z5
        Testing .imag of non-complex dtypes
        N)re   rî   rg   rï   rÍ   rû   rð   s     r   Útest_number_imagz!TestRealImagAttr.test_number_imag`  rò   r   c                 ó  — t          j        dt           j        fdt           j        fg¦  «        }t          j        d|¬¦  «        }t           j                             |j        ¦  «        |d<   t           j                             |j        ¦  «        dz  |d<   |                      t          |¦  «        |¦  «         |  	                    t          |¦  «                             ¦   «         t          j        |¦  «                             ¦   «         ¦  «         t          t          ¦  «        }t          t          ¦  «        }|                      t          ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt#          |j        ¦  «        ¦  «         |                      t          ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt#          |j        ¦  «        ¦  «         d S )NrV   rZ   r½   r   y        ÍÌÌÌÌÌô?z&cannot access .real of array of Recordz&cannot access .imag of array of Record)re   r   rï   Ú	complex64r}   Úrandomr0   ÚassertIsrW   r†   r[   rô   rõ   r   rö   r   ÚassertInrø   rù   )ri   ÚrectyprS   Újit_array_realÚjit_array_imagrú   s         r   Útest_record_realz!TestRealImagAttr.test_record_realg  s/  € Ý”˜F¥B¤JÐ/°&½"¼,Ð1GÐHÑIÔIˆÝŒh�q Ð'Ñ'Ô'ˆÝ”i×&Ò& s¤xÑ0Ô0ˆˆF‰Ý”i×&Ò& s¤xÑ0Ô0°4Ñ7ˆˆF‰ð 	�Š•j ‘o”o sÑ+Ô+Ð+à×Ò� C™œ×/Ò/Ñ1Ô1µ2´=ÀÑ3EÔ3E×3LÒ3LÑ3NÔ3NÑOÔOÐOõ �jÑ)Ô)ˆÝ�jÑ)Ô)ˆà×Ò�{Ñ+Ô+ð 	 ¨vØˆN˜3ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 à�ŠÐ>Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð ×Ò�{Ñ+Ô+ð 	 ¨vØˆN˜3ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 à�ŠÐ>Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-s$   ÅE,Å,E0Å3E0Æ9GÇGÇGN)r¥   r¦   r§   rä   ræ   ré   rì   rñ   rû   rý   r  ry   r   r   râ   râ   "  sŒ   € € € € € ð9ð 9ð 9ð'ð 'ð 'ð'ð 'ð 'ð'ð 'ð 'ð&*ð *ð *ð0ð 0ð 0ð&*ð *ð *ð-ð -ð -ð -ð -r   râ   c                   ó   — e Zd ZdZd„ ZdS )ÚTestJitclassFlagsSegfaultz@Regression test for: https://github.com/numba/numba/issues/4775 c                 óÐ   — t          t          ¦   «         ¦  «         G d„ dt          ¦  «        ¦   «         } |¦   «         }|                     t	          j        d¦  «        ¦  «         d S )Nc                   ó   — e Zd Zd„ Zd„ ZdS )ú)TestJitclassFlagsSegfault.test.<locals>.Bc                 ó   — d S r   ry   rŒ   s    r   Ú__init__z2TestJitclassFlagsSegfault.test.<locals>.B.__init__Š  s   € Ø�r   c                 ó   — |j          d S r   )r3   )ri   ÚXs     r   rÜ   z-TestJitclassFlagsSegfault.test.<locals>.B.foo�  s   € Ø”���r   N)r¥   r¦   r§   r  rÜ   ry   r   r   ÚBr  ‡  s2   € € € € € ðð ð ðð ð ð ð r   r  r`   )r   ÚdictÚobjectrÜ   re   r×   )ri   r  ÚZs      r   ÚtestzTestJitclassFlagsSegfault.test…  sp   € å	•$‘&”&Ñ	Ô	ð	ð 	ð 	ð 	ð 	•ñ 	ô 	ñ 
Ô	ð	ð ˆA‰CŒCˆØ	�Š�bŒg�a‰jŒjÑÔÐÐÐr   N)r¥   r¦   r§   Ú__doc__r  ry   r   r   r  r  ‚  s)   € € € € € ØJÐJðð ð ð ð r   r  Ú__main__)3Únumpyre   ÚunittestÚnumba.core.compilerr   Únumba.np.numpy_supportr   Únumbar   r   Ú
numba.corer   Únumba.tests.supportr   r	   r
   r   r   Únumba.core.errorsr   Únumba.experimentalr   r   r   r   r!   r&   r)   r,   r1   r5   r8   r<   r?   rA   rC   rE   rG   rJ   rN   rT   rW   r[   r]   r«   r¹   rÀ   râ   r  r¥   Úmainry   r   r   ú<module>r!     sk  ðØ Ð Ð Ð à €€€Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð@ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @à )Ð )Ð )Ð )Ð )Ð )Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð  ð  ð ð  ð  ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðR?ð R?ð R?ð R?ð R?�O Xñ R?ô R?ð R?ðj-8ð -8ð -8ð -8ð -8˜/¨8Ô+<ñ -8ô -8ð -8ð`	<ð 	<ð 	<ð 	<ð 	<˜/¨8Ô+<ñ 	<ô 	<ð 	<ð.@ð .@ð .@ð .@ð .@�o xñ .@ô .@ð .@ðb^-ð ^-ð ^-ð ^-ð ^-�¨ñ ^-ô ^-ð ^-ð@ð ð ð ð  °ñ ô ð ð" ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   