o
    \i                     @   s  d Z ddlZddlZddlZddlmZ ddlZddlZddl	Z	ddl
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	lmZmZmZ dd
lmZmZmZm Z  ddl!m"Z" g dZ#eddd\Z$Z%e &e$dd Z'e%dd Z(eddd\Z$Z%e &e$dd Z)e%dd Z*e'e(fe)e*fgZ+edddddd\Z,Z-ee-Z-e,e-fgZ.e Z/e/j0Z1e/j2Z3dd Z4dd Z5dd Z6e	j78de+dd Z9e	j78de.d d! Z:e	j78de+d"d# Z;e	j78de.d$d% Z<d&d' Z=d(d) Z>d*d+ Z?d,d- Z@d.d/ ZAd0d1 ZBd2d3 ZCd4d5 ZDd6d7 ZEd8d9 ZFd:d; ZGd<d= ZHd>d? ZIe	j78d@e"dAdB ZJdCdD ZKdEdF ZLe	j78dGeegdHdI ZMdJdK ZNdLdM ZOe	j78dGeegdNdO ZPdPdQ ZQe	j7RdRdSdT ZSdUdV ZTdWdX ZUdYdZ ZVe	j78d[ejWejXge	j78d\eegd]d^ ZYd_d` ZZe	j78d\eegdadb Z[e	j78dGeegdcdd Z\e	j78dGeege	j78deg dfdgdh Z]e	j78dGeegdidj Z^dkdl Z_dmdn Z`dodp Zadqdr ZbdS )szD
Testing for Multi-layer Perceptron module (sklearn.neural_network)
    N)StringIO)load_digits	load_irismake_multilabel_classificationmake_regression)ConvergenceWarning)PoissonRegressor)roc_auc_score)MLPClassifierMLPRegressor)LabelBinarizerMinMaxScalerscale)assert_allcloseassert_almost_equalassert_array_equalignore_warnings)CSR_CONTAINERS)identitylogistictanhrelu   T)n_class
return_X_y      
   g      4@g      Y@   )	n_samples
n_featuresbiasnoiserandom_statec               	   C   s   t d d } td d }g }td}dd }|D ]8}td|dd}ttd || | W d    n1 s8w   Y  |t	||j
d	 ||j
d g qtt|d D ]}|| ||d  k sjJ qZd S )
Nd   r   c                 S   s   t t | S N)npsumabs)x r*   /var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/sklearn/neural_network/tests/test_mlp.py<lambda>H   s    ztest_alpha.<locals>.<lambda>r      )hidden_layer_sizesalphar#   categoryr   )X_digits_binaryy_digits_binaryr&   aranger
   r   r   fitappendarraycoefs_rangelenall)Xyalpha_vectorsalpha_valuesabsolute_sumr/   mlpir*   r*   r+   
test_alphaA   s    
 rC   c               
   C   s  t g dg} t dg}tddddddddd}dgd |_dgd |_d|_t dd	gd
dgddgg|jd< t dgd	gg|jd< t ddg|jd< t dg|jd< g d |_g d |_d|_d|_	d|_
d|_dg|jd  |_dg|jd  |_d|_d|_t j|_g |_d|_dd |jD |_dd |jD |_|j| |ddgd t|jd t ddgddgddggdd t|jd t dgdggdd t|jd t ddgdd t|jd t ddd t|| d ddd d S ) N)g333333?皙?gffffff?r   sgd皙?r   r-   r   )solverlearning_rate_initr/   
activationr#   max_iterr.   momentum皙?g333333?      ?      ?r   c                 S      g | ]}t |qS r*   r&   
zeros_like).0
interceptsr*   r*   r+   
<listcomp>   s    
ztest_fit.<locals>.<listcomp>c                 S   rO   r*   rP   )rR   coefsr*   r*   r+   rT          classesgJ+?guX?gડ2?g'?g.NV?gVSbb)decimalgF??g#070?gY,?g~?gZd;O?)r   r-   gS?)r&   r7   r
   r8   intercepts_
n_outputs__coef_grads_intercept_gradsn_features_in_n_iter_learning_rate_	n_layers_out_activation_t_inf
best_loss_loss_curve__no_improvement_count_intercept_velocity_coef_velocitypartial_fitr   predict_probar<   r=   rA   r*   r*   r+   test_fitV   s\   "

