a
    hu                  9   @   s  d dl Z d dlZd dlmZmZmZ d dlmZ d dl	m
  mZ d dlmZmZ d dlmZ d dlmZ ddlmZ d	d
 Zdd Zdd Zdd Zdd Zdd Zeddfeddfeddfeddfeddfeddfed d!fed"d#fed$d#fed%dfed&d'fedd(fedd)fedd)fedd*fedd(fedd(fed d+fed"dfed$dfed%d,fed&dfeddfeddfeddfedd-fedd.fedd,fed dfed"d/fed$d/fed%dfed&dfed0d+fed1dfed2dfed3dfed4dfed5d+fed6d+fed7d+fed8d-fed9d-fed:d-fed0d)fed1d*fed2d(fed3d-fed4d+fed5d(fed6d*fed7d*fed8d+fed9d+fed:d(fg7ZG d;d< d<ZG d=d> d>eZdS )?    N)assert_allcloseassert_equalassert_array_less)stats)_chandrupatla_minimize_chandrupatla)_CHANDRUPATLA_TESTS)permutations   )TestScalarRootFindersc                 C   s0   dd| d  d  d| d   dd|  d   S )Nd   r
         @          @ xr   r   b/var/www/html/assistant/venv/lib/python3.9/site-packages/scipy/optimize/tests/test_chandrupatla.pyf1   s    r   c                 C   s   d| d d  S )N   r      r   r   r   r   r   f2   s    r   c                 C   s   t | d|   S )Nr   )npexpr   r   r   r   f3   s    r   c                 C   s    | d d| d   d|   d S )Ng      @r   r   g      4@r   r   r   r   r   f4   s    r   c                 C   s$   d| d  d| d   d|   d S )N      r      r   r   r   r   r   f5   s    r   c                 C   s   d}d}| |}| |}|| }||kr8||||| fn|||||f\}}}}}t |D ]>}||9 }|| }	| |	}
|
|k r||	||
f\}}}}qX qqX|||	|||
fS )Ngw?r   )range)funcx1x2phimaxiterr   r   stepix3r   r   r   r   _bracket_minimum#   s     r)         i   i   i   i   i   i i i    r   r   r   	      
         皙gg333333ÿgɿg      пg333333ӿgffffffֿgٿgܿg      gc                	   @   s   e Zd Zdd Zejddedddgdd	 Z	ejd
e
 dddgdd Zdd Zdd Zdd Zejdedd Zejddddgfejdejejejfdd Zdd Zd d! Zd"d# Zd$S )%TestChandrupatlaMinimizec                 C   s   t  }|||  S N)r   normpdf)selfr   locdistr   r   r   ft   s    zTestChandrupatlaMinimize.fr@   333333?g?r7   c                 C   sh   t | jddd|fd}|}tjj|j|dd tjj|jtj	d ddd |jj
t
|ksdJ d S )Nr   r   argsư>rtol)atolrJ   )r   rB   r   testingr   r   funr   r=   r>   shape)r?   r@   resrefr   r   r   
test_basicx   s
     z#TestChandrupatlaMinimize.test_basicrN   r6   r      r   r   r   c                    s~  |rt ddd|nd}|f}t jfdd} fdd d	 _t d
d	d|d}|| }dd |D }t|j | t	|jj
| dd |D }t|j | t	|jj
| t	|jj|jg|R   dd |D }	t	|j |	 t	|jj
| t |jjt jsJ dd |D }
t	|j |
 t	|jj
| t |jjt jsbJ dd |D }t	|j | t	t |j j t	|jj
|jj
 t |jjt jsJ dd |D }t	|j | t	t |j jd  t	|jj
|jj
 t |jjt jsJ dd |D }t|j | t	|jj
