a
    Re                     @   s.  d dl mZ d dlmZmZmZmZmZ d dlZd dlm	Z
 d dlZd dlmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZm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. Z0d/d0 Z1d1d2 Z2ej3j4ej35d3g d4d5d6 Z6d7d8 Z7d9d: Z8d;d< Z9d=d> Z:d?d@ Z;dAdB Z<dCdD Z=dEdF Z>dGdH Z?dIdJ Z@dKdL ZAdMdN ZBdOdP ZCdQdR ZDdSdT ZEdUdV ZFej35d3g dWdXdY ZGdZd[ ZHej35d\ejIejJgd]d^ ZKdS )_    )product)assert_assert_allcloseassert_equalassert_no_warningssuppress_warningsN)raises)group_columns)	solve_ivpRK23RK45DOP853RadauBDFLSODA)OdeSolution)num_jac)ConstantDenseOutput)
coo_matrix
csc_matrixc                 C   s
   t |S N)np
zeros_likety r   W/var/www/sunrise/env/lib/python3.9/site-packages/scipy/integrate/_ivp/tests/test_ivp.pyfun_zero   s    r   c                 C   s,   t |d  d|d   |d |d  gS )Nr         r   arrayr   r   r   r   
fun_linear   s    r#   c                   C   s   t ddgddggS )Nr    r!   r   r   r   r   
jac_linear   s    r&   c                 C   s8   t dt d|   dt d|   t d|   fS )Nr%      )r   vstacksincosr   r   r   r   
sol_linear   s    r,   c                 C   sB   t |d |  |d |d d|d   d  | |d d   gS Nr    r   r'   r!   r   r   r   r   fun_rational    s    .r.   c                 C   sB   t |d |  |d |d d|d   d  | |d d   fS r-   r   r(   r   r   r   r   fun_rational_vectorized%   s    .r0   c                 C   s^   t dd|  gd|d d  | |d d d   |d d|d   d | |d d   ggS Nr   r    r'      r!   r   r   r   r   jac_rational*   s    
"&r4   c                 C   s\   t dd|  gd|d d  | |d d d   |d d|d   d | |d d   ggS r1   )r   r   r   r   r   jac_rational_sparse2   s    
"&r5   c                 C   s&   t | | d  d|  | d d  fS )N
   r'   )r   Zasarrayr+   r   r   r   sol_rational:   s    r7   c                 C   sF  |j d d }d}d}| dkr"dnd}t|d||d f}d| }t|d }d|| d d  |d  }|| d d |d  }	d| d }
d| d }d| }d| d }td| }|||
 ||   d|  |	|| d||   ||
   |d   |||  ||   |d d d< | ||  ||  |dd d< |S )	Nr   r'   d   r3   r   r2   r       )shaper   hstackarangeempty)r   r   nkcphidjalphabetaZj_2_p1Zj_2_m3Zj_2_m1Zj_2fr   r   r   fun_medazko>   s*    & rG   c                 C   s   g }g }t | d }||dd   ||dd  d  || || || ||d  ||d d  ||d d d  t | d d }|| || || ||d  t |}t |}tt |||ffS )Nr'   r    r$   )r   r<   appendr;   r   	ones_like)r>   colsrowsir   r   r   medazko_sparsityY   s&    







