
    J/Ph                         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                     dS dS )    N)njit)types)captured_stdoutTestCase)numpy_supportc                 8   | j         }|j         }t          |          D ]{}| |         }t          |          D ]7}||         }|xj        |j        |j        z  |j        z   |j        z
  z  c_        8|xj        |j        z  c_        |xj        |j        z  c_        |dS )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           b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_recarray_usecases.pyusecase1r      s    
 
B	BBii  2h)) 	9 	9Br(CGGsusu}sw.88GGG37     c                 z    t          |          D ]*}| |         }t          |j        |j        |j                   +dS )zD
    Base on test1 of https://github.com/numba/numba/issues/381
    Nr
   printf1s1f2xNkys       r   usecase2r$      sG     1XX    aDadAD!$   r   c                     t          |          D ]4}t          | j        |         | j        |         | j        |                    5dS )zD
    Base on test2 of https://github.com/numba/numba/issues/381
    Nr   r    r!   r"   s      r   usecase3r'   '   sJ     1XX ) )ad1gqtAwQ(((() )r   c                     t          |          D ]0}| |         }t          |j        | j        |         |j                   1dS )zD
    Base on test3 of https://github.com/numba/numba/issues/381
    Nr   r   s       r   usecase4r)   /   sK     1XX # #aDadADGQT""""# #r   c                     t          |          D ]4}t          | |         j        | j        |         | |         j                   5dS )zD
    Base on test4 of https://github.com/numba/numba/issues/381
    Nr   r&   s      r   usecase5r+   8   sJ     1XX ) )adgqtAw!(((() )r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestRecordUsecasec                 v    g d}t          j        |          | _        t          j        |d          | _        d S )N))r   <f8)r   |S3)r   r/   T)align)npdtypeunaligned_dtypealigned_dtype)selffieldss     r   setUpzTestRecordUsecase.setUpB   s<    >>>!x//XfD999r   c                 :   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   |_        |                                }|                                }|                                }	|                                }
 |||            ||	|
           t          j                            ||	           t          j                            ||
           d S )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    hbj 1!2:.!2:. 0 1 1 !+K880hqqqk8AAA;/0088k!;///k!;///	#(##a')CH%%))CH%%)	#(##a')CH%%))CH%%)((**((**||~~||~~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   si    K'''y||yAE""x!'!*,E:::r   c                 P   |                      |          }t          j        |          } t          |d d          t          j        f          |          }t                      5   ||t          |                     t          j	        
                                }d d d            n# 1 swxY w Y   t                      5   ||t          |                     t          j	        
                                }d d d            n# 1 swxY w Y   |                     ||           d S 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52k!!!nej1226:: 	+ 	+F5#e**%%%Z((**F	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+  	( 	(E%U$$$*%%''C	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	%%%%%s$   $8B((B,/B,8DD	D	c                     |                      t          | j                   |                      t          | j                   d S rV   )r`   r$   r4   r5   r6   s    r   test_usecase2zTestRecordUsecase.test_usecase2   :    x)=>>>x);<<<<<r   c                     |                      t          | j                   |                      t          | j                   d S rV   )r`   r'   r4   r5   rb   s    r   test_usecase3zTestRecordUsecase.test_usecase3   rd   r   c                     |                      t          | j                   |                      t          | j                   d S rV   )r`   r)   r4   r5   rb   s    r   test_usecase4zTestRecordUsecase.test_usecase4   rd   r   c                     |                      t          | j                   |                      t          | j                   d S 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 9 9 9 9 9 9 9 " " " " " "  $     ) ) )# # #) ) )N= N= N= N= N= N= N= N=b zHMOOOOO r   