§
    2@Äj£Í  ã                   óÆ  — 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
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 ddiZd	diZ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)ÚjitÚnjit)ÚtypesÚutilsÚerrors)Ú_header_lead)ÚTestCaseÚtagÚ
needs_blas)Úmatmul_usecaseÚimatmul_usecaseÚ
DumbMatrixÚnopythonTÚforceobjc                 ó   ‡ — ˆ fd„}|S )Nc                 ó   •— | ‰z  S ©N© )ÚxÚexps    €úKC:\Projects\Historical\venv\Lib\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_usecase.   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úimul_usecasez LiteralOperatorImpl.imul_usecase2   r$   r   c                 ó   — | |z  S r   r   r   s     r   Úfloordiv_usecasez$LiteralOperatorImpl.floordiv_usecase7   ó   € à�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_usecase@   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úitruediv_usecasez$LiteralOperatorImpl.itruediv_usecaseD   r$   r   c                 ó   — | |z  S r   r   r   s     r   Úmod_usecasezLiteralOperatorImpl.mod_usecaseM   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úimod_usecasez LiteralOperatorImpl.imod_usecaseQ   r$   r   c                 ó   — | |z  S r   r   r   s     r   r   zLiteralOperatorImpl.pow_usecaseV   r/   r   c                 ó   — | |z  } | S r   r   r   s     r   Úipow_usecasez LiteralOperatorImpl.ipow_usecaseZ   r2   r   c                 ó   — | |z  S r   r   r   s     r   Úbitshift_left_usecasez)LiteralOperatorImpl.bitshift_left_usecase_   r/   r   c                 ó   — | |z  } | S r   r   r   s     r   Úbitshift_ileft_usecasez*LiteralOperatorImpl.bitshift_ileft_usecasec   r2   r   c                 ó   — | |z	  S r   r   r   s     r   Úbitshift_right_usecasez*LiteralOperatorImpl.bitshift_right_usecaseh   r/   r   c                 ó   — | |z  } | S r   r   r   s     r   Úbitshift_iright_usecasez+LiteralOperatorImpl.bitshift_iright_usecasel   r2   r   c                 ó   — | |z  S r   r   r   s     r   Úbitwise_and_usecasez'LiteralOperatorImpl.bitwise_and_usecaseq   r!   r   c                 ó   — | |z  } | S r   r   r   s     r   Úbitwise_iand_usecasez(LiteralOperatorImpl.bitwise_iand_usecaseu   r$   r   c                 ó   — | |z  S r   r   r   s     r   Úbitwise_or_usecasez&LiteralOperatorImpl.bitwise_or_usecasez   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_binary/  ó   € åŒ˜qÑ!Ô!Ð!r   c                 ó*   — t          j        | ¦  «        S r   r¶   rX   s    r   rY   z*FunctionalOperatorImpl.bitwise_not_usecase3  r¸   r   c                 ó*   — t          j        | ¦  «        S r   )r|   Únot_rX   s    r   r[   z"FunctionalOperatorImpl.not_usecase7  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_usecase?  r¾   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Últr   s     r   ra   z!FunctionalOperatorImpl.lt_usecaseC  ó   € åŒ{˜1˜aÑ Ô Ð r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úler   s     r   rd   z!FunctionalOperatorImpl.le_usecaseG  rÃ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úgtr   s     r   rg   z!FunctionalOperatorImpl.gt_usecaseK  rÃ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úger   s     r   ri   z!FunctionalOperatorImpl.ge_usecaseO  rÃ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úeqr   s     r   rk   z!FunctionalOperatorImpl.eq_usecaseS  rÃ   r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úner   s     r   rm   z!FunctionalOperatorImpl.ne_usecaseW  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_usecase_  s   € åÔ$ Q¨Ñ*Ô*Ð*Ð*r   c                 ó,   — t          j        | |¦  «        S r   )r|   Úis_r   s     r   rt   z!FunctionalOperatorImpl.is_usecasec  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          |fi |¤Ž|¦  «        }t          j        ||¦  «        D ]“\  }}	t          j        |¦  «        }
t          j        |¦  «        } ||
|	¦  «        } |||	¦  «        }|                      ||d|›d|	›d|›d|›d|›�
¬¦  «         |                      |
|d|›d|	›d|›d|
›d|›�
¬¦  «         Œ”ŒÂd S )Númismatch for (ú, ú) with types ú: ú != ©Úmsg)r   Ú	itertoolsÚproductÚcopyÚassertPreciseEqual©ÚselfÚpyfuncÚ
x_operandsÚ
y_operandsÚ
types_listÚflagsÚ	arg_typesÚcfuncr   r   Úx_gotÚ
x_expectedÚgotÚexpecteds                 r   Úrun_test_intszTestOperators.run_test_ints  s9  € à#ð 	@ð 	@ˆIØ+•C˜	Ð+Ð+ UÐ+Ð+¨FÑ3Ô3ˆ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                 óz  — |D ]·} t          |fi |¤Ž|¦  «        }t          j        ||¦  «        D ]‰\  }}	t          j        |¦  «        }
t          j        |¦  «        } ||
|	¦  «        } |||	¦  «        }t          j                             ||d¬¦  «         t          j                             |
|d¬¦  «         ŒŠŒ¸d S )Ngñhãˆµøä>)Úrtol)r   rß   rà   rá   ÚnpÚtestingÚassert_allcloserã   s                 r   Úrun_test_floatszTestOperators.run_test_floats“  sß   € à#ð 
	Ið 
	IˆIØ+•C˜	Ð+Ð+ UÐ+Ð+¨FÑ3Ô3ˆ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fi |¤Ž|¦  «        }t	          j        ||¦  «        D ]š\  }}	|                      ||¦  «        }|                      |	|¦  «        }	 |||	¦  «        }
 |||	¦  «        }|                      t          |¦  «        t          |
