§
    ƒÛgHÆ  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZmZ  e
¦   «         Z e
¦   «         Zde_        d	„ Z G d
„ de ¦  «        Z! G d„ de ¦  «        Z" G d„ de¦  «        Z# G d„ de#¦  «        Z$ G d„ de¦  «        Z% G d„ de%¦  «        Z& G d„ de¦  «        Z' G d„ de¦  «        Z( G d„ de¦  «        Z)e*dk    r ej+        ¦   «          dS dS )é    N)Úcompile_isolatedÚFlags)Újit)ÚtypesÚutilsÚerrorsÚ	typeinfer)Ú_header_lead)ÚTestCaseÚtagÚ
needs_blas)Úmatmul_usecaseÚimatmul_usecaseÚ
DumbMatrixTc                 ó   ‡ — ˆ fd„}|S )Nc                 ó   •— | ‰z  S ©N© )ÚxÚexps    €úP/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_operators.pyÚpow_usecasez&make_static_power.<locals>.pow_usecase   s   ø€ Ø�C‰xˆó    r   )r   r   s   ` r   Úmake_static_powerr      s"   ø€ ðð ð ð ð àÐr   c                   ó‚  — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zer ee¦  «        Z ee¦  «        Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z ed„ ¦   «         Z!ed„ ¦   «         Z"ed„ ¦   «         Z#ed„ ¦   «         Z$ed „ ¦   «         Z%ed!„ ¦   «         Z&ed"„ ¦   «         Z'ed#„ ¦   «         Z(ed$„ ¦   «         Z)ed%„ ¦   «         Z*ed&„ ¦   «         Z+d'S )(ÚLiteralOperatorImplc                 ó   — | |z   S r   r   ©r   Úys     r   Úadd_usecasezLiteralOperatorImpl.add_usecase    ó   € à�1‰uˆr   c                 ó   — | |z  } | S r   r   r   s     r   Úiadd_usecasez LiteralOperatorImpl.iadd_usecase$   ó   € à	ˆQ‰ˆØˆr   c                 ó   — | |z
  S r   r   r   s     r   Úsub_usecasezLiteralOperatorImpl.sub_usecase)   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úisub_usecasez LiteralOperatorImpl.isub_usecase-   r$   r   c                 ó   — | |z  S r   r   r   s     r   Úmul_usecasezLiteralOperatorImpl.mul_usecase2   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úimul_usecasez LiteralOperatorImpl.imul_usecase6   r$   r   c                 ó   — | |z  S r   r   r   s     r   Úfloordiv_usecasez$LiteralOperatorImpl.floordiv_usecase;   ó   € à�A‰vˆr   c                 ó   — | |z  } | S r   r   r   s     r   Úifloordiv_usecasez%LiteralOperatorImpl.ifloordiv_usecase?   ó   € à	ˆa‰ˆØˆr   c                 ó   — | |z  S r   r   r   s     r   Útruediv_usecasez#LiteralOperatorImpl.truediv_usecaseD   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úitruediv_usecasez$LiteralOperatorImpl.itruediv_usecaseH   r$   r   c                 ó   — | |z  S r   r   r   s     r   Úmod_usecasezLiteralOperatorImpl.mod_usecaseQ   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úimod_usecasez LiteralOperatorImpl.imod_usecaseU   r$   r   c                 ó   — | |z  S r   r   r   s     r   r   zLiteralOperatorImpl.pow_usecaseZ   r/   r   c                 ó   — | |z  } | S r   r   r   s     r   Úipow_usecasez LiteralOperatorImpl.ipow_usecase^   r2   r   c                 ó   — | |z  S r   r   r   s     r   Úbitshift_left_usecasez)LiteralOperatorImpl.bitshift_left_usecasec   r/   r   c                 ó   — | |z  } | S r   r   r   s     r   Úbitshift_ileft_usecasez*LiteralOperatorImpl.bitshift_ileft_usecaseg   r2   r   c                 ó   — | |z	  S r   r   r   s     r   Úbitshift_right_usecasez*LiteralOperatorImpl.bitshift_right_usecasel   r/   r   c                 ó   — | |z  } | S r   r   r   s     r   Úbitshift_iright_usecasez+LiteralOperatorImpl.bitshift_iright_usecasep   r2   r   c                 ó   — | |z  S r   r   r   s     r   Úbitwise_and_usecasez'LiteralOperatorImpl.bitwise_and_usecaseu   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úbitwise_iand_usecasez(LiteralOperatorImpl.bitwise_iand_usecasey   r$   r   c                 ó   — | |z  S r   r   r   s     r   Úbitwise_or_usecasez&LiteralOperatorImpl.bitwise_or_usecase~   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úbitwise_ior_usecasez'LiteralOperatorImpl.bitwise_ior_usecase‚   r$   r   c                 ó   — | |z  S r   r   r   s     r   Úbitwise_xor_usecasez'LiteralOperatorImpl.bitwise_xor_usecase‡   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úbitwise_ixor_usecasez(LiteralOperatorImpl.bitwise_ixor_usecase‹   r$   r   c                 ó   — |  S r   r   ©r   Ú_unuseds     r   Úbitwise_not_usecase_binaryz.LiteralOperatorImpl.bitwise_not_usecase_binary�   ó	   € àˆrˆ	r   c                 ó   — |  S r   r   ©r   s    r   Úbitwise_not_usecasez'LiteralOperatorImpl.bitwise_not_usecase”   rV   r   c                 ó   — |  S r   r   rX   s    r   Únot_usecasezLiteralOperatorImpl.not_usecase˜   s	   € àˆvˆr   c                 ó   — |  S r   r   rX   s    r   Únegate_usecasez"LiteralOperatorImpl.negate_usecaseœ   rV   r   c                 ó   — | 
 S r   r   rX   s    r   Úunary_positive_usecasez*LiteralOperatorImpl.unary_positive_usecase    rV   r   c                 ó   — | |k     S r   r   r   s     r   Ú
lt_usecasezLiteralOperatorImpl.lt_usecase¤   ó   € à�1Šuˆr   c                 ó   — | |k    S r   r   r   s     r   Ú
le_usecasezLiteralOperatorImpl.le_usecase¨   ó   € à�AŠvˆr   c                 ó   — | |k    S r   r   r   s     r   Ú
gt_usecasezLiteralOperatorImpl.gt_usecase¬   rb   r   c                 ó   — | |k    S r   r   r   s     r   Ú
ge_usecasezLiteralOperatorImpl.ge_usecase°   re   r   c                 ó   — | |k    S r   r   r   s     r   Ú
eq_usecasezLiteralOperatorImpl.eq_usecase´   re   r   c                 ó   — | |k    S r   r   r   s     r   Ú
ne_usecasezLiteralOperatorImpl.ne_usecase¸   re   r   c                 ó
   — | |v S r   r   r   s     r   Ú
in_usecasezLiteralOperatorImpl.in_usecase¼   ó   € à�Aˆvˆr   c                 ó
   — | |vS r   r   r   s     r   Únot_in_usecasez"LiteralOperatorImpl.not_in_usecaseÀ   s   € à˜ˆzÐr   c                 ó
   — | |u S r   r   r   s     r   Ú
is_usecasezLiteralOperatorImpl.is_usecaseÄ   rp   r   N),Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr    r#   r&   r(   r*   r,   r.   r1   r4   r6   r   r   r8   r:   r   r=   r?   rA   rC   rE   rG   rI   rK   rM   rO   rQ   rU   rY   r[   r]   r_   ra   rd   rg   ri   rk   rm   ro   rr   rt   r   r   r   r   r      s:  € € € € € àðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ð 8Ø%˜ nÑ5Ô5ˆØ&˜, Ñ7Ô7ˆàðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ð r   r   c                   ó~  — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z ed„ ¦   «         Z!ed„ ¦   «         Z"ed „ ¦   «         Z#ed!„ ¦   «         Z$ed"„ ¦   «         Z%ed#„ ¦   «         Z&ed$„ ¦   «         Z'ed%„ ¦   «         Z(ed&„ ¦   «         Z)ed'„ ¦   «         Z*ed(„ ¦   «         Z+d)S )*ÚFunctionalOperatorImplc                 ó,   — t          j        | |¦  «        S r   )ÚoperatorÚaddr   s     r   r    z"FunctionalOperatorImpl.add_usecaseË   ó   € åŒ|˜A˜qÑ!Ô!Ð!r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úiaddr   s     r   r#   z#FunctionalOperatorImpl.iadd_usecaseÏ   ó   € åŒ}˜Q Ñ"Ô"Ð"r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úsubr   s     r   r&   z"FunctionalOperatorImpl.sub_usecaseÓ   r~   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úisubr   s     r   r(   z#FunctionalOperatorImpl.isub_usecase×   r�   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úmulr   s     r   r*   z"FunctionalOperatorImpl.mul_usecaseÛ   r~   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úimulr   s     r   r,   z#FunctionalOperatorImpl.imul_usecaseß   r�   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úfloordivr   s     r   r.   z'FunctionalOperatorImpl.floordiv_usecaseã   ó   € åÔ   AÑ&Ô&Ð&r   c                 ó,   — t          j        | |¦  «        S r   )r|   Ú	ifloordivr   s     r   r1   z(FunctionalOperatorImpl.ifloordiv_usecaseç   s   € åÔ! ! QÑ'Ô'Ð'r   c                 ó,   — t          j        | |¦  «        S r   )r|   Útruedivr   s     r   r4   z&FunctionalOperatorImpl.truediv_usecaseë   ó   € åÔ  1Ñ%Ô%Ð%r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úitruedivr   s     r   r6   z'FunctionalOperatorImpl.itruediv_usecaseï   rŒ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úmodr   s     r   r8   z"FunctionalOperatorImpl.mod_usecaseó   r~   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úimodr   s     r   r:   z#FunctionalOperatorImpl.imod_usecase÷   r�   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úpowr   s     r   r   z"FunctionalOperatorImpl.pow_usecaseû   r~   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úipowr   s     r   r=   z#FunctionalOperatorImpl.ipow_usecaseÿ   r�   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úmatmulr   s     r   r   z%FunctionalOperatorImpl.matmul_usecase  ó   € åŒ˜q !Ñ$Ô$Ð$r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úimatmulr   s     r   r   z&FunctionalOperatorImpl.imatmul_usecase  r‘   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úlshiftr   s     r   r?   z,FunctionalOperatorImpl.bitshift_left_usecase  rž   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úilshiftr   s     r   rA   z-FunctionalOperatorImpl.bitshift_ileft_usecase  r‘   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úrshiftr   s     r   rC   z-FunctionalOperatorImpl.bitshift_right_usecase  rž   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úirshiftr   s     r   rE   z.FunctionalOperatorImpl.bitshift_iright_usecase  r‘   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úand_r   s     r   rG   z*FunctionalOperatorImpl.bitwise_and_usecase  r�   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úiandr   s     r   rI   z+FunctionalOperatorImpl.bitwise_iand_usecase  r�   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úor_r   s     r   rK   z)FunctionalOperatorImpl.bitwise_or_usecase#  r~   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úiorr   s     r   rM   z*FunctionalOperatorImpl.bitwise_ior_usecase'  r~   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úxorr   s     r   rO   z*FunctionalOperatorImpl.bitwise_xor_usecase+  r~   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úixorr   s     r   rQ   z+FunctionalOperatorImpl.bitwise_ixor_usecase/  r�   r   c                 ó*   — t          j        | ¦  «        S r   ©r|   ÚinvertrS   s     r   rU   z1FunctionalOperatorImpl.bitwise_not_usecase_binary3  ó   € åŒ˜qÑ!Ô!Ð!r   c                 ó*   — t          j        | ¦  «        S r   r¶   rX   s    r   rY   z*FunctionalOperatorImpl.bitwise_not_usecase7  r¸   r   c                 ó*   — t          j        | ¦  «        S r   )r|   Únot_rX   s    r   r[   z"FunctionalOperatorImpl.not_usecase;  s   € åŒ}˜QÑÔÐr   c                 ó*   — t          j        | ¦  «        S r   )r|   ÚnegrX   s    r   r]   z%FunctionalOperatorImpl.negate_usecase?  ó   € åŒ|˜A‰ŒÐr   c                 ó*   — t          j        | ¦  «        S r   )r|   ÚposrX   s    r   r_   z-FunctionalOperatorImpl.unary_positive_usecaseC  r¾   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Últr   s     r   ra   z!FunctionalOperatorImpl.lt_usecaseG  ó   € åŒ{˜1˜aÑ Ô Ð r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úler   s     r   rd   z!FunctionalOperatorImpl.le_usecaseK  rÃ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úgtr   s     r   rg   z!FunctionalOperatorImpl.gt_usecaseO  rÃ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úger   s     r   ri   z!FunctionalOperatorImpl.ge_usecaseS  rÃ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úeqr   s     r   rk   z!FunctionalOperatorImpl.eq_usecaseW  rÃ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úner   s     r   rm   z!FunctionalOperatorImpl.ne_usecase[  rÃ   r   c                 ó,   — t          j        || ¦  «        S r   ©r|   Úcontainsr   s     r   ro   z!FunctionalOperatorImpl.in_usecase_  rŒ   r   c                 ó.   — t          j        || ¦  «         S r   rÏ   r   s     r   rr   z%FunctionalOperatorImpl.not_in_usecasec  s   € åÔ$ Q¨Ñ*Ô*Ð*Ð*r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úis_r   s     r   rt   z!FunctionalOperatorImpl.is_usecaseg  r~   r   N),ru   rv   rw   rx   r    r#   r&   r(   r*   r,   r.   r1   r4   r6   r8   r:   r   r=   r   r   r?   rA   rC   rE   rG   rI   rK   rM   rO   rQ   rU   rY   r[   r]   r_   ra   rd   rg   ri   rk   rm   ro   rr   rt   r   r   r   rz   rz   É   sJ  € € € € € àð"ð "ñ „\ð"ð ð#ð #ñ „\ð#ð ð"ð "ñ „\ð"ð ð#ð #ñ „\ð#ð ð"ð "ñ „\ð"ð ð#ð #ñ „\ð#ð ð'ð 'ñ „\ð'ð ð(ð (ñ „\ð(ð ð&ð &ñ „\ð&ð ð'ð 'ñ „\ð'ð ð"ð "ñ „\ð"ð ð#ð #ñ „\ð#ð ð"ð "ñ „\ð"ð ð#ð #ñ „\ð#ð ð%ð %ñ „\ð%ð ð&ð &ñ „\ð&ð ð%ð %ñ „\ð%ð ð&ð &ñ „\ð&ð ð%ð %ñ „\ð%ð ð&ð &ñ „\ð&ð ð#ð #ñ „\ð#ð ð#ð #ñ „\ð#ð ð"ð "ñ „\ð"ð ð"ð "ñ „\ð"ð ð"ð "ñ „\ð"ð ð#ð #ñ „\ð#ð ð"ð "ñ „\ð"ð ð"ð "ñ „\ð"ð ð ð  ñ „\ð ð ðð ñ „\ðð ðð ñ „\ðð ð!ð !ñ „\ð!ð ð!ð !ñ „\ð!ð ð!ð !ñ „\ð!ð ð!ð !ñ „\ð!ð ð!ð !ñ „\ð!ð ð!ð !ñ „\ð!ð ð'ð 'ñ „\ð'ð ð+ð +ñ „\ð+ð ð"ð "ñ „\ð"ð "ð "r   rz   c                   ó~  — e Zd ZdZeZej        ej        ej	        ej
        ej        ej        ej        ej        ej        ej        ej        dœZefd„Zefd„Zd„ Zedfd„Zg d¢Zej        ej        ej        ej        ej        ej        gZ ej!        ej"        gZ#efd	„Z$d
„ Z%efd„Z&d„ Z'efd„Z(d„ Z)efd„Z*d„ Z+efd„Z,d„ Z-efd„Z.d„ Z/d„ Z0d„ Z1efd„Z2efd„Z3efd„Z4efd„Z5efd„Z6d^d„Z7 e7 e8¦   «         ddd d!d"œ¦  «          e7 e8¦   «         d#dd d!d"œ¦  «          e7 e8¦   «         d$dd%d&œ¦  «         edfd'„Z9efd(„Z:d)„ Z;efd*„Z<d+„ Z=efd,„Z>d-„ Z?efd.„Z@efd/„ZA e7 e8¦   «         d0d1d2d&œ¦  «         efd3„ZBd4„ ZCefd5„ZDd6„ ZEefd7„ZFd8„ ZGefd9„ZHd:„ ZIefd;„ZJd<„ ZKd=„ ZLd>„ ZMd?„ ZNeOd@„ ¦   «         ZPdA„ ZQdB„ ZRefdC„ZS e7 e8¦   «         dDdEdFi¦  «         efdG„ZT e7 e8¦   «         dHdEdIi¦  «         efdJ„ZU e7 e8¦   «         dKdLdMdNœ¦  «         efdO„ZVdP„ ZWdQ„ ZXdR„ ZYdS„ ZZdT„ Z[dU„ Z\dV„ Z]dW„ Z^dX„ Z_efdY„Z`dZ„ Zaefd[„Zbd\„ Zcd]S )_ÚTestOperatorszw
    Test standard Python operators on scalars.

    NOTE: operators on array are generally tested in test_ufuncs.
    ©r?   rA   rC   rE   rG   rI   rK   rM   rO   rQ   rU   c                 ó”  — |D ]Ä}t          |||¬¦  «        }|j        }t          j        ||¦  «        D ]“\  }	}
