Ë
    èÿæi  ã                   óÖ   — 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
j0                  «        yy)é    N)ÚjitÚnjit)Útypes)ÚTestCaseÚtagc                 ó   — t        | «      S ©N)Úbool©Úas    úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_numberctor.pyÚdoboolr   
   s   € Ü�‹7€Nó    c                 ó   — t        | «      S r	   )Úintr   s    r   Údointr      s   € Üˆq‹6€Mr   c                 ó   — t        | «      S r	   )Úfloatr   s    r   Údofloatr      s   € Ü�‹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                 óV   — t        | «      }|j                  dz  |j                  dz  z   S ©Né   ©r   ÚrealÚimag)r   Úzs     r   Úcomplex_calcr$      s&   € Ü�‹
€AØ�6‰6�Q‰;˜Ÿ™ 1™Ñ$Ð$r   c                 óX   — t        | |«      }|j                  dz  |j                  dz  z   S r   r    )r   r   r#   s      r   Úcomplex_calc2r&   #   s(   € Ü��1‹€AØ�6‰6�Q‰;˜Ÿ™ 1™Ñ$Ð$r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó   •—  ‰| «      S r	   © )r   Útps    €r   Úfzconverter.<locals>.f)   s   ø€ Ù�!‹uˆr   r)   )r*   r+   s   ` r   Ú	converterr,   (   s   ø€ ôà€Hr   c               #   ó"   K  — dD ]  } | –— Œ y ­w)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ˆð ‹ñ	3ùó   ‚c               #   ó"   K  — dD ]  } | –— Œ y ­w)N)Ú	complex64Ú
complex128r)   r=   s    r   Úcomplex_np_typesrD   5   s   è ø€ Û.ˆØ‹ñ /ùr@   c                   óL   — 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y)ÚTestScalarNumberCtorz*
    Test <number class>(some scalar)
    c                 ó.  — t         j                  t         j                  t         j                  t         j                  t         j
                  g}g d¢}t        ||«      D ]5  \  }} t        |f«      |«      }| j                   ||«       ||«      «       Œ7 y )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?   sn   € ä�M‰Mœ5Ÿ;™;¬¯©´U·]±]ÄEÇMÁMð
ˆò ,ˆä˜ (Ö+‰EˆB�Ø”D˜"˜“K Ó'ˆEØ×#Ñ#¡F¨1£I©u°Q«xÕ8ñ ,r   c                 ó.   — | j                  t        «       y r	   )rW   r   ©rP   s    r   Ú	test_boolzTestScalarNumberCtor.test_boolI   s   € Ø×"Ñ"¤6Õ*r   c                 ó.   — | j                  t        «       y r	   )rW   r   rY   s    r   Útest_intzTestScalarNumberCtor.test_intL   s   € Ø×"Ñ"¤5Õ)r   c                 óH  — t         }t        j                  t        j                  t        j                  t        j
                  g}g d¢}t        ||«      D ]K  \  }} t        |f«      |«      }| j                   ||«       ||«      |t        j                  u rdnd¬«       ŒM y )N©rH   rI   rJ   rK   ÚsingleÚexact©Úprec)	r   r   r0   r1   r:   r;   rM   r   rN   rO   s          r   Ú
