
    J/PhW                     `    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dS )	    N)njit)types)TypingError)TestCasec                       fd}|S )Nc                 @     |                                          S Nview)xabs    X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_numbers.pyimplzgen_view.<locals>.impl   s    qttyy||     )r   r   r   s   `` r   gen_viewr      s'         Kr   c                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestViewIntFloatz0 This tests the 'view' method on NumPy scalars. c           	      4   |D ]\  }}}t          ||          D ]\  }}t          t          ||                    }t          j        |          s[|                      ||           ||                     |                      ||          |                    |                     |                     t          j         ||                               |                     t          j        |                    |                               d S 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 	C 	C)E<'*68'<'< C C#VH\;??@@x'' 
C$$TT%[[++f2E2EFFF$$TT%[[%)\\%%8%8: : : : OOBHTT%[[$9$9:::OOBHT\\%-@-@$A$ABBBBC	C 	Cr   c                     t           j        t           j        f}dt           j        dfdt           j        dff}|                     ||           d S )N   )r'   r'   )   r(   )r   uint8int8r%   r   r   r   s      r   test_8_bitszTestViewIntFloat.test_8_bits$   sI    (BG$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}|                     ||           d S )Nr'   )r'   r'   g      6r(   l          ?)  ?r0   r/   )r   uint32int32float32nanr%   r,   s      r   test_32_bitszTestViewIntFloat.test_32_bits+   sg    )RXrz2	&CDz2rv&>?
&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}|                     ||           d S )Nr'   )r'   r'   g       r(   l    r/   )          r7   r/   )r   uint64int64float64r4   r%   r,   s      r   test_64_bitszTestViewIntFloat.test_64_bits3   sj    )RXrz2	n5';R&HI
 ', - 	'''''r   c                 b   t          t          d                    t          j        j                            t          fd            }|                     t                    5 } |             d d d            n# 1 swxY w Y   | 	                    dt          |j                             d S )Nzint{}c                  6    d} |                                 d S )Nr'   r
   )r   inttys    r   myviewz=TestViewIntFloat.test_python_scalar_exception.<locals>.myviewA   s    AFF5MMMMMr   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>   s    GNN5:+>??@@		 	 	 	 
	 {++ 	qFHHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 J!+&&	( 	( 	( 	( 	(s   %A<<B B c                 "   |                      t                    5 }t          t          |d         |d                             } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )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233DDGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 5!+&&	( 	( 	( 	( 	(s   5AA #A c                     t           j        t           j        ft           j        t           j        ffD ]}|                     |           d S r	   )r   r2   r+   rL   r   rK   s     r   test_exceptions32z"TestViewIntFloat.test_exceptions32T   sI    h(27BH*=> 	- 	-D&&t,,,,	- 	-r   c                     t           j        t           j        ft           j        t           j        ffD ]}|                     |           d S r	   )r   r2   r9   rL   rN   s     r   test_exceptions64z"TestViewIntFloat.test_exceptions64X   sI    h)BHbh+?@ 	- 	-D&&t,,,,	- 	-r   N)__name__
__module____qualname____doc__r%   r-   r5   r;   rI   rL   rO   rQ   r   r   r   r   r      s        ::C C C ( ( (( ( (	( 	( 	(( ( (( ( (- - -- - - - -r   r   )numpyr   numbar   
numba.corer   numba.core.errorsr   numba.tests.supportr   r   r   r   r   r   <module>r[      s                    ) ) ) ) ) ) ( ( ( ( ( (  I- I- I- I- I-x I- I- I- I- I-r   