¦  «        ¦  «         |  	                    ||
d|›d|›d|	›d�¦  «         Œ›ŒËd S )Nzmismatch with z (rÙ   ú))
Úcompare_scalar_operandsÚcompare_typesÚcompare_unordered_typesr   rß   rà   r  ÚassertIsÚtypeÚassertEqual)rä   rå   ré   ÚorderedÚopsrè   Útyprë   r   r   rï   rî   s               r   Úrun_test_scalar_comparez%TestOperators.run_test_scalar_compare­  s,  € àÔ*ˆØÔ'ˆ
Øð 	CØ# dÔ&BÑBˆJØð 	0ð 	0ˆCØ,•C˜˜c˜
Ð,Ð, eÐ,Ð,¨VÑ4Ô4ˆ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 ©N©ré   )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  )r0  r  r  s    r   Útest_ne_scalar_npmz TestOperators.test_ne_scalar_npmì  r  r   c                 óÈ   —  t          t          j        t          j        f¦  «        | j        j        ¦  «        }|                       |t          t          ¦  «        ¦  «         d S r   )r   r   Úellipsisr  rt   Ú
assertTrueÚEllipsis)rä   rë   s     r   Útest_is_ellipsiszTestOperators.test_is_ellipsisï  sK   € Ø6••e”n¥e¤nÐ5Ñ6Ô6°t´wÔ7IÑJÔJˆØ�Š˜˜�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©r   c                 ó   •—  ‰| |¦  «        S r   r   )r   r   Ú
cfunc_voids     €r   rë   z-TestOperators.test_is_void_ptr.<locals>.cfuncú  s   ø€ à�:˜a Ñ#Ô#Ð#r   é   é   )r   r   Úvoidptrr  rt   r5  Ú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<  r=  )éýÿÿÿéÿÿÿÿr<  é   r  r=  rJ  r<  ©r   Úint32Úint64rð   ÚbyteÚuint32Úuint64rD  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ö   rD  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  )rW  )rä   rå   ré   s      r   Úrun_binop_floats_floordivz'TestOperators.run_binop_floats_floordiv,  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ö   rD  s         r   Úrun_binop_complexzTestOperators.run_binop_complex/  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>.innerC  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ä   ri  s    €r   Ú	test_methz5TestOperators.generate_binop_tests.<locals>.test_methJ  s„   ø€ Ø!%×!7Ò!7Ñ!9Ô!9ð (ð (Ø % ¡¤ ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   –.®2µ2Ú	important)Úitemsr  Úforce_pyobj_flagsru   r
   )ÚnsÚusecasesÚ