test_floatzTestScalarNumberCtor.test_floatO   s‡   € Üˆô �K‰KœŸ™¤e§m¡m´U·]±]ð
ˆò )ˆä˜ (Ö+‰EˆB�Ø”D˜"˜“K Ó'ˆEØ×#Ñ#¡F¨1£I©u°Q«xØ!#¤u§}¡}Ñ!4‘X¸'ð $õ Cñ ,r   c                 ó”  — t         }t        j                  t        j                  t        j                  t        j
                  t        j                  t        j                  g}g d¢}t        ||«      D ][  \  }} t        |f«      |«      } ||«      } ||«      }| j                   ||«       ||«      |t        j                  u rdnd¬«       Œ] t        }d} t        t        j                  f«      |«      }| j                   ||«      d«        t        t        j
                  f«      |«      }| j                   ||«      d«       y )N)rH   rI   rJ   rK   y      ø?      Ày      ð?      Àr_   r`   ra   ç     ð?ç      ð?)r   r   r0   r1   r:   r;   rB   rC   rM   r   rN   r$   ÚassertGreater)	rP   rQ   rR   rS   rT   rU   rV   ÚgotÚexpecteds	            r   Útest_complexz!TestScalarNumberCtor.test_complex\   s  € Üˆô �K‰KœŸ™¤e§m¡m´U·]±]Ü�O‰OœU×-Ñ-ð
ˆò :ˆä˜ (Ö+‰EˆB�Ø”D˜"˜“K Ó'ˆEÙ˜“(ˆCÙ˜a“yˆHØ×#Ñ#¡F¨1£I©u°Q«xØ!#¤u§}¡}Ñ!4‘X¸'ð $õ Cð	 ,ô ˆØˆØ&””e—m‘mÐ%Ó& vÓ.ˆØ×Ñ¡ a£¨#Ô.à&””e—m‘mÐ%Ó& vÓ.ˆØ×Ñ™5 ›8 SÕ)r   c                 ó°  — t         }t        j                  t        j                  t        j                  t        j
                  g}g d¢}|D �cg c]  }|dz
  ‘Œ	 }}t        |||«      D ]O  \  }}} t        ||f«      |«      }| j                   |||«       |||«      |t        j                  u rdnd¬«       ŒQ t        }d} t        t        j                  t        j                  f«      |«      }| j                   |||«      d«        t        t        j
                  t        j                  f«      |«      }| j                   |||«      d«       y c c}w )Nr^   é   r_   r`   ra   re   g       @)r   r   r0   r1   r:   r;   rM   r   rN   r&   rg   )	rP   rQ   rR   rS   rU   Úy_valuesrT   ÚyrV   s	            r   Útest_complex2z"TestScalarNumberCtor.test_complex2v   s"  € Üˆô �K‰KœŸ™¤e§m¡m´U·]±]ð
ˆò )ˆÙ#+Ó,¡8˜a�A˜“E 8ˆÐ,ä˜G X¨xÖ8‰HˆB��1Ø"”D˜"˜b˜“N 6Ó*ˆEØ×#Ñ#¡F¨1¨a£L±%¸¸1³+Ø!#¤u§}¡}Ñ!4‘X¸'ð $õ Cð 9ô ˆØˆØ4””e—m‘m¤U§]¡]Ð3Ó4°VÓ<ˆØ×Ñ¡ a¨£¨SÔ1à4””e—m‘m¤U§]¡]Ð3Ó4°VÓ<ˆØ×Ñ™5  A›;¨Õ,ùò -s   ÁEc           	      óZ  ‡— t        |«      } t        d¬«      |«      }t        ‰t        j                  «      rˆfd„}n‰}t        j
                  ‰«      }|D ]Q  }|j                  dk(  rt        |t        «      r|dk  rŒ( ||«      }	 ||«      }
| j                  |
|	d‰›d|›�¬«       ŒS y )	NT©Únopythonc                 ó:   •—  ‰t        j                  | «      «      S r	   )Únpr1   )rU   Únp_types    €r   Ú<lambda>z;TestScalarNumberCtor.check_type_converter.<locals>.<lambda>–   s   ø€ ¡W¬R¯X©X°a«[Ô%9r   Úug        z	for type z
 with arg )Úmsg)