t	          j        |	¦  «        }t	          j        |	¦  «        } |||
¦  «        } |||
¦  «        }|                      ||d|	›d|
›d|›d|›d|›�
¬¦  «         |                      ||d|	›d|
›d|›d|›d|›�
¬¦  «         Œ”ŒÅd S )N©Úflagsúmismatch for (ú, ú) with types ú: ú != ©Úmsg)r   Úentry_pointÚ	itertoolsÚproductÚcopyÚassertPreciseEqual©ÚselfÚpyfuncÚ
x_operandsÚ
y_operandsÚ
types_listrÙ   Ú	arg_typesÚcrÚcfuncr   r   Úx_gotÚ
x_expectedÚgotÚexpecteds                  r   Úrun_test_intszTestOperators.run_test_intsƒ  s5  € à#ð 	@ð 	@ˆIÝ! &¨)¸5ÐAÑAÔAˆBØ”NˆEÝ!Ô)¨*°jÑAÔAð @ð @‘��1õ œ	 !™œ�Ý!œY q™\œ\�
Ø�e˜E 1‘o”o�Ø!˜6 *¨aÑ0Ô0�Ø×'Ò'Ø˜˜à˜1˜1˜a˜a˜a   ¨C¨C¨C°°ð;ð (ñ <ô <ð <ð ×'Ò'Ø˜:˜:à˜1˜1˜a˜a˜a   ¨E¨E¨E°:°:ð?ð (ñ @ô @ð @ð @ð@ð	@ð 	@r   c                 ó€  — |D ]º}t          |||¬¦  «        }|j        }t          j        ||¦  «        D ]‰\  }	}
t	          j        |	¦  «        }t	          j        |	¦  «        } |||
¦  «        } |||
¦  «        }t
          j                             ||d¬¦  «         t
          j                             ||d¬¦  «         ŒŠŒ»d S )NrØ   gñhãˆµøä>)Úrtol)r   rá   râ   rã   rä   ÚnpÚtestingÚassert_allcloseræ   s                  r   Úrun_test_floatszTestOperators.run_test_floats˜  sÛ   € à#ð 	Ið 	IˆIÝ! &¨)¸5ÐAÑAÔAˆBØ”NˆEÝ!Ô)¨*°jÑAÔAð Ið I‘��1õ œ	 !™œ�Ý!œY q™\œ\�
Ø�e˜E 1‘o”o�Ø!˜6 *¨aÑ0Ô0�Ý”
×*Ò*¨3°¸tÐ*ÑDÔDÐDÝ”
×*Ò*¨5°*À4Ð*ÑHÔHÐHÐHðIð	Ið 	Ir   c                 ó6  — t          |d¦  «        r|                     |¦  «        S |t          j        v r!t	          t          |j        ¦  «        ¦  «        S |t          j        v rt          |j        ¦  «        S |t          j        v rt          |j        ¦  «        S |S )NÚdtype)
ÚhasattrÚcast_python_valuer   Úunsigned_domainÚabsÚintÚrealÚinteger_domainÚreal_domainÚfloat)rç   ÚopÚ
numba_types      r   Úcoerce_operandzTestOperators.coerce_operand§  s‰   € Ý�2�wÑÔð 		Ø×/Ò/°Ñ3Ô3Ð3Ø�5Ô0Ð0Ð0Ý•s˜2œ7‘|”|Ñ$Ô$Ð$Ø�5Ô/Ð/Ð/Ý�r”w‘<”<ÐØ�5Ô,Ð,Ð,Ý˜œ‘>”>Ð!àˆIr   Tc                 óÚ  — | j         }| j        }|s
|| j        z   }|D ]Í}t          |||f|¬¦  «        }|j        }t          j        ||¦  «        D ]š\  }	}
|                      |	|¦  «        }	|                      |
|¦  «        }
 ||	|
¦  «        } ||	|
¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |  
                    ||d|›d|	›d|
›d�¦  «         Œ›ŒÎd S )NrØ   zmismatch with z (rÛ   ú))Úcompare_scalar_operandsÚcompare_typesÚcompare_unordered_typesr   rá   râ   rã   r  ÚassertIsÚtypeÚassertEqual)rç   rè   rÙ   ÚorderedÚopsrë   Útyprí   rî   r   r   rò   rñ   s                r   Úrun_test_scalar_comparez%TestOperators.run_test_scalar_compare³  s(  € àÔ*ˆØÔ'ˆ
Øð 	CØ# dÔ&BÑBˆJØð 	0ð 	0ˆCÝ! &¨3°¨*¸EÐBÑBÔBˆBØ”NˆEÝ!Ô)¨#¨sÑ3Ô3ð 	0ð 	0‘��1Ø×'Ò'¨¨3Ñ/Ô/�Ø×'Ò'¨¨3Ñ/Ô/�Ø!˜6 ! Q™<œ<�Ø�e˜A˜q‘k”k�à—’�d 3™iœi­¨h©¬Ñ8Ô8Ð8Ø× Ò   h hà$' C C¨¨¨¨A¨A¨Að"/ñ0ô 0ð 0ð 0ð	0ð	0ð 	0r   )g      à¿y      ð¿      ð?y      ð¿       @y      à¿      ð?ç      ø?c                 óF   — |                       | j        j        |¦  «         d S r   )r  r  ra   ©rç   rÙ   s     r   Útest_lt_scalarzTestOperators.test_lt_scalarÒ  ó#   € Ø×$Ò$ T¤WÔ%7¸Ñ?Ô?Ð?Ð?Ð?r   c                 ó<   — |                       t          ¬¦  «         d S ©NrØ   )r  ÚNoflags©rç   s    r   Útest_lt_scalar_npmz TestOperators.test_lt_scalar_npmÕ  ó   € Ø×Ò¥'ÐÑ*Ô*Ð*Ð*Ð*r   c                 óF   — |                       | j        j        |¦  «         d S r   )r  r  rd   r  s     r   Útest_le_scalarzTestOperators.test_le_scalarØ  r  r   c                 ó<   — |                       t          ¬¦  «         d S r  )r   r  r  s    r   Útest_le_scalar_npmz TestOperators.test_le_scalar_npmÛ  r  r   c                 óF   — |                       | j        j        |¦  «         d S r   )r  r  rg   r  s     r   Útest_gt_scalarzTestOperators.test_gt_scalarÞ  r  r   c                 ó<   — |                       t          ¬¦  «         d S r  )r$  r  r  s    r   Útest_gt_scalar_npmz TestOperators.test_gt_scalar_npmá  r  r   c                 óF   — |                       | j        j        |¦  «         d S r   )r  r  ri   r  s     r   Útest_ge_scalarzTestOperators.test_ge_scalarä  r  r   c                 ó<   — |                       t          ¬¦  «         d S r  )r(  r  r  s    r   Útest_ge_scalar_npmz TestOperators.test_ge_scalar_npmç  r  r   c                 óJ   — |                       | j        j        |d¬¦  «         d S ©NF)r  )r  r  rk   r  s     r   Útest_eq_scalarzTestOperators.test_eq_scalarê  ó(   € Ø×$Ò$ T¤WÔ%7¸ÈÐ$ÑNÔNÐNÐNÐNr   c                 ó<   — |                       t          ¬¦  «         d S r  )r-  r  r  s    r   Útest_eq_scalar_npmz TestOperators.test_eq_scalar_npmí  r  r   c                 óJ   — |                       | j        j        |d¬¦  «         d S r,  )r  r  rm   r  s     r   Útest_ne_scalarzTestOperators.test_ne_scalarð  r.  r   c                 ó<   — |                       t          ¬¦  «         d S r  )r2  r  r  s    r   Útest_ne_scalar_npmz TestOperators.test_ne_scalar_npmó  r  r   c                 óÆ   — t          | j        j        t          j        t          j        f¦  «        }|j        }|                       |t          t          ¦  «        ¦  «         d S r   )r   r  rt   r   Úellipsisrá   Ú
assertTrueÚEllipsis)rç   Úcresrî   s      r   Útest_is_ellipsiszTestOperators.test_is_ellipsisö  sK   € Ý ¤Ô 2µU´^ÅUÄ^Ð4TÑUÔUˆØÔ ˆØ�Š˜˜�h­Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r   c                 ó.  ‡—  t          t          j        t          j        fd¬¦  «        | j        j        ¦  «        Št          d¬¦  «        ˆfd„¦   «         }|                       |dd¦  «        ¦  «         |                       |dd¦  «        ¦  «         d S )NT©Únopythonc                 ó   •—  ‰| |¦  «        S r   r   )r   r   Ú
cfunc_voids     €r   rî   z-TestOperators.test_is_void_ptr.<locals>.cfunc  s   ø€ à�:˜a Ñ#Ô#Ð#r   é   é   )r   r   Úvoidptrr  rt   r7  ÚassertFalse)rç   rî   r?  s     @r   Útest_is_void_ptrzTestOperators.test_is_void_ptrû  s®   ø€ ð
•SÝŒ]�EœMÐ*°Tð
ñ 
ô 
à
Œ'Ô
ñô ˆ
õ
 
