
    J/Phf                        d dl mZmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlZ G d d e                      Z G d	 d
 e                      Z G d d e                      Z G d d e                      Z G d d e                      Z G d d e                      Z G d d e                      Z G d d e                      Z G d d e                      Z G d d e                      Z G d d e                      Z G d d e                      Z G d d  e                      Z G d! d" e                      Z G d# d$ e                      Z G d% d& e                      Z G d' d( e                      Z G d) d* e                      Z G d+ d, e                      Z  G d- d. e                      Z! G d/ d0 e                      Z" G d1 d2 e                      Z# G d3 d4ej$                  Z% G d5 d6ej$                  Z& G d7 d8ej$                  Z' G d9 d:ej$                  Z(e)d;k    r ej*                     dS dS )<    )irbinding)types	datamodel)test_factory)DataModelManager)OpaqueModelNc                       e Zd Zej        ZdS )TestBoolN)__name__
__module____qualname__r   booleanfe_type     Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_datamodel.pyr   r   
           mGGGr   r   c                       e Zd Zej        ZdS )TestPyObjectN)r   r   r   r   pyobjectr   r   r   r   r   r      s        nGGGr   r   c                       e Zd Zej        ZdS )TestInt8N)r   r   r   r   int8r   r   r   r   r   r      s        jGGGr   r   c                       e Zd Zej        ZdS )	TestInt16N)r   r   r   r   int16r   r   r   r   r   r              kGGGr   r   c                       e Zd Zej        ZdS )	TestInt32N)r   r   r   r   int32r   r   r   r   r    r       r   r   r    c                       e Zd Zej        ZdS )	TestInt64N)r   r   r   r   int64r   r   r   r   r#   r#      r   r   r#   c                       e Zd Zej        ZdS )	TestUInt8N)r   r   r   r   uint8r   r   r   r   r&   r&   "   r   r   r&   c                       e Zd Zej        ZdS )
TestUInt16N)r   r   r   r   uint16r   r   r   r   r)   r)   &           lGGGr   r)   c                       e Zd Zej        ZdS )
TestUInt32N)r   r   r   r   uint32r   r   r   r   r-   r-   *   r+   r   r-   c                       e Zd Zej        ZdS )
TestUInt64N)r   r   r   r   uint64r   r   r   r   r0   r0   .   r+   r   r0   c                       e Zd Zej        ZdS )	TestFloatN)r   r   r   r   float32r   r   r   r   r3   r3   2   r   r   r3   c                       e Zd Zej        ZdS )
TestDoubleN)r   r   r   r   float64r   r   r   r   r6   r6   6   r   r   r6   c                       e Zd Zej        ZdS )TestComplexN)r   r   r   r   	complex64r   r   r   r   r9   r9   :   s        oGGGr   r9   c                       e Zd Zej        ZdS )TestDoubleComplexN)r   r   r   r   
complex128r   r   r   r   r<   r<   >   s        GGGr   r<   c                   8    e Zd Z ej        ej                  ZdS )TestPointerOfInt32N)r   r   r   r   CPointerr!   r   r   r   r   r?   r?   B   s!        enU[))GGGr   r?   c                   :    e Zd Z ej        ej        d          ZdS )TestUniTupleOf2xInt32   Nr   r   r   r   UniTupler!   r   r   r   r   rB   rB   F   #        enU[!,,GGGr   rB   c                   :    e Zd Z ej        ej        d          ZdS )TestUniTupleEmptyr   NrD   r   r   r   rH   rH   J   rF   r   rH   c                   F    e Zd Z ej        ej        ej        g          ZdS )TestTupleInt32Float32N)r   r   r   r   Tupler!   r4   r   r   r   r   rJ   rJ   N   s(        ek5;677GGGr   rJ   c                   .    e Zd Z ej        g           ZdS )TestTupleEmptyN)r   r   r   r   rK   r   r   r   r   rM   rM   R   s        ek"ooGGGr   rM   c                   <    e Zd Z ej        ej        dd          ZdS )Test1DArrayOfInt32   CNr   r   r   r   Arrayr!   r   r   r   r   rO   rO   V   %        ek%+q#..GGGr   rO   c                   <    e Zd Z ej        ej        dd          ZdS )Test2DArrayOfComplex128rC   rQ   N)r   r   r   r   rS   r=   r   r   r   r   rV   rV   Z   s&        ek%*As33GGGr   rV   c                   <    e Zd Z ej        ej        dd          ZdS )Test0DArrayOfInt32r   rQ   NrR   r   r   r   rX   rX   ^   rT   r   rX   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestArgInfoc           	         t           j        t          j        |          }t          j                    }t          j        t          j                    g           }t          j        ||d          }t          j                    }|	                    |
                                           fd|D             }|                    ||          }|                    ||          }	|                     t          |	          t          |                     t          d |D                       }
