o
    i                     @   s<   d dl Z d dlmZ G dd deZedkre   dS dS )    N)TestCasec                   @   s   e Zd Zdd Zdd ZdS )DocsJitclassUsageTestc                    s   dd l  ddlm}m} ddlm} d|fd|d d  fg}||G  fdddt}d}||}| t|| | 	|j
|  j|j j| jd	 | 	|j|  j|d
d
 j| jd	   j|dd j| jd	  | 	|ddd | 	|ddd
 d S )Nr   )int32float32jitclassvaluearrayc                       s8   e Zd Z fddZedd Zdd Zedd Zd	S )
z3DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bagc                    s   || _  j| jd| _d S )Ndtype)r   zerosr   r	   )selfr   np d/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/numba/tests/doc_examples/test_jitclass.py__init__   s   z<DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.__init__c                 S   s   | j jS N)r	   sizer   r   r   r   r         z8DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.sizec                 S   s(   t | jD ]}| j|  |7  < q| jS r   )ranger   r	   )r   valir   r   r   	increment   s   z=DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.incrementc                 S   s   | | S r   r   )xyr   r   r   add$   r   z7DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.addN)	__name__
__module____qualname__r   propertyr   r   staticmethodr   r   r   r   r   Bag   s    
r#      r
         	         )numpynumbar   r   numba.experimentalr   object
assertTrue
isinstanceassertPreciseEqualr   testingassert_allcloser	   r   r   r   onesr   )r   r   r   r   specr#   nmybagr   r   r   test_ex_jitclass
   s,   z&DocsJitclassUsageTest.test_ex_jitclassc                    s   ddl m ddlm} ddlm} |G dd d |G  fddd}|g d}||}td	D ]"}| |jj| | 	|
 ||t|   | |jj|d
  q5d S )Nr   )Listr   c                   @   s,   e Zd ZU eed< dd ZdefddZdS )zBDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counterr   c                 S   s
   d| _ d S )Nr   r   r   r   r   r   r   A   s   
zKDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counter.__init__returnc                 S   s   | j }|  j d7  _ |S )Nr(   r9   )r   retr   r   r   getD   s   zFDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counter.getN)r   r   r    int__annotations__r   r<   r   r   r   r   Counter=   s   
 r?   c                       sF   e Zd ZU  ed< e ed< de f fddZdefddZdS )	zKDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIteratorcounteritemsc                    s   || _   | _d S r   )rA   r@   )r   rA   )r?   r   r   r   N   s   zTDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIterator.__init__r:   c                 S   s   | j  t| j }| j| S r   )r@   r<   lenrA   )r   idxr   r   r   r<   R   s   
zODocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIterator.getN)r   r   r    r>   floatr   r<   r   r?   r8   r   r   ListLoopIteratorI   s
   
 rF   )gQ	@gX9v@grh|?g      
   r(   )typingr8   r,   r   numba.typedr   assertEqualr@   r   assertAlmostEqualr<   rB   )r   r   	NumbaListrF   rA   loop_itrrC   r   rE   r   test_ex_jitclass_type_hints7   s   z1DocsJitclassUsageTest.test_ex_jitclass_type_hintsN)r   r   r    r7   rN   r   r   r   r   r      s    -r   __main__)unittestnumba.tests.supportr   r   r   mainr   r   r   r   <module>   s   X