�dÐ	Ñ	Ô	ð	$ð 	$ð 	$ð 	$ñ 
Ô	ð	$ð 	�Š˜˜˜a ™œÑ$Ô$Ð$Ø×Ò˜˜˜q !™œÑ%Ô%Ð%Ð%Ð%r   c                 ó|   — g d¢}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         d S )N©FFTT)FTFTrØ   )r   Úbooleanró   ©rç   rè   rÙ   ré   rê   rë   s         r   Úrun_binop_boolszTestOperators.run_binop_bools  s[   € Ø/Ð/Ð/ˆ
Ø/Ð/Ð/ˆ
å”}¥e¤mÐ4Ð5ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð 	(ð 	(r   c                 ó|  — g d¢}g d¢}t           j        t           j        ft           j        t           j        fg}|                      |||||¬¦  «         ddg}ddg}t           j        t           j        ft           j        t           j        ft           j        t           j        fg}|                      |||||¬¦  «         d S )N)éûÿÿÿr   r@  rA  )éýÿÿÿéÿÿÿÿr@  é   rØ   rA  rN  r@  ©r   Úint32Úint64ró   ÚbyteÚuint32Úuint64rH  s         r   Úrun_binop_intszTestOperators.run_binop_ints  sÐ   € Ø"�]�]ˆ
Ø#�^�^ˆ
å”{¥E¤KÐ0Ý”{¥E¤KÐ0ð2ˆ
ð 	×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð ˜�Vˆ
Ø˜�Vˆ
å”z¥5¤:Ð.Ý”|¥U¤\Ð2Ý”|¥U¤\Ð2ð4ˆ
ð 	×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð 	(ð 	(r   c                 óª   — g d¢}g d¢}t           j        t           j        ft           j        t           j        fg}|                      |||||¬¦  «         d S )N)gš™™™™™ñ¿ç        gš™™™™™ñ?)g      ø¿gš™™™™™é?gÍÌÌÌÌÌ @rØ   ©r   Úfloat32Úfloat64rù   rH  s         r   Úrun_binop_floatszTestOperators.run_binop_floats*  sk   € Ø%Ð%Ð%ˆ
Ø%Ð%Ð%ˆ
å”}¥e¤mÐ4Ý”}¥e¤mÐ4ð6ˆ
ð 	×Ò˜V Z°¸ZØ#(ð 	ñ 	*ô 	*ð 	*ð 	*ð 	*r   c                 ó4   — |                       ||¬¦  «         d S r  )r[  )rç   rè   rÙ   s      r   Úrun_binop_floats_floordivz'TestOperators.run_binop_floats_floordiv4  s!   € Ø×Ò˜f¨EÐÑ2Ô2Ð2Ð2Ð2r   c                 óª   — g d¢}g d¢}t           j        t           j        ft           j        t           j        fg}|                      |||||¬¦  «         d S )N)yš™™™™™ñ¿333333Ó?y                y        š™™™™™ñ?)y      ø¿ffffffæ¿y        š™™™™™é?yÍÌÌÌÌÌ @       ÀrØ   )r   Ú	complex64Ú
complex128rù   rH  s         r   Úrun_binop_complexzTestOperators.run_binop_complex7  sm   € Ø4Ð4Ð4ˆ
Ø4Ð4Ð4ˆ
å”­¬Ð8ÝÔ'­Ô)9Ð:ð<ˆ
ð 	×Ò˜V Z°¸ZØ#(ð 	ñ 	*ô 	*ð 	*ð 	*ð 	*r   Fc                 ó  ‡— |D ]‚}|                      ¦   «         D ]k\  }}dD ]c}d|›d|›�}|r|dz  }|rt          nt          }	d|z  }
||
|	fd„Š|rd|v r|sˆfd„}n‰}||_        |r t	          d	¦  «        |¦  «        }|| |<   ŒdŒlŒƒd S )
N©FTÚtest_Ú_Ú_npmz
%s_usecasec                 óh   — t          | |¦  «        }t          | j        |¦  «        } |||¦  «         d S r   )Úgetattrr  )rç   Úrunner_nameÚusecase_namerÙ   ÚrunnerÚ
op_usecases         r   Úinnerz1TestOperators.generate_binop_tests.<locals>.innerK  s:   € å!(¨¨{Ñ!;Ô!;˜Ý%,¨T¬W°lÑ%CÔ%C˜
Ø˜˜z¨5Ñ1Ô1Ð1Ð1Ð1r   Úarrayc                 óv   •— |                       ¦   «         5   ‰¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r   )ÚassertTypingError)rç   rm  s    €r   Ú	test_methz5TestOperators.generate_binop_tests.<locals>.test_methR  s„   ø€ Ø!%×!7Ò!7Ñ!9Ô!9ð (ð (Ø % ¡¤ ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   –.®2µ2Ú	important)Úitemsr  Úforce_pyobj_flagsru   r   )ÚnsÚusecasesÚ
tp_runnersÚ	npm_arrayÚusecaseÚtp_nameri  r=  Ú	test_namerÙ   rj  rq  rm  s               @r   Úgenerate_binop_testsz"TestOperators.generate_binop_testsA  s  ø€ Øð 	.ð 	.ˆGØ(2×(8Ò(8Ñ(:Ô(:ð .ð .Ñ$�˜Ø -ð .ð .�H�HØ07°°¸¸Ð A�IØð ,Ø! VÑ+˜	Ø'/ÐF�G˜GÕ5F�EØ#/°'Ñ#9�Là0;Ø+7¸uð2ð 2ð 2ð 2ð  ð * G¨wÐ$6Ð$6¸yÐ$6ð(ð (ð (ð (ð (ð (ð %*˜	à)2�IÔ&àð @Ø$4¥C¨Ñ$4Ô$4°YÑ$?Ô$?˜	à$-�B�y‘M�Mð3.ð.ð	.ð 	.r   )r}   r€   rƒ   r…   r‡   r‰   rU  r[  ra  )ÚintsÚfloatsÚcomplex)r�   r“   )r‹   rŽ   r•   r—   r]  )r}  r~  c                 óÖ  — t          | j        |¦  «        }t          j        t          j        t          j        g}|r|                     t          j        ¦  «         |D ]Œ}t          |||f|¬¦  «        }|j	        }	|  
                    t          ¦  «        5 }
 |	dd¦  «         d d d ¦  «         n# 1 swxY w Y   |t          ur(|                      |t          |
