§
    ƒÛg¹  ã                   óò   — d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z G d„ de j        ¦  «        Zedk    r e j        ¦   «          dS dS )é    N)Úcompile_isolated)ÚjitÚnjit)ÚtypesÚutils)Útag)Úlength_of_iteratorc                 ó8   — d}t          | ¦  «        D ]}||z  }Œ|S ©Nr   ©Úrange)ÚnÚsÚis      úL/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_range.pyÚloop1r      s,   € Ø	€AÝ�1‰XŒXð ð ˆØ	ˆQ‰ˆˆØ€Hó    c                 ó:   — d}t          | |¦  «        D ]}||z  }Œ|S r   r   )ÚaÚbr   r   s       r   Úloop2r      s.   € Ø	€AÝ�1�a‰[Œ[ð ð ˆØ	ˆQ‰ˆˆØ€Hr   c                 ó<   — d}t          | ||¦  «        D ]}||z  }Œ|S r   r   )r   r   Úcr   r   s        r   Úloop3r      s0   € Ø	€AÝ�1�a˜‰^Œ^ð ð ˆØ	ˆQ‰ˆˆØ€Hr   c                 ó:   — t          t          | ¦  «        ¦  «        S ©N©Úlenr   )r   s    r   Ú
range_len1r   "   s   € Ý�u�Q‰xŒx‰=Œ=Ðr   c                 ó<   — t          t          | |¦  «        ¦  «        S r   r   )r   r   s     r   Ú
range_len2r!   %   s   € Ý�u�Q˜‰{Œ{ÑÔÐr   c                 ó>   — t          t          | ||¦  «        ¦  «        S r   r   )r   r   r   s      r   Ú
range_len3r#   (   s   € Ý�u�Q˜˜1‰~Œ~ÑÔÐr   c                 óT   — t          t          t          | ¦  «        ¦  «        ¦  «        S r   )r	   Úiterr   ©r   s    r   Úrange_iter_len1r'   *   s   € Ý�d¥5¨¡8¤8™nœnÑ-Ô-Ð-r   c                 ó:   — t          t          | ¦  «        ¦  «        S r   )r	   r%   r&   s    r   Úrange_iter_len2r)   -   s   € Ý�d 1™gœgÑ&Ô&Ð&r   c                 óÈ   — t          | ¦  «        }t          | |¦  «        }t          | ||¦  «        }g }|||fD ])}|                     |j        |j        |j        f¦  «         Œ*|S r   )r   ÚappendÚstartÚstopÚstep)r,   r-   r.   Úr1Úr2Úr3ÚtmpÚrs           r   Úrange_attrsr4   0   sn   € Ý	ˆu‰Œ€BÝ	ˆu�dÑ	Ô	€BÝ	ˆu�d˜DÑ	!Ô	!€BØ
€CØ�"�bˆ\ð .ð .ˆØ�
Š
�A”G˜QœV Q¤VÐ,Ñ-Ô-Ð-Ð-Ø€Jr   c                 ó†   ‡ — t          |¦  «        }t          ||¦  «        }t          |||¦  «        }ˆ fd„|||fD ¦   «         S )Nc                 ó   •— g | ]}‰|v ‘ŒS © r7   )Ú.0r3   Úvals     €r   ú
<listcomp>z"range_contains.<locals>.<listcomp>=   s   ø€ Ð+Ð+Ð+˜ˆC�1ˆHÐ+Ð+Ð+r   r   )r9   r,   r-   r.   r/   r0   r1   s   `      r   Úrange_containsr;   9   sN   ø€ Ý	ˆu‰Œ€BÝ	ˆu�dÑ	Ô	€BÝ	ˆu�d˜DÑ	!Ô	!€BØ+Ð+Ð+Ð+˜r 2 r˜lÐ+Ñ+Ô+Ð+r   c                   óJ   — e 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 )Ú	TestRangec                 ó¨   — t           }t          |t          j        g¦  «        }|j        }|                       |d¦  «         |d¦  «        ¦  «         d S )Né   )r   r   r   Úint16Úentry_pointÚ
assertTrue©ÚselfÚpyfuncÚcresÚcfuncs       r   Útest_loop1_int16zTestRange.test_loop1_int16B   sL   € ÝˆÝ ­¬¨Ñ6Ô6ˆØÔ ˆØ�Š˜˜˜a™œ & &¨¡)¤)Ñ,Ô,Ð,Ð,Ð,r   c                 óÂ   — t           }t          |t          j        t          j        g¦  «        }|j        }|                       |dd¦  «         |dd¦  «        ¦  «         d S )Né   é   )r   r   r   r@   rA   rB   rC   s       r   Útest_loop2_int16zTestRange.test_loop2_int16H   sU   € ÝˆÝ ­¬µe´kÐ(BÑCÔCˆØÔ ˆØ�Š˜˜˜a ™œ V V¨A¨q¡\¤\Ñ2Ô2Ð2Ð2Ð2r   c                 ó¨   — t           }t          |t          j        gdz  ¦  «        }|j        }g d¢}|D ]}|                       ||Ž  ||Ž ¦  «         Œd S )Né   ©)rJ   é   rJ   )rP   é   rN   )éöÿÿÿiõÿÿÿrR   )rR   rR   éþÿÿÿ)r   r   r   Úint32rA   ÚassertEqual)rD   rE   rF   rG   ÚarglistÚargss         r   Útest_loop3_int32zTestRange.test_loop3_int32N   sx   € ÝˆÝ ­¬¨¸Ñ(9Ñ:Ô:ˆØÔ ˆð
ð 
ð 
ˆð ð 	:ð 	:ˆDØ×Ò˜U˜U D˜\¨6¨6°4¨=Ñ9Ô9Ð9Ð9ð	:ð 	:r   c           
      ó  — t           }t          j        t          j        t          j        g}g d¢}|D ]Y}t          ||g¦  «        }|j        }|D ]<}|                       | ||¦  «        ¦  «         | ||¦  «        ¦  «        ¦  «         Œ=ŒZd S ©N)r?   r   éûÿÿÿ)r   r   r@   rT   Úint64r   rA   rU   )rD   rE   ÚtypelistrV   ÚtyprF   rG   Úargs           r   Útest_range_len1zTestRange.test_range_len1[   sª   € ÝˆÝ”K¥¤­e¬kÐ:ˆØ�*�*ˆØð 	Dð 	DˆCÝ# F¨S¨EÑ2Ô2ˆDØÔ$ˆEØð Dð D�Ø× Ò    s s¨3¡x¤x¡¤°&°&¸¸¸S¹¼Ñ2BÔ2BÑCÔCÐCÐCðDð	Dð 	Dr   c                 ó  ‡— t           }t          j        t          j        t          j        g}g d¢}|D ]YŠt          |‰gdz  ¦  «        }|j        }|D ]9}t          ˆfd„|D ¦   «         ¦  «        }|                       ||Ž  ||Ž ¦  «         Œ:ŒZd S )N))rJ   rK   )rK   rJ   )r[   éÿÿÿÿrP   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r   r7   ©r8   Úxr^   s     €r   ú	<genexpr>z,TestRange.test_range_len2.<locals>.<genexpr>m   ó+   øè è € Ð3Ð3¨˜c˜c !™fœfÐ3Ð3Ð3Ð3Ð3Ð3r   )	r!   r   r@   rT   r\   r   rA   ÚtuplerU   ©	rD   rE   r]   rV   rF   rG   rW   Úargs_r^   s	           @r   Útest_range_len2zTestRange.test_range_len2e   s½   ø€ ÝˆÝ”K¥¤­e¬kÐ:ˆØ*Ð*Ð*ˆØð 	@ð 	@ˆCÝ# F¨S¨E°A©IÑ6Ô6ˆDØÔ$ˆEØð @ð @�ÝÐ3Ð3Ð3Ð3¨dÐ3Ñ3Ô3Ñ3Ô3�Ø× Ò   ¨ °°¸°Ñ?Ô?Ð?Ð?ð@ð	@ð 	@r   c                 ó  ‡— t           }t          j        t          j        t          j        g}g d¢}|D ]YŠt          |‰gdz  ¦  «        }|j        }|D ]9}t          ˆfd„|D ¦   «         ¦  «        }|                       ||Ž  ||Ž ¦  «         Œ:ŒZd S )NrO   rN   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r   r7   rd   s     €r   rf   z,TestRange.test_range_len3.<locals>.<genexpr>}   rg   r   )	r#   r   r@   rT   r\   r   rA   rh   rU   ri   s	           @r   Útest_range_len3zTestRange.test_range_len3p   sÅ   ø€ ÝˆÝ”K¥¤­e¬kÐ:ˆð
ð 
ð 
ˆð ð 	@ð 	@ˆCÝ# F¨S¨E°A©IÑ6Ô6ˆDØÔ$ˆEØð @ð @�ÝÐ3Ð3Ð3Ð3¨dÐ3Ñ3Ô3Ñ3Ô3�Ø× Ò   ¨ °°¸°Ñ?Ô?Ð?Ð?ð@ð	@ð 	@r   c           
      ó(  — t           }t          }t          j        t          j        t          j        g}g d¢}|D ]Y}t          ||g¦  «        }|j        }|D ]<}|                       | ||¦  «        ¦  «         | ||¦  «        ¦  «        ¦  «         Œ=ŒZd S rZ   )	r   r'   r   r@   rT   r\   r   rA   rU   )	rD   Ú
