
    xKg                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d Zd Zd Zd	 Zd
 Z G d de
      Zedk(  r ej(                          yy)    N)njit)types)captured_stdoutTestCase)numpy_supportc                    | j                   }|j                   }t        |      D ]  }| |   }t        |      D ]M  }||   }|xj                  |j                  |j                  z  |j                  z   |j                  z
  z  c_        O |xj                  j                  z  c_        |xj                  |j                  z  c_         y)zbBase 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           f/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_recarray_usecases.pyusecase1r      s    
 
B	BBi2h)Br(CGGsuusuu}sww.88G  	377     c                     t        |      D ]2  }| |   }t        |j                  |j                  |j                         4 y)zD
    Base on test1 of https://github.com/numba/numba/issues/381
    Nr
   printf1s1f2xNkys       r   usecase2r$      s3     1XaDaddADD!$$ r   c                     t        |      D ]6  }t        | j                  |   | j                  |   | j                  |          8 y)zD
    Base on test2 of https://github.com/numba/numba/issues/381
    Nr   r    r!   r"   s      r   usecase3r'   '   s6     1Xadd1gqttAwQ( r   c                     t        |      D ]5  }| |   }t        |j                  | j                  |   |j                         7 y)zD
    Base on test3 of https://github.com/numba/numba/issues/381
    Nr   r   s       r   usecase4r)   /   s7     1XaDaddADDGQTT" r   c                     t        |      D ]6  }t        | |   j                  | j                  |   | |   j                         8 y)zD
    Base on test4 of https://github.com/numba/numba/issues/381
    Nr   r&   s      r   usecase5r+   8   s6     1XadggqttAw!( r   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestRecordUsecasec                 x    g d}t        j                  |      | _        t        j                  |d      | _        y )N))r   <f8)r   |S3)r   r/   T)align)npdtypeunaligned_dtypealigned_dtype)selffieldss     r   setUpzTestRecordUsecase.setUpB   s+    >!xx/XXfD9r   c                 P   t         }t        j                  dt        j                  fdt        j                  fdt        j                  fg      }t	        j
                  |      } t        |d d  |d d  f      |      }t        j                  d|      }t        j                  d|      }t        j                  |j                        dz   |_
        t        j                  |j                        dz   |_        t        j                  |j                        dz   |_        t        j                  |j                        dz   |_
        t        j                  |j                        dz   |_        t        j                  |j                        dz   |_        |j                         }|j                         }|j                         }	|j                         }
 |||        ||	|
       t        j                  j                  ||	       t        j                  j                  ||
       y )Nr   r   r      r3      )r   r2   r3   float64r   
from_dtyper   recarrayaranger	   r   r   r   copytestingassert_equal)r6   pyfuncmystruct_dtmystructcfuncr   r   expect1expect2got1got2s              r   test_usecase1zTestRecordUsecase.test_usecase1G   s    hhbjj 1!2::.!2::. 0 1 !++K80hqk8A;/08kk!;/kk!;/		#((#a'))CHH%)))CHH%)		#((#a'))CHH%)))CHH%)((*((*||~||~w dD


.


.r   c                    d}t        j                  ||      }t        j                  |      |_        t        j                  d|dz         |_        t        j
                  dg|j                  d   z  d      |_        |S )N   r;      abcr   r0   )r2   r?   r@   r   r   arrayshaper   )r6   r3   r!   as       r   _setup_usecase2to5z$TestRecordUsecase._setup_usecase2to5i   sb    KK'yy|yyAE"xx!''!*,E:r   c                    | j                  |      }t        j                  |      } t        |d d  t        j
                  f      |      }t               5   ||t        |             t        j                  j                         }d d d        t               5   ||t        |             t        j                  j                         }d d d        | j                         y # 1 sw Y   _xY w# 1 sw Y   (xY wN)rT   r   r>   r   r   intpr   lensysstdoutgetvalueassertEqual)r6   rD   r3   rQ   record_typerG   expectgots           r   _test_usecase2to5z#TestRecordUsecase._test_usecase2to5q   s    ''.#..u52k!nejj126:5#e*%ZZ((*F  %U$**%%'C  	%  s   1C$1C0$C-0C9c                     | j                  t        | j                         | j                  t        | j                         y rV   )r`   r$   r4   r5   r6   s    r   test_usecase2zTestRecordUsecase.test_usecase2   .    x)=)=>x););<r   c                     | j                  t        | j                         | j                  t        | j                         y rV   )r`   r'   r4   r5   rb   s    r   test_usecase3zTestRecordUsecase.test_usecase3   rd   r   c                     | j                  t        | j                         | j                  t        | j                         y rV   )r`   r)   r4   r5   rb   s    r   test_usecase4zTestRecordUsecase.test_usecase4   rd   r   c                     | j                  t        | j                         | j                  t        | j                         y rV   )r`   r+   r4   r5   rb   s    r   test_usecase5zTestRecordUsecase.test_usecase5   rd   r   N)__name__
__module____qualname__r8   rL   rT   r`   rc   rf   rh   rj    r   r   r-   r-   @   s+    :
 /D&====r   r-   __main__)rY   unittestnumpyr2   numbar   
numba.corer   numba.tests.supportr   r   numba.npr   r   r$   r'   r)   r+   r-   rk   mainrn   r   r   <module>rw      s\    
     9 "$ )#)N= N=b zHMMO r   