§
    ƒÛg¸  ã                   óÊ   — d dl Z d dlZd dlmZmZ d dlmZ d dlZd dl	m
Z
 d„ Z G d„ deej        ¦  «        Z G d„ d	eej        ¦  «        Zed
k    r ej        ¦   «          dS dS )é    N)ÚnjitÚ	vectorize)ÚMemoryLeakMixin)Údufuncc                 ó   — | |z   S ©N© )Úa0Úa1s     úV/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/npyufunc/test_dufunc.pyÚpyuaddr      s   € Ø�‰7€Nó    c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú
TestDUFuncc                 óJ   — t          j        |t          d¬¦  «        ¬¦  «        S )NT)Únopython)Útargetoptions)r   ÚDUFuncÚdict)ÚselfÚpyfuncs     r   Únopython_dufunczTestDUFunc.nopython_dufunc   s"   € ÝŒ}˜Vµ4ÀÐ3FÑ3FÔ3FÐGÑGÔGÐGr   c           	      óð  — |                       t          ¦  «        }|                      |j        ¦  «         d|_        |                      |j        ¦  «         |                      t          ¦  «        5  d|_        d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5   |t          j	        ddd¦  «        t          j	        ddd¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTFr   é   é
   é   )
r   r   ÚassertFalseÚ_frozenÚ
assertTrueÚassertRaisesÚ
ValueErrorÚ	TypeErrorÚnpÚlinspace©r   Úduadds     r   Útest_frozenzTestDUFunc.test_frozen   s\  € Ø×$Ò$¥VÑ,Ô,ˆØ×Ò˜œÑ'Ô'Ð'ØˆŒØ�Š˜œÑ&Ô&Ð&Ø×Ò�zÑ*Ô*ð 	"ð 	"Ø!ˆEŒMð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à×Ò�yÑ)Ô)ð 	<ð 	<ØˆE•"”+˜a  "Ñ%Ô%¥r¤{°1°Q°rÑ':Ô':Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s$   Á0BÂBÂBÂ)5C+Ã+C/Ã2C/c                 ó–   — |                       t          ¦  «        }|                      t          dd¦  «         |dd¦  «        ¦  «         d S )Nr   r   )r   r   ÚassertEqualr%   s     r   Útest_scalarzTestDUFunc.test_scalar   sC   € Ø×$Ò$¥VÑ,Ô,ˆØ×Ò�  !™œ e e¨A¨a¡j¤jÑ1Ô1Ð1Ð1Ð1r   c                 ó´  ‡— |                       t          ¦  «        Št          ˆfd„¦   «         }t          j        ddd¦  «        }|d d…         }|dd …         }t          j        d¦  «        } ||||¦  «         t          j                             ||z   |¦  «         |                     d¦  «        }|                     d¦  «        }t          j        d¦  «        } ||||¦  «         t          j                             ||z   |¦  «         |d d…         }	t          j        d¦  «        }
 |||	|
¦  «         t          j                             ||	z   |
¦  «         d S )Nc                 ó"   •—  ‰| ||¦  «         d S r   r	   )r
   r   Úo0r&   s      €r   Únpmaddz(TestDUFunc.test_npm_call.<locals>.npmadd%   s   ø€ àˆE�"�b˜"ÑÔÐÐÐr   r   çffffffþ?é   r   ©r   é   r2   )	r   r   r   r#   r$   ÚzerosÚtestingÚassert_array_equalÚreshape)r   r.   ÚXÚX0ÚX1Úout0ÚY0ÚY1Úout1ÚY2Úout2r&   s              @r   Útest_npm_callzTestDUFunc.test_npm_call"   sR  ø€ Ø×$Ò$¥VÑ,Ô,ˆå	ð	ð 	ð 	ð 	ñ 
Œð	åŒK˜˜#˜bÑ!Ô!ˆØˆs�ˆsŒVˆØˆrˆsˆsŒVˆÝŒx˜‰|Œ|ˆØˆˆr�2�tÑÔÐÝ
Œ
×%Ò% b¨2¡g¨tÑ4Ô4Ð4Ø�ZŠZ˜ÑÔˆØ�ZŠZ˜ÑÔˆÝŒx˜‰ŒˆØˆˆr�2�tÑÔÐÝ
Œ
×%Ò% b¨2¡g¨tÑ4Ô4Ð4Ø���ŒVˆÝŒx˜‰ŒˆØˆˆr�2�tÑÔÐÝ
Œ
×%Ò% b¨2¡g¨tÑ4Ô4Ð4Ð4Ð4r   c                 óz  ‡— |                       t          ¦  «        Št          ˆfd„¦   «         }t          j        ddd¦  «        }|d d…         }|dd …         } |||¦  «        }t          j                             ||z   |¦  «         |                     d¦  «        }|                     d¦  «        } |||¦  «        }t          j                             ||z   |¦  «         |d d…         }	 |||	¦  «        }
t          j                             ||	z   |
¦  «          |dd	¦  «        }|                      |d
¦  «         d S )Nc                 ó   •—  ‰| |¦  «        S r   r	   )r
   r   r&   s     €r   r.   z8TestDUFunc.test_npm_call_implicit_output.<locals>.npmadd;   s   ø€ à�5˜˜R‘=”=Ð r   r   r/   r0   r   r1   r2   g      ð?g       @g      @)	r   r   r   r#   r$   r4   r5   r6   r)   )r   r.   r7   r8   r9   r:   r;   r<   r=   r>   r?   Úout3r&   s               @r   Útest_npm_call_implicit_outputz(TestDUFunc.test_npm_call_implicit_output8   sA  ø€ Ø×$Ò$¥VÑ,Ô,ˆå	ð	!ð 	!ð 	!ð 	!ñ 
