Ë
    èÿæiÇ  ã                   óŽ  — 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jJ                  «        yy)é    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    €úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/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+y')(Ú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    r!   r   c                 ó   — | |k  S r   r   r   s     r   Ú
le_usecasezLiteralOperatorImpl.le_usecase¤   r/   r   c                 ó   — | |kD  S r   r   r   s     r   Ú
gt_usecasezLiteralOperatorImpl.gt_usecase¨   r!   r   c                 ó   — | |k\  S r   r   r   s     r   Ú
ge_usecasezLiteralOperatorImpl.ge_usecase¬   r/   r   c                 ó   — | |k(  S r   r   r   s     r   Ú
eq_usecasezLiteralOperatorImpl.eq_usecase°   r/   r   c                 ó   — | |k7  S r   r   r   s     r   Ú
ne_usecasezLiteralOperatorImpl.ne_usecase´   r/   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À   rn   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   rc   re   rg   ri   rk   rm   rp   rr   r   r   r   r   r      s  „ àñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðñ Ù% nÓ5ˆÙ& Ó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+y))*ÚFunctionalOperatorImplc                 ó.   — t        j                  | |«      S r   )ÚoperatorÚaddr   s     r   r    z"FunctionalOperatorImpl.add_usecaseÇ   ó   € ä�|‰|˜A˜qÓ!Ð!r   c                 ó.   — t        j                  | |«      S r   )rz   Úiaddr   s     r   r#   z#FunctionalOperatorImpl.iadd_usecaseË   ó   € ä�}‰}˜Q Ó"Ð"r   c                 ó.   — t        j                  | |«      S r   )rz   Úsubr   s     r   r&   z"FunctionalOperatorImpl.sub_usecaseÏ   r|   r   c                 ó.   — t        j                  | |«      S r   )rz   Úisubr   s     r   r(   z#FunctionalOperatorImpl.isub_usecaseÓ   r   r   c                 ó.   — t        j                  | |«      S r   )rz   Úmulr   s     r   r*   z"FunctionalOperatorImpl.mul_usecase×   r|   r   c                 ó.   — t        j                  | |«      S r   )rz   Úimulr   s     r   r,   z#FunctionalOperatorImpl.imul_usecaseÛ   r   r   c                 ó.   — t        j                  | |«      S r   )rz   Úfloordivr   s     r   r.   z'FunctionalOperatorImpl.floordiv_usecaseß   ó   € ä× Ñ   AÓ&Ð&r   c                 ó.   — t        j                  | |«      S r   )rz   Ú	ifloordivr   s     r   r1   z(FunctionalOperatorImpl.ifloordiv_usecaseã   s   € ä×!Ñ! ! QÓ'Ð'r   c                 ó.   — t        j                  | |«      S r   )rz   Útruedivr   s     r   r4   z&FunctionalOperatorImpl.truediv_usecaseç   ó   € ä×Ñ  1Ó%Ð%r   c                 ó.   — t        j                  | |«      S r   )rz   Úitruedivr   s     r   r6   z'FunctionalOperatorImpl.itruediv_usecaseë   rŠ   r   c                 ó.   — t        j                  | |«      S r   )rz   Úmodr   s     r   r8   z"FunctionalOperatorImpl.mod_usecaseï   r|   r   c                 ó.   — t        j                  | |«      S r   )rz   Úimodr   s     r   r:   z#FunctionalOperatorImpl.imod_usecaseó   r   r   c                 ó.   — t        j                  | |«      S r   )rz   Úpowr   s     r   r   z"FunctionalOperatorImpl.pow_usecase÷   r|   r   c                 ó.   — t        j                  | |«      S r   )rz   Úipowr   s     r   r=   z#FunctionalOperatorImpl.ipow_usecaseû   r   r   c                 ó.   — t        j                  | |«      S r   )rz   Úmatmulr   s     r   r   z%FunctionalOperatorImpl.matmul_usecaseÿ   ó   € ä�‰˜q !Ó$Ð$r   c                 ó.   — t        j                  | |«      S r   )rz   Úimatmulr   s     r   r   z&FunctionalOperatorImpl.imatmul_usecase  r�   r   c                 ó.   — t        j                  | |«      S r   )rz   Úlshiftr   s     r   r?   z,FunctionalOperatorImpl.bitshift_left_usecase  rœ   r   c                 ó.   — t        j                  | |«      S r   )rz   Úilshiftr   s     r   rA   z-FunctionalOperatorImpl.bitshift_ileft_usecase  r�   r   c                 ó.   — t        j                  | |«      S r   )rz   Úrshiftr   s     r   rC   z-FunctionalOperatorImpl.bitshift_right_usecase  rœ   r   c                 ó.   — t        j                  | |«      S r   )rz   Úirshiftr   s     r   rE   z.FunctionalOperatorImpl.bitshift_iright_usecase  r�   r   c                 ó.   — t        j                  | |«      S r   )rz   Úand_r   s     r   rG   z*FunctionalOperatorImpl.bitwise_and_usecase  r   r   c                 ó.   — t        j                  | |«      S r   )rz   Úiandr   s     r   rI   z+FunctionalOperatorImpl.bitwise_iand_usecase  r   r   c                 ó.   — t        j                  | |«      S r   )rz   Úor_r   s     r   rK   z)FunctionalOperatorImpl.bitwise_or_usecase  r|   r   c                 ó.   — t        j                  | |«      S r   )rz   Úiorr   s     r   rM   z*FunctionalOperatorImpl.bitwise_ior_usecase#  r|   r   c                 ó.   — t        j                  | |«      S r   )rz   Úxorr   s     r   rO   z*FunctionalOperatorImpl.bitwise_xor_usecase'  r|   r   c                 ó.   — t        j                  | |«      S r   )rz   Úixorr   s     r   rQ   z+FunctionalOperatorImpl.bitwise_ixor_usecase+  r   r   c                 ó,   — t        j                  | «      S r   ©rz   Ú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   )rz   Únot_rX   s    r   r[   z"FunctionalOperatorImpl.not_usecase7  s   € ä�}‰}˜QÓÐr   c                 ó,   — t        j                  | «      S r   )rz   ÚnegrX   s    r   r]   z%FunctionalOperatorImpl.negate_usecase;  ó   € ä�|‰|˜A‹Ðr   c                 ó,   — t        j                  | «      S r   )rz   ÚposrX   s    r   r_   z-FunctionalOperatorImpl.unary_positive_usecase?  r¼   r   c                 ó.   — t        j                  | |«      S r   )rz   Últr   s     r   ra   z!FunctionalOperatorImpl.lt_usecaseC  ó   € ä�{‰{˜1˜aÓ Ð r   c                 ó.   — t        j                  | |«      S r   )rz   Úler   s     r   rc   z!FunctionalOperatorImpl.le_usecaseG  rÁ   r   c                 ó.   — t        j                  | |«      S r   )rz   Úgtr   s     r   re   z!FunctionalOperatorImpl.gt_usecaseK  rÁ   r   c                 ó.   — t        j                  | |«      S r   )rz   Úger   s     r   rg   z!FunctionalOperatorImpl.ge_usecaseO  rÁ   r   c                 ó.   — t        j                  | |«      S r   )rz   Úeqr   s     r   ri   z!FunctionalOperatorImpl.eq_usecaseS  rÁ   r   c                 ó.   — t        j                  | |«      S r   )rz   Úner   s     r   rk   z!FunctionalOperatorImpl.ne_usecaseW  rÁ   r   c                 ó.   — t        j                  || «      S r   ©rz   Úcontainsr   s     r   rm   z!FunctionalOperatorImpl.in_usecase[  rŠ   r   c                 ó0   — t        j                  || «       S r   rÍ   r   s     r   rp   z%FunctionalOperatorImpl.not_in_usecase_  s   € ä×$Ñ$ Q¨Ó*Ð*Ð*r   c                 ó.   — t        j                  | |«      S r   )rz   Úis_r   s     r   rr   z!FunctionalOperatorImpl.is_usecasec  r|   r   N),rs   rt   ru   rv   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   rc   re   rg   ri   rk   rm   rp   rr   r   r   r   rx   rx   Å   s   „ àñ"ó ð"ð ñ#ó ð#ð ñ"ó ð"ð ñ#ó ð#ð ñ"ó ð"ð ñ#ó ð#ð ñ'ó ð'ð ñ(ó ð(ð ñ&ó ð&ð ñ'ó ð'ð ñ"ó ð"ð ñ#ó ð#ð ñ"ó ð"ð ñ#ó ð#ð ñ%ó ð%ð ñ&ó ð&ð ñ%ó ð%ð ñ&ó ð&ð ñ%ó ð%ð ñ&ó ð&ð ñ#ó ð#ð ñ#ó ð#ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ#ó ð#ð ñ"ó ð"ð ñ"ó ð"ð ñ ó ð ð ñó ðð ñó ðð ñ!ó ð!ð ñ!ó ð!ð ñ!ó ð!ð ñ!ó ð!ð ñ!ó ð!ð ñ!ó ð!ð ñ'ó ð'ð ñ+ó ð+ð ñ"ó ñ"r   rx   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j4                  ej6                  ej8                  ej:                  ej<                  ej>                  gZ ejB                  ejD                  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\„ Zcy])_Ú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                 óv  — |D ]´  } t        |fi |¤Ž|«      }t        j                  ||«      D ]‡  \  }}	t        j                  |«      }
t        j                  |«      } ||
|	«      } |||	«      }| j	                  ||d|›d|	›d|›d|›d|›�
¬«       | j	                  |
|d|›d|	›d|›d|
›d|›�
¬«       Œ‰ Œ¶ y )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  sÄ   € ã#ˆIØ+”C˜	Ñ+ UÑ+¨FÓ3ˆEÜ!×)Ñ)¨*°jÖA‘��1ô Ÿ	™	 !›�Ü!ŸY™Y q›\�
Ù˜E 1“o�Ù! *¨aÓ0�Ø×'Ñ'Ø™âša¢ªC±ð;ð (ô <ð ×'Ñ'Ø™:âša¢ªE±:ð?ð (õ @ñ Bñ $r   c                 ór  — |D ]²  } t        |fi |¤Ž|«      }t        j                  ||«      D ]…  \  }}	t        j                  |«      }
t        j                  |«      } ||
|	«      } |||	«      }t        j
                  j                  ||d¬«       t        j
                  j                  |
