
    sh                         S SK r S SKrS SKrS SKJr  S SKJr  S SKJ	r	J
r
  S SKJr  S rS rS rS	 rS
 r " S S\
5      r\S:X  a  \R(                  " 5         gg)    N)njit)types)captured_stdoutTestCase)numpy_supportc                    U R                   nUR                   n[        U5       H  nX   n[        U5       HM  nX   nU=R                  UR                  UR                  -  UR                  -   UR                  -
  -  sl        MO     U=R                  WR                  -  sl        U=R                  UR                  -  sl        M     g)zZBase on https://github.com/numba/numba/issues/370

Modified to add test-able side effect.
N)sizerangerowpcol)arr1arr2n1n2i1st1i2st2s           v/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_recarray_usecases.pyusecase1r      s    
 
B	BBih)B(CGGsuusuu}sww.88G  	377     c                     [        U5       H2  nX   n[        UR                  UR                  UR                  5        M4     g)z<
Base on test1 of https://github.com/numba/numba/issues/381
Nr
   printf1s1f2xNkys       r   usecase2r$      s1     1XDaddADD!$$ r   c                     [        U5       H7  n[        U R                  U   U R                  U   U R                  U   5        M9     g)z<
Base on test2 of https://github.com/numba/numba/issues/381
Nr   r    r!   r"   s      r   usecase3r'   '   s6     1Xadd1gqttAwQ( r   c                     [        U5       H5  nX   n[        UR                  U R                  U   UR                  5        M7     g)z<
Base on test3 of https://github.com/numba/numba/issues/381
Nr   r   s       r   usecase4r)   /   s5     1XDaddADDGQTT" r   c                     [        U5       H5  n[        X   R                  U R                  U   X   R                  5        M7     g)z<
Base on test4 of https://github.com/numba/numba/issues/381
Nr   r&   s      r   usecase5r+   8   s2     1XadggqttAw( 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)TestRecordUsecase@   c                 v    / SQn[         R                  " U5      U l        [         R                  " USS9U l        g )N))r   <f8)r   |S3)r   r0   T)align)npdtypeunaligned_dtypealigned_dtype)selffieldss     r   setUpTestRecordUsecase.setUpB   s+    >!xx/XXfD9r   c                 P   [         n[        R                  " S[        R                  4S[        R                  4S[        R                  4/5      n[        R
                  " U5      n[        US S  US S  45      " U5      n[        R                  " SUS9n[        R                  " SUS9n[        R                  " UR                  5      S-   Ul
        [        R                  " UR                  5      S-   Ul        [        R                  " UR                  5      S-   Ul        [        R                  " UR                  5      S-   Ul
        [        R                  " UR                  5      S-   Ul        [        R                  " UR                  5      S-   Ul        UR                  5       nUR                  5       nUR                  5       n	UR                  5       n
U" Xx5        U" X5        [        R                  R                  Xy5        [        R                  R                  X5        g )Nr   r   r      r4      )r   r3   r4   float64r   
from_dtyper   recarrayaranger	   r   r   r   copytestingassert_equal)r7   pyfuncmystruct_dtmystructcfuncr   r   expect1expect2got1got2s              r   test_usecase1TestRecordUsecase.test_usecase1G   s    hhbjj 1!2::.!2::. 0 1 !++K8hqk8A;/08kk!;/kk!;/		#((#a'))CHH%)))CHH%)		#((#a'))CHH%)))CHH%)((*((*||~||~w d


.


.r   c                     Sn[         R                  " X!S9n[         R                  " U5      Ul        [         R                  " SUS-   5      Ul        [         R
                  " S/UR                  S   -  SS9Ul        U$ )N   r=      abcr   r1   )r3   rA   rB   r   r   arrayshaper   )r7   r4   r!   as       r   _setup_usecase2to5$TestRecordUsecase._setup_usecase2to5i   s`    KK'yy|yyAE"xx!''!*,E:r   c                    U R                  U5      n[        R                  " U5      n[        US S  [        R
                  45      " U5      n[        5          U" U[        U5      5        [        R                  R                  5       nS S S 5        [        5          U" U[        U5      5        [        R                  R                  5       nS S S 5        U R                  WW5        g ! , (       d  f       Nd= f! , (       d  f       N2= fN)rW   r   r@   r   r   intpr   lensysstdoutgetvalueassertEqual)r7   rF   r4   rT   record_typerI   expectgots           r   _test_usecase2to5#TestRecordUsecase._test_usecase2to5q   s    ''.#..u5k!nejj126:5#e*%ZZ((*F  %U$**%%'C  	%  s   1C%1C6%
C36
Dc                     U R                  [        U R                  5        U R                  [        U R                  5        g rZ   )rd   r$   r5   r6   r7   s    r   test_usecase2TestRecordUsecase.test_usecase2   .    x)=)=>x););<r   c                     U R                  [        U R                  5        U R                  [        U R                  5        g rZ   )rd   r'   r5   r6   rg   s    r   test_usecase3TestRecordUsecase.test_usecase3   rj   r   c                     U R                  [        U R                  5        U R                  [        U R                  5        g rZ   )rd   r)   r5   r6   rg   s    r   test_usecase4TestRecordUsecase.test_usecase4   rj   r   c                     U R                  [        U R                  5        U R                  [        U R                  5        g rZ   )rd   r+   r5   r6   rg   s    r   test_usecase5TestRecordUsecase.test_usecase5   rj   r   )r6   r5   N)__name__
__module____qualname____firstlineno__r9   rN   rW   rd   rh   rl   ro   rr   __static_attributes__ r   r   r-   r-   @   s+    :
 /D&====r   r-   __main__)r]   unittestnumpyr3   numbar   
numba.corer   numba.tests.supportr   r   numba.npr   r   r$   r'   r)   r+   r-   rt   mainry   r   r   <module>r      sZ    
     9 "$ )#)N= N=b zMMO r   