§
    ƒÛg  ã                   ó$  — d dl Z d dlZd dlmZmZ d dlmZmZ d dlm	Z	m
Z
  e¦   «         Zde_         e¦   «         Zde_         e¦   «         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)Úcompile_isolatedÚFlags)ÚtypesÚerrors)ÚTestCaseÚCompilationCacheTc                 ó.   — t          | ¦  «        x}}||z   S ©N©Ústr©ÚaÚbÚcs      úO/granary/edev/quantum/lib/python3.11/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&   3   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-   8   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   A   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   K   sD   € Øˆa€q€AØ��Aˆ!€q€AØ�A�q˜!��J€A€qˆ!ˆQØˆq‰5�1‰9�q‰=˜!ÑÐr   c                   ó†   — e Zd 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          ¦   «         | _        d S r
   )r   Úcache©Úselfs    r   ÚsetUpzTestDataFlow.setUpS   s   € Ý%Ñ'Ô'ˆŒ
ˆ
ˆ
r   c                 ó¶   — t           }t          |t          j        f|¬¦  «        }|j        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )N©Úflags©éÿÿÿÿr   r"   )r   r   r   Úint32Úentry_pointÚassertPreciseEqual©r9   r=   ÚpyfuncÚcrÚcfuncr+   s         r   Útest_assignmentszTestDataFlow.test_assignmentsV   sh   € ÝˆÝ˜f¥u¤{ n¸EÐBÑBÔBˆØ”ˆØð 	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|¬¦  «        }|j        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+|t          u r |d¦  «         d S d S )Nr<   r>   r   )r   r   r   r@   rA   rB   Úforce_pyobj_flagsrC   s         r   Útest_assignments2zTestDataFlow.test_assignments2]   sƒ   € ÝˆÝ˜f¥u¤{ n¸EÐBÑBÔBˆØ”ˆØð 	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                 ó¼   — | j                              |t          j        t          j        ft          ¬¦  «        }|j        }|                       ||Ž  ||Ž ¦  «         d S )Nr<   )r7   Úcompiler   r@   Úno_pyobj_flagsrA   rB   )r9   rD   ÚargsrE   rF   s        r   Úrun_propagate_funczTestDataFlow.run_propagate_funcj   s]   € ØŒZ×Ò ­¬µe´kÐ(BÝ&4ð  ñ 6ô 6ˆà”ˆØ×Ò   t ¨f¨f°d¨mÑ<Ô<Ð<Ð<Ð<r   c                 ór   — |                       t          d¦  «         |                       t          d¦  «         d S ©N©r(   r%   ©r%   r(   )rO   r   r8   s    r   Útest_var_propagate1z TestDataFlow.test_var_propagate1p   ó4   € Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ7Ô7Ð7Ð7Ð7r   c                 ór   — |                       t          d¦  «         |                       t          d¦  «         d S rQ   )rO   r   r8   s    r   Útest_var_propagate2z TestDataFlow.test_var_propagate2t   rU   r   c                 óJ  — |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         d S )NrR   rS   )r(   r   ©r?   r   )r   r(   ©r   r?   )rO   r    r8   s    r   Útest_var_propagate3z TestDataFlow.test_var_propagate3x   sŒ   € Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ8Ô8Ð8Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ8Ô8Ð8Ð8Ð8r   c                 óì  — |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d¦  «         |                       t          d	¦  «         d S )
N)r"   r"   )r"   r   )r"   r?   )r   r"   )r   r   rZ   )r?   r"   rY   )r?   r?   )rO   r#   r8   s    r   Útest_var_propagate4z TestDataFlow.test_var_propagate4€   sÎ   € Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ8Ô8Ð8Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ7Ô7Ð7Ø×Ò¥°Ñ8Ô8Ð8Ø×Ò¥°Ñ8Ô8Ð8Ø×Ò¥°Ñ8Ô8Ð8Ø×Ò¥°Ñ9Ô9Ð9Ð9Ð9r   c                 ó¶   — t           }t          |t          j        f|¬¦  «        }|j        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )Nr<   )r   r"   r(   r%   é   )r&   r   r   r@   rA   rB   rC   s         r   Útest_chained_comparez!TestDataFlow.test_chained_compare‹   sh   € Ý ˆÝ˜f¥u¤{ n¸EÐBÑBÔBˆØ”ˆØ ð 	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`   rM   r8   s    r   Útest_chained_compare_npmz%TestDataFlow.test_chained_compare_npm’   s   € Ø×!Ò!¥.Ñ1Ô1Ð1Ð1Ð1r   c                 ó¶   — t           }t          |t          j        f|¬¦  «        }|j        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )Nr<   )r   r"   r(   r%   )r-   r   r   r@   rA   rB   rC   s         r   Útest_stack_effect_errorz$TestDataFlow.test_stack_effect_error•   sj   € õ $ˆÝ˜f¥u¤{ n¸EÐBÑBÔBˆØ”ˆØð 	9ð 	9ˆAØ×#Ò# F F¨1¡I¤I¨u¨u°Q©x¬xÑ8Ô8Ð8Ð8ð	9ð 	9r   c                 ó:   — |                       t          ¦  «         d S r
   )rd   rM   r8   s    r   Útest_stack_effect_error_npmz(TestDataFlow.test_stack_effect_error_npmž   s   € Ø×$Ò$¥^Ñ4Ô4Ð4Ð4Ð4r   c                 óÖ   — t           }t          |t          j        fdz  |¬¦  «        }|j        }t          t          ddd¦  «        ¦  «        }|                       ||Ž  ||Ž ¦  «         d S )Nr   r<   r   é
   r(   )r3   r   r   r@   rA   Útupler*   rB   )r9   r=   rD   rE   rF   rN   s         r   Útest_var_swappingzTestDataFlow.test_var_swapping¡   sj   € ÝˆÝ˜f¥u¤{ n°qÑ&8ÀÐFÑFÔFˆØ”ˆÝ•U˜1˜b !‘_”_Ñ%Ô%ˆØ×Ò  ¨ ¨u¨u°d¨|Ñ<Ô<Ð<Ð<Ð<r   c                 ó:   — |                       t          ¦  «         d S r
   )rj   rM   r8   s    r   Útest_var_swapping_npmz"TestDataFlow.test_var_swapping_npm¨   s   € Ø×Ò�~Ñ.Ô.Ð.Ð.Ð.r   c                 óÖ   — t           }t          |t          j        t          j        f|¬¦  «        }|j        }dD ]/\  }}|                       |||¦  «         |||¦  «        ¦  «         Œ0d S )Nr<   ))r_   r(   )r_   é   )r0   r   r   ÚintprA   rB   )r9   r=   rD   rE   rF   r/   r+   s          r   Útest_for_breakzTestDataFlow.test_for_break«   su   € åˆÝ˜f¥u¤zµ5´:Ð&>ÀeÐLÑLÔLˆØ”ˆØ&ð 	?ð 	?‰FˆQ�Ø×#Ò# F F¨1¨a¡L¤L°%°%¸¸1±+´+Ñ>Ô>Ð>Ð>ð	?ð 	?r   c                 ó:   — |                       t          ¦  «         d S r
   )rp   rM   r8   s    r   Útest_for_break_npmzTestDataFlow.test_for_break_npm³   s   € Ø×Ò�NÑ+Ô+Ð+Ð+Ð+r   N)Ú__name__Ú
