Ë
    âQ(hÏ*  ã                   ó0  — d dl Z d dlZd dlmZ d dlmZmZmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ  ej$                  dd	gd
dgddgg«      Z ej$                  g d¢«      Z G d„ d«      Z G d„ d«      Z G d„ dee«      Z G d„ de«      Z G d„ d«      Zy)é    N)Úlstsq)Úassert_allcloseÚassert_equalÚassert_)ÚrandÚ
coo_matrix)Úaslinearoperator)Ú
lsq_linear)ÚBoundsgÙÎ÷SãÅ?gÉv¾Ÿ/­¿gJ+‡©¿gX9´Èv¾Ï¿gsh‘í|?Å¿gÙÎ÷Sã¥«?)g‹lçû©ñ²?gÓMbX9ð?gP�—nƒØ¿c                   óz   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej                  j                  d	„ «       Zd
„ Zy)Ú	BaseMixinc                 óL   — t         j                  j                  d«      | _        y )Nr   )ÚnpÚrandomÚRandomStateÚrnd)Úselfs    úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_lsq_linear.pyÚsetup_methodzBaseMixin.setup_method   s   € Ü—9‘9×(Ñ(¨Ó+ˆ�ó    c           	      ó  — | j                   D ]s  }t        t        t        | j                  |¬«      }t        |j                  t        t        t        d¬«      d   «       t        |j                  |j                  d   «       Œu y )N©ÚmethodÚ
lsq_solveréÿÿÿÿ©Úrcondr   )	Úlsq_solversr
   ÚAÚbr   r   Úxr   Úunbounded_sol)r   r   Úress      r   Útest_dense_no_boundszBaseMixin.test_dense_no_bounds   s`   € Ø×*Ñ*ò 	9ˆJÜœQ¤¨$¯+©+À*ÔMˆCÜ˜CŸE™E¤5¬¬A°RÔ#8¸Ñ#;Ô<Ü˜CŸE™E 3×#4Ñ#4°QÑ#7Õ8ñ	9r   c           	      ó(  — t        j                  ddg«      }t        j                  ddg«      }t        t        t        d¬«      d   }| j
                  D ]l  }t        t        t        ||f| j                  |¬«      }t        |j                  t        t        t        d¬«      d   «       t        |j                  d   |«       Œn t        j                  dt         j                   g«      }| j
                  D ]z  }t        t        t        |t         j                  f| j                  |¬«      }t        |j                  t        j                  ddg«      d	¬
«       t        |j                  d   |«       Œ| t        j                  ddg«      }| j
                  D ]z  }t        t        t        |t         j                  f| j                  |¬«      }t        |j                  t        j                  ddg«      d¬
«       t        |j                  d   |«       Œ| t        j                  t         j                  dg«      }| j
                  D ]y  }t        t        t        t         j                   |f| j                  |¬«      }t        |j                  t        j                  ddg«      «       t        |j                  d   |«       Œ{ t        j                  dt         j                  g«      }| j
                  D ]y  }t        t        t        t         j                   |f| j                  |¬«      }t        |j                  t        j                  ddg«      «       t        |j                  d   |«       Œ{ t        j                  ddg«      }t        j                  ddg«      }| j
                  D ]j  }t        t        t        ||f| j                  |¬«      }t        |j                  t        j                  ddg«      «       t        |j                  d   |«       Œl y )Nr   iöÿÿÿé   r   r   r   ç        gçÞÒ1VÀç�íµ ÷Æ°>©Úatolg‡Ô¡w³Ü?gVçž¯Ò<éûÿÿÿgÀî­»¿gUw-Ör¹Àéüÿÿÿç³¾ 
su?)r   Úarrayr   r   r    r   r
   r   r   r!   r"   Úinf)r   ÚlbÚubr"   r   r#   s         r   Útest_dense_boundszBaseMixin.test_dense_bounds   s>  € ä�X‰X�r˜3�iÓ ˆÜ�X‰X�q˜!�fÓˆÜœa¤¨"Ô-¨aÑ0ˆØ×*Ñ*ò 	AˆJÜœQ¤ B¨ 8°D·K±KØ(2ô4ˆCä˜CŸE™E¤5¬¬A°RÔ#8¸Ñ#;Ô<Ü˜C×-Ñ-¨aÑ0°-Õ@ð		Aô �X‰X�sœRŸV™V˜G�nÓ%ˆØ×*Ñ*ò 	AˆJÜœQ¤ B¬¯© <¸¿¹Ø(2ô4ˆCä˜CŸE™E¤2§8¡8¨SÐ2DÐ,EÓ#FØ!%õ'ä˜C×-Ñ-¨aÑ0°-Õ@ð	Aô �X‰X�r˜1�gÓˆØ×*Ñ*ò 	AˆJÜœQ¤ B¬¯© <¸¿¹Ø(2ô4ˆCä˜CŸE™E¤2§8¡8Ð->ÀÐ,BÓ#CØ!&õ(ä˜C×-Ñ-¨aÑ0°-Õ@ð	Aô �X‰X”r—v‘v˜r�lÓ#ˆØ×*Ñ*ò 	AˆJÜœQ¤¤R§V¡V G¨R =¸¿¹Ø(2ô4ˆCä˜CŸE™E¤2§8¡8Ð-?ÀÐ,DÓ#EÔFÜ˜C×-Ñ-¨aÑ0°-Õ@ð		Aô �X‰X�rœ2Ÿ6™6�lÓ#ˆØ×*Ñ*ò 	AˆJÜœQ¤¤R§V¡V G¨R =¸¿¹Ø(2ô4ˆCä˜CŸE™E¤2§8¡8¨RÐ1CÐ,DÓ#EÔFÜ˜C×-Ñ-¨aÑ0°-Õ@ð		Aô �X‰X�q˜"�gÓˆÜ�X‰X�q˜!�fÓˆØ×*Ñ*ò 	AˆJÜœQ¤ B¨ 8°D·K±KØ(2ô4ˆCä˜CŸE™E¤2§8¡8Ð->ÀÐ,CÓ#DÔEÜ˜C×-Ñ-¨aÑ0°-Õ@ñ		Ar   c                 óÂ  — t        j                  ddg«      }| j                  j                  d¬«      }||z  }t        j                  ddg«      }t        j                  ddg«      }||f}t	        ||«      }t        |||«      }t        |||«      }	t        j                  |	j                  |	j                  d   «      rJ ‚t        |j                  |	j                  «       y )Nr&   é   )é   r5   ©Úsizer5   r   )
r   r.   r   Úuniformr   r
   Úallcloser!   r"   r   )
r   r!   r   r    r0   r1   Ú
bounds_oldÚ
bounds_newÚres_oldÚres_news
             r   Útest_bounds_variantszBaseMixin.test_bounds_variantsP   s½   € Ü�H‰H�a˜�VÓˆØ�H‰H×Ñ &ÐÓ)ˆØˆa‰CˆÜ�X‰X�q˜!�fÓˆÜ�X‰X�q˜!�fÓˆØ˜"�Xˆ
Ü˜B “^ˆ
Ü˜Q  :Ó.ˆÜ˜Q  :Ó.ˆÜ—;‘;˜wŸy™y¨'×*?Ñ*?ÀÑ*BÔCÐCÐCÜ˜Ÿ	™	 7§9¡9Õ-r   c                 ó  — t         j                  j                  «       5 }|j                  t        «       t        j
                  g d¢g d¢g«      }d d d «       t        j                  ddg«      }t        |«       y # 1 sw Y   Œ-xY w)N)é   r,   r   r5   r4   )é
   éþÿÿÿr&   r   r   r@   é   )r   ÚtestingÚsuppress_warningsÚfilterÚPendingDeprecationWarningÚmatrixr.   r
   )r   Úsupr   Úks       r   Útest_np_matrixzBaseMixin.test_np_matrix]   sm   € ä�Z‰Z×)Ñ)Ó+ð 	C¨sØ�J‰JÔ0Ô1Ü—	‘	Ò,Ò.@ÐAÓBˆA÷	Cô �H‰H�b˜"�XÓˆÜ�1�aÕ÷		Cð 	Cús   Ÿ1A<Á<Bc           	      óž  — t        j                  ddgg«      }t        j                  dg«      }ddg}ddg}| j                  D ]^  }t        ||||f| j                  |¬«      }t        |j                  ddg«       t        |j                  d   t        ||d¬	«      d   «       Œ` t        j                  d
