§
    ƒÛgÿ  ã                   óÜ   — 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      úN/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_overlap.pyÚarray_overlap1r      s2   € ØŒ9˜œ
Ò"Ð"Ð"Ð"Ø�3�Q�B�3Œx€Dˆˆˆ�H€H€Hó    c                 óJ   — | j         |j         k    sJ ‚| |d …         |d | …<   d S r	   r
   r   s      r   Úarray_overlap2r      s2   € ØŒ9˜œ
Ò"Ð"Ð"Ð"Ø�A�B�B”€Dˆˆ1ˆ"ˆ�I€I€Ir   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˜œ
Ò"Ð"Ð"Ð"Ø�a�a�a˜˜˜�d”)€Dˆˆˆˆ3ˆQˆBˆ3ˆ�K€K€Kr   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˜œ
Ò"Ð"Ð"Ð"Ø�Q�Q�Q�s˜˜�s�U”€Dˆˆˆˆ1ˆ2ˆ2ˆ�J€J€Jr   c                 óR   — | j         |j         k    sJ ‚| d|d …f         |dd | …f<   d S ©N.r
   r   s      r   Úarray_overlap5r      s:   € ØŒ9˜œ
Ò"Ð"Ð"Ð"Ø˜˜A˜B˜B˜”K€DˆˆSˆqˆbˆSˆ�M€M€Mr   c                 óR   — | j         |j         k    sJ ‚| dd | …f         |d|d …f<   d S r   r
   r   s      r   Úarray_overlap6r      s:   € ØŒ9˜œ
Ò"Ð"Ð"Ð"Ø�s˜3˜Q˜B˜3�w”<€DˆˆQˆRˆRˆ�L€L€Lr   c                 ó:   — | j         |j         k    sJ ‚| |d d d…<   d S ©Néÿÿÿÿr
   ©r   r   s     r   Úarray_overlap11r"   %   s*   € ØŒ9˜œ
Ò"Ð"Ð"Ð"Ø€Dˆˆˆ2ˆ�J€J€Jr   c                 óJ   — | j         |j         k    sJ ‚| d d d…         |d d …<   d S r   r
   r!   s     r   Úarray_overlap12r$   )   s2   € ØŒ9˜œ
Ò"Ð"Ð"Ð"Ø�$�$�B�$Œi€Dˆˆˆ�G€G€Gr   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ˆˆˆˆ4ˆ4ˆRˆ4ˆ�L€L€Lr   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˜œ
Ò"Ð"Ð"Ð"Ø�!�!�!�D�D�b�D�&Œk€Dˆˆˆ�G€G€Gr   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ˆˆTˆTˆrˆTˆ�N€N€Nr   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˜œ
Ò"Ð"Ð"Ð"Ø�#�d�d˜�d�(Œm€Dˆˆˆ�G€G€Gr   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 ¦  «         ŒHŒžd 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†   è è € Ø—)’) #�)Ñ&Ô&Ð&Ð&Ð&Ø—)’) #�)Ñ&Ô&Ð&Ð&Ð&Ø�T�T�r�T”
—’Ñ!Ô! $ $ B $Ô'ˆAØ”wÔ+ÐH°A´GÔ4HÐHÐHÐHØˆGˆGˆGˆGˆGr   c                 ó\   •—  | ||fi |¤Ž  |||fi |¤Ž ‰                      ||¦  «         d S r	   )ÚassertPreciseEqual)ÚpyfuncÚcfuncÚpydestÚcdestÚkwargsÚselfs        €r   Úcheckz-TestArrayOverlap.check_overlap.<locals>.checkJ   sS   ø€ ØˆF�6˜6Ð,Ð, VÐ,Ð,Ð,ØˆE�%˜Ð)Ð) &Ð)Ð)Ð)Ø×#Ò# F¨EÑ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Ø�D˜4‘KˆEÝ”9˜Q  4¡Ñ(Ô(×0Ò0°Ñ7Ô7ˆDõ "% \ \°$Ñ%7Ô%7¸¸ÀdÑ9KÔ9KÑ!LÔ!Lð <ð <‘�˜Ø"ð <Ý" 1 a™[œ[ð Gð G˜Ø˜˜f e¨V°U½DÀ1¸I¹I¼IÑ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#   € Ø×Ò˜6¨HÀdÐÑ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8�xñ D8ô D8ð D8ðN ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   