§
    ƒÛgf  ã                   óà  — 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© ó    úP/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_datamodel.pyr   r   
   ó   € € € € € ØŒm€G€G€Gr   r   c                   ó   — e Zd Zej        ZdS )ÚTestPyObjectN)r   r   r   r   Úpyobjectr   r   r   r   r   r      s   € € € € € ØŒn€G€G€Gr   r   c                   ó   — e Zd Zej        ZdS )ÚTestInt8N)r   r   r   r   Úint8r   r   r   r   r   r      s   € € € € € ØŒj€G€G€Gr   r   c                   ó   — e Zd Zej        ZdS )Ú	TestInt16N)r   r   r   r   Úint16r   r   r   r   r   r      ó   € € € € € ØŒk€G€G€Gr   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)   &   ó   € € € € € ØŒl€G€G€Gr   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   € € € € € ØŒo€G€G€Gr   r9   c                   ó   — e Zd Zej        ZdS )ÚTestDoubleComplexN)r   r   r   r   Ú
complex128r   r   r   r   r<   r<   >   s   € € € € € ØÔ€G€G€Gr   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!   € € € € € ØˆeŒn˜Uœ[Ñ)Ô)€G€G€Gr   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   ó#   € € € € € ØˆeŒn˜Uœ[¨!Ñ,Ô,€G€G€Gr   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(   € € € € € ØˆeŒk˜5œ;¨¬Ð6Ñ7Ô7€G€G€Gr   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   € € € € € ØˆeŒk˜"‰oŒo€G€G€Gr   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   ó%   € € € € € ØˆeŒk˜%œ+ q¨#Ñ.Ô.€G€G€Gr   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&   € € € € € ØˆeŒk˜%Ô*¨A¨sÑ3Ô3€G€G€Gr   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   ø€ ð "ð "ð "Øõ ”˜CŸJšJ q™MœM×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   € Ð,Ð,Ð, �Q”VÐ,Ð,Ð,r   c                 ó   — g | ]}d ‘ŒS )zarg%ir   )rc   Úis     r   rf   z2TestArgInfo._test_as_arguments.<locals>.<listcomp>ƒ   s   € Ð FÐ FÐ F¨Q Ð 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ˆÝ”;˜v tÐ2BÐCÑCÔCˆÝ”,‘.”.ˆØ×Ò × ;Ò ;Ñ =Ô =Ñ>Ô>Ð>ð"ð "ð "ð "Ø ð"ñ "ô "ˆð —’ ¨$Ñ/Ô/ˆØ×"Ò" 7¨FÑ3Ô3ˆà×Ò�˜V™œ¥c¨'¡l¤lÑ3Ô3Ð3ÝÐ/Ð/¨Ð/Ñ/Ô/Ñ0Ô0ˆØ×Ò˜ Ô!2Ñ3Ô3Ð3à-Ð-¨Ð-Ñ-Ô-ˆØ,Ð, VÐ,Ñ,Ô,ˆ	à×Ò˜ yÑ1Ô1Ð1ð 	�Š˜Ð FÐ Fµ%½¸G¹¼Ñ2EÔ2EÐ 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œ{¨A¨sÑ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œ{¨A¨sÑ3Ô3Ð4°qÑ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ˆà×Ò Ñ(Ô(Ð(å”�EœK¨¨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:   € ÝŒ[ˆØŒX�bŒ\ˆØ×Ò˜×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@   € ÝŒ[˜˜˜Œ^ˆØŒX�bŒ\ˆØ�Š˜×/Ò/Ñ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ˆØŒX�bŒ\ˆØ×Ò˜×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   € ÝŒ^¥%¤+¨a¨a¨a¤.¸Ð:Ñ:Ô:ˆØŒX�bŒ\ˆØ�Š˜×/Ò/Ñ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   € å˜1œ7 1œ:Ñ&Ô&ð ð �Ø˜”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­   € ØÐÐÐØÐÐÐÐÐà	ð	ð 	ñ 
Œð	ð �IŠI�a˜rœxˆIÑ(Ô(×-Ò-¨b¬hÑ7Ô7ˆØ�MŠM˜!ÑÔˆØˆˆQ�‰
Œ
ˆ
Ø
Œ
×Ò  2§8¢8Ð,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œ=¨/Ñ:Ô:Ð:Ø—o’o cÑ*Ô*ˆð 	×Ò˜k×0Ò0µ´Ñ<Ô<¸oÑNÔNÐNà× Ò  ×!3Ò!3µE´JÑ!?Ô!?ÀÑMÔMÐMà×Ò˜cŸjšj­¬Ñ4Ô4°kÑBÔBÐBà×Ò˜k×0Ò0µ´Ñ?Ô?ÀÑOÔOÐOØ×Ò˜cŸjšj­¬Ñ7Ô7¸ÑGÔGÐGà×Ò˜i×.Ò.­u¬zÑ:Ô:¸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Ø €€€ðð ð ð ð ˆ|ˆ|‰~Œ~ñ ô ð ðð ð ð ð �<�<‘>”>ñ ô ð ðð ð ð ð ˆ|ˆ|‰~Œ~ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð ��‘”ñ ô ð ðð ð ð ð �,�,‘.”.ñ ô ð ðð ð ð ð ˜˜™œñ ô ð ð*ð *ð *ð *ð *˜˜™œñ *ô *ð *ð-ð -ð -ð -ð -˜L˜L™NœNñ -ô -ð -ð-ð -ð -ð -ð -˜˜™œñ -ô -ð -ð8ð 8ð 8ð 8ð 8˜L˜L™NœNñ 8ô 8ð 8ðð ð ð ð �\�\‘^”^ñ ô ð ð/ð /ð /ð /ð /˜˜™œñ /ô /ð /ð4ð 4ð 4ð 4ð 4˜l˜l™nœnñ 4ô 4ð 4ð/ð /ð /ð /ð /˜˜™œñ /ô /ð /ðM)ð M)ð M)ð M)ð M)�(Ô#ñ M)ô M)ð M)ð`3ð 3ð 3ð 3ð 3�(Ô#ñ 3ô 3ð 3ð2Eð Eð Eð Eð EˆxÔ ñ Eô Eð Eð"!,ð !,ð !,ð !,ð !,�hÔ'ñ !,ô !,ð !,ðH ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   