j        ¦  «        ¦  «         Œ�d S )NrØ   r@  r   )rh  r  r   rP  rS  rZ  Úappendr`  r   rá   ÚassertRaisesÚZeroDivisionErrorrt  ÚassertInÚstrÚ	exception)rç   rj  rà   rÙ   Úallow_complexrè   rì   Útprí   rî   Úcms              r   Úcheck_div_errorszTestOperators.check_div_errorsu  s!  € å˜œ ,Ñ/Ô/ˆõ ”[¥%¤,µ´Ð>ˆ	Øð 	/Ø×Ò�UÔ-Ñ.Ô.Ð.Øð 	6ð 	6ˆBÝ! &¨2¨r¨(¸%Ð@Ñ@Ô@ˆBØ”NˆEØ×"Ò"Õ#4Ñ5Ô5ð ¸Ø��a˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Õ-Ð-Ð-Ø—’˜c¥3 r¤|Ñ#4Ô#4Ñ5Ô5Ð5øð	6ð 	6s   ÂB,Â,B0	Â3B0	c                 ó8   — |                       dd|d¬¦  «         d S )Nr4   údivision by zeroT)rÙ   r‡  ©rŠ  r  s     r   Útest_truediv_errorsz!TestOperators.test_truediv_errors†  s4   € Ø×ÒÐ/Ð1CÈ5Ø,0ð 	ñ 	2ô 	2ð 	2ð 	2ð 	2r   c                 ó<   — |                       t          ¬¦  «         d S r  )rŽ  r  r  s    r   Útest_truediv_errors_npmz%TestOperators.test_truediv_errors_npmŠ  s   € Ø× Ò ¥wÐ Ñ/Ô/Ð/Ð/Ð/r   c                 ó6   — |                       dd|¬¦  «         d S )Nr.   rŒ  rØ   r�  r  s     r   Útest_floordiv_errorsz"TestOperators.test_floordiv_errors�  s%   € Ø×ÒÐ0Ð2DÈEÐÑRÔRÐRÐRÐRr   c                 ó<   — |                       t          ¬¦  «         d S r  )r’  r  r  s    r   Útest_floordiv_errors_npmz&TestOperators.test_floordiv_errors_npm�  ó   € Ø×!Ò!­Ð!Ñ0Ô0Ð0Ð0Ð0r   c                 ó6   — |                       dd|¬¦  «         d S )Nr8   zmodulo by zerorØ   r�  r  s     r   Útest_mod_errorszTestOperators.test_mod_errors“  s$   € Ø×Ò˜mÐ-=ÀUÐÑKÔKÐKÐKÐKr   c                 ó<   — |                       t          ¬¦  «         d S r  )r—  r  r  s    r   Útest_mod_errors_npmz!TestOperators.test_mod_errors_npm–  s   € Ø×Ò¥7ÐÑ+Ô+Ð+Ð+Ð+r   c                 ó|  — g d¢}g d¢}t           j        t           j        ft           j        t           j        fg}|                      |||||¬¦  «         g d¢}g d¢}t           j        t           j        ft           j        t           j        ft           j        t           j        fg}|                      |||||¬¦  «         d S )N©éþÿÿÿrM  r   r@  rA  ©r   r@  rA  rØ   rO  rH  s         r   Úrun_pow_intszTestOperators.run_pow_ints™  sÒ   € Ø&Ð&Ð&ˆ
Ø�Y�Yˆ
å”{¥E¤KÐ0Ý”{¥E¤KÐ0ð2ˆ
ð 	×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð �Y�Yˆ
Ø�Y�Yˆ
å”z¥5¤:Ð.Ý”|¥U¤\Ð2Ý”|¥U¤\Ð2ð4ˆ
ð 	×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð 	(ð 	(r   c                 óL  — g d¢}g d¢}t           j        t           j        ft           j        t           j        fg}|                      |||||¬¦  «         dg}g d¢}t           j        t           j        ft           j        t           j        fg}|                      |||||¬¦  «         d S )N)gÉv¾ŸÇkÀgÉv¾ŸÇ[ÀgÉv¾ŸÇ[@gÉv¾ŸÇk@r›  rØ   rW  r�  rX  rH  s         r   Úrun_pow_floatszTestOperators.run_pow_floats­  sÆ   € Ø;Ð;Ð;ˆ
Ø&Ð&Ð&ˆ
å”}¥e¤mÐ4Ý”}¥e¤mÐ4ð6ˆ
ð 	×Ò˜V Z°¸ZØ#(ð 	ñ 	*ô 	*ð 	*ð �Uˆ
Ø�Y�Yˆ
å”}¥e¤mÐ4Ý”}¥e¤mÐ4ð6ˆ
ð 	×Ò˜V Z°¸ZØ#(ð 	ñ 	*ô 	*ð 	*ð 	*ð 	*r   )r™   r›   rž  r   c                 ó¾   — | j         j        }g d¢}|}t          j        t          j        ft          j        t          j        fg}|                      |||||¬¦  «         d S )N©y      ð?        y              ð?y      ð¿      ð¿rØ   )r  r    r   r_  r`  rù   ©rç   rÙ   rè   ré   rê   rë   s         r   Útest_add_complexzTestOperators.test_add_complexÇ  sq   € Ø”Ô$ˆà&Ð&Ð&ˆ
Øˆ
å”­¬Ð8ÝÔ'­Ô)9Ð:ð=ˆ
ð 	×Ò˜V Z°¸ZØ#(ð 	ñ 	*ô 	*ð 	*ð 	*ð 	*r   c                 ó<   — |                       t          ¬¦  «         d S r  )r¤  r  r  s    r   Útest_add_complex_npmz"TestOperators.test_add_complex_npmÓ  ó   € Ø×Ò¥GÐÑ,Ô,Ð,Ð,Ð,r   c                 óÂ   — | j         j        }g d¢}g d¢}t          j        t          j        ft          j        t          j        fg}|                      |||||¬¦  «         d S ©Nr¢  )r@  rA  rN  rØ   )r  r&   r   r_  r`  rù   r£  s         r   Útest_sub_complexzTestOperators.test_sub_complexÖ  óu   € Ø”Ô$ˆà&Ð&Ð&ˆ
Ø�Y�Yˆ
å”­¬Ð8ÝÔ'­Ô)9Ð:ð=ˆ
ð 	×Ò˜V Z°¸ZØ#(ð 	ñ 	*ô 	*ð 	*ð 	*ð 	*r   c                 ó<   — |                       t          ¬¦  «         d S r  )rª  r  r  s    r   Útest_sub_complex_npmz"TestOperators.test_sub_complex_npmâ  r§  r   c                 óÂ   — | j         j        }g d¢}g d¢}t          j        t          j        ft          j        t          j        fg}|                      |||||¬¦  «         d S r©  )r  r*   r   r_  r`  rù   r£  s         r   Útest_mul_complexzTestOperators.test_mul_complexå  r«  r   c                 ó<   — |                       t          ¬¦  «         d S r  )r¯  r  r  s    r   Útest_mul_complex_npmz"TestOperators.test_mul_complex_npmñ  r§  r   c                 óÂ   — | j         j        }g d¢}g d¢}t          j        t          j        ft          j        t          j        fg}|                      |||||¬¦  «         d S r©  )r  r4   r   r_  r`  rù   r£  s         r   Útest_truediv_complexz"TestOperators.test_truediv_complexô  su   € Ø”Ô(ˆà&Ð&Ð&ˆ
Ø�Y�Yˆ
å”­¬Ð8ÝÔ'­Ô)9Ð:ð=ˆ
ð 	×Ò˜V Z°¸ZØ#(ð 	ñ 	*ô 	*ð 	*ð 	*ð 	*r   c                 ó<   — |                       t          ¬¦  «         d S r  )r³  r  r  s    r   Útest_truediv_complex_npmz&TestOperators.test_truediv_complex_npm   r•  r   c                 óÄ   — | j         j        }|                      ¦   «         5  t          |t          j        t          j        f¦  «        }d d d ¦  «         d S # 1 swxY w Y   d S r   )r  r8   rp  r   r   r_  )rç   rÙ   rè   r9  s       r   Útest_mod_complexzTestOperators.test_mod_complex  s®   € Ø”Ô$ˆØ×#Ò#Ñ%Ô%ð 	Pð 	PÝ# F­U¬_½e¼oÐ,NÑOÔOˆDð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Ps   ¡'AÁAÁAc                 ó<   — |                       t          ¬¦  «         d S r  )r·  r  r  s    r   Útest_mod_complex_npmz"TestOperators.test_mod_complex_npm  r§  r   c                 óX  — t          |dt          ¬¦  «        }|j        }t          d¦  «        }t          d¦  «        } |||¦  «        }|                      |j        d¦  «         |r|                      ||¦  «         d S |                      ||¦  «         |                      ||¦  «         d S )Nr   rØ   rN  é   é   )r   rt  rá   r   r  Úvaluer  ÚassertIsNot)rç   rè   Úinplacer9  rî   ÚaÚbrñ   s           r   Úcheck_matmul_objmodez"TestOperators.check_matmul_objmode  s°   € å ¨Õ2CÐDÑDÔDˆØÔ ˆÝ�q‰MŒMˆÝ�q‰MŒMˆØˆe�A�q‰kŒkˆØ×Ò˜œ BÑ'Ô'Ð'Øð 	%Ø�MŠM˜#˜qÑ!Ô!Ð!Ð!Ð!à×Ò˜S !Ñ$Ô$Ð$Ø×Ò˜S !Ñ$Ô$Ð$Ð$Ð$r   c                 óH   — |                       | j        j        d¬¦  «         d S )NF©r¿  )rÂ  r  r   r  s    r   Útest_matmulzTestOperators.test_matmul  s&   € Ø×!Ò! $¤'Ô"8À%Ð!ÑHÔHÐHÐHÐHr   c                 óH   — |                       | j        j        d¬¦  «         d S )NTrÄ  )rÂ  r  r   r  s    r   Útest_imatmulzTestOperators.test_imatmul!  s&   € Ø×!Ò! $¤'Ô"9À4Ð!ÑHÔHÐHÐHÐHr   c                 ó   — t          j        t           j        dd¦  «        }t          |||ft          ¬¦  «        }|j        }t          j        ddg¦  «        }t          j        ddg¦  «        } |||¦  «        }|                      |t          j        ||¦  «        ¦  «         |  	                    ||¦  «         |  	                    ||¦  «         d S )Nr@  ÚCrØ   rA  rN  r»  )
r   ÚArrayrY  r   r  rá   rö   rå   Údotr¾  )rç   rè   Úarrtyr9  rî   rÀ  rÁ  rñ   s           r   Úcheck_matmul_npmzTestOperators.check_matmul_npm$  s¾   € å”�EœM¨1¨cÑ2Ô2ˆÝ ¨°¨½gÐFÑFÔFˆØÔ ˆÝŒJ˜˜1�vÑÔˆÝŒJ˜˜1�vÑÔˆØˆe�A�q‰kŒkˆØ×Ò ¥R¤V¨A¨q¡\¤\Ñ2Ô2Ð2à×Ò˜˜aÑ Ô Ð Ø×Ò˜˜aÑ Ô Ð Ð Ð r   c                 óD   — |                       | j        j        ¦  «         d S r   )rÍ  r  r   r  s    r   Útest_matmul_npmzTestOperators.test_matmul_npm1  s!   € Ø×Ò˜dœgÔ4Ñ5Ô5Ð5Ð5Ð5r   c                 óž   — |                       ¦   «         5 }|                      | j        j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )rp  rÍ  r  r   )rç   Úraisess     r   Útest_imatmul_npmzTestOperators.test_imatmul_npm4  sŽ   € Ø×#Ò#Ñ%Ô%ð 	;¨Ø×!Ò! $¤'Ô"9Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð 	;ð 	;s   • AÁAÁ	Ac                 óÞ  — ddg}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         ddg}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         ddg}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         ddg}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         d S )Nr   r@  ©r   r@  rA  r»  é   é   é   rØ   ©r   r@  rA  r»  rÕ  rÖ  é    é?   rM  ©r   rS  ró   rT  rP  rQ  rH  s         r   Úrun_bitshift_leftzTestOperators.run_bitshift_left<  sF  € Ø˜�Vˆ
Ø,Ð,Ð,ˆ
å”|¥U¤\Ð2Ð3ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð ˜�Vˆ
Ø0Ð0Ð0ˆ
å”|¥U¤\Ð2Ð3ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð ˜�Wˆ
Ø,Ð,Ð,ˆ
å”{¥E¤KÐ0Ð1ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð ˜�Wˆ
Ø0Ð0Ð0ˆ
å”{¥E¤KÐ0Ð1ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð 	(ð 	(r   )Úbitshift_leftÚbitshift_ileftr}  rÜ  c                 óÞ  — g d¢}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         g d¢}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         g d¢}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         g d¢}g d¢}t           j        t           j        fg}|                      |||||¬¦  «         d S )N)r   r@  ì   ÿÿ rÔ  rØ   )r   r@  ì   ÿÿÿÿ rØ  )r   r@  é   €)r   rM  râ  rÛ  rH  s         r   Úrun_bitshift_rightz TestOperators.run_bitshift_rightb  sN  € Ø&Ð&Ð&ˆ
Ø,Ð,Ð,ˆ
å”|¥U¤\Ð2Ð3ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð 'Ð&Ð&ˆ
Ø0Ð0Ð0ˆ
å”|¥U¤\Ð2Ð3ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð &Ð%Ð%ˆ
Ø,Ð,Ð,ˆ
å”{¥E¤KÐ0Ð1ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð 'Ð&Ð&ˆ
Ø0Ð0Ð0ˆ
å”{¥E¤KÐ0Ð1ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð 	(ð 	(r   )Úbitshift_rightÚbitshift_irightrã  c                 ó¶  — t          t          dd¦  «        ¦  «        dgz   }t          t          dd¦  «        ¦  «        dgz   }t          j        t          j        fg}|                      |||||¬¦  «         t          t          dd¦  «        ¦  «        dgz   }t          t          dd¦  «        ¦  «        dgz   }t          j        t          j        fg}|                      |||||¬¦  «         t          t          dd¦  «        ¦  «        dd	gz   }t          t          dd¦  «        ¦  «        dd	gz   }t          j        t          j        fg}|                      |||||¬¦  «         t          t          dd¦  «        ¦  «        d
dgz   }t          t          dd¦  «        ¦  «        d
dgz   }t          j        t          j        fg}|                      |||||¬¦  «         d S )Nr   rÕ  rà  rØ   rá  éüÿÿÿr»  râ  éÿÿÿìûÿÿÿ         ì   ÿÿÿÿ )ÚlistÚranger   rS  ró   rT  rP  rQ  rH  s         r   Úrun_logicalzTestOperators.run_logicalˆ  sâ  € Ý�%  1™+œ+Ñ&Ô&¨)¨Ñ4ˆ
Ý�%  1™+œ+Ñ&Ô&¨)¨Ñ4ˆ
å”|¥U¤\Ð2Ð3ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(õ �%  1™+œ+Ñ&Ô&¨)¨Ñ4ˆ
Ý�%  1™+œ+Ñ&Ô&¨)¨Ñ4ˆ
å”|¥U¤\Ð2Ð3ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(õ �%  A™,œ,Ñ'Ô'¨8°YÐ*?Ñ?ˆ
Ý�%  A™,œ,Ñ'Ô'¨8°YÐ*?Ñ?ˆ
å”{¥E¤KÐ0Ð1ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(õ �%  A™,œ,Ñ'Ô'¨8°YÐ*?Ñ?ˆ
Ý�%  A™,œ,Ñ'Ô'¨8°YÐ*?Ñ?ˆ
å”{¥E¤KÐ0Ð1ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð 	(ð 	(r   )Úbitwise_andÚbitwise_iandÚ
bitwise_orÚbitwise_iorÚbitwise_xorÚbitwise_ixorrí  rI  )r}  Úboolsc                 ó  — | j         j        }t          t          dd¦  «        ¦  «        dgz   }d„ |D ¦   «         }dg}t          j        t          j        fg}|                      |||||¬¦  «         t          t          dd¦  «        ¦  «        dd	gz   }dg}t          j        t          j        fg}|                      |||||¬¦  «         t          t          dd¦  «        ¦  «        d
gz   }d„ |D ¦   «         }dg}t          j        t          j        fg}|                      |||||¬¦  «         t          t          dd¦  «        ¦  «        ddgz   }dg}t          j	        t          j	        fg}|                      |||||¬¦  «         g d¢}t          t          t          j        |¦  «        ¦  «        }| j         j        }t          |t          j        f|¬¦  «        }|j        }|D ]*}	|                       ||	¦  «         ||	¦  «        ¦  «         Œ+d S )Nr   rÕ  rà  c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )rö   rS  ©Ú.0r   s     r   ú
<listcomp>z2TestOperators.test_bitwise_not.<locals>.<listcomp>¹  ó    € Ð7Ð7Ð7 q•b”i ‘l”lÐ7Ð7Ð7r   rØ   rç  r»  râ  rè  rá  c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )rö   rT  r÷  s     r   rù  z2TestOperators.test_bitwise_not.<locals>.<listcomp>Ê  rú  r   ré  rê  rF  )r  rU   rë  rì  r   rS  ró   rP  rT  rQ  Úmaprö   Úbool_rY   r   rG  rá   rå   )
rç   rÙ   rè   ré   rê   rë   Úvaluesr9  rî   Úvals
             r   Útest_bitwise_notzTestOperators.test_bitwise_notµ  sA  € Ø”Ô3ˆå�%  1™+œ+Ñ&Ô&¨)¨Ñ4ˆ
Ø7Ð7¨JÐ7Ñ7Ô7ˆ
Ø�Sˆ
å”|¥U¤\Ð2Ð3ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(õ �%  A™,œ,Ñ'Ô'¨8°YÐ*?Ñ?ˆ
Ø�Sˆ
å”{¥E¤KÐ0Ð1ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(õ �%  1™+œ+Ñ&Ô&¨)¨Ñ4ˆ
Ø7Ð7¨JÐ7Ñ7Ô7ˆ
Ø�Sˆ
å”|¥U¤\Ð2Ð3ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(õ �%  A™,œ,Ñ'Ô'¨8°YÐ*?Ñ?ˆ
Ø�Sˆ
å”{¥E¤KÐ0Ð1ˆ
à×Ò˜6 :¨z¸:Ø!&ð 	ñ 	(ô 	(ð 	(ð
 ,Ð+Ð+ˆÝ•c�"œ( FÑ+Ô+Ñ,Ô,ˆà”Ô,ˆÝ ­¬Ð(8ÀÐFÑFÔFˆØÔ ˆØð 	=ð 	=ˆCØ×#Ò# F F¨3¡K¤K°°°s±´Ñ<Ô<Ð<Ð<ð	=ð 	=r   c                 ó<   — |                       t          ¬¦  «         d S r  )r   r  r  s    r   Útest_bitwise_not_npmz"TestOperators.test_bitwise_not_npmå  r§  r   c                 ó¬   ‡ — ˆ fd„}g d¢}|D ]F}t          ‰ j        |¦  «        } ||t          j        t          j        f‰ j        |         ¬¦  «         ŒGdS )zI
        Make sure that bitwise float operations are not allowed
        c                 ó¦  •— d                      | ¦  «        }‰                     t          j        |¬¦  «        5 }t	          | |¦  «         d d d ¦  «         n# 1 swxY w Y   t
          dz   }|                      t          |t          ¦  «        r|nd                      |¦  «        ¦  «        }‰                     |t          |j	        ¦  «        ¦  «         d S )Nz'expecting TypingError when compiling {}rß   z {}zFunction({}))