|d¬«       Œ‡ Œ´ y )Ngñhãˆµøä>)Úrtol)r   rÝ   rÞ   rß   ÚnpÚtestingÚassert_allcloserá   s                 r   Úrun_test_floatszTestOperators.run_test_floats“  s£   € ã#ˆIØ+”C˜	Ñ+ UÑ+¨FÓ3ˆEÜ!×)Ñ)¨*°jÖA‘��1ô Ÿ	™	 !›�Ü!ŸY™Y q›\�
Ù˜E 1“o�Ù! *¨aÓ0�Ü—
‘
×*Ñ*¨3°¸tÐ*ÔDÜ—
‘
×*Ñ*¨5°*À4Ð*ÕHñ Bñ $r   c                 ó<  — t        |d«      r|j                  |«      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Øœ5×0Ñ0Ñ0Ü”s˜2Ÿ7™7“|Ó$Ð$Øœ5×/Ñ/Ñ/Ü�r—w‘w“<ÐØœ5×,Ñ,Ñ,Ü˜Ÿ™“>Ð!àˆIr   Tc                 ó¶  — | j                   }| j                  }|s|| j                  z   }|D ]«  } t        ||ffi |¤Ž|«      }t	        j
                  ||«      D ]|  \  }}	| j                  ||«      }| j                  |	|«      }	 |||	«      }
 |||	«      }| j                  t        |«      t        |
«      «       | j                  ||
d|›d|›d|	›d�«       Œ~ Œ­ y )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Ø   € à×*Ñ*ˆØ×'Ñ'ˆ
ÙØ# d×&BÑ&BÑBˆJÛˆCØ,”C˜˜c˜
Ñ, eÑ,¨VÓ4ˆEÜ!×)Ñ)¨#¨sÖ3‘��1Ø×'Ñ'¨¨3Ó/�Ø×'Ñ'¨¨3Ó/�Ù! ! Q›<�Ù˜A˜q“k�à—‘œd 3›i¬¨h«Ô8Ø× Ñ  ¡hâ$'ªªAð"/õ0ñ 4ñ r   )g      à¿y      ð¿      ð?y      ð¿       @y      à¿      ð?ç      ø?c                 óP   — | j                  | j                  j                  |«       y r   )r  r   ra   ©râ   rç   s     r   Útest_lt_scalarzTestOperators.test_lt_scalarË  ó   € Ø×$Ñ$ T§W¡W×%7Ñ%7¸Õ?r   c                 ó0   — | j                  t        ¬«       y ©N©rç   )r  ÚNoflags©râ   s    r   Útest_lt_scalar_npmz TestOperators.test_lt_scalar_npmÎ  ó   € Ø×Ñ¤'ÐÕ*r   c                 óP   — | j                  | j                  j                  |«       y r   )r  r   rc   r  s     r   Útest_le_scalarzTestOperators.test_le_scalarÑ  r  r   c                 ó0   — | j                  t        ¬«       y r  )r  r  r  s    r   Útest_le_scalar_npmz TestOperators.test_le_scalar_npmÔ  r  r   c                 óP   — | j                  | j                  j                  |«       y r   )r  r   re   r  s     r   Útest_gt_scalarzTestOperators.test_gt_scalar×  r  r   c                 ó0   — | j                  t        ¬«       y r  )r   r  r  s    r   Útest_gt_scalar_npmz TestOperators.test_gt_scalar_npmÚ  r  r   c                 óP   — | j                  | j                  j                  |«       y r   )r  r   rg   r  s     r   Útest_ge_scalarzTestOperators.test_ge_scalarÝ  r  r   c                 ó0   — | j                  t        ¬«       y r  )r$  r  r  s    r   Útest_ge_scalar_npmz TestOperators.test_ge_scalar_npmà  r  r   c                 óT   — | j                  | j                  j                  |d¬«       y ©NF)r  )r  r   ri   r  s     r   Útest_eq_scalarzTestOperators.test_eq_scalarã  ó!   € Ø×$Ñ$ T§W¡W×%7Ñ%7¸ÈÐ$ÕNr   c                 ó0   — | j                  t        ¬«       y r  )r)  r  r  s    r   Útest_eq_scalar_npmz TestOperators.test_eq_scalar_npmæ  r  r   c                 óT   — | j                  | j                  j                  |d¬«       y r(  )r  r   rk   r  s     r   Útest_ne_scalarzTestOperators.test_ne_scalaré  r*  r   c                 ó0   — | j                  t        ¬«       y r  )r.  r  r  s    r   Útest_ne_scalar_npmz TestOperators.test_ne_scalar_npmì  r  r   c                 óÊ   —  t        t        j                  t        j                  f«      | j                  j                  «      }| j                   |t        t        «      «       y r   )r   r   Úellipsisr   rr   Ú
assertTrueÚEllipsis)râ   ré   s     r   Útest_is_ellipsiszTestOperators.test_is_ellipsisï  s=   € Ø6””e—n‘n¤e§n¡nÐ5Ó6°t·w±w×7IÑ7IÓJˆØ�‰™œh¬Ó1Õ2r   c                 ó  ‡—  t        t        j                  t        j                  fd¬«      | j                  j                  «      Št        d¬«      ˆfd„«       }| j                   |dd«      «       | j                   |dd«      «       y )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   rr   r3  ÚassertFalse)râ   ré   r9  s     @r   Útest_is_void_ptrzTestOperators.test_is_void_ptró  sv   ø€ ð
”SÜ�]‰]œEŸM™MÐ*°Tô
à
�'‰'×
Ñ
óˆ
ô
 
�dÔ	ó	$ó 
ð	$ð 	�‰™˜a ›Ô$Ø×Ñ™˜q !›Õ%r   c                 ó‚   — g d¢}g d¢}t         j                  t         j                  fg}| j                  |||||¬«       y )N©FFTT)FTFTr  )r   Úbooleanrî   ©râ   rã   rç   rä   rå   ræ   s         r   Úrun_binop_boolszTestOperators.run_binop_bools  s?   € Ú/ˆ
Ú/ˆ
ä—}‘}¤e§m¡mÐ4Ð5ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	õ 	(r   c                 óº  — g d¢}g d¢}t         j                  t         j                  ft         j                  t         j                  fg}| j                  |||||¬«       ddg}ddg}t         j                  t         j                  ft         j
                  t         j
                  ft         j                  t         j                  fg}| j                  |||||¬«       y )N)éûÿÿÿr   r:  r;  )éýÿÿÿéÿÿÿÿr:  é   r  r;  rH  r:  ©r   Úint32Úint64rî   ÚbyteÚuint32Úuint64rB  s         r   Úrun_binop_intszTestOperators.run_binop_ints  s¾   € Ú"ˆ
Ú#ˆ
ä—{‘{¤E§K¡KÐ0Ü—{‘{¤E§K¡KÐ0ð2ˆ
ð 	×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ð ˜�Vˆ
Ø˜�Vˆ
ä—z‘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}| j                  |||||¬«       y )N)gš™™™™™ñ¿ç        gš™™™™™ñ?)g      ø¿gš™™™™™é?gÍÌÌÌÌÌ @r  ©r   Úfloat32Úfloat64rô   rB  s         r   Úrun_binop_floatszTestOperators.run_binop_floats"  sS   € Ú%ˆ
Ú%ˆ
ä—}‘}¤e§m¡mÐ4Ü—}‘}¤e§m¡mÐ4ð6ˆ
ð 	×Ñ˜V Z°¸ZØ#(ð 	õ 	*r   c                 ó*   — | j                  ||¬«       y r  )rU  )râ   rã   rç   s      r   Úrun_binop_floats_floordivz'TestOperators.run_binop_floats_floordiv,  s   € Ø×Ñ˜f¨EÐÕ2r   c                 óÀ   — g d¢}g d¢}t         j                  t         j                  ft         j                  t         j                  fg}| j                  |||||¬«       y )N)yš™™™™™ñ¿333333Ó?y                y        š™™™™™ñ?)y      ø¿ffffffæ¿y        š™™™™™é?yÍÌÌÌÌÌ @       Àr  )r   Ú	complex64Ú
complex128rô   rB  s         r   Úrun_binop_complexzTestOperators.run_binop_complex/  sW   € Ú4ˆ
Ú4ˆ
ä—‘¬¯©Ð8Ü×'Ñ'¬×)9Ñ)9Ð:ð<ˆ
ð 	×Ñ˜V Z°¸ZØ#(ð 	õ 	*r   Fc                 ó  ‡— |D ]y  }|j                  «       D ]d  \  }}dD ]Z  }d|›d|›�}|r|dz  }|rt        nt        }	d|z  }
||
|	fd„Š|rd|v r|sˆfd„}n‰}||_        |r t	        d	«      |«      }|| |<   Œ\ Œf Œ{ y )
N©FTÚtest_Ú_Ú_npmz
%s_usecasec                 óZ   — t        | |«      }t        | j                  |«      } |||«       y r   )Úgetattrr   )râ   Úrunner_nameÚusecase_namerç   ÚrunnerÚ
op_usecases         r   Úinnerz1TestOperators.generate_binop_tests.<locals>.innerC  s(   € ä!(¨¨{Ó!;˜Ü%,¨T¯W©W°lÓ%C˜
Ù˜z¨5Õ1r   Úarrayc                 ó^   •— | j                  «       5   ‰«        d d d «       y # 1 sw Y   y xY wr   )ÚassertTypingError)râ   rg  s    €r   Ú	test_methz5TestOperators.generate_binop_tests.<locals>.test_methJ  s    ø€ Ø!%×!7Ñ!7Õ!9Ù %¤÷ ":×!9Ñ!9ús   ’#£,Ú	important)Úitemsr  Úforce_pyobj_flagsrs   r
   )ÚnsÚusecasesÚ
tp_runnersÚ	npm_arrayÚusecaseÚtp_namerc  r   Ú	test_namerç   rd  rk  rg  s               @r   Úgenerate_binop_testsz"TestOperators.generate_binop_tests9  s¦   ø€ ÛˆGØ(2×(8Ñ(8Ö(:Ñ$�˜Û -‘HÚ07¹Ð A�IÙØ! VÑ+˜	Ù'/�GÔ5F�EØ#/°'Ñ#9�Là0;Ø+7¸uó2ñ   G¨wÑ$6¹yõ(ð %*˜	à)2�IÔ&áØ$4¤C¨Ó$4°YÓ$?˜	à$-�B�y’Mñ3 !.ñ );ñ  r   )r{   r~   r�   rƒ   r…   r‡   rO  rU  r[  )ÚintsÚfloatsÚcomplex)rŽ   r‘   )r‰   rŒ   r“   r•   rW  )rw  rx  c                 óÈ  — t        | j                  |«      }t        j                  t        j                  t        j
                  g}|r|j                  t        j                  «       |D ]k  } t        ||ffi |¤Ž|«      }| j                  t        «      5 }	 |dd«       d d d «       |t        usŒG| j                  |t        	j                  «      «       Œm y # 1 sw Y   Œ:xY w)Nr:  r   )rb  r   r   rJ  rM  rT  ÚappendrZ  r   ÚassertRaisesÚZeroDivisionErrorrn  ÚassertInÚstrÚ	exception)