|                     |
|j                   d |D             }d |	D             }|                     ||           |                    |d t%          t          |                    D                        |                                 t)          j        t-          |                     dS )	z
        Test round-tripping types *fe_args* through the default data model's
        argument conversion and unpacking logic.
        test_arguments)namec                     g | ]<}t          j                            |                                          d           =S N)r   Constantlookupget_value_type).0tdmms     r   
<listcomp>z2TestArgInfo._test_as_arguments.<locals>.<listcomp>r   sK     " " " CJJqMM88::DAA " " "r   c                     g | ]	}|j         
S r   type)rc   vs     r   rf   z2TestArgInfo._test_as_arguments.<locals>.<listcomp>z   s    ///1///r   c                     g | ]	}|j         
S r   rh   rc   as     r   rf   z2TestArgInfo._test_as_arguments.<locals>.<listcomp>}   s    ---1---r   c                     g | ]	}|j         
S r   rh   rl   s     r   rf   z2TestArgInfo._test_as_arguments.<locals>.<listcomp>~   s    ,,,QV,,,r   c                     g | ]}d S )zarg%ir   )rc   is     r   rf   z2TestArgInfo._test_as_arguments.<locals>.<listcomp>   s     F F FQ F F Fr   N)r   default_manager	ArgPackerr   ModuleFunctionTypeVoidTypeFunction	IRBuilderposition_at_endappend_basic_blockas_argumentsfrom_argumentsassertEquallentupleargument_typesassign_namesrangeret_voidllparse_assemblystr)selffe_argsfimodulefntyfunctionbuilderargsvaluesasargsvaltysexpect_types	got_typesre   s                @r   _test_as_argumentszTestArgInfo._test_as_argumentsd   s   
 ' g..r{}}b11;vt2BCCC,.. ; ; = =>>>" " " " " " " $//""7F33Vc'll333/////00!2333-----,,V,,,	y111 	 F F%G2E2E F F FGGG
#f++&&&&&r   c                     t           j        t          j        t           j        dd          t           j        g}|                     |           d S )NrP   rQ   )r   r!   rS   r:   r   r   r   s     r   test_int32_array_complexz$TestArgInfo.test_int32_array_complex   sB    ;;u{As33?$ 	(((((r   c                 x    t          j        t           j        dd          gdz  }|                     |           d S )NrP   rQ   rC   r   rS   r!   r   r   s     r   test_two_arrayszTestArgInfo.test_two_arrays   9    ;u{As334q8(((((r   c                 x    t          j        t           j        dd          gdz  }|                     |           d S )Nr   rQ   rC   r   r   s     r   test_two_0d_arrayszTestArgInfo.test_two_0d_arrays   r   r   c                    t          j        t           j        d          t          j        t           j        d          g}|                     |           t          j        t           j        dd          }t          j        |d          t          j        |d          g}|                     |           t          j        t          j        t           j        d          d          g}|                     |           d S )NrC      rP   rQ   )r   rE   r!   r   rS   )r   r   arrtys      r   test_tupleszTestArgInfo.test_tuples   s    >%+q11>%+q113(((EKC00>%++>%++-(((>%.a"@"@!DDE(((((r   c                     t          j        t           j        d          t          j        d          t           j        g}|                     |           d S )Nr   r   )r   rE   r   rK   r!   r   r   s     r   test_empty_tupleszTestArgInfo.test_empty_tuples   sF    >%+q11;r??;  	(((((r   c                     t           j        t          j        t          j        d          d          t           j        g}|                     |           d S )Nr   rC   )r   r!   rE   rK   r$   r   r   s     r   test_nested_empty_tuplesz$TestArgInfo.test_nested_empty_tuples   sF    ;>%+b//155;  	(((((r   N)
r   r   r   r   r   r   r   r   r   r   r   r   r   rZ   rZ   b   s~        #' #' #'J) ) )) ) )) ) )) ) )) ) )) ) ) ) )r   rZ   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestMemInfoc                 (    t           j        | _        d S r_   )r   rq   re   )r   s    r   setUpzTestMemInfo.setUp   s    ,r   c                     t           j        }| j        |         }|                     |                                           d S r_   )r   r!   re   assertFalsecontains_nrt_meminfor   tydms      r   test_numberzTestMemInfo.test_number   s:    [Xb\002233333r   c                     t           j        d d          }| j        |         }|                     |                                           d S r_   )r   r!   re   
assertTruer   r   s      r   
test_arrayzTestMemInfo.test_array   s@    [^Xb\//1122222r   c                     t          j        t           j        d          }| j        |         }|                     |                                           d S NrC   )dtypecount)r   rE   r!   re   r   r   r   s      r   test_tuple_of_numberz TestMemInfo.test_tuple_of_number   sI    ^%+Q777Xb\002233333r   c                     t          j        t           j        d d          d          }| j        |         }|                     |                                           d S r   )r   rE   r!   re   r   r   r   s      r   test_tuple_of_arrayzTestMemInfo.test_tuple_of_array   sO    ^%+aaa.:::Xb\//1122222r   N)r   r   r   r   r   r   r   r   r   r   r   r   r      s_        - - -4 4 4
3 3 3
4 4 4
3 3 3 3 3r   r   c                       e Zd Zd ZdS )TestMiscc                 6   dd l }ddlm} |d             }|                    d|j                                      |j                  }|                    |          } |||           |j        	                    ||
                    d                     d S )Nr   )njitc                 V    t          | j        d                   D ]}||         | |<   d S )Nr   )r   shape)rm   brp   s      r   copyz%TestMisc.test_issue2921.<locals>.copy   s8    171:&&  t! r      )r   )FTTTT)numpynumbar   aranger'   viewbool_