__module__Ú__qualname__r:   rI   rG   rJ   rO   rT   rW   r[   r]   r`   rb   rd   rf   rj   rl   rp   rr   r   r   r   r5   r5   Q   s@  € € € € € ð(ð (ð (ð &7ð 9ð 9ð 9ð 9ð '8ð ð ð ð ð=ð =ð =ð8ð 8ð 8ð8ð 8ð 8ð9ð 9ð 9ð	:ð 	:ð 	:ð *;ð 9ð 9ð 9ð 9ð2ð 2ð 2ð ->ð 9ð 9ð 9ð 9ð5ð 5ð 5ð '8ð =ð =ð =ð =ð/ð /ð /ð $5ð ?ð ?ð ?ð ?ð,ð ,ð ,ð ,ð ,r   r5   Ú__main__)ÚwarningsÚunittestÚnumba.core.compilerr   r   Ú
numba.corer   r   Únumba.tests.supportr   r   Úenable_pyobj_flagsÚenable_pyobjectrI   Úforce_pyobjectrM   r   r   r   r   r    r#   r&   r-   r0   r3   r5   rs   Úmainr   r   r   ú<module>r€      s…  ðØ €€€à €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ð �U‘W”WÐ Ø%)Ð Ô "à�E‘G”GÐ Ø#'Ð Ô  à�‘”€ðð ð ð
ð ð ðð ð ð
ð ð ð
ð ð ð
ð ð ðð ð ð
ð ð ðð ð ðð ð ðc,ð c,ð c,ð c,ð c,�8ñ c,ô c,ð c,ðL ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   