range_funcÚrange_iter_funcr]   rV   r^   rF   rG   r_   s	            r   Útest_range_iter_len1zTestRange.test_range_iter_len1€   s¯   € Ýˆ
Ý)ˆÝ”K¥¤­e¬kÐ:ˆØ�*�*ˆØð 	Hð 	HˆCÝ# O°c°UÑ;Ô;ˆDØÔ$ˆEØð Hð H�Ø× Ò    s s¨3¡x¤x¡¤°*°*¸S¸SÀ¹X¼XÑ2FÔ2FÑGÔGÐGÐGðHð	Hð 	Hr   c                 óÜ   — t           }t          |t          j        t          j        ¦  «        g¦  «        }|j        }g d¢}|                       ||¦  «        t          |¦  «        ¦  «         d S )N)rJ   rP   rN   é   r?   )r)   r   r   ÚListÚintprA   rU   r   )rD   rq   rF   rG   rV   s        r   Útest_range_iter_listzTestRange.test_range_iter_list‹   s`   € Ý)ˆÝ µ%´*½U¼ZÑ2HÔ2HÐ1IÑJÔJˆØÔ ˆØ!�/�/ˆØ×Ò˜˜˜w™œ­¨W©¬Ñ6Ô6Ð6Ð6Ð6r   c                 ó¨   — t           }g d¢}t          |t          j        fdz  ¦  «        }|j        }|D ]}|                       ||Ž  ||Ž ¦  «         Œd S )N)©r   r   rJ   ©r   rb   rJ   ©rb   rJ   rJ   ©rb   rt   rJ   ©rb   rt   é
   ©r?   r[   rS   rN   )r4   r   r   r\   rA   rU   )rD   rE   rV   rF   rG   r_   s         r   Útest_range_attrszTestRange.test_range_attrs’   sx   € Ýˆð!ð !ð !ˆõ   ­¬¨¸Ñ(:Ñ;Ô;ˆØÔ ˆØð 	8ð 	8ˆCØ×Ò˜U˜U C˜[¨&¨&°#¨,Ñ7Ô7Ð7Ð7ð	8ð 	8r   c           	      ó\  — t           }g d¢}ddg}g d¢}g d¢}g d¢}||z   |z   |z   }t          |¦  «        }|D ]+}	|D ]&}
|                       ||
g|	¢R Ž  ||
g|	¢R Ž ¦  «         Œ'Œ,ddidgd	d
g}t          |d¬¦  «        }|D ]+}	|D ]&}
|                       ||
g|	¢R Ž  ||
g|	¢R Ž ¦  «         Œ'Œ,d S )N)	ry   )rb   r   rJ   )rJ   r   rb   rz   )r   rJ   rb   r{   r|   r}   r   TF)rR   iúÿÿÿr[   éüÿÿÿrS   rb   r   rJ   rP   rt   r?   rK   r~   )gš™™™™™ñ¿g      ð¿g        g      ð?gš™™™™™ñ?)y      ð?        y      ð?      ð?yš™™™™™ñ?        y      ð?š™™™™™ñ?r   rJ   Úabc)rJ   )Úforceobj)r;   r   rU   r   )rD   rE   rV   Ú	bool_valsÚint_valsÚ
float_valsÚcomplex_valsÚvallistrG   r_   r9   Únon_numeric_valsÚ	cfunc_objs                r   Útest_range_containszTestRange.test_range_contains    sm  € Ýˆð!ð !ð !ˆð ˜5�Mˆ	ð(ð (ð (ˆà0Ð0Ð0ˆ
Ø=Ð=Ð=ˆà˜xÑ'¨*Ñ4Øñˆõ �V‘”ˆØð 	Fð 	FˆCØð Fð F�Ø× Ò    sÐ!1¨SÐ!1Ð!1Ð!1°6°6¸#Ð3DÀÐ3DÐ3DÐ3DÑEÔEÐEÐEðFð ! !˜H q e¨U°DÐ9Ðå˜¨Ð.Ñ.Ô.ˆ	Øð 	Jð 	JˆCØ'ð Jð J�Ø× Ò   ¨3Ð!5°Ð!5Ð!5Ð!5°v°v¸cÐ7HÀCÐ7HÐ7HÐ7HÑIÔIÐIÐIðJð	Jð 	Jr   N)Ú__name__Ú
__module__Ú__qualname__rH   rL   rX   r`   rk   rn   rr   rw   r€   rŒ   r7   r   r   r=   r=   @   s»   € € € € € ð-ð -ð -ð3ð 3ð 3ð:ð :ð :ðDð Dð Dð	@ð 	@ð 	@ð@ð @ð @ð 	Hð 	Hð 	Hð7ð 7ð 7ð8ð 8ð 8ðJð Jð Jð Jð Jr   r=   Ú__main__)ÚunittestÚsysÚnumpyÚnumba.core.compilerr   Únumbar   r   Ú
numba.corer   r   Únumba.tests.supportr   Únumba.cpython.rangeobjr	   r   r   r   r   r!   r#   r'   r)   r4   r;   ÚTestCaser=   r�   Úmainr7   r   r   ú<module>r›      s€  ðØ €€€à 
€
€
€
à €€€à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #à 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð.ð .ð .ð'ð 'ð 'ðð ð ð,ð ,ð ,ðJð Jð Jð Jð J�Ô!ñ Jô Jð JðF ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   