§
    2@Äjü  ã                   óä   — d dl Zd dlmZmZ d dlmZ d dlmZm	Z	 d dl
Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Z G d„ de¦  «        Z G d„ de¦  «        Zedk    r e
j        ¦   «          dS dS )é    N)ÚjitÚnjit)Útypes)ÚTestCaseÚtagc                 ó    — t          | ¦  «        S ©N)Úbool©Úas    úLC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_numberctor.pyÚdoboolr   
   s   € Ý�‰7Œ7€Nó    c                 ó    — t          | ¦  «        S r	   )Úintr   s    r   Údointr      s   € Ýˆq‰6Œ6€Mr   c                 ó    — t          | ¦  «        S r	   )Úfloatr   s    r   Údofloatr      s   € Ý�‰8Œ8€Or   c                 ó    — t          | ¦  «        S r	   ©Úcomplexr   s    r   Ú	docomplexr      s   € Ý�1‰:Œ:Ðr   c                 ó"   — t          | |¦  «        S r	   r   )r   Úbs     r   Ú
docomplex2r      s   € Ý�1�a‰=Œ=Ðr   c                 óJ   — t          | ¦  «        }|j        dz  |j        dz  z   S ©Né   ©r   ÚrealÚimag)r   Úzs     r   Úcomplex_calcr$      s$   € Ý�‰
Œ
€AØŒ6�Q‰;˜œ 1™Ñ$Ð$r   c                 óL   — t          | |¦  «        }|j        dz  |j        dz  z   S r   r    )r   r   r#   s      r   Úcomplex_calc2r&   #   s&   € Ý��1‰Œ€AØŒ6�Q‰;˜œ 1™Ñ$Ð$r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó   •—  ‰| ¦  «        S r	   © )r   Útps    €r   Úfzconverter.<locals>.f)   s   ø€ Øˆr�!‰uŒuˆr   r)   )r*   r+   s   ` r   Ú	converterr,   (   s!   ø€ ðð ð ð ð à€Hr   c               #   ó   K  — dD ]} | V — Œd S )N)Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64ÚintcÚuintcÚintpÚuintpÚfloat32Úfloat64Úbool_r)   ©Útp_names    r   Úreal_np_typesr?   .   s.   è è € ð3ð ð ˆð ˆˆˆˆð	ð r   c               #   ó   K  — dD ]} | V — Œd S )N)Ú	complex64Ú
complex128r)   r=   s    r   Úcomplex_np_typesrC   5   s*   è è € Ø.ð ð ˆØˆˆˆˆðð r   c                   óN   — e 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 )ÚTestScalarNumberCtorz*
    Test <number class>(some scalar)
    c                 ó.  — t           j        t           j        t           j        t           j        t           j        g}g d¢}t          ||¦  «        D ]F\  }} t          |f¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒGd S )N)é   r   éè  çffffff(@çffffff7@)	r   Úbooleanr0   r1   r:   r;   Úzipr   ÚassertPreciseEqual©ÚselfÚpyfuncÚx_typesÚx_valuesÚtyÚxÚcfuncs          r   Úcheck_int_constructorz*TestScalarNumberCtor.check_int_constructor?   s’   € åŒM�5œ;­¬µU´]ÅEÄMð