dgddgddgg«      }t        j                  g d¢«      }ddg}ddg}| j                  D ]^  }t        ||||f| j                  |¬«      }t        |j                  dd¬«       t        |j                  d   t        ||d¬	«      d   «       Œ` y )NgÙÎ÷Sã¥Ó¿gZd;ßO�Ç¿g#Ûù~j¼è?çš™™™™™¹¿gš™™™™™¹?r   r   r   r   gÇK7‰A`Õ?gÇK7‰A`å?gP�—nƒà¿gP�—nƒð¿gú~j¼t“È?gú~j¼t“Ø?)g`åÐ"Ûùö¿gHáz®GÁ?gJ+‡í?r&   g      à¿g•dyáý¥=r)   )
r   r.   r   r
   r   r   r!   r"   r   Ú
optimality)r   r   r    r0   r1   r   r#   s          r   Útest_dense_rank_deficientz#BaseMixin.test_dense_rank_deficiente   sX  € Ü�H‰H�v˜vÐ&Ð'Ó(ˆÜ�H‰H�e�WÓˆØ�Dˆ\ˆØ�3ˆZˆØ×*Ñ*ò 	LˆJÜ˜Q  B¨ 8°D·K±KØ(2ô4ˆCä˜CŸE™E D¨$ <Ô0Ü˜C×-Ñ-¨aÑ0´%¸¸1ÀBÔ2GÈÑ2JÕKð		Lô �H‰HØ�EˆNØ�VÐØ�EˆNð
ó ˆô
 �H‰HÒ+Ó,ˆØ�ˆWˆØ�ˆYˆØ×*Ñ*ò 	LˆJÜ˜Q  B¨ 8°D·K±KØ(2ô4ˆCä˜CŸN™N¨A°EÕ:Ü˜C×-Ñ-¨aÑ0´%¸¸1ÀBÔ2GÈÑ2JÕKñ		Lr   c                 óZ  — t        j                  ddg«      }t        j                  ddg«      }t        t        t        ||f| j
                  ¬«      }t        |j                  ddg«       t        |j                  d   t        t        t        d¬«      d   «       t        j                  |j                  «      t        z
  }t        |j                  dt        j                  ||«      z  «       t        |j                  |«       t        |j                  d	d
