
    J/Ph                         d dl Zd dlmZ d dlmZ d dlmZmZ d dl	Z	ddZ
ddZddZdd	Zdd
ZddZd 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)jit)types)TestCasetag   c                 J    | j         |j         k    sJ | d |          ||d <   d S Nshapesrcdestks      X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_overlap.pyarray_overlap1r      s2    9
""""3QB3xDHHH    c                 J    | j         |j         k    sJ | |d          |d | <   d S r	   r
   r   s      r   array_overlap2r      s2    9
""""ABBD1"IIIr   c                 Z    | j         |j         k    sJ | d d |d f         |d d d | f<   d S r	   r
   r   s      r   array_overlap3r      sB    9
""""aaad)D3QB3KKKr   c                 Z    | j         |j         k    sJ | d d d | f         |d d |d f<   d S r	   r
   r   s      r   array_overlap4r      sB    9
""""QQQssUD122JJJr   c                 R    | j         |j         k    sJ | d|d f         |dd | f<   d S N.r
   r   s      r   array_overlap5r      s:    9
""""ABBKDSqbSMMMr   c                 R    | j         |j         k    sJ | dd | f         |d|d f<   d S r   r
   r   s      r   array_overlap6r      s:    9
""""s3QB3w<DQRRLLLr   c                 :    | j         |j         k    sJ | |d d d<   d S Nr
   r   r   s     r   array_overlap11r"   %   s*    9
""""D2JJJr   c                 J    | j         |j         k    sJ | d d d         |d d <   d S r   r
   r!   s     r   array_overlap12r$   )   s2    9
""""$$B$iDGGGr   c                 B    | j         |j         k    sJ | |d d d d df<   d S r   r
   r!   s     r   array_overlap13r&   -   s2    9
""""D44R4LLLr   c                 R    | j         |j         k    sJ | d d d d df         |d d <   d S r   r
   r!   s     r   array_overlap14r(   1   s:    9
""""!!!DDbD&kDGGGr   c                 >    | j         |j         k    sJ | |dd d df<   d S N.r    r
   r!   s     r   array_overlap15r+   5   s.    9
""""DTTrTNNNr   c                 N    | j         |j         k    sJ | dd d df         |d d <   d S r*   r
   r!   s     r   array_overlap16r-   9   s6    9
""""#ddd(mDGGGr   c                   d    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd ZdS )TestArrayOverlapFc                     d}d } fd} t          d          |          }t          |d          D ]}|f|z  }	t          j        d||z                                |	          }
t           ||
           ||
                    D ]G\  }}|r1t          d|          D ]} |||||t          |                      8 |||||i            Hd S )	N   c              3      K   |                      d          V  |                      d          V  | d d d                                          d d d         }|j        j        s|j        j        rJ |V  d S )NC)orderFr    )copyflagsc_contiguousf_contiguous)origas     r   vary_layoutsz4TestArrayOverlap.check_overlap.<locals>.vary_layoutsC   s      ))#)&&&&&))#)&&&&&TTrT
!!$$B$'Aw+HAG4HHHHGGGGGr   c                 \     | ||fi |  |||fi |                      ||           d S r	   )assertPreciseEqual)pyfunccfuncpydestcdestkwargsselfs        r   checkz-TestArrayOverlap.check_overlap.<locals>.checkJ   sS    F66,,V,,,E%))&)))##FE22222r   T)nopythonr   r   )r   )r   rangenparangereshapezipdict)rD   r?   min_ndimhave_k_argumentNr<   rE   r@   ndimr   r:   rA   rB   r   s   `             r   check_overlapzTestArrayOverlap.check_overlap@   s<   	 	 		3 	3 	3 	3 	3
 #T"""6**(A&& 
	< 
	<DD4KE9Q4((0077D "%\\$%7%7d9K9K!L!L < <" <"1a[[ G GfeVUD1IIIFFFFG E&%;;;;<
	< 
	<r   c                 6    |                      ||d           d S )NT)rM   rN   )rQ   )rD   r?   rM   s      r   check_overlap_with_kz%TestArrayOverlap.check_overlap_with_k]   s#    6HdKKKKKr   c                 >    |                      t          d           d S Nr   rM   )rS   r   rD   s    r   test_overlap1zTestArrayOverlap.test_overlap1`   !    !!.1!=====r   c                 >    |                      t          d           d S rU   )rS   r   rW   s    r   test_overlap2zTestArrayOverlap.test_overlap2c   rY   r   c                 >    |                      t          d           d S N   rV   )rS   r   rW   s    r   test_overlap3zTestArrayOverlap.test_overlap3f   rY   r   c                 >    |                      t          d           d S r]   )rS   r   rW   s    r   test_overlap4zTestArrayOverlap.test_overlap4i   rY   r   c                 >    |                      t          d           d S rU   )rS   r   rW   s    r   test_overlap5zTestArrayOverlap.test_overlap5l   rY   r   c                 >    |                      t          d           d S rU   )rS   r   rW   s    r   test_overlap6zTestArrayOverlap.test_overlap6o   rY   r   c                 >    |                      t          d           d S rU   )rQ   r"   rW   s    r   test_overlap11zTestArrayOverlap.test_overlap11r   !    ?Q77777r   c                 >    |                      t          d           d S rU   )rQ   r$   rW   s    r   test_overlap12zTestArrayOverlap.test_overlap12u   rh   r   c                 >    |                      t          d           d S r]   )rQ   r&   rW   s    r   test_overlap13zTestArrayOverlap.test_overlap13x   rh   r   c                 >    |                      t          d           d S r]   )rQ   r(   rW   s    r   test_overlap14zTestArrayOverlap.test_overlap14{   rh   r   c                 >    |                      t          d           d S rU   )rQ   r+   rW   s    r   test_overlap15zTestArrayOverlap.test_overlap15~   rh   r   c                 >    |                      t          d           d S rU   )rQ   r-   rW   s    r   test_overlap16zTestArrayOverlap.test_overlap16   rh   r   N)F)__name__
__module____qualname__rQ   rS   rX   r[   r_   ra   rc   re   rg   rj   rl   rn   rp   rr    r   r   r/   r/   >   s        < < < <:L L L> > >> > >> > >> > >> > >> > >8 8 88 8 88 8 88 8 88 8 88 8 8 8 8r   r/   __main__)r   )numpyrH   numbar   
numba.corer   numba.tests.supportr   r   unittestr   r   r   r   r   r   r"   r$   r&   r(   r+   r-   r/   rs   mainrv   r   r   <module>r~      s                   - - - - - - - - 
                                      
D8 D8 D8 D8 D8x D8 D8 D8N zHMOOOOO r   