
    xKg                         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      l/home/alanp/www/video.onchill/myenv/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      sJ    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!E>38a3HI3Habhhr5)3HFI/56vvI6FA.Y.!.$-c&).D$E =C!JJ++Ca+P$$cVm%8%8%:
Q$O	 %F &O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^   sE   z*4K-.4&244BD +
 z*;K-.!%T;;IK + z*<K-.!%U<<JL +
 |,?K-.!%X??MO -
 y)'K-.!%T%''57 *)' +*
 +* +*
 -,
 *)s;   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   