U
    9%e                     @   s8   d dl Z d dlmZ G dd deZedkr4e   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Zdtype)r   zerosr   r	   )selfr   np e/var/www/html/Darija-Ai-API/env/lib/python3.8/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      s    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$   s    z7DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.addN)	__name__
__module____qualname__r   propertyr   r   staticmethodr   r   r   r   r   Bag   s   
r!      r
         	         )numpyZnumbar   r   numba.experimentalr   object
assertTrue
isinstanceZassertPreciseEqualr   testingZassert_allcloser	   r   r   r   Zonesr   )r   r   r   r   specr!   nZ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}|dd	d
dg}||}tdD ]D}| |jj| | 	|
 ||t|   | |jj|d  qnd S )Nr   )Listr   c                   @   s,   e Zd ZU eed< dd Zed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&   r2   )r   retr   r   r   getD   s    zFDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counter.getN)r   r   r   int__annotations__r   r6   r   r   r   r   Counter=   s   
r9   c                       sF   e Zd ZU  ed< e ed< e d fddZedddZd	S )
zKDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIteratorcounteritems)r;   c                    s   || _   | _d S r   )r;   r:   )r   r;   )r9   r   r   r   N   s    zTDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIterator.__init__r3   c                 S   s   | j  t| j }| j| S r   )r:   r6   lenr;   )r   idxr   r   r   r6   R   s    zODocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIterator.getN)r   r   r   r8   floatr   r6   r   r9   r1   r   r   ListLoopIteratorI   s   
r@   gQ	@gX9v@grh|?g      
   r&   )typingr1   r)   r   Znumba.typedr   assertEqualr:   r   ZassertAlmostEqualr6   r<   )r   r   Z	NumbaListr@   r;   Zloop_itrr=   r   r?   r   test_ex_jitclass_type_hints7   s    z1DocsJitclassUsageTest.test_ex_jitclass_type_hintsN)r   r   r   r0   rD   r   r   r   r   r      s   -r   __main__)ZunittestZnumba.tests.supportr   r   r   mainr   r   r   r   <module>   s   X