ˆð ,Ð+Ð+ˆå˜ (Ñ+Ô+ð 	9ð 	9‰EˆB�Ø•D˜"˜‘K”K Ñ'Ô'ˆEØ×#Ò# F F¨1¡I¤I¨u¨u°Q©x¬xÑ8Ô8Ð8Ð8ð	9ð 	9r   c                 ó:   — |                       t          ¦  «         d S r	   )rV   r   ©rO   s    r   Ú	test_boolzTestScalarNumberCtor.test_boolI   s   € Ø×"Ò"¥6Ñ*Ô*Ð*Ð*Ð*r   c                 ó:   — |                       t          ¦  «         d S r	   )rV   r   rX   s    r   Útest_intzTestScalarNumberCtor.test_intL   s   € Ø×"Ò"¥5Ñ)Ô)Ð)Ð)Ð)r   c                 óJ  — t           }t          j        t          j        t          j        t          j        g}g d¢}t          ||¦  «        D ]X\  }} t          |f¦  «        |¦  «        }|                       ||¦  «         ||¦  «        |t          j        u rdnd¬¦  «         ŒYd S )N©rG   rH   rI   rJ   ÚsingleÚexact©Úprec)	r   r   r0   r1   r:   r;   rL   r   rM   rN   s          r   Ú
test_floatzTestScalarNumberCtor.test_floatO   s½   € Ýˆõ ŒK�œ¥e¤mµU´]ð
ˆð )Ð(Ð(ˆå˜ (Ñ+Ô+ð 	Cð 	C‰EˆB�Ø•D˜"˜‘K”K Ñ'Ô'ˆEØ×#Ò# F F¨1¡I¤I¨u¨u°Q©x¬xØ!#¥u¤}Ð!4Ð!4�X�X¸'ð $ñ Cô Cð Cð Cð	Cð 	Cr   c                 ó¼  — t           }t          j        t          j        t          j        t          j        t          j        t          j        g}g d¢}t          ||¦  «        D ]n\  }} t          |f¦  «        |¦  «        } ||¦  «        } ||¦  «        }|  
                     ||¦  «         ||¦  «        |t          j        u rdnd¬¦  «         Œot          }d} t          t          j        f¦  «        |¦  «        }|  
                     ||¦  «        d¦  «          t          t          j        f¦  «        |¦  «        }|                       ||¦  «        d¦  «         d S )N)rG   rH   rI   rJ   y      ø?      Ày      ð?      Àr^   r_   r`   ç     ð?ç      ð?)r   r   r0   r1   r:   r;   rA   rB   rL   r   rM   r$   ÚassertGreater)	rO   rP   rQ   rR   rS   rT   rU   ÚgotÚexpecteds	            r   Útest_complexz!TestScalarNumberCtor.test_complex\   s[  € Ýˆõ ŒK�œ¥e¤mµU´]ÝŒO�UÔ-ð
ˆð :Ð9Ð9ˆå˜ (Ñ+Ô+ð 	Cð 	C‰EˆB�Ø•D˜"˜‘K”K Ñ'Ô'ˆEØ�%˜‘(”(ˆCØ�v˜a‘y”yˆHØ×#Ò# F F¨1¡I¤I¨u¨u°Q©x¬xØ!#¥u¤}Ð!4Ð!4�X�X¸'ð $ñ Cô Cð Cð Cõ
 ˆØˆØ&••e”mÐ%Ñ&Ô& vÑ.Ô.ˆØ×Ò   a¡¤¨#Ñ.Ô.Ð.à&••e”mÐ%Ñ&Ô& vÑ.Ô.ˆØ×Ò˜5˜5 ™8œ8 SÑ)Ô)Ð)Ð)Ð)r   c                 ó¶  — t           }t          j        t          j        t          j        t          j        g}g d¢}d„ |D ¦   «         }t          |||¦  «        D ]\\  }}} t          ||f¦  «        |¦  «        }|                       |||¦  «         |||¦  «        |t          j        u rdnd¬¦  «         Œ]t          }d} t          t          j        t          j        f¦  «        |¦  «        }|                       |||¦  «        d¦  «          t          t          j        t          j        f¦  «        |¦  «        }|  
                     |||¦  «        d¦  «         d S )Nr]   c                 ó   — g | ]}|d z
  ‘ŒS )é   r)   )Ú.0rT   s     r   ú
<listcomp>z6TestScalarNumberCtor.test_complex2.<locals>.<listcomp>}   s   € Ð,Ð,Ð,˜a�A˜‘EÐ,Ð,Ð,r   r^   r_   r`   rd   g       @)r   r   r0   r1   r:   r;   rL   r   rM   r&   rf   )	rO   rP   rQ   rR   Úy_valuesrS   rT   ÚyrU   s	            r   Útest_complex2z"TestScalarNumberCtor.test_complex2v   s`  € Ýˆõ ŒK�œ¥e¤mµU´]ð
ˆð )Ð(Ð(ˆØ,Ð, 8Ð,Ñ,Ô,ˆå˜G X¨xÑ8Ô8ð 	Cð 	C‰HˆB��1Ø"•D˜"˜b˜‘N”N 6Ñ*Ô*ˆEØ×#Ò# F F¨1¨a¡L¤L°%°%¸¸1±+´+Ø!#¥u¤}Ð!4Ð!4�X�X¸'ð $ñ Cô Cð Cð Cõ
 ˆØˆØ4••e”m¥U¤]Ð3Ñ4Ô4°VÑ<Ô<ˆØ×Ò   a¨¡¤¨SÑ1Ô1Ð1à4••e”m¥U¤]Ð3Ñ4Ô4°VÑ<Ô<ˆØ×Ò˜5˜5  A™;œ;¨Ñ,Ô,Ð,Ð,Ð,r   c           	      ó„  ‡— t          |¦  «        } t          d¬¦  «        |¦  «        }t          ‰t          j        ¦  «        rˆfd„}n‰}t          j        ‰¦  «        }|D ]]}|j        dk    rt          |t          ¦  «        r|dk     rŒ) ||¦  «        }	 ||¦  «        }