tp_runnersÚ	npm_arrayÚusecaseÚtp_namere  r   Ú	test_nameré   rf  rm  ri  s               @r   Úgenerate_binop_testsz"TestOperators.generate_binop_tests9  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‰   rQ  rW  r]  )ÚintsÚfloatsÚcomplex)r�   r“   )r‹   rŽ   r•   r—   rY  )ry  rz  c                 óÐ  — t          | j        |¦  «        }t          j        t          j        t          j        g}|r|                     t          j        ¦  «         |D ]‰} t          ||ffi |¤Ž|¦  «        }|  	                    t          ¦  «        5 }	 |dd¦  «         d d d ¦  «         n# 1 swxY w Y   |t          ur(|                      |t          |	j        ¦  «        ¦  «         ŒŠd S )Nr<  r   )rd  r  r   rL  rO  rV  Úappendr\  r   ÚassertRaisesÚZeroDivisionErrorrp  ÚassertInÚstrÚ	exception)
rä   rf  rÞ   ré   Úallow_complexrå   rê   Útprë   Úcms
             r   Úcheck_div_errorszTestOperators.check_div_errorsm  s%  € å˜œ ,Ñ/Ô/ˆõ ”[¥%¤,µ´Ð>ˆ	Øð 	/Ø×Ò�UÔ-Ñ.Ô.Ð.Øð 	6ð 	6ˆBØ*•C˜˜R˜Ð*Ð* EÐ*Ð*¨6Ñ2Ô2ˆEØ×"Ò"Õ#4Ñ5Ô5ð ¸Ø��a˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Õ-Ð-Ð-Ø—’˜c¥3 r¤|Ñ#4Ô#4Ñ5Ô5Ð5øð	6ð 	6s   ÂB)Â)B-	Â0B-	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©éþÿÿÿrI  r   r<  r=  ©r   r<  r=  r  rK  rD  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  rS  r™  rT  rD  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<  r=  rJ  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        } t          t          j        t          j        ffi |¤Ž|¦  «        }|                      t          ¦  «        5 } |dd¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        dv rd}nt          t          j        ¦  «        ‚|  
                    |t          |j        ¦  «        ¦  «         d S )Ny              @y               @))rJ  é
   ©rJ  é   )rJ  é   )rJ  é   )rJ  é   )rJ  é   z!unsupported operand type(s) for %)r  r8   r   r   r[  r~  Ú	TypeErrorr   Ú	PYVERSIONÚNotImplementedErrorr€  r�  r‚  )rä   ré   rå   ÚcresÚraisesrÞ   s         r   Útest_mod_complexzTestOperators.test_mod_complexú  sû   € Ø”Ô$ˆØ?�s•E”O¥U¤_Ð5Ð?Ð?¸Ð?Ð?ÀÑGÔGˆØ×Ò�yÑ)Ô)ð 	¨VØˆD��R‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ?ð :ð :ð :à5ˆCˆCå%¥e¤oÑ6Ô6Ð6à�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   ÁA,Á,A0Á3A0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   rl  r   r   r[  )rä   rå   s     r   Útest_mod_complex_npmz"TestOperators.test_mod_complex_npm	  s£   € Ø”Ô$ˆØ×#Ò#Ñ%Ô%ð 	=ð 	=Ø4�D•%”/¥5¤?Ð3Ñ4Ô4°VÑ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ¡/AÁA!Á$A!c                 óP  —  t          di t          ¤Ž|¦  «        }t          d¦  «        }t          d¦  «        } |||¦  «        }|                      |j        d¦  «         |r|                      ||¦  «         d S |                      ||¦  «         |                      ||¦  «         d S )Nr   rJ  é   r¶  ©r   )r   rp  r   r  Úvaluer
  ÚassertIsNot)rä   rå   Úinplacerë   ÚaÚbrî   s          r   Úcheck_matmul_objmodez"TestOperators.check_matmul_objmode  s±   € à,•Ð,Ð,Õ+Ð,Ð,¨VÑ4Ô4ˆÝ�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        ddg¦  «        }t	          j        ddg¦  «        } |||¦  «        }|                      |t	          j        ||¦  «        ¦  «         |                      ||¦  «         |                      ||¦  «         d S )Nr<  ÚCr=  rJ  rÃ  )r   ÚArrayrU  r   ró   râ   ÚdotrÆ  )rä   rå   Úarrtyrë   rÈ  rÉ  rî   s          r   Úcheck_matmul_npmzTestOperators.check_matmul_npm&  s¹   € å”�EœM¨1¨cÑ2Ô2ˆØ$•�e˜U�^Ñ$Ô$ VÑ,Ô,ˆÝŒ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_npm2  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   )rl  rÕ  r  r   )rä   r¾  s     r   Útest_imatmul_npmzTestOperators.test_imatmul_npm5  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<  r=  rÃ  é   é   é   r  ©r   r<  r=  rÃ  rÜ  rÝ  é    é?   rI  ©r   rO  rð   rP  rL  rM  rD  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_ileftry  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   rI  ré  râ  rD  s         r   Úrun_bitshift_rightz TestOperators.run_bitshift_rightc  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   rO  rð   rP  rL  rM  rD  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ô  rE  )ry  Ú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fi |¤Ž|¦  «        }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )Nr   rÜ  rç  c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )ró   rO  ©Ú.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ó   rP  rþ  s     r   r   z2TestOperators.test_bitwise_not.<locals>.<listcomp>Ë  r  r   rð  rñ  rB  )r  rU   rò  ró  r   rO  rð   rL  rP  rM  Úmapró   Úbool_rY   r   rC  râ   )	rä   ré   rå   ræ   rç   rè   Úvaluesrë   Úvals	            r   Útest_bitwise_notzTestOperators.test_bitwise_not¶  sD  € Ø”Ô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Ñ+Ô+Ñ,Ô,ˆà”Ô,ˆØ.••U”]Ð$Ð.Ð.¨Ð.Ð.¨vÑ6Ô6ˆØð 	=ð 	=ˆ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Ð"Ñ?Ô?ð 'À6Ø•�X‘”˜vÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'õ  Ñ&ˆCØŸ