rM   c                 C   s   | S r   r   r   r   r   r   fun_complexy   s    rN   c                 C   s   t |jd  S )Nr   )r   Zeyer:   r   r   r   r   jac_complex}   s    rO   c                 C   s   t t| |S r   )r   rO   r   r   r   r   jac_complex_sparse   s    rP   c                 C   s   dt |   }|dS )N      ?      ?)r    r$   )r   expZreshaper   r   r   r   sol_complex   s    rS   c                 C   s:   | | ||t |   }t jj|ddt |jd  S )Nr   )Zaxis)r   abslinalgnormsqrtr:   )r   y_truertolatoler   r   r   compute_error   s    r\   c                  C   sF  d} d}ddg}t ddgg ddd	gdd
ggd ttgD ]\}}}}|rPt}nt}t 6}|td t|||| ||d||d	}	W d    n1 s0    Y  t	|	j
d |d  t|	jd u  t|	jd u  t|	j t	|	jd |dkrt|	jdk  nt|	jdk  |dv r0t	|	jd t	|	jd n@td|	j  k oHdk n   td|	j  k ohdk n   t|	j
}
t|	j|
| |}tt|dk  tj| }t|}|	|}t||| |}tt|dk  |d |d  d }t|}|	|}t||| |}tt|dk  |dkr8t|	|	j
|	jddd q8d S )NMbP?ư>UUUUUU?qq?FTr   r   r   r   r   r   r   	   r    AThe following arguments have no effect for a chosen solver: `jac`)rY   rZ   methoddense_outputjac
vectorizedr   r   2   (   )r   r   r   r   r9   r6   r$   r'   r   V瞯<rY   rZ   )r   r4   r5   r0   r.   r   filterUserWarningr
   r   r   r   t_eventsy_eventssuccessstatusnfevnjevnlur7   r\   r   r   alllinspacesolr   )rY   rZ   y0rg   rd   t_spanrf   funsupresrX   r[   tcyc_trueycr   r   r   test_integration   s`    
$

  



r   c                  C   s  d} d}dg}ddg}t |d |d }tg dd ttgD ]f\}}t 4}|td tt	|||d| ||d	}W d    n1 s0    Y  t
|jd |d  t|jd u  t|jd u  t|j t
|jd |d
kr|jdk sJ n|jdk sJ |dkr&t
|jd |jdk sFJ n |jdks6J |jdksFJ t|j}	t|j|	| |}
t |
dk stJ t|}||}t||| |}
t |
dk s>J q>d S )Nr]   r^   rQ   r   r    )r   r   r   r   rc   T)rd   re   rY   rZ   rf   r   #      r      r   )r   rv   r   rO   rP   r   rl   rm   r
   rN   r   r   r   rn   ro   rp   rq   rr   rs   rt   rS   r\   r   ru   rw   )rY   rZ   rx   ry   r}   rd   rf   r{   r|   rX   r[   r~   r   r   r   r   test_integration_complex   sF    
$



r   c                  C   s6  d} ddg}t d|  }d|dd d< t| }dD ]}tt||||d}t|jd |d  t|jd u  t|j	d u  t|j
 t|jd t|jd d	d
d t|jd ddd t|jd dd
d t|jd ddd t|jd dd
d t|jd ddd t|jd ddd t|jd dd
d q4d S )N   r      r'   r    )r   r   )rd   Zjac_sparsity)N   r$   gݨ'.?g{Gz?rY   )O   r$   r]   rZ   )   r$   ghen7?)   r$   )   r$   gՊ.?)   r$   ggJ	T>)   r$   )   r$   g`P^?)r   zerosrM   r
   rG   r   r   r   rn   ro   rp   rq   r   r   )r>   ry   rx   sparsityrd   r|   r   r   r   "test_integration_sparse_difference   s,    