"	rm   c                     s@  dD ]} d}d}t jjdd}||| dt t |d |  }t |tD ]}t	|dddd	ddd
t
  t
dt  | W d    n1 sSw   Y  t dd jj D } jd gjg jg }g g g g   tjd D ]@}t  jd ||d  f t  jd ||d  f || }	||d  }
t |	|
f t |
 q fdd}||\}}t t |}t |d}t |}d}t|D ]"}|d d |f | }||| d ||| d  |d  ||< qt|| q+qd S )N)r   r      r   *   )seedr-   lbfgsh㈵>rL   )rI   r.   rG   r/   rH   rJ   r#   ignorec                 S   s   g | ]}|  qS r*   )ravel)rR   lr*   r*   r+   rT      s    z!test_gradient.<locals>.<listcomp>r   c              
      s    |  d S r%   )_loss_grad_lbfgs)tr<   Yactivations
coef_gradsdeltasintercept_gradsrA   r*   r+   loss_grad_fun   s   z$test_gradient.<locals>.loss_grad_fung       @)r&   randomRandomStaterandmodr4   r   fit_transformACTIVATION_TYPESr
   warningscatch_warningssimplefilterr   r5   hstackr8   rZ   shaper.   r[   r6   r9   ra   emptyzerossizeeyer   )n_labelsr   r    r#   r=   rI   thetalayer_unitsrB   fan_infan_outr~   valuegradnumgradnEepsilondthetar*   rx   r+   test_gradient   sb   

	
""

r   zX,yc           	   	   C   s   | d d }|d d }| dd  }|j d |jjf}tD ].}tddddd|d}||| ||}|||dks>J |j d |jjf|ksKJ qd S )	N   r   rq   2   Tr-   )rG   r.   rJ   shuffler#   rI   ffffff?)r   dtypekindr   r
   r5   predictscore)	r<   r=   X_trainy_trainX_testexpected_shape_dtyperI   rA   	y_predictr*   r*   r+   test_lbfgs_classification   s$   
r   c              
   C   sb   t D ],}tdddddd|d}|| | |dkr$|| |d	ks#J q|| |d
ks.J qd S )Nrq   r   r   MbP?Tr-   )rG   r.   rJ   tolr   r#   rI   r   rD   g\(\?)r   r   r5   r   )r<   r=   rI   rA   r*   r*   r+   test_lbfgs_regression  s   	r   c              
   C   sl   d}t D ]/}tddd|dd|d}tt || | ||jks$J W d    n1 s.w   Y  qd S )Nr   rq   r   r   Tr-   )rG   r.   rJ   max_funr   r#   rI   )r   r
   pytestwarnsr   r5   r_   r<   r=   r   rI   rA   r*   r*   r+    test_lbfgs_classification_maxfun(  s"   	r   c                 C   sn   d}t D ]0}tdddd|dd|d}tt || | ||jks%J W d    n1 s/w   Y  qd S )	Nr   rq   r   g        r   Tr-   )rG   r.   r   rJ   r   r   r#   rI   )r   r   r   r   r   r5   r_   r   r*   r*   r+   test_lbfgs_regression_maxfun=  s$   
r   c               	   C   s   ddgddgddgddgg} g d}d	D ]Q}t d
d|dddd}ttd || | |jj}|| | |jj}W d    n1 sDw   Y  |dkrT||ksSJ q|dkre|jtd|j |kseJ qd S )Nr   r   r-      rn   )r-   r-   r-   r   )
invscalingconstantrE      g      ?T)rG   r.   learning_raterJ   power_t
warm_startr0   r   r   	   )	r
   r   r   r5   
_optimizerr   rH   powr   )r<   r=   r   rA   prev_etapost_etar*   r*   r+   test_learning_rate_warmstartS  s.   
r   c               	   C   s   t dddd\} }tddddddd	d
}|| | || |dks$J tddddddd	d}tdD ]}|j| |g dd q3|| |dksJJ tdd}|| ||  d S )Nr   r   Tr   r#   return_indicatorrq   rr   r   r   rL   )rG   r.   r/   rJ   r#   rI   rH   g
ףp=
?rE   )rG   r.   rJ   r#   rI   r/   rH   r$   )r   r-   r   r   r   rW   ?early_stopping)r   r
   r5   r   r9   rj   r   )r<   r=   rA   rB   r*   r*   r+   test_multilabel_classificationl  s8   
		