š
Ý&0°½Ñ&=Ô&=ð$F 6 6à(6×(=Ò(=¸fÑ(EÔ(EñGô GˆIð �MŠM˜)¥S¨Ô)9Ñ%:Ô%:Ñ;Ô;Ð;Ð;Ð;s   ¸AÁA!Á$A!rÖ   )r  N)rd  r  r   rU  Ú_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i t          ¤Ž|¦  «        }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )N©r<  r=  rJ  ç333333ó?ù        333333@r   rÄ  )r  r[   r   rp  r  ©rä   rå   r  rë   r  s        r   Útest_notzTestOperators.test_not
  s   € Ø”Ô$ˆð
ð 
ð 
ˆð -•Ð,Ð,Õ+Ð,Ð,¨VÑ4Ô4ˆØð 	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 ]v\  }} t          |f¦  «        |¦  «        }|  
                    |j        d         j        t          j        ¦  «         |  
                     ||¦  «         ||¦  «        ¦  «         Œwd S )Nr  r   )r  r[   r   Úint8rL  rM  rU  r\  Úzipr   r  Únopython_signaturesÚreturn_typerC  ©rä   rå   Úargtysr  Útyr  rë   s          r   Útest_not_npmzTestOperators.test_not_npm  sÓ   € Ø”Ô$ˆõ ŒJÝŒKÝŒKÝŒMÝÔð
ˆð
ð 
ð 
ˆõ ˜6 6Ñ*Ô*ð 	6ð 	6‰GˆB�Ø•D˜"˜‘K”K Ñ'Ô'ˆEØ×Ò˜UÔ6°qÔ9Ô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 ]F\  }} t          |f¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒGd S ©N)r<  r=  rJ  r  g333333@r  TF)r  r]   r   r  rL  rM  rU  rV  r\  rC  r   r   ÚassertAlmostEqualr#  s          r   Útest_negate_npmzTestOperators.test_negate_npm2  s¸   € Ø”Ô'ˆõ ŒJÝŒKÝŒKÝŒMÝŒMÝÔÝŒMÝŒMð	
ˆð	
ð 	
ð 	
ˆõ ˜6 6Ñ*Ô*ð 	<ð 	<‰GˆB�Ø•D˜"˜‘K”K Ñ'Ô'ˆEØ×"Ò" 6 6¨#¡;¤;°°°c±
´
Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó´   — | j         j        }g d¢} t          di t          ¤Ž|¦  «        }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S ©N)r<  r=  rJ  r  r  TFr   rÄ  )r  r]   r   rp  r  r  s        r   Útest_negatezTestOperators.test_negateN  s   € Ø”Ô'ˆð
ð 
ð 
ˆð -•Ð,Ð,Õ+Ð,Ð,¨VÑ4Ô4ˆØð 	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 ]F\  }} t          |f¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒGd S r(  )r  r_   r   r  rL  rM  rU  rV  r\  rC  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�Ø•D˜"˜‘K”K Ñ'Ô'ˆEØ×"Ò" 6 6¨#¡;¤;°°°c±
´
Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó´   — | j         j        }g d¢} t          di t          ¤Ž|¦  «        }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S r,  )r  r_   r   rp  r  r  s        r   Útest_unary_positivez!TestOperators.test_unary_positivex  s   € Ø”Ô/ˆð
ð 
ð 
ˆð -•Ð,Ð,Õ+Ð,Ð,¨VÑ4Ô4ˆØð 	6ð 	6ˆCØ×Ò˜V˜V C™[œ[¨%¨%°©*¬*Ñ5Ô5Ð5Ð5ð	6ð 	6r   c                 óÖ   — t           j        } t          |t          j        |d¦  «        ffi |¤Ž|¦  «        }dD ].}d}|                       |||¦  «         |||¦  «        ¦  «         Œ/d S )NrJ  )rJ  rÃ  é   é   é*   )rJ  r5  r3  )r   rM  r   ÚUniTuplerâ   )rä   rå   ré   rø   rë   ÚiÚtups          r   Ú	_check_inzTestOperators._check_in‡  sˆ   € Ý”ˆØ?•�U�EœN¨5°!Ñ4Ô4Ð5Ð?Ð?¸Ð?Ð?ÀÑGÔGˆØ!ð 	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   )r9  r  ro   r  s     r   Útest_inzTestOperators.test_inŽ  s!   € Ø�Š�t”wÔ)¨5Ñ1Ô1Ð1Ð1Ð1r   c                 ó<   — |                       t          ¬¦  «         d S r  )r;  r  r  s    r   Útest_in_npmzTestOperators.test_in_npm‘  s   € Ø�Š�7ˆÑ#Ô#Ð#Ð#Ð#r   c                 óF   — |                       | j        j        |¦  «         d S r   )r9  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  )r?  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  rp  rð   rö   r  r  r  r   rL  rM  rO  rP  rU  rV  r  r[  r\  r	  r  r  r  r   r"  r$  r&  r(  r+  r.  r0  r2  r7  r@  rE  rQ  rW  rY  r]  rx  Ú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/  r1  r9  r;  r=  r?  rA  r   r   r   rÕ   rÕ   h  sv  € € € € € ðð ð 
€Bð "*¤Ø"*Ô"2Ø"*¤/Ø#+Ô#3Ø'œ}Ø (¤Ø&œlØ'œ|Ø'œ|Ø (¤Ø&.¤oðð Ðð .ð@ð @ð @ð @ð* 0ðIð Ið Ið Ið
ð 
ð 
ð 5FØ(,ð0ð 0ð 0ð 0ð0 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ð 2ð 2ð 2ð 2ð=ð =ð =ð%ð %ð %ð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<ð <ð <ð86ð 6ð 6ð<ð <ð <ð6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   rE  rE  ›  s]   € € € € € à	€Bð "*¤Ø"*Ô"2Ø"*¤/Ø#+Ô#3Ø'œ}Ø (¤Ø&œlØ'œ|Ø'œ|Ø (¤Ø&.¤oðð ÐÐÐr   rE  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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"„ Z/d#S )$ÚTestMixedIntsz<
    Tests for operator calls with mixed integer types.
    )r   r<  rJ  r³  r5  é   i'  rI  rH  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   rJ  rL  s     r   r   zTestMixedInts.<listcomp>¹  s   € Ð>Ð>Ð>˜R°B´IÐ>�bÐ>Ð>Ð>r   c                 ó8   — g | ]\  }}|j         s|j         ¯||f‘ŒS r   rJ  ©rÿ  ÚuÚvs      r   r   zTestMixedInts.<listcomp>»  s@   € ð -ð -ð -™t˜q !Ø”xð-Ø#$¤8ð-�Q˜�Fð -ð -ð -r   c                 ó8   — g | ]\  }}|j         °|j         °||f‘ŒS r   rJ  rO  s      r   r   zTestMixedInts.<listcomp>½  s@   € ð 5ð 5ð 5¡  AØœhð5Ø*+¬(ð5�q˜!�fð 5ð 5ð 5r   c                 óh   — t          j        |j        ¦  «        }|j        |cxk    o
