
    J/Ph                         d dl Z d dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d Zd Zd Zd	 Z G d
 de          Zedk    r ej                     dS dS )    N)jitnjit)types)TestCase)numpy_supportc                     | S N xs    [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_conversion.pyidentityr          H    c                     | |z   S r	   r
   r   ys     r   additionr      s    q5Lr   c                     | |k    S r	   r
   r   s     r   equalityr      s    6Mr   c                     | S r	   r
   )r   r   zs      r   foobarr      r   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d Zd Zd Zd Zd ZdS )TestConversionz-
    Testing Python to Native conversion
    c                 \   t           } t          t          j        t          j                            |          }g d}|D ]!}|                      ||          |           "t          j        |          D ]!}|                      ||          |           " t          t          j        t          j                            |          }g d}|D ]!}|                      ||          |           "t          j        |          D ]!}|                      ||          |           "d S N)y              ?y      ?      ?y            y      ?        )r   r   r   	complex64assertEqualnp
complex128)selfpyfunccfuncxsr   s        r   test_complex_identityz$TestConversion.test_complex_identity   sC   6U_U_5566v>>,,, 	* 	*AUU1XXq))))b!! 	* 	*AUU1XXq))))8U%e&67788@@,,, 	* 	*AUU1XXq))))r"" 	* 	*AUU1XXq))))	* 	*r   c                    t           } t          t          j        t          j        t          j                            |          }g d}|D ]'}|}|                      |||          ||z              (t          j        |          D ]'}|}|                      |||          ||z              ( t          t          j        t          j        t          j                            |          }g d}|D ]'}|}|                      |||          ||z              (t          j        |          D ]'}|}|                      |||          ||z              (d S r   )r   r   r   r   r   r    r!   )r"   r#   r$   r%   r   r   s         r   test_complex_additionz$TestConversion.test_complex_addition1   s   GU_U_eoFFGGOO,,, 	1 	1AAUU1a[[!a%0000b!! 	1 	1AAUU1a[[!a%00009U%e&6&+&68 8 9 99?A A -,, 	1 	1AAUU1a[[!a%0000r"" 	1 	1AAUU1a[[!a%0000	1 	1r   c                    t           } t          t          j        t          j        f          |          }d}d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S NTFr      )r   r   r   booleanintp	itertoolsproductr   r"   r#   r$   r%   yss        r   test_boolean_as_intz"TestConversion.test_boolean_as_intI   s    1emUZ011&99'B// 	< 	<FBVVB^^UU2r]];;;;	< 	<r   c                    t           } t          t          j        t          j        f          |          }d}d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S r*   )r   r   r   r/   float64r1   r2   r   r3   s        r   test_boolean_as_floatz$TestConversion.test_boolean_as_floatS   s    4emU]344V<<'B// 	< 	<FBVVB^^UU2r]];;;;	< 	<r   c                    t           } t          t          j        t          j        f          |          }d}d}t	          j        ||          D ]/\  }}|                      |||           |||                     0d S )Nr+   )r   r   r   r/   r1   r2   r   r3   s        r   test_boolean_eq_booleanz&TestConversion.test_boolean_eq_boolean]   s    4emU]344V<<'B// 	< 	<FBVVB^^UU2r]];;;;	< 	<r   c                     d }|                      t                    5    t          dd          |          d           d d d            d S # 1 swxY w Y   d S )Nc                     | S r	   r
   r   s    r   fz3TestConversion.test_negative_to_unsigned.<locals>.fm   s    Hr   zuintp(uintp)Tnopython)assertRaisesOverflowErrorr   r"   r=   s     r   test_negative_to_unsignedz(TestConversion.test_negative_to_unsignedl   s    	 	 	}-- 	6 	61.C...q11"555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   $AAAc                 @   t           } t          t          j        t          j        t          j        t          j                            |          }d}|                     t
                    5  |D ]\  }}} ||||           	 d d d            d S # 1 swxY w Y   d S )N)r,   )r   r-   r.   )r   r.   r-   )r   r   r   uint64rA   rB   )r"   r#   r$   test_fail_argsabcs          r   'test_multiple_args_negative_to_unsignedz6TestConversion.test_multiple_args_negative_to_unsignedt   s    2U\%,"',0 0 2 228: : >}-- 	 	)  1aaA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   .BBBc                 `   t           }t          j        dt          j        fdt          j        fdt          j        fg          }t	          j        |          } t           |d d          |d d          t          j        t          j                            |          }t          j	        d|          }t          j
        |j                  dz   |_        t          j
        |j                  dz   |_        t          j
        |j                  dz   |_        |                     |          5  |ddf|ddff}|D ]E\  }}}	|                     t"                    5   ||||	           d d d            n# 1 swxY w Y   F~~~~	t%          j                     d d d            d S # 1 swxY w Y   d S )Nprowcol   dtyper.   r-   )r   r    rR   r7   r   