râ   rd  rÜ   rç   Úallow_complexrã   rè   Útpré   Úcms
             r   Úcheck_div_errorszTestOperators.check_div_errorsm  s¯   € ä˜Ÿ™ ,Ó/ˆô —[‘[¤%§,¡,´·±Ð>ˆ	ÙØ×ÑœU×-Ñ-Ô.ÛˆBØ*”C˜˜R˜Ñ* EÑ*¨6Ó2ˆEØ×"Ñ"Ô#4Ô5¸Ù�a˜”÷ 6ð Ô-Ò-Ø—‘˜c¤3 r§|¡|Ó#4Õ5ñ ç5Ð5ús   Â
CÃC!	c                 ó.   — | j                  dd|d¬«       y )Nr4   údivision by zeroT)rç   r�  ©r„  r  s     r   Útest_truediv_errorsz!TestOperators.test_truediv_errors}  s    € Ø×ÑÐ/Ð1CÈ5Ø,0ð 	õ 	2r   c                 ó0   — | j                  t        ¬«       y r  )rˆ  r  r  s    r   Útest_truediv_errors_npmz%TestOperators.test_truediv_errors_npm�  s   € Ø× Ñ ¤wÐ Õ/r   c                 ó,   — | j                  dd|¬«       y )Nr.   r†  r  r‡  r  s     r   Útest_floordiv_errorsz"TestOperators.test_floordiv_errors„  s   € Ø×ÑÐ0Ð2DÈEÐÕRr   c                 ó0   — | j                  t        ¬«       y r  )rŒ  r  r  s    r   Útest_floordiv_errors_npmz&TestOperators.test_floordiv_errors_npm‡  ó   € Ø×!Ñ!¬Ð!Õ0r   c                 ó,   — | j                  dd|¬«       y )Nr8   zmodulo by zeror  r‡  r  s     r   Útest_mod_errorszTestOperators.test_mod_errorsŠ  s   € Ø×Ñ˜mÐ-=ÀUÐÕKr   c                 ó0   — | j                  t        ¬«       y 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}| j                  |||||¬«       g d¢}g d¢}t         j                  t         j                  ft         j
                  t         j
                  ft         j                  t         j                  fg}| j                  |||||¬«       y )N©éþÿÿÿrG  r   r:  r;  ©r   r:  r;  r  rI  rB  s         r   Úrun_pow_intszTestOperators.run_pow_ints�  s¶   € Ú&ˆ
Úˆ
ä—{‘{¤E§K¡KÐ0Ü—{‘{¤E§K¡KÐ0ð2ˆ
ð 	×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ò ˆ
Úˆ
ä—z‘z¤5§:¡:Ð.Ü—|‘|¤U§\¡\Ð2Ü—|‘|¤U§\¡\Ð2ð4ˆ
ð 	×Ñ˜6 :¨z¸:Ø!&ð 	õ 	(r   c                 óz  — g d¢}g d¢}t         j                  t         j                  ft         j                  t         j                  fg}| j                  |||||¬«       dg}g d¢}t         j                  t         j                  ft         j                  t         j                  fg}| j                  |||||¬«       y )N)gÉv¾ŸÇkÀgÉv¾ŸÇ[ÀgÉv¾ŸÇ[@gÉv¾ŸÇk@r•  r  rQ  r—  rR  rB  s         r   Úrun_pow_floatszTestOperators.run_pow_floats¤  s¨   € Ú;ˆ
Ú&ˆ
ä—}‘}¤e§m¡mÐ4Ü—}‘}¤e§m¡mÐ4ð6ˆ
ð 	×Ñ˜V Z°¸ZØ#(ð 	ô 	*ð �Uˆ
Úˆ
ä—}‘}¤e§m¡mÐ4Ü—}‘}¤e§m¡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}| j                  |||||¬«       y )N©y      ð?        y              ð?y      ð¿      ð¿r  )r   r    r   rY  rZ  rô   ©râ   rç   rã   rä   rå   ræ   s         r   Útest_add_complexzTestOperators.test_add_complex¾  sf   € Ø—‘×$Ñ$ˆâ&ˆ
Øˆ
ä—‘¬¯©Ð8Ü×'Ñ'¬×)9Ñ)9Ð:ð=ˆ
ð 	×Ñ˜V Z°¸ZØ#(ð 	õ 	*r   c                 ó0   — | j                  t        ¬«       y 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}| j                  |||||¬«       y ©Nrœ  )r:  r;  rH  r  )r   r&   r   rY  rZ  rô   r�  s         r   Útest_sub_complexzTestOperators.test_sub_complexÍ  óf   € Ø—‘×$Ñ$ˆâ&ˆ
Úˆ
ä—‘¬¯©Ð8Ü×'Ñ'¬×)9Ñ)9Ð:ð=ˆ
ð 	×Ñ˜V Z°¸ZØ#(ð 	õ 	*r   c                 ó0   — | j                  t        ¬«       y 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}| j                  |||||¬«       y r£  )r   r*   r   rY  rZ  rô   r�  s         r   Útest_mul_complexzTestOperators.test_mul_complexÜ  r¥  r   c                 ó0   — | j                  t        ¬«       y 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}| j                  |||||¬«       y r£  )r   r4   r   rY  rZ  rô   r�  s         r   Útest_truediv_complexz"TestOperators.test_truediv_complexë  sf   € Ø—‘×(Ñ(ˆâ&ˆ
Úˆ
ä—‘¬¯©Ð8Ü×'Ñ'¬×)9Ñ)9Ð:ð=ˆ
ð 	×Ñ˜V Z°¸ZØ#(ð 	õ 	*r   c                 ó0   — | j                  t        ¬«       y 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 |¤Ž|«      }| j                  t        «      5 } |dd«       d d d «       t        j                  dv rd}nt        t        j                  «      ‚| j                  |t        j                  «      «       y # 1 sw Y   Œ]xY w)Ny              @y               @))rH  é
   ©rH  é   )rH  é   )rH  é   )rH  é   z!unsupported operand type(s) for %)r   r8   r   r   rY  r|  Ú	TypeErrorr   Ú	PYVERSIONÚNotImplementedErrorr~  r  r€  )râ   rç   rã   ÚcresÚraisesrÜ   s         r   Útest_mod_complexzTestOperators.test_mod_complexú  s—   € Ø—‘×$Ñ$ˆØ?Œs”E—O‘O¤U§_¡_Ð5Ñ?¸Ñ?ÀÓGˆØ×ÑœyÔ)¨VÙ��RŒL÷ *ô �?‰?ÐKÑKØ5‰Cä%¤e§o¡oÓ6Ð6à�‰�cœ3˜v×/Ñ/Ó0Õ1÷ *Ð)ús   Á