Úformatr‚  r   ÚTypingErrorr   r
   Ú
isinstancer…  r„  r†  )rè   ÚargtypesÚopnamerà   rÑ  ÚfmtÚ	expectingrç   s          €r   Úassert_reject_compilez?TestOperators.test_bitwise_float.<locals>.assert_reject_compileì  s  ø€ Ø;×BÒBÀ6ÑJÔJˆCØ×"Ò"¥6Ô#5¸3Ð"Ñ?Ô?ð 3À6Ý  ¨Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ  Ñ&ˆCØŸ
š
Ý&0°½Ñ&=Ô&=ð$F 6 6à(6×(=Ò(=¸fÑ(EÔ(EñGô GˆIð �MŠM˜)¥S¨Ô)9Ñ%:Ô%:Ñ;Ô;Ð;Ð;Ð;s   ¸AÁAÁArÖ   )r	  N)rh  r  r   rY  Ú_bitwise_opnames)rç   r  ÚmethodsÚnamerè   s   `    r   Útest_bitwise_floatz TestOperators.test_bitwise_floatè  s™   ø€ ð		<ð 		<ð 		<ð 		<ð 		<ð
ð 
ð 
ˆð ð 	Fð 	FˆDÝ˜TœW dÑ+Ô+ˆFØ!Ð! &­5¬=½%¼-Ð*HØ)-Ô)>¸tÔ)DðFñ Fô Fð Fð Fð	Fð 	Fr   c                 ó¼   — | j         j        }g d¢}t          |dt          ¬¦  «        }|j        }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )N©r@  rA  rN  ç333333ó?ù        333333@r   rØ   )r  r[   r   rt  rá   r  ©rç   rè   rþ  r9  rî   rÿ  s         r   Útest_notzTestOperators.test_not
  s~   € Ø”Ô$ˆð
ð 
ð 
ˆõ   ¨Õ2CÐDÑDÔDˆØÔ ˆØð 	6ð 	6ˆCØ×Ò˜V˜V C™[œ[¨%¨%°©*¬*Ñ5Ô5Ð5Ð5ð	6ð 	6r   c                 ó˜  — | j         j        }t          j        t          j        t          j        t          j        t          j        g}g d¢}t          ||¦  «        D ]o\  }}t          ||g¦  «        }|  
                    |j        j        t          j        ¦  «         |j        }|  
                     ||¦  «         ||¦  «        ¦  «         Œpd S )Nr  )r  r[   r   Úint8rP  rQ  rY  r`  Úzipr   r  Ú	signatureÚreturn_typerG  rá   ©rç   rè   Úargtysrþ  Útyrÿ  r9  rî   s           r   Útest_not_npmzTestOperators.test_not_npm  sÈ   € Ø”Ô$ˆõ ŒJÝŒKÝŒKÝŒMÝÔð
ˆð
ð 
ð 
ˆõ ˜6 6Ñ*Ô*ð 	6ð 	6‰GˆB�Ý# F¨R¨DÑ1Ô1ˆDØ×Ò˜Tœ^Ô7½¼ÑGÔGÐGØÔ$ˆEØ×Ò˜V˜V C™[œ[¨%¨%°©*¬*Ñ5Ô5Ð5Ð5ð		6ð 	6r   c                 ó†  — | j         j        }t          j        t          j        t          j        t          j        t          j        t          j        t          j	        t          j	        g}g d¢}t          ||¦  «        D ]E\  }}t          ||g¦  «        }|j        }|                       ||¦  «         ||¦  «        ¦  «         ŒFd S ©N)r@  rA  rN  r  g333333@r  TF)r  r]   r   r  rP  rQ  rY  rZ  r`  rG  r  r   rá   ÚassertAlmostEqualr  s           r   Útest_negate_npmzTestOperators.test_negate_npm3  sº   € Ø”Ô'ˆõ ŒJÝŒKÝŒKÝŒMÝŒMÝÔÝŒMÝŒMð	
ˆð	
ð 	
ð 	
ˆõ ˜6 6Ñ*Ô*ð 	<ð 	<‰GˆB�Ý# F¨R¨DÑ1Ô1ˆDØÔ$ˆEØ×"Ò" 6 6¨#¡;¤;°°°c±
´
Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó¼   — | j         j        }g d¢}t          |dt          ¬¦  «        }|j        }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S ©N)r@  rA  rN  r  r  TFr   rØ   )r  r]   r   rt  rá   r  r  s         r   Útest_negatezTestOperators.test_negateP  s~   € Ø”Ô'ˆð
ð 
ð 
ˆõ   ¨Õ2CÐDÑDÔDˆØÔ ˆØð 	6ð 	6ˆCØ×Ò˜V˜V C™[œ[¨%¨%°©*¬*Ñ5Ô5Ð5Ð5ð	6ð 	6r   c                 ó†  — | j         j        }t          j        t          j        t          j        t          j        t          j        t          j        t          j	        t          j	        g}g d¢}t          ||¦  «        D ]E\  }}t          ||g¦  «        }|j        }|                       ||¦  «         ||¦  «        ¦  «         ŒFd S r!  )r  r_   r   r  rP  rQ  rY  rZ  r`  rG  r  r   rá   r"  r  s           r   Útest_unary_positive_npmz%TestOperators.test_unary_positive_npm`  sº   € Ø”Ô/ˆõ ŒJÝŒKÝŒKÝŒMÝŒMÝÔÝŒMÝŒMð	
ˆð	
ð 	
ð 	
ˆõ ˜6 6Ñ*Ô*ð 	<ð 	<‰GˆB�Ý# F¨R¨DÑ1Ô1ˆDØÔ$ˆEØ×"Ò" 6 6¨#¡;¤;°°°c±
´
Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó¼   — | j         j        }g d¢}t          |dt          ¬¦  «        }|j        }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S r%  )r  r_   r   rt  rá   r  r  s         r   Útest_unary_positivez!TestOperators.test_unary_positive|  s~   € Ø”Ô/ˆð
ð 
ð 
ˆõ   ¨Õ2CÐDÑDÔDˆØÔ ˆØð 	6ð 	6ˆCØ×Ò˜V˜V C™[œ[¨%¨%°©*¬*Ñ5Ô5Ð5Ð5ð	6ð 	6r   c                 óÜ   — t           j        }t          ||t          j        |d¦  «        f|¬¦  «        }|j        }dD ].}d}|                       |||¦  «         |||¦  «        ¦  «         Œ/d S )NrN  rØ   )rN  r»  é   é   é*   )rN  r.  r,  )r   rQ  r   ÚUniTuplerá   rå   )rç   rè   rÙ   rû   r9  rî   ÚiÚtups           r   Ú	_check_inzTestOperators._check_inŒ  sŒ   € Ý”ˆÝ ¨µ´¸uÀaÑ0HÔ0HÐ(IØ&+ð-ñ -ô -ˆàÔ ˆØ!ð 	Cð 	CˆAØˆCØ×#Ò# F F¨1¨c¡N¤N°E°E¸!¸S±M´MÑBÔBÐBÐBð	Cð 	Cr   c                 óF   — |                       | j        j        |¦  «         d S r   )r2  r  ro   r  s     r   Útest_inzTestOperators.test_in•  s!   € Ø�Š�t”wÔ)¨5Ñ1Ô1Ð1Ð1Ð1r   c                 ó<   — |                       t          ¬¦  «         d S r  )r4  r  r  s    r   Útest_in_npmzTestOperators.test_in_npm˜  s   € Ø�Š�7ˆÑ#Ô#Ð#Ð#Ð#r   c                 óF   — |                       | j        j        |¦  «         d S r   )r2  r  rr   r  s     r   Útest_not_inzTestOperators.test_not_in›  s!   € Ø�Š�t”wÔ-¨uÑ5Ô5Ð5Ð5Ð5r   c                 ó<   — |                       t          ¬¦  «         d S r  )r8  r  r  s    r   Útest_not_in_npmzTestOperators.test_not_in_npmž  s   € Ø×Ò�wÐÑ'Ô'Ð'Ð'Ð'r   N)F)dru   rv   rw   Ú__doc__r   r  r|   r¢   r¤   r¦   r¨   rª   r¬   r®   r°   r²   r´   r·   r  rt  ró   rù   r  r  r
  r   rP  rQ  rS  rT  rY  rZ  r  r_  r`  r  r  r  r   r"  r$  r&  r(  r*  r-  r0  r2  r4  r:  rD  rI  rU  r[  r]  ra  r|  ÚlocalsrŠ  rŽ  r�  r’  r”  r—  r™  rž  r   r¤  r¦  rª  r­  r¯  r±  r³  rµ  r·  r¹  rÂ  rÅ  rÇ  r   rÍ  rÏ  rÒ  rÜ  rã  rí  r   r  r  r  r  r#  r&  r(  r*  r2  r4  r6  r8  r:  r   r   r   rÕ   rÕ   l  sz  € € € € € ðð ð 
€Bð "*¤Ø"*Ô"2Ø"*¤/Ø#+Ô#3Ø'œ}Ø (¤Ø&œlØ'œ|Ø'œ|Ø (¤Ø&.¤oðð Ðð .ð@ð @ð @ð @ð, 0ðIð Ið Ið Ið
ð 
ð 
ð 5FØ(,ð0ð 0ð 0ð 0ð2 KÐJÐJÐØ”[ %¤+Ø”\ 5¤<Ø”] E¤Mð3€Mð  %œ°Ô0@ÐAÐà#4ð @ð @ð @ð @ð+ð +ð +ð $5ð @ð @ð @ð @ð+ð +ð +ð $5ð @ð @ð @ð @ð+ð +ð +ð $5ð @ð @ð @ð @ð+ð +ð +ð $5ð Oð Oð Oð Oð+ð +ð +ð $5ð Oð Oð Oð Oð+ð +ð +ð3ð 3ð 3ð
&ð &ð &ð$ ->ð (ð (ð (ð (ð ,=ð (ð (ð (ð (ð( .?ð *ð *ð *ð *ð 7Hð 3ð 3ð 3ð 3ð /@ð *ð *ð *ð *ð.ð .ð .ð .ð> Ð˜˜™œØFØ"2Ø$6Ø%8ðð ñô ð ð Ð˜˜™œØ0Ø"2Ø$6Ø%8ðð ñô ð ð Ð˜˜™œØAØ"2Ø$?ðð ñô ð ð 9JØ',ð6ð 6ð 6ð 6ð" ):ð 2ð 2ð 2ð 2ð0ð 0ð 0ð *;ð Sð Sð Sð Sð1ð 1ð 1ð %6ð Lð Lð Lð Lð,ð ,ð ,ð *;ð (ð (ð (ð (ð( ,=ð *ð *ð *ð *ð( Ð˜˜™œØ(Ø"0Ø$4ðð ñô ð ð &7ð 
*ð 
*ð 
*ð 
*ð-ð -ð -ð &7ð 
*ð 
*ð 
*ð 
*ð-ð -ð -ð &7ð 
*ð 
*ð 
*ð 
*ð-ð -ð -ð *;ð 
*ð 
*ð 
*ð 
*ð1ð 1ð 1ð &7ð Pð Pð Pð Pð
-ð -ð -ð%ð %ð %ðIð Ið IðIð Ið Ið ð
!ð 
!ñ „Zð
!ð6ð 6ð 6ð;ð ;ð ;ð /@ð (ð (ð (ð (ðB Ð˜˜™œØ<Ø Ð"5ð ñô ð ð
 0Að (ð (ð (ð (ðB Ð˜˜™œØ>Ø Ð"6ð ñô ð ð
 ):ð (ð (ð (ð (ðB Ð˜˜™œð9ð #0Ø#4ðð ñ	ô ð ð &7ð .=ð .=ð .=ð .=ð`-ð -ð -ð Fð  Fð  FðD6ð 6ð 6ð 6ð 6ð 6ð2<ð <ð <ð:6ð 6ð 6ð <ð <ð <ð86ð 6ð 6ð Cð Cð Cð .ð 2ð 2ð 2ð 2ð$ð $ð $ð !2ð 6ð 6ð 6ð 6ð(ð (ð (ð (ð (r   rÕ   c                   óœ   — e Zd ZeZej        ej        ej        ej	        ej
        ej        ej        ej        ej        ej        ej        dœZdS )ÚTestOperatorModulerÖ   N)ru   rv   rw   rz   r  r|   r¢   r¤   r¦   r¨   rª   r¬   r®   r°   r²   r´   r·   r  r   r   r   r>  r>  ¢  s]   € € € € € à	€Bð "*¤Ø"*Ô"2Ø"*¤/Ø#+Ô#3Ø'œ}Ø (¤Ø&œlØ'œ|Ø'œ|Ø (¤Ø&.¤oðð ÐÐÐr   r>  c                   óŠ  — e Zd ZdZeZg d¢Zej        ej	        ej
        ej        gZd„ eD ¦   «         Zd„ eD ¦   «         Z e ej        ee¦  «        ¦  «        Zd„ eD ¦   «         Zd„ eD ¦   «         Zd„ Zd„ Zd	„ Zd
„ Zd„ Zed„ fd„Zefd„Zed„ 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+d„ Z,d „ Z-d!S )"ÚTestMixedIntsz<
    Tests for operator calls with mixed integer types.
    )r   r@  rN  é
   r.  é   i'  rM  rL  iöÿÿÿiÖÿÿÿi�ÿÿÿiðØÿÿc                 ó    — g | ]}|j         ¯	|‘ŒS r   ©Úsigned©rø  rˆ  s     r   rù  zTestMixedInts.<listcomp>¿  s   € Ð8Ð8Ð8˜2¨b¬iÐ8�BÐ8Ð8Ð8r   c                 ó    — g | ]}|j         °	|‘ŒS r   rD  rF  s     r   rù  zTestMixedInts.<listcomp>À  s   € Ð>Ð>Ð>˜R°B´IÐ>�bÐ>Ð>Ð>r   c                 ó8   — g | ]\  }}|j         s|j         ¯||f‘ŒS r   rD  ©rø  ÚuÚvs      r   rù  zTestMixedInts.<listcomp>Â  s@   € ð -ð -ð -™t˜q !Ø”xð-Ø#$¤8ð-�Q˜�Fð -ð -ð -r   c                 ó8   — g | ]\  }}|j         °|j         °||f‘ŒS r   rD  rI  s      r   rù  zTestMixedInts.<listcomp>Ä  s@   € ð 5ð 5ð 5¡  AØœhð5Ø*+¬(ð5�q˜!�fð 5ð 5ð 5r   c                 ó¢   — t          d„ |D ¦   «         ¦  «        }t          |t          j        j        ¦  «        }t	          t
          d|z  ¦  «        S )Nc              3   ó4   K  — | ]}|j         j        d z  V — ŒdS ©rÕ  N©rû   Úitemsize©rø  rK  s     r   ú	<genexpr>z8TestMixedInts.get_numpy_signed_upcast.<locals>.<genexpr>È  ó,   è è € Ð:Ð:°�q”wÔ'¨!Ñ+Ð:Ð:Ð:Ð:Ð:Ð:r   zint%d©Úmaxr   ÚintpÚbitwidthrh  rö   ©rç   ÚvalsrX  s      r   Úget_numpy_signed_upcastz%TestMixedInts.get_numpy_signed_upcastÇ  sG   € ÝÐ:Ð:°TÐ:Ñ:Ô:Ñ:Ô:ˆÝ�x¥¤Ô!4Ñ5Ô5ˆÝ•r˜7 XÑ-Ñ.Ô.Ð.r   c                 ó¢   — t          d„ |D ¦   «         ¦  «        }t          |t          j        j        ¦  «        }t	          t
          d|z  ¦  «        S )Nc              3   ó4   K  — | ]}|j         j        d z  V — ŒdS rO  rP  rR  s     r   rS  z:TestMixedInts.get_numpy_unsigned_upcast.<locals>.<genexpr>Í  rT  r   zuint%drU  rY  s      r   Úget_numpy_unsigned_upcastz'TestMixedInts.get_numpy_unsigned_upcastÌ  sG   € ÝÐ:Ð:°TÐ:Ñ:Ô:Ñ:Ô:ˆÝ�x¥¤Ô!4Ñ5Ô5ˆÝ•r˜8 hÑ.Ñ/Ô/Ð/r   c                 óH   —  t          t          |j        ¦  «        |¦  «        S r   )rh  rö   r  )rç   r  rÿ  s      r   Úget_typed_intzTestMixedInts.get_typed_intÑ  s   € Ø$�w•r˜3œ8Ñ$Ô$ SÑ)Ô)Ð)r   c                 ó@   ‡ ‡— t          t          |¦  «        Šˆˆ fd„}|S )Nc                 ól   •— ‰                      | |¦  «        } ‰ || ¦  «         ||¦  «        ¦  «        S r   ©r[  ©rÀ  rÁ  rˆ  r  rç   s      €€r   Úcontrol_signedz8TestMixedInts.get_control_signed.<locals>.control_signedÖ  s:   ø€ Ø×-Ò-¨a°Ñ3Ô3ˆBØ�2�b�b˜‘e”e˜R˜R ™UœUÑ#Ô#Ð#r   ©rh  r|   )rç   r	  re  r  s   `  @r   Úget_control_signedz TestMixedInts.get_control_signedÔ  s9   øø€ Ý•X˜vÑ&Ô&ˆð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð Ðr   c                 ó@   ‡ ‡— t          t          |¦  «        Šˆˆ fd„}|S )Nc                 ól   •— ‰                      | |¦  «        } ‰ || ¦  «         ||¦  «        ¦  «        S r   ©r^  rd  s      €€r   Úcontrol_unsignedz<TestMixedInts.get_control_unsigned.<locals>.control_unsignedÝ  s:   ø€ Ø×/Ò/°°1Ñ5Ô5ˆBØ�2�b�b˜‘e”e˜R˜R ™UœUÑ#Ô#Ð#r   rf  )rç   r	  rk  r  s   `  @r   Úget_control_unsignedz"TestMixedInts.get_control_unsignedÛ  s9   øø€ Ý•X˜vÑ&Ô&ˆð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð  Ðr   c                 ó   — | S r   r   rX   s    r   ú<lambda>zTestMixedInts.<lambda>ã  s   € ¸1€ r   c           	      ó¨  — |D ]Î\  }}	t          |||	ft          ¬¦  «        }