¬«       t        |j                  ddg«       t!        |j"                  dk  «       t!        |j$                  dk(  xs |j$                  dk(  «       t!        t'        |j(                  t*        «      «       t!        |j,                  «       y )Nr   r,   r&   ©r   r-   r   r   g      à?r'   gê-�™—q=r)   rC   r4   )r   r.   r
   r   r    r   r   r!   r"   r   ÚdotÚcostÚfunrN   r   Úactive_maskr   ÚnitÚstatusÚ
isinstanceÚmessageÚstrÚsuccess)r   r0   r1   r#   Úrs        r   Útest_full_resultzBaseMixin.test_full_result~   s$  € Ü�X‰X�q˜"�gÓˆÜ�X‰X�q˜!�fÓˆÜœœA  B˜x°·±Ô<ˆä˜Ÿ™Ð 1°2Ð6Ô7Ü˜×)Ñ)¨!Ñ,¬e´A´qÀÔ.CÀAÑ.FÔGä�E‰E�#—%‘%‹Lœ1ÑˆÜ˜Ÿ™ #¬¯©¨q°!«Ñ"4Ô5Ü˜Ÿ™ Ô#ä˜Ÿ™¨°%Õ8Ü�S—_‘_ q¨" gÔ.Ü�—‘˜"‘ÔÜ�—
‘
˜a‘Ò2 3§:¡:°¡?Ô3Ü”
˜3Ÿ;™;¬Ó,Ô-Ü�—‘Õr   c                 óÎ   — t        j                  g d¢g d¢g d¢g«      }t        j                  g d¢«      }t        ||| j                  ¬«      }t	        |j
                  dk  «       y )N)gSQ�cUì?gn-É(8´¢?güø²(8´¢?)gƒÚŒ¥ó×?g®«ì,»Š?gk§ªì,»Š?)g\s…`úî?gAÊ¨çþY ?g ¼¨çþY ?)gÏt\O?Šv?gÃ"ÈHªÚe?gFÎýÔH{?rQ   gg5_PŸG>)r   r.   r
   r   r   rS   )r   r   r    Úresults       r   Útest_almost_singularzBaseMixin.test_almost_singular’   sY   € Ü�H‰HÚIÚIÚIðKóLˆô
 �H‰HÚHóJˆô ˜A˜q¨¯©Ô5ˆÜ�—‘˜fÑ$Õ%r   c           	      óX  — t         j                  j                  d«       t        j                  t         j                  j	                  ddd¬«      «      \  }}|dz  }dt         j                  j	                  dd||g¬«      z  }dt         j                  j	                  dd|g¬«      z  }dt        j                  t         j                  j	                  ddd|f¬«      d¬«      z  }|d	d d …fxx   dz  cc<   t         j                  j                  ||«      }|d d …|f   }t        |||d
¬«      j                  }t        |||d¬«      j                  }t        j                  ||z  |z
  dz  «      }	t        j                  ||z  |z
  dz  «      }
t        t        |	|
z
  «      |
dz  k  «       y )Nr   r5   éè  r6   ç      ð?i�ÿÿÿéc   )Úaxisr&   Úbvls©Úboundsr   Útrfç»½×Ùß|Û=)r   r   ÚseedÚsortÚrandintÚchoicer
   r!   Úsumr   Úabs)r   ÚnÚmr   r    rh   ÚwÚx_bvlsÚx_trfÚ	cost_bvlsÚcost_trfs              r   Útest_large_rank_deficientz#BaseMixin.test_large_rank_deficientž   sl  € ä
�	‰	�‰�qÔÜ�w‰w”r—y‘y×(Ñ(¨¨D°qÐ(Ó9Ó:‰ˆˆ1Ø	ˆQ‰ˆØ”"—)‘)×#Ñ# C¨°1°a°&Ð#Ó9Ñ9ˆØ”"—)‘)×#Ñ# C¨°1°#Ð#Ó6Ñ6ˆØ”r—w‘wœrŸy™y×0Ñ0°°bÀÀ1¸vÐ0ÓFÈQÔOÑOˆØˆq’!ˆt‹˜Ñ‹ô �I‰I×Ñ˜Q Ó"ˆØŠa�ˆd‰Gˆä˜A˜q¨¸Ô?×AÑAˆÜ˜1˜a¨°uÔ=×?Ñ?ˆä—F‘F˜A ™J¨™N¨QÑ.Ó/ˆ	Ü—6‘6˜1˜u™9 q™=¨1Ñ,Ó-ˆä”�I Ñ(Ó)¨H°U©NÑ:Õ;r   c                 óº  — t        j                  g d¢g d¢g d¢g«      }t        j                  g d¢«      }t        j                  g d¢g d¢g«      }t        |||d¬«      j                  }t        |||d	¬«      j                  }t        j                  ||z  |z
  d
z  «      }t        j                  ||z  |z
  d
z  «      }t        t        ||z
  «      |dz  k  «       y )N)g     €H@g     €D@ç      @À)g      3Àrz   g       À)g      *Àg      $@g     @Q@)g     €DÀg     €VÀg     €G@)g      ?@g      FÀg      :@)g      K@rz   g      <@rf   rg   ri   r5   rj   )r   r.   r
   r!   ro   r   rp   )r   r   r    rh   rt   ru   rv   rw   s           r   Útest_convergence_small_matrixz'BaseMixin.test_convergence_small_matrix´   sÇ   € Ü�H‰HÒ)Ú*Ú)ð+ó ,ˆô �H‰HÒ)Ó*ˆÜ—‘Ò.Ú.ð0ó 1ˆô ˜A˜q¨¸Ô?×AÑAˆÜ˜1˜a¨°uÔ=×?Ñ?ˆä—F‘F˜A ™J¨™N¨QÑ.Ó/ˆ	Ü—6‘6˜1˜u™9 q™=¨1Ñ,Ó-ˆä”�I Ñ(Ó)¨H°U©NÑ:Õ;r   N)Ú__name__Ú
__module__Ú__qualname__r   r$   r2   r>   rK   rO   r]   r`   ÚpytestÚmarkÚxslowrx   r{   © r   r   r   r      sP   „ ò,ò9ò/Aòb.òòLò2ò(
&ð ‡[�[×Ññ<ó ð<ó*<r   r   c                   óZ   — e Zd Zd„ Zej
                  j                  d«      d„ «       Zd„ Zy)ÚSparseMixinc                 ó.  — d}d}t         j                  j                  d«      }t        |||¬«      }|j	                  |«      }t        ||«      }t        |j                  dd¬«       t        |«      }t        ||«      }t        |j                  dd¬«       y )Néˆ  rb   r   ©Úrandom_stater(   r)   )	r   r   r   r   Úrandnr
   r   rN   r	   )r   rr   rq   Úrngr   r    r#   s          r   Útest_sparse_and_LinearOperatorz*SparseMixin.test_sparse_and_LinearOperatorÆ   s}   € ØˆØˆÜ�i‰i×#Ñ# AÓ&ˆÜ��A CÔ(ˆØ�I‰I�a‹LˆÜ˜˜AÓˆÜ˜Ÿ™¨°Õ5ä˜QÓˆÜ˜˜AÓˆÜ˜Ÿ™¨°Ö5r   rA   c                 ó¨  — d}d}t         j                  j                  d«      }t        |||¬«      }|j	                  |«      }|j	                  |«      }|dz   }t        ||||f«      }t        |j                  dd¬«       t        ||||fd	d
