
    J/Ph_                         d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
mZ  G d dee
          Zedk    r ej                     dS dS )	z<
Tests issues or edge cases for producing invalid NRT refct
    N)njit)rtsys)TestCaseEnableNRTStatsMixinc                   6     e Zd Z fdZd Zd Zd Zd Z xZS )TestNrtRefCtc                 |    t          j                     t          t          |                                            d S )N)gccollectsuperr   setUp)self	__class__s    Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_nrt_refct.pyr   zTestNrtRefCt.setUp   s0    

lD!!'')))))    c                    t           d             }d}t          j                    } ||           t          j                    }|                     |j        |j        z
  |           |                     |j        |j        z
  |           dS )z"
        Test issue #1291
        c                 R    t          |           D ]}t          j        d          }dS N   r   )rangenpzeros)nitemps      r   fooz(TestNrtRefCt.test_no_return.<locals>.foo   s+    1XX # #x{{1r   
   Nr   r   get_allocation_statsassertEqualallocfree)r   r   r   
init_stats	cur_statss        r   test_no_returnzTestNrtRefCt.test_no_return   s    
 
	 	 
	
 /11
A.00	:+;;Q???*/91=====r   c                    t           d             }t          j                    } |d           t          j                    }|                     |j        |j        z
  d           |                     |j        |j        z
  d           dS )z"
        Test issue #1297
        c                     t          j        | df          }t          |           D ]
}||         }t          |           D ]
}||         }dS r   )r   r   r   )r   xr   ys       r   gz6TestNrtRefCt.test_escaping_var_init_in_loop.<locals>.g.   s\     !Q  A1XX  aD1XX  aD1r   r      Nr   )r   r*   r#   r$   s       r   test_escaping_var_init_in_loopz+TestNrtRefCt.test_escaping_var_init_in_loop)   s    
 

	 
	 

	 /11
	".00	:+;;Q???*/91=====r   c                 (   t           d             }t          j                            d          }t          j                    } ||d           t          j                    }|                     |j        |j        z
  |j        |j        z
             dS )z"
        Test issue #1573
        c                     t          j        |           }t          |j        d                   D ]}|rt          j        |            |S )Nr   )r   
zeros_liker   shape)arr1test1tmp_arrr   s       r   %if_with_allocation_and_initializationz`TestNrtRefCt.test_invalid_computation_of_lifetime.<locals>.if_with_allocation_and_initializationE   sO    mD))G7=+,,   $d###Nr   )   r5   FN)r   r   randomr   r   r    r!   r"   )r   r4   arrr#   r$   s        r   $test_invalid_computation_of_lifetimez1TestNrtRefCt.test_invalid_computation_of_lifetimeA   s     
		 		 
		 iv&&/11
--c5999.00	:+;;"*/9	; 	; 	; 	; 	;r   c                    t           d             }t          j        d          }t          j                    } ||           t          j                    }|                     |j        |j        z
  |j        |j        z
             dS )z"
        Test issue #1734
        c                 R    d}dD ]!}| |         }||         dk    r|||         z  }"|S )Nr   )r   r+   r+    )r7   resr   ts       r   fz5TestNrtRefCt.test_del_at_beginning_of_loop.<locals>.f]   sA    C     FQ4!881Q4KCJr   )r   r   N)r   r   onesr   r   r    r!   r"   )r   r>   r7   r#   r$   s        r   test_del_at_beginning_of_loopz*TestNrtRefCt.test_del_at_beginning_of_loopY   s     

	 
	 

	 gfoo/11
	#.00	:+;;"*/9	; 	; 	; 	; 	;r   )	__name__
__module____qualname__r   r%   r,   r8   r@   __classcell__)r   s   @r   r   r      st        * * * * *
> > >$> > >0; ; ;0; ; ; ; ; ; ;r   r   __main__)__doc__r
   numpyr   unittestnumbar   numba.core.runtimer   numba.tests.supportr   r   r   rA   mainr;   r   r   <module>rM      s    
 
			            $ $ $ $ $ $ = = = = = = = =_; _; _; _; _;& _; _; _;D zHMOOOOO r   