
    i-                        S SK rS SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
JrJrJr  S SKJr  S SKJr  S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r' " S S\\5      r( " S  S!\\R                  5      r) " S" S#\\R                  5      r* " S$ S%\\5      r+ " S& S'\\5      r, " S( S)\\5      r-\.S*:X  a  \R^                  " 5         gg)+    N)
from_dtype)njittypeof)types)TestCaseMemoryLeakMixinskip_parfors_unsupported)TypingError)jitclassc                     U R                   $ Ndtypeas    V/var/www/html/trading/venv/lib/python3.13/site-packages/numba/tests/test_array_attr.pyarray_dtyper      s    77N    c                 8    U R                  UR                  5      $ r   )viewr   )r   bs     r   	use_dtyper      s    66!''?r   c                 H    U R                   [        R                   " S5      :H  $ )Nint64)r   npr   s    r   dtype_eq_int64r      s    77bhhw'''r   c                     U R                   $ r   )itemsizer   s    r   array_itemsizer      s    ::r   c                     U R                   $ r   )nbytesr   s    r   array_nbytesr"      s    88Or   c                      U R                   U   $ r   )shaper   is     r   array_shaper'   !   s    771:r   c                      U R                   U   $ r   )stridesr%   s     r   array_stridesr*   %   s    99Q<r   c                     U R                   $ r   )ndimr   s    r   
array_ndimr-   )       66Mr   c                     U R                   $ r   sizer   s    r   
array_sizer2   -   r.   r   c                 .    U R                   R                  $ r   )flags
contiguousr   s    r   array_flags_contiguousr6   1   s    77r   c                 .    U R                   R                  $ r   )r4   c_contiguousr   s    r   array_flags_c_contiguousr9   4       77r   c                 .    U R                   R                  $ r   )r4   f_contiguousr   s    r   array_flags_f_contiguousr=   7   r:   r   c                 .    U R                   R                  $ r   )fr   r   s    r   nested_array_itemsizer@   ;   s    33<<r   c                 .    U R                   R                  $ r   )r?   r!   r   s    r   nested_array_nbytesrB   >   s    33::r   c                 .    U R                   R                  $ r   )r?   r$   r   s    r   nested_array_shaperD   A   s    3399r   c                 .    U R                   R                  $ r   )r?   r)   r   s    r   nested_array_stridesrF   E   s    33;;r   c                 .    U R                   R                  $ r   )r?   r,   r   s    r   nested_array_ndimrH   I       3388Or   c                 .    U R                   R                  $ r   )r?   r1   r   s    r   nested_array_sizerK   M   rI   r   c                 "    X   nUR                   $ r   r0   )bufr&   sliceds      r   size_after_slicing_usecaserO   Q   s    VF;;r   c                 .    U R                   R                  $ r   )ctypesdataarrs    r   array_ctypes_datarU   W   s    ::??r   c                     U R                   $ r   )realrS   s    r   
array_realrX   [       88Or   c                     U R                   $ r   )imagrS   s    r   
array_imagr\   _   rY   r   c                      ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrU =r$ )TestArrayAttrc   c                    > [         [        U ]  5         [        R                  " S[        R
                  S9R                  SS5      U l        g )N   r         )superr^   setUpr   arangeint32reshaper   )self	__class__s    r   re   TestArrayAttr.setUpe   s3    mT(*2RXX.66q!<r   c                     [        U5      nU R                  X45      nU" U5      nU R                  U" U5      U5        U R                  XR                  SS945      nU R                  U" U5      U5        g )NA)layout)r   	get_cfuncassertPreciseEqualcopy)ri   pyfuncrT   arytycfuncexpecteds         r   check_unaryTestArrayAttr.check_unaryi   sh    svx0#;c
H5v

#
(>'@Ac
H5r   c                    U R                  XR                  5        U R                  XR                  R                  5        U R                  XR                  S S S2   5        [        R                  " S/5      R                  S5      nU R                  X5        [        R                  " S5      nU R                  X5        U R                  XR                  S5      5        g )N   *    r   )   r   ry   )rv   r   Tr   arrayrh   zeros)ri   rr   rT   s      r   check_unary_with_arrays%TestArrayAttr.check_unary_with_arraysr   s    (*!-hhtn$$R(%hhqk% 	Y!78r   c                 $    [        U5      " U5      $ r   )r   )ri   rr   argspecs      r   ro   TestArrayAttr.get_cfunc   s    G}V$$r   c                 6   [         nU R                  U[        R                  S S 2S S 24   [        R                  45      n[	        U R
                  R                  5       H7  nU R                  U" U R
                  U5      U" U R
                  U5      5        M9     g r   )r'   ro   r   rg   ranger   r,   assertEqualri   rr   rt   r&   s       r   
test_shapeTestArrayAttr.test_shape   sj    vAaC(8%++'FGtvv{{#AVDFFA.dffa0@A $r   c                 6   [         nU R                  U[        R                  S S 2S S 24   [        R                  45      n[	        U R
                  R                  5       H7  nU R                  U" U R
                  U5      U" U R
                  U5      5        M9     g r   )r*   ro   r   rg   r   r   r,   r   r   s       r   test_stridesTestArrayAttr.test_strides   sj    vAaC(8%++'FGtvv{{#AVDFFA.dffa0@A $r   c                 .    U R                  [        5        g r   )r   r-   ri   s    r   	test_ndimTestArrayAttr.test_ndim       $$Z0r   c                 .    U R                  [        5        g r   )r   r2   r   s    r   	test_sizeTestArrayAttr.test_size   r   r   c                 .    U R                  [        5        g r   )r   r   r   s    r   test_itemsizeTestArrayAttr.test_itemsize   s    $$^4r   c                 .    U R                  [        5        g r   )r   r"   r   s    r   test_nbytesTestArrayAttr.test_nbytes   s    $$\2r   c                    [         nU R                  XR                  5        [        R                  " S[        R
                  4S[        R
                  4/5      n[        R                  " SUS9nU R                  X5        g )Nxyrb   r   )r   rv   r   r   r   int8r   )ri   rr   r   rT   s       r   
test_dtypeTestArrayAttr.test_dtype   sZ    (3.3.9:hhq&%r   c                 "   [         R                  " S[         R                  S9n[        nU R	                  U[        U R                  5      [        U5      45      nU" U R                  U5      nU R                  U" U R                  U5      U5        g Nr|   r   )r   emptyint16r   ro   r   r   rp   )ri   r   rr   rt   ru   s        r   test_use_dtypeTestArrayAttr.test_use_dtype   sg    HHQbhh'vtvvq	'BC$&&!$dffa 0(;r   c                     [         nU R                  U[        R                  " S[        R                  S95        U R                  U[        R                  " S[        R
                  S95        g r   )r   rv   r   r   r   r   ri   rr   s     r   test_dtype_equalTestArrayAttr.test_dtype_equal   sE    !288!<=!288!<=r   c                 .    U R                  [        5        g r   )r   r6   r   s    r   test_flags_contiguous#TestArrayAttr.test_flags_contiguous   s    $$%;<r   c                 .    U R                  [        5        g r   )r   r9   r   s    r   test_flags_c_contiguous%TestArrayAttr.test_flags_c_contiguous       $$%=>r   c                 .    U R                  [        5        g r   )r   r=   r   s    r   test_flags_f_contiguous%TestArrayAttr.test_flags_f_contiguous   r   r   r   )__name__
__module____qualname____firstlineno__re   rv   r   ro   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classcell__rj   s   @r   r^   r^   c   sZ    =69%BB1153&<>=?? ?r   r^   c                   R   ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
rU =r$ )TestNestedArrayAttr   c                 "  > [         [        U ]  5         [        R                  " S[        R
                  4S[        R
                  S4/5      n[        R                  " SU5      S   U l        [        U R                  R                  5      U l	        g )Nr   r?   )ry   rc   r|   r   )
rd   r   re   r   r   rg   recarrayr   r   nbrecord)ri   r   rj   s     r   re   TestNestedArrayAttr.setUp   sb    !4.03/C6+BCDQ&q)"466<<0r   c                 :    [        U R                  45      " U5      $ r   )r   r   r   s     r   ro   TestNestedArrayAttr.get_cfunc   s    T]]$%f--r   c                     [         nU R                  U5      nU R                  U" U R                  5      U" U R                  5      5        g r   )rD   ro   r   r   ri   rr   rt   s      r   r   TestNestedArrayAttr.test_shape   s5    #v&tvv7r   c                     [         nU R                  U5      nU R                  U" U R                  5      U" U R                  5      5        g r   )rF   ro   r   r   r   s      r   r    TestNestedArrayAttr.test_strides   s5    %v&tvv7r   c                     [         nU R                  U5      nU R                  U" U R                  5      U" U R                  5      5        g r   )rH   ro   r   r   r   s      r   r   TestNestedArrayAttr.test_ndim   5    "v&tvv7r   c                     [         nU R                  U5      nU R                  U" U R                  5      U" U R                  5      5        g r   )rB   ro   r   r   r   s      r   r   TestNestedArrayAttr.test_nbytes   s5    $v&tvv7r   c                     [         nU R                  U5      nU R                  U" U R                  5      U" U R                  5      5        g r   )rK   ro   r   r   r   s      r   r   TestNestedArrayAttr.test_size   r   r   c                     [         nU R                  U5      nU R                  U" U R                  5      U" U R                  5      5        g r   )r@   ro   r   r   r   s      r   r   !TestNestedArrayAttr.test_itemsize   s5    &v&tvv7r   )r   r   )r   r   r   r   re   ro   r   r   r   r   r   r   r   r   r   s   @r   r   r      s0    1.888888 8r   r   c                       \ rS rSrS rSrg)TestSlicedArrayAttr   c                    [         n[        U5      n[        R                  " S5      R	                  SS5      n[        UR                  S   5       H!  nU R                  U" X45      U" X45      5        M#     [        R                  " S5      R	                  SSS5      n[        UR                  S   5       H!  nU R                  U" X45      U" X45      5        M#     g )N
   ry   rc   r         )rO   r   r   rf   rh   r   r$   r   )ri   rr   rt   rT   r&   s        r   test_size_after_slicing+TestSlicedArrayAttr.test_size_after_slicing   s    +Vii&&q!,syy|$AVC^U3]; %ii	"**1a3syy|$AVC^U3]; %r   r{   N)r   r   r   r   r   r   r{   r   r   r   r      s    <r   r   c                   .    \ rS rSrSrS r\S 5       rSrg)TestArrayCTypes   Fc                     [         n[        U5      n[        R                  " S5      nU R	                  U" U5      U" U5      5        g )Nr   )rU   r   r   rf   r   )ri   rr   rt   rT   s       r   test_array_ctypes_data&TestArrayCTypes.test_array_ctypes_data   s5    "ViileCj1r   c                    ^	^
 SSK JnJnJnJm	Jn  U" XBX25      U	4S j5       m
[        SS9U
4S j5       nSnU" U5      u  pxU R                  U5        U R                  U[        R                  " U5      U-   S   5        g )Nr   )	CFUNCTYPEc_void_pc_int32c_doublec_boolc                 D  >  TU-  R                  U 5      nTS-  R                  U5      n[        R                  " X[        R                  S9n[        R                  " SU[        R                  S9nXUR                  -   S   US'   g!   SS KnUR                  5          g= f)Nr|   )bufferr   r   TF)from_addressr   ndarrayfloat64r1   	tracebackprint_exception)	inptrr1   outptrinbufoutbufr   r   r   r   s	           r   callbackITestArrayCTypes.test_array_ctypes_ref_error_in_parallel.<locals>.callback  s    
!D66u="Q,44V<JJtDJJqrzzBFF
A! ))+s   BB BT)parallelc                    > [         R                  " U 5      n[         R                  " S5      nUR                  nUR                  nT" UR                  XR                  5      nXRS   4$ )Nr|   r   )r   onesr   rQ   rR   )r1   rT   outinctoutctstatusr   s         r   fooDTestArrayCTypes.test_array_ctypes_ref_error_in_parallel.<locals>.foo  sO    ''$-C((1+C::DJJEdiizz:Fq6>!r   r   )rQ   r   r   r   r   r   r   
assertTruerp   r   r   )ri   r   r   r   r   r   r1   r   gotr   r   s            @@r   'test_array_ctypes_ref_error_in_parallel7TestArrayCTypes.test_array_ctypes_ref_error_in_parallel  s~     	JI	6W	7	 
8	  
t		" 
	" $ibggdmd&:A%>?r   r{   N)	r   r   r   r   _numba_parallel_test_r   r	   r  r   r{   r   r   r   r      s#    !2 #@ #@r   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestRealImagAttri(  c                    [        U5      nSn[        R                  " U5      [        R                  " U5      S-  -   nU R                  U" U5      U" U5      5        UR	                  SS5      nU R                  U" U5      U" U5      5        g )Nr   y              $@ry   rc   )r   r   rf   rp   rh   )ri   rr   rt   r1   rT   s        r   check_complexTestRealImagAttr.check_complex)  so    Viio		$# 55sU3Z8kk!QsU3Z8r   c                 .    U R                  [        5        g r   )r  rX   r   s    r   test_complex_real"TestRealImagAttr.test_complex_real3      :&r   c                 .    U R                  [        5        g r   )r  r\   r   s    r   test_complex_imag"TestRealImagAttr.test_complex_imag6  r  r   c                    [         n[        U5      nSn[        R                  " XAS9nU R	                  U" U5      U" U5      5        UR                  SS5      nU R	                  U" U5      U" U5      5        U R                  UR                  U" U5      R                  5        U R                  UR                  U" U5      R                  5        U" U5      nU R                  US   S5        SUS'   U R                  US   S5        g )Nr   r   ry   rc   )r   r   )	rX   r   r   rf   rp   rh   r   rR   assertNotEqual)ri   r   rr   rt   r1   rT   rW   s          r   check_number_real"TestRealImagAttr.check_number_real9  s    Vii*sU3Z8kk!QsU3Z86#;#3#345:??3SzCIq)T
TA&r   c                     [         R                  [         R                  [         R                  [         R                  4 H  nU R                  U5        M     g)z%
Testing .real of non-complex dtypes
N)r   uint8rg   float32r   r  ri   r   s     r   test_number_real!TestRealImagAttr.test_number_realL  6     hh"**bjjAE""5) Br   c                 @   [         n[        U5      nSn[        R                  " XAS9nU R	                  U" U5      U" U5      5        UR                  SS5      nU R	                  U" U5      U" U5      5        U R                  U" U5      R                  5       [        R                  " U5      R                  5       5        U" U5      nU R                  [        5       nSUS'   S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   r   ry   rc   r|   r   z#assignment destination is read-only)r\   r   r   rf   rp   rh   r   tolist
zeros_likeassertRaises
ValueErrorstr	exception)ri   r   rr   rt   r1   rT   r[   raisess           r   check_number_imag"TestRealImagAttr.check_number_imagS  s    Vii*sU3Z8kk!QsU3Z8s**,bmmC.@.G.G.IJSzz*fDG +>V--.	0 +*s   D
Dc                     [         R                  [         R                  [         R                  [         R                  4 H  nU R                  U5        M     g)z%
Testing .imag of non-complex dtypes
N)r   r  rg   r  r   r#  r  s     r   test_number_imag!TestRealImagAttr.test_number_imagf  r  r   c                    [         R                  " S[         R                  4S[         R                  4/5      n[         R                  " SUS9n[         R
                  R                  UR                  5      US'   [         R
                  R                  UR                  5      S-  US'   U R                  [        U5      U5        U R                  [        U5      R                  5       [         R                  " U5      R                  5       5        [        [        5      n[        [        5      nU R                  [        5       nU" U5        S S S 5        U R!                  S[#        WR$                  5      5        U R                  [        5       nU" U5        S S S 5        U R!                  S[#        UR$                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)NrW   r[   r   r   y        ?z&cannot access .real of array of Recordz&cannot access .imag of array of Record)r   r   r  	complex64r   randomr1   assertIsrX   r   r\   r  r  r   r  r
   assertInr   r!  )ri   rectyprT   jit_array_realjit_array_imagr"  s         r   test_record_real!TestRealImagAttr.test_record_realm  sU   FBJJ/&",,1GHIhhq'ii&&sxx0Fii&&sxx047F 	jos+C//12==3E3L3L3NO j)j){+v3 ,>&**+	- {+v3 ,>&**+	- ,+
 ,+s   	G	G
G
G#r{   N)r   r   r   r   r  r
  r  r  r  r#  r&  r0  r   r{   r   r   r  r  (  s*    9'''&*0&*-r   r  c                       \ rS rSrSrS rSrg)TestJitclassFlagsSegfaulti  z@Regression test for: https://github.com/numba/numba/issues/4775 c                     [        [        5       5       " S S[        5      5       nU" 5       nUR                  [        R
                  " S5      5        g )Nc                        \ rS rSrS rS rSrg))TestJitclassFlagsSegfault.test.<locals>.Bi  c                     g r   r{   r   s    r   __init__2TestJitclassFlagsSegfault.test.<locals>.B.__init__  s    r   c                     UR                     g r   )r4   )ri   Xs     r   r   -TestJitclassFlagsSegfault.test.<locals>.B.foo  s	    r   r{   N)r   r   r   r   r8  r   r   r{   r   r   Br6    s    r   r=  rb   )r   dictobjectr   r   r   )ri   r=  Zs      r   testTestJitclassFlagsSegfault.test  s?    	$&		 	 
	 C	bggajr   r{   N)r   r   r   r   __doc__rA  r   r{   r   r   r3  r3    s
    Jr   r3  __main__)0numpyr   unittestnumba.np.numpy_supportr   numbar   r   
numba.corer   numba.tests.supportr   r   r	   numba.core.errorsr
   numba.experimentalr   r   r   r   r   r"   r'   r*   r-   r2   r6   r9   r=   r@   rB   rD   rF   rH   rK   rO   rU   rX   r\   r^   r   r   r   r  r3  r   mainr{   r   r   <module>rN     s     -  ; ; ) '(  V?OX V?r,8/8+<+< ,8^	</8+<+< 	<.@ox .@b^- ^-@ " zMMO r   