CÃCc                 óØ   — | j                   j                  }| j                  «       5   t        t        j
                  t        j
                  f«      |«       d d d «       y # 1 sw Y   y xY wr   )r   r8   rj  r   r   rY  )râ   rã   s     r   Útest_mod_complex_npmz"TestOperators.test_mod_complex_npm  sE   € Ø—‘×$Ñ$ˆØ×#Ñ#Õ%Ø4ŒD”%—/‘/¤5§?¡?Ð3Ó4°VÔ<÷ &×%Ñ%ús   §0A Á A)c                 ó  —  t        di t        ¤Ž|«      }t        d«      }t        d«      } |||«      }| j                  |j                  d«       |r| j                  ||«       y | j                  ||«       | j                  ||«       y )NrH  é   r´  ©r   )r   rn  r   r
  Úvaluer  ÚassertIsNot)râ   rã   Úinplaceré   ÚaÚbrì   s          r   Úcheck_matmul_objmodez"TestOperators.check_matmul_objmode  sy   € à,”Ñ,Ô+Ñ,¨VÓ4ˆÜ�q‹MˆÜ�q‹MˆÙ�A�q‹kˆØ×Ñ˜Ÿ™ BÔ'ÙØ�M‰M˜#˜qÕ!à×Ñ˜S !Ô$Ø×Ñ˜S !Õ$r   c                 óR   — | j                  | j                  j                  d¬«       y )NF©rÄ  )rÇ  r   r   r  s    r   Útest_matmulzTestOperators.test_matmul  s   € Ø×!Ñ! $§'¡'×"8Ñ"8À%Ð!ÕHr   c                 óR   — | j                  | j                  j                  d¬«       y )NTrÉ  )rÇ  r   r   r  s    r   Útest_imatmulzTestOperators.test_imatmul"  s   € Ø×!Ñ! $§'¡'×"9Ñ"9À4Ð!ÕHr   c                 óv  — t        j                  t         j                  dd«      } t        ||f«      |«      }t	        j                  ddg«      }t	        j                  ddg«      } |||«      }| j                  |t	        j                  ||«      «       | j                  ||«       | j                  ||«       y )Nr:  ÚCr;  rH  rÀ  )r   ÚArrayrS  r   rñ   rà   ÚdotrÃ  )râ   rã   Úarrtyré   rÅ  rÆ  rì   s          r   Úcheck_matmul_npmzTestOperators.check_matmul_npm%  s–   € ä—‘œEŸM™M¨1¨cÓ2ˆØ$”�e˜U�^Ó$ VÓ,ˆÜ�J‰J˜˜1�vÓˆÜ�J‰J˜˜1�vÓˆÙ�A�q‹kˆØ×Ñ ¤R§V¡V¨A¨q£\Ô2à×Ñ˜˜aÔ Ø×Ñ˜˜aÕ r   c                 óN   — | j                  | j                  j                  «       y r   )rÒ  r   r   r  s    r   Útest_matmul_npmzTestOperators.test_matmul_npm1  s   € Ø×Ñ˜dŸg™g×4Ñ4Õ5r   c                 ó˜   — | j                  «       5 }| j                  | j                  j                  «       d d d «       y # 1 sw Y   y xY wr   )rj  rÒ  r   r   )râ   r»  s     r   Útest_imatmul_npmzTestOperators.test_imatmul_npm4  s4   € Ø×#Ñ#Ô%¨Ø×!Ñ! $§'¡'×"9Ñ"9Ô:÷ &×%Ñ%ús   ‘&A Á A	c                 óü  — ddg}g d¢}t         j                  t         j                  fg}| j                  |||||¬«       ddg}g d¢}t         j                  t         j                  fg}| j                  |||||¬«       ddg}g d¢}t         j                  t         j                  fg}| j                  |||||¬«       ddg}g d¢}t         j
                  t         j
                  fg}| j                  |||||¬«       y )Nr   r:  ©r   r:  r;  rÀ  é   é   é   r  ©r   r:  r;  rÀ  rÙ  rÚ  é    é?   rG  ©r   rM  rî   rN  rJ  rK  rB  s         r   Úrun_bitshift_leftzTestOperators.run_bitshift_left<  s  € Ø˜�Vˆ
Ú,ˆ
ä—|‘|¤U§\¡\Ð2Ð3ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ð ˜�Vˆ
Ú0ˆ
ä—|‘|¤U§\¡\Ð2Ð3ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ð ˜�Wˆ
Ú,ˆ
ä—{‘{¤E§K¡KÐ0Ð1ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ð ˜�Wˆ
Ú0ˆ
ä—{‘{¤E§K¡KÐ0Ð1ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	õ 	(r   )Úbitshift_leftÚbitshift_ileftrw  rà  c                 óü  — g d¢}g d¢}t         j                  t         j                  fg}| j                  |||||¬«       g d¢}g d¢}t         j                  t         j                  fg}| j                  |||||¬«       g d¢}g d¢}t         j                  t         j                  fg}| j                  |||||¬«       g d¢}g d¢}t         j
                  t         j
                  fg}| j                  |||||¬«       y )N)r   r:  ì   ÿÿ rØ  r  )r   r:  ì   ÿÿÿÿ rÜ  )r   r:  é   €)r   rG  ræ  rß  rB  s         r   Úrun_bitshift_rightz TestOperators.run_bitshift_rightb  sü   € Ú&ˆ
Ú,ˆ
ä—|‘|¤U§\¡\Ð2Ð3ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ò 'ˆ
Ú0ˆ
ä—|‘|¤U§\¡\Ð2Ð3ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ò &ˆ
Ú,ˆ
ä—{‘{¤E§K¡KÐ0Ð1ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ò 'ˆ
Ú0ˆ
ä—{‘{¤E§K¡KÐ0Ð1ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	õ 	(r   )Úbitshift_rightÚbitshift_irightrç  c                 óT  — t        t        dd«      «      dgz   }t        t        dd«      «      dgz   }t        j                  t        j                  fg}| j	                  |||||¬«       t        t        dd«      «      dgz   }t        t        dd«      «      dgz   }t        j
                  t        j
                  fg}| j	                  |||||¬«       t        t        dd«      «      dd	gz   }t        t        dd«      «      dd	gz   }t        j                  t        j                  fg}| j	                  |||||¬«       t        t        dd«      «      d
dgz   }t        t        dd«      «      d
dgz   }t        j                  t        j                  fg}| j	                  |||||¬«       y )Nr   rÙ  rä  r  rå  éüÿÿÿrÀ  ræ  éÿÿÿìûÿÿÿ         ì   ÿÿÿÿ )ÚlistÚranger   rM  rî   rN  rJ  rK  rB  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¡KÐ0Ð1ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ô œ%  A›,Ó'¨8°YÐ*?Ñ?ˆ
Üœ%  A›,Ó'¨8°YÐ*?Ñ?ˆ
ä—{‘{¤E§K¡KÐ0Ð1ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	õ 	(r   )Úbitwise_andÚbitwise_iandÚ
bitwise_orÚbitwise_iorÚbitwise_xorÚbitwise_ixorrñ  rC  )rw  Úboolsc                 ón  — | j                   j                  }t        t        dd«      «      dgz   }|D �cg c]  }t	        j
                  |«      ‘Œ }}dg}t        j
                  t        j
                  fg}| j                  |||||¬«       t        t        dd«      «      ddgz   }dg}t        j                  t        j                  fg}| j                  |||||¬«       t        t        dd«      «      d	gz   }|D �cg c]  }t	        j                  |«      ‘Œ }}dg}t        j                  t        j                  fg}| j                  |||||¬«       t        t        dd«      «      d
dgz   }dg}t        j                  t        j                  fg}| j                  |||||¬«       g d¢}t        t        t        j                  |«      «      }| j                   j                  } t        t        j                  ffi |¤Ž|«      }|D ]   }	| j!                   ||	«       ||	«      «       Œ" y c c}w c c}w )Nr   rÙ  rä  r  rë  rÀ  ræ  rì  rå  rí  rî  r@  )r   rU   rï  rð  rñ   rM  r   rî   rJ  rN  rK  ÚmapÚbool_rY   r   rA  rà   )
râ   rç   rã   rä   r   rå   ræ   Úvaluesré   Úvals
             r   Útest_bitwise_notzTestOperators.test_bitwise_notµ  s  € Ø—‘×3Ñ3ˆäœ%  1›+Ó&¨)¨Ñ4ˆ
Ù,6Ó7©J q”b—i‘i •l¨Jˆ
Ð7Ø�Sˆ
ä—|‘|¤U§\¡\Ð2Ð3ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ô œ%  A›,Ó'¨8°YÐ*?Ñ?ˆ
Ø�Sˆ
ä—{‘{¤E§K¡KÐ0Ð1ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ô œ%  1›+Ó&¨)¨Ñ4ˆ
Ù,6Ó7©J q”b—i‘i •l¨Jˆ
Ð7Ø�Sˆ
ä—|‘|¤U§\¡\Ð2Ð3ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ô œ%  A›,Ó'¨8°YÐ*?Ñ?ˆ
Ø�Sˆ
ä—{‘{¤E§K¡KÐ0Ð1ˆ
à×Ñ˜6 :¨z¸:Ø!&ð 	ô 	(ò
 ,ˆÜ”cœ"Ÿ(™( FÓ+Ó,ˆà—‘×,Ñ,ˆØ.””U—]‘]Ð$Ñ.¨Ñ.¨vÓ6ˆÛˆCØ×#Ñ#¡F¨3£K±°s³Õ<ñ ùòQ 8ùò" 8s   ´H-Ã=H2c                 ó0   — | j                  t        ¬«       y r  )rþ  r  r  s    r   Útest_bitwise_not_npmz"TestOperators.test_bitwise_not_npmä  r¡  r   c                 ó¾   ‡ — ˆ fd„}g d¢}|D ]N  }t        ‰ j                  |«      } ||t        j                  t        j                  f‰ j                  |   ¬«       ŒP y)zI
        Make sure that bitwise float operations are not allowed
        c                 óv  •— dj                  | «      }‰j                  t        j                  |¬«      5 } t	        |«      | «       d d d «       t
        dz   }|j                  t        |t        «      r|ndj                  |«      «      }‰j                  |t        j                  «      «       y # 1 sw Y   ŒjxY w)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ˆCØ×"Ñ"¤6×#5Ñ#5¸3Ð"Ô?À6Ø”�X“˜vÔ&÷ @ô  Ñ&ˆCØŸ
