
    sh                         S SK rS SKJrJr  S SKJr  S SKJrJ	r	  S SK
r
S rS rS rS rS	 rS
 rS rS rS rS r " S S\5      r " S S\5      r\S:X  a  \
R0                  " 5         gg)    N)jitnjit)types)TestCasetagc                     [        U 5      $ N)boolas    o/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_numberctor.pydoboolr   
   s    7N    c                     [        U 5      $ r	   )intr   s    r   dointr      s    q6Mr   c                     [        U 5      $ r	   )floatr   s    r   dofloatr      s    8Or   c                     [        U 5      $ r	   complexr   s    r   	docomplexr      s    1:r   c                     [        X5      $ r	   r   )r   bs     r   
docomplex2r      s    1=r   c                 V    [        U 5      nUR                  S-  UR                  S-  -   $ N   r   realimag)r   zs     r   complex_calcr$      s&    
A66Q;1$$r   c                 V    [        X5      nUR                  S-  UR                  S-  -   $ r   r    )r   r   r#   s      r   complex_calc2r&   #   s&    A66Q;1$$r   c                    ^  U 4S jnU$ )Nc                    > T" U 5      $ r	    )r   tps    r   fconverter.<locals>.f)   s    !ur   r)   )r*   r+   s   ` r   	converterr-   (   s    Hr   c               #   &   #    S H  n U v   M	     g 7f)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               #   &   #    S H  n U v   M	     g 7f)N)	complex64
complex128r)   r>   s    r   complex_np_typesrE   5   s     . /rA   c                   T    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestScalarNumberCtor:   z"
Test <number class>(some scalar)
c                 .   [         R                  [         R                  [         R                  [         R                  [         R
                  /n/ SQn[        X#5       H5  u  pE[        U45      " U5      nU R                  U" U5      U" U5      5        M7     g )N)   r     ffffff(@ffffff7@)	r   booleanr1   r2   r;   r<   zipr   assertPreciseEqualselfpyfuncx_typesx_valuestyxcfuncs          r   check_int_constructor*TestScalarNumberCtor.check_int_constructor?   sh    MM5;;U]]EMM
 ,+EB"K'E##F1IuQx8 ,r   c                 .    U R                  [        5        g r	   )rY   r   rR   s    r   	test_boolTestScalarNumberCtor.test_boolI   s    ""6*r   c                 .    U R                  [        5        g r	   )rY   r   r\   s    r   test_intTestScalarNumberCtor.test_intL   s    ""5)r   c                 D   [         n[        R                  [        R                  [        R                  [        R
                  /n/ SQn[        X#5       HI  u  pE[        U45      " U5      nU R                  U" U5      U" U5      U[        R                  L a  SOSS9  MK     g )NrJ   rK   rL   rM   singleexactprec)	r   r   r1   r2   r;   r<   rO   r   rP   rQ   s          r   
test_floatTestScalarNumberCtor.test_floatO   s     KKemmU]]
 )+EB"K'E##F1IuQx!#u}}!4X' $ C ,r   c                    [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  /n/ SQn[        X#5       HY  u  pE[        U45      " U5      nU" U5      nU" U5      nU R                  U" U5      U" U5      U[        R                  L a  SOSS9  M[     [        nSn[        [        R                  45      " U5      nU R                  U" U5      S5        [        [        R
                  45      " U5      nU R                  U" U5      S5        g )N)rJ   rK   rL   rM   y      ?      y      ?      rd   re   rf        ?      ?)r   r   r1   r2   r;   r<   rC   rD   rO   r   rP   r$   assertGreater)	rR   rS   rT   rU   rV   rW   rX   gotexpecteds	            r   test_complex!TestScalarNumberCtor.test_complex\   s    KKemmU]]OOU--
 :+EB"K'E(CayH##F1IuQx!#u}}!4X' $ C	 , emm%&v.a#.emm%&v.58S)r   c                    [         n[        R                  [        R                  [        R                  [        R
                  /n/ SQnU Vs/ s H  oDS-
  PM	     nn[        X#U5       HJ  u  pdn[        Xf45      " U5      nU R                  U" XG5      U" XG5      U[        R                  L a  SOSS9  ML     [        nSn[        [        R                  [        R                  45      " U5      nU R                  U" XD5      S5        [        [        R
                  [        R                  45      " U5      nU R                  U" XD5      S5        g s  snf )Nrc      rd   re   rf   rk   g       @)r   r   r1   r2   r;   r<   rO   r   rP   r&   rm   )	rR   rS   rT   rU   rW   y_valuesrV   yrX   s	            r   test_complex2"TestScalarNumberCtor.test_complex2v   s    KKemmU]]
 )#+,8aE8,Gx8HB1"N6*E##F1L%+!#u}}!4X' $ C 9 emmU]]34V<aS1emmU]]34V<5;, -s   Ec           	      r  ^ [        U5      n[        SS9" U5      n[        T[        R                  5      (       a  U4S jnOTn[        R
                  " T5      nU HX  nUR                  S:X  a  [        U[        5      (       a  US:  a  M0  U" U5      n	U" U5      n
U R                  XST< SU< 3S9  MZ     g )	NTnopythonc                 <   > T" [         R                  " U 5      5      $ r	   )npr2   )rW   np_types    r   <lambda>;TestScalarNumberCtor.check_type_converter.<locals>.<lambda>   s    WRXXa[%9r   ug        z	for type z
 with arg )msg)
