Ë
    ÷Q(h—'  ã            	       ó¾  — 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	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 ed„ «       Zd%d„Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'ejP                  jS                  dddie* ejV                  d«      fddie* ejV                  d«      fg«      d„ «       Z,d„ Z-d„ Z.d „ Z/d!„ Z0d"„ Z1d#„ Z2d$„ Z3y)&z?
Testing for Theil-Sen module (sklearn.linear_model.theil_sen)
é    N)Úcontextmanager)Úassert_array_almost_equalÚassert_array_equalÚassert_array_less)Únorm)Ú	fmin_bfgs)ÚConvergenceWarning)ÚLinearRegressionÚTheilSenRegressor)Ú_breakdown_pointÚ_modified_weiszfeld_stepÚ_spatial_median)Úassert_almost_equalc               #   ó*  K  — t         j                  } t         j                  }t        t        j
                  d«      5 }|t         _        |t         _        d –— |j                  «        | t         _        |t         _        d d d «       y # 1 sw Y   y xY w­w)NÚw)ÚsysÚstdoutÚstderrÚopenÚosÚdevnullÚflush)Ú
old_stdoutÚ
old_stderrr   s      úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_theil_sen.pyÚno_stdout_stderrr   !   sd   è ø€ ä—‘€JÜ—‘€JÜ	Œb�j‰j˜#Ó	ð   'ØŒŒ
ØŒŒ
ÛØ�‰ŒØŒŒ
ØŒŒ
÷ ÷  ñ  üs   ‚;B½ABÁ>	BÂBÂBc                 óÀ  — t         j                  j                  d«      }d}| rd}d}nd}d}|j                  |¬«      }d|j                  |¬«      z  }||z  |z   |z   }| r-d\  |d	<   |d	<   d
\  |d<   |d<   d\  |d<   |d<   d\  |d<   |d<   n7d\  |d	<   |d	<   d
\  |d<   |d<   d\  |d<   |d<   d\  |d<   |d<   d\  |d<   |d<   |d d …t         j                  f   |||fS )Nr   ç      @ç       @é2   çš™™™™™¹?éd   ©Úsize)éþÿÿÿé   é*   )g      Àé   é+   )ç      @é   é!   )gÍÌÌÌÌÌ @é   é1   é5   é<   )gÍÌÌÌÌÌü?iùÿÿÿéH   )ÚnpÚrandomÚRandomStateÚnormalÚnewaxis)Ú	interceptÚrandom_stater   ÚcÚ	n_samplesÚxÚnoiseÚys           r   Úgen_toy_problem_1dr>   .   s'  € Ü—9‘9×(Ñ(¨Ó+€Là€AÙØˆØ‰	àˆØˆ	Ø×Ñ ÐÓ+€AØ�,×%Ñ%¨9Ð%Ó5Ñ5€EØ	ˆA‰�‰	�EÑ€AáØ‰ˆˆ"‰ˆq�‰uØ ‰ˆˆ"‰ˆq�‰uØ‰ˆˆ"‰ˆq�‰uØ‰ˆˆ"‰ˆq�Šuà‰ˆˆ"‰ˆq�‰uØ ‰ˆˆ"‰ˆq�‰uØ‰ˆˆ"‰ˆq�‰uØ‰ˆˆ"‰ˆq�‰uØ ‰ˆˆ"‰ˆq�‰uØŠQ”—
‘
ˆ]Ñ˜Q  1Ð$Ð$ó    c                  ón  — t         j                  j                  d«      } d}| j                  |df¬«      }t        j                  ddg«      }d}d| j                  |¬«      z  }t        j
                  ||«      |z   |z   }|d	z  }| j                  d||¬«      }d
| j                  |¬«      z  ||<   ||||fS )Nr   r"   r-   r#   ç      @ç      $@ç      ð?r!   é
   r    ©r2   r3   r4   r5   ÚarrayÚdotÚrandint©	r8   r:   ÚXr   r9   r<   r=   Ú