™
Ü&0°¼Ô&=ñ $*à(6×(=Ñ(=¸fÓ(EóGˆIð �M‰M˜)¤S¨×)9Ñ)9Ó%:Õ;÷ @Ð?ús   ´B/Â/B8rÔ   )r  N)rb  r   r   rS  Ú_bitwise_opnames)râ   r
  ÚmethodsÚnamerã   s   `    r   Útest_bitwise_floatz TestOperators.test_bitwise_floatç  sS   ø€ ô		<ò
ˆó ˆDÜ˜TŸW™W dÓ+ˆFÙ! &¬5¯=©=¼%¿-¹-Ð*HØ)-×)>Ñ)>¸tÑ)DöFñ r   c                 ó¬   — | j                   j                  }g d¢} t        di t        ¤Ž|«      }|D ]   }| j	                   ||«       ||«      «       Œ" y )N©r:  r;  rH  ç333333ó?ù        333333@rÁ  )r   r[   r   rn  r
  ©râ   rã   rü  ré   rý  s        r   Útest_notzTestOperators.test_not	  sQ   € Ø—‘×$Ñ$ˆò
ˆð -”Ñ,Ô+Ñ,¨VÓ4ˆÛˆCØ×Ñ™V C›[©%°«*Õ5ñ r   c                 óÈ  — | j                   j                  }t        j                  t        j                  t        j
                  t        j                  t        j                  g}g d¢}t        ||«      D ]l  \  }} t        |f«      |«      }| j                  |j                  d   j                  t        j                  «       | j                   ||«       ||«      «       Œn y )Nr  r   )r   r[   r   Úint8rJ  rK  rS  rZ  Úzipr   r
  Únopython_signaturesÚreturn_typerA  ©râ   rã   Úargtysrü  Útyrý  ré   s          r   Útest_not_npmzTestOperators.test_not_npm  s¯   € Ø—‘×$Ñ$ˆô �J‰JÜ�K‰KÜ�K‰KÜ�M‰MÜ×Ñð
ˆò
ˆô ˜6 6Ö*‰GˆB�Ø”D˜"˜“K Ó'ˆEØ×Ñ˜U×6Ñ6°qÑ9×EÑEÜ"Ÿ]™]ô,à×Ñ™V C›[©%°«*Õ5ñ	 +r   c                 ó´  — | j                   j                  }t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  g}g d¢}t        ||«      D ]5  \  }} t        |f«      |«      }| j                   ||«       ||«      «       Œ7 y ©N)r:  r;  rH  r  g333333@r  TF)r   r]   r   r  rJ  rK  rS  rT  rZ  rA  r  r   ÚassertAlmostEqualr  s          r   Útest_negate_npmzTestOperators.test_negate_npm1  sœ   € Ø—‘×'Ñ'ˆô �J‰JÜ�K‰KÜ�K‰KÜ�M‰MÜ�M‰MÜ×ÑÜ�M‰MÜ�M‰Mð	
ˆò	
ˆô ˜6 6Ö*‰GˆB�Ø”D˜"˜“K Ó'ˆEØ×"Ñ"¡6¨#£;±°c³
Õ;ñ +r   c                 ó¬   — | j                   j                  }g d¢} t        di t        ¤Ž|«      }|D ]   }| j	                   ||«       ||«      «       Œ" y ©N)r:  r;  rH  r  r  TFrÁ  )r   r]   r   rn  r
  r  s        r   Útest_negatezTestOperators.test_negateM  sQ   € Ø—‘×'Ñ'ˆò
ˆð -”Ñ,Ô+Ñ,¨VÓ4ˆÛˆCØ×Ñ™V C›[©%°«*Õ5ñ r   c                 ó´  — | j                   j                  }t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  g}g d¢}t        ||«      D ]5  \  }} t        |f«      |«      }| j                   ||«       ||«      «       Œ7 y r  )r   r_   r   r  rJ  rK  rS  rT  rZ  rA  r  r   r   r  s          r   Útest_unary_positive_npmz%TestOperators.test_unary_positive_npm\  sœ   € Ø—‘×/Ñ/ˆô �J‰JÜ�K‰KÜ�K‰KÜ�M‰MÜ�M‰MÜ×ÑÜ�M‰MÜ�M‰Mð	
ˆò	
ˆô ˜6 6Ö*‰GˆB�Ø”D˜"˜“K Ó'ˆEØ×"Ñ"¡6¨#£;±°c³
Õ;ñ +r   c                 ó¬   — | j                   j                  }g d¢} t        di t        ¤Ž|«      }|D ]   }| j	                   ||«       ||«      «       Œ" y r#  )r   r_   r   rn  r
  r  s        r   Útest_unary_positivez!TestOperators.test_unary_positivew  sQ   € Ø—‘×/Ñ/ˆò
ˆð -”Ñ,Ô+Ñ,¨VÓ4ˆÛˆCØ×Ñ™V C›[©%°«*Õ5ñ r   c                 óÆ   — t         j                  } t        |t        j                  |d«      ffi |¤Ž|«      }dD ]$  }d}| j	                   |||«       |||«      «       Œ& y )NrH  )rH  rÀ  é   é   é*   )rH  r,  r*  )r   rK  r   ÚUniTuplerà   )râ   rã   rç   rö   ré   ÚiÚtups          r   Ú	_check_inzTestOperators._check_in†  s\   € Ü—‘ˆØ?”�UœEŸN™N¨5°!Ó4Ð5Ñ?¸Ñ?ÀÓGˆÛ!ˆAØˆCØ×#Ñ#¡F¨1¨c£N±E¸!¸S³MÕBñ "r   c                 óP   — | j                  | j                  j                  |«       y r   )r0  r   rm   r  s     r   Útest_inzTestOperators.test_in�  s   € Ø�‰�t—w‘w×)Ñ)¨5Õ1r   c                 ó0   — | j                  t        ¬«       y r  )r2  r  r  s    r   Útest_in_npmzTestOperators.test_in_npm�  s   € Ø�‰œ7ˆÕ#r   c                 óP   — | j                  | j                  j                  |«       y r   )r0  r   rp   r  s     r   Útest_not_inzTestOperators.test_not_in“  s   € Ø�‰�t—w‘w×-Ñ-¨uÕ5r   c                 ó0   — | j                  t        ¬«       y r  )r6  r  r  s    r   Útest_not_in_npmzTestOperators.test_not_in_npm–  s   € Ø×ÑœwÐÕ'r   N)F)drs   rt   ru   Ú__doc__r   r   rz   r    r¢   r¤   r¦   r¨   rª   r¬   r®   r°   r²   rµ   r  rn  rî   rô   r  r  r  r   rJ  rK  rM  rN  rS  rT  r  rY  rZ  r  r  r  r  r  r   r"  r$  r&  r)  r,  r.  r0  r5  r>  rC  rO  rU  rW  r[  rv  Ú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(  r0  r2  r4  r6  r8  r   r   r   rÓ   rÓ   h  s–  „ ñð 
€Bð "*§¡Ø"*×"2Ñ"2Ø"*§/¡/Ø#+×#3Ñ#3Ø'Ÿ}™}Ø (§¡Ø&Ÿl™lØ'Ÿ|™|Ø'Ÿ|™|Ø (§¡Ø&.§o¡oñÐð .ó@ð* 0óIò
ð 5FØ(,ó0ò0 KÐØ—[‘[ %§+¡+Ø—\‘\ 5§<¡<Ø—]‘] E§M¡Mð3€Mð  %Ÿ™°×0@Ñ0@ÐAÐà#4ó @ò+ð $5ó @ò+ð $5ó @ò+ð $5ó @ò+ð $5ó Oò+ð $5ó Oò+ò3ò&ð$ ->ó (ð ,=ó (ð( .?ó *ð 7Hó 3ð /@ó *ó.ñ> ™›ØFØ"2Ø$6Ø%8ñôñ ™›Ø0Ø"2Ø$6Ø%8ñôñ ™›ØAØ"2Ø$?ñôð 9JØ',ó6ð  ):ó 2ò0ð *;ó Sò1ð %6ó Lò,ð *;ó (ð( ,=ó *ñ( ™›Ø(Ø"0Ø$4ñôð &7ó 
*ò-ð &7ó 
*ò-ð &7ó 
*ò-ð *;ó 
*ò1ð &7ó 2ò=ò%òIòIð ñ	!ó ð	!ò6ò;ð /@ó (ñB ™›Ø<Ø Ð"5ð ôð
 0Aó (ñB ™›Ø>Ø Ð"6ð ôð
 ):ó (ñB ™›ð9ð #0Ø#4ñô	ð &7ó -=ò^-ò FòD6ò6ò2<ò86ò<ò66òCð .ó 2ò$ð !2ó 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y)ÚTestOperatorModulerÔ   N)rs   rt   ru   rx   r   rz   r    r¢   r¤   r¦   r¨   rª   r¬   r®   r°   r²   rµ   r  r   r   r   r<  r<  š  sb   „ à	€Bð "*§¡Ø"*×"2Ñ"2Ø"*§/¡/Ø#+×#3Ñ#3Ø'Ÿ}™}Ø (§¡Ø&Ÿl™lØ'Ÿ|™|Ø'Ÿ|™|Ø (§¡Ø&.§o¡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eD � �cg c]  }|j                  sŒ|‘Œ c}} ZeD � �cg c]  }|j                  rŒ|‘Œ c}} Z e ej$                  ee«      «      ZeD � ��cg c]!  \  }}|j                  s|j                  r||f‘Œ# c}}} ZeD � ��cg c]!  \  }}|j                  s|j                  s||f‘Œ# c}}} 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„ Z0yc c}} w c c}} w c c}}} w c c}}} w ) ÚTestMixedIntsz<
    Tests for operator calls with mixed integer types.
    )r   r:  rH  r±  r,  é   i'  rG  rF  iöÿÿÿiÖÿÿÿi�ÿÿÿiðØÿÿc                 óˆ   — t        j                  |j                  «      }|j                  |cxk  xr |j                  k  S c S r   )rñ   ÚiinfoÚkeyÚminÚmax)râ   rý  r‚  Útp_infos       r   Úint_in_dtype_rangez TestMixedInts.int_in_dtype_range¿  s2   € Ü—(‘(˜2Ÿ6™6Ó"ˆØ�{‰{˜cÖ0 W§[¡[Ñ0Ð0Ñ0Ð0r   c                 ó”   — t        d„ |D «       «      }t        |t        j                  j                  «      }t	        t
        d|z  «      S )Nc              3   óN   K  — | ]  }|j                   j                  d z  –— Œ y­w©rÙ  N©rö   Úitemsize©Ú.0Úvs     r   Ú	<genexpr>z8TestMixedInts.get_numpy_signed_upcast.<locals>.<genexpr>Ä  ó    è ø€ Ð:±T°�q—w‘w×'Ñ'¨!Õ+±Tùó   ‚#%zint%d©rD  r   ÚintpÚbitwidthrb  rñ   ©râ   ÚvalsrT  s      r   Úget_numpy_signed_upcastz%TestMixedInts.get_numpy_signed_upcastÃ  s:   € ÜÑ:±TÓ:Ó:ˆÜ�x¤§¡×!4Ñ!4Ó5ˆÜ”r˜7 XÑ-Ó.Ð.r   c                 ó”   — t        d„ |D «       «      }t        |t        j                  j                  «      }t	        t
        d|z  «      S )Nc              3   óN   K  — | ]  }|j                   j                  d z  –— Œ y­wrI  rJ  rL  s     r   rO  z:TestMixedInts.get_numpy_unsigned_upcast.<locals>.<genexpr>É  rP  rQ  zuint%drR  rU  s      r   Úget_numpy_unsigned_upcastz'TestMixedInts.get_numpy_unsigned_upcastÈ  s:   € ÜÑ:±TÓ:Ó:ˆÜ�x¤§¡×!4Ñ!4Ó5ˆÜ”r˜8 hÑ.Ó/Ð/r   c                 óB   —  t        t        |j                  «      |«      S r   )rb  rñ   r  )râ   r  rý  s      r   Úget_typed_intzTestMixedInts.get_typed_intÍ  s   € Ø$Œw”r˜3Ÿ8™8Ó$ SÓ)Ð)r   c                 ó6   ‡ ‡— t        t        |«      Šˆˆ fd„}|S )Nc                 óR   •— ‰j                  | |«      } ‰ || «       ||«      «      S r   ©rW  ©rÅ  rÆ  r‚  r   râ   s      €€r   Úcontrol_signedz8TestMixedInts.get_control_signed.<locals>.control_signedÒ  s*   ø€ Ø×-Ñ-¨a°Ó3ˆBÙ‘b˜“e™R ›UÓ#Ð#r   ©rb  rz   )râ   r  ra  r   s   `  @r   Úget_control_signedz TestMixedInts.get_control_signedÐ  s   ù€ Ü”X˜vÓ&ˆõ	$ð Ðr   c                 ó6   ‡ ‡— t        t        |«      Šˆˆ fd„}|S )Nc                 óR   •— ‰j                  | |«      } ‰ || «       ||«      «      S r   ©rZ  r`  s      €€r   Úcontrol_unsignedz<TestMixedInts.get_control_unsigned.<locals>.control_unsignedÙ  s*   ø€ Ø×/Ñ/°°1Ó5ˆBÙ‘b˜“e™R ›UÓ#Ð#r   rb  )râ   r  rg  r   s   `  @r   Úget_control_unsignedz"TestMixedInts.get_control_unsigned×  s   ù€ Ü”X˜vÓ&ˆõ	$ð  Ðr   c                 ó   — | S r   r   rX   s    r   Ú<lambda>zTestMixedInts.<lambda>ß  s   € ¹1r   c           	      óº  — |D ]Ö  \  }}	 t        ||	f«      |«      }
