o
    Ö­jN
  ã                   @   s‚   d Z ddlmZ ddlmZ edd„ edƒD ƒƒZdZ	d\Z
Zd	\ZZZd
d„ eD ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )a8  
Test Cython optimize zeros API functions: ``bisect``, ``ridder``, ``brenth``,
and ``brentq`` in `scipy.optimize.cython_optimize`, by finding the roots of a
3rd order polynomial given a sequence of constant terms, ``a0``, and fixed 1st,
2nd, and 3rd order terms in ``args``.

.. math::

    f(x, a0, args) =  ((args[2]*x + args[1])*x + args[0])*x + a0

The 3rd order polynomial function is written in Cython and called in a Python
wrapper named after the zero function. See the private ``_zeros`` Cython module
in `scipy.optimize.cython_optimze` for more information.
é    N)Ú_zerosc                 c   s   � | ]	}d |d  V  qdS )g       Àg      $@N© )Ú.0Úxr   r   úf/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cython_optimize.pyÚ	<genexpr>   s   € r   é
   )ç        r	   g      ð?)r	   g       @)çü©ñÒMbP?r
   r   c                 C   s   g | ]}| d  ‘qS )gUUUUUUÕ?r   )r   Úa0r   r   r   Ú
<listcomp>   s    r   c                   C   ó.   t jttt dtttt	t
tt¡ƒtt
d� d S )NÚbisect©ÚrtolÚatol©ÚnptÚassert_allcloseÚEXPECTEDÚlistr   Úloop_exampleÚA0ÚARGSÚXLOÚXHIÚXTOLÚRTOLÚMITRr   r   r   r   Útest_bisect*   ó   ÿ
ûr   c                   C   r   )NÚridderr   r   r   r   r   r   Útest_ridder5   r    r"   c                   C   r   )NÚbrenthr   r   r   r   r   r   Útest_brenth@   r    r$   c                   C   r   )NÚbrentqr   r   r   r   r   r   Útest_brentqK   r    r&   c                  C   sl   t  td ft ttttt¡} t	j
td | d ttd� t	 d| d ¡ t	 d| d ¡ t	 d| d ¡ d S )	Nr   Úrootr   é   Ú
iterationsé   ÚfuncallsÚ	error_num)r   Úfull_output_exampler   r   r   r   r   r   r   r   r   r   Úassert_equal)Úoutputr   r   r   Útest_brentq_full_outputV   s   ÿr0   )Ú__doc__Únumpy.testingÚtestingr   Úscipy.optimize.cython_optimizer   ÚtupleÚranger   r   r   r   r   r   r   r   r   r"   r$   r&   r0   r   r   r   r   Ú<module>   s    