r-   r   
issubclassr|   integerdtypekind
isinstancer   rP   )rR   r*   r}   valuesrS   rX   np_converterr   valro   rn   s     `        r   check_type_converter)TestScalarNumberCtor.check_type_converter   s    2T"6*grzz**
 :L"L!CzzS ZU%;%;c	 #C(H*C##CELc(R $ T r   c                    / SQn[        5        H-  n[        [        U5      nU" U5      nU R                  XTU5        M/     UR	                  S5        [        5        H-  n[        [        U5      nU" U5      nU R                  XTU5        M/     g )N)	r   rJ   i l    a$i]yl a$g      ?g      y      ?      @)r@   getattrr|   r   appendrE   )rR   
tp_factoryr   r?   r}   r*   s         r   check_number_types'TestScalarNumberCtor.check_number_types   s|    $Gb'*GG$B%%b6: ' 	f')Gb'*GG$B%%b6: *r   c                 ,    S nU R                  U5        g)z.
Test explicit casting to Numba number types.
c                 "    [        [        U 5      $ r	   )r   r   r>   s    r   r   9TestScalarNumberCtor.test_numba_types.<locals>.tp_factory   s    5'**r   Nr   rR   r   s     r   test_numba_types%TestScalarNumberCtor.test_numba_types   s    	+
+r   c                 ,    S nU R                  U5        g)z.
Test explicit casting to Numpy number types.
c                 "    [        [        U 5      $ r	   )r   r|   r>   s    r   r   9TestScalarNumberCtor.test_numpy_types.<locals>.tp_factory   s    2w''r   Nr   r   s     r   test_numpy_types%TestScalarNumberCtor.test_numpy_types   s    	(
+r   r)   N)__name__
__module____qualname____firstlineno____doc__rY   r]   r`   rh   rp   rv   r   r   r   r   __static_attributes__r)   r   r   rG   rG   :   s;    9+*C*4-0T,;,,r   rG   c                   *    \ rS rSrSrS rS rS rSrg)TestArrayNumberCtor   z$
Test <number class>(some sequence)
c                     [        U5      n[        SS9" U5      nU H$  nU" U5      nU" U5      nU R                  Xv5        M&     g )NTry   )r-   r   rP   )rR   r}   r   rS   rX   r   ro   rn   s           r   check_type_constructor*TestArrayNumberCtor.check_type_constructor   sE    7#T"6*Cs|H*C##C2 r   c                     SSSS/S/n[        5        H$  n[        [        U5      nU R                  X15        M&     SSS//n[	        5        H$  n[        [        U5      nU R                  X15        M&     g )Nrl         @)rJ   r   rl   r   r)   )y              ?r   r@   r   r|   r   rE   rR   r   r?   r}   s       r   test_1dTestArrayNumberCtor.test_1d   s}    #J	 %Gb'*G''8 ' #J ()Gb'*G''8 *r   c                     SSS/SS/SS/4SS//n[        5        H$  n[        [        U5      nU R                  X15        M&     [	        5        H$  n[        [        U5      nU R                  X15        M&     g )	N)r   )      @   r   )r         @rl   r   r   r   r)   r   r   s       r   test_2dTestArrayNumberCtor.test_2d   s|    "$3Z#s$H	 %Gb'*G''8 ' ()Gb'*G''8 *r   r)   N)	r   r   r   r   r   r   r   r   r   r)   r   r   r   r      s    39$9r   r   __main__)numpyr|   numbar   r   
numba.corer   numba.tests.supportr   r   unittestr   r   r   r   r   r$   r&   r-   r@   rE   rG   r   r   mainr)   r   r   <module>r      sz       - %
%

E,8 E,P+9( +9\ zMMO r   