
    ܙd                         d dl Z 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 d dlmZmZ  e            Zde_         e            Zde_         G d de          Zed	k    r ej                     dS dS )
    N)compile_isolatedFlags)typesutils)usecases)TestCasetagTc                   b    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )TestUsecasesc                     t           j        }t          |t          j        t          j        f          }|j        }d}d}t          j        ||          D ]"}|                      ||  || d|           #d S )N)r      	   
      zargs )	r   andorr   r   int32entry_point	itertoolsproductassertEqual)selfpyfunccrcfuncxsysargss          9lib/python3.11/site-packages/numba/tests/test_usecases.py
test_andorzTestUsecases.test_andor   s    fu{EK&@AA ! %b"-- 	O 	ODVVT]EE4LLtt:MNNNN	O 	O    c                     t           j        }t          |t          j        t          j        f          }|j        }d}d}t          j        ||          D ]}|                      ||  || |            d S Nr   r   r   d      )	r   sum1dr   r   r   r   r   r   r   r   r   r   r   ssesr   s          r   
test_sum1dzTestUsecases.test_sum1d       fu{EK&@AA%b"-- 	@ 	@DVVT]EE4L$????	@ 	@r!   c                    t           j        t          t          j        t          j        ft
                    }|j        d}d}t          j        ||          D ]| 	                                    dfd}fd}t          t          j        |d                     t          t          j        |d                     d S )Nflagsr$   )r   i  c                          d S N )r   r   s   r   	bm_pythonz0TestUsecases.test_sum1d_pyobj.<locals>.bm_python8   s    FDMMMMr!   c                          d S r1   r2   )r   r   s   r   bm_numbaz/TestUsecases.test_sum1d_pyobj.<locals>.bm_numba;   s    E4LLLLr!   g?)maxsec)r   r'   r   r   r   force_pyobj_flagsr   r   r   r   printr   	benchmark)	r   r   r)   r*   r3   r5   r   r   r   s	         @@@r   test_sum1d_pyobjzTestUsecases.test_sum1d_pyobj*   s	   fu{EK&@$57 7 7%b"-- 	@ 	@DVVT]EE4L$????	 	 	 	 	 		 	 	 	 	 	 	eoi333444eohr22233333r!   c                     t           j        }t          |t          j        t          j        f          }|j        }d}d}t          j        ||          D ]}|                      ||  || |            d S r#   )	r   sum2dr   r   r   r   r   r   r   r(   s          r   
test_sum2dzTestUsecases.test_sum2dA   r,   r!   c                     t           j        }t          |t          j        t          j        f          }|j        }d}d}t          j        ||          D ]}|                      ||  || |            d S r#   )	r   while_countr   r   r   r   r   r   r   r(   s          r   test_while_countzTestUsecases.test_while_countL   s    %fu{EK&@AA%b"-- 	@ 	@DVVT]EE4L$????	@ 	@r!   c                 N   t           j        }t          j        t          j        dd          }t          |||f          }|j        }d}|D ]Z}t          j        |d          }t          j	        |          }||f}	 ||	  | 
                    ||t          |	                     [d S )Nr   A)r   r   r   r%   r   dtypemsg)r   copy_arraysr   Arrayr   r   r   nparange
empty_likeassertPreciseEqualstr)
r   r   	arraytyper   r   ndandabr   s
             r   test_copy_arrayszTestUsecases.test_copy_arraysW   s    %KQ44	fy)&<== 	9 	9B	"G,,,Aa  Aa4DE4LL##Aqc$ii#8888	9 	9r!   c                    t           j        }t          j        t          j        dd          }t          |||f          }|j        }d}|D ]v}|\  }}t          j        ||z  d          	                    ||          }	t          j
        |	          }
|	|
f} ||  |                     |	|
t          |                     wd S )N   rB   ))r   r   )r   r   )rU      )      r   rC   rE   )r   copy_arrays2dr   rH   r   r   r   rI   rJ   reshaperK   rL   rM   )r   r   rN   r   r   rO   rP   d1d2rQ   rR   r   s               r   test_copy_arrays2dzTestUsecases.test_copy_arrays2dg   s    'KQ44	fy)&<==- 	9 	9BFB	"r'11199"bAAAa  Aa4DE4LL##Aqc$ii#8888	9 	9r!   c                     t          |t          j        t          j        f          }|j        }d}d}t	          j        ||          D ]&\  }}||f}|                      ||  || |           'd S )Nr   r   r   )r   r   r   r   r   r   r   	r   r   r   r   r   r   xyr   s	            r   
run_ifelsezTestUsecases.run_ifelsex   s    fu{EK&@AA%b"-- 	@ 	@DAqa4DVVT]EE4L$????	@ 	@r!   c                    t           j        }t          |t          j        t          j        ft
                    }|j        }d}d}t          j        ||          D ]&\  }}||f}| 	                     ||  || |           'd S )Nr.   r_   )