n_outliersÚixs	            r   Úgen_toy_problem_2drM   J   sÄ   € Ü—9‘9×(Ñ(¨Ó+€LØ€Ià×Ñ )¨Q ÐÓ0€AÜ
�‰�#�t�Ó€AØ€AØ�,×%Ñ%¨9Ð%Ó5Ñ5€EÜ
�‰ˆq�!‹�qÑ˜5Ñ €Aà˜b‘€JØ	×	Ñ	˜a °Ð	Ó	<€BØ�×$Ñ$¨*Ð$Ó5Ñ5€A€b�EØˆa��Aˆ:Ðr?   c                  ón  — t         j                  j                  d«      } d}| j                  |df¬«      }t        j                  g d¢«      }d}d| j                  |¬«      z  }t        j
                  ||«      |z   |z   }|dz  }| j                  d||¬«      }d	| j                  |¬«      z  ||<   ||||fS )
Nr   i'  r&   r#   )rA   rB   g      E@g      @rC   r!   rD   r    rE   rI   s	            r   Úgen_toy_problem_4drO   Z   sÁ   € Ü—9‘9×(Ñ(¨Ó+€LØ€Ià×Ñ )¨Q ÐÓ0€AÜ
�‰Ò'Ó(€AØ€AØ�,×%Ñ%¨9Ð%Ó5Ñ5€EÜ
�‰ˆq�!‹�qÑ˜5Ñ €Aà˜b‘€JØ	×	Ñ	˜a °Ð	Ó	<€BØ�×$Ñ$¨*Ð$Ó5Ñ5€A€b�EØˆa��Aˆ:Ðr?   c                  ó¦  — t        j                  g d¢«      j                  dd«      } d}t        | |«      }t	        ||«       d}t        | |«      }t        ||«       t        ||«       d}t        | |«      }t        ||«       t        ||«       t        j                  g d¢«      j                  dd«      } | d   }t        | |«      }t        ||«       y )N©rC   r   r   é   r+   r   r*   r   r   )r2   rF   Úreshaper   r   r   r   )rJ   ÚmedianÚnew_yr=   s       r   Útest_modweiszfeld_step_1drV   j   s¼   € Ü
�‰’Ó!×)Ñ)¨!¨QÓ/€Aà€FÜ$ Q¨Ó/€EÜ˜e VÔ,à€AÜ$ Q¨Ó*€EÜ�f˜eÔ$Ü�e˜QÔà€AÜ$ Q¨Ó*€EÜ�f˜eÔ$Ü�e˜QÔä
�‰’Ó!×)Ñ)¨!¨QÓ/€AØ	ˆ!‰€AÜ$ Q¨Ó*€EÜ�q˜%Õ r?   c                  ó’  — t        j                  g d¢«      j                  dd«      } t        j                  ddg«      }t        | |«      }t	        |t        j                  ddg«      «       t        | |«      }t	        |t        j                  ddg«      «       t        j                  d	d
g«      }t        | |«      }t	        ||«       y )N©ç        rY   rC   rC   rY   rC   rR   r-   ç      à?gUUUUUUÕ?gUUUUUUå?g=^íÍßÑ?gâP	™uç?g¬I³Ë?gj\jJÓ<é?)r2   rF   rS   r   r   )rJ   r=   rU   s      r   Útest_modweiszfeld_step_2dr[   �   s    € Ü
�‰Ò/Ó0×8Ñ8¸¸AÓ>€AÜ
�‰�#�s�Ó€Aä$ Q¨Ó*€EÜ˜e¤R§X¡X¨u°e¨nÓ%=Ô>Ü$ Q¨Ó.€EÜ˜e¤R§X¡X¨y¸)Ð.DÓ%EÔFä
�‰�*˜jÐ)Ó*€AÜ$ Q¨Ó*€EÜ˜e QÕ'r?   c                  óh  — t        j                  g d¢«      j                  dd«      } d}t        | «      \  }}t	        ||«       t         j
                  j                  d«      }|j                  dd¬«      } t        j                  | j                  «       «      }t        | «      \  }}t        ||«       y )	NrQ   rR   r+   r   r   r"   )iè  r+   r#   )r2   rF   rS   r   r   r3   r4   rH   rT   Úravelr   )rJ   Útrue_medianÚ_rT   r8   s        r   Útest_spatial_median_1dr`   �   s�   € Ü