zeros_liketestingassert_equalarray)r   npr   r   r   rm   s         r   test_issue2921zTestMisc.test_issue2921   s    		 	 
	 IIarxI((--bh77MM!Q




288,B#C#CDDDDDr   N)r   r   r   r   r   r   r   r   r      s(        E E E E Er   r   c                       e Zd Zd ZdS )TestDMMChainingc                    t                      } G d dt                    } G d dt                    }|                    t          j        |           |                    t          j        |           t                      } G d dt                    }|                    t          j        |           |                    |          }|                     |                    t          j	                  |           | 
                    |                    t          j	                  |           |                     |                    t          j	                  |           |                     |                    t          j                  |           |                     |                    t          j                  |           |                     |                    t          j	                  |           |                     t                    5  |                    t          j                   d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )/TestDMMChaining.test_basic.<locals>.int_handlerNr   r   r   r   r   r   int_handlerr              Dr   r   c                       e Zd ZdS )1TestDMMChaining.test_basic.<locals>.float_handlerNr   r   r   r   float_handlerr      r   r   r   c                       e Zd ZdS )3TestDMMChaining.test_basic.<locals>.new_int_handlerNr   r   r   r   new_int_handlerr      r   r   r   )r   r	   registerr   IntegerFloatchainassertIsInstancera   intpassertNotIsInstancer4   assertRaisesKeyError)r   re   r   r   	inter_dmmr   chained_dmms          r   
test_basiczTestDMMChaining.test_basic   s_     	 	 	 	 	+ 	 	 		 	 	 	 	K 	 	 	 	U]K000U[-000$&&		 	 	 	 	k 	 	 	 	5=/:::ooc** 	k00<<oNNN  !3!3EJ!?!?MMMcjj44kBBBk00??OOOcjj77GGGi..uz::OLLLx(( 	, 	,U]+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s    IIIN)r   r   r   r   r   r   r   r   r      s#         ,  ,  ,  ,  ,r   r   __main__)+llvmliter   r   r   
numba.corer   r   numba.core.datamodel.testingr   numba.core.datamodel.managerr   numba.core.datamodel.modelsr	   unittestr   r   r   r   r    r#   r&   r)   r-   r0   r3   r6   r9   r<   r?   rB   rH   rJ   rM   rO   rV   rX   TestCaserZ   r   r   r   r   mainr   r   r   <module>r      s   & & & & & & & & ' ' ' ' ' ' ' ' 5 5 5 5 5 5 9 9 9 9 9 9 3 3 3 3 3 3     ||~~       <<>>       ||~~                                                                      ,,..          * * * * * * * *- - - - -LLNN - - -- - - - - - - -8 8 8 8 8LLNN 8 8 8    \\^^   / / / / / / / /4 4 4 4 4llnn 4 4 4/ / / / / / / /M) M) M) M) M)(# M) M) M)`3 3 3 3 3(# 3 3 32E E E E Ex  E E E"!, !, !, !, !,h' !, !, !,H zHMOOOOO r   