r   c                  C   s`  d} d}ddg}ddg}t  }t|}tddg||gD ] \}}tt||| ||d|d}t|jd |d  t|jd u  t|j	d u  t|j
 t|jd t|jd	k  t|jd td|j  k od
k n   t|j}	t|j|	| |}
tt|
dk  tj| }t|}||}t||| |}
tt|
d
k  t||j|jddd q8d S )Nr]   r^   r   r'   r   r   T)rY   rZ   rd   re   rf   r8      r6   +=rk   )r&   r   r   r
   r#   r   r   r   rn   ro   rp   rq   rr   rs   rt   r,   r\   r   r   ru   rv   rw   r   )rY   rZ   rx   ry   JZJ_sparserd   rf   r|   rX   r[   r}   r~   r   r   r   r   test_integration_const_jac  s6    



r   rd   )r   r   r   c                 C   sT   d}d}g d}ddg}dd }t |||||| d}|jdk sBJ |jd	k sPJ d S )
Nr^   )     @r   r   r   g    חAc                 S   sH   |\}}}d| d| |  d| d| |  d| |  d| | gS )N{Gzr   {Gz?    8|Ar   )r   statexr   zr   r   r   fun_robertsonE  s
    

z-test_integration_stiff.<locals>.fun_robertson)rY   rZ   rd   i  r   )r
   rr   rs   )rd   rY   rZ   rx   Ztspanr   r|   r   r   r   test_integration_stiff=  s    
r   c            	   	   C   s
  dd } dd }dd }d|_ dD ]$}ttd	d
gddg|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   td|jd d   k odk n   t|jd j	d t|jd j	d t
| |jd d |jd d dsJ t
||jd d |jd d ds>J d| _d|_ttd	d
gddg|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   t|jd j	d t|jd j	d t
| |jd d |jd d dsJ d| _d|_ttd	d
gddg|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   t|jd j	d t|jd j	d t
||jd d |jd d dsJ d| _d|_ttd	d
gddg|| ||fdd}t|jd t|jd jd t|jd jd t|jd jd td|jd d   k ordk n   td|jd d   k odk n   t|jd j	d t|jd j	d t|jd j	d t
| |jd d |jd d dsJ t
||jd d |jd d ds0J ttd	d
gddg|| dd}t|jd t|jd jd td|jd d   k odk n   t|jd j	d t
| |jd d |jd d dsJ t
|jd |jd }t|}||}t||dd}tt
|d	k  t
jt|jd d |jd d ddds"J q"d| _d|_dD ]}ttd
d	gddg|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   td|jd d   k odk n   t|jd j	d t|jd j	d t
| |jd d |jd d dsNJ t
||jd d |jd d dszJ d| _d|_ttd
d	gddg|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   t|jd j	d t|jd j	d t
| |jd d |jd d dsLJ d| _d|_ttd
d	gddg|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   t|jd j	d t|jd j	d t
||jd d |jd d dsJ d| _d|_ttd
d	gddg|| ||fdd}t|jd t|jd jd t|jd jd t|jd jd td|jd d   k odk n   td|jd d   k odk n   t|jd j	d t|jd j	d t|jd j	d t
||jd d |jd d d	s@J t
||jd d |jd d d	slJ t
|jd |jd }t|}||}t||dd}tt
|d	k  t
jt|jd d |jd d ddd	sJ t
jt|jd d |jd d dddsZJ qZd S )Nc                 S   s   |d |d d  S )Nr   r    gffffff?r   r   r   r   r   event_rational_1V  s    z%test_events.<locals>.event_rational_1c                 S   s   |d d |d  S )Nr    g333333?r   r   r   r   r   r   event_rational_2Y  s    z%test_events.<locals>.event_rational_2c                 S   s   | d S )Ng@r   r   r   r   r   event_rational_3\  s    z%test_events.<locals>.event_rational_3Tra   r      r_   r`   )rd   eventsr   r    g333333@g@g333333@g@)r    r'   r   r$   )rd   r   re   r'         @r]   r^   rk   gqq?gX<ݚ?)terminalr
   r.   r   rq   rn   sizer   ro   r:   r   isclose	directionrv   r   r7   rw   r\   ru   Zallclose)	r   r   r   rd   r|   r}   r~   r   r[   r   r   r   test_eventsU  sJ   
&&

(
(
((

(

0
((

(
(
((


0r   c                  C   s  d} d}ddg}t tttttfD ]}ddgddgfD ]}tt||| d||d	d
}t|j	d |d  t|j	d |d  t
ttt|j	dk t
|jd u  t
|j t|jd t|j	}t|j|| |}t
t|dk  tj| }t|}	||}
t|
|	| |}t
t|dk  |turLt||j	|jddd tt|t|d ||d dd |tur6|t|d ||d | |dd}| }t|jd t
d|v  tt|j q6q d S )Nr]   r^   r_   r`   r   rb   r          ?T)rY   max_steprZ   rd   re   r   r$   g	     ?rj   rk   )r   g#B;)rY   rZ   r   failedzstep size is less)r   r   r   r   r   r   r
   r.   r   r   r   r   ru   rT   diffrn   rp   rq   r7   r\   r   rv   rw   r   assert_raises
ValueErrorstepRuntimeError)rY   rZ   rx   rd   ry   r|   rX   r[   r}   r~   r   solvermessager   r   r   test_max_step  sH    
 




r   c                  C   s  d} d}ddg}d}t tttttfD ]d}ddgddgfD ]L}tt||| d	||d
|d	}t|j	d |d  t|j	d |d  t
|t|j	d d  t|jd u  t|j t|jd t|j	}t|j|| |}tt|dk  tj| }	t|	}
||	}t||
| |}tt|dk  |turLt
||j	|jddd tt|t|d ||d dd tt|t|d ||d dd q:q$d S )Nr]   r^   r_   r`   皙?r   rb   r    r   T)rY   r   rZ   rd   re   
first_stepr   r$   rj   rk   )r   )r   r   r   r   r   r   r
   r.   r   r   r   r   rT   r   rn   rp   rq   r7   r\   r   ru   rv   rw   r   r   )rY   rZ   rx   r   rd   ry   r|   rX   r[   r}   r~   r   r   r   r   test_first_step.  s@    