�‰’Ó!×)Ñ)¨!¨QÓ/€AØ€KÜ Ó"�I€A€vÜ˜f kÔ2ä—9‘9×(Ñ(¨Ó+€LØ×Ñ˜S yÐÓ1€AÜ—)‘)˜AŸG™G›IÓ&€KÜ Ó"�I€A€vÜ�v˜{Õ+r?   c                  ó4  ‡— t        j                  g d¢«      j                  dd«      Št        ‰dd¬«      \  } }ˆfd„}t	        ||d¬	«      }t        ||«       d
}t        j                  t        |¬«      5  t        ‰dd¬«       d d d «       y # 1 sw Y   y xY w)NrX   rR   r-   r"   ç�íµ ÷Æ°>)Úmax_iterÚtolc           	      ó–   •— t        j                  ‰D �cg c]  }t        || z
  «      ‘Œ c}«      }t        j                  |«      S c c}w )N)r2   rF   r   Úsum)r=   r;   ÚdistsrJ   s      €r   Ú	cost_funcz)test_spatial_median_2d.<locals>.cost_func    s7   ø€ Ü—‘¨qÖ1¨!œ$˜q 1™u�+Ò1Ó2ˆÜ�v‰v�e‹}Ðùò 2s   •AF)Údispz:Maximum number of iterations 30 reached in spatial median.©Úmatché   rY   )	r2   rF   rS   r   r   r   ÚpytestÚwarnsr	   )r_   rT   rh   Úfermat_weberÚwarning_messagerJ   s        @r   Útest_spatial_median_2drq   œ   s…   ø€ Ü
�‰Ò/Ó0×8Ñ8¸¸AÓ>€AÜ ¨C°VÔ<�I€A€vôô
 ˜Y¨°UÔ;€LÜ˜f lÔ3àR€OÜ	�‰Ô(°Ô	@ñ 1Ü˜ B¨CÕ0÷1÷ 1ñ 1ús   Á6BÂBc                  ó8  — t        «       \  } }}}t        «       j                  | |«      }t        j                  |j
                  |z
  «      dkD  sJ ‚t        d¬«      j                  | |«      }t        |j
                  |d«       t        |j                  |d«       y )NgÍÌÌÌÌÌì?r   )r8   r+   )	r>   r
   Úfitr2   ÚabsÚcoef_r   r   Ú
intercept_©rJ   r=   r   r9   ÚlstqÚ	theil_sens         r   Útest_theil_sen_1drz   ­   s   € Ü#Ó%�J€A€qˆ!ˆQäÓ×!Ñ! ! QÓ'€DÜ�6‰6�$—*‘*˜q‘.Ó! CÒ'Ð'Ð'ä!¨qÔ1×5Ñ5°a¸Ó;€IÜ˜iŸo™o¨q°!Ô4Ü˜i×2Ñ2°A°qÕ9r?   c                  óp  — t        d¬«      \  } }}}t        d¬«      j                  | |«      }t        j                  |j
                  |z
  |z
  «      dkD  sJ ‚t        dd¬«      j                  | |«      }t        |j
                  ||z   d«       t        |j                  d«       |j                  | |«       y )	NF)r7   ©Úfit_interceptrZ   r   ©r}   r8   r+   rY   )r>   r
   rs   r2   rt   ru   r   r   r   rv   Úscorerw   s         r   Útest_theil_sen_1d_no_interceptr€   ¸   sœ   € Ü#¨eÔ4�J€A€qˆ!ˆQä¨%Ô0×4Ñ4°Q¸Ó:€DÜ�6‰6�$—*‘*˜q‘. 1Ñ$Ó%¨Ò+Ð+Ð+ä!°ÀAÔF×JÑJÈ1ÈaÓP€IÜ˜iŸo™o¨q°1©u°aÔ8Ü˜	×,Ñ,¨cÔ2ð ‡O�O�A�qÕr?   c                  ó&  — t        «       \  } }}}t        «       j                  | |«      }t        |j                  |z
  «      dkD  sJ ‚t        dd¬«      j                  | |«      }t        |j                  |d«       t        |j                  |d«       y )NrC   g     @�@r   ©Úmax_subpopulationr8   r+   ©rM   r
   rs   r   ru   r   r   rv   rw   s         r   Útest_theil_sen_2dr…   Æ   s~   € Ü#Ó%�J€A€qˆ!ˆQäÓ×!Ñ! ! QÓ'€DÜ�—
‘
˜Q‘Ó #Ò%Ð%Ð%ä!°CÀaÔH×LÑLÈQÐPQÓR€IÜ˜iŸo™o¨q°!Ô4Ü˜i×2Ñ2°A°qÕ9r?   c                  óˆ   — t        dd«      } t        j                  | dz
  dt        j                  d«      z  z   «      dk  sJ ‚y )Ng    _ Br-   r+   rb   )r   r2   rt   Úsqrt)Úbps    r   Útest_calc_breakdown_pointr‰   Ñ   s;   € Ü	˜$ Ó	"€BÜ�6‰6�"�q‘&˜1¤§¡¨£
Ñ+Ñ+Ó,¨vÒ5Ð5Ñ5r?   zparam, ExceptionCls, matchÚn_subsamplesr+   z;Invalid parameter since n_features+1 > n_subsamples (2 > 1)ée   z;Invalid parameter since n_subsamples > n_samples (101 > 50)c                 ó¼   — t        «       \  }}}}t        di | ¤ddi¤Ž}t        j                  ||¬«      5  |j	                  ||«       d d d «       y # 1 sw Y   y xY w)Nr8   r   rj   © )r>   r   rm   Úraisesrs   )ÚparamÚExceptionClsrk   rJ   r=   r   r9   ry   s           r   Ú!test_checksubparams_invalid_inputr‘   Ö   sW   € ô  $Ó%�J€A€qˆ!ˆQÜ!Ñ: EÑ:¸Ò:€IÜ	�‰�|¨5Ô	1ñ Ø�‰�a˜Ô÷÷ ñ ús   ¶AÁAc                  ó2  — t         j                  j                  d«      } d\  }}| j                  ||f¬«      }| j                  |¬«      }t	        dd¬«      }t        j                  t        «      5  |j                  ||«       d d d «       y # 1 sw Y   y xY w)Nr   ©rD   é   r#   é	   ©rŠ   r8   )	r2   r3   r4   r5   r   rm   rŽ   Ú
ValueErrorrs   )r8   r:   Ú
n_featuresrJ   r=   ry   s         r   Ú>test_checksubparams_n_subsamples_if_less_samples_than_featuresr™   ì   s†   € Ü—9‘9×(Ñ(¨Ó+€LØ"Ñ€IˆzØ×Ñ )¨ZÐ!8ÐÓ9€AØ×Ñ ÐÓ+€AÜ!¨q¸qÔA€IÜ	�‰”zÓ	"ñ Ø�‰�a˜Ô÷÷ ñ ús   Á1BÂBc                  ó¸   — t        «       \  } }}}t        dd¬«      j                  | |«      }t        |j                  |d«       t        |j
                  |d«       y )Néú   r   r‚   r+   )rO   r   rs   r   ru   rv   )rJ   r=   r   r9   ry   s        r   Útest_subpopulationrœ   ö   sN   € Ü#Ó%�J€A€qˆ!ˆQÜ!°CÀaÔH×LÑLÈQÐPQÓR€IÜ˜iŸo™o¨q°!Ô4Ü˜i×2Ñ2°A°qÕ9r?   c                  óì   — t        «       \  } }}}t        | j                  d   d¬«      j                  | |«      }t	        «       j                  | |«      }t        |j                  |j                  d«       y )Nr   r–   r•   )rO   r   Úshapers   r
   r   ru   )rJ   r=   r   r9   ry   rx   s         r   Útest_subsamplesrŸ   ý   s]   € Ü#Ó%�J€A€qˆ!ˆQÜ!¨q¯w©w°q©zÈÔJ×NÑNÈqÐRSÓT€IÜÓ×!Ñ! ! QÓ'€Dä˜iŸo™o¨t¯z©z¸1Õ=r?   c                  óÖ   — t        «       \  } }}}t        «       5  t        dd¬«      j                  | |«       t        ddd¬«      j                  | |«       d d d «       y # 1 sw Y   y xY w)NTr   )Úverboser8   rD   )r¡   rƒ   r8   )r>   r   r   rs   )rJ   r=   r   r9   s       r   Útest_verbosityr¢     sc   € Ü#Ó%�J€A€qˆ!ˆQä	Ó	ñ XÜ $°QÔ7×;Ñ;¸A¸qÔAÜ $¸"È1ÔM×QÑQÐRSÐUVÔW÷X÷ Xñ Xús   š<AÁA(c                  ó(  — t        «       \  } }}}t        «       j                  | |«      }t        |j                  |z
  «      dkD  sJ ‚t        ddd¬«      j                  | |«      }t        |j                  |d«       t        |j                  |d«       y )NrC   r-   r   g     @Ÿ@)Ún_jobsr8   rƒ   r+   r„   rw   s         r   Útest_theil_sen_parallelr¥     s„   € Ü#Ó%�J€A€qˆ!ˆQäÓ×!Ñ! ! QÓ'€DÜ�—
‘
˜Q‘Ó #Ò%Ð%Ð%ä!¨¸ÈcÔR×VÑVØ	ˆ1ó€Iô ˜iŸo™o¨q°!Ô4Ü˜i×2Ñ2°A°qÕ9r?   c                  óÂ  — t         j                  j                  d«      } d\  }}| j                  ||f¬«      }| j                  |¬«      }t	        dd¬«      j                  ||«      }t        d¬«      j                  ||«      }t        |j                  |j                  d«       t	        dd¬«      j                  ||«      }|j                  |«      }t        ||d«       y )	Nr   r“   r#   Fr~   r|   é   T)
r2   r3   r4   r5   r   rs   r
   r   ru   Úpredict)r8   r:   r˜   rJ   r=   ry   rx   Úy_preds           r   Útest_less_samples_than_featuresrª     sÆ   € Ü—9‘9×(Ñ(¨Ó+€LØ"Ñ€IˆzØ×Ñ )¨ZÐ!8ÐÓ9€AØ×Ñ ÐÓ+€Aä!°ÀAÔF×JÑJÈ1ÈaÓP€IÜ¨%Ô0×4Ñ4°Q¸Ó:€DÜ˜iŸo™o¨t¯z©z¸2Ô>ô "°À1ÔE×IÑIÈ!ÈQÓO€IØ×Ñ˜qÓ!€FÜ˜f a¨Õ,r?   c                  óÀ   — t        «       \  } }}}t        dd¬«      }t        j                  t        d¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)NTr   )Úcopy_Xr8   z`copy_X` was deprecatedrj   )r>   r   rm   rn   ÚFutureWarningrs   )rJ   r=   r_   ry   s       r   Útest_copy_X_deprecatedr®   +  sP   € Ü#Ó%�J€A€qˆ!ˆQÜ!¨¸AÔ>€IÜ	�‰”mÐ+DÔ	Eñ Ø�‰�a˜Ô÷÷ ñ ús   ¸AÁA)T)4Ú__doc__r   Úrer   Ú
contextlibr   Únumpyr2   rm   Únumpy.testingr   r   r   Úscipy.linalgr   Úscipy.optimizer   Úsklearn.exceptionsr	   Úsklearn.linear_modelr
   r   Úsklearn.linear_model._theil_senr   r   r   Úsklearn.utils._testingr   r   r>   rM   rO   rV   r[   r`   rq   rz   r€   r…   r‰   ÚmarkÚparametrizer—   Úescaper‘   r™   rœ   rŸ   r¢   r¥   rª   r®   r�   r?   r   ú<module>r½      s!  ðñó 
Û 	Û 
Ý %ã Û ÷ñ õ
 Ý $å 1ß D÷ñ õ
 7ð ñ	 ó ð	 ó%ò8ò ò !ò.(ò
,ò1ò":òò:ò6ð
 ‡�×ÑØ ð ˜QÐØØˆB�I‰IÐSÓTð	
ð ˜SÐ!ØØˆB�I‰IÐSÓTð	
ðóñóðòò:ò>òXò
:ò-ó"r?   