§
    ƒÛg±T  ã                   óœ   — d dl Z d dlZd dlmZ d dlmZ  G d„ d¦  «        Z G d„ dej        ¦  «        Ze	dk    r ej
        ¦   «          dS dS )	é    N)Úcaptured_stdout)ÚIS_WIN32c                   ó   — e Zd ZdZdd„ZdS )ÚMatplotlibBlockerz�Blocks the import of matplotlib, so that doc examples that attempt to
    plot the output don't result in plots popping up and blocking testing.Nc                 ó4   — |dk    rd}t          |¦  «        ‚d S )NÚ
matplotlibz/Blocked import of matplotlib for test suite run)ÚImportError)ÚselfÚfullnameÚpathÚtargetÚmsgs        ú\/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/doc_examples/test_examples.pyÚ	find_speczMatplotlibBlocker.find_spec   s(   € Ø�|Ò#Ð#ØCˆCÝ˜cÑ"Ô"Ð"ð $Ð#ó    ©N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r   
   s4   € € € € € ðNð Nð#ð #ð #ð #ð #ð #r   r   c                   óf   ‡ — e Zd Zˆ f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ˆ xZS )ÚDocsExamplesTestc                 ó`   •—  t          ¦   «         j        |i |¤Ž t          ¦   «         | _        d S r   )ÚsuperÚ__init__r   Ú_mpl_blocker)r
   ÚargsÚkwargsÚ	__class__s      €r   r   zDocsExamplesTest.__init__   s3   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ý-Ñ/Ô/ˆÔÐÐr   c                 óP   — t           j                             d| j        ¦  «         d S ©Nr   )ÚsysÚ	meta_pathÚinsertr   ©r
   s    r   ÚsetUpzDocsExamplesTest.setUp   s#   € ÝŒ×Ò˜Q Ô 1Ñ2Ô2Ð2Ð2Ð2r   c                 óN   — t           j                             | j        ¦  «         d S r   )r#   r$   Úremover   r&   s    r   ÚtearDownzDocsExamplesTest.tearDown   s!   € ÝŒ×Ò˜TÔ.Ñ/Ô/Ð/Ð/Ð/r   c           	      óÜ  ‡— t          ¦   «         5  ddlm} 	 ddlm}m} d}n# t          $ r d}Y nw xY wdd l}ddlm	}  |d¬¦  «        d„ ¦   «         Š |d¬¦  «        ˆfd	„¦   «         }| 
                    d
|j        ¬¦  «        } |¦   «         }	 |dddd|d¦  «          |¦   «         }
t          |
|	z
  ¦  «         |r ||¦  «          |¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )Údefault_timer)ÚimshowÚshowTF©Újit)Únopythonc                 ó°   — d}t          | |¦  «        }d}t          |¦  «        D ]1}||z  |z   }|j        |j        z  |j        |j        z  z   dk    r|c S Œ2dS )zá
                Given the real and imaginary parts of a complex number,
                determine if it is a candidate for membership in the Mandelbrot
                set given a fixed number of iterations.
                r   y                é   éÿ   )ÚcomplexÚrangeÚrealÚimag)ÚxÚyÚ	max_itersÚiÚcÚzs         r   Úmandelz0DocsExamplesTest.test_mandelbrot.<locals>.mandel,   su   € ð �Ý˜A˜a‘L”L�Ø�Ý˜yÑ)Ô)ð !ð !�AØ˜A™ ™	�AØœ ¤™¨!¬&°1´6©/Ñ9¸aÒ?Ð?Ø ˜˜˜ð @ð �sr   c                 óì   •— |j         d         }|j         d         }|| z
  |z  }||z
  |z  }	t          |¦  «        D ]8}