from_dtyper   r   rF   recarrayarangesizerM   rN   rO   assertRefCountrA   rB   gccollect)
r"   r#   mystruct_dtmystructr$   st1rG   rH   rI   rJ   s
             r   test_multiple_args_recordsz)TestConversion.test_multiple_args_records   s'   hbj 1!2:.!2:. 0 1 1 !+K881[Xaaa[!!!el!&/ / 1 1179 9 k!;///	#(##a')CH%%))CH%%)  %% 	 	"BlS!RL9N) # #1a&&}55 # #E!QNNN# # # # # # # # # # # # # # # 1aJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   ,-F#E3'F#3E77F#:E7;F##F'*F'c           	          d }|                       |              t          dd          |                                 d S )Nc                      d S r	   r
   r
   r   r   r=   z1TestConversion.test_with_no_parameters.<locals>.f       Dr   z()Tr>   )r   r   rC   s     r   test_with_no_parametersz&TestConversion.test_with_no_parameters   sT    	 	 	96c$666q99;;<<<<<r   c                    d }fd |          } t          |t          j        f          |          } | j        | 5   ||d           ddd           n# 1 swxY w Y    | j        | 5  |                     t
                    5   ||d           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y    t          t          j        |f          |          } | j        | 5   |d|           ddd           n# 1 swxY w Y    | j        | 5  |                     t
                    5   |d|           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )zF
        Check that argument cleanup doesn't leak references.
        c                     d S r	   r
   r   s     r   r=   z0TestConversion.check_argument_cleanup.<locals>.f   r`   r   c                 ^    | g}t          | t                    r| D ]}| |          z  }|S r	   )
isinstancetuple)objobjsv_objectss      r   rj   z7TestConversion.check_argument_cleanup.<locals>._objects   sD    5D#u%% ( ( (AHHQKK'DDKr   r.   Nr-   )r   r   uint32rW   rA   rB   )r"   typrg   r=   objectsr$   rj   s         @r   check_argument_cleanupz%TestConversion.check_argument_cleanup   s)   	 	 		 	 	 	 	 (3--)c5<())!,, T '* 	 	E#qMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 T '* 	 	""=11  c2              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 *elC())!,, T '* 	 	E!SMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 T '* 	 	""=11  b#              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA #A 1B<B%B<%B)	)B<,B)	-B<<C C 5DDD#E/>EE/E	E/E	E//E36E3c                     t          t          d                    }|                     t          j        t          j        dd          |           d S N   xyzr.   C)
memoryview	bytearrayrn   r   
MemoryViewbyte)r"   mems     r   test_cleanup_bufferz"TestConversion.test_cleanup_buffer   sD    6**++##E$4UZC$H$H#NNNNNr   c                     t          j        dt           j        fdt           j        fg          }t          j        d|          }|                     t          j        |          |d                    d S )Nr   r   r.   rQ   r   )r    rR   r7   zerosrn   r   rS   )r"   rR   recarrs      r   test_cleanup_recordz"TestConversion.test_cleanup_record   sc    3
+c2:->?@@!5)))##M$<U$C$CVAYOOOOOr   c                     t          t          d                    }t          j        t          j        t          j        dd          d          }|                     |||f           d S )Nrq   r.   rr      )rs   rt   r   UniTupleru   rv   rn   r"   rw   tps      r   test_cleanup_tuplez!TestConversion.test_cleanup_tuple   sY    6**++^E,UZC@@!DD##Bc
33333r   c                     t          t          d                    }t          j        t          j        t          j        dd                    }|                     ||           d S rp   )rs   rt   r   Optionalru   rv   rn   r   s      r   test_cleanup_optionalz$TestConversion.test_cleanup_optional   sS    6**++^E,UZC@@AA##B,,,,,r   c                     t          t          j        t          j                  d          d             t          t          j                    d          fd            }d S )NTr>   c                     d S r	   r
   )strings    r   barz9TestConversion.test_stringliteral_to_unicode.<locals>.bar   s    Dr   c                        d           d S )Nzliteral stringr
   )r   s   r   foo2z:TestConversion.test_stringliteral_to_unicode.<locals>.foo2   s    C !!!!!r   )r   r   voidunicode_type)r"   r   r   s     @r   test_stringliteral_to_unicodez,TestConversion.test_stringliteral_to_unicode   s|     
UZ*++d	;	;	;	 	 
<	;	 
UZ\\D	)	)	)	" 	" 	" 	" 
*	)	" 	" 	"r   N)__name__
__module____qualname____doc__r&   r(   r5   r8   r:   rD   rK   r]   ra   rn   rx   r|   r   r   r   r
   r   r   r   r      s        * * *$1 1 10< < << < << < <6 6 6    8= = =
  <O O OP P P
4 4 4
- - -

" 
" 
" 
" 
"r   r   __main__)rX   r1   numpyr    unittestnumbar   r   
numba.corer   numba.tests.supportr   numba.npr   r   r   r   r   r   r   mainr
   r   r   <module>r      s   				                        ( ( ( ( ( ( " " " " " "        A" A" A" A" A"X A" A" A"H zHMOOOOO r   