r   string_concatr   r   r   enable_pyobj_flagsr   r   r   r   r`   s	            r   test_string_concatzTestUsecases.test_string_concat   s    'fu{EK&@$68 8 8%b"-- 	@ 	@DAqa4DVVT]EE4L$????	@ 	@r!   c                 l   t           j        }t          |t          j        ft
                    }|j        }d}|                      ||           ||                     d}|                      ||           ||                     d}|                      ||           ||                     d S )Nr.   1234561 )r   
string_lenr   r   pyobjectrf   r   r   r   r   r   r   test_strs        r   test_string_lenzTestUsecases.test_string_len   s    $fu~&7$68 8 8))55??;;;))55??;;;))55??;;;;;r!   c                    t           j        }t          |t          j        fdz  t
                    }|j        }d}|                      ||dd           ||dd                     |                      ||dd           ||dd                     |                      ||dd           ||dd                     d S )N   r.   ri   r   r   rV   rU   )r   string_slicingr   r   rm   rf   r   r   rn   s        r   test_string_slicingz TestUsecases.test_string_slicing   s    (fu~&7!&;$68 8 8!Q//xA1F1FGGG!Q//xA1F1FGGG!Q//xA1F1FGGGGGr!   c                 b   t           j        }t          |t          j        ft
                    }|j        }|                      |d           |d                     t          |t          j        ft
                    }|j        }|                      |d           |d                     d S )Nr.   r   g?)	r   string_conversionr   r   r   rf   r   r   float32)r   r   r   r   s       r   test_string_conversionz#TestUsecases.test_string_conversion   s    +fu{n$68 8 8EE!HH---fu}&6$68 8 8eeCjj11111r!   c                 \   dd l }t          j        }t          |t          j        t          j        t          j        ft                    }|j        }d}d}|j        }| 	                     ||||           ||||                     d}d}|j        }| 	                     ||||           ||||                     d}d}|j
        }| 	                     ||||           ||||                     d}d}|j
        }| 	                     ||||           ||||                     d S )Nr   r.   123456)operatorr   string_comparisonr   r   rm   rf   r   eqr   ne)r   r|   r   r   r   	test_str1	test_str2ops           r   test_string_comparisonsz$TestUsecases.test_string_comparisons   sz   +fu~u~u~&V$68 8 8		[	9b99E)Y++	- 	- 	- 		[	9b99E)Y++	- 	- 	- 		[	9b99E)Y++	- 	- 	- 		[	9b99E)Y++	- 	- 	- 	- 	-r!   c                     t           j        }t          |t          j        f          }|j        }d}|D ]"}|f}|                      ||  || |           #d S )N)g      r   g      ?)r   blackscholes_cndr   r   rw   r   r   )r   r   r   r   dsdr   s          r   test_blackscholes_cndz"TestUsecases.test_blackscholes_cnd   su    *fu}&677 	@ 	@A4DVVT]EE4L$????	@ 	@r!   N)__name__
__module____qualname__r    r+   r:   r=   r@   rS   r]   rc   rg   rp   rt   rx   r   r   r2   r!   r   r   r      s        
O 
O 
O	@ 	@ 	@4 4 4.	@ 	@ 	@	@ 	@ 	@9 9 9 9 9 9"	@ 	@ 	@@ @ @< < <	H 	H 	H2 2 2- - ->	@ 	@ 	@ 	@ 	@r!   r   __main__)r   numpyrI   unittestnumba.core.compilerr   r   
numba.corer   r   numba.testsr   numba.tests.supportr   r	   rf   enable_pyobjectr7   force_pyobjectr   r   mainr2   r!   r   <module>r      s            7 7 7 7 7 7 7 7 # # # # # # # #             - - - - - - - -UWW %)  "EGG #'   L@ L@ L@ L@ L@8 L@ L@ L@^ zHMOOOOO r!   