r   c               
   C   sl  d} d}ddg}ddgddgfD ]}t |d |d d	}tt||| ||d
}t|j| t|jd u  t|j t|j	d t
|j}t|j|| |}tt |dk  q g d}ttddg|| ||d
}t|j| t|jd u  t|j t|j	d t
|j}t|j|| |}tt |dk  g d}ttddg|| ||d
}t|j| t|jd u  t|j t|j	d g d}ttddg|| ||d
}t|j| t|jd u  t|j t|j	d t
|j}t|j|| |}tt |dk  g d}ttddg|| ||d
}t|j| t|jd u  t|j t|j	d ddg}ttttddg|| ||d
 d S )Nr]   r^   r_   r`   r   rb   r    r   r6   rY   rZ   t_eval)r   
ףp=
@   r   Q @rb   )r   (\@r9         ?皙?)\(?r    )r   r   r   r   )r   r9   r   r   r   r3   r   )r   rv   r
   r.   r   r   r   rn   rp   rq   r7   r\   r   ru   r   r   )rY   rZ   rx   ry   r   r|   rX   r[   r   r   r   test_t_evalU  sr    







r   c            	   	   C   s   d} d}ddg}ddg}t |d |d d	}tt||| ||d
}tt||| ||dd}t|j| t|jd u  t|j t|j	d t|j|j t|j
|j
 t|jd u  t|j t|j	d t|j}t|j
|| |}tt |dk  d S )Nr]   r^   r_   r`   r   rb   r   r    r6   r   T)rY   rZ   r   re   )r   rv   r
   r.   r   r   r   rn   rp   rq   r   r7   r\   ru   )	rY   rZ   rx   ry   r   r|   Zres_drX   r[   r   r   r   test_t_eval_dense_output  s.    


r   c            	      C   s   dd } d| _ d}d}ddg}dd	g}td
d	d}dD ]}t 6}|td tt||||||| td	}W d    n1 s~0    Y  |j	sJ |j
dksJ |jdksJ |js|jrJ t|jdksJ |jd jdksJ |jd d dks8J q8d S )Nc                 S   s   | d S )Nr   r   r   r   r   r   early_event  s    z,test_t_eval_early_event.<locals>.early_eventTr]   r^   r_   r`   r   rb   r      ra   rc   )rY   rZ   rd   r   r   rf   zA termination event occurred.r    r   r   )r   r   rv   r   rl   rm   r
   r.   r4   rp   r   rq   r   r   lenrn   r   )	r   rY   rZ   rx   ry   r   rd   r{   r|   r   r   r   test_t_eval_early_event  s.    $
r   c                  C   s`   dD ]V} t dd ddgddg| dd}t|dddg t|g d	g d
g dg qd S )Nra   c                 S   s   | S r   r   r   r   r   r   <lambda>      z%test_no_integration.<locals>.<lambda>r3   r'   r9   Trd   re   )r3   r   r   r'   r'   r'   )r9   r9   r9   )r
   r   rw   )rd   rw   r   r   r   test_no_integration  s    r   c                  C   s   t tttttfD ]} | dd dddgd}|  t|jd |	 }t|dddg t|g dg dg dg | d	d dg t
j}|  t|jd |	 }t|d
g  t|g dt
d qd S )Nc                 S   s   | S r   r   r   r   r   r   r     r   z+test_no_integration_class.<locals>.<lambda>g        g      $@finished)r   r    r'   r6   r6   r6   )r   r   r   c                 S   s   | S r   r   r   r   r   r   r     r   g      Y@r   r9   )r   r   r   r   r   r   r   r   rq   re   r   infr=   )rd   r   rw   r   r   r   test_no_integration_class  s    r   c               	   C   s   dd } t d}dD ]L}tt| ddg||dd}t|dt d t|g d	t d
 qdD ]N}tt| dt jg||dd}t|dt d t|g d	t d
 qhd S )Nc                 S   s
   t dS )Nr   )r   r   r   r   r   r   rz     s    ztest_empty.<locals>.funr   ra   r   r6   Tr   )r    r'   r9   r   )r   r   r   r
   r   rw   r   )rz   rx   rd   rw   r   r   r   