r   c                  C   sH   t dddd\} }tdddddd	}|| | || |d
ks"J d S )Nr   rn      )r   	n_targetsr#   rq   r   {Gz?r-   )rG   r.   rJ   r   r#   r   )r   r   r5   r   rl   r*   r*   r+   test_multioutput_regression  s   
r   c                  C   sr   ddgg} dg}t dd}|j| |ddgd tt |j| |ddgd W d    d S 1 s2w   Y  d S )Nr   r   r   rE   rG   r-   rW   )r
   rj   r   raises
ValueErrorr<   r=   clfr*   r*   r+   test_partial_fit_classes_error  s   

"r   c               	   C   s   t D ]\\} }tddddddd}ttd || | W d    n1 s&w   Y  || }tddddd	}tdD ]}|j| |t	|d
 q<|| }t
|| || |dks^J qd S )NrE   r$   r-   r   rr   rL   )rG   rJ   r#   r   r/   rH   r0   )rG   r#   r/   rH   rW   r   )classification_datasetsr
   r   r   r5   r   r9   rj   r&   uniquer   r   )r<   r=   rA   pred1rB   pred2r*   r*   r+   test_partial_fit_classification  s,   	


r   c                  C   sl   t dd} | jdgdgdggg dg dd | d	ggd
g | dgdgdgd	ggg ddks4J d S )Nr   )r#   r-   r   r   )abc)r   r   r   drW   r   r   )r
   rj   r   )r   r*   r*   r+   test_partial_fit_unseen_classes  s   
$,r   c               
   C   s   t } t}dD ]e}tddddd| jd |d}t  td	t || | W d    n1 s1w   Y  |	| }tdddd| jd |d
}t
dD ]}|| | qL|	| }t|| || |}|dkskJ qd S )N)r   r   rE   r$   r   r-   r   r   )rG   rJ   rI   r#   rH   
batch_sizerK   rs   )rG   rI   rH   r#   r   rK   g?)X_regy_regr   r   r   r   r   r   r5   r   r9   rj   r   r   )r<   r=   rK   rA   r   rB   r   r   r*   r*   r+   test_partial_fit_regression  s@   
	


r   c                  C   sr   ddgddgg} ddg}t t tddj| |dgd W d    n1 s(w   Y  ttd	dd
r7J d S )Nr   r   r-   r   r   rE   r   rW   rq   rj   )r   r   r   r
   rj   hasattr)r<   r=   r*   r*   r+   test_partial_fit_errors  s   r   c               	   C   s   t jd} d}t t jj}|| j|dfd }| j|d}t }d}t	j
t|d0 t  td ||| W d    n1 sFw   Y  W d    d S W d    d S 1 s^w   Y  d S )Nr   r   r   )r   zrSolver produced non-finite parameter weights. The input data may contain large values and need to be preprocessed.matchrs   )r&   r   r   finfofloat64maxuniformstandard_normalr   r   r   r   r   r   r   r5   )rngr   fmaxr<   r=   r   msgr*   r*   r+   test_nonfinite_params  s    

"r   c            	      C   s   t d d } td d }tdddd}ttd || | W d    n1 s)w   Y  || }|| }|jd d}}|j	dd	}|j	dd	}|j||fksUJ t
|| t|t| t||d d df d
ksqJ d S )Nr   rn   r   r-   )r.   rI   r#   r0   r   r   axisrN   )r2   r3   r
   r   r   r5   rk   predict_log_probar   argmaxr   r   r&   logr	   	r<   r=   r   y_probay_log_probar   	n_classes	proba_maxproba_log_maxr*   r*   r+   test_predict_proba_binary  s   


"r   c            	      C   s   t d d } td d }tdd}ttd || | W d    n1 s'w   Y  || }|| }|jd t	
|j}}|jdd}|jdd}|j||fksWJ t|| t|t	| d S )Nr   rn   )r.   r0   r   r-   r   )X_digits_multiy_digits_multir
   r   r   r5   rk   r   r   r&   r   r   r   r   r   r   r   r*   r*   r+   test_predict_proba_multiclass)  s   