|  	                    |
|	d‰›d|›�¬¦  «         Œ^d S )	NT©Únopythonc                 ó>   •—  ‰t          j        | ¦  «        ¦  «        S r	   )Únpr1   )rT   Únp_types    €r   ú<lambda>z;TestScalarNumberCtor.check_type_converter.<locals>.<lambda>–   s   ø€  W W­R¬X°a©[¬[Ñ%9Ô%9€ r   Úug        z	for type z
 with arg )Úmsg)
r,   r   Ú
issubclassrv   ÚintegerÚdtypeÚkindÚ
isinstancer   rM   )rO   r*   rw   ÚvaluesrP   rU   Únp_converterr}   Úvalrh   rg   s     `        r   Úcheck_type_converterz)TestScalarNumberCtor.check_type_converterŽ   sþ   ø€ Ý˜2‘”ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝ�g�rœzÑ*Ô*ð 	#ð
 :Ð9Ð9Ð9ˆLˆLà"ˆLÝ”˜Ñ!Ô!ˆØð 	Tð 	TˆCØŒz˜SÒ Ð ¥Z°µUÑ%;Ô%;Ð ÀÀcÂ	À	ð Ø#�| CÑ(Ô(ˆHØ�%˜‘*”*ˆCØ×#Ò# C¨¨ØELÀWÀWÈcÈcÐ(Rð $ñ Tô Tð Tð Tð	Tð 	Tr   c                 óX  — g d¢}t          ¦   «         D ]9}t          t          |¦  «        } ||¦  «        }|                      |||¦  «         Œ:|                     d¦  «         t          ¦   «         D ]9}t          t          |¦  «        } ||¦  «        }|                      |||¦  «         Œ:d S )N)	r   rG   éÿÿÿÿi£† l    åa$i]yþÿlýÿÿÿ åa$g      ø?g      Ày      ø?      @)r?   Úgetattrrv   rƒ   ÚappendrC   )rO   Ú
tp_factoryr€   r>   rw   r*   s         r   Úcheck_number_typesz'TestScalarNumberCtor.check_number_types¤   sÉ   € ðð ð ˆå$‘”ð 	;ð 	;ˆGÝ�b 'Ñ*Ô*ˆGØ�˜GÑ$Ô$ˆBØ×%Ò% b¨'°6Ñ:Ô:Ð:Ð:Ø�Š�fÑÔÐÝ'Ñ)Ô)ð 	;ð 	;ˆGÝ�b 'Ñ*Ô*ˆGØ�˜GÑ$Ô$ˆBØ×%Ò% b¨'°6Ñ:Ô:Ð:Ð:ð	;ð 	;r   c                 ó6   — d„ }|                       |¦  «         dS )z>
        Test explicit casting to Numba number types.
        c                 ó,   — t          t          | ¦  «        S r	   )r†   r   r=   s    r   rˆ   z9TestScalarNumberCtor.test_numba_types.<locals>.tp_factoryµ   s   € Ý�5 'Ñ*Ô*Ð*r   N©r‰   ©rO   rˆ   s     r   Útest_numba_typesz%TestScalarNumberCtor.test_numba_types±   s+   € ð	+ð 	+ð 	+à×Ò 
Ñ+Ô+Ð+Ð+Ð+r   c                 ó6   — d„ }|                       |¦  «         dS )z>
        Test explicit casting to Numpy number types.
        c                 ó,   — t          t          | ¦  «        S r	   )r†   rv   r=   s    r   rˆ   z9TestScalarNumberCtor.test_numpy_types.<locals>.tp_factory½   s   € Ý�2˜wÑ'Ô'Ð'r   NrŒ   r�   s     r   Útest_numpy_typesz%TestScalarNumberCtor.test_numpy_types¹   s+   € ð	(ð 	(ð 	(à×Ò 
Ñ+Ô+Ð+Ð+Ð+r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rV   rY   r[   rb   ri   rq   rƒ   r‰   rŽ   r‘   r)   r   r   rE   rE   :   sº   € € € € € ðð ð9ð 9ð 9ð+ð +ð +ð*ð *ð *ðCð Cð Cð*ð *ð *ð4-ð -ð -ð0Tð Tð Tð,;ð ;ð ;ð,ð ,ð ,ð,ð ,ð ,ð ,ð ,r   rE   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚTestArrayNumberCtorz,
    Test <number class>(some sequence)
    c                 ó¸   — t          |¦  «        } t          d¬¦  «        |¦  «        }|D ].} ||¦  «        } ||¦  «        }|                      ||¦  «         Œ/d S )NTrs   )r,   r   rM   )rO   rw   r€   rP   rU   r‚   rh   rg   s           r   Úcheck_type_constructorz*TestArrayNumberCtor.check_type_constructorÇ   su   € Ý˜7Ñ#Ô#ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆØð 	3ð 	3ˆCØ�w˜s‘|”|ˆHØ�%˜‘*”*ˆCØ×#Ò# C¨Ñ2Ô2Ð2Ð2ð	3ð 	3r   c                 ó  — ddddgdg}t          ¦   «         D ]-}t          t          |¦  «        }|                      ||¦  «         Œ.dddgg}t	          ¦   «         D ]-}t          t          |¦  «        }|                      ||¦  «         Œ.d S )N©re   ç      @)rG   rœ   re   rœ   r)   )y              ð?rœ   ©r?   r†   rv   r™   rC   ©rO   r€   r>   rw   s       r   Útest_1dzTestArrayNumberCtor.test_1dÏ   s°   € àØØ�#ˆJØð	ˆõ %‘”ð 	9ð 	9ˆGÝ�b 'Ñ*Ô*ˆGØ×'Ò'¨°Ñ8Ô8Ð8Ð8àØ�#ˆJðˆõ (Ñ)Ô)ð 	9ð 	9ˆGÝ�b 'Ñ*Ô*ˆGØ×'Ò'¨°Ñ8Ô8Ð8Ð8ð	9ð 	9r   c                 ó  — dddgddgddgfddgg}t          ¦   «         D ]-}t          t          |¦  «        }|                      ||¦  «         Œ.t	          ¦   «         D ]-}t          t          |¦  «        }|                      ||¦  «         Œ.d S )	N)r›   )ç      @é   r›   )r¡   ç      @re   rœ   r¡   r£   r)   r�   rž   s       r   Útest_2dzTestArrayNumberCtor.test_2dá   s¯   € à"Ø˜Ð$Ø�3ˆZ˜#˜s˜Ð$Ø�ˆHð	ˆõ %‘”ð 	9ð 	9ˆGÝ�b 'Ñ*Ô*ˆGØ×'Ò'¨°Ñ8Ô8Ð8Ð8Ý'Ñ)Ô)ð 	9ð 	9ˆGÝ�b 'Ñ*Ô*ˆGØ×'Ò'¨°Ñ8Ô8Ð8Ð8ð	9ð 	9r   N)r’   r“   r”   r•   r™   rŸ   r¤   r)   r   r   r—   r—   Â   sK   € € € € € ðð ð3ð 3ð 3ð9ð 9ð 9ð$9ð 9ð 9ð 9ð 9r   r—   Ú__main__)Únumpyrv   Únumbar   r   Ú
numba.corer   Únumba.tests.supportr   r   Úunittestr   r   r   r   r   r$   r&   r,   r?   rC   rE   r—   r’   Úmainr)   r   r   ú<module>r¬      sv  ðØ Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø €€€ðð ð ðð ð ðð ð ðð ð ðð ð ð%ð %ð %ð
%ð %ð %ð
ð ð ðð ð ðð ð ð
E,ð E,ð E,ð E,ð E,˜8ñ E,ô E,ð E,ðP+9ð +9ð +9ð +9ð +9˜(ñ +9ô +9ð +9ð\ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   