Œð	!åŒK˜˜#˜bÑ!Ô!ˆØˆs�ˆsŒVˆØˆrˆsˆsŒVˆØˆv�b˜"‰~Œ~ˆÝ
Œ
×%Ò% b¨2¡g¨tÑ4Ô4Ð4Ø�ZŠZ˜ÑÔˆØ�ZŠZ˜ÑÔˆØˆv�b˜"‰~Œ~ˆÝ
Œ
×%Ò% b¨2¡g¨tÑ4Ô4Ð4Ø���ŒVˆØˆv�b˜"‰~Œ~ˆÝ
Œ
×%Ò% b¨2¡g¨tÑ4Ô4Ð4Øˆv�b˜‰}Œ}ˆØ×Ò˜˜rÑ"Ô"Ð"Ð"Ð"r   c                 ó@  — |                       t          ¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         |                      |j        |j        |j        z   ¦  «         |                      |j        d¦  «         |                      |j        g ¦  «         |                      |j        d ¦  «          |dd¦  «         |                      |j        d¦  «         |                      |j        t          |j        ¦  «        ¦  «         d S )Nr   r   r   )
r   r   r)   ÚninÚnoutÚnargsÚntypesÚtypesÚidentityÚlenr%   s     r   Útest_ufunc_propszTestDUFunc.test_ufunc_propsM   sý   € Ø×$Ò$¥VÑ,Ô,ˆØ×Ò˜œ AÑ&Ô&Ð&Ø×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ e¤i°%´*Ñ&<Ñ=Ô=Ð=Ø×Ò˜œ qÑ)Ô)Ð)Ø×Ò˜œ bÑ)Ô)Ð)Ø×Ò˜œ¨Ñ.Ô.Ð.Øˆˆa�‰ŒˆØ×Ò˜œ qÑ)Ô)Ð)Ø×Ò˜œ¥s¨5¬;Ñ'7Ô'7Ñ8Ô8Ð8Ð8Ð8r   N)	Ú__name__Ú
__module__Ú__qualname__r   r'   r*   r@   rD   rM   r	   r   r   r   r      sq   € € € € € ðHð Hð Hð<ð <ð <ð2ð 2ð 2ð5ð 5ð 5ð,#ð #ð #ð*
9ð 
9ð 
9ð 
9ð 
9r   r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestDUFuncPicklingc                 óX  ‡— t          j        |¦  «        }t          j        |¦  «        Š ‰d¦  «        }|                      d|¦  «         |                      ||¦  «         t
          ˆfd„¦   «         } |d¦  «        }|                      d|¦  «         |                      ||¦  «         d S )Né{   c                 ó   •—  ‰| ¦  «        S r   r	   )ÚxÚrebuilts    €r   Úfooz%TestDUFuncPickling.check.<locals>.fooe   s   ø€ à�7˜1‘:”:Ðr   iA  )ÚpickleÚdumpsÚloadsr)   ÚassertIsInstancer   )r   ÚidentÚresult_typeÚbufÚrrX   rW   s         @r   ÚcheckzTestDUFuncPickling.check[   sÂ   ø€ ÝŒl˜5Ñ!Ô!ˆÝ”,˜sÑ#Ô#ˆð ˆG�C‰LŒLˆØ×Ò˜˜aÑ Ô Ð Ø×Ò˜a Ñ-Ô-Ð-õ 
ð	ð 	ð 	ð 	ñ 
Œð	ð ˆC�‰HŒHˆØ×Ò˜˜aÑ Ô Ð Ø×Ò˜a Ñ-Ô-Ð-Ð-Ð-r   c                 óv   — t           d„ ¦   «         }|                      |t          t          j        f¬¦  «         d S )Nc                 ó   — | S r   r	   ©Úx1s    r   r]   z3TestDUFuncPickling.test_unrestricted.<locals>.identn   ó   € àˆIr   ©r^   )r   ra   Úintr#   Úinteger©r   r]   s     r   Útest_unrestrictedz$TestDUFuncPickling.test_unrestrictedm   s@   € Ý	ð	ð 	ñ 
Œð	ð 	�
Š
�5¥s­B¬JÐ&7ˆ
Ñ8Ô8Ð8Ð8Ð8r   c                 óp   — t          dg¦  «        d„ ¦   «         }|                      |t          ¬¦  «         d S )Nzfloat64(float64)c                 ó   — | S r   r	   rd   s    r   r]   z1TestDUFuncPickling.test_restricted.<locals>.identu   rf   r   rg   )r   ra   Úfloatrj   s     r   Útest_restrictedz"TestDUFuncPickling.test_restrictedt   sF   € Ý	Ð&Ð'Ñ	(Ô	(ð	ð 	ñ 
)Ô	(ð	ð 	�
Š
�5¥eˆ
Ñ,Ô,Ð,Ð,Ð,r   N)rN   rO   rP   ra   rk   ro   r	   r   r   rR   rR   Z   sA   € € € € € ð.ð .ð .ð$9ð 9ð 9ð-ð -ð -ð -ð -r   rR   Ú__main__)rY   Únumpyr#   Únumbar   r   Únumba.tests.supportr   ÚunittestÚnumba.np.ufuncr   r   ÚTestCaser   rR   rN   Úmainr	   r   r   ú<module>rx      sü   ðØ €€€à Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø /Ð /Ð /Ð /Ð /Ð /Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ðH9ð H9ð H9ð H9ð H9� (Ô"3ñ H9ô H9ð H9ðV-ð -ð -ð -ð -˜¨(Ô*;ñ -ô -ð -ðD ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   