§
    2@Äjš  ã                   óÌ   — d dl Z d dlmZmZ d dlmZ d dlmZ ddiZddi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¦  «        Zedk    r e j        ¦   «          dS dS )é    N)ÚjitÚnjit)Útypes)ÚTestCaseÚforceobjTÚnopythonc                 ó.   — t          | ¦  «        x}}||z   S ©N©Ústr©ÚaÚbÚcs      úJC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_dataflow.pyÚassignmentsr      s   € Ý�‰FŒF€N€AˆØˆq‰5€Ló    c                 ó8   — t          | ¦  «        x}x}}||z   |z   S r
   r   )r   r   r   Úds       r   Úassignments2r      s%   € Ý�A‘”Ð€AÐˆˆAØˆq‰5�1‰9Ðr   c                 ó    — | |k    r| n|dz   }|S ©Né   © r   s      r   Úvar_propagate1r      s   € Ø�!Šeˆeˆˆ˜˜aÑ€AØ€Hr   c                 ó,   — d| |k    r| n|dz   dz  z   }|S )Nr   é   g       @r   r   s      r   Úvar_propagate2r      s&   € Ø	�!�a’%�%ˆQˆQ˜Q ™V sÑ*Ñ*€AØ€Hr   c                 ó    — d| |k    r| p|z   }|S r   r   r   s      r   Úvar_propagate3r    !   s   € Ø	ˆQ�ŠUˆ[�qÐ˜AÑ€AØ€Hr   c                 ó4   — d| dz
  o|dz   z   p	| dz   o|dz
  }|S )Nr   é   r   r   s      r   Úvar_propagate4r#   &   s.   € Ø	ˆQ�‰Uˆ_�q˜1‘uÑÐ2 ! a¡% /¨A°©E€AØ€Hr   c                 ó"   — d| cxk     odk     nc S )Nr"   é   r   )r   s    r   Úchained_comparer&   ,   s   € Øˆqˆ9ˆ9Š9ˆ9�1Š9ˆ9ˆ9ˆ9Ðr   c                 óH   — d}d}|| k    rt          d¦  «        D ]}|}Œ||z   S )Né   r"   r%   ©Úrange)ÚxÚir   s      r   Ústack_effect_errorr-   1   s:   € Ø	€AØ	€AØˆA‚v€vÝ�q‘”ð 	ð 	ˆAØˆAˆAØˆq‰5€Lr   c                 óF   — t          | ¦  «        D ]}d} ||k    r nŒ|} || fS )Nr   r)   )Únr+   r,   s      r   Ú	for_breakr0   :   s?   € Ý�1‰XŒXð ð ˆØˆØ�Š6ˆ6ØˆEð ð ˆØˆaˆ4€Kr   c                 óH   — || }} |||}}}|||| f\  } }}}| |z   |z   |z   |z   S r
   r   )r   r   r   r   Úes        r   Úvar_swappingr3   D   sD   € Øˆa€q€AØ��Aˆ!€q€AØ�A�q˜!��J€A€qˆ!ˆQØˆq‰5�1‰9�q‰=˜!ÑÐr   c                   ó€   — e Zd Zefd„Zefd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