| |
|z  z   }t          |¦  «        D ]}|||	z  z   } ‰|||¦  «        }||||
f<   ŒŒ9|S )Nr   é   )Úshaper6   )Úmin_xÚmax_xÚmin_yÚmax_yÚimageÚitersÚheightÚwidthÚpixel_size_xÚpixel_size_yr9   r7   r:   r8   Úcolorr?   s                  €r   Úcreate_fractalz8DocsExamplesTest.test_mandelbrot.<locals>.create_fractal=   s«   ø€ àœ Qœ�Øœ Aœ�à %¨¡°Ñ6�Ø %¨¡°Ñ7�Ý˜u™œð ,ð ,�AØ  1 |Ñ#3Ñ3�DÝ" 6™]œ]ð ,ð ,˜Ø$ q¨<Ñ'7Ñ7˜Ø &  t¨T°5Ñ 9Ô 9˜Ø&+˜˜a ˜d™˜ð,ð
 �r   )éè  iÜ  ©Údtypeg       Àç      ð?g      ð¿é   )r   Útimeitr,   Úmatplotlib.pylabr-   r.   r	   ÚnumpyÚnumbar0   ÚzerosÚuint8Úprint)r
   Útimerr-   r.   Úhave_mplÚnpr0   rN   rG   ÚsÚer?   s              @r   Útest_mandelbrotz DocsExamplesTest.test_mandelbrot    s¿  ø€ ÝÑÔð 3	ð 3	à5Ð5Ð5Ð5Ð5Ð5ð!Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø��øÝð !ð !ð !Ø ���ð!øøøàÐÐÐØ!Ð!Ð!Ð!Ð!Ð!àˆS˜$ÐÑÔðð ñ  Ôðð  ˆS˜$ÐÑÔðð ð ð ñ  Ôðð —H’HÐ/°r´x�HÑ@Ô@ˆEØ�‘”ˆAØˆN˜4  d¨C°¸Ñ;Ô;Ð;Ø�‘”ˆAÝ�!�a‘%‰LŒLˆLØð Ø��u‘”�Ø�‘”�ðg3	ð 3	ð 3	ñ 3	ô 3	ð 3	ð 3	ð 3	ð 3	ð 3	ð 3	ð 3	øøøð 3	ð 3	ð 3	ð 3	ð 3	ð 3	s-   �C!˜
#¢C!£2¯C!±2²B"C!Ã!C%Ã(C%c                 óD  — t          ¦   «         5  dd l}ddlm}  |dgd¦  «        d„ ¦   «         }|                     d|j        ¬¦  «                             dd	¦  «        }t          |¦  «         t           ||d
¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©Úguvectorizez%void(float64[:], intp[:], float64[:])ú(n),()->(n)c                 óð   — |d         }d}d}t          |¦  «        D ]}|| |         z  }|dz  }||z  ||<   Œt          |t          | ¦  «        ¦  «        D ]!}|| |         | ||z
           z
  z  }||z  ||<   Œ"d S )Nr   ç        rA   )r6   Úlen)ÚaÚ
window_arrÚoutÚwindow_widthÚasumÚcountr<   s          r   Ú	move_meanz7DocsExamplesTest.test_moving_average.<locals>.move_mean^   s¨   € ð  *¨!œ}�Ø�Ø�Ý˜|Ñ,Ô,ð *ð *�AØ˜A˜aœD‘L�DØ˜Q‘J�EØ! E™\�C˜‘F�FÝ˜|­S°©V¬VÑ4Ô4ð *ð *�AØ˜A˜aœD 1 Q¨Ñ%5Ô#6Ñ6Ñ6�DØ! E™\�C˜‘F�Fð*ð *r   rS   rP   é   é
   é   )r   rV   rW   rc   ÚarangeÚfloat64ÚreshaperZ   )r
   r]   rc   rn   Úarrs        r   Útest_moving_averagez$DocsExamplesTest.test_moving_averageW   s  € ÝÑÔð 	%ð 	%àÐÐÐà)Ð)Ð)Ð)Ð)Ð)àˆ[ÐAÐBØ&ñ(ô (ð
*ð 
*ñ(ô (ð
*ð —)’)˜B b¤j�)Ñ1Ô1×9Ò9¸!¸RÑ@Ô@ˆCÝ�#‰JŒJˆJÝ�)�)˜C Ñ#Ô#Ñ$Ô$Ð$ð-	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   �A9BÂBÂBc                 óè  ‡‡‡‡— t          ¦   «         5  dd lŠdd lŠddlmŠ dd lŠddlm} d}d}ˆfd„} |ddd¬	¦  «        ˆfd
„¦   «         }ˆˆfd„}ˆfd„}ˆˆfd„} ||¦  «        }	 |||¦  «        }
‰j         	                    |¦  «        }‰j         	                    |¦  «        } |d d|||¦  «        } ||d|	||¦  «          ||d|z  |
||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )Úrepeatr/   r3   i@B c                 ó@   •— ‰                      d| z  d|z  z   ¦  «        S )z?
                Control function using Numpy.
                çÍÌÌÌÌÌ @çš™™™™™	@)Úexp)rh   Úbr]   s     €r   Úfunc_npz,DocsExamplesTest.test_nogil.<locals>.func_np~   s$   ø€ ð —v’v˜c A™g¨¨a©Ñ/Ñ0Ô0Ð0r   z%void(double[:], double[:], double[:])T)r1   Únogilc                 ó    •— t          t          | ¦  «        ¦  «        D ]/}‰                     d||         z  d||         z  z   ¦  «        | |<   Œ0dS )z6
                Function under test.
                rz   r{   N)r6   rg   r|   )Úresultrh   r}   r<   Úmaths       €r   Úinner_func_nbz2DocsExamplesTest.test_nogil.<locals>.inner_func_nb„   s\   ø€ õ �s 6™{œ{Ñ+Ô+ð Bð B�AØ $§¢¨¨q°¬t©°c¸A¸a¼D±jÑ)@Ñ AÔ A�F˜1‘I�IðBð Br   c                 ó4  •‡‡‡— t          |                     d¦  «        d¬¦  «          ‰‰i ‰¤Ž}| �"‰                     || ¦  «        sJ || f¦   «         ‚t          d                     t	           ‰ˆˆˆfd„dd¬	¦  «        ¦  «        d