r   c            	      C   s   t dddd\} }|j\}}tdddd}|| | || }|j||fks)J t|dk| || }|jd	d
}|jd	d
}|d	d	 	|d	d	 dksTJ t|| t
|t| d S )Nr   r   Tr   rq      rG   r.   r#   rM   r-   r   g|=)r   r   r
   r5   rk   r   r   r   r'   dotr   r&   r   )	r<   ry   r   r   r   r   r   r   r   r*   r*   r+   test_predict_proba_multilabel>  s   



&
r   c               	   C   s:  t ddddd\} }dD ]H}tdddd|d}tdddd|d}t  tdt || | || | W d    n1 sAw   Y  t|j	d |j	d sTJ qtddddd	d}tddddd
d}t  tdt || | || | W d    n1 sw   Y  t|j	d |j	d rJ d S )Nr   rn   r-   r   )r   r    r   r#   )TF)r.   rJ   r   r#   r   rs   TF)
r   r   r   r   r   r   r5   r&   array_equalr8   )r<   r=   r   mlp1mlp2r*   r*   r+   test_shuffleV  sD   



 r  csr_containerc                 C   s   t d d }td d }| |}tdddd}||| ||}||| ||}t|| ||}||}t|| d S )Nr   rq      r-   r   )r2   r3   r
   r5   r   r   r   )r  r<   r=   X_sparserA   r   r   r*   r*   r+   test_sparse_matrices  s   




r  c                  C   sF   ddgddgg} ddg}t dddd	}|| | |j|jks!J d S )
Nr   r   r-   r   r   rM     rE   )r   rJ   rG   )r
   r5   rJ   r_   r   r*   r*   r+   test_tolerance  s
   r  c                  C   s   ddgddgg} ddg}t ddddd}tj}t  t_}ttd	 || | W d    n1 s3w   Y  || | |t_d
| v sIJ d S )Nr   r   r-   r   r   rE   r   )rG   rJ   verboser.   r0   	Iteration)	r
   sysstdoutr   r   r   r5   rj   getvalue)r<   r=   r   
old_stdoutoutputr*   r*   r+   test_verbose_sgd  s   r  MLPEstimatorc                 C   s   t d d }td d }d}| |dddd}||| |j|jks$J |jd u s+J t|jts3J |j}|j	}t
||ksAJ || |d ksKJ || |d ksUJ | |ddd	d}||| |jd u sjJ |j	d u sqJ |jd usxJ d S )
Nr$   rL   r  rE   T)r   rJ   rG   r   r   F)r2   r3   r5   rJ   r_   re   
isinstancevalidation_scores_listbest_validation_score_r   )r  r<   r=   r   mlp_estimatorvalid_scoresbest_valid_scorer*   r*   r+   test_early_stopping  s,   r  c                  C   sX   ddgddgg} ddg}t dddd	d
}|| | |j|jks"J d|jjks*J d S )Nr   r   r-   r   r   rM   r  rE   adaptive)r   rJ   rG   r   gư>)r
   r5   rJ   r_   r   r   r   r*   r*   r+   test_adaptive_learning_rate  s   r  c            
   	   C   s  t } t}tdgd dgd  }tdgd dgd  dgd  }tdgd dgd  dgd  }tdgd	 dgd	  dgd
  dgd
  }tdgd dgd  dgd  dgd  dgd  }tdddddd| |}|| | || | ||||fD ]6}tdddddd| |}dt| }	tjt	t
|	d || | W d    n1 sw   Y  qd S )Nr   K   r-   (   r   F   r   r   %   &   r   r   rq   Tro   r   )r.   rG   r   r#   r   z}warm_start can only be used where `y` has the same classes as in the previous call to fit. Previously got [0 1 2], `y` has %sr   )X_irisy_irisr&   r7   r
   r5   r   r   r   r   reescape)
r<   r=   
y_2classes
y_3classesy_3classes_alt
y_4classes
y_5classesr   y_imessager*   r*   r+   test_warm_start  sB   $$.8
r-  c                 C   s   t t}}d}| ddd|d}t ) tdt ||| ||jks'J ||| ||jks4J W d    d S 1 s?w   Y  d S )Nr   r   rE   T)r.   rG   r   rJ   rs   )r"  r#  r   r   r   r   r5   r_   )r  r<   r=   rJ   r   r*   r*   r+   test_warm_start_full_iteration  s   

