
    J/Ph                     d    d dl Z d dlmZ  G d de          Zedk    r e j                     dS dS )    N)TestCasec                       e Zd Zd Zd ZdS )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} ||          }|                     t          ||                     | 	                    |j
        |           j                            |j                            |j        	                     | 	                    |j        |           j                            |                    d
          d
                    |j        	          z             j                            |                    d          d                    |j        	          z             | 	                    |                    dd          d           | 	                    |                    dd          d
           d S )Nr   )int32float32jitclassvaluearrayc                   L    e Zd Z fdZed             Zd Zed             ZdS )3DocsJitclassUsageTest.test_ex_jitclass.<locals>.Bagc                 X    || _                             |j                  | _        d S )Ndtype)r   zerosr   r   )selfr   nps     f/var/www/html/test/jupyter/venv/lib/python3.11/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    z&r   c                 h    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   s=    ty)) ) )AJqMMMS(MMMMz!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      ss        ? ? ? ? ? ' ' X'" " "
   \  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gaaaj!

 
$	 	 	 	 	 	 	& 	 	 
	$ A 	
5#..///Q///

""5;"*0M0MNNN
A...

""5??1#5#5#$rwwq
w'C'C#C	E 	E 	E

""5??1#5#5#$rwwq
w'C'C#C	E 	E 	E		!Q3331q1111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        |           | 	                    |
                                ||t          |          z                      |                     |j        j        |d
z              d S )Nr   )Listr	   c                   ,    e Zd ZU eed<   d ZdefdZdS )BDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counterr   c                     d| _         d S )Nr   r   r   s    r   r   zKDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counter.__init__A   s    


r   returnc                 4    | j         }| xj         dz  c_         |S )Nr0   rE   )r   rets     r   getzFDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.Counter.getD   s    j

a


r   N)r&   r'   r(   int__annotations__r   rI   r"   r   r   CounterrC   =   sI         JJJ  S      r   rL   c                   Z    e Zd ZU  ed<   e         ed<   de         f fdZdefdZdS )KDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIteratorcounteritemsc                 4    || _                      | _        d S r   )rP   rO   )r   rP   rL   s     r   r   zTDocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIterator.__init__N   s    "
&wyyr   rF   c                 x    | j                                         t          | j                  z  }| j        |         S r   )rO   rI   lenrP   )r   idxs     r   rI   zODocsJitclassUsageTest.test_ex_jitclass_type_hints.<locals>.ListLoopIterator.getR   s.    l&&((3tz??:z#&r   N)r&   r'   r(   rK   floatr   rI   )rL   rA   s   r   ListLoopIteratorrN   I   sw         ;)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   se   //////111111			 		 		 		 		 		 		 
		 

	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 

	' 	33344##E** 99 	> 	>CX-3S999""8<<>>5s5zz9I3JKKKX-3S1W====	> 	>r   N)r&   r'   r(   r?   r^   r"   r   r   r   r      s3        +2 +2 +2Z&> &> &> &> &>r   r   __main__)unittestnumba.tests.supportr   r   r&   mainr"   r   r   <module>rc      s{     ( ( ( ( ( (U> U> U> U> U>H U> U> U>p zHMOOOOO r   