z  ¦  «        ¦  «         |S )zM
                Benchmark *func* and print out its runtime.
                rS   ú )ÚendNz{:>5.0f} msc                  ó   •—  ‰‰ i ‰¤ŽS r   r   )r   Úfuncr   s   €€€r   ú<lambda>z?DocsExamplesTest.test_nogil.<locals>.timefunc.<locals>.<lambda>™   s   ø€ ˜D˜D $Ð1¨&Ð1Ð1€ r   é   ro   )Únumberrx   rO   )rZ   ÚljustÚallcloseÚformatÚmin)Úcorrectr^   rˆ   r   r   Úresr]   rx   s     ``` €€r   Útimefuncz-DocsExamplesTest.test_nogil.<locals>.timefunc�   sØ   øøøø€ õ �a—g’g˜b‘k”k sÐ+Ñ+Ô+Ð+ð �d˜DÐ+ FÐ+Ð+�ØÐ&ØŸ;š; s¨GÑ4Ô4ÐDÐD°s¸G°nÑDÔDÐDå�m×*Ò*­3¨v¨vØ1Ð1Ð1Ð1Ð1Ð1¸!ÀAð0Gñ 0Gô 0Gñ ,Hô ,HØJNñ,Oñ Pô Pñ Qô Qð Qà�
r   c                 ó   •‡ — ˆ ˆfd„}|S )zP
                Run the given function inside a single thread.
                c                  ó|   •— t          | d         ¦  «        }‰                     |‰j        ¬¦  «        } ‰|g| ¢R Ž  |S )Nr   rP   )rg   Úemptyrs   )r   Úlengthr�   Ú
inner_funcr]   s      €€r   rˆ   zDDocsExamplesTest.test_nogil.<locals>.make_singlethread.<locals>.func    sF   ø€ Ý   a¤™\œ\�FØŸXšX f°B´J˜XÑ?Ô?�FØ�J˜vÐ-¨Ð-Ð-Ð-Ð-Ø!�Mr   r   )r—   rˆ   r]   s   ` €r   Úmake_singlethreadz6DocsExamplesTest.test_nogil.<locals>.make_singlethreadœ   s)   øø€ ð"ð "ð "ð "ð "ð "ð
 �r   c                 ó   •‡ ‡— ˆ ˆˆˆfd„}|S )z–
                Run the given function inside *numthreads* threads, splitting
                its arguments into equal-sized chunks.
                c                  óJ  •‡ ‡— t          ‰ d         ¦  «        }‰                     |‰j        ¬¦  «        }|f‰ z   Š |‰	z   dz
  ‰	z  Šˆ ˆfd„t          ‰	¦  «        D ¦   «         }ˆˆ