t        j                  ||«      D ]¥  \  }}| j                  ||«      r| j                  ||	«      sŒ+| j	                  ||«      }| j	                  |	|«      } |||«      } |
||«      }| j                  ||«       d|›d|›d||	f›�} ||«       ||«      }} | j                  ||fd|i|¤Ž Œ§ ŒØ y )NrÖ   r×   rØ   rÜ   )r   rÝ   rÞ   rF  r\  Ú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Þ  sú   € ó ‰FˆB�Ø"”D˜"˜b˜“N 6Ó*ˆEÜ!×)Ñ)¨(°HÖ=‘��1à×.Ñ.¨q°"Ô5¸T×=TÑ=TÐUVÐXZÔ=[Øà×&Ñ& r¨1Ó-�Ø×&Ñ& r¨1Ó-�Ù'¨¨1Ó-�Ù˜A˜q“k�Ø×%Ñ% c¨=Õ9âšQ  R¡ð*�á *¨3£±¸HÓ1E�X�Ø'�×'Ñ'¨¨Xñ B¸3ð BØ*@óBñ >ñ r   c                 ó  — |D ]‚  } t        |f«      |«      }|D ]i  }| j                  ||«      sŒ| j                  ||«      } ||«      }	 ||«      }
| j                  |
|«       | j	                  |
|	d|›d|›d|
›d|	›�¬«       Œk Œ„ y )Nzmismatch for z with type rÙ   rÚ   rÛ   )r   rF  r\  rl  rà   )râ   rã   rm  rn  r   ro  rr  ré   r   rí   rì   s              r   Ú	run_unaryzTestMixedInts.run_unaryó  s•   € ãˆBØ”D˜"˜“K Ó'ˆEÛ�Ø×.Ñ.¨q°"Ô5ØØ×&Ñ& r¨1Ó-�Ù'¨›?�Ù˜A“h�Ø×%Ñ% c¨=Ô9Ø×'Ñ'Ø™âšb¢#¡xð1ð (õ 2ñ ñ r   c                 ó   — | S r   r   rX   s    r   rj  zTestMixedInts.<lambda>  s   € Ár   c                 óÌ   —  | j                   || j                  |«      || j                  |fd|i|¤Ž  | j                   || j                  |«      || j                  |fd|i|¤Ž y )Nrp  )rt  rc  Úsigned_pairsrh  Úunsigned_pairs)râ   rã   r  Úsamplesro  rp  rq  s          r   Úrun_arith_binopzTestMixedInts.run_arith_binop  s~   € ð 	ˆ�‰˜ × 7Ñ 7¸Ó ?Ø ×!2Ñ!2°Mñ	2à#-ð	2ð 1ò	2ð 	ˆ�‰˜ × 9Ñ 9¸&Ó AØ ×!4Ñ!4°mñ	2à#-ð	2ð 1ó	2r   c                 óf   — | j                  | j                  j                  d| j                  «       y )Nr{   )r|  r   r    Úint_samplesr  s    r   Útest_addzTestMixedInts.test_add  ó$   € Ø×Ñ˜TŸW™W×0Ñ0°%¸×9IÑ9IÕJr   c                 óf   — | j                  | j                  j                  d| j                  «       y )Nr�   )r|  r   r&   r~  r  s    r   Útest_subzTestMixedInts.test_sub  r€  r   c                 óf   — | j                  | j                  j                  d| j                  «       y )Nr…   )r|  r   r*   r~  r  s    r   Útest_mulzTestMixedInts.test_mul  r€  r   c                 óš   — | j                   D �cg c]
  }|dk7  sŒ	|‘Œ }}| j                  | j                  j                  d|«       y c c}w )Nr   r‰   )r~  r|  r   r.   ©râ   r   r{  s      r   Útest_floordivzTestMixedInts.test_floordiv  sE   € Ø"×.Ò.Ó9Ñ.˜°!°q³&’1Ð.ˆÐ9Ø×Ñ˜TŸW™W×5Ñ5°zÀ7ÕKùò :ó
   �
AšAc                 óš   — | j                   D �cg c]
  }|dk7  sŒ	|‘Œ }}| j                  | j                  j                  d|«       y c c}w )Nr   r“   )r~  r|  r   r8   r†  s      r   Útest_modzTestMixedInts.test_mod  sE   € Ø"×.Ò.Ó9Ñ.˜°!°q³&’1Ð.ˆÐ9Ø×Ñ˜TŸW™W×0Ñ0°%¸ÕAùò :rˆ  c                 óÚ  ‡ — i }t         j                  dk(  r	t        |d<   ‰ j                  j                  }‰ j
                  D �cg c]
  }|dk\  sŒ	|‘Œ }} ‰ j                  |d|fi |¤Ž ˆ fd„}‰ j
                  D �cg c]
  }|dk7  sŒ	|‘Œ }}‰ j                  D ��cg c]!  \  }}|j                  r|j                  r||f‘Œ# }}} ‰ j                  ||||fi |¤Ž y c c}w c c}w c c}}w )Nr²  rp  r   r—   c                 ó´   •— ‰j                  | |«      }|dk\  r || «       ||«      z  S  || «       || «      z  }|dk(  ryt        j                  d|z  «      S )Nr   g      ð?)rW  rñ   rS  )rÅ  rÆ  r‚  Úinvrâ   s       €r   ra  z.TestMixedInts.test_pow.<locals>.control_signed+  s^   ø€ Ø×-Ñ-¨a°Ó3ˆBØ�AŠvÙ˜!“u¡ 1£‘~Ð%á˜“e™r 1 "›v‘o�Ø˜!’8àÜ—w‘w˜s S™yÓ)Ð)r   )
