
    xKg                     \    d dl Z d dlmZ  G d de      Zedk(  r e j
                          yy)    N)TestCasec                       e Zd Zd Zd Zy)DocsJitclassUsageTestc                 `   dd l ddlm}m} ddlm} d|fd|d d  fg} ||       G fddt                     }d} ||      }| j                  t        ||             | j                  |j                  |       j                  j                  |j                  j                  |j                  	             | j                  |j                  |       j                  j                  |j!                  d
      d
j#                  |j                  	      z         j                  j                  |j!                  d      dj#                  |j                  	      z         | j                  |j%                  dd      d       | j                  |j%                  dd      d
       y )Nr   )int32float32jitclassvaluearrayc                   >    e Zd Z fdZed        Zd Zed        Zy)3DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bagc                 X    || _         j                  |j                        | _        y )Ndtype)r   zerosr   r   )selfr   nps     j/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/doc_examples/test_jitclass.py__init__z<DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.__init__   s"    "
XXe2::X>
    c                 .    | j                   j                  S N)r   sizer   s    r   r   z8DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.size   s    zz&r   c                 |    t        | j                        D ]  }| j                  |xx   |z  cc<    | j                  S r   )ranger   r   )r   valis      r   	incrementz=DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.increment   s1    tyy)AJJqMS(M *zz!r   c                     | |z   S r    )xys     r   addz7DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bag.add$   s    1ur   N)	__name__
__module____qualname__r   propertyr   r    staticmethodr%   )r   s   r   Bagr      s5    ? ' '"
  r   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   s	           @r   test_ex_jitclassz&DocsJitclassUsageTest.test_ex_jitclass
   s`   (/ egaj!

 
$	& 	 
	$ A 	
5#./Q/


""5;;"**0MN

A.


""5??1#5#$rwwq

w'C#C	E


""5??1#5#$rwwq

w'C#C	E		!Q31q1r   c           	         ddl m ddlm} ddlm} | G d d             | G fdd             } |g d      } ||      }t        d	      D ]  }| j                  |j                  j                  |       | j                  |j                         ||t        |      z            | j                  |j                  j                  |d
z           y )Nr   )Listr	   c                   *    e Zd ZU eed<   d ZdefdZy)BDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counterr   c                     d| _         y )Nr   r   r   s    r   r   zKDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counter.__init__A   s	    
r   returnc                 H    | j                   }| xj                   dz  c_         |S )Nr0   rE   )r   rets     r   getzFDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counter.getD   s    jj

a

r   N)r&   r'   r(   int__annotations__r   rI   r"   r   r   CounterrC   =   s    JS r   rL   c                   R    e Zd ZU W  ed<   W e   ed<   dW e   f fdZdefdZy)KDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIteratorcounteritemsc                 ,    || _                 | _        y r   )rP   rO   )r   rP   rL   s     r   r   zTDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIterator.__init__N   s    "
&yr   rF   c                     | j                   j                         t        | j                        z  }| j                  |   S r   )rO   rI   lenrP   )r   idxs     r   rI   zODocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIterator.getR   s/    ll&&(3tzz?:zz#&r   N)r&   r'   r(   rK   floatr   rI   )rL   rA   s   r   ListLoopIteratorrN   I   s/    ;)d5k )'U 'r   rV   )gQ	@gX9v@grh|?g      
   r0   )typingrA   r4   r
   numba.typedr   assertEqualrO   r   assertAlmostEqualrI   rS   )	r   r
   	NumbaListrV   rP   loop_itrrT   rL   rA   s	          @@r   test_ex_jitclass_type_hintsz1DocsJitclassUsageTest.test_ex_jitclass_type_hints7   s    /1			 		 
		 

	' 
	' 

	' 34#E* 9CX--33S9""8<<>5s5z9I3JKX--33S1W= r   N)r&   r'   r(   r?   r^   r"   r   r   r   r      s    +2Z&>r   r   __main__)unittestnumba.tests.supportr   r   r&   mainr"   r   r   <module>rc      s6     (U>H U>p zHMMO r   