
    J/Ph                         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      Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_dataflow.pyassignmentsr      s    FFNAq5L    c                 8    t          |           x}x}}||z   |z   S r
   r   )r   r   r   ds       r   assignments2r      s%    AAAq519r   c                      | |k    r| n|dz   }|S N    r   s      r   var_propagate1r      s    !eeaAHr   c                 ,    d| |k    r| n|dz   dz  z   }|S )Nr      g       @r   r   s      r   var_propagate2r      s&    	!a%%QQQVs**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_q1u2!a%/AEAHr   c                 "    d| cxk     odk     nc S )Nr"      r   )r   s    r   chained_comparer&   ,   s    q999919999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Avvq 	 	AAAq5Lr   c                 F    t          |           D ]}d} ||k    r n|} || fS )Nr   r)   )nr+   r,   s      r   	for_breakr0   :   s?    1XX  66E  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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 	9A##FF1IIuuQxx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 	9A##FF1IIuuQxx8888'''E#JJJJJ ('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    .ej%*-..~>>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    .ej%*-..~>>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    .ej%*-..~>>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 	9A##FF1IIuuQxx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 	9A##FF1IIuuQxx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[NQ&00%0088U1b!__%%uud|<<<<<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UZ,6666v>>& 	? 	?FQ##FF1aLL%%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HMOOOOO r   