| dd |D }t|j | t	|jj
| dd |D }t|j | t	|jj
| dd |D }t|j | t	|jj
| t|jj|jg|R   dd |D }t|j | t	|jj
| t|jj|jg|R   dd |D }t|j | t	|jj
| t|jj|jg|R   d S )Nr:   rD   r6   rC   c                    s   t  jddd| fdS )NrE   r   r   rF   )r   rB   )Z
loc_singler?   r   r   chandrupatla_single   s    zHTestChandrupatlaMinimize.test_vectorization.<locals>.chandrupatla_singlec                     s     j d7  _ j| i |S Nr
   f_evalsrB   rG   kwargsrB   r?   r   r   rB      s    z6TestChandrupatlaMinimize.test_vectorization.<locals>.fr   rE   r   rF   c                 S   s   g | ]
}|j qS r   r   .0rP   r   r   r   
<listcomp>       z?TestChandrupatlaMinimize.test_vectorization.<locals>.<listcomp>c                 S   s   g | ]
}|j qS r   rM   r^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   successr^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   statusr^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   nfevr^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   nitr^   r   r   r   r`      ra   r   c                 S   s   g | ]
}|j qS r   xlr^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   )xmr^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   xrr^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   flr^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   )fmr^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   frr^   r   r   r   r`      ra   )r   linspacereshape	vectorizerZ   r   ravelr   r   r   rN   rM   rB   rd   
issubdtypedtypebool_rf   integerrh   maxrj   rl   rm   ro   rq   rr   rt   )r?   rN   r@   rG   rW   rO   refsref_xref_funref_successref_flagref_nfevref_nitref_xlZref_xmref_xrref_flZref_fmref_frr   r]   r   test_vectorization   sl    z+TestChandrupatlaMinimize.test_vectorizationc                 C   sl   dd }t jdt jdf}t|dgd dgd t jgd |dd}t tjtjtj	tj
g}t|j| d S )	Nc                    s4   dd dd dd dd g  fddt | |D S )Nc                 S   s   | d d S )N      @r   r   r   r   r   r   <lambda>   ra   z@TestChandrupatlaMinimize.test_flags.<locals>.f.<locals>.<lambda>c                 S   s   | d S Nr7   r   r   r   r   r   r      ra   c                 S   s   | d d S )Nr   rT   r   r   r   r   r   r      ra   c                 S   s   t jS r<   r   nanr   r   r   r   r      ra   c                    s   g | ]\}} | |qS r   r   r_   r   jfuncsr   r   r`      ra   zBTestChandrupatlaMinimize.test_flags.<locals>.f.<locals>.<listcomp>zipZxsjsr   r   r   rB      s    z.TestChandrupatlaMinimize.test_flags.<locals>.frT   rz   r   r   r7   rG   r%   )r   arangeint64r   piarrayeim_ECONVERGED	_ESIGNERR	_ECONVERR
_EVALUEERRr   rf   r?   rB   rG   rO   Z	ref_flagsr   r   r   
test_flags   s     z#TestChandrupatlaMinimize.test_flagsc                 C   s  t jd}|jdd}d}|f}t|ddddd}| }d|d< t| jg|R i |}t|j|j	 }t
|d	|d   d
|d< t| jg|R i |}	t|	j|	j	 }
t
|
d	|d   t
|
| | }d|d< t| jg|R i |}t|j|j	 }t
|d	|d  t|j  d
|d< t| jg|R i |}	t|	j|	j	 }
t
|
d	|d  t|	j  t
|
| | }d|d< t| jg|R i |}t|jd|j  |j }t
|d|d   d
|d< t| jg|R i |}	t|	jd|	j  |	j }t
|d|d   t
|| | }d|d< t| jg|R i |}t|jd|j  |j }t
|d|d  t|j  d
|d< t| jg|R i |}	t|	jd|	j  |	j }t
|d|d  t|	j  t
|| d S )N   FA92 r   sizerE   r   r   r   rG   xatolxrtolfatolfrtolMbP?r   rT   rH   r   r   r   r   )r   randomdefault_rngdictcopyr   rB   absro   rl   r   r   rq   rr   rt   rM   )r?   rngpbracketrG   kwargs0r\   res1Zj1res2Zj2Zh1Zh2r   r   r   test_convergence   sZ    


z)TestChandrupatlaMinimize.test_convergencec                    s.  dd dt jg R fd}t|jr8J t|jd ksPJ t|jksdJ  fddtj_	tj_
d_d _t jg R fd	}| D ]p}|d
kr|| tjksJ j| tjksJ || tjksJ q|| j|   kr"|| ksn J qd S )N~,?r   r   r   r   c                    s   j d7  _ | _t| ds"J j dkrF| j| j| jf ksJ nB| jjk| jjk@ }| jjk| jjk@ }t||B sJ | j_| j_| jt	j
ksJ t| j| j t| j| j t| j| j t| j| j j krtd S Nr
   r   r   )iterrO   hasattrrl   rm   ro   r   allrf   r   _EINPROGRESSr   rB   rq   rr   rt   r   rM   StopIteration)rO   Z
changed_xrZ
changed_xlr   callbackr@   r%   r?   r   r   r   %  s"    
z@TestChandrupatlaMinimize.test_maxiter_callback.<locals>.callbackr*   rG   r   rf   )r   rB   r   anyrd   r   rh   rj   r   rl   ro   r   rO   keysr   r   r   
_ECALLBACKr?   rO   r   keyr   r   r   test_maxiter_callback  s.    z.TestChandrupatlaMinimize.test_maxiter_callbackcasec              
   C   sf   |\}}}d}|| }t |||\}}}}}	}
d}d}d}d}t||||||||d}t|j| d S )Ng?g-C6?rH   gؗҜ<)r   r   r   r   )r)   r   r   rj   )r?   r   r!   r"   rj   r&   r#   r(   r   r   r   r   r   r   r   rO   r   r   r   test_nit_expectedM  s    
z*TestChandrupatlaMinimize.test_nit_expectedg?gffffff?rz   c                    sf    |} fdd}t | d d d|fd}|jj ksDJ t|j|tt jd d S )Nc                    s    | j  ksJ | | d  S )Nr   )rz   astype)r   r@   r   r   r   rB   j  s    z.TestChandrupatlaMinimize.test_dtype.<locals>.fr
   r   rF   rI   )r   r   rz   r   r   sqrtZfinfoeps)r?   r@   rz   rB   rO   r   r   r   
test_dtypec  s    z#TestChandrupatlaMinimize.test_dtypec                 C   s$  d}t jt|d td ddd W d    n1 s60    Y  d}t jt|d" tdd d	dd W d    n1 sz0    Y  d
}t jt|d. tdd ddgddgg d W d    n1 s0    Y  d}t jt|d. tdd ddgddgddg W d    n1 s0    Y  d}t jt|d& tdd ddddd W d    n1 sf0    Y  t jt|d( tdd dddtjd W d    n1 s0    Y  t jt|d& tdd ddddd W d    n1 s0    Y  t jt|d( tdd dddtjd W d    n1 s<0    Y  d}t jt|d& tdd ddddd  W d    n1 s0    Y  t jt|d& td!d ddddd  W d    n1 s0    Y  d"}t jt|d& td#d dddd$d% W d    n1 s0    Y  d S )&N`func` must be callable.matchr.   r   rT   3Abscissae and function output must be real numbers.c                 S   s   | S r<   r   r   r   r   r   r   |  ra   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>            ?+shape mismatch: objects cannot be broadcastc                 S   s   | S r<   r   r   r   r   r   r     ra   r,   r   r   rT   r   z:The shape of the array returned by `func` must be the samec                 S   s   | d | d | d gS Nr   r
   r   r   r   r   r   r     ra   r   (Tolerances must be non-negative scalars.c                 S   s   | S r<   r   r   r   r   r   r     ra   r*   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   ekkir   c                 S   s   | S r<   r   r   r   r   r   r     ra   r   )`maxiter` must be a non-negative integer.c                 S   s   | S r<   r   r   r   r   r   r     ra         ?r%   c                 S   s   | S r<   r   r   r   r   r   r     ra   `callback` must be callable.c                 S   s   | S r<   r   r   r   r   r   r     ra   	shrubberyr   )pytestraises
ValueErrorr   r   r   r?   messager   r   r   test_input_validations  s>    ,0<$686866z.TestChandrupatlaMinimize.test_input_validationc                 C   s   t dddd d t jf }t ttg dj}t| jg|R d|fi}t 	t 
|j||j| ||kB sxJ |jd d df }tt |jj|ddi d S )	Nr*   r
   r   r   rG   r   rJ   gV瞯<)r   ru   Znewaxisr   listr	   Tr   rB   r   iscloser   rM   r   Zbroadcast_arrays)r?   r@   ZbracketsrO   rP   r   r   r   test_bracket_order  s    *z+TestChandrupatlaMinimize.test_bracket_orderc              
   C   s  dd }t jdd$ t|dddddd}W d    n1 s>0    Y  |jsRJ t|jd	d
d t|jd dd }t|d	d	d	}|jsJ t|jd	 dd }d}t|g|R ddi}|jsJ |j	|k|j
dksJ |jdksJ |jdksJ |jdks
J dd }t|ddd	dd}t|jd dd }t|dd	t jddddd}|js^J |j|j  k r||j	k sn J ||j||j  kr||j	ksn J d S )Nc                 S   s    t | jt jsJ | d d S )Nr
   r   r   ry   rz   Zfloatingr   r   r   r   rB     s    z6TestChandrupatlaMinimize.test_special_cases.<locals>.fignoreinvalidr   r   )r   r   r
   r   rI   c                 S   s   | d d S Nr
   r   r   r   r   r   r   rB     s    c                 S   s   | d d S r   r   r   r   r   r   rB     s    )r   皙?r   r%   r   r,   r   c                 S   s   | | d d S Nr   r
   r   r   cr   r   r   rB     s    r*   UUUUUU?rF   c                 S   s   t |  S r<   )r   sinr   r   r   r   rB     s    )r   r   r   r   )r   errstater   rd   r   r   r   rM   rl   ro   rj   rh   rf   r   rm   r?   rB   rO   r   r   r   r   test_special_cases  s8    2

$z+TestChandrupatlaMinimize.test_special_casesN)__name__
__module____qualname__rB   r   markparametrizer   ru   rQ   tupler   r   r   r   casesr   float16float32float64r   r   r   r   r   r   r   r   r;   r   s    
	
L44
)	r;   c                	   @   s   e Zd Zdd Zejddedddgdd	 Z	ejd
e
 dddgdd Zdd Zdd Zdd Zejdedd Zejddddgfejdejejejfdd Zdd  Zd!d" Zd#S )$TestChandrupatlac                 C   s   t j|| S r<   )r   r=   cdf)r?   qr   r   r   r   rB     s    zTestChandrupatla.fr   rC   r:   rD   r7   c                 C   sH   t | jdd|fd}t |}tj|j| |jj	|j	ksDJ d S NrE   r   rF   )
_chandrupatla_rootrB   r   r=   Zppfr   rL   r   r   rN   )r?   r   rO   rP   r   r   r   rQ     s    zTestChandrupatla.test_basicrN   rR   rS   rU   c              
      s  |rt ddd|nd}|f}t jfdd} fdd d	 _t d
d|d}|| }dd |D }t|j | t	|jj
| dd |D }t|j | t	|jj
| t	|jj|jg|R   dd |D }	t	|j |	 t	|jj
| t |jjt jsJ dd |D }
t	|j |
 t	|jj
| t |jjt js`J dd |D }t	|j | t	t |j j t	|jj
|jj
 t |jjt jsJ dd |D }t	|j | t	t |j jd  t	|jj
|jj
 t |jjt jsJ dd |D }t|j | t	|jj
| dd |D }t|j | t	|jj
| t|j|j t |j}t |j| |j| k|j| |j| kB sJ dd |D }t|j | t	|jj
| t|jj|jg|R   dd |D }t|j | t	|jj
| t|jj|jg|R   t t |j| t t |j| t |j| ksJ d S )Nr:   rD   r6   rC   c                    s   t  jdd| fdS r  )r  rB   )r   rV   r   r   rW     s    z@TestChandrupatla.test_vectorization.<locals>.chandrupatla_singlec                     s     j d7  _ j| i |S rX   rY   r[   r]   r   r   rB     s    z.TestChandrupatla.test_vectorization.<locals>.fr   rE   r   rF   c                 S   s   g | ]
}|j qS r   r   r^   r   r   r   r`     ra   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>c                 S   s   g | ]
}|j qS r   rb   r^   r   r   r   r`     ra   c                 S   s   g | ]
}|j qS r   rc   r^   r   r   r   r`     ra   c                 S   s   g | ]
}|j qS r   re   r^   r   r   r   r`     ra   c                 S   s   g | ]
}|j qS r   rg   r^   r   r   r   r`     ra   c                 S   s   g | ]
}|j qS r   ri   r^   r   r   r   r`     ra   r   c                 S   s   g | ]
}|j qS r   rk   r^   r   r   r   r`     ra   c                 S   s   g | ]
}|j qS r   rn   r^   r   r   r   r`      ra   c                 S   s   g | ]
}|j qS r   rp   r^   r   r   r   r`   )  ra   c                 S   s   g | ]
}|j qS r   rs   r^   r   r   r   r`   .  ra   )r   ru   rv   rw   rZ   r  rx   r   r   r   rN   rM   rB   rd   ry   rz   r{   rf   r|   rh   r}   rj   rl   ro   r   isfiniter   rq   rt   r   minimum)r?   rN   r   rG   rW   rO   r~   r   r   r   r   r   r   r   r   Zfiniter   r   r   r]   r   r     sr    z#TestChandrupatla.test_vectorizationc                 C   sd   dd }t jdt jdf}t|dgd t jgd |dd}t tjtjtj	tj
g}t|j| d S )Nc                    s4   dd dd dd dd g  fddt | |D S )Nc                 S   s   | d S )Nr   r   r   r   r   r   r   ;  ra   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>c                 S   s   | d S r   r   r   r   r   r   r   <  ra   c                 S   s   | d d S )Ng?r   r   r   r   r   r   r   =  ra   c                 S   s   t jS r<   r   r   r   r   r   r   >  ra   c                    s   g | ]\}} | |qS r   r   r   r   r   r   r`   ?  ra   z:TestChandrupatla.test_flags.<locals>.f.<locals>.<listcomp>r   r   r   r   r   rB   :  s    z&TestChandrupatla.test_flags.<locals>.frT   r   r   r   r   )r   r   r   r  r   r   r   r   r   r   r   r   rf   r   r   r   r   r   7  s     zTestChandrupatla.test_flagsc                 C   s  t jd}|jdd}d}|f}t|ddddd}| }d|d< t| jg|R i |}t|j|j	 d d	|d< t| jg|R i |}t|j|j	 d	 t|j|j	 |j|j	  | }d|d
< t| jg|R i |}t|j|j	 dt 
|j  d	|d
< t| jg|R i |}t|j|j	 d	t 
|j  t|j|j	 |j|j	  | }d|d< t| jg|R i |}tt 
|jd d	|d< t| jg|R i |}tt 
|jd	 tt 
|jt 
|j | }d|d< |\}	}
t t
| j|	g|R  t
| j|
g|R  }t| jg|R i |}tt 
|jd|  d	|d< t| jg|R i |}tt 
|jd	|  tt 
|jt 
|j d S )Nr   r   r   rE   r   r   r   r   r   rH   r   r   r   )r   r   r   r   r   r  rB   r   ro   rl   r   r   rM   r  )r?   r   r   r   rG   r   r\   r   r   r"   r#   Zf0r   r   r   r   J  sN    0z!TestChandrupatla.test_convergencec                    sB  dd dfddd _ d _tg R fd}t|jrNJ t|jd ksfJ t|jkszJ  fdd	d
_	d _
d _d _tg R fd}| D ]t}|dkr|| tjksJ j
| tjksJ || tjks<J q|| j
|   kr6|| ksn J qd S )Nr   r  r   c                    s"   t  | | }|  _| _|S r<   )r   r=   r	  r   rM   )r
  r   rO   )rB   r   r   rB   ~  s    z1TestChandrupatla.test_maxiter_callback.<locals>.fr   r   c                    s    j d7  _ | _t| ds"J j dkrB| j| jf ksJ n>| jjk| jjk@ | jjk| jjk@ B }t|sJ | j_| j_| jtj	ksJ t
| j| j t
| j| j t
| j| j j krtd S r   )r   rO   r   rl   ro   r   r   rf   r   r   r   rB   rq   rt   r   rM   r   )rO   changed)r   r   r%   r   r?   r   r   r     s"    

z8TestChandrupatla.test_maxiter_callback.<locals>.callbackr*   r   rf   )r   rM   r  r   r   rd   r   rh   rj   r   rO   rl   ro   r   r   r   r   r   r   r   )r   r   rB   r%   r   r?   r   r   x  s4    
z&TestChandrupatla.test_maxiter_callbackr   c                 C   sL   |\}}}}}t |g|R ddd}t|j||ddd t|j| d S )Ng|=gh㈵>)r   r   g:0yE>gMb`?)rJ   rK   )r  r   rM   r   rh   )r?   r   rB   r   rootZnfevalidrO   r   r   r   r     s    z"TestChandrupatla.test_nit_expectedr  gCl?gV-?rz   c                    sj    |} fdd}t | d d|fdd}|jj ks@J tj|j|ddsft|jdksfJ d S )	Nc                    s   | | d   S )Nr   )r   )r   r  r   r   r   rB     s    z&TestChandrupatla.test_dtype.<locals>.fr   r   r   )rG   r   )rK   r   )r  r   rz   r   Zallcloser   rM   )r?   r  rz   rB   rO   r   r   r   r     s    zTestChandrupatla.test_dtypec                 C   s  d}t jt|d td dd W d    n1 s40    Y  d}t jt|d  tdd dd W d    n1 sv0    Y  d	}t jt|d( td
d ddgg d W d    n1 s0    Y  d}t jt|d( tdd ddgddg W d    n1 s0    Y  d}t jt|d$ tdd dddd W d    n1 sT0    Y  t jt|d& tdd ddtjd W d    n1 s0    Y  t jt|d$ tdd dddd W d    n1 s0    Y  t jt|d& tdd ddtjd W d    n1 s$0    Y  d}t jt|d$ tdd dddd W d    n1 sl0    Y  t jt|d$ td d dddd W d    n1 s0    Y  d!}t jt|d$ td"d ddd#d$ W d    n1 s0    Y  d S )%Nr   r   r.   rT   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   z8TestChandrupatla.test_input_validation.<locals>.<lambda>r   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r,   r   r   z,The shape of the array returned by `func`...c                 S   s   | d | d | d gS r   r   r   r   r   r   r     ra   r   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r*   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r   c                 S   s   | S r<   r   r   r   r   r   r     ra   r   r   )r   r   r   r  r   r   r   r   r   r   r     s:    *.68464644z&TestChandrupatla.test_input_validationc                 C   s  dd }t |dd}|jsJ t|jd dd }t |dd}|jsHJ t|jd dd }tjdd	  t |tjtj}W d    n1 s0    Y  |jsJ t|jtj d
d }d}t |g|R ddi}|jsJ |j	|k|j
dksJ |jdksJ |jdksJ |jdks$J t |g|R ddi}|jsFJ |jdksVJ |j
dksfJ |jdksvJ t|jd dd }t |dddd}t|jd d S )Nc                 S   s    t | jt jsJ | d d S )Nc   r
   r   r   r   r   r   rB     s    z.TestChandrupatla.test_special_cases.<locals>.fr   r   r
   c                 S   s   | d d S r   r   r   r   r   r   rB     s    c                 S   s   d|  S rX   r   r   r   r   r   rB     s    r   r   c                 S   s   | d d S )Nr   r
   r   r   r   r   r   rB     s    )r   r   r%   r   r   r,   r   r   c                 S   s   ||  d S rX   r   r   r   r   r   rB   )  s    r*   rF   r   )r  rd   r   r   r   r   r   infrl   ro   rj   rh   rf   r   r   r   r   r     s<    

.
z#TestChandrupatla.test_special_casesN)r   r   r   rB   r   r  r  r   ru   rQ   r  r   r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r    s   

L.:
(r  ) r   numpyr   Znumpy.testingr   r   r   Zscipyr   Z(scipy._lib._elementwise_iterative_methodZ_libZ_elementwise_iterative_methodr   Zscipy.optimize._chandrupatlar   r   r  Zscipy.optimize._tstutilsr   	itertoolsr	   Z
test_zerosr   r   r   r   r   r   r)   r  r;   r  r   r   r   r   <module>   s   ;  m