test_empty  s    
r   c                  C   s   t ddtddg} t| dddg t| g dg dg dg t ddtg } t| dtd t| g dtd d S )	Nr   r    r'   r   )r    r   r'   )r    r    r    r   r   )r   r   r"   r   r=   )rw   r   r   r   test_ConstantDenseOutput  s    r   c                  C   s  ddg} t tttttfD ]}|td| tj}t	|j
d t	|jd t	|jtj t	|jd t	|jd t	|j|  t|jd u  |turt|jdk t|jdk t	|jd n$t	|jd t	|jd t	|jd tt|j | }t	|jd t	|d  t	|j
d t	|jtj t	|jd t|jdk ttt|j|   t|jdk t|jdk t|jdk t|jdk | }t|d| ddd	 qd S )
Nr_   r`   r   r'   Zrunningr    r   rj   rk   )r   r   r   r   r   r   r.   r   r   r   r>   rq   Zt_boundr   r   r   r   Z	step_sizerr   rs   rt   r   r   re   r   ru   equalr   )rx   clsr   r   rw   r   r   r   test_classes   s@    
r   c                  C   s8  t jg dtd} t| d | d t dg}t| d | d t dg}t| ||g}t|ddg t|ddg t|ddg t|ddg t|ddg t|d	dg t|g d
t g dg t g d} t| d | d t dg}t| d | d t dg}t| ||g}t|ddg t|ddg t|ddg t|ddg t|ddg t|ddg t|ddg t|g dt g dg t ddg} tddt dg}t| |g}t|ddg t|ddg t|ddg t|g dt g dg d S )N)r   r'   r   Zdtyper   r    r$   r'   r9   r   r   )	r   r   r2   r   g      @g      @r   g      @r'   )	r$   r    r$   r$   r    r    r    r    r$   )r6   r3      r6   r3   r   )   r%   r6   r   r   r    r3   )r$   r    r$   r    r$   r    r$   )r'   r    r   r   )r   r"   floatr   r   r   )tss1s2rw   sr   r   r   test_OdeSolution&  sD    r   c            	      C   s   dd } dd }d}t g d}|||}d}| || }t| ||||d \}}t||ddd t| |||||\}}t||ddd d S )	Nc                 S   sd   t d|d  d|d  |d   d|d  d|d  |d   d|d d   d|d d  gS )Nr   r   r   r    r'   r   r   r/   r   r   r   r   rz   R  s
    .ztest_num_jac.<locals>.func                 S   sV   t dd|d  d|d  gdd|d  d|d   d|d  gdd|d  dggS )	Nr   r   r'   r    r   g     g    8Ar   r!   r   r   r   r   rf   Y  s
    $ztest_num_jac.<locals>.jacr    )r    r   r   gh㈵>rk   )r   r"   ravelr   r   )	rz   rf   r   r   ZJ_true	thresholdrF   ZJ_numfactorr   r   r   test_num_jacQ  s    
r   c               	   C   s,  dd } dd }t jd d}t j|}||}t|}| d|d d d f  }t| d| |dd ||fd\}}t| d| |dd \}	}
t|	| d	d
d t|
|d	d
d t jj	dd	|d}t| d| |d|||fd\}}t| d| |d|\}	}
t|	| d	d
d t|
|d	d
d d S )Nc                 S   sT   |dd  d |d d d  }t |jd }t |d| ft d| |f S )Nr    r9   r$   r'   )r   r   r:   r(   )r   r   r[   r   r   r   r   rz   n  s     z test_num_jac_sparse.<locals>.func                 S   sb   t j| | ftd}d|d< d|d< td| d D ]}d|||d |d f< q0d|d< d|d< |S )Nr   r    )r   r   r   r    r'   )r$   r$   )r$   r2   )r   r   intrange)r>   ArL   r   r   r   	structures  s    z&test_num_jac_sparse.<locals>.structurer   r   g:0yE>)r   -q=r   rk   )r   )
r   randomseedZrandnr	   r   r   r   Ztoarrayuniform)rz   r   r>   r   r   groupsrF   ZJ_num_sparseZfactor_sparseZJ_num_denseZfactor_denser   r   r   r   test_num_jac_sparsem  s2    



r   c                  C   s:  dd } dd }dd }dd }d	d
 }d|_ d|_ d|_d}d}d}d}t| | d| | t| |   }	dd|	g}
d| }t| d|g|
|||gd|||fd|ddd
}|jd }|jd }|jd }t|dtj dtj g t|dtj dtj g t||g td|d d}|	|}t|d t
|| ddd t|d t||  ddd t|d dd|	 |	 t| |  d  ddd |	|}|	|}|	|}t|d t|d dd  t|d t|d  t|d t|d  t|d t|d dd  t|d |g d S )!Nc                 S   s*   |\}}}| | || || d|  gS )Nr    r   r   womegar?   zfinalr   r   r   r   r   r   sys3  s    
ztest_args.<locals>.sys3c           	   
   S   s>   |\}}}t d| dg|ddgdd|dd|   gg}|S )Nr   r    r'   r!   )	r   r   r   r?   r   r   r   r   r   r   r   r   sys3_jac  s    
ztest_args.<locals>.sys3_jacc                 S   s   |\}}}|S r   r   r   r   r   r   sys3_x0decreasing  s    
z$test_args.<locals>.sys3_x0decreasingc                 S   s   |\}}}|S r   r   r   r   r   r   sys3_y0increasing  s    
z$test_args.<locals>.sys3_y0increasingc                 S   s   |\}}}|| S r   r   r   r   r   r   sys3_zfinal  s    
ztest_args.<locals>.sys3_zfinalr$   r    Tr'   r3   r   gGz?r   r   g|=gvIh%<=)r   re   argsrd   rf   rY   rZ   r   r   g      ?g      ?   g&.>r   rk   gvIh%,=r   )r   r   r   rR   r
   rn   r   pirv   rw   r)   r*   r   rI   )r   r   r   r   r   r   r?   Ztfinalr   Zz0Zw0tendrw   Z
x0events_tZ
y0events_tZzfinalevents_tr   r   Zx0eventsZy0eventsZzfinaleventsr   r   r   	test_args  sT    ,





 *


r   c               	   C   s   dd } t | dddgddgd}ttj|jd d df td }tjt	d	d
R t | dddgddgd}ttj|jd d df td }W d    n1 s0    Y  ||k sJ d S )Nc                 S   s   |d |d fS )Nr   r    r   r   r   r   r   rF     s    ztest_array_rtol.<locals>.fr         ?r   r   r$   r    zAt least one element...matchgؗҜ<)
r
   r   rT   rU   rV   r   rR   pytestZwarnsrm   )rF   rw   Zerr1Zerr2r   r   r   test_array_rtol  s    *Hr  ra   c                 C   sD   t tddgtd| d}t|j t|jd t|j	ddd d S )Nr   r6   r9   )rd   r  rj   r   )
r
   r   r   Zonesr   rp   r   rq   r   r   )rd   resultr   r   r   test_integration_zero_rhs  s    
r  c                  C   sx   dd } d}t jt|d" t| ddgdd W d    n1 sB0    Y  t| ddgd	d}t|jd
 td d S )Nc                 S   s   || S r   r   )r   r   ar   r   r   fun_with_arg  s    z,test_args_single_value.<locals>.fun_with_argz#Supplied 'args' cannot be unpacked.r  )r   r   r    r$   )r   )r$   )r   r$   g)r  r   	TypeErrorr
   r   r   r   rR   )r	  r   rw   r   r   r   test_args_single_value  s    0r  f0_fillc                 C   sN   d}t jt|d( ttddgtd|  W d    n1 s@0    Y  d S )Nz8All components of the initial state `y0` must be finite.r  r   r6   r9   )r  r   r   r
   r   r   full)r  msgr   r   r   test_initial_state_finiteness  s    r  )L	itertoolsr   Znumpy.testingr   r   r   r   r   r  r   r   numpyr   Zscipy.optimize._numdiffr	   Zscipy.integrater
   r   r   r   r   r   r   r   Zscipy.integrate._ivp.commonr   Zscipy.integrate._ivp.baser   Zscipy.sparser   r   r   r#   r&   r,   r.   r0   r4   r5   r7   rG   rM   rN   rO   rP   rS   r\   r   r   r   r   markZslowZparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  nanr   r  r   r   r   r   <module>   sn   $ D,# .,'>
&+-S