r   r¸  rÿ   r   r   r~  r|  Ú
type_pairsÚsignedrt  )	râ   Ú
extra_castrã   r   r{  ra  ÚurN  ry  s	   `        r   Útest_powzTestMixedInts.test_pow   sõ   ø€ Øˆ
Ü�?‰?˜gÒ%Ü',ˆJ�|Ñ$Ø—‘×$Ñ$ˆð #×.Ò.Ó9Ñ.˜°!°q³&’1Ð.ˆÐ9Øˆ×Ñ˜V U¨GÑB°zÒBô		*ð #×.Ò.Ó9Ñ.˜°!°q³&’1Ð.ˆÐ9Ø+/¯?ª?ô 2©?¡4 1 aØŸ8š8¨¯ªð ˜Aš¨?ˆñ 2àˆ�‰˜ Ø ñ	=Ø1;ó	=ùò# :ùò :ùó2s   Á
CÁCÁ=
C"ÂC"Â&C'c                 ó    — t         d„ «       }d}||z  } ||«      }| j                  ||«       | j                  ||j                  |«      «       y )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;  sU   € Ü	ñ	ó 
ð	ð ˆØ�q‘5ˆÙ�a“ˆØ×Ñ˜ Ô*Ø×Ñ˜ §¡¨a£Õ1r   c                 ó  — d„ }| j                   D �cg c]
  }|dk7  sŒ	|‘Œ }}| j                  j                  }| j                  |||| j                  t
        d¬«       | j                  |||| j                  t
        d¬«       y c c}w )Nc                 ó0   — t        | «      t        |«      z  S r   )rÿ   ©rÅ  rÆ  s     r   Úcontrolz+TestMixedInts.test_truediv.<locals>.controlH  s   € Ü˜“8œe A›hÑ&Ð&r   r   Údouble)ro  Úprec)r~  r   r4   rt  ry  rÿ   rz  )râ   rœ  r   r{  rã   s        r   Útest_truedivzTestMixedInts.test_truedivF  s‡   € ò	'à"×.Ò.Ó9Ñ.˜°!°q³&’1Ð.ˆÐ9Ø—‘×(Ñ(ˆð
 	�‰˜ ¨°$×2CÑ2CÜ&+°(ð 	ô 	<à�‰˜ ¨°$×2EÑ2EÜ&+°(ð 	õ 	<ùò :s
   ’
B�Bc                 óf   — | j                  | j                  j                  d| j                  «       y )Nr¨   )r|  r   rG   r~  r  s    r   Útest_andzTestMixedInts.test_andU  s$   € Ø×Ñ˜TŸW™W×8Ñ8¸&À$×BRÑBRÕSr   c                 óf   — | j                  | j                  j                  d| j                  «       y )Nr¬   )r|  r   rK   r~  r  s    r   Útest_orzTestMixedInts.test_orX  s$   € Ø×Ñ˜TŸW™W×7Ñ7¸À×@PÑ@PÕQr   c                 óf   — | j                  | j                  j                  d| j                  «       y )Nr°   )r|  r   rO   r~  r  s    r   Útest_xorzTestMixedInts.test_xor[  s$   € Ø×Ñ˜TŸW™W×8Ñ8¸%À×AQÑAQÕRr   c                 ó‚  ‡ ‡‡‡— t        t        |«      Šˆˆ fd„}ˆˆ fd„}‰ j                  Šˆˆˆ fd„}‰ j                  D ��cg c]  \  }}|j                  r||f‘Œ }}}‰ j                  D ��cg c]  \  }}|j                  s||f‘Œ }	}}|D ]  \  }
} ||
||«       Œ |	D ]  \  }
} ||
||«       Œ y c c}}w c c}}w )Nc                 óR   •— ‰j                  | |«      } ‰ || «       ||«      «      S r   r_  ©rÅ  rÆ  r‚  Úopfuncrâ   s      €€r   ra  z5TestMixedInts.run_shift_binop.<locals>.control_signed`  s*   ø€ Ø×-Ñ-¨a°Ó3ˆBÙ™"˜Q›%¡ A£Ó'Ð'r   c                 óR   •— ‰j                  | |«      } ‰ || «       ||«      «      S r   rf  r¨  s      €€r   rg  z7TestMixedInts.run_shift_binop.<locals>.control_unsignedc  s*   ø€ Ø×/Ñ/°°1Ó5ˆBÙ™"˜Q›%¡ A£Ó'Ð'r   c           	      óp  •—  t        | |f«      ‰
«      }‰D ]�  }| j                  dz
  }dddd|dz
  |fD ]~  }‰j                  || «      r‰j                  ||«      sŒ(‰j                  | |«      }‰j                  ||«      } |||«      } |||«      }d|›d|›d| |f›�}	‰j	                  |||	¬«       Œ€ ŒŸ y )	Nr:  r   rH  r*  rÖ   r×   rØ   rÛ   )r   rT  rF  r\  rà   )rr  rs  rm  ré   r   Úmaxshiftr   rí   rì   rÜ   rã   r{  râ   s             €€€r   Úcheckz,TestMixedInts.run_shift_binop.<locals>.checki  sÑ   ø€ Ø"”D˜"˜b˜“N 6Ó*ˆEÛ�ð Ÿ;™;¨™?�Ø˜Q  1 h°¡l°HÓ=�AØ×2Ñ2°1°bÔ9À×AXÑAXÐYZÐ\^ÔA_Ø à×*Ñ*¨2¨qÓ1�AØ×*Ñ*¨2¨qÓ1�AÙ+¨A¨qÓ1�HÙ  1›+‘Câ¢ R¨¡Hð.�Cà×+Ñ+¨C°¸sÐ+ÕCñ >ñ	 r   )rb  rz   r~  rŽ  r�  )râ   rã   r  ra  rg  r­  r‘  rN  ry  rz  rr  rs  r©  r{  s   ``          @@r   Úrun_shift_binopzTestMixedInts.run_shift_binop^  sË   û€ Üœ 6Ó*ˆõ	(õ	(ð ×"Ñ"ˆö	Dð( ,0¯?ª?ô %©?¡4 1 aØŸ8š8ð ˜Aš¨?ˆñ %à-1¯_ª_ô +©_¡T Q¨Ø!"§¢ð ˜aš&¨_ˆñ +ó #‰FˆB�Ù�"�b˜.Õ)ð #ã$‰FˆB�Ù�"�bÐ*Õ+ñ %ùó%ùó+s   ÁB5Á/B;c                 óP   — | j                  | j                  j                  d«       y )Nr    )r®  r   r?   r  s    r   Útest_lshiftzTestMixedInts.test_lshift‡  s   € Ø×Ñ˜TŸW™W×:Ñ:¸HÕEr   c                 óP   — | j                  | j                  j                  d«       y )Nr¤   )r®  r   rC   r  s    r   Útest_rshiftzTestMixedInts.test_rshiftŠ  s   € Ø×Ñ˜TŸW™W×;Ñ;¸XÕFr   c                 óŠ   — d„ }| j                   }| j                  j                  }| j                  |||| j                  «       y )Nc                 ó   — | S r   r   )rÅ  s    r   rœ  z2TestMixedInts.test_unary_positive.<locals>.controlŽ  s   € ØˆHr   )r~  r   r_   rv  Ú	int_types)râ   rœ  r{  rã   s       r   r(  z!TestMixedInts.test_unary_positive�  s7   € ò	à×"Ñ"ˆØ—‘×/Ñ/ˆà�‰�v˜w¨°·±Õ@r   c                 óÖ   ‡ — ˆ fd„}ˆ fd„}‰ j                   }‰ j                  j                  }‰ j                  |||‰ j                  «       ‰ j                  |||‰ j
                  «       y )Nc                 ó8   •— ‰j                  | «      } ||  «      S r   r_  ©rÅ  r‚  râ   s     €r   ra  z9TestMixedInts.test_unary_negative.<locals>.control_signed–  ó   ø€ Ø×-Ñ-¨aÓ0ˆBÙ�q�b“6ˆMr   c                 ó8   •— ‰j                  | «      } ||  «      S r   rf  r¸  s     €r   rg  z;TestMixedInts.test_unary_negative.<locals>.control_unsigned™  ó   ø€ Ø×/Ñ/°Ó2ˆBÙ�q�b“6ˆMr   )r~  r   r]   rv  Úsigned_typesÚunsigned_types©râ   ra  rg  r{  rã   s   `    r   Útest_unary_negativez!TestMixedInts.test_unary_negative•  sZ   ø€ ô	ô	ð ×"Ñ"ˆØ—‘×'Ñ'ˆà�‰�v˜~¨w¸×8IÑ8IÔJØ�‰�vÐ/°¸$×:MÑ:MÕNr   c                 óÖ   ‡ — ˆ fd„}ˆ fd„}‰ j                   }‰ j                  j                  }‰ j                  |||‰ j                  «       ‰ j                  |||‰ j
                  «       y )Nc                 ó8   •— ‰j                  | «      } ||  «      S r   r_  r¸  s     €r   ra  z1TestMixedInts.test_invert.<locals>.control_signed£  r¹  r   c                 ó8   •— ‰j                  | «      } ||  «      S r   rf  r¸  s     €r   rg  z3TestMixedInts.test_invert.<locals>.control_unsigned¦  r»  r   )r~  r   rY   rv  r¼  r½  r¾  s   `    r   Útest_invertzTestMixedInts.test_invert¢  sZ   ø€ ô	ô	ð ×"Ñ"ˆØ—‘×,Ñ,ˆà�‰�v˜~¨w¸×8IÑ8IÔJØ�‰�vÐ/°¸$×:MÑ:MÕNr   N)1rs   rt   ru   r9  r   r   r~  r   r  Úuint8rK  rN  rµ  r�  r¼  r½  rï  rÝ   rÞ   rŽ  ry  rz  rF  rW  rZ  r\  rc  rh  rû   rt  rv  r|  r  r‚  r„  r‡  rŠ  r’  r˜  rŸ  r¡  r£  r¥  r®  r°  r²  r(  r¿  rÃ  )rM  r‚  r‘  rN  s   0000r   r>  r>  ­  s–  „ ñð 
€BâO€Kà—‘˜UŸ[™[¨%¯+©+°u·|±|ÐD€IÙ!*Ô8¡˜2¨b¯i«i’B Ò8€LÙ#,Ô>¡9˜R°B·I³I’b 9Ò>€NÙÐ'�i×'Ñ'¨	°9Ó=Ó>€JÙ'1õ -¡z™t˜q !Ø—x’x 1§8¢8ð ˜’F zó -€Lá)3õ 5©¡  AØŸhšh¨!¯(ª(ð ˜!’f¨ó 5€Nò1ò/ò
0ò
*òò ð "%±óBð, !$ó2ð" '*±kó
2òKòKòKòLòBò=ò6	2ò<òTòRòSò',òRFòGòAòOóOùóW 9ùÛ>ùô-ùô5s$   Á EÁEÁEÁ1EÂ&EÃ	&E r>  c                   ó   — e Zd ZeZy)ÚTestMixedIntsOperatorModuleN)rs   rt   ru   rx   r   r   r   r   rÆ  rÆ  °  s   „ à	�Br   rÆ  c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚTestStaticPowerz`
    Test the ** operator with a static exponent, to exercise a
    dedicated optimization.
    c           	      ón  — |D ]n  }t         j                  }t        |«      } t        d¬«      |«      } t        d¬«      |«      }|D ](  }	  |||«      }	 ||«      }