|
j        }t          j        ||¦  «        D ]“\  }}|                      ||¦  «        }|                      |	|¦  «        } |||¦  «        } |||¦  «        }|                      ||¦  «         d|›d|›d||	f›�} ||¦  «         ||¦  «        }} | j        ||fd|i|¤Ž Œ”ŒÏd S )NrØ   rÚ   rÛ   rÜ   rà   )r   r  rá   râ   rã   r`  ÚassertIsInstancerå   )rç   rè   Úcontrol_funcÚoperandsr   Úexpected_typeÚ
force_typeÚassertPreciseEqualArgsÚxtÚytrí   rî   r   r   rò   rñ   rà   s                    r   Ú
run_binaryzTestMixedInts.run_binaryâ  sA  € ð ð 	Bð 	B‰FˆB�Ý! &¨2¨r¨(½'ÐBÑBÔBˆBØ”NˆEÝ!Ô)¨(°HÑ=Ô=ð Bð B‘��1à×&Ò& r¨1Ñ-Ô-�Ø×&Ò& r¨1Ñ-Ô-�Ø'˜<¨¨1Ñ-Ô-�Ø�e˜A˜q‘k”k�Ø×%Ò% c¨=Ñ9Ô9Ð9Ð9à˜!˜!˜Q˜Q˜Q  R  ð*�à * 
¨3¡¤°°¸HÑ1EÔ1E�X�Ø'�Ô'¨¨Xð Bð B¸3ð BØ*@ðBð Bð Bð BðBð	Bð 	Br   c                 ó$  — |D ]Œ}t          ||ft          ¬¦  «        }|j        }|D ]h}	|                      ||	¦  «        }	 ||	¦  «        }
 ||	¦  «        }|                      ||¦  «         |                      ||
d|	›d|›d|›d|
›�¬¦  «         ŒiŒ�d S )NrØ   zmismatch for z with type rÝ   rÞ   rß   )r   r  rá   r`  rp  rå   )rç   rè   rq  rr  r   rs  rv  rí   rî   r   rò   rñ   s               r   Ú	run_unaryzTestMixedInts.run_unaryõ  sÖ   € àð 	2ð 	2ˆBÝ! &¨2¨%µwÐ?Ñ?Ô?ˆBØ”NˆEØð 2ð 2�Ø×&Ò& r¨1Ñ-Ô-�Ø'˜<¨™?œ?�Ø�e˜A‘h”h�Ø×%Ò% c¨=Ñ9Ô9Ð9Ø×'Ò'Ø˜˜à˜1˜1˜b˜b˜b # # # x xð1ð (ñ 2ô 2ð 2ð 2ð2ð	2ð 	2r   c                 ó   — | S r   r   rX   s    r   rn  zTestMixedInts.<lambda>  s   € À€ r   c                 ó¶   —  | j         ||                      |¦  «        || j        |fd|i|¤Ž  | j         ||                      |¦  «        || j        |fd|i|¤Ž d S )Nrt  )rx  rg  Úsigned_pairsrl  Úunsigned_pairs)rç   rè   r	  Úsamplesrs  rt  ru  s          r   Úrun_arith_binopzTestMixedInts.run_arith_binop  s¢   € ð 	ˆŒ˜ × 7Ò 7¸Ñ ?Ô ?Ø Ô!2°Mð	2ð 	2à#-ð	2ð 1ð	2ð 	2ð 	2ð 	ˆŒ˜ × 9Ò 9¸&Ñ AÔ AØ Ô!4°mð	2ð 	2à#-ð	2ð 1ð	2ð 	2ð 	2ð 	2ð 	2r   c                 óR   — |                       | j        j        d| j        ¦  «         d S )Nr}   )r€  r  r    Úint_samplesr  s    r   Útest_addzTestMixedInts.test_add  ó(   € Ø×Ò˜TœWÔ0°%¸Ô9IÑJÔJÐJÐJÐJr   c                 óR   — |                       | j        j        d| j        ¦  «         d S )Nrƒ   )r€  r  r&   r‚  r  s    r   Útest_subzTestMixedInts.test_sub  r„  r   c                 óR   — |                       | j        j        d| j        ¦  «         d S )Nr‡   )r€  r  r*   r‚  r  s    r   Útest_mulzTestMixedInts.test_mul  r„  r   c                 ój   — d„ | j         D ¦   «         }|                      | j        j        d|¦  «         d S )Nc                 ó   — g | ]
}|d k    ¯|‘ŒS ©r   r   r÷  s     r   rù  z/TestMixedInts.test_floordiv.<locals>.<listcomp>  ó   € Ð9Ð9Ð9˜°!°q²&°&�1°&°&°&r   r‹   )r‚  r€  r  r.   ©rç   r  s     r   Útest_floordivzTestMixedInts.test_floordiv  s;   € Ø9Ð9˜dÔ.Ð9Ñ9Ô9ˆØ×Ò˜TœWÔ5°zÀ7ÑKÔKÐKÐKÐKr   c                 ój   — d„ | j         D ¦   «         }|                      | j        j        d|¦  «         d S )Nc                 ó   — g | ]
}|d k    ¯|‘ŒS r‹  r   r÷  s     r   rù  z*TestMixedInts.test_mod.<locals>.<listcomp>  rŒ  r   r•   )r‚  r€  r  r8   r�  s     r   Útest_modzTestMixedInts.test_mod  s;   € Ø9Ð9˜dÔ.Ð9Ñ9Ô9ˆØ×Ò˜TœWÔ0°%¸ÑAÔAÐAÐAÐAr   c                 ó
  ‡ — i }t           j        dk    r