|j        k    nc S r   )ró   ÚiinfoÚkeyÚminÚmax)rä   r  r„  Útp_infos       r   Úint_in_dtype_rangez TestMixedInts.int_in_dtype_rangeÀ  s9   € Ý”(˜2œ6Ñ"Ô"ˆØŒ{˜cÐ0Ð0Ò0Ð0 W¤[Ò0Ð0Ð0Ð0Ð0r   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ÿ  rQ  s     r   ú	<genexpr>z8TestMixedInts.get_numpy_signed_upcast.<locals>.<genexpr>Å  ó,   è è € Ð:Ð:°�q”wÔ'¨!Ñ+Ð:Ð:Ð:Ð:Ð:Ð:r   zint%d©rW  r   ÚintpÚbitwidthrd  ró   ©rä   Úvalsrd  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 r\  r]  r_  s     r   r`  z:TestMixedInts.get_numpy_unsigned_upcast.<locals>.<genexpr>Ê  ra  r   zuint%drb  re  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   )rd  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   ©rg  ©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   ©rd  r|   )rä   r  rq  r  s   `  @r   Úget_control_signedz TestMixedInts.get_control_signedÑ  s9   øø€ Ý•X˜vÑ&Ô&ˆð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð Ðr   c                 ó@   ‡ ‡— t          t          |¦  «        Šˆˆ fd„}|S )Nc                 ól   •— ‰                      | |¦  «        } ‰ || ¦  «         ||¦  «        ¦  «        S r   ©rj  rp  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   rr  )rä   r  rw  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        ||¦  «        D ]À\  }}|                      ||¦  «        r|                      ||	¦  «        sŒ2|                      ||¦  «        }|                      |	|¦  «        } |||¦  «        } |
||¦  «        }|                      ||¦  «         d|›d|›d||	f›�} ||¦  «         ||¦  «        }} | j        ||fd|i|¤Ž ŒÁŒöd S )NrØ   rÙ   rÚ   rÞ   )r   rß   rà   rY  rl  ÚassertIsInstancerâ   )rä   rå   Úcontrol_funcÚoperandsr   Úexpected_typeÚ
force_typeÚassertPreciseEqualArgsÚxtÚytrë   r   r   rï   rî   rÞ   s                   r   Ú
run_binaryzTestMixedInts.run_binaryß  so  € ð ð 	Bð 	B‰FˆB�Ø"•D˜"˜b˜‘N”N 6Ñ*Ô*ˆEÝ!Ô)¨(°HÑ=Ô=ð Bð B‘��1à×.Ò.¨q°"Ñ5Ô5ð ¸T×=TÒ=TÐUVÐXZÑ=[Ô=[ð Øà×&Ò& 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                 óF  — |D ]�} t          |f¦  «        |¦  «        }|D ]}|                      ||¦  «        sŒ|                      ||¦  «        } ||¦  «        }	 ||¦  «        }
|                      |
|¦  «         |                      |
|	d|›d|›d|
›d|	›�¬¦  «         Œ€Œžd S )Nzmismatch for z with type rÛ   rÜ   rÝ   )r   rY  rl  r|  râ   )rä   rå   r}  r~  r   r  r‚  rë   r   rï   rî   s              r   Ú	run_unaryzTestMixedInts.run_unaryô  së   € àð 	2ð 	2ˆBØ•D˜"˜‘K”K Ñ'Ô'ˆEØð 
2ð 
2�Ø×.Ò.¨q°"Ñ5Ô5ð ØØ×&Ò& 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   rz  zTestMixedInts.<lambda>  s   € À€ r   c                 ó¶   —  | j         ||                      |¦  «        || j        |fd|i|¤Ž  | j         ||                      |¦  «        || j        |fd|i|¤Ž d S )Nr€  )r„  rs  Úsigned_pairsrx  Úunsigned_pairs)rä   rå   r  Úsamplesr  r€  r�  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 )Nr´  r€  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      ð?)rg  ró   rc  )rÈ  rÉ  r„  Úinvrä   s       €r   rq  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   rJ  rO  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   r»  r  r  r   rŽ  rŒ  Ú
type_pairsr„  )rä   Ú
extra_castrå   r‹  rq  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                 óÈ   — t           d„ ¦   «         }d}||z  } ||¦  «        }|                      ||¦  «         |                      ||                     |¦  «        ¦  «         d S )Nc                 ó   — | dz  S )Nr=  r   rX   s    r   Úpow2z.TestMixedInts.test_pow_precision.<locals>.pow2=  s   € à˜‘6ˆMr   i›'¨)r   r  Úpy_func)rä   r©  r   rï   Úresults        r   Útest_pow_precisionz TestMixedInts.test_pow_precision<  st   € Ý	ð	ð 	ñ 
Œð	ð ˆØ�q‘5ˆØ��a‘”ˆØ×Ò˜ Ñ*Ô*Ð*Ø×Ò˜ §¢¨a¡¤Ñ1Ô1Ð1Ð1Ð1r   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>.controlI  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>K  r˜  r   Údouble)r  Úprec)rŽ  r  r4   r„  r‰  r  rŠ  ©rä   r°  r‹  rå   s       r   Útest_truedivzTestMixedInts.test_truedivG  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_andV  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_orY  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_xor\  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   ro  ©rÈ  rÉ  r„  Úopfuncrä   s      €€r   rq  z5TestMixedInts.run_shift_binop.<locals>.control_signeda  s:   ø€ Ø×-Ò-¨a°Ñ3Ô3ˆBØ�6˜"˜"˜Q™%œ%   A¡¤Ñ'Ô'Ð'r   c                 ól   •— ‰                      | |¦  «        } ‰ || ¦  «         ||¦  «        ¦  «        S r   rv  r¾  s      €€r   rw  z7TestMixedInts.run_shift_binop.<locals>.control_unsignedd  s:   ø€ Ø×/Ò/°°1Ñ5Ô5ˆBØ�6˜"˜"˜Q™%œ%   A¡¤Ñ'Ô'Ð'r   c           	      ó¢  •—  t          | |f¦  «        ‰
¦  «        }‰D ]°}| j        dz
  }dddd|dz
  |fD ]˜}‰                     || ¦  «        r‰                     ||¦  «        sŒ/‰                     | |¦  «        }‰                     ||¦  «        } |||¦  «        } |||¦  «        }d|›d|›d| |f›�}	‰                     |||	¬¦  «         Œ™Œ±d S )	Nr<  r   rJ  r3  rØ   rÙ   rÚ   rÝ   )r   rd  rY  rl  râ   )r‚  rƒ  r}  rë   r   Úmaxshiftr   rï   rî   rÞ   rå   r‹  rä   s             €€€r   Úcheckz,TestMixedInts.run_shift_binop.<locals>.checkj  s(  ø€ Ø"•D˜"˜b˜‘N”N 6Ñ*Ô*ˆEØð Dð D�ð œ;¨™?�Ø˜Q  1 h°¡l°HÐ=ð 
Dð 
D�AØ×2Ò2°1°bÑ9Ô9ð !À×AXÒAXÐYZÐ\^ÑA_Ô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   rJ  rO  s      r   r   z1TestMixedInts.run_shift_binop.<locals>.<listcomp>~  s6   € ð %ð %ð %¡4 1 aØœ8ð%˜˜A˜ð %ð %ð %r   c                 ó*   — g | ]\  }}|j         °||f‘ŒS r   rJ  rO  s      r   r   z1TestMixedInts.run_shift_binop.<locals>.<listcomp>€  s6   € ð +ð +ð +¡T Q¨Ø!"¤ð+˜1˜a˜&ð +ð +ð +r   )rd  r|   rŽ  r¤  )rä   rå   r  rq  rw  rÃ  r‰  rŠ  r‚  rƒ  r¿  r‹  s   ``        @@r   Úrun_shift_binopzTestMixedInts.run_shift_binop_  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_   r†  Ú	int_typesr´  s       r   r1  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   ro  ©rÈ  r„  rä   s     €r   rq  z9TestMixedInts.test_unary_negative.<locals>.control_signed—  ó%   ø€ Ø×-Ò-¨aÑ0Ô0ˆBØ�2�q�b‘6”6ˆMr   c                 óF   •— ‰                      | ¦  «        } ||  ¦  «        S r   rv  rÐ  s     €r   rw  z;TestMixedInts.test_unary_negative.<locals>.control_unsignedš  ó%   ø€ Ø×/Ò/°Ñ2Ô2ˆBØ�2�q�b‘6”6ˆMr   )rŽ  r  r]   r†  Úsigned_typesÚunsigned_types©rä   rq  rw  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   ro  rÐ  s     €r   rq  z1TestMixedInts.test_invert.<locals>.control_signed¤  rÑ  r   c                 óF   •— ‰                      | ¦  «        } ||  ¦  «        S r   rv  rÐ  s     €r   rw  z3TestMixedInts.test_invert.<locals>.control_unsigned§  rÓ  r   )rŽ  r  rY   r†  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)0ru   rv   rw   rB  r   r  rŽ  r   r  Úuint8rM  rP  rÍ  rÔ  rÕ  rò  rß   rà   r¤  r‰  rŠ  rY  rg  rj  rl  rs  rx  rý   r„  r†  rŒ  r�  r’  r”  rš  r�  r¦  r¬  rµ  r·  r¹  r»  rÆ  rÈ  rÊ  r1  r×  rÛ  r   r   r   rG  rG  ®  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ð1ð 1ð 1ð/ð /ð /ð
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	2ð 	2ð 	2ð<ð <ð <ðTð Tð TðRð Rð RðSð Sð Sð',ð ',ð ',ðRFð Fð FðGð Gð GðAð Að AðOð Oð OðOð Oð Oð Oð Or   rG  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 )NTr9  r²  )r³  )r   r   r   r   râ   r  r~  )rä   Ú	exponentsr  r   Úregular_funcÚstatic_funcÚstatic_cfuncÚregular_cfuncrQ  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<  r=  rJ  r3  é   r   rI  r˜  rH  r   r<  rJ  rI  rî  rH  rÃ  )ró   r  Úuint16rç  ©rä   râ  rf  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<  r=  rJ  r3  ré  r   rI  r˜  rH  i iîîîÿr  g      
@g      ô¿g       ÀÚinfÚnan)ró   rU  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   rB  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   Tr9  ©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   Tr9  r   r  s        r   Útest_neqz"TestStringConstComparison.test_neqì  r  r   N)ru   rv   rw   rB  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   TFr=  ©Úrepeatr9  ©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   TFr=  r  r9  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_impl14  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_impl27  s5   € Ø˜�ˆBØ˜�ˆBØ˜$�ˆBØ˜%�ˆBØ˜˜B Ð#Ð#r   TFr=  r  r9  r   )rä   rù  rþ  rÉ  r  r  r  s         @r   Útest_isz#TestBooleanLiteralOperators.test_is2  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 ©Nr_  r   r¯  s     r   Ú	test_implz7TestBooleanLiteralOperators.test_not.<locals>.test_implG  s   € Ø‰DˆAˆqØ�E˜q˜5�>Ð!r   Tr9  r   ©rä   r0  rë   s      r   r  z$TestBooleanLiteralOperators.test_notE  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   r0  z8TestBooleanLiteralOperators.test_bool.<locals>.test_implP  s"   € Ø‰DˆAˆqÝ˜‘G”G�T !™WœWÐ%Ð%r   Tr9  r   r1  s      r   Ú	test_boolz%TestBooleanLiteralOperators.test_boolN  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   r0  z?TestBooleanLiteralOperators.test_bool_to_str.<locals>.test_implY  s"   € Ø‰DˆAˆqÝ˜‘F”F�C ™FœFÐ#Ð#r   Tr9  r   r1  s      r   Útest_bool_to_strz,TestBooleanLiteralOperators.test_bool_to_strW  sU   € ð	$ð 	$ð 	$ð #•˜TÐ"Ñ"Ô" 9Ñ-Ô-ˆØ×Ò˜˜™œ e e¡g¤gÑ.Ô.Ð.Ð.Ð.r   N)
ru   rv   rw   rB  r  r(  r,  r  r5  r8  r   r   r   r  r  ú  sx   € € € € € ðð ð1ð 1ð 1ð41ð 1ð 1ð41ð 1ð 1ð&/ð /ð /ð/ð /ð /ð/ð /ð /ð /ð /r   r  Ú__main__)&rá   rß   r|   ÚunittestÚnumpyró   Únumbar   r   Ú
numba.corer   r   r   Únumba.core.types.functionsr   Únumba.tests.supportr	   r
   r   Únumba.tests.matmul_usecaser   r   r   r  rp  r   Úobjectr   rz   rÕ   rE  rG  rÞ  rà  rò  r  ru   Úmainr   r   r   ú<module>rC     sÍ  ðØ €€€Ø Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø 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ð �tÐ
€à Ð&Ð ðð ð ðhð hð hð hð h˜&ñ hô hð hðV`"ð `"ð `"ð `"ð `"˜Vñ `"ô `"ð `"ðFp(ð p(ð p(ð p(ð p(�Hñ p(ô p(ð p(ðfð ð ð ð ˜ñ ô ð ð&@Oð @Oð @Oð @Oð @O�Hñ @Oô @Oð @OðF ð  ð  ð  ð   -ñ  ô  ð  ð
")ð ")ð ")ð ")ð ")�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   