
    xKgW                     X    d dl Zd dlmZ d dlmZ d dlmZ d dlm	Z	 d Z
 G d de	      Zy)	    N)njit)types)TypingError)TestCasec                       fd}|S )Nc                 2     |       j                        S Nview)xabs    \/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_numbers.pyimplzgen_view.<locals>.impl   s    tyy|     )r   r   r   s   `` r   gen_viewr      s    Kr   c                   @    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestViewIntFloatz0 This tests the 'view' method on NumPy scalars. c           	         |D ]  \  }}}t        ||      D ]  \  }}t        t        ||            }t        j                  |      sF| j                   ||       ||             | j                   ||      |j                  |             v| j                  t        j                   ||                   | j                  t        j                  |j                  |                     y r	   )zipr   r   npisnanassertEqualpy_func
assertTrue)	selfinputsdtypesvalueinitial_typeexpectedtarget_typeresultr   s	            r   
do_testingzTestViewIntFloat.do_testing   s    -3)E<'*68'<#VH\;?@xx'$$T%[+f2EF$$T%[%)\\%%8: OOBHHT%[$9:OOBHHT\\%-@$AB (= .4r   c                     t         j                  t         j                  f}dt         j                  dfdt         j                  dff}| j                  ||       y )N   )r'   r'   )   r(   )r   uint8int8r%   r   r   r   s      r   test_8_bitszTestViewIntFloat.test_8_bits$   sE    ((BGG$V,Y/1'r   c                    t         j                  t         j                  t         j                  f}dt         j                  dfdt         j                  ddt         j                  ffdt         j                  dff}| j                  ||       y )Nr'   )r'   r'   g      6r(   l          ?)  ?r0   r/   )r   uint32int32float32nanr%   r,   s      r   test_32_bitszTestViewIntFloat.test_32_bits+   si    ))RXXrzz2		&CDz2rvv&>?

&CDF 	'r   c                    t         j                  t         j                  t         j                  f}dt         j                  dfdt         j                  ddt         j                  ffdt         j                  dff}| j                  ||       y )Nr'   )r'   r'   g       r(   l    r/   )          r7   r/   )r   uint64int64float64r4   r%   r,   s      r   test_64_bitszTestViewIntFloat.test_64_bits3   sl    ))RXXrzz2		n5';R&HI

 ', - 	'r   c                 <   t        t        dj                  t        j                  j
                              t        fd       }| j                  t              5 } |        d d d        | j                  dt        j                               y # 1 sw Y   /xY w)Nzint{}c                  ,    d} | j                         y )Nr'   r
   )r   inttys    r   myviewz=TestViewIntFloat.test_python_scalar_exception.<locals>.myviewA   s    AFF5Mr   z\'view' can only be called on NumPy dtypes, try wrapping the variable 'a' with 'np.<dtype>()')getattrr   formatr   intpbitwidthr   assertRaisesr   assertInstr	exception)r   r?   er>   s      @r   test_python_scalar_exceptionz-TestViewIntFloat.test_python_scalar_exception>   sw    GNN5::+>+>?@		 
	 {+qH , J!++&	( ,+s   BBc                     | j                  t              5 }t        t        |d   |d               } |d       d d d        | j	                  dt        j                               y # 1 sw Y   /xY w)Nr   r'   zOChanging the dtype of a 0d array is only supported if the itemsize is unchanged)rD   r   r   r   rE   rF   rG   )r   pairrH   r   s       r   do_testing_exceptionsz&TestViewIntFloat.do_testing_exceptionsL   s_    {+qa$q'23DG , 	 5!++&	( ,+s   $A((A1c                     t         j                  t         j                  ft         j                  t         j                  ffD ]  }| j                  |        y r	   )r   r2   r+   rL   r   rK   s     r   test_exceptions32z"TestViewIntFloat.test_exceptions32T   s9    hh(277BHH*=>D&&t, ?r   c                     t         j                  t         j                  ft         j                  t         j                  ffD ]  }| j                  |        y r	   )r   r2   r9   rL   rN   s     r   test_exceptions64z"TestViewIntFloat.test_exceptions64X   s:    hh)BHHbhh+?@D&&t, Ar   N)__name__
__module____qualname____doc__r%   r-   r5   r;   rI   rL   rO   rQ   r   r   r   r   r      s.    :C ((	(((--r   r   )numpyr   numbar   
numba.corer   numba.core.errorsr   numba.tests.supportr   r   r   r   r   r   <module>r[      s)       ) (I-x I-r   