| j	                  |	|
d¬«       Œ* Œp y # t
        $ r6 | j                  t
        «      5   ||«       d d d «       n# 1 sw Y   nxY wY Œlw xY w)NTr7  r�  )rž  )r   r   r   r   rà   r}  r|  )râ   Ú	exponentsrü  r   Úregular_funcÚstatic_funcÚstatic_cfuncÚregular_cfuncrN  rí   rì   s              r   Ú
_check_powzTestStaticPower._check_pow»  s²   € ÛˆCä.×:Ñ:ˆLÜ+¨CÓ0ˆKà-œ3¨Ô-¨kÓ:ˆLØ.œC¨Ô.¨|Ó<ˆMÛ�ðJÙ,¨Q°Ó4�Hñ
 ' q›/�CØ×+Ñ+¨H°cÀÐ+ÕIñ ñ øô )ò (Ø×*Ñ*Ô+<Õ=Ù$ Qœ÷ >×=Ñ=üð(ús*   Á	A5Á5B4Â	B%	Â	B4Â%B.Â*B4Â3B4c           	      óŽ   — g d¢}dddddt        j                  d«      t        j                  d«      g}| j                  ||«       y )	N)	r:  r;  rH  r*  é   r   rG  r–  rF  r   r:  rH  rG  rë  rF  rÀ  )rñ   r  Úuint16rÏ  ©râ   rÊ  rV  s      r   Útest_int_valueszTestStaticPower.test_int_valuesÍ  s9   € Ú3ˆ	Ø�1�a˜˜R¤§¡¨£¬b¯i©i¸«lÐ;ˆà�‰˜	 4Õ(r   c                 óŠ   — g d¢}dddt        j                  d«      t        d«      t        d«      g}| j                  ||«       y )N)r:  r;  rH  r*  rÑ  r   rG  r–  rF  i iîîîÿr  g      
@g      ô¿g       ÀÚinfÚnan)rñ   rS  rÿ   rÏ  rÓ  s      r   Útest_real_valuesz TestStaticPower.test_real_valuesÓ  s8   € ÚHˆ	Ø�T˜5¤"§*¡*¨TÓ"2´E¸%³LÄ%ÈÃ,ÐOˆà�‰˜	 4Õ(r   N)rs   rt   ru   r9  rÏ  rÔ  rØ  r   r   r   rÈ  rÈ  µ  s   „ ñò
Jò$)ó)r   rÈ  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚTestStringConstComparisonz-
    Test comparison of string constants
    c                 óÈ   — d„ }d„ } t        d¬«      |«      } t        d¬«      |«      }| j                   |«        |«       «       | j                   |«        |«       «       y )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   Tr7  ©r   r
  ©râ   rá  ræ  Úcfunc1Úcfunc2s        r   Útest_eqz!TestStringConstComparison.test_eqÝ  óX   € ò	ò	ð $”˜dÔ# JÓ/ˆØ#”˜dÔ# JÓ/ˆØ×Ñ™›¡v£xÔ0Ø×Ñ™›¡v£xÕ0r   c                 óÈ   — d„ }d„ } t        d¬«      |«      } t        d¬«      |«      }| j                   |«        |«       «       | j                   |«        |«       «       y )Nc                  ó   — d} | dk7  S rÝ  r   rß  s    r   rá  z6TestStringConstComparison.test_neq.<locals>.test_impl1ì  râ  r   c                  ó   — d} | dk7  S rä  r   rß  s    r   ræ  z6TestStringConstComparison.test_neq.<locals>.test_impl2ð  rç  r   Tr7  rè  ré  s        r   Útest_neqz"TestStringConstComparison.test_neqë  rí  r   N)rs   rt   ru   r9  rì  rñ  r   r   r   rÚ  rÚ  Ù  s   „ ñò1ó1r   rÚ  c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestBooleanLiteralOperatorsz/
    Test operators with Boolean constants
    c                 óÂ  ‡	‡
— ˆ	fd„}ˆ
fd„}d„ }t        j                  ddgd¬«      D ]5  \  Š	} t        d¬«      |«      }| j                   ||«       ||«      «       Œ7 t        j                  ddgd¬«      D ]5  \  }Š
 t        d¬«      |«      }| j                   ||«       ||«      «       Œ7  t        d¬«      |«      }| j                   |«        |«       «       y )	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                  ó6   — 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;  ©Úrepeatr7  ©rÝ   rÞ   r   r
  ©râ   rá  ræ  r  rÆ  rê  rÅ  rë  Úcfunc3r÷  rû  s            @@r   rì  z#TestBooleanLiteralOperators.test_eqý  óÏ   ù€ ô	ô	ò	$ô "×)Ñ)¨4°¨-À×B‰HˆE�1Ø'”S $Ô'¨
Ó3ˆFØ×Ñ™Z¨›]©F°1«IÕ6ð Cô "×)Ñ)¨4°¨-À×B‰HˆAˆuØ'”S $Ô'¨
Ó3ˆFØ×Ñ™Z¨›]©F°1«IÕ6ð Cð $”˜dÔ# JÓ/ˆØ×Ñ™›¡v£xÕ0r   c                 óÂ  ‡	‡
— ˆ	fd„}ˆ
fd„}d„ }t        j                  ddgd¬«      D ]5  \  Š	} t        d¬«      |«      }| j                   ||«       ||«      «       Œ7 t        j                  ddgd¬«      D ]5  \  }Š
 t        d¬«      |«      }| j                   ||«       ||«      «       Œ7  t        d¬«      |«      }| j                   |«        |«       «       y )	Nc                 ó   •— ‰| k7  S r   r   rö  s    €r   rá  z7TestBooleanLiteralOperators.test_ne.<locals>.test_impl1  rø  r   c                 ó   •— | ‰k7  S r   r   rú  s    €r   ræ  z7TestBooleanLiteralOperators.test_ne.<locals>.test_impl2  rü  r   c                  ó6   — ddk7  } ddk7  }ddk7  }ddk7  }| |||fS rþ  r   rÿ  s       r   r  z7TestBooleanLiteralOperators.test_ne.<locals>.test_impl3  r  r   TFr;  r  r7  r  r	  s            @@r   Útest_nez#TestBooleanLiteralOperators.test_ne  r  r   c                 ó  ‡— ˆfd„}d„ }t        j                  ddgd¬«      D ]5  \  Š} t        d¬«      |«      }| j                   ||«       ||«      «       Œ7  t        d¬«      |«      }| j                   |«        |«       «       y )Nc                 ó   •— ‰| u S r   r   rö  s    €r   rá  z7TestBooleanLiteralOperators.test_is.<locals>.test_impl13  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_impl26  s5   € Ø˜�ˆBØ˜�ˆBØ˜$�ˆBØ˜%�ˆBØ˜˜B Ð#Ð#r   TFr;  r  r7  r  )râ   rá  ræ  rÆ  rê  rë  r÷  s         @r   Útest_isz#TestBooleanLiteralOperators.test_is1  s   ø€ ô	ò	$ô "×)Ñ)¨4°¨-À×B‰HˆE�1Ø'”S $Ô'¨
Ó3ˆFØ×Ñ™Z¨›]©F°1«IÕ6ð Cð $”˜dÔ# JÓ/ˆØ×Ñ™›¡v£xÕ0r   c                 óf   — d„ } t        d¬«      |«      }| j                   |«        |«       «       y )Nc                  ó   — d\  } }|  | fS ©Nr]  r   r›  s     r   Ú	test_implz7TestBooleanLiteralOperators.test_not.<locals>.test_implF  s   € Ø‰DˆAˆqØ�E˜q˜5�>Ð!r   Tr7  rè  ©râ   r  ré   s      r   r  z$TestBooleanLiteralOperators.test_notD  s.   € ò	"ð #”˜TÔ" 9Ó-ˆØ×Ñ™›¡e£gÕ.r   c                 óf   — d„ } t        d¬«      |«      }| j                   |«        |«       «       y )Nc                  ó8   — d\  } }t        | «      t        |«      fS r  )Úboolr›  s     r   r  z8TestBooleanLiteralOperators.test_bool.<locals>.test_implO  s   € Ø‰DˆAˆqÜ˜“GœT !›WÐ%Ð%r   Tr7  rè  r  s      r   Ú	test_boolz%TestBooleanLiteralOperators.test_boolM  s.   € ò	&ð #”˜TÔ" 9Ó-ˆØ×Ñ™›¡e£gÕ.r   c                 óf   — d„ } t        d¬«      |«      }| j                   |«        |«       «       y )Nc                  ó8   — d\  } }t        | «      t        |«      fS r  )r  r›  s     r   r  z?TestBooleanLiteralOperators.test_bool_to_str.<locals>.test_implX  s   € Ø‰DˆAˆqÜ˜“FœC ›FÐ#Ð#r   Tr7  rè  r  s      r   Útest_bool_to_strz,TestBooleanLiteralOperators.test_bool_to_strV  s.   € ò	$ð #”˜TÔ" 9Ó-ˆØ×Ñ™›¡e£gÕ.r   N)
rs   rt   ru   r9  rì  r  r  r  r  r   r   r   r   ró  ró  ù  s%   „ ñò1ò41ò41ò&/ò/ó/r   ró  Ú__main__)&rß   rÝ   rz   ÚunittestÚnumpyrñ   Únumbar   r   Ú
numba.corer   r   r   Únumba.core.types.functionsr   Únumba.tests.supportr	   r
   r   Únumba.tests.matmul_usecaser   r   r   r  rn  r   Úobjectr   rx   rÓ   r<  r>  rÆ  rÈ  rÚ  ró  rs   Úmainr   r   r   Ú<module>r+     så   ðÛ Û Û Û ã ç ß +Ñ +Ý 3ß 9Ñ 9÷5ñ 5ð �tÐ
€à Ð&Ð òôh˜&ô hôV`"˜Vô `"ôFo(�Hô o(ôd˜ô ô&@O�Hô @OôF  -ô  ô
")�hô ")ôH1 ô 1ô@d/ (ô d/ðN ˆzÒØ€H‡M�M…Oð r   