efd„Zd	„ Zefd
„Zd„ Zefd„Zd„ Zefd„Zd„ ZdS )ÚTestDataFlowc                 ó°   — t           } t          t          j        ffi |¤Ž|¦  «        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )N©éÿÿÿÿr   r"   )r   r   r   Úint32ÚassertPreciseEqual©ÚselfÚflagsÚpyfuncÚcfuncr+   s        r   Útest_assignmentszTestDataFlow.test_assignmentsL   sl   € ÝˆØ,••U”[�NÐ,Ð, eÐ,Ð,¨VÑ4Ô4ˆØð 	9ð 	9ˆAØ×#Ò# F F¨1¡I¤I¨u¨u°Q©x¬xÑ8Ô8Ð8Ð8ð	9ð 	9r   c                 óÜ   — t           } t          t          j        ffi |¤Ž|¦  «        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+|t
          u r |d¦  «         d S d S )Nr7   r   )r   r   r   r9   r:   Úforce_pyobj_jit_optr;   s        r   Útest_assignments2zTestDataFlow.test_assignments2R   s‡   € ÝˆØ,••U”[�NÐ,Ð, eÐ,Ð,¨VÑ4Ô4ˆØð 	9ð 	9ˆAØ×#Ò# F F¨1¡I¤I¨u¨u°Q©x¬xÑ8Ô8Ð8Ð8àÕ'Ð'Ð'ØˆE�#‰JŒJˆJˆJˆJð (Ð'r   c                 óH   — |                        ||Ž  |j        |Ž ¦  «         d S r
   )r:   Úpy_func)r<   ÚfuncÚargss      r   Úrun_propagate_funczTestDataFlow.run_propagate_func^   s-   € Ø×Ò   d ¨\¨T¬\¸4Ð-@ÑAÔAÐAÐAÐAr   c                 óÄ   —  t          t          j        t          j        f¦  «        t          ¦  «        }|                      |d¦  «         |                      |d¦  «         d S ©N©r(   r%   ©r%   r(   )r   r   Úintpr   rH   ©r<   r?   s     r   Útest_var_propagate1z TestDataFlow.test_var_propagate1a   óT   € Ø.••e”j¥%¤*Ð-Ñ.Ô.­~Ñ>Ô>ˆØ×Ò  vÑ.Ô.Ð.Ø×Ò  vÑ.Ô.Ð.Ð.Ð.r   c                 óÄ   —  t          t          j        t          j        f¦  «        t          ¦  «        }|                      |d¦  «         |                      |d¦  «         d S rJ   )r   r   rM   r   rH   rN   s     r   Útest_var_propagate2z TestDataFlow.test_var_propagate2f   rP   r   c                 ót  —  t          t          j        t          j        f¦  «        t          ¦  «        }|                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d¦  «         d S )NrK   rL   )r(   r   ©r8   r   )r   r(   ©r   r8   )r   r   rM   r    rH   rN   s     r   Útest_var_propagate3z TestDataFlow.test_var_propagate3k   s¬   € Ø.••e”j¥%¤*Ð-Ñ.Ô.­~Ñ>Ô>ˆØ×Ò  vÑ.Ô.Ð.Ø×Ò  vÑ.Ô.Ð.Ø×Ò  vÑ.Ô.Ð.Ø×Ò  wÑ/Ô/Ð/Ø×Ò  vÑ.Ô.Ð.Ø×Ò  wÑ/Ô/Ð/Ð/Ð/r   c                 óø  —  t          t          j        t          j        f¦  «        t          ¦  «        }|                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d¦  «         |                      |d	¦  «         d S )