r,   r   Ú
issubclassrt   ÚintegerÚdtypeÚkindÚ
isinstancer   rN   )rP   r*   ru   ÚvaluesrQ   rV   Únp_converterr{   Úvalri   rh   s     `        r   Úcheck_type_converterz)TestScalarNumberCtor.check_type_converterŽ   s¢   ø€ Ü˜2“ˆØ"”˜TÔ" 6Ó*ˆÜ�gœrŸz™zÔ*ó
 :‰Là"ˆLÜ—‘˜Ó!ˆÛˆCØ�z‰z˜SÒ ¤Z°´UÔ%;ÀÀcÂ	ð Ù# CÓ(ˆHÙ˜“*ˆCØ×#Ñ# C©ÚELÉcÐ(Rð $õ Tñ r   c                 ó  — g d¢}t        «       D ]-  }t        t        |«      } ||«      }| j                  |||«       Œ/ |j	                  d«       t        «       D ]-  }t        t        |«      } ||«      }| j                  |||«       Œ/ y )N)	r   rH   éÿÿÿÿi£† l    åa$i]yþÿlýÿÿÿ åa$g      ø?g      Ày      ø?      @)r?   Úgetattrrt   r�   ÚappendrD   )rP   Ú
tp_factoryr~   r>   ru   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                 ó,   — d„ }| j                  |«       y)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‡   ©rP   r†   s     r   Útest_numba_typesz%TestScalarNumberCtor.test_numba_types±   s   € ò	+à×Ñ 
Õ+r   c                 ó,   — d„ }| j                  |«       y)z>
        Test explicit casting to Numpy number types.
        c                 ó"   — t        t        | «      S r	   )r„   rt   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__rW   rZ   r\   rc   rj   ro   r�   r‡   rŒ   r�   r)   r   r   rF   rF   :   s;   „ ñò9ò+ò*òCò*ò4-ò0Tò,;ò,ó,r   rF   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚTestArrayNumberCtorz,
    Test <number class>(some sequence)
    c                 ó�   — t        |«      } t        d¬«      |«      }|D ]$  } ||«      } ||«      }| j                  ||«       Œ& y )NTrq   )r,   r   rN   )rP   ru   r~   rQ   rV   r€   ri   rh   s           r   Úcheck_type_constructorz*TestArrayNumberCtor.check_type_constructorÇ   sI   € Ü˜7Ó#ˆØ"”˜TÔ" 6Ó*ˆÛˆCÙ˜s“|ˆHÙ˜“*ˆCØ×#Ñ# C¨Õ2ñ r   c                 óä   — ddddgdg}t        «       D ]$  }t        t        |«      }| j                  ||«       Œ& dddgg}t	        «       D ]$  }t        t        |«      }| j                  ||«       Œ& y )N©rf   ç      @)rH   rš   rf   rš   r)   )y              ð?rš   ©r?   r„   rt   r—   rD   ©rP   r~   r>   ru   s       r   Útest_1dzTestArrayNumberCtor.test_1dÏ   s�   € àØØ�#ˆJØð	ˆô %–ˆGÜœb 'Ó*ˆGØ×'Ñ'¨°Õ8ð 'ð Ø�#ˆJðˆô (Ö)ˆGÜœb 'Ó*ˆGØ×'Ñ'¨°Õ8ñ *r   c                 óè   — dddgddgddgfddgg}t        «       D ]$  }t        t        |«      }| j                  ||«       Œ& t	        «       D ]$  }t        t        |«      }| j                  ||«       Œ& y )	N)r™   )ç      @é   r™   )rŸ   ç      @rf   rš   rŸ   r¡   r)   r›   rœ   s       r   Útest_2dzTestArrayNumberCtor.test_2dá   s€   € à"Ø˜Ð$Ø�3ˆZ˜#˜s˜Ð$Ø�ˆHð	ˆô %–ˆGÜœb 'Ó*ˆGØ×'Ñ'¨°Õ8ð 'ô (Ö)ˆGÜœb 'Ó*ˆGØ×'Ñ'¨°Õ8ñ *r   N)r�   r‘   r’   r“   r—   r�   r¢   r)   r   r   r•   r•   Â   s   „ ñò3ò9ó$9r   r•   Ú__main__)Únumpyrt   Únumbar   r   Ú
numba.corer   Únumba.tests.supportr   r   Úunittestr   r   r   r   r   r$   r&   r,   r?   rD   rF   r•   r�   Úmainr)   r   r   Ú<module>rª      s|   ðÛ ç Ý ç -Û òòòòòò%ò
%ò
òòô
E,˜8ô E,ôP+9˜(ô +9ð\ ˆzÒØ€H‡M�M…Oð r   