"r.  c                  C   sj   t d d } td d }d}d}dD ] }t||d|d}|| | |j|d ks+J ||jks2J qd S )Nr$   r   r  )r   rn   r   r   r$   rE   r   rJ   rG   n_iter_no_changer-   )r2   r3   r
   r5   rg   r_   )r<   r=   r   rJ   r0  r   r*   r*   r+   test_n_iter_no_change  s   r1  z-ignore::sklearn.exceptions.ConvergenceWarningc                  C   sh   t d d } td d }d}tj}d}t||d|d}|| | |j|ks(J |j|jd ks2J d S )Nr$   g    eAr  rE   r/  r-   )r2   r3   r&   rd   r
   r5   r_   rg   )r<   r=   r   r0  rJ   r   r*   r*   r+   test_n_iter_no_change_inf  s   r2  c                  C   sn   ddgddgddgddgg} g d}t dd}tjtd	d
 || | W d    d S 1 s0w   Y  d S )Nr-   r   r   r   rn   )r   r   r   r-   Tr   z0The least populated class in y has only 1 memberr   )r
   r   r   r   r5   rl   r*   r*   r+   test_early_stopping_stratified6  s   
"r3  c                  C   s   t dddddd} | td d td d  | tdd  }| tdd  }t dddddd}|td d tjtd d  |tdd  tj}|tdd  tj}t	|| t
||dd	 d S )
Nrr   rn   r   r-   r$   rF   r/   r.   r#   rJ   r   ,  r   rtol)r
   r5   X_digitsy_digitsr   rk   astyper&   float32r   r   )mlp_64pred_64proba_64mlp_32pred_32proba_32r*   r*   r+   "test_mlp_classifier_dtypes_castingB  s   

$
rC  c                  C   s   t dddddd} | td d td d  | tdd  }t dddddd}|td d tjtd d  |tdd  tj}t||dd	 d S )
Nrr   r4  r-   r   r   r5  r6  gMb@?r7  )	r   r5   r9  r:  r   r;  r&   r<  r   )r=  r>  r@  rA  r*   r*   r+   !test_mlp_regressor_dtypes_castingV  s   

$rD  r   	Estimatorc                    s   t  t}}|dddddd}||d d |d d  ||dd  }t fdd	|jD s6J t fd
d	|jD sDJ |tkrO|j	 ksQJ d S d S )Nrr   r4  r-   r   rF   r5  r6  c                       g | ]}|j  kqS r*   r   )rR   	interceptrG  r*   r+   rT   r  rV   z)test_mlp_param_dtypes.<locals>.<listcomp>c                    rF  r*   rG  )rR   coefrG  r*   r+   rT   t  rV   )
r9  r;  r:  r5   r   r;   rZ   r8   r   r   )r   rE  r<   r=   rA   predr*   rG  r+   test_mlp_param_dtypesf  s   
rK  c           
      C   s   t ddddd}dggdg}}||| | d }t|| t|}dggd	g}}tdD ]}||| q1||}	t|	|d
d dS )zYLoading from MLP and partial fitting updates weights. Non-regression
    test for #19626.)ro   ro   r   r   )r.   r#   rH   rJ   r   r   zmlp.pklr-   -C6?r7  N)	r   r5   joblibdumploadr9   rj   r   r   )
tmp_pathpre_trained_estimatorfeaturestargetpickled_fileload_estimatorfine_tune_featuresfine_tune_target_predicted_valuer*   r*   r+   (test_mlp_loading_from_joblib_partial_fitz  s   

rZ  c                 C   s   t d}tjd}|j|ddddgd}|jtddd	d
}| ddd}t	
  t	dt ||| W d   dS 1 sEw   Y  dS )zCheck that feature names are preserved when early stopping is enabled.

    Feature names are required for consistency checks during scoring.

    Non-regression test for gh-24846
    pandasr   r   r   	colname_a	colname_b)datacolumnsr-   	colname_y)r^  nameTrL   )r   validation_fractionerrorN)r   importorskipr&   r   r   	DataFramerandnSeriesfullr   r   r   UserWarningr5   )rE  pdr   r<   r=   modelr*   r*   r+   test_preserve_feature_names  s   