t          |d<   ‰ j        j        }d„ ‰ j        D ¦   «         } ‰ j        |d|fi |¤Ž ˆ fd„}d„ ‰ j        D ¦   «         }d„ ‰ j        D ¦   «         } ‰ j        ||||fi |¤Ž d S )N)rN  é   rt  c                 ó   — g | ]
}|d k    ¯|‘ŒS r‹  r   r÷  s     r   rù  z*TestMixedInts.test_pow.<locals>.<listcomp>(  rŒ  r   r™   c                 óØ   •— ‰                      | |¦  «        }|dk    r || ¦  «         ||¦  «        z  S  || ¦  «         || ¦  «        z  }|dk    rdS t          j        d|z  ¦  «        S )Nr   g      ð?)r[  rö   rW  )rÀ  rÁ  rˆ  Úinvrç   s       €r   re  z.TestMixedInts.test_pow.<locals>.control_signed,  sx   ø€ Ø×-Ò-¨a°Ñ3Ô3ˆBØ�AŠvˆvØ�r˜!‘u”u   1¡¤‘~Ð%à�b˜‘e”e˜r˜r 1 "™vœv‘o�Ø˜!’8�8à˜1Ý”w˜s S™yÑ)Ô)Ð)r   c                 ó   — g | ]
}|d k    ¯|‘ŒS r‹  r   r÷  s     r   rù  z*TestMixedInts.test_pow.<locals>.<listcomp>6  rŒ  r   c                 ó8   — g | ]\  }}|j         ¯|j         ¯||f‘ŒS r   rD  rI  s      r   rù  z*TestMixedInts.test_pow.<locals>.<listcomp>7  s@   € ð 2ð 2ð 2¡4 1 aØœ8ð2Ø()¬ð2˜˜A˜ð 2ð 2ð 2r   )	r   Ú	PYVERSIONr  r  r   r‚  r€  Ú
type_pairsrx  )rç   Ú
extra_castrè   r  re  r}  s   `     r   Útest_powzTestMixedInts.test_pow!  sæ   ø€ Øˆ
ÝŒ?˜gÒ%Ð%Ý',ˆJ�|Ñ$Ø”Ô$ˆð :Ð9˜dÔ.Ð9Ñ9Ô9ˆØˆÔ˜V U¨GÐBÐB°zÐBÐBÐBð		*ð 		*ð 		*ð 		*ð 		*ð :Ð9˜dÔ.Ð9Ñ9Ô9ˆð2ð 2¨4¬?ð 2ñ 2ô 2ˆàˆŒ˜ Ø ð	=ð 	=Ø1;ð	=ð 	=ð 	=ð 	=ð 	=r   c                 óÚ   — d„ }d„ | j         D ¦   «         }| j        j        }|                      |||| j        t
          d¬¦  «         |                      |||| j        t
          d¬¦  «         d S )Nc                 ó@   — t          | ¦  «        t          |¦  «        z  S r   )r  ©rÀ  rÁ  s     r   Úcontrolz+TestMixedInts.test_truediv.<locals>.control>  s   € Ý˜‘8”8�e A™hœhÑ&Ð&r   c                 ó   — g | ]
}|d k    ¯|‘ŒS r‹  r   r÷  s     r   rù  z.TestMixedInts.test_truediv.<locals>.<listcomp>@  rŒ  r   Údouble)rs  Úprec)r‚  r  r4   rx  r}  r  r~  ©rç   r   r  rè   s       r   Útest_truedivzTestMixedInts.test_truediv<  s“   € ð	'ð 	'ð 	'à9Ð9˜dÔ.Ð9Ñ9Ô9ˆØ”Ô(ˆð
 	�Š˜ ¨°$Ô2CÝ&+°(ð 	ñ 	<ô 	<ð 	<à�Š˜ ¨°$Ô2EÝ&+°(ð 	ñ 	<ô 	<ð 	<ð 	<ð 	<r   c                 óR   — |                       | j        j        d| j        ¦  «         d S )Nrª   )r€  r  rG   r‚  r  s    r   Útest_andzTestMixedInts.test_andK  s(   € Ø×Ò˜TœWÔ8¸&À$ÔBRÑSÔSÐSÐSÐSr   c                 óR   — |                       | j        j        d| j        ¦  «         d S )Nr®   )r€  r  rK   r‚  r  s    r   Útest_orzTestMixedInts.test_orN  s(   € Ø×Ò˜TœWÔ7¸ÀÔ@PÑQÔQÐQÐQÐQr   c                 óR   — |                       | j        j        d| j        ¦  «         d S )Nr²   )r€  r  rO   r‚  r  s    r   Útest_xorzTestMixedInts.test_xorQ  s(   € Ø×Ò˜TœWÔ8¸%ÀÔAQÑRÔRÐRÐRÐRr   c                 ó  ‡ ‡‡
‡— t          t          |¦  «        Š
ˆ
ˆ fd„}ˆ
ˆ fd„}‰ j        Šˆˆˆ fd„}d„ ‰ j        D ¦   «         }d„ ‰ j        D ¦   «         }|D ]\  }}	 |||	|¦  «         Œ|D ]\  }}	 |||	|¦  «         Œd S )Nc                 ól   •— ‰                      | |¦  «        } ‰ || ¦  «         ||¦  «        ¦  «        S r   rc  ©rÀ  rÁ  rˆ  Úopfuncrç   s      €€r   re  z5TestMixedInts.run_shift_binop.<locals>.control_signedV  s:   ø€ Ø×-Ò-¨a°Ñ3Ô3ˆBØ�6˜"˜"˜Q™%œ%   A¡¤Ñ'Ô'Ð'r   c                 ól   •— ‰                      | |¦  «        } ‰ || ¦  «         ||¦  «        ¦  «        S r   rj  r®  s      €€r   rk  z7TestMixedInts.run_shift_binop.<locals>.control_unsignedY  s:   ø€ Ø×/Ò/°°1Ñ5Ô5ˆBØ�6˜"˜"˜Q™%œ%   A¡¤Ñ'Ô'Ð'r   c           	      óT  •— t          ‰| |ft          ¬¦  «        }|j        }‰D ]ƒ}| j        dz
  }dddd|dz
  |fD ]k}‰                     | |¦  «        }‰                     ||¦  «        } |||¦  «        } |||¦  «        }	d|›d|›d| |f›�}
‰                     |	||
¬	¦  «         ŒlŒ„d S )
NrØ   r@  r   rN  r,  rÚ   rÛ   rÜ   rß   )r   r  rá   rX  r`  rå   )rv  rw  rq  rí   rî   r   Úmaxshiftr   rò   rñ   rà   rè   r  rç   s              €€€r   Úcheckz,TestMixedInts.run_shift_binop.<locals>.check_  sú   ø€ Ý! &¨2¨r¨(½'ÐBÑBÔBˆBØ”NˆEØð Dð D�ð œ;¨™?�Ø˜Q  1 h°¡l°HÐ=ð Dð D�Aà×*Ò*¨2¨qÑ1Ô1�AØ×*Ò*¨2¨qÑ1Ô1�AØ+˜|¨A¨qÑ1Ô1�HØ˜%  1™+œ+�C�Cà˜a˜a    R¨ H Hð.�Cà×+Ò+¨C°¸sÐ+ÑCÔCÐCÐCðDð	Dð Dr   c                 ó*   — g | ]\  }}|j         ¯||f‘ŒS r   rD  rI  s      r   rù  z1TestMixedInts.run_shift_binop.<locals>.<listcomp>r  s6   € ð %ð %ð %¡4 1 aØœ8ð%˜˜A˜ð %ð %ð %r   c                 ó*   — g | ]\  }}|j         °||f‘ŒS r   rD  rI  s      r   rù  z1TestMixedInts.run_shift_binop.<locals>.<listcomp>t  s6   € ð +ð +ð +¡T Q¨Ø!"¤ð+˜1˜a˜&ð +ð +ð +r   )rh  r|   r‚  rš  )rç   rè   r	  re  rk  r³  r}  r~  rv  rw  r¯  r  s   ``        @@r   Úrun_shift_binopzTestMixedInts.run_shift_binopT  s$  øøøø€ Ý� 6Ñ*Ô*ˆð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð Ô"ˆð	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð&%ð %¨4¬?ð %ñ %ô %ˆð+ð +¨T¬_ð +ñ +ô +ˆð #ð 	*ð 	*‰FˆB�ØˆE�"�b˜.Ñ)Ô)Ð)Ð)Ø$ð 	,ð 	,‰FˆB�ØˆE�"�bÐ*Ñ+Ô+Ð+Ð+ð	,ð 	,r   c                 óF   — |                       | j        j        d¦  «         d S )Nr¢   )r¶  r  r?   r  s    r   Útest_lshiftzTestMixedInts.test_lshift|  s#   € Ø×Ò˜TœWÔ:¸HÑEÔEÐEÐEÐEr   c                 óF   — |                       | j        j        d¦  «         d S )Nr¦   )r¶  r  rC   r  s    r   Útest_rshiftzTestMixedInts.test_rshift  s#   € Ø×Ò˜TœWÔ;¸XÑFÔFÐFÐFÐFr   c                 ól   — d„ }| j         }| j        j        }|                      |||| j        ¦  «         d S )Nc                 ó   — | S r   r   )rÀ  s    r   r   z2TestMixedInts.test_unary_positive.<locals>.controlƒ  s   € ØˆHr   )r‚  r  r_   rz  Ú	int_typesr¤  s       r   r*  z!TestMixedInts.test_unary_positive‚  sC   € ð	ð 	ð 	àÔ"ˆØ”Ô/ˆà�Š�v˜w¨°´Ñ@Ô@Ð@Ð@Ð@r   c                 ó¶   ‡ — ˆ fd„}ˆ fd„}‰ j         }‰ j        j        }‰                      |||‰ j        ¦  «         ‰                      |||‰ j        ¦  «         d S )Nc                 óF   •— ‰                      | ¦  «        } ||  ¦  «        S r   rc  ©rÀ  rˆ  rç   s     €r   re  z9TestMixedInts.test_unary_negative.<locals>.control_signed‹  ó%   ø€ Ø×-Ò-¨aÑ0Ô0ˆBØ�2�q�b‘6”6ˆMr   c                 óF   •— ‰                      | ¦  «        } ||  ¦  «        S r   rj  rÀ  s     €r   rk  z;TestMixedInts.test_unary_negative.<locals>.control_unsignedŽ  ó%   ø€ Ø×/Ò/°Ñ2Ô2ˆBØ�2�q�b‘6”6ˆMr   )r‚  r  r]   rz  Úsigned_typesÚunsigned_types©rç   re  rk  r  rè   s   `    r   Útest_unary_negativez!TestMixedInts.test_unary_negativeŠ  s†   ø€ ð	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð Ô"ˆØ”Ô'ˆà�Š�v˜~¨w¸Ô8IÑJÔJÐJØ�Š�vÐ/°¸$Ô:MÑNÔNÐNÐNÐNr   c                 ó¶   ‡ — ˆ fd„}ˆ fd„}‰ j         }‰ j        j        }‰                      |||‰ j        ¦  «         ‰                      |||‰ j        ¦  «         d S )Nc                 óF   •— ‰                      | ¦  «        } ||  ¦  «        S r   rc  rÀ  s     €r   re  z1TestMixedInts.test_invert.<locals>.control_signed˜  rÁ  r   c                 óF   •— ‰                      | ¦  «        } ||  ¦  «        S r   rj  rÀ  s     €r   rk  z3TestMixedInts.test_invert.<locals>.control_unsigned›  rÃ  r   )r‚  r  rY   rz  rÄ  rÅ  rÆ  s   `    r   Útest_invertzTestMixedInts.test_invert—  s†   ø€ ð	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð Ô"ˆØ”Ô,ˆà�Š�v˜~¨w¸Ô8IÑJÔJÐJØ�Š�vÐ/°¸$Ô:MÑNÔNÐNÐNÐNr   N).ru   rv   rw   r;  r   r  r‚  r   r  Úuint8rQ  rT  r½  rÄ  rÅ  rë  râ   rã   rš  r}  r~  r[  r^  r`  rg  rl  r   rx  rz  r€  rƒ  r†  rˆ  rŽ  r‘  rœ  r¥  r§  r©  r«  r¶  r¸  rº  r*  rÇ  rË  r   r   r   r@  r@  µ  s�  € € € € € ðð ð 
€BàOÐOÐO€Kà”˜Uœ[¨%¬+°u´|ÐD€IØ8Ð8 Ð8Ñ8Ô8€LØ>Ð> 9Ð>Ñ>Ô>€NØ�Ð'�iÔ'¨	°9Ñ=Ô=Ñ>Ô>€Jð-ð - zð -ñ -ô -€Lð5ð 5¨ð 5ñ 5ô 5€Nð/ð /ð /ð
0ð 0ð 0ð
*ð *ð *ðð ð ð ð  ð  ð "%°°ðBð Bð Bð Bð( !$ð2ð 2ð 2ð 2ð  '*°k°kð
2ð 
2ð 
2ð 
2ðKð Kð KðKð Kð KðKð Kð KðLð Lð LðBð Bð Bð=ð =ð =ð6<ð <ð <ðTð Tð TðRð Rð RðSð Sð Sð&,ð &,ð &,ðPFð Fð FðGð Gð GðAð Að AðOð Oð OðOð Oð Oð Oð Or   r@  c                   ó   — e Zd ZeZdS )ÚTestMixedIntsOperatorModuleN)ru   rv   rw   rz   r  r   r   r   rÎ  rÎ  ¥  s   € € € € € à	€B€B€Br   rÎ  c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚTestStaticPowerz`
    Test the ** operator with a static exponent, to exercise a
    dedicated optimization.
    c           	      ó®  — |D ]Ñ}t           j        }t          |¦  «        } t          d¬¦  «        |¦  «        } t          d¬¦  «        |¦  «        }|D ]}	  |||¦  «        }	 ||¦  «        }
|                      |	|
d¬¦  «         Œ3# t
          $ r@ |                      t
          ¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   Y Œ|w xY wŒÒd S )NTr<  r¢  )r£  )r   r   r   r   rå   rƒ  r‚  )rç   Ú	exponentsrþ  r   Úregular_funcÚstatic_funcÚstatic_cfuncÚregular_cfuncrK  rò   rñ   s              r   Ú
_check_powzTestStaticPower._check_pow°  sY  € Øð 	Jð 	JˆCå.Ô:ˆLÝ+¨CÑ0Ô0ˆKà-�3¨Ð-Ñ-Ô-¨kÑ:Ô:ˆLØ.�C¨Ð.Ñ.Ô.¨|Ñ<Ô<ˆMØð Jð J�ðJØ,˜}¨Q°Ñ4Ô4�Hð
 '˜, q™/œ/�CØ×+Ò+¨H°cÀÐ+ÑIÔIÐIÐIøõ )ð (ð (ð (Ø×*Ò*Õ+<Ñ=Ô=ð (ð (Ø$˜ Q™œ˜ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (øøð(øøøðJð	Jð 	Js6   ÁBÂ$CÂ+C	Â7CÃCÃCÃ
CÃCÃCc           	      ó”   — g d¢}dddddt          j        d¦  «        t          j        d¦  «        g}|                      ||¦  «         d S )	N)	r@  rA  rN  r,  é   r   rM  rœ  rL  r   r@  rN  rM  rç  rL  r»  )rö   r  Úuint16r×  ©rç   rÒ  rZ  s      r   Útest_int_valueszTestStaticPower.test_int_valuesÂ  sK   € Ø3Ð3Ð3ˆ	Ø�1�a˜˜R¥¤¨¡¤­b¬i¸©l¬lÐ;ˆà�Š˜	 4Ñ(Ô(Ð(Ð(Ð(r   c                 ó¢   — g d¢}dddt          j        d¦  «        t          d¦  «        t          d¦  «        g}|                      ||¦  «         d S )N)r@  rA  rN  r,  rÙ  r   rM  rœ  rL  i iîîîÿr  g      
@g      ô¿g       ÀÚinfÚnan)rö   rY  r  r×  rÛ  s      r   Útest_real_valuesz TestStaticPower.test_real_valuesÈ  sO   € ØHÐHÐHˆ	Ø�T˜5¥"¤*¨TÑ"2Ô"2µE¸%±L´LÅ%ÈÁ,Ä,ÐOˆà�Š˜	 4Ñ(Ô(Ð(Ð(Ð(r   N)ru   rv   rw   r;  r×  rÜ  rà  r   r   r   rÐ  rÐ  ª  sN   € € € € € ðð ð
Jð Jð Jð$)ð )ð )ð)ð )ð )ð )ð )r   rÐ  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestStringConstComparisonz-
    Test comparison of string constants
    c                 ó  — d„ }d„ } t          d¬¦  «        |¦  «        } t          d¬¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         |                       |¦   «          |¦   «         ¦  «         d S )Nc                  ó   — d} | dk    S ©NÚtestr   ©Úss    r   Ú
test_impl1z5TestStringConstComparison.test_eq.<locals>.test_impl1Ó  ó   € ØˆAØ˜’;Ðr   c                  ó   — d} | dk    S ©NÚtest1ræ  r   rç  s    r   Ú
test_impl2z5TestStringConstComparison.test_eq.<locals>.test_impl2×  ó   € ØˆAØ˜’;Ðr   Tr<  ©r   r  ©rç   ré  rî  Úcfunc1Úcfunc2s        r   Útest_eqz!TestStringConstComparison.test_eqÒ  ó    € ð	ð 	ð 	ð	ð 	ð 	ð $•˜dÐ#Ñ#Ô# JÑ/Ô/ˆØ#•˜dÐ#Ñ#Ô# JÑ/Ô/ˆØ×Ò˜˜™œ v v¡x¤xÑ0Ô0Ð0Ø×Ò˜˜™œ v v¡x¤xÑ0Ô0Ð0Ð0Ð0r   c                 ó  — d„ }d„ } t          d¬¦  «        |¦  «        } t          d¬¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         |                       |¦   «          |¦   «         ¦  «         d S )Nc                  ó   — d} | dk    S rå  r   rç  s    r   ré  z6TestStringConstComparison.test_neq.<locals>.test_impl1á  rê  r   c                  ó   — d} | dk    S rì  r   rç  s    r   rî  z6TestStringConstComparison.test_neq.<locals>.test_impl2å  rï  r   Tr<  rð  rñ  s        r   Útest_neqz"TestStringConstComparison.test_neqà  rõ  r   N)ru   rv   rw   r;  rô  rù  r   r   r   râ  râ  Î  s<   € € € € € ðð ð1ð 1ð 1ð1ð 1ð 1ð 1ð 1r   râ  c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestBooleanLiteralOperatorsz/
    Test operators with Boolean constants
    c                 ó  ‡	‡
— ˆ	fd„}ˆ
fd„}d„ }t          j        ddgd¬¦  «        D ]F\  Š	} t          d¬¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒGt          j        ddgd¬¦  «        D ]F\  }Š
 t          d¬¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒG t          d¬¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         d S )	Nc                 ó   •— ‰| k    S r   r   ©rÁ  Úa_vals    €r   ré  z7TestBooleanLiteralOperators.test_eq.<locals>.test_impl1ô  ó   ø€ Ø˜A’:Ðr   c                 ó   •— | ‰k    S r   r   ©rÀ  Úb_vals    €r   rî  z7TestBooleanLiteralOperators.test_eq.<locals>.test_impl2÷  ó   ø€ Ø˜’:Ðr   c                  ó>   — ddk    } ddk    }ddk    }ddk    }| |||fS ©NTFr   ©Úr1Úr2Úr3Úr4s       r   Ú
test_impl3z7TestBooleanLiteralOperators.test_eq.<locals>.test_impl3ú  ó5   € Ø˜’ˆBØ˜’ˆBØ˜$’ˆBØ˜%’ˆBØ˜˜B Ð#Ð#r   TFrA  ©Úrepeatr<  ©râ   rã   r   r  ©rç   ré  rî  r  rÁ  rò  rÀ  ró  Úcfunc3rÿ  r  s            @@r   rô  z#TestBooleanLiteralOperators.test_eqò  ó]  øø€ ð	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð	$ð 	$ð 	$õ "Ô)¨4°¨-ÀÐBÑBÔBð 	7ð 	7‰HˆE�1Ø'•S $Ð'Ñ'Ô'¨
Ñ3Ô3ˆFØ×Ò˜Z˜Z¨™]œ]¨F¨F°1©I¬IÑ6Ô6Ð6Ð6å!Ô)¨4°¨-ÀÐBÑBÔBð 	7ð 	7‰HˆAˆuØ'•S $Ð'Ñ'Ô'¨
Ñ3Ô3ˆFØ×Ò˜Z˜Z¨™]œ]¨F¨F°1©I¬IÑ6Ô6Ð6Ð6à#•˜dÐ#Ñ#Ô# JÑ/Ô/ˆØ×Ò˜˜™œ v v¡x¤xÑ0Ô0Ð0Ð0Ð0r   c                 ó  ‡	‡
— ˆ	fd„}ˆ
fd„}d„ }t          j        ddgd¬¦  «        D ]F\  Š	} t          d¬¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒGt          j        ddgd¬¦  «        D ]F\  }Š
 t          d¬¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒG t          d¬¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         d S )	Nc                 ó   •— ‰| k    S r   r   rþ  s    €r   ré  z7TestBooleanLiteralOperators.test_ne.<locals>.test_impl1  r   r   c                 ó   •— | ‰k    S r   r   r  s    €r   rî  z7TestBooleanLiteralOperators.test_ne.<locals>.test_impl2  r  r   c                  ó>   — ddk    } ddk    }ddk    }ddk    }| |||fS r  r   r  s       r   r  z7TestBooleanLiteralOperators.test_ne.<locals>.test_impl3  r  r   TFrA  r  r<  r  r  s            @@r   Útest_nez#TestBooleanLiteralOperators.test_ne  r  r   c                 óT  ‡— ˆfd„}d„ }t          j        ddgd¬¦  «        D ]F\  Š} t          d¬¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒG t          d¬¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         d S )Nc                 ó   •— ‰| u S r   r   rþ  s    €r   ré  z7TestBooleanLiteralOperators.test_is.<locals>.test_impl1(  s   ø€ Ø˜A�:Ðr   c                  ó.   — ddu } ddu }ddu }ddu }| |||fS r  r   r  s       r   rî  z7TestBooleanLiteralOperators.test_is.<locals>.test_impl2+  s5   € Ø˜�ˆBØ˜�ˆBØ˜$�ˆBØ˜%�ˆBØ˜˜B Ð#Ð#r   TFrA  r  r<  r  )rç   ré  rî  rÁ  rò  ró  rÿ  s         @r   Útest_isz#TestBooleanLiteralOperators.test_is&  sÙ   ø€ ð	ð 	ð 	ð 	ð 	ð	$ð 	$ð 	$õ "Ô)¨4°¨-ÀÐBÑBÔBð 	7ð 	7‰HˆE�1Ø'•S $Ð'Ñ'Ô'¨
Ñ3Ô3ˆFØ×Ò˜Z˜Z¨™]œ]¨F¨F°1©I¬IÑ6Ô6Ð6Ð6à#•˜dÐ#Ñ#Ô# JÑ/Ô/ˆØ×Ò˜˜™œ v v¡x¤xÑ0Ô0Ð0Ð0Ð0r   c                 óŠ   — d„ } t          d¬¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         d S )Nc                  ó   — d\  } }|  | fS ©Nrc  r   rŸ  s     r   Ú	test_implz7TestBooleanLiteralOperators.test_not.<locals>.test_impl;  s   € Ø‰DˆAˆqØ�E˜q˜5�>Ð!r   Tr<  rð  ©rç   r   rî   s      r   r  z$TestBooleanLiteralOperators.test_not9  sU   € ð	"ð 	"ð 	"ð #•˜TÐ"Ñ"Ô" 9Ñ-Ô-ˆØ×Ò˜˜™œ e e¡g¤gÑ.Ô.Ð.Ð.Ð.r   c                 óŠ   — d„ } t          d¬¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         d S )Nc                  óH   — d\  } }t          | ¦  «        t          |¦  «        fS r  )ÚboolrŸ  s     r   r   z8TestBooleanLiteralOperators.test_bool.<locals>.test_implD  s"   € Ø‰DˆAˆqÝ˜‘G”G�T !™WœWÐ%Ð%r   Tr<  rð  r!  s      r   Ú	test_boolz%TestBooleanLiteralOperators.test_boolB  sU   € ð	&ð 	&ð 	&ð #•˜TÐ"Ñ"Ô" 9Ñ-Ô-ˆØ×Ò˜˜™œ e e¡g¤gÑ.Ô.Ð.Ð.Ð.r   c                 óŠ   — d„ } t          d¬¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         d S )Nc                  óH   — d\  } }t          | ¦  «        t          |¦  «        fS r  )r…  rŸ  s     r   r   z?TestBooleanLiteralOperators.test_bool_to_str.<locals>.test_implM  s"   € Ø‰DˆAˆqÝ˜‘F”F�C ™FœFÐ#Ð#r   Tr<  rð  r!  s      r   Útest_bool_to_strz,TestBooleanLiteralOperators.test_bool_to_strK  sU   € ð	$ð 	$ð 	$ð #•˜TÐ"Ñ"Ô" 9Ñ-Ô-ˆØ×Ò˜˜™œ e e¡g¤gÑ.Ô.Ð.Ð.Ð.r   N)
ru   rv   rw   r;  rô  r  r  r  r%  r(  r   r   r   rû  rû  î  sx   € € € € € ðð ð1ð 1ð 1ð41ð 1ð 1ð41ð 1ð 1ð&/ð /ð /ð/ð /ð /ð/ð /ð /ð /ð /r   rû  Ú__main__),rä   râ   r|   ÚsysÚwarningsÚnumpyrö   ÚunittestÚnumba.core.compilerr   r   Únumbar   Ú
numba.corer   r   r   r	   Únumba.core.types.functionsr
   Únumba.tests.supportr   r   r   Únumba.tests.matmul_usecaser   r   r   r  rt  Úforce_pyobjectr   Úobjectr   rz   rÕ   r>  r@  rÎ  rÐ  râ  rû  ru   Úmainr   r   r   ú<module>r7     s  ðØ €€€Ø Ð Ð Ð Ø €€€Ø 
€
€
€
Ø €€€à Ð Ð Ð à €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø Ð Ð Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ð5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð ˆ%‰'Œ'€à�E‘G”GÐ Ø#'Ð Ô  ðð ð ðhð hð hð hð h˜&ñ hô hð hðV`"ð `"ð `"ð `"ð `"˜Vñ `"ô `"ð `"ðFs(ð s(ð s(ð s(ð s(�Hñ s(ô s(ð s(ðlð ð ð ð ˜ñ ô ð ð&mOð mOð mOð mOð mO�Hñ mOô mOð mOð` ð  ð  ð  ð   -ñ  ô  ð  ð
")ð ")ð ")ð ")ð ")�hñ ")ô ")ð ")ðH1ð 1ð 1ð 1ð 1 ñ 1ô 1ð 1ð@d/ð d/ð d/ð d/ð d/ (ñ d/ô d/ð d/ðN ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   