
    wg                         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                          yy)
    )print_functionabsolute_importdivisionN)guvectorize)TestCasec                 R    t        d| j                  d   d      D ]
  }|d   | |<    y )Nr      rangeshape)x_ty_1ts      m/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/tests/npyufunc/test_update_inplace.pypy_replace_2ndr      s/    1ciilA& QA    c                 |    t        d| j                  d         D ]   }|d   | |<   d|d   z  ||<   d|d   z  ||<   " y )Nr   r	      r
   )x0_tx1_tx2_tr   r   s        r   py_update_3r      sO    1djjm$ a&Qc!f*Qc!f*Qr   c                   6    e Zd Z	 	 ddZd Zd Zd Zd Zd Zy)	TestUpdateInplacec                    dd|ffD ]  \  }}t        |j                  dz
        D cg c]  }t        j                  d|       }}|D 	cg c]  }	|	j	                          }
}	 |g ||   |g |
t        j
                  |g        t        t        ||
            D ]W  \  }\  }	}|r&t        j                  j                  |	|d|z         1| j                  |	|k(  j                         d|z         Y  y c c}w c c}	w )N)f8Tf4   
   zinput %s)err_msg)msg)r   ninnpzeroscopyarray	enumerateziptestingassert_equalassertFalseall)selfgufuncpy_funcexpect_f4_to_passzdtypeexpect_to_pass_inputsr   	ex_inputsiex_x_ts                r   _run_test_for_gufuncz&TestUpdateInplace._run_test_for_gufunc   s   &2T;L4M%N 	P!E>38a3HIabhhr5)IFI/566I6FA.Y.!.$-c&).D$E P =C!JJ++Ca+P$$cVm%8%8%:
Q$O	P	PI6s   C=
Dc                 &    t        dgdd      t              }| j                  |t        d        t        dgddd      t              }| j                  |t                t        dgddd	      t              }| j                  |t               y )
Nvoid(f8[:], f8[:])(t),()TnopythonFr0   r   r>   writable_args)r   r   r   r9   r-   r.   s     r   test_update_inplacez%TestUpdateInplace.test_update_inplace(   s    ,23X&*,,:<!!&.49 	" 	;@23X&*$@@NP!!&.9523X+355CE!!&.9r   c                      t        dgdddd      t              } t        dgdddd      t              }| j                  |t               y )Nr;   r<   Tr@   )r>   rB   cacherC   rD   s     r   test_update_inplace_with_cachez0TestUpdateInplace.test_update_inplace_with_cache9   s`    )23X&*$#'))79)23X&*$#'))79 	!!&.9r   c                 f     t        dgdddd      t              }| j                  |t               y )Nr;   r<   Tr@   parallelr>   rB   targetrC   rD   s     r   test_update_inplace_parallelz.TestUpdateInplace.test_update_inplace_parallelD   s;    023X&*$$.00>@ 	!!&.9r   c                 &    t        dgdd      t              }| j                  |t        d        t        dgddd      t              }| j                  |t                t        dgddd	      t              }| j                  |t               y )
Nz void(f8[:], f8[:], f8[:], f8[:])z(t),(t),(t),()Tr=   Fr?   )r   r   r	   rA   )r   r   r	   )r   r   r9   rD   s     r   test_update_inplace_3z'TestUpdateInplace.test_update_inplace_3K   s    ,@A-&*,,79 	!!&+!O6@A-+466AC 	!!&+6@@A-+>@@KM 	!!&+6r   c           	         | j                  t              5   t        dgddd      t               d d d        | j                  t              5   t        dgddd      t               d d d        | j                  t              5   t        dgddd      t               d d d        | j                  t              5   t        dgddd      t               d d d        | j                  t
              5   t        dgddd	d
      t               d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY w)Nr;   r<   T)r   r   r	      rA   )rQ   ))z_tr@   cudarK   )assertRaises
ValueErrorr   r   RuntimeError	TypeError)r-   s    r   test_exceptionsz!TestUpdateInplace.test_exceptions^   sz   z* 	D4K-.4&244BD	D
 z* 	K;K-.!%T;;IK	K z* 	L<K-.!%U<<JL	L
 |, 	O?K-.!%X??MO	O
 y) 	7'K-.!%T%''57	7 	7'	D 	D
	K 	K	L 	L
	O 	O
	7 	7s;   DD'D3>D?6ED$'D03D<?EEN)Tr	   )	__name__
__module____qualname__r9   rE   rH   rM   rO   rY    r   r   r   r      s'    FJ P:"	::7&7r   r   __main__)
__future__r   r   r   unittestnumpyr#   numbar   numba.tests.supportr   r   r   r   rZ   mainr]   r   r   <module>re      sJ    @ @    (
_7 _7D zHMMO r   