fd„|D ¦   «         }|D ]}|                     ¦   «          Œ|D ]}|                     ¦   «          Œ|S )Nr   rP   rA   c                 ó0   •‡— g | ]Šˆˆfd „‰D ¦   «         ‘ŒS )c                 ó6   •— g | ]}|‰‰z  ‰d z   ‰z  …         ‘ŒS )rA   r   )Ú.0ÚargÚchunklenr<   s     €€r   ú
<listcomp>zeDocsExamplesTest.test_nogil.<locals>.make_multithread.<locals>.func_mt.<locals>.<listcomp>.<listcomp>²   s<   ø€ ð %ð %ð %È˜s 1 x¡<°°Q±¸(Ñ0BÐ#BÔCð %ð %ð %r   r   )r�   r<   r   rŸ   s    @€€r   r    zZDocsExamplesTest.test_nogil.<locals>.make_multithread.<locals>.func_mt.<locals>.<listcomp>²   sV   øø€ ð Að Að AØ)*ð%ð %ð %ð %ð %Ø#ð%ñ %ô %ð Að Að Ar   c                 ó>   •— g | ]}‰                      ‰|¬ ¦  «        ‘ŒS ))r   r   )ÚThread)r�   Úchunkr—   Ú	threadings     €€r   r    zZDocsExamplesTest.test_nogil.<locals>.make_multithread.<locals>.func_mt.<locals>.<listcomp>µ   s<   ø€ ð 4ð 4ð 4Ø#(ð  )×/Ò/°zÈÐ/ÑNÔNð 4ð 4ð 4r   )rg   r•   rs   r6   ÚstartÚjoin)r   r–   r�   ÚchunksÚthreadsÚthreadrŸ   r—   r]   Ú
numthreadsr¤   s   `     @€€€€r   Úfunc_mtzFDocsExamplesTest.test_nogil.<locals>.make_multithread.<locals>.func_mt¬   sö   øøø€ Ý   a¤™\œ\�FØŸXšX f°B´J˜XÑ?Ô?�FØ"˜9 tÑ+�DØ &¨Ñ 3°aÑ 7¸JÑF�HðAð Að Að Að AÝ.3°JÑ.?Ô.?ðAñ Aô A�Fð4ð 4ð 4ð 4ð 4Ø,2ð4ñ 4ô 4�Gà")ð 'ð '˜ØŸš™œ˜˜Ø")ð &ð &˜ØŸš™œ˜˜Ø!�Mr   r   )r—   rª   r«   r]   r¤   s   `` €€r   Úmake_multithreadz5DocsExamplesTest.test_nogil.<locals>.make_multithread§   s4   øøø€ ð
"ð "ð "ð "ð "ð "ð "ð "ð  �r   znumpy (1 thread)znumba (1 thread)znumba (%d threads))
r   r‚   r¤   rT   rx   rV   rW   r0   ÚrandomÚrand)r
   r0   ÚnthreadsÚsizer~   rƒ   r’   r˜   r¬   Úfunc_nbÚ
func_nb_mtrh   r}   r�   r‚   r]   rx   r¤   s                 @@@@r   Ú
test_nogilzDocsExamplesTest.test_nogilq   s;  øøøø€ ÝÑÔð T	Qð T	QàˆKˆKˆKØÐÐÐØ%Ð%Ð%Ð%Ð%Ð%àÐÐÐØ!Ð!Ð!Ð!Ð!Ð!àˆHØˆDð1ð 1ð 1ð 1ð 1ð ˆSÐ8À4Øðñ ô ðBð Bð Bð Bñô ðBðð ð ð ð ð ð	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð. (Ð'¨Ñ6Ô6ˆGØ)Ð)¨-¸ÑBÔBˆJà”	—’˜tÑ$Ô$ˆAØ”	—’˜tÑ$Ô$ˆAà�h˜tÐ%7¸À!ÀQÑGÔGˆGØˆH�WÐ0°'¸1¸aÑ@Ô@Ð@ØˆH�WÐ2°XÑ=¸zÈ1ÈaÑPÔPÐPðiT	Qð T	Qð T	Qñ T	Qô T	Qð T	Qð T	Qð T	Qð T	Qð T	Qð T	Qð T	Qøøøð T	Qð T	Qð T	Qð T	Qð T	Qð T	Qs   “CC'Ã'C+Ã.C+c                 ó¢   — t          ¦   «         5  ddlm}m}  | |||¦  «        g¦  «        d„ ¦   «         }d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )Ú	vectorizers   c                 ó   — | |z   S r   r   ©r9   r:   s     r   Úfz8DocsExamplesTest.test_vectorize_one_signature.<locals>.fÎ   ó   € à˜1‘u�r   )r   rW   rµ   rs   )r
   rµ   rs   r¸   s       r   Útest_vectorize_one_signaturez-DocsExamplesTest.test_vectorize_one_signatureÉ   s½   € ÝÑÔð 	ð 	à0Ð0Ð0Ð0Ð0Ð0Ð0Ð0àˆY˜˜ ¨Ñ1Ô1Ð2Ñ3Ô3ðð ñ 4Ô3ðð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �(AÁAÁAc           
      ó>  — t          ¦   «         5  ddlm}m}m}m}m} dd l} | |||¦  «         |||¦  «         |||¦  «         |||¦  «        g¦  «        d„ ¦   «         }|                     d¦  «        } |||¦  «        }	|  	                    |	|j
        ¦  «         |                     g d¢¦  «        }
|j                             |	|
¦  «         |                     ddd¦  «        } |||¦  «        }	|  	                    |	|j
        ¦  «         |                     g d¢¦  «        }
|j                             |	|
¦  «         |                     d¦  «                             d	d
¦  «        }|                     |d¬¦  «        }|                     |d¬¦  «        }|                     |¦  «        }|                     |d¬¦  «        }|  	                    ||j
        ¦  «         |                     g d¢¦  «        }
|j                             ||
¦  «         |  	                    ||j
        ¦  «         |                     g d¢¦  «        }
|j                             ||
¦  «         |  	                    ||j
        ¦  «         |                     g d¢g d¢g d¢g¦  «        }
|j                             ||
¦  «         |  	                    ||j
        ¦  «         |                     g d¢g d¢g d¢g¦  «        }
|j                             ||
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )rµ   Úint32Úint64Úfloat32rs   c                 ó   — | |z   S r   r   r·   s     r   r¸   z>DocsExamplesTest.test_vectorize_multiple_signatures.<locals>.fÙ   s   € ð
 ˜1‘u�r   é   )r   ro   r3   rÀ   é   rp   rA   )rf   gš™™™™™Ù?gš™™™™™é?g333333ó?gš™™™™™ù?ç       @é   rq   r3   )Úaxis)rÃ   é   é   é   )rÀ   é   é&   )r   rA   ro   rq   )r3   rÀ   rÁ   rp   )r   rA   rq   rÀ   )r3   é	   rÅ   rÈ   )rÁ   é   é   rÉ   )r   rW   rµ   r¼   r½   r¾   rs   rV   rr   ÚassertIsInstanceÚndarrayÚarrayÚtestingÚassert_array_equalÚlinspaceÚassert_allclosert   ÚreduceÚ
accumulate)r
   rµ   r¼   r½   r¾   rs   r]   r¸   rh   r�   r�   Úresult1Úresult2Úresult3Úresult4s                  r   Ú"test_vectorize_multiple_signaturesz3DocsExamplesTest.test_vectorize_multiple_signaturesÓ   sÅ  € ÝÑÔð N	<ð N	<àGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGØÐÐÐàˆY˜˜˜e UÑ+Ô+Ø˜˜e UÑ+Ô+Ø˜ ¨Ñ1Ô1Ø˜ ¨Ñ1Ô1ð3ñ 4ô 4ðð ñ	4ô 4ðð
 —	’	˜!‘”ˆAØ�Q�q˜!‘W”WˆFð ×!Ò! &¨"¬*Ñ5Ô5Ð5Ø—h’hÐ2Ð2Ð2Ñ3Ô3ˆGØŒJ×)Ò)¨&°'Ñ:Ô:Ð:ð —’˜A˜q !Ñ$Ô$ˆAØ�Q�q˜!‘W”WˆFð ×!Ò! &¨"¬*Ñ5Ô5Ð5Ø—h’hÐ<Ð<Ð<Ñ=Ô=ˆGØŒJ×&Ò& v¨wÑ7Ô7Ð7ð —	’	˜"‘”×%Ò% a¨Ñ+Ô+ˆAð
 —h’h˜q q�hÑ)Ô)ˆGð —h’h˜q q�hÑ)Ô)ˆGð —l’l 1‘o”oˆGð
 —l’l 1¨1�lÑ-Ô-ˆGð ×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’hÐ/Ð/Ð/Ñ0Ô0ˆGØŒJ×)Ò)¨'°7Ñ;Ô;Ð;à×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’h˜{˜{˜{Ñ+Ô+ˆGØŒJ×)Ò)¨'°7Ñ;Ô;Ð;à×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’hØ��Ø��Ø Ð Ð ð ñ ô ˆGð
 ŒJ×)Ò)¨'°7Ñ;Ô;Ð;à×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’hØ��Ø��Ø��ð ñ ô ˆGð
 ŒJ×)Ò)¨'°7Ñ;Ô;Ð;ð]N	<ð N	<ð N	<ñ N	<ô N	<ð N	<ð N	<ð N	<ð N	<ð N	<ð N	<ð N	<øøøð N	<ð N	<ð N	<ð N	<ð N	<ð N	<s   �K6LÌLÌLc                 óÌ  — t          ¦   «         5  ddlm}m} dd l} ||d d …         ||d d …         fgd¦  «        d„ ¦   «         }|                     d¦  «        } ||d¦  «        }|                      ||j        ¦  «         |                     g d¢¦  «        }|j	         
                    ||¦  «         |                     d¦  «                             dd	¦  «        } ||d
¦  «        } |||                     d
dg¦  «        ¦  «        }	 |||                     d
dg¦  «        ¦  «         |                      ||j        ¦  «         |                     g d¢g d¢g¦  «        }|j	         
                    ||¦  «         |                      |	|j        ¦  «         |                     g d¢g d¢g¦  «        }|j	         
                    |	|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©rc   r½   rd   c                 ó\   — t          | j        d         ¦  «        D ]}| |         |z   ||<   Œd S r"   ©r6   rB   ©r9   r:   r‘   r<   s       r   Úgz,DocsExamplesTest.test_guvectorize.<locals>.g*  ó<   € å˜qœw qœzÑ*Ô*ð &ð &�AØ˜qœT A™X�C˜‘F�Fð&ð &r   rŠ   ro   ©ro   rq   r3   rŠ   rÀ   rÀ   rq   rp   rS   )rp   é   rÃ   )é   é   rÅ   )é   é   é   )r   rW   rc   r½   rV   rr   rÍ   rÎ   rÏ   rÐ   rÑ   rt   )
r
   rc   r½   r]   rà   rh   r�   r�   rÖ   r×   s
             r   Útest_guvectorizez!DocsExamplesTest.test_guvectorize$  sT  € ÝÑÔð *	<ð *	<à0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÐÐÐàˆ[˜5   œ8 U¨E°!°!°!¬HÐ5Ð6¸ÑFÔFð&ð &ñ GÔFð&ð —	’	˜!‘”ˆAØ�Q�q˜!‘W”WˆFð ×!Ò! &¨"¬*Ñ5Ô5Ð5Ø—h’h˜˜˜Ñ/Ô/ˆGØŒJ×)Ò)¨&°'Ñ:Ô:Ð:ð —	’	˜!‘”×$Ò$ Q¨Ñ*Ô*ˆAð �a˜˜2‘h”hˆGð �a˜˜2Ÿ8š8 R¨ HÑ-Ô-Ñ.Ô.ˆGØˆAˆa�—’˜2˜r˜(Ñ#Ô#Ñ$Ô$Ð$ð
 ×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’h   ¨l¨l¨lÐ;Ñ<Ô<ˆGØŒJ×)Ò)¨'°7Ñ;Ô;Ð;à×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’h   ¨l¨l¨lÐ;Ñ<Ô<ˆGØŒJ×)Ò)¨'°7Ñ;Ô;Ð;ðU*	<ð *	<ð *	<ñ *	<ô *	<ð *	<ð *	<ð *	<ð *	<ð *	<ð *	<ð *	<øøøð *	<ð *	<ð *	<ð *	<ð *	<ð *	<s   �F=GÇGÇ Gc                 ób  — t          ¦   «         5  ddlm}m} dd l} ||d d …         ||d d …         fgd¦  «        d„ ¦   «         }|                     d¦  «        } ||d¦  «        }|                      ||j        ¦  «         |                      |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rÜ   z
(n),()->()c                 ój   — d}t          | j        d         ¦  «        D ]}|| |         |z   z  }Œ||d<   d S r"   rÞ   )r9   r:   r‘   Úaccr<   s        r   rà   z:DocsExamplesTest.test_guvectorize_scalar_return.<locals>.gW  sD   € à�Ý˜qœw qœzÑ*Ô*ð $ð $�AØ˜1˜Qœ4 !™8‘O�C�CØ��A‘��r   rŠ   ro   rS   )	r   rW   rc   r½   rV   rr   rÍ   ÚintegerÚassertEqual)r
   rc   r½   r]   rà   rh   r�   s          r   Útest_guvectorize_scalar_returnz/DocsExamplesTest.test_guvectorize_scalar_returnQ  s'  € ÝÑÔð 	)ð 	)à0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÐÐÐàˆ[˜5   œ8 U¨E°!°!°!¬HÐ5Ð6¸ÑEÔEðð ñ FÔEðð —	’	˜!‘”ˆAØ�Q�q˜!‘W”WˆFð ×!Ò! &¨"¬*Ñ5Ô5Ð5Ø×Ò˜V RÑ(Ô(Ð(ð)	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   �BB$Â$B(Â+B(c                 ó4  — t          ¦   «         5  ddlm}m} dd l} ||d d …         |d d …         fgd¦  «        d„ ¦   «         }|                     d|j        ¬¦  «        } ||¦  «        }|                      ||j        ¦  «         |                     g d¢g d¢g d¢g¦  «        }|j	         
                    ||¦  «         |                      ||j        ¦  «         |                     g d¢g d¢g d¢g¦  «        }|j	         
                    ||¦  «         |                     d|j        ¬¦  «        } ||¦  «        }t          |¦  «         |                      ||j        ¦  «         |                     g d	¢g d	¢g d	¢g|j        ¬
¦  «        }|j	         
                    ||¦  «         |                      ||j        ¦  «         |                     g d¢g d¢g d¢g¦  «        }|j	         
                    ||¦  «          ||d d …         |d d …         fgdd¬¦  «        d„ ¦   «         }|                     d|j        ¬¦  «        } ||¦  «        }t          |¦  «         |                      ||j        ¦  «         |                     g d¢g d¢g d¢g¦  «        }|j	         
                    ||¦  «         |                      ||j        ¦  «         |                     g d¢g d¢g d¢g¦  «        }|j	         
                    ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )rc   rs   z()->()c                 ó   — d| d<   d|d<   d S ©Nç      @r   çÍÌÌÌÌÌ@r   ©ÚinvalsÚoutvalss     r   Úinit_valuesz@DocsExamplesTest.test_guvectorize_overwrite.<locals>.init_valuesn  s   € à��q‘	Ø �˜‘
�
�
r   )rq   rq   )rB   rQ   )ró   ró   ró   )rô   rô   rô   )rf   rf   rf   rP   )rö   )Úwritable_argsc                 ó   — d| d<   d|d<   d S rò   r   rõ   s     r   rø   z@DocsExamplesTest.test_guvectorize_overwrite.<locals>.init_values¬  s   € ð  ��q‘	Ø �˜‘
�
�
r   )r   rW   rc   rs   rV   rX   rÍ   rÎ   rÏ   rÐ   rÑ   r¾   rZ   )r
   rc   rs   r]   rø   rö   r÷   r�   s           r   Útest_guvectorize_overwritez+DocsExamplesTest.test_guvectorize_overwriteh  s  € ÝÑÔð f	<ð f	<à2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ØÐÐÐàˆ[˜7 1 1 1œ: w¨q¨q¨q¤zÐ2Ð3°XÑ>Ô>ð!ð !ñ ?Ô>ð!ð —X’X F°"´*�XÑ=Ô=ˆFð
 "�k &Ñ)Ô)ˆGð ×!Ò! &¨"¬*Ñ5Ô5Ð5Ø—h’hØ��Ø��Ø��ð !ñ "ô "ˆGð ŒJ×)Ò)¨&°'Ñ:Ô:Ð:à×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’hØ��Ø��Ø��ð !ñ "ô "ˆGð ŒJ×)Ò)¨'°7Ñ;Ô;Ð;ð —X’X F°"´*�XÑ=Ô=ˆFð "�k &Ñ)Ô)ˆGõ �&‰MŒMˆMð ×!Ò! &¨"¬*Ñ5Ô5Ð5Ø—h’hØ��Ø��Ø��ð ð &(¤Zð ñ 1ô 1ˆGð ŒJ×)Ò)¨&°'Ñ:Ô:Ð:à×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’hØ��Ø��Ø��ð !ñ "ô "ˆGð ŒJ×)Ò)¨'°7Ñ;Ô;Ð;ð ˆ[Ø˜!˜!˜!”*˜g a a aœjÐ)Ð*ØØ)ðñ ô ð
!ð !ñô ð
!ð —X’X F°"´*�XÑ=Ô=ˆFð "�k &Ñ)Ô)ˆGõ �&‰MŒMˆMð ×!Ò! &¨"¬*Ñ5Ô5Ð5Ø—h’hØ��Ø��Ø��ð !ñ "ô "ˆGð ŒJ×)Ò)¨&°'Ñ:Ô:Ð:à×!Ò! '¨2¬:Ñ6Ô6Ð6Ø—h’hØ��Ø��Ø��ð !ñ "ô "ˆGð ŒJ×)Ò)¨'°7Ñ;Ô;Ð;ðMf	<ð f	<ð f	<ñ f	<ô f	<ð f	<ð f	<ð f	<ð f	<ð f	<ð f	<ð f	<øøøð f	<ð f	<ð f	<ð f	<ð f	<ð f	<s   �K1LÌLÌLc                 ó–  — t          ¦   «         5  ddlm} |d„ ¦   «         } |dd¦  «        }t          |j        ¦  «         |                      |d¦  «         t          rdg}ndg}|                      |j        |¦  «          |d	d
¦  «        }t          |j        ¦  «         |                      |d
¦  «         t          rddg}nddg}|                      |j        |¦  «          |dd
¦  «        }t          |j        ¦  «         |                      |d
¦  «         t          rddg}nddg}|                      |j        |¦  «         |d„ ¦   «         }t           |d
d¦  «        ¦  «         t           |dd¦  «        ¦  «         t          |j        ¦  «         dg}|                      |j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )rµ   c                 ó   — | |z  S r   r   r·   s     r   r¸   z2DocsExamplesTest.test_vectorize_dynamic.<locals>.fÖ  r¹   r   rq   r3   rÃ   zll->qúll->lrR   rÂ   údd->drA   c                 ó   — | |z  S r   r   )rh   r}   s     r   rà   z2DocsExamplesTest.test_vectorize_dynamic.<locals>.g	  r¹   r   g      @ro   )r   rW   rµ   rZ   Útypesrî   r   )r
   rµ   r¸   r�   r�   rà   s         r   Útest_vectorize_dynamicz'DocsExamplesTest.test_vectorize_dynamicÑ  so  € ÝÑÔð F	/ð F	/à'Ð'Ð'Ð'Ð'Ð'àðð ñ ŒYðð
 �Q�q˜‘V”VˆFõ �!”'‰NŒNˆNð ×Ò˜V RÑ(Ô(Ð(Ýð $Ø"˜)��à"˜)�Ø×Ò˜QœW gÑ.Ô.Ð.ð �Q�r˜"‘X”XˆFõ �!”'‰NŒNˆNð ×Ò˜V SÑ)Ô)Ð)Ýð -Ø" GÐ,��à" GÐ,�Ø×Ò˜QœW gÑ.Ô.Ð.ð �Q�q˜‘W”WˆFõ �!”'‰NŒNˆNð ×Ò˜V SÑ)Ô)Ð)Ýð -Ø" GÐ,��à" GÐ,�Ø×Ò˜QœW gÑ.Ô.Ð.ð ðð ñ ŒYðõ �!�!�B�r‘(”(‰OŒOˆOõ �!�!�A�a‘&”&‰MŒMˆMõ �!”'‰NŒNˆNð �iˆGØ×Ò˜QœW gÑ.Ô.Ð.ðMF	/ð F	/ð F	/ñ F	/ô F	/ð F	/ð F	/ð F	/ð F	/ð F	/ð F	/ð F	/øøøð F	/ð F	/ð F	/ð F	/ð F	/ð F	/s   �F"F>Æ>GÇGc                 óî  — t          ¦   «         5  ddlm} dd l} |d¦  «        d„ ¦   «         }|                     d|j        ¬¦  «        }d}|                     |¦  «        } ||||¦  «         t          |j        ¦  «         | 	                    g d¢¦  «        }|j
                             ||¦  «         t          rd	g}nd
g}|                      |j        |¦  «         |                     d|j        ¬¦  «        }d}|                     |¦  «        } ||||¦  «         t          |j        ¦  «         t          rd	dg}nd
dg}|                      |j        |¦  «         |                     d|j        ¬¦  «        }d}|                     |¦  «        } ||||¦  «         t          |¦  «         | 	                    g d¢¦  «        }|j
                             ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rb   rd   c                 ó\   — t          | j        d         ¦  «        D ]}| |         |z   ||<   Œd S r"   rÞ   rß   s       r   rà   z4DocsExamplesTest.test_guvectorize_dynamic.<locals>.g   rá   r   rŠ   rP   rp   )rp   rã   rÃ   rä   rå   zqq->qrþ   gš™™™™™@rÿ   râ   )r   rW   rc   rV   rr   r½   Ú
zeros_likerZ   r  rÏ   rÐ   rÑ   r   rî   Údouble)r
   rc   r]   rà   r9   r:   r‘   r�   s           r   Útest_guvectorize_dynamicz)DocsExamplesTest.test_guvectorize_dynamic  se  € ÝÑÔð :	8ð :	8à)Ð)Ð)Ð)Ð)Ð)ØÐÐÐàˆ[˜Ñ'Ô'ð&ð &ñ (Ô'ð&ð —	’	˜! 2¤8�	Ñ,Ô,ˆAØˆAØ—-’- Ñ"Ô"ˆCØˆAˆa��C‰LŒLˆLå�!”'‰NŒNˆNð —h’hÐ3Ð3Ð3Ñ4Ô4ˆGØŒJ×)Ò)¨#¨wÑ7Ô7Ð7Ýð $Ø"˜)��à"˜)�Ø×Ò˜QœW gÑ.Ô.Ð.ð —	’	˜! 2¤9�	Ñ-Ô-ˆAØˆAØ—-’- Ñ"Ô"ˆCØˆAˆa��C‰LŒLˆLõ
 �!”'‰NŒNˆNõ ð -Ø" GÐ,��à" GÐ,�Ø×Ò˜QœW gÑ.Ô.Ð.ð —	’	˜! 2¤8�	Ñ,Ô,ˆAØˆAØ—-’- Ñ"Ô"ˆCØˆAˆa��C‰LŒLˆLÝ�#‰JŒJˆJð —h’h˜˜˜Ñ/Ô/ˆGØŒJ×)Ò)¨#¨wÑ7Ô7Ð7ðu:	8ð :	8ð :	8ñ :	8ô :	8ð :	8ð :	8ð :	8ð :	8ð :	8ð :	8ð :	8øøøð :	8ð :	8ð :	8ð :	8ð :	8ð :	8s   �GG*Ç*G.Ç1G.)r   r   r   r   r'   r*   r`   rv   r³   rº   rÚ   ré   rï   rû   r  r  Ú__classcell__)r    s   @r   r   r      s  ø€ € € € € ð0ð 0ð 0ð 0ð 0ð3ð 3ð 3ð0ð 0ð 0ð4ð 4ð 4ðn%ð %ð %ð4UQð UQð UQðpð ð ðO<ð O<ð O<ðb+<ð +<ð +<ðZ)ð )ð )ð.g<ð g<ð g<ðRG/ð G/ð G/ðR;8ð ;8ð ;8ð ;8ð ;8ð ;8ð ;8r   r   Ú__main__)r#   ÚunittestÚnumba.tests.supportr   Únumba.core.configr   r   ÚTestCaser   r   Úmainr   r   r   ú<module>r     sÁ   ðð €
€
€
Ø €€€Ø /Ð /Ð /Ð /Ð /Ð /Ø &Ð &Ð &Ð &Ð &Ð &ð#ð #ð #ð #ð #ñ #ô #ð #ðA	8ð A	8ð A	8ð A	8ð A	8�xÔ(ñ A	8ô A	8ð A	8ðH ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   