"rl  c                 C   s   | ddddd}t  % t dt |tt t|j}|j	dd |tt W d   n1 s4w   Y  t|j|ksBJ dS )	z0Check that early stopping works with warm start.r   r   T)rJ   r#   r   r   rs      rJ   N)
r   r   r   r   r5   r"  r#  r:   r  
set_params)r  rA   n_validation_scoresr*   r*   r+   'test_mlp_warm_start_with_early_stopping  s   

rq  rG   )rE   adamrq   c                 C   s   | |dddt jdd}tt |tt W d   n1 s!w   Y  |jdks-J |j	dd tt |tt W d   n1 sIw   Y  |jdksUJ dS )	zCheck that we stop the number of iteration at `max_iter` when warm starting.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/24764
    TFr   r   )rG   r   r   rJ   r0  r#   Nrm  rn  )
r&   rd   r   r   r   r5   r"  r#  r_   ro  )r  rG   rk  r*   r*   r+   "test_mlp_warm_start_no_convergence  s"   	rs  c                 C   sX   | ddd tt}d}tjt|d |tt W d   dS 1 s%w   Y  dS )zoCheck partial fit does not fail after fit when early_stopping=True.

    Non-regression test for gh-25693.
    Tr   r   r#   z0partial_fit does not support early_stopping=Truer   N)r5   r"  r#  r   r   r   rj   )r  rA   r   r*   r*   r+   test_mlp_partial_fit_after_fit  s
   "ru  c                  C   s   t dddddddddd	d
d} t  tdt tdt | tt W d   n1 s0w   Y  t	| j
d t	tjksCJ t| j
d tsMJ dS )zTest that a diverging model does not raise errors when early stopping is enabled.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/29504
    r$   r   rE   rL  r   r-   Trm  r   r   )r.   rI   rG   r/   r   rH   r   rJ   r   r0  r#   rs   Nr  )r   r   r   r   RuntimeWarningr   r5   r"  r#  strr  r&   nanr  float)rA   r*   r*   r+   test_mlp_diverging_loss  s(   
rz  c               	   C   s   t ddddd\} }t|}tdddddddd	}tdi |}|j| ||d
 tdi |j| |d d
}t|| ||  d S )Nr$   r   ro   )r   r    n_informativer#   r   rr  Tr   )r.   rG   r   r   rH   r   r#   )sample_weightr*   )r   r&   	ones_likedictr   r5   r   r   )r<   r=   swparamsm1m2r*   r*   r+   *test_mlp_sample_weight_with_early_stopping  s,   

	r  c                 C   s   d}t j| }t dd|}|t |d }||d}tddd||}t	ddd	dd
dt j
| d d||}t||||dd t	ddd	dd
dt j
| d d||}t j||||ddrpJ dS )z:Test MLP with Poisson loss and no hidden layer equals GLM.r$   r   r-   r  gHz>)r/   r   poisson)r-   r   rq   )lossr.   rI   r/   rG   r   r#   rL  r7  squared_errorN)r&   r   default_rnglinspacer  expreshaper   r5   r   r   r   r   allclose)global_random_seedr   r   r<   r=   glmrA   r*   r*   r+   "test_mlp_vs_poisson_glm_equivalent  s<   
$	r  c                  C   s^   t dddd\} }tddd}tjtdd || | W d	   d	S 1 s(w   Y  d	S )
z9Check error message when the validation set is too small.r   rn   r   )r   r    r#   Trt  zThe validation set is too smallr   N)r   r   r   r   r   r5   )r<   r=   rk  r*   r*   r+   test_minimum_input_sample_sizeA  s
   "r  )c__doc__r$  r  r   ior   rM  numpyr&   r   sklearn.datasetsr   r   r   r   sklearn.exceptionsr   sklearn.linear_modelr   sklearn.metricsr	   sklearn.neural_networkr
   r   sklearn.preprocessingr   r   r   sklearn.utils._testingr   r   r   r   sklearn.utils.fixesr   r   r9  r:  r   r   r   r2   r3   r   r   r   regression_datasetsirisr^  r"  rS  r#  rC   rm   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r-  r.  r1  filterwarningsr2  r3  rC  rD  r<  r   rK  rZ  rl  rq  rs  ru  rz  r  r  r  r*   r*   r*   r+   <module>   s    


aC



&


%*


	"





 %