N)r"   r"   )r"   r   )r"   r8   )r   r"   )r   r   rU   )r8   r"   rT   )r8   r8   )r   r   rM   r#   rH   rN   s     r   Útest_var_propagate4z TestDataFlow.test_var_propagate4t   sî   € Ø.••e”j¥%¤*Ð-Ñ.Ô.­~Ñ>Ô>ˆØ×Ò  vÑ.Ô.Ð.Ø×Ò  vÑ.Ô.Ð.Ø×Ò  wÑ/Ô/Ð/Ø×Ò  vÑ.Ô.Ð.Ø×Ò  vÑ.Ô.Ð.Ø×Ò  wÑ/Ô/Ð/Ø×Ò  wÑ/Ô/Ð/Ø×Ò  wÑ/Ô/Ð/Ø×Ò  xÑ0Ô0Ð0Ð0Ð0r   c                 ó°   — t           } t          t          j        ffi |¤Ž|¦  «        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )N)r   r"   r(   r%   é   )r&   r   r   r9   r:   r;   s        r   Útest_chained_comparez!TestDataFlow.test_chained_compare€   sl   € Ý ˆØ,••U”[�NÐ,Ð, eÐ,Ð,¨VÑ4Ô4ˆØ ð 	9ð 	9ˆAØ×#Ò# F F¨1¡I¤I¨u¨u°Q©x¬xÑ8Ô8Ð8Ð8ð	9ð 	9r   c                 ó:   — |                       t          ¦  «         d S r
   )r[   Úno_pyobj_jit_opt©r<   s    r   Útest_chained_compare_npmz%TestDataFlow.test_chained_compare_npm†   s   € Ø×!Ò!Õ"2Ñ3Ô3Ð3Ð3Ð3r   c                 ó°   — t           } t          t          j        ffi |¤Ž|¦  «        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )N)r   r"   r(   r%   )r-   r   r   r9   r:   r;   s        r   Útest_stack_effect_errorz$TestDataFlow.test_stack_effect_error‰   sn   € õ $ˆØ,••U”[�NÐ,Ð, eÐ,Ð,¨VÑ4Ô4ˆØð 	9ð 	9ˆAØ×#Ò# F F¨1¡I¤I¨u¨u°Q©x¬xÑ8Ô8Ð8Ð8ð	9ð 	9r   c                 ó:   — |                       t          ¦  «         d S r
   )ra   r]   r^   s    r   Útest_stack_effect_error_npmz(TestDataFlow.test_stack_effect_error_npm‘   s   € Ø×$Ò$Õ%5Ñ6Ô6Ð6Ð6Ð6r   c                 óÐ   — t           } t          t          j        fdz  fi |¤Ž|¦  «        }t	          t          ddd¦  «        ¦  «        }|                       ||Ž  ||Ž ¦  «         d S )Nr   r   é
   r(   )r3   r   r   r9   Útupler*   r:   )r<   r=   r>   r?   rG   s        r   Útest_var_swappingzTestDataFlow.test_var_swapping”   sn   € ÝˆØ0••U”[�N QÑ&Ð0Ð0¨%Ð0Ð0°Ñ8Ô8ˆÝ•U˜1˜b !‘_”_Ñ%Ô%ˆØ×Ò  ¨ ¨u¨u°d¨|Ñ<Ô<Ð<Ð<Ð<r   c                 ó:   — |                       t          ¦  «         d S r
   )rg   r]   r^   s    r   Útest_var_swapping_npmz"TestDataFlow.test_var_swapping_npmš   s   € Ø×ÒÕ/Ñ0Ô0Ð0Ð0Ð0r   c                 óÐ   — t           } t          t          j        t          j        ffi |¤Ž|¦  «        }dD ]/\  }}|                       |||¦  «         |||¦  «        ¦  «         Œ0d S )N))rZ   r(   )rZ   é   )r0   r   r   rM   r:   )r<   r=   r>   r?   r/   r+   s         r   Útest_for_breakzTestDataFlow.test_for_break�   sy   € åˆØ6••U”Z¥¤Ð,Ð6Ð6°Ð6Ð6°vÑ>Ô>ˆØ&ð 	?ð 	?‰FˆQ�Ø×#Ò# F F¨1¨a¡L¤L°%°%¸¸1±+´+Ñ>Ô>Ð>Ð>ð	?ð 	?r   c                 ó:   — |                       t          ¦  «         d S r
   )rl   r]   r^   s    r   Útest_for_break_npmzTestDataFlow.test_for_break_npm¤   s   € Ø×ÒÕ,Ñ-Ô-Ð-Ð-Ð-r   N)Ú__name__Ú
__module__Ú__qualname__rB   r@   rC   rH   rO   rR   rV   rX   r[   r_   ra   rc   rg   ri   rl   rn   r   r   r   r5   r5   J   s3  € € € € € à%8ð 9ð 9ð 9ð 9ð ':ð ð ð ð ðBð Bð Bð/ð /ð /ð
/ð /ð /ð
0ð 0ð 0ð
1ð 
1ð 
1ð *=ð 9ð 9ð 9ð 9ð4ð 4ð 4ð -@ð 9ð 9ð 9ð 9ð7ð 7ð 7ð ':ð =ð =ð =ð =ð1ð 1ð 1ð $7ð ?ð ?ð ?ð ?ð.ð .ð .ð .ð .r   r5   Ú__main__)ÚunittestÚnumbar   r   Ú
numba.corer   Únumba.tests.supportr   rB   r]   r   r   r   r   r    r#   r&   r-   r0   r3   r5   ro   Úmainr   r   r   ú<module>rx      sQ  ðØ €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (ð " 4Ð(Ð Ø Ð%Ð ðð ð ð
ð ð ðð ð ð
ð ð ð
ð ð ð
ð ð ðð ð ð
ð ð ðð ð ðð ð ð[.ð [.ð [.ð [.ð [.�8ñ [.ô [.ð [.ð| ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   