¬«      }t        |j                  dd¬«       t        ||||fd¬«      }t        |j                  dd¬«       y )Nr†   rb   r   r‡   r&   r'   r(   r)   g‚vIhÂ%<=iÜ  )Úlsmr_tolÚlsmr_maxiterÚauto)r�   )r   r   r   r   r‰   r
   r   rN   )	r   rr   rq   rŠ   r   r    r0   r1   r#   s	            r   Útest_sparse_boundszSparseMixin.test_sparse_boundsÓ   sÀ   € àˆØˆÜ�i‰i×#Ñ# AÓ&ˆÜ��A CÔ(ˆØ�I‰I�a‹LˆØ�Y‰Y�q‹\ˆØ�!‰VˆÜ˜˜A  B˜xÓ(ˆÜ˜Ÿ™¨°$Õ7ä˜˜A  B˜x°%Ø&*ô,ˆä˜Ÿ™¨°$Õ7ä˜˜A  B˜x°&Ô9ˆÜ˜Ÿ™¨°$Ö7r   c                 ó  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        |||ffd¬«      }t        |j	                  «       t
        d¬«      }t        |t
        d¬«      }t        j                  t        d	¬
«      5  t        |j                  |j                  «       d d d «       t        |t
        dd¬«      }t        |j                  |j                  «       y # 1 sw Y   Œ=xY w)N)rc   rc   rc   gzo ð?rc   )r   r   r&   r5   r5   )r   r5   r&   r   r5   )r4   r4   )ÚshapeÚexact)r   ÚlsmrÚ ©ÚmatchrA   ©r   rŽ   )r   r.   r   r
   Útoarrayr    r   ÚraisesÚAssertionErrorr   r!   )r   ÚdataÚrowÚcolr   Ú	exact_solÚdefault_lsmr_solÚ	conv_lsmrs           r   Útest_sparse_ill_conditionedz'SparseMixin.test_sparse_ill_conditionedæ   sÅ   € ä�x‰xÒ3Ó4ˆÜ�h‰h’Ó'ˆÜ�h‰h’Ó'ˆÜ˜˜s C˜jÐ)°Ô8ˆô ˜qŸy™y›{¬A¸'ÔBˆ	ô & a¬°vÔ>ÐÜ�]‰]œ>°Ô4ñ 	=Ü˜IŸK™KÐ)9×);Ñ);Ô<÷	=ô ˜q¤!°ÀRÔHˆ	Ü˜	Ÿ™ Y§[¡[Õ1÷	=ð 	=ús   Â$!DÄD
N)	r|   r}   r~   r‹   r   r€   Ú	fail_slowr�   r¢   r‚   r   r   r„   r„   Å   s/   „ ò6ð ‡[�[×Ñ˜2Óñ8ó ð8ó$2r   r„   c                   ó   — e Zd ZdZddgZy)ÚTestTRFri   r“   r”   N©r|   r}   r~   r   r   r‚   r   r   r¥   r¥   ú   s   „ Ø€FØ˜FÐ#�Kr   r¥   c                   ó   — e Zd ZdZdgZy)ÚTestBVLSrf   r“   Nr¦   r‚   r   r   r¨   r¨   ÿ   s   „ Ø€FØ�)�Kr   r¨   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestErrorCheckingc                 ó<  — t        t        t        dd¬«      }t        t        t        dd¬«      }t        t        t        dd ¬«      }d}t        j                  t
        |¬«      5  t        t        t        dd¬«      }d d d «       t        j                  t
        |¬«      5  t        t        t        dd¬«      }d d d «       t        j                  t
        |¬«      5  t        t        t        dd	¬«      }d d d «       y # 1 sw Y   Œ€xY w# 1 sw Y   ŒQxY w# 1 sw Y   y xY w)
Nr”   g{®Gáz„?)r   r�   r�   z3`lsmr_tol` must be None, 'auto', or positive float.r–   rM   Úfoor&   ©r
   r   r    r   rš   Ú
ValueError©r   Ú_Úerr_messages      r   Útest_option_lsmr_tolz&TestErrorChecking.test_option_lsmr_tol  så   € ä”qœ!¨¸Ô>ˆÜ”qœ!¨¸Ô@ˆÜ”qœ!¨¸Ô>ˆð LˆÜ�]‰]œ:¨[Ô9ñ 	CÜœ1œa¨F¸TÔBˆA÷	Cä�]‰]œ:¨[Ô9ñ 	DÜœ1œa¨F¸UÔCˆA÷	Dä�]‰]œ:¨[Ô9ñ 	@Üœ1œa¨F¸QÔ?ˆA÷	@ð 	@÷		Cð 	Cú÷	Dð 	Dú÷	@ð 	@ús$   Á#C:ÂDÃDÃ:DÄDÄDc                 ó€  — t        t        t        dd¬«      }t        t        t        dd ¬«      }d}t        j                  t
        |¬«      5  t        t        t        dd¬«      }d d d «       t        j                  t
        |¬«      5  t        t        t        dd¬«      }d d d «       y # 1 sw Y   ŒExY w# 1 sw Y   y xY w)Nr”   r&   r˜   z0`lsmr_maxiter` must be None or positive integer.r–   r   r   r­   r¯   s      r   Útest_option_lsmr_maxiterz*TestErrorChecking.test_option_lsmr_maxiter  sž   € ä”qœ!¨¸QÔ?ˆÜ”qœ!¨¸TÔBˆð IˆÜ�]‰]œ:¨[Ô9ñ 	DÜœ1œa¨FÀÔCˆA÷	Dä�]‰]œ:¨[Ô9ñ 	EÜœ1œa¨FÀÔDˆA÷	Eð 	E÷	Dð 	Dú÷	Eð 	Eús   ÁB(ÂB4Â(B1Â4B=N)r|   r}   r~   r²   r´   r‚   r   r   rª   rª     s   „ ò@ó 
Er   rª   )r   Únumpyr   Únumpy.linalgr   Únumpy.testingr   r   r   Úscipy.sparser   r   Úscipy.sparse.linalgr	   Úscipy.optimizer
   Úscipy.optimize._minimizer   r.   r   r    r   r„   r¥   r¨   rª   r‚   r   r   ú<module>r¼      sž   ðÛ ã Ý ß @Ñ @ç )Ý 0Ý %Ý +ð €B‡H�HØ
ˆF€OØˆVÐØˆU€Oðó €ð
 €B‡H�HÒ#Ó$€÷m<ñ m<÷`22ñ 22ôj$ˆi˜ô $ô
ˆyô ÷
Eò Er   