o
    tBhpl                     @   s  d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ dd i fddZg dZdd	 Zd
d Zdd Zdd Z G dd dZ!G dd dZ"G dd dZ#G dd dZ$G dd dZ%dd Z&dd Z'dd Z(dS )     N)assert_almost_equalassert_array_equalassert_array_almost_equalassert_allcloseassert_equalassert_)raises)KroghInterpolatorkrogh_interpolateBarycentricInterpolatorbarycentric_interpolateapproximate_taylor_polynomialCubicHermiteSplinepchipPchipInterpolatorpchip_interpolateAkima1DInterpolatorCubicSplinemake_interp_splinec                 C   s  t jd g d}ttdt|d }||t|d  d t jjd|  |}|j	dkr3d S t 
|}	| tu rVt jjd|  |}
| |||
fd|i||	}n| ||fd|i||	}|pfd|jd |  | |j|d  dd   }t|j| |r|j	dkr| tu r| t|t|t|
fd|i|t|	 n| t|t|fd|i|t|	 |	j	dkr|d u r|jd | dt|  |j|d  dd   }|td f||j  d  }||}t ||\}}t|| d S d S d S )	N  )r               r   r      axis r   )nprandomseedlistrangeleninsertrand	transposesizezerosr   shaper   slicendimreshapebroadcast_arraysr   )interpolator_clsx_shapey_shapederiv_shaper   
extra_argsxsyxidydxyitarget_shapebs_shapeyvr   r   {/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/scipy/interpolate/tests/test_polyint.pycheck_shape   sJ   

0
r?   )r   r   r   )r   r      c                  C   s   dd } t ttttt| fD ]8}tD ]3}tD ].}tt| t|D ]!}|tkr0t	|||d | q!dD ]}d|i}t	|||d || q2q!qqqd S )Nc                 S   s   t | ||dS N)r   )r   r5   r7   r   r   r   r>   
spl_interpB      ztest_shapes.<locals>.spl_interp)naturalclampedbc_type)
r	   r   r   r   r   r   SHAPESr$   r%   r?   )rD   ips1s2r   bcextrar   r   r>   test_shapes@   s"   rO   c               	   C   sL   ddd} t D ]}t D ]}tt| t|D ]
}t| ||d| qqqd S )Nr   c                 S      t | ||jS N)r	   derivativesrC   r   r   r>   krogh_derivsR   rE   z(test_derivs_shapes.<locals>.krogh_derivsr   r@   rI   r$   r%   r?   )rS   rK   rL   r   r   r   r>   test_derivs_shapesQ   s   
rU   c                  C   s   ddd} ddd}ddd}ddd	}dd
d}ddd}ddd}ddd}ddd}ddd}	ddd}
ddd}| |||||||||	|
|fD ]!}t D ]}t D ]}tt| t|D ]
}t|||d| q^qRqNqJd S )Nr   c                 S   rP   rQ   )r	   
derivativerC   r   r   r>   krogh_deriv\   rE   z&test_deriv_shapes.<locals>.krogh_derivc                 S      t | || S rQ   r   rV   rC   r   r   r>   pchip_deriv_      z&test_deriv_shapes.<locals>.pchip_derivc                 S      t | ||dS Nr   rY   rC   r   r   r>   pchip_deriv2b      z'test_deriv_shapes.<locals>.pchip_deriv2c                 S   rX   rQ   rY   rC   r   r   r>   pchip_antiderive   r[   z*test_deriv_shapes.<locals>.pchip_antiderivc                 S   r\   r]   rY   rC   r   r   r>   pchip_antideriv2h   r_   z+test_deriv_shapes.<locals>.pchip_antideriv2c                 S   s   G dd dt }|| ||S )Nc                   @      e Zd Zdd ZdS )z9test_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.Pc                 S   s   t | |dS )Nr   )r   __call__)selfr5   r   r   r>   rc   m   rE   zBtest_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.P.__call__N)__name__
__module____qualname__rc   r   r   r   r>   Pl   s    rh   )r   )r5   r7   r   rh   r   r   r>   pchip_deriv_inplacek   s   z.test_deriv_shapes.<locals>.pchip_deriv_inplacec                 S   rX   rQ   )r   rV   rC   r   r   r>   akima_derivr   r[   z&test_deriv_shapes.<locals>.akima_derivc                 S   rX   rQ   )r   antiderivativerC   r   r   r>   akima_antiderivu   r[   z*test_deriv_shapes.<locals>.akima_antiderivc                 S   rX   rQ   )r   rV   rC   r   r   r>   cspline_derivx   r[   z(test_deriv_shapes.<locals>.cspline_derivc                 S   rX   rQ   )r   rk   rC   r   r   r>   cspline_antideriv{   r[   z,test_deriv_shapes.<locals>.cspline_antiderivc                 S      t | ||d S rB   )r   rV   rC   r   r   r>   
bspl_deriv~   r_   z%test_deriv_shapes.<locals>.bspl_derivc                 S   ro   rB   )r   rk   rC   r   r   r>   bspl_antideriv   r_   z)test_deriv_shapes.<locals>.bspl_antiderivr   r@   rT   )rW   rZ   r^   r`   ra   ri   rj   rl   rm   rn   rp   rq   rJ   rK   rL   r   r   r   r>   test_deriv_shapes[   s0   











rr   c                  C   sp   g d} g d}t tttfD ]}|| |}t|||  qg d}t| ||}t|||  t||| d d S )Nr   r   r   r   )r   r                 ?r   )r   y             r   y              @r   )r	   r   r   r   r   r   )r5   r7   rJ   pr9   r   r   r>   test_complex   s   
rv   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%S )&	TestKroghc                 C   B   t g d| _t ddd| _t ddd| _| | j| _d S N)r   r   rA   r   r   d   rA   r    poly1d	true_polylinspacetest_xsxsysrd   r   r   r>   setup_method      zTestKrogh.setup_methodc                 C   *   t | j| j}t| | j|| j d S rQ   r	   r   r   r   r   r   rd   rh   r   r   r>   test_lagrange      zTestKrogh.test_lagrangec                 C   F   t | j| j}t| d|d t| td|td d S N   )r	   r   r   r   r   r    arrayr   r   r   r>   test_scalar      $zTestKrogh.test_scalarc                 C   sN   t | j| j}|| j}t|jd D ]}t| j	|| j||  qd S )Nr   )
r	   r   r   rR   r   r$   r+   r   r   derivrd   rh   Dir   r   r>   test_derivatives   s   zTestKrogh.test_derivativesc                 C   sZ   t | j| j}|| jt| jd }t|jd D ]}t| j	
|| j||  qd S )Nr   r   )r	   r   r   rR   r   r%   r$   r+   r   r   r   r   r   r   r>   test_low_derivatives   s   zTestKrogh.test_low_derivativesc                 C   sJ   t | j| j}d}|| j|}t|D ]}t|| j|||  qd S )N
   )r	   r   r   rR   r   r$   r   rV   )rd   rh   mrr   r   r   r>   test_derivative   s   zTestKrogh.test_derivativec                 C   sR   t | j| j}tt| jdt| j D ]}t|| j|t	t| j qd S r]   )
r	   r   r   r$   r%   r   rV   r   r    r*   )rd   rh   r   r   r   r>   test_high_derivative   s   zTestKrogh.test_high_derivativec                 C   r   rQ   r   r   r   r   r>   test_hermite   r   zTestKrogh.test_hermitec              	      s   g dt ddgddgddggt}fddtjd D }t ddd	 t| t  fd
d|D j t|	 t 
t  fdd|D d d S )Nr   r   r   r   r   r   c                    s"   g | ]}t  d d |f qS rQ   )r	   .0r   )r   r   r   r>   
<listcomp>      " z)TestKrogh.test_vector.<locals>.<listcomp>r   r   r|   c                       g | ]}| qS r   r   r   ru   r   r   r>   r          c                    s   g | ]}|  qS r   )rR   r   r   r   r>   r      s    )r   r   r   )r    r   r	   r$   r+   r   r   asarrayTrR   r(   rd   rh   Pir   )r   r   r   r>   test_vector   s   

zTestKrogh.test_vectorc                 C   s    t | j| j}t|g g  d S rQ   )r	   r   r   r   r   r   r   r>   
test_empty   s   zTestKrogh.test_emptyc                 C   n   t | j| j}tt|dd tt|tdd tt|dgd tt|ddgd d S Nr   r   r   r   )r   )r	   r   r   r   r    r+   r   r   r   r   r>   test_shapes_scalarvalue   
   z!TestKrogh.test_shapes_scalarvaluec                 C   s   t | j| j}|j}tt|d|f tt|td|f tt|dg|df tt|ddg|df d S )Nr   r   r   )	r	   r   r   nr   r    r+   rR   r   rd   rh   r   r   r   r>   "test_shapes_scalarvalue_derivative   s   "z,TestKrogh.test_shapes_scalarvalue_derivativec                 C   b   t | jt| jtd}tt|dd tt|dgd tt|ddgd d S Nr   r   )r   )r   r   r   )r   r   )r	   r   r    outerr   aranger   r+   r   r   r   r>   test_shapes_vectorvalue      z!TestKrogh.test_shapes_vectorvaluec                 C   ^   t | jt| jdg}tt|dd tt|dgd tt|ddgd d S Nr   r   r   )r   r   )r   r   )r	   r   r    r   r   r   r+   r   r   r   r>   test_shapes_1d_vectorvalue      z$TestKrogh.test_shapes_1d_vectorvaluec                 C   s~   t | jt| jtd}|j}tt|	d|df tt|	dg|ddf tt|	ddg|ddf d S )Nr   r   r   r   )
r	   r   r    r   r   r   r   r   r+   rR   r   r   r   r>   "test_shapes_vectorvalue_derivative   s
   $z,TestKrogh.test_shapes_vectorvalue_derivativec                 C   s   t | j| j}t}t|| j|| j| j| j t|| jd|| j| j| jdd t|| jd|| j| j| jddgd d S )Nr   derr   r   )r	   r   r   r
   r   r   rV   rR   )rd   rh   kir   r   r>   test_wrapper   s   zTestKrogh.test_wrapperc                 C   sJ   g d}t g d}t||}tt||| ||d ddd d S )N)r      i  i  i  i  i|  i$	  i  i  i   i03  i`  )gffffffg닥ąg䑉g!p$ЀgV0޿gx*ZֿgDпg2]g H.g9Cg6D.gG/g?r   r   g|=atol)r    r   r	   r   absrV   )rd   r5   
offset_cdffr   r   r>   test_int_inputs  s   

zTestKrogh.test_int_inputsc                 C   sl   t g dt g d}}t||}|d}t||jddt||jd  }t||dd d S )N)r   r   r   r   r   )r   rt   r   r   rt   r   rt   V瞯<r   )r    r   r	   rR   realimagr   )rd   r5   r7   funccmplxcmplx2r   r   r>   test_derivatives_complex  s   

z"TestKrogh.test_derivatives_complexN)re   rf   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r>   rw      s&    	rw   c                   @   rb   )
TestTaylorc                 C   sP   d}t tjd|dd}t|d D ]}t|dd | }qt|dd d S )NrA   r   r      )r   r    expr$   r   r   )rd   degreeru   r   r   r   r>   test_exponential  s   
zTestTaylor.test_exponentialN)re   rf   rg   r   r   r   r   r>   r     s    r   c                   @   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )TestBarycentricc                 C   rx   ry   r}   r   r   r   r>   r   (  r   zTestBarycentric.setup_methodc                 C   r   rQ   )r   r   r   r   r   r   r   r   r   r>   r   .  r   zTestBarycentric.test_lagrangec                 C   r   r   )r   r   r   r   r   r    r   r   r   r   r>   r   2  r   zTestBarycentric.test_scalarc                 C   s2   t | j}|| j t| | j|| j d S rQ   )r   r   set_yir   r   r   r   r   r   r   r>   test_delayed7  s   
zTestBarycentric.test_delayedc                 C   sZ   t | jd d | jd d }|| jdd  | jdd   t| | j|| j d S )Nr   )r   r   r   add_xir   r   r   r   r   r   r>   test_append<  s    zTestBarycentric.test_appendc                    s   g dt ddgddgddggt  } fddtjd D }t ddd	t|t fd
d|D j d S )Nr   r   r   r   c                    s"   g | ]} d d |f qS rQ   r   r   )BIr   r   r   r>   r   F  r   z/TestBarycentric.test_vector.<locals>.<listcomp>r   r   r|   c                    r   r   r   r   r   r   r>   r   I  r   )	r    r   r   r$   r+   r   r   r   r   r   r   )r   r   r   r   r>   r   A  s   
 zTestBarycentric.test_vectorc                 C   r   r   )r   r   r   r   r    r+   r   r   r   r   r>   r   K  r   z'TestBarycentric.test_shapes_scalarvaluec                 C   r   r   )r   r   r    r   r   r   r   r+   r   r   r   r>   r   R  r   z'TestBarycentric.test_shapes_vectorvaluec                 C   r   r   )r   r   r    r   r   r   r+   r   r   r   r>   r   X  r   z*TestBarycentric.test_shapes_1d_vectorvaluec                 C   s4   t | j| j}t| j| j| j}t|| j| d S rQ   )r   r   r   r   r   r   )rd   rh   valuesr   r   r>   r   ^  s   zTestBarycentric.test_wrapperc                 C   s6   dt dd }t dd}t||d}t|d d S )Ni  r      g     @g      #@)r    r   r   r   )rd   r5   r7   valuer   r   r>   test_int_inputc  s   zTestBarycentric.test_int_inputc                 C   s   d}t |d t j}t |t j | }d| }|d  d9  < |d  d9  < t|}|jd }t|jd|  | d S )Ni   r   r   r         ?r   )	r    r   astypefloat64cospir   wir   )rd   r   jr5   wrh   factorr   r   r>   test_large_chebyshevi  s   	
z$TestBarycentric.test_large_chebyshevN)re   rf   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r>   r   '  s    
r   c                   @   s^   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd ZdS )	TestPCHIP   c                 C   s:   t jd t t j|}t j|}t||||fS )Nr   )r    r!   r"   sortr   )rd   nptsr8   r:   r   r   r>   _make_random  s   zTestPCHIP._make_randomc                 C   s   |   \}}}tt|d D ]<}|| ||d  }}|| ||d  }}||kr0||}}t||d}	||	}
t||
d k|
|d k@   qd S )Nr   r   r   r   r$   r%   r    r   r   allrd   ru   r8   r:   r   x1x2y1y2xpypr   r   r>   test_overshoot  s   
"zTestPCHIP.test_overshootc                 C   s   |   \}}}tt|d D ]9}|| ||d  }}|| ||d  }}t||d}	||	}
t|| |
dd  |
d d   dk  qd S )Nr   r   r   r   r   r   r   r>   test_monotone  s   .zTestPCHIP.test_monotonec                 C   sh   t g dg dg}t d}t|d |d |}|d }t|d |d |}t||ddd d S )	N)
r   r         /   <   O   W   c   r|   )
r  irz   r      &   -   5   7   r|   r   r         ?+=)r   rtol)r    r   r   r   r   )rd   dataxxcurvedata1curve1r   r   r>   	test_cast  s   

zTestPCHIP.test_castc                 C   sz   d}t t|}t|d d df |d d df }d}t t|}t|d d df ||d d df ddd d S )Na  
          7.99   0.00000E+0
          8.09   0.27643E-4
          8.19   0.43750E-1
          8.70   0.16918E+0
          9.20   0.46943E+0
         10.00   0.94374E+0
         12.00   0.99864E+0
         15.00   0.99992E+0
         20.00   0.99999E+0
        r   r   a^  
           7.9900       0.0000
           9.1910       0.4640
          10.3920       0.9645
          11.5930       0.9965
          12.7940       0.9992
          13.9950       0.9998
          15.1960       0.9999
          16.3970       1.0000
          17.5980       1.0000
          18.7990       1.0000
          20.0000       1.0000
                g-C6
?r	  r   )r    loadtxtioStringIOr   r   )rd   dataStrr
  pch	resultStrresultr   r   r>   test_nag  s   "0zTestPCHIP.test_nagc                 C   sp   t g d}t g d}t g d}t||t||fD ]}|d |d fD ]}t||ddk q)qd S )N)r  g?g      ?gffffff?)皙uq@g     @@     @@     @)r  r  g     p@r  r   r   r   )r    r   r   r   )rd   r5   r   r   pptr   r   r>   test_endslopes  s   zTestPCHIP.test_endslopesc                 C   sp   t d}t |}t  td t||}W d    n1 s#w   Y  t ddd}t||d d S )Nr   errorr   	   e   r  )	r    r   
zeros_likewarningscatch_warningsfilterwarningsr   r   r   )rd   r5   r7   r  r  r   r   r>   test_all_zeros  s   



zTestPCHIP.test_all_zerosc                 C   s:   t ddd}tddgddg}t||d| dd d S )Nr   r   r   r   r   r   )r    r   r   r   )rd   r5   ru   r   r   r>   test_two_points  s   zTestPCHIP.test_two_pointsc                 C   st   t tg dg ddgdddg t tg dg ddgdddg t tg dg ddgddgddgdgg d S )	Nr   r   r   )r   rA   r   r   r   r   r  r   g      @)r   r   r   r   r   r>   test_pchip_interpolate  s   
z TestPCHIP.test_pchip_interpolatec                 C   s(   t ddgddg}| }t|d d S )Nr   r   r   r   )r   rootsr   )rd   ru   r   r   r   r>   
test_roots  s   zTestPCHIP.test_rootsN)r   )re   rf   rg   r   r   r   r  r  r  r'  r(  r*  r,  r   r   r   r>   r     s    

#
	r   c                   @   sf   e Zd Ze		dddZdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )TestCubicSpline
not-a-knotr  c                 C   s  | j }| j}t|}||jd gdg|jd   }|dd }t|dddf |dddf |d  |dddf |d   |dddf |  |dddf  ||d t|dddf d|dddf  |d  d|dddf  |  |dddf  ||d t|dddf d|dddf  | |dddf  ||d |jdkr|dkr|dkrt|d d||d dS |d	krt| |d d| |d d||d t| |d d| |d d||d t| |d d| |d d||d dS |dkr1|jdkr$| |d | |d  |d  }t| |d d|||d nDt|d
 |d ||d n7|dkrDt| |d dd||d n$|dkrWt| |d dd||d n|\}	}
t| |d |	|
||d |dkr|jdkr| |d | |d  |d  }t| |d d|||d dS t|d |d ||d dS |dkrt| |d dd||d dS |dkrt| |d ddd| d| d dS |\}	}
t| |d |	|
||d dS )zVCheck that spline coefficients satisfy the continuity and boundary
        conditions.r   r   r   Nr   r   r  r.  periodic)r   r   )r   r   rG   rF   )r   r   )r   rz   )	r5   cr    diffr.   r+   r-   r   r)   )Sbc_startbc_endtolr5   r0  dxdxislopeorderr   r   r   r>   check_correctness  sh   
">*6$$$
 


 

&z!TestCubicSpline.check_correctnessc                 C   s   t |j}||= t|}|d t|}|d dddd|fd|fg}|d d D ]}t||||d}	| |	|| q-|D ]}
|D ]}t||||
|fd}	| j|	|
|d	d
 qEqAd S )Nr   r   r.  rF   rG   r   r   r   rH   g+=r5  )r#   r+   r    emptyfillr   r:  )rd   r5   r7   r   r3   first_derivsecond_derivbc_allrM   r2  r3  r4  r   r   r>   check_all_bc?  s*   




zTestCubicSpline.check_all_bcc                 C   s   t g d}t g d}dd|jfD ]^}| |d | |d | d t d|df}|d | |dd d df< |d | d |dd d df< |d | d |dd d df< |d | d |dd d df< | |d | |d qd S )N)r   r   r   r   r   g      @g      @r!  )r   g      r   r   g      @r   r   r   r   r   r   r   )r    r   r)   rB  r=  )rd   r5   r7   r   Yr   r   r>   test_generalV  s   zTestCubicSpline.test_generalc                 C   s   dD ]`}t ddt j |}t |}t||dd}| |dd t d|df}||dd d df< |d |dd d df< |d |dd d df< |d |dd d df< t||ddd}| |dd qd S )	N)r   r   rA   r   r   r/  rH   r   rA   r;  )r    r   r   r   r   r:  r=  )rd   r   r5   r7   r2  rC  r   r   r>   test_periodicc  s   
zTestCubicSpline.test_periodicc                 C   sP   t ddt j d}t |}t||dd}t|d|ddt j  dd d S )	Nr   r   r   r/  rE  r   r   )decimal)r    r   r   r   r   r   rd   r5   r7   r2  r   r   r>   test_periodic_evalr  s   
$z"TestCubicSpline.test_periodic_evalc                 C   s>   t g d}t g d}t||ddd}| |dd d S )N)??gffffff? @@      @g333333@g@g@g      @g      @g      @g       @gffffff"@g      %@g&@g333333'@g      (@g333333)@g      *@g*@)rK  g      ?g?rL  rM  g@g333333@g333333@gffffff @rL        @gffffff@rO  g333333?gffffff?rJ  gffffff?g333333?r   g?rK  r/  )rH   extrapolate)r    r   r   r:  rH  r   r   r>   *test_second_derivative_continuity_gh_11758x  s   z:TestCubicSpline.test_second_derivative_continuity_gh_11758c                 C   sZ   t g d}t g d}t||dd}| |dd t|d|t g d d S )N)r  g      @rN  )r  g      .@r  r/  rE  r   )      HrR  rR  )r    r   r   r:  r   rV   rH  r   r   r>   test_three_points  s
   "z!TestCubicSpline.test_three_pointsc                 C   s   t jg dtd}t jg dtd}t||}| | t g d}t||}| | t||d dd}| |dd	 t g d}t||d
dgd}| |d
d d S )N)r   r   r   r   )dtype)r   r   r   )y            ?r  y      ?      y      ?      r   )rF   r   y               @rE  rF   rV  )r   y       @      ?)r   y      ?      )r    r   intr   r:  rH  r   r   r>   test_dtypes  s   



zTestCubicSpline.test_dtypesc                 C   sJ   t jd}t |jdd}d|jdd }t||}| j|dd d S )Nr   r|   )r)   g     @gvIh%<=r<  )r    r!   RandomStater   uniformr   r:  )rd   rngr5   r7   r2  r   r   r>   test_small_dx  s
   
zTestCubicSpline.test_small_dxc              	   C   s  t g d}t g d}t g d}t t jdddg}t g d}t t jdddg}g d}dg}dg}	ttt|| ttt|| ttt|| ttt|| ttt|| ttt|d d t jf | ttt||	 g d	}
|
D ]}ttt||d
|d qxt j||f }d}ddg dff}ddd
d
ggff}ttt||d
|d ttt||d
|d ttt||d
|d ttt||d
dd d S )Nrs   )y      ?      ?r   r   r   r   r   r   )r   r   r   r   r)  r   ))r/  rG   ))r   r   )r   r   )r   r   )r  r  z
not-a-typor   T)rG   r]  rG   )r   r   r   r/  )r    r   nanassert_raises
ValueErrorr   newaxisc_)rd   r5   r7   xcxnxoyny3r   r   wrong_bcrH   rC  bc1bc2bc3r   r   r>   test_incorrect_inputs  s6   z%TestCubicSpline.test_incorrect_inputsN)r.  r.  r  )re   rf   rg   staticmethodr:  rB  rD  rF  rI  rQ  rS  rX  r\  rl  r   r   r   r>   r-    s    ;	r-  c                  C   sN   g d} g d}g d}t | ||}t|| |dd t|| d|dd d S )N)r   r   r   )r   r   r   )r   r   r   r   )r	  r   )r   r   )r5   r7   r9   r6   r   r   r>   #test_CubicHermiteSpline_correctness  s   rn  c                  C   sH   g d} g d}g d}t tt| || ddtjg}t tt| || d S )Nr)  )r   r   rA   )r   r   r   r   r   r   )r_  r`  r   r    r^  )r5   r7   r9   dydx_with_nanr   r   r>   &test_CubicHermiteSpline_error_handling  s   rp  c                  C   sd   t ddg} t ddg}t ddg}t| ||}|jdd}t|jjd	 d	 t|jd
 d S )NgMbP?gMb`?gBܻ>gdJ>g/"g%"T)rP  r   r   )r    r   r   r+  r   r0  r+   r)   )r5   r7   dyru   r   r   r   r>   test_roots_extrapolate_gh_11185  s   rr  ))r$  r  numpyr    numpy.testingr   r   r   r   r   r   pytestr   r_  scipy.interpolater	   r
   r   r   r   r   r   r   r   r   r   r   r?   rI   rO   rU   rr   rv   rw   r   r   r   r-  rn  rp  rr  r   r   r   r>   <module>   s0     8
+
2 
\ M	
