
    J/Ph                         d dl mZmZmZ d dlZd dlZd dlmZ d dl	m
Z
 d Zd Z G d de
          Zed	k    r ej                     dS dS )
    )print_functionabsolute_importdivisionN)guvectorize)TestCasec                 Z    t          d| j        d         d          D ]}|d         | |<   d S )Nr      rangeshape)x_ty_1ts      h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/npyufunc/test_update_inplace.pypy_replace_2ndr      s<    1cilA&&  QA     c                     t          d| j        d                   D ])}|d         | |<   d|d         z  ||<   d|d         z  ||<   *d S )Nr   r	      r
   )x0_tx1_tx2_tr   r   s        r   py_update_3r      s\    1djm$$  a&Qc!f*Qc!f*Q r   c                   8    e Zd Z	 	 d
dZd Zd Zd Zd Zd Zd	S )TestUpdateInplaceTr	   c                    dd|ffD ]\  }fdt          |j        dz
            D             }d |D             } |g ||R    |g |t          j        |g          R   t	          t          ||                    D ]`\  }\  }	}
|r&t          j                            |	|
d|z             0|                     |	|
k    	                                d|z             ad S )	N)f8Tf4c                 :    g | ]}t          j        d           S )
   )npzeros).0_dtypes     r   
<listcomp>z:TestUpdateInplace._run_test_for_gufunc.<locals>.<listcomp>   s%    IIIabhr5))IIIr      c                 6    g | ]}|                                 S  )copy)r"   r   s     r   r%   z:TestUpdateInplace._run_test_for_gufunc.<locals>.<listcomp>   s     666666r   zinput %s)err_msg)msg)
r   ninr    array	enumerateziptestingassert_equalassertFalseall)selfgufuncpy_funcexpect_f4_to_passzexpect_to_passinputs	ex_inputsir   ex_x_tr$   s              @r   _run_test_for_gufuncz&TestUpdateInplace._run_test_for_gufunc   s9   &2T;L4M%N 	P 	P!E>IIII5a3H3HIIIF66v666IFFAG.Y.!....$-c&).D.D$E$E P P =C! PJ++Ca+PPPP$$cVm%8%8%:%:
Q$OOOO	P	P 	Pr   c                 v    t          dgdd          t                    }|                     |t          d            t          dgddd          t                    }|                     |t                      t          dgddd	          t                    }|                     |t                     d S )
Nvoid(f8[:], f8[:])(t),()TnopythonFr7   r   rC   writable_args)r   r   r   r>   r4   r5   s     r   test_update_inplacez%TestUpdateInplace.test_update_inplace(   s    ,23X&*, , ,,:< <!!&.49 	" 	; 	; 	;@23X&*$@ @ @@NP P!!&.999523X+35 5 55CE E!!&.99999r   c                      t          dgdddd          t                    } t          dgdddd          t                    }|                     |t                     d S )Nr@   rA   TrE   )rC   rG   cacherH   rI   s     r   test_update_inplace_with_cachez0TestUpdateInplace.test_update_inplace_with_cache9   s    )23X&*$#') ) ))79 9)23X&*$#') ) ))79 9 	!!&.99999r   c                      t          dgdddd          t                    }|                     |t                     d S )Nr@   rA   TrE   parallelrC   rG   targetrH   rI   s     r   test_update_inplace_parallelz.TestUpdateInplace.test_update_inplace_parallelD   sW    023X&*$$.0 0 00>@ @ 	!!&.99999r   c                 v    t          dgdd          t                    }|                     |t          d            t          dgddd          t                    }|                     |t                      t          dgddd	          t                    }|                     |t                     d S )
Nz void(f8[:], f8[:], f8[:], f8[:])z(t),(t),(t),()TrB   FrD   )r   r&   r	   rF   )r   r   r	   )r   r   r>   rI   s     r   test_update_inplace_3z'TestUpdateInplace.test_update_inplace_3K   s    ,@A-&*, , ,,79 9 	!!&+!OOO6@A-+46 6 66AC C 	!!&+666@@A-+>@ @ @@KM M 	!!&+66666r   c           	      R   |                      t                    5   t          dgddd          t                     d d d            n# 1 swxY w Y   |                      t                    5   t          dgddd          t                     d d d            n# 1 swxY w Y   |                      t                    5   t          dgddd          t                     d d d            n# 1 swxY w Y   |                      t                    5   t          dgddd          t                     d d d            n# 1 swxY w Y   |                      t
                    5   t          dgddd	d
          t                     d d d            d S # 1 swxY w Y   d S )Nr@   rA   T)r   r&   r	      rF   )rV   ))z_trE   cudarP   )assertRaises
ValueErrorr   r   RuntimeError	TypeError)r4   s    r   test_exceptionsz!TestUpdateInplace.test_exceptions^   s   z** 	D 	D4K-.4&24 4 44BD D D	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D
 z** 	K 	K;K-.!%T; ; ;;IK K K	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K z** 	L 	L<K-.!%U< < <<JL L L	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
 |,, 	O 	O?K-.!%X? ? ??MO O O	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O
 y)) 	7 	7'K-.!%T%' ' ''57 7 7	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7sY   #A

AA/#BB"%B"#C22C69C6#EE
E
+$FF #F N)Tr	   )	__name__
__module____qualname__r>   rJ   rM   rR   rT   r^   r(   r   r   r   r      s}        FJ P P P P: : :"	: 	: 	:: : :7 7 7&7 7 7 7 7r   r   __main__)
__future__r   r   r   unittestnumpyr    numbar   numba.tests.supportr   r   r   r   r_   mainr(   r   r   <module>ri      s    @ @ @ @ @ @ @ @ @ @            ( ( ( ( ( (  
  _7 _7 _7 _7 _7 _7 _7 _7D zHMOOOOO r   