o
    i                     @   s   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d Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZG dd de	Zedkrie  dS dS )    N)compile_isolatedFlags)typeserrors)TestCaseCompilationCacheTc                 C   s   t |  }}|| S Nstrabc r   h/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/test_dataflow.pyassignments   s   r   c                 C   s   t |  } }}|| | S r   r	   )r   r   r   dr   r   r   assignments2   s   r   c                 C   s   | |kr| n|d }|S N   r   r   r   r   r   var_propagate1      r   c                 C   s    d| |kr| n|d d  }|S )Nr      g       @r   r   r   r   r   var_propagate2#   s   r   c                 C   s   d| |kr| p| }|S r   r   r   r   r   r   var_propagate3(   r   r   c                 C   s(   d| d o|d  p| d o|d }|S )Nr      r   r   r   r   r   var_propagate4-   s   $r   c                 C   s   d|   k o	dk S   S )Nr      r   )r   r   r   r   chained_compare3   s   r   c                 C   s*   d}d}|| krt dD ]}|}q|| S )N   r   r   range)xir   r   r   r   stack_effect_error8   s   r$   c                 C   s0   t | D ]}d} ||kr || fS q|} || fS )Nr   r    )nr"   r#   r   r   r   	for_breakA   s   r&   c                 C   sB   || } }|||}}}|||| f\} }}}| | | | | S r   r   )r   r   r   r   er   r   r   var_swappingK   s   
r(   c                   @   s   e Zd Zdd ZefddZefddZdd Zd	d
 Zdd Z	dd Z
dd ZefddZdd ZefddZdd ZefddZdd ZefddZdd  Zd!S )"TestDataFlowc                 C   s   t  | _d S r   )r   cacheselfr   r   r   setUpS   s   zTestDataFlow.setUpc                 C   >   t }t|tjf|d}|j}dD ]}| |||| qd S )Nflagsr   r   )r   r   r   int32entry_pointassertPreciseEqualr,   r0   pyfunccrcfuncr"   r   r   r   test_assignmentsV      zTestDataFlow.test_assignmentsc                 C   sR   t }t|tjf|d}|j}dD ]}| |||| q|tu r'|d d S d S )Nr/   r1   r   )r   r   r   r3   r4   r5   force_pyobj_flagsr6   r   r   r   test_assignments2]   s   zTestDataFlow.test_assignments2c                 C   s8   | j j|tjtjftd}|j}| || ||  d S )Nr/   )r*   compiler   r3   no_pyobj_flagsr4   r5   )r,   r7   argsr8   r9   r   r   r   run_propagate_funcj   s
   zTestDataFlow.run_propagate_funcc                 C      |  td |  td d S Nr   r   r   r   )rA   r   r+   r   r   r   test_var_propagate1p      z TestDataFlow.test_var_propagate1c                 C   rB   rC   )rA   r   r+   r   r   r   test_var_propagate2t   rG   z TestDataFlow.test_var_propagate2c                 C   sL   |  td |  td |  td |  td |  td |  td d S )NrD   rE   )r   r   r2   r   )r   r   r   r2   )rA   r   r+   r   r   r   test_var_propagate3x   s   z TestDataFlow.test_var_propagate3c                 C   sp   |  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   r2   )r   r   )r   r   rJ   )r2   r   rI   )r2   r2   )rA   r   r+   r   r   r   test_var_propagate4   s   z TestDataFlow.test_var_propagate4c                 C   r.   )Nr/   )r   r   r   r      )r   r   r   r3   r4   r5   r6   r   r   r   test_chained_compare   r;   z!TestDataFlow.test_chained_comparec                 C      |  t d S r   )rN   r?   r+   r   r   r   test_chained_compare_npm      z%TestDataFlow.test_chained_compare_npmc                 C   r.   )Nr/   )r   r   r   r   )r$   r   r   r3   r4   r5   r6   r   r   r   test_stack_effect_error   s   z$TestDataFlow.test_stack_effect_errorc                 C   rO   r   )rR   r?   r+   r   r   r   test_stack_effect_error_npm   rQ   z(TestDataFlow.test_stack_effect_error_npmc                 C   sH   t }t|tjfd |d}|j}ttddd}| || ||  d S )Nr   r/   r   
   r   )r(   r   r   r3   r4   tupler!   r5   )r,   r0   r7   r8   r9   r@   r   r   r   test_var_swapping   s
   zTestDataFlow.test_var_swappingc                 C   rO   r   )rV   r?   r+   r   r   r   test_var_swapping_npm   rQ   z"TestDataFlow.test_var_swapping_npmc                 C   sJ   t }t|tjtjf|d}|j}dD ]\}}| |||||| qd S )Nr/   ))rM   r   )rM      )r&   r   r   Zintpr4   r5   )r,   r0   r7   r8   r9   r%   r"   r   r   r   test_for_break   s   zTestDataFlow.test_for_breakc                 C   rO   r   )rY   r?   r+   r   r   r   test_for_break_npm   rQ   zTestDataFlow.test_for_break_npmN)__name__
__module____qualname__r-   r<   r:   r=   rA   rF   rH   rK   rL   rN   rP   rR   rS   rV   rW   rY   rZ   r   r   r   r   r)   Q   s"    	r)   __main__)warningsZunittestZnumba.core.compilerr   r   Z
numba.corer   r   Znumba.tests.supportr   r   Zenable_pyobj_flagsZenable_pyobjectr<   Zforce_pyobjectr?   r   r   r   r   r   r   r   r$   r&   r(   r)   r[   mainr   r   r   r   <module>   s0    	
f