
    shf                        S SK JrJr  S SKJrJr  S SKJr  S SK	J
r
  S SKJr  S SKr " S S\" 5       5      r " S	 S
\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S\" 5       5      r " S S \" 5       5      r " S! S"\" 5       5      r " S# S$\" 5       5      r " S% S&\" 5       5      r " S' S(\" 5       5      r " S) S*\" 5       5      r " S+ S,\" 5       5      r  " S- S.\" 5       5      r! " S/ S0\" 5       5      r" " S1 S2\" 5       5      r# " S3 S4\RH                  5      r% " S5 S6\RH                  5      r& " S7 S8\RH                  5      r' " S9 S:\RH                  5      r(\)S;:X  a  \RT                  " 5         gg)<    )irbinding)types	datamodel)test_factory)DataModelManager)OpaqueModelNc                   ,    \ rS rSr\R
                  rSrg)TestBool
    N)__name__
__module____qualname____firstlineno__r   booleanfe_type__static_attributes__r       n/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_datamodel.pyr   r   
       mmGr   r   c                   ,    \ rS rSr\R
                  rSrg)TestPyObject   r   N)r   r   r   r   r   pyobjectr   r   r   r   r   r   r      s    nnGr   r   c                   ,    \ rS rSr\R
                  rSrg)TestInt8   r   N)r   r   r   r   r   int8r   r   r   r   r   r   r      s    jjGr   r   c                   ,    \ rS rSr\R
                  rSrg)	TestInt16   r   N)r   r   r   r   r   int16r   r   r   r   r   r!   r!          kkGr   r!   c                   ,    \ rS rSr\R
                  rSrg)	TestInt32   r   N)r   r   r   r   r   int32r   r   r   r   r   r&   r&      r$   r   r&   c                   ,    \ rS rSr\R
                  rSrg)	TestInt64   r   N)r   r   r   r   r   int64r   r   r   r   r   r*   r*      r$   r   r*   c                   ,    \ rS rSr\R
                  rSrg)	TestUInt8"   r   N)r   r   r   r   r   uint8r   r   r   r   r   r.   r.   "   r$   r   r.   c                   ,    \ rS rSr\R
                  rSrg)
TestUInt16&   r   N)r   r   r   r   r   uint16r   r   r   r   r   r2   r2   &       llGr   r2   c                   ,    \ rS rSr\R
                  rSrg)
TestUInt32*   r   N)r   r   r   r   r   uint32r   r   r   r   r   r7   r7   *   r5   r   r7   c                   ,    \ rS rSr\R
                  rSrg)
TestUInt64.   r   N)r   r   r   r   r   uint64r   r   r   r   r   r;   r;   .   r5   r   r;   c                   ,    \ rS rSr\R
                  rSrg)	TestFloat2   r   N)r   r   r   r   r   float32r   r   r   r   r   r?   r?   2   r   r   r?   c                   ,    \ rS rSr\R
                  rSrg)
TestDouble6   r   N)r   r   r   r   r   float64r   r   r   r   r   rC   rC   6   r   r   rC   c                   ,    \ rS rSr\R
                  rSrg)TestComplex:   r   N)r   r   r   r   r   	complex64r   r   r   r   r   rG   rG   :   s    ooGr   rG   c                   ,    \ rS rSr\R
                  rSrg)TestDoubleComplex>   r   N)r   r   r   r   r   
complex128r   r   r   r   r   rK   rK   >   s    Gr   rK   c                   L    \ rS rSr\R
                  " \R                  5      rSrg)TestPointerOfInt32B   r   N)	r   r   r   r   r   CPointerr(   r   r   r   r   r   rO   rO   B   s    nnU[[)Gr   rO   c                   N    \ rS rSr\R
                  " \R                  S5      rSrg)TestUniTupleOf2xInt32F      r   N	r   r   r   r   r   UniTupler(   r   r   r   r   r   rS   rS   F       nnU[[!,Gr   rS   c                   N    \ rS rSr\R
                  " \R                  S5      rSrg)TestUniTupleEmptyJ   r   r   NrV   r   r   r   rZ   rZ   J   rX   r   rZ   c                   d    \ rS rSr\R
                  " \R                  \R                  /5      rSr	g)TestTupleInt32Float32N   r   N)
r   r   r   r   r   Tupler(   rA   r   r   r   r   r   r]   r]   N   s    kk5;;67Gr   r]   c                   8    \ rS rSr\R
                  " / 5      rSrg)TestTupleEmptyR   r   N)r   r   r   r   r   r_   r   r   r   r   r   ra   ra   R   s    kk"oGr   ra   c                   P    \ rS rSr\R
                  " \R                  SS5      rSrg)Test1DArrayOfInt32V      Cr   N	r   r   r   r   r   Arrayr(   r   r   r   r   r   rd   rd   V       kk%++q#.Gr   rd   c                   P    \ rS rSr\R
                  " \R                  SS5      rSrg)Test2DArrayOfComplex128Z   rU   rg   r   N)	r   r   r   r   r   ri   rM   r   r   r   r   r   rl   rl   Z   s    kk%**As3Gr   rl   c                   P    \ rS rSr\R
                  " \R                  SS5      rSrg)Test0DArrayOfInt32^   r   rg   r   Nrh   r   r   r   ro   ro   ^   rj   r   ro   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestArgInfob   c                 ~   [         R                  n[         R                  " X!5      n[        R                  " 5       n[        R
                  " [        R                  " 5       / 5      n[        R                  " XESS9n[        R                  " 5       nUR                  UR                  5       5        U Vs/ s H7  n[        R                  " UR                  U5      R                  5       S5      PM9     n	nUR                  Xy5      n
UR                  Xz5      nU R!                  [#        U5      [#        U5      5        [%        U
 Vs/ s H  oR&                  PM     sn5      nU R!                  XR(                  5        U	 Vs/ s H  oR&                  PM     nnU Vs/ s H  oR&                  PM     nnU R!                  UU5        UR+                  U
[-        [#        U5      5       Vs/ s H  nSPM     sn5        UR/                  5         [0        R2                  " [5        U5      5        gs  snf s  snf s  snf s  snf s  snf )zo
Test round-tripping types *fe_args* through the default data model's
argument conversion and unpacking logic.
test_arguments)nameNzarg%i)r   default_manager	ArgPackerr   ModuleFunctionTypeVoidTypeFunction	IRBuilderposition_at_endappend_basic_blockConstantlookupget_value_typeas_argumentsfrom_argumentsassertEquallentupletypeargument_typesassign_namesrangeret_voidllparse_assemblystr)selffe_argsdmmfimodulefntyfunctionbuildertargsvaluesasargsvvaltysaexpect_types	got_typesis                     r   _test_as_argumentsTestArgInfo._test_as_argumentsd   s   
 ''  .r{{}b1;;v2BC,,. ; ; => !" A CJJqM88:DA  	 " /""73Vc'l3/1/0!2!23(,-1-%+,VVVV	,y1 	%G2E F2EQ2E FG
#f+&+" 0 .,
 !Gs   3>H&H+=H0H5#H:
c                     [         R                  [         R                  " [         R                  SS5      [         R                  /nU R	                  U5        g )Nrf   rg   )r   r(   ri   rI   r   r   r   s     r   test_int32_array_complex$TestArgInfo.test_int32_array_complex   s;    ;;;;u{{As3??$ 	(r   c                 z    [         R                  " [         R                  SS5      /S-  nU R                  U5        g )Nrf   rg   rU   r   ri   r(   r   r   s     r   test_two_arraysTestArgInfo.test_two_arrays   .    ;;u{{As34q8(r   c                 z    [         R                  " [         R                  SS5      /S-  nU R                  U5        g )Nr   rg   rU   r   r   s     r   test_two_0d_arraysTestArgInfo.test_two_0d_arrays   r   r   c                    [         R                  " [         R                  S5      [         R                  " [         R                  S5      /nU R                  U5        [         R                  " [         R                  SS5      n[         R                  " US5      [         R                  " US5      /nU R                  U5        [         R                  " [         R                  " [         R                  S5      S5      /nU R                  U5        g )NrU      rf   rg   )r   rW   r(   r   ri   )r   r   arrtys      r   test_tuplesTestArgInfo.test_tuples   s    >>%++q1>>%++q13(EKKC0>>%+>>%+-(>>%..a"@!DE(r   c                     [         R                  " [         R                  S5      [         R                  " S5      [         R                  /nU R                  U5        g )Nr   r   )r   rW   r#   r_   r(   r   r   s     r   test_empty_tuplesTestArgInfo.test_empty_tuples   s=    >>%++q1;;r?;;  	(r   c                     [         R                  [         R                  " [         R                  " S5      S5      [         R                  /nU R                  U5        g )Nr   rU   )r   r(   rW   r_   r,   r   r   s     r   test_nested_empty_tuples$TestArgInfo.test_nested_empty_tuples   s=    ;;>>%++b/15;;  	(r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   rr   b   s&    #'J))))))r   rr   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestMemInfo   c                 .    [         R                  U l        g N)r   rw   r   )r   s    r   setUpTestMemInfo.setUp   s    ,,r   c                     [         R                  nU R                  U   nU R                  UR	                  5       5        g r   )r   r(   r   assertFalsecontains_nrt_meminfor   tydms      r   test_numberTestMemInfo.test_number   s/    [[XXb\0023r   c                     [         R                  S S  nU R                  U   nU R                  UR	                  5       5        g r   )r   r(   r   
assertTruer   r   s      r   
test_arrayTestMemInfo.test_array   s1    [[^XXb\//12r   c                     [         R                  " [         R                  SS9nU R                  U   nU R	                  UR                  5       5        g NrU   )dtypecount)r   rW   r(   r   r   r   r   s      r   test_tuple_of_number TestMemInfo.test_tuple_of_number   s:    ^^%++Q7XXb\0023r   c                     [         R                  " [         R                  S S  SS9nU R                  U   nU R	                  UR                  5       5        g r   )r   rW   r(   r   r   r   r   s      r   test_tuple_of_arrayTestMemInfo.test_tuple_of_array   s<    ^^%++a.:XXb\//12r   )r   N)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    -4
3
4
3r   r   c                       \ rS rSrS rSrg)TestMisc   c                    SS K nSSKJn  US 5       nUR                  SUR                  S9R                  UR                  5      nUR                  U5      nU" XT5        UR                  R                  XQR                  S5      5        g )Nr   )njitc                 N    [        U R                  S   5       H	  nX   X'   M     g )Nr   )r   shape)r   br   s      r   copy%TestMisc.test_issue2921.<locals>.copy   s"    1771:&t 'r      )r   )FTTTT)numpynumbar   aranger0   viewbool_
zeros_liketestingassert_equalarray)r   npr   r   r   r   s         r   test_issue2921TestMisc.test_issue2921   sr    		 
	 IIarxxI(--bhh7MM!Q



88,B#CDr   r   N)r   r   r   r   r   r   r   r   r   r   r      s    Er   r   c                       \ rS rSrS rSrg)TestDMMChaining   c                 8   [        5       n " S S[        5      n " S S[        5      nUR                  [        R                  U5        UR                  [        R
                  U5        [        5       n " S S[        5      nUR                  [        R                  U5        UR                  U5      nU R                  UR                  [        R                  5      U5        U R                  UR                  [        R                  5      U5        U R                  UR                  [        R                  5      U5        U R                  UR                  [        R                  5      U5        U R                  UR                  [        R                  5      U5        U R                  UR                  [        R                  5      U5        U R                  [        5         UR                  [        R                  5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)/TestDMMChaining.test_basic.<locals>.int_handler   r   Nr   r   r   r   r   r   r   r   int_handlerr          r   r   c                       \ rS rSrSrg)1TestDMMChaining.test_basic.<locals>.float_handler   r   Nr   r   r   r   float_handlerr      r   r   r   c                       \ rS rSrSrg)3TestDMMChaining.test_basic.<locals>.new_int_handler   r   Nr   r   r   r   new_int_handlerr      r   r   r   )r   r	   registerr   IntegerFloatchainassertIsInstancer   intpassertNotIsInstancerA   assertRaisesKeyError)r   r   r   r   	inter_dmmr   chained_dmms          r   
test_basicTestDMMChaining.test_basic   sd    	+ 		K 	 	U]]K0U[[-0$&		k 	 	5==/:ooc* 	k00<oN  !3!3EJJ!?Mcjj4kBk00?Ocjj7Gi..uzz:OLx(U]]+ )((s   " H
Hr   N)r   r   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.   r2   r7   r;   r?   rC   rG   rK   rO   rS   rZ   r]   ra   rd   rl   ro   TestCaserr   r   r   r   r   mainr   r   r   <module>r     s   & ' 5 9 3 |~ <> |~          ,.  * *-LN -- -8LN 8\^ / /4ln 4/ /M)(## M)`3(## 32Ex   E"!,h'' !,H zMMO r   