
    xKg                         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,                          yy)    N)jitnjit)types)TestCaseforceobjTnopythonc                 &    t        |       x}}||z   S Nstrabcs      ]/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_dataflow.pyassignmentsr      s    FNAq5L    c                 0    t        |       x}x}}||z   |z   S r
   r   )r   r   r   ds       r   assignments2r      s#    AAAq519r   c                     | |kD  r| n|dz   }|S N    r   s      r   var_propagate1r      s    !eaAHr   c                 *    d| |kD  r| n|dz   dz  z   }|S )Nr      g       @r   r   s      r   var_propagate2r      s"    	!a%QQVs**AHr   c                 &    d| |kD  xr | xs |z   }|S r   r   r   s      r   var_propagate3r    !   s    	QU[qAAHr   c                 @    d| dz
  xr |dz   z   xs | dz   xr |dz
  }|S )Nr      r   r   s      r   var_propagate4r#   &   s.    	QU_q1u2!a%/AEAHr   c                 "    d| cxk  xr dk  S c S )Nr"      r   )r   s    r   chained_comparer&   ,   s    q9199r   c                 B    d}d}|| k(  rt        d      D ]  }|} ||z   S )N   r"   r%   range)xir   s      r   stack_effect_errorr-   1   s/    	A	AAvqAA q5Lr   c                 F    t        |       D ]  }d} ||k(  s || fS  } || fS )Nr   r)   )nr+   r,   s      r   	for_breakr0   :   s:    1X6 a4K 
 a4Kr   c                 H    || }} |||}}}|||| f\  } }}}| |z   |z   |z   |z   S r
   r   )r   r   r   r   es        r   var_swappingr3   D   sD    aqAA!qAAq!JAq!Qq519q=!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y)TestDataFlowc                     t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " y )Nr   r"   )r   r   r   int32assertPreciseEqualselfflagspyfunccfuncr+   s        r   test_assignmentszTestDataFlow.test_assignmentsL   sE    ,U[[N,e,V4A##F1IuQx8 r   c                     t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " |t
        u r	 |d       y y )Nr7   r   )r   r   r   r9   r:   force_pyobj_jit_optr;   s        r   test_assignments2zTestDataFlow.test_assignments2R   s\    ,U[[N,e,V4A##F1IuQx8  ''#J (r   c                 H    | j                   ||  |j                  |        y r
   )r:   py_func)r<   funcargss      r   run_propagate_funczTestDataFlow.run_propagate_func^   s!    d\T\\4-@Ar   c                      t        t        j                  t        j                  f      t              }| j	                  |d       | j	                  |d       y Nr(   r%   r%   r(   )r   r   intpr   rH   r<   r?   s     r   test_var_propagate1z TestDataFlow.test_var_propagate1a   @    .ejj%**-.~>v.v.r   c                      t        t        j                  t        j                  f      t              }| j	                  |d       | j	                  |d       y rJ   )r   r   rM   r   rH   rN   s     r   test_var_propagate2z TestDataFlow.test_var_propagate2f   rP   r   c                 B    t        t        j                  t        j                  f      t              }| j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d       y )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    .ejj%**-.~>v.v.v.w/v.w/r   c                     t        t        j                  t        j                  f      t              }| j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d       | j	                  |d	       y )
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    .ejj%**-.~>v.v.w/v.v.w/w/w/x0r   c                     t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " y )N)r   r"   r(   r%      )r&   r   r   r9   r:   r;   s        r   test_chained_comparez!TestDataFlow.test_chained_compare   sE     ,U[[N,e,V4 A##F1IuQx8 !r   c                 .    | j                  t               y r
   )r[   no_pyobj_jit_optr<   s    r   test_chained_compare_npmz%TestDataFlow.test_chained_compare_npm   s    !!"23r   c                     t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " y )N)r   r"   r(   r%   )r-   r   r   r9   r:   r;   s        r   test_stack_effect_errorz$TestDataFlow.test_stack_effect_error   sG     $,U[[N,e,V4A##F1IuQx8 r   c                 .    | j                  t               y r
   )ra   r]   r^   s    r   test_stack_effect_error_npmz(TestDataFlow.test_stack_effect_error_npm   s    $$%56r   c                     t         } t        t        j                  fdz  fi ||      }t	        t        ddd            }| j                   ||  ||        y )Nr   r   
   r(   )r3   r   r   r9   tupler*   r:   )r<   r=   r>   r?   rG   s        r   test_var_swappingzTestDataFlow.test_var_swapping   sR    0U[[NQ&0%08U1b!_%ud|<r   c                 .    | j                  t               y r
   )rg   r]   r^   s    r   test_var_swapping_npmz"TestDataFlow.test_var_swapping_npm   s    /0r   c                     t         } t        t        j                  t        j                  ffi ||      }dD ]%  \  }}| j	                   |||       |||             ' y )N))rZ   r(   )rZ      )r0   r   r   rM   r:   )r<   r=   r>   r?   r/   r+   s         r   test_for_breakzTestDataFlow.test_for_break   sT    6UZZ,66v>&FQ##F1aL%1+> 'r   c                 .    | j                  t               y 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   sk    %8 9 ': B/
/
0
1 *= 94 -@ 97 ': =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      s       ( "4( % 




[.8 [.| zHMMO r   