o
    Ö­j£d  ã                   @   s>   d dl Zd dlmZ d dlmZ d dlmZ G dd„ dƒZ	dS )é    N)Úassert_allclose)Úraises)Únnlsc                   @   sd   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S )ÚTestNNLSc                 C   s   t j d¡| _d S )Nl   óF_fÐr/ )ÚnpÚrandomÚdefault_rngÚrng)Úself© r   ú[/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_nnls.pyÚsetup_method   s   zTestNNLS.setup_methodc                 C   s^   t  d¡ dd¡}t  d¡}|| }t||ƒ\}}|dk sJ ‚t j || | ¡dk s-J ‚d S )Ng      9@éÿÿÿÿé   g      @çH¯¼šò×z>)r   ÚarangeÚreshaper   ÚlinalgÚnorm)r
   ÚaÚxÚyÚresr   r   r   Ú	test_nnls   s   
 zTestNNLS.test_nnlsc                 C   s�   | j jddddgd�}t | j jdddgd�¡}d|d d d…< || }t||dtj |d	¡ t d
¡ d�\}}t||ddd� |dk sFJ ‚d S )Néöÿÿÿé
   é2   ©ÚlowÚhighÚsizeéþÿÿÿé   r   éô  é   ç      ð?©Úatolç        ç»½×Ùß|Û=©Úrtolr'   çê-�™—q=©	r	   Úuniformr   Úabsr   r   r   Úspacingr   ©r
   r   r   ÚbÚxactÚrnormr   r   r   Útest_nnls_tall   s   *zTestNNLS.test_nnls_tallc                 C   s�   | j jddddgd�}t | j jdddgd�¡}d|d d d…< || }t||d	tj |d
¡ t d¡ d�\}}t||ddd� |dk sFJ ‚d S )Nr   r   éd   éx   r   r!   r"   r   r#   r$   r%   r&   r(   r)   r*   r,   r-   r1   r   r   r   Útest_nnls_wide   s   *zTestNNLS.test_nnls_widec                 C   sX   | j jdd�}| j jdd�}ttƒ� t||dd� W d   ƒ d S 1 s%w   Y  d S )N)r   r   )r    r   r$   )Úmaxiter)r	   r.   Úassert_raisesÚRuntimeErrorr   )r
   r   r2   r   r   r   Útest_maxiter'   s
   
"ÿzTestNNLS.test_maxiterc                 C   sÔ   t  g d¢¡}t  g d¢¡}t  g d¢¡}t|ƒ}t  |¡t  t  ||f¡¡ }|d }|dk ¡ d }d|||f< d||t  |d |d ¡f< d||< d||< t  |¡}t|| || ƒ\}	}
t	|	|dd	d
� d S )N)Cé   r"   r   r$   r$   r$   r=   é   é   é   é   é   é)   é/   é5   é9   éC   éL   ég   éY   éa   é^   éU   é_   éN   rO   rO   éM   éI   r   r   é8   éD   éb   rN   ép   é†   é‘   éž   é¬   éÕ   éê   éÞ   é×   éØ   r^   éÎ   é·   é‡   éœ   én   é\   é?   é<   é4   rA   é   r@   é   r   r   r   r$   r"   r=   r   r"   )Cr(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   ç¥ oN ç?r(   g¥ oN ÷?rj   ç¥ oN @ç¥ oN @rl   g¯šVSð(@gÙ‚òf°C.@g�¬¡D -4@gÄŽ$]Ða;@g-ÜR´#H@gªãPxÇG@g:Ù6:"Q@g¯šVSðX@gAÐê[”[@gùù™9ï`@g^¿;m�a@g¥ oN g@gYÇëHòoe@çØERW³«i@gºÑÝgÝˆn@g_�ÿZgÀj@gì9 a“�l@gh¨bÞ m@rm   g›¦ˆIže@gëüQ–õg@g1ðD/Dd@g©àBA{/c@gGM^^¾[@gxµ WÂÂY@g›¦ˆIžU@gÙ‚òf°CN@g›¦ˆIžE@gªãPxÇ7@g¯šVSð8@g|¸Ó:@K1@g¥ oN '@rl   g�¬¡D -@gÎˆbÀÒ@r(   rk   r(   r(   r(   )Cr(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   g]<ôTÜo?r(   gTT®À'?r(   gª#ÛIš?g‚'ø|ë¢?r(   g¿…—Îµ?g’ï	kÑ­¨?güõ<h:É?g4 &¥frÂ?gûwÕpèÅ?r(   r(   g£ù™Äc@Ñ?r(   r(   r(   gÛqå2O†?r(   r(   r(   r(   r(   r(   r(   r(   gËšHZ©¨?gæ«ØT‡?r(   r(   gjµœÓE>¬?r(   r(   r(   r(   güö_kœ?r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   ç      à?r   r$   r   r(   r)   r*   )
r   ÚarrayÚlenÚdiagÚtrilÚonesÚnonzeroÚminimumr   r   )r
   ÚnÚkÚdÚNÚAÚwÚnzÚWÚdactÚ_r   r   r   Útest_nnls_inner_loop_case1.   s(   ÿÿÿ
z#TestNNLS.test_nnls_inner_loop_case1c                 C   s  t  g d¢¡}t  g d¢¡}t  g d¢¡}t|ƒ}t  |¡t  t  ||f¡¡ }|d }|dk ¡ d }d|||f< d||t  |d |d ¡f< d||< d||< t  |¡}t|| || dd	�\}	}
t  	|	¡}t  
|	dk¡spJ ‚t jj|||  t jd
�dk s�J ‚t|	|ddd� d S )N)Dr$   r   r$   r"   r"   r"   r=   r=   r   é   r?   r?   é   é   é$   é*   r„   é@   r†   r†   éQ   rM   rM   rN   rN   rN   éK   rH   éE   r‡   é>   é;   rS   r†   éG   rG   éJ   rO   év   ra   é™   éŸ   éÒ   éÃ   éÚ   éó   éì   r]   éÄ   é¯   é¹   é•   é�   rI   éh   rˆ   rR   é(   é    rƒ   é   é	   ri   r>   r"   r$   r$   r$   )Dr(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   ç„±£¢›æ?r(   r(   g#ÅúùVô @r    r(   gå�LKæA@gå�LKæA@g„±£¢›&@ç#ÅúùVô0@çàXdÃ“|4@r¢   g�¯^u¸B@gÂÐyçK@gðó	‘„šS@g{¶‚ñîÈY@gÔ—æÇ}Z@gÜ¢+š¶o_@gPë@Ú¡b@g[ÛÓê{f@gwf@c£h@gÔ—æÇ}j@go=´¸›i@g†¦Iœ�:m@g
$Út¨£k@gû%Øuh@g(
ã�©¹h@gëH+n5îg@gsþÔ-}g@guqšiœb@gúî*B´l`@gÔ§}õ#]@gÏ¸—÷OW@g¾"(²@V@gÍb"a4ØJ@g„±£¢›F@g¡J?@g(
ã�©¹8@r¡   çT;OÎºÇ#@r£   ç„±£¢›@r¤   ç„±£¢›ö?r    r¥   )Dr(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   g�"í%&ôa?r(   r(   gY¾ÍM­‡?r(   r(   gR.�†S£?g“Çh¾¤q¢?gwLB›íW¸?gÓQåº?gðò´F
}Œ?g�ÑÇ™H“?gšL'%²†Ê?gô…*òO�Ó?gÞ°acªÁ?r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   r(   g ÏK’u¦?g bb,M‡n?r(   r(   r(   r(   r(   gðêwÕ¬D¸?r(   r(   r(   r(   r(   r(   r(   r(   gL›gÎ?r(   r(   g '¶²²?rn   r   r$   r   r   r&   )Úordé   r(   r)   r*   )r   ro   rp   rq   rr   rs   rt   ru   r   ÚcumsumÚallr   r   Úinfr   )r
   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   Úpr   r   r   Útest_nnls_inner_loop_case2h   s.   ÿÿÿ

"z#TestNNLS.test_nnls_inner_loop_case2c                 C   sV   t  g d¢¡ dd¡}t jdt jd�}t||ƒ\}}t|t  g d¢¡ƒ t|dƒ d S )N(½  gÄ\˜ó¨aÕ?g°{ š6‚¼?g'Ý¯�û(©?gÊ§¼y£?g°{ š6‚¬?gîÂz„MÅ?g=YZM[g¼?g×<NÒG¹?gÓ�‘3’ïÂ?g=YZM[gÜ?çèo½‰+j¼?r­   gê|\˜ÒÎÂ?gîN§ OÕ?glÖ7¼”ù÷?gâx7Oµ?g.¡TŸei¼?gÿy�ÊÉ?gsk8jîðâ?g.¡TŸei@gÍ›ÎJÛ±?g YX'i¼?g�ý†„WÏ?g²¦Ó#˜í?gêFl–¡¾@gZIÝÑ\g¬?gZIÝÑ\g¼?gÄ9ãÞöÌÒ?g÷e�…Mõ?gåµQ6÷'@gùÒ¥¸R¨?gÍmÊ‚`¼?g‘1øÔéÕ?gm¥î!Ú÷ü?g�œD&§3@g5åÆs@¥?gGÜ³»îU¼?g,Õ&.çÙ?gÚ’"}ôã@gGÜ³»îU<@g³E¨&.Û¢?g�hü9ÅH¼?g›7ó Ü?g7øìhfÝ@goñ‡hÎ"D@g"Xz”(ô ?gä’v÷˜A¼?g»…”ò+ß?g­ƒWÿn@grË©a˜K@go“síÍž?g{œTD<¼?gê|•!á?gò§º(Ë@g2}èE�YR@gá°œ7š?gô?|2>¼?güŠÙÃ†@ä?gq†pÜ@gÚ+‰è8L^@g7€ã^œ–?gâD`œvC¼?gŽØÕÂ€bç?g\h ‡� @gÂ’y‹ÖIg@g Ö‘^ˆ6•?gVmÓµH¼?g¤i%Û;öè?g9¾Hâ#Û"@gVmÓµHl@gÌ¢'úÈß’?g2t;w­O¼?gZ�:>îì?g*š\:ã'@gy">¹'t@gQ“S7:1�?gÎAÒà%V¼?g€z¦_ið?gÉ»ÀwE0@gÚXáa€@gyÖ™rõ‘�?g3~8‹V¼?g»‡ÓlÁùñ?g«Ú>åñ„3@gÁÃ'ËT…@gŸZ­¢Q"Š?g×Ì;pØO¼?gY)o.Mô?g÷¢t-�ë8@g�&f�'_Ž@gÕÅ‹°Tg‡?g�SU†G¼?g]¢‹‚3žö?gO€¨÷>@g6¾AT•@gÌÐØÊZŒ„?gêÖü@¼?gE”mæ¶ù?gý^BD@goïªÊ}üž@gŽÂeëhT‚?gFá<À!B¼?gC"1¶þÕü?gsí€¿›/I@géÍI×¥@g:H¤Ü‘‡€?g¦˜ƒî<¼?gŸ�®+îÿ?g»9Z²YçN@gz³b1P²­@gœlÊ½Wt}?gÀR7k):¼?g‚ <‡Àç@gU/2eqS@gxÉAö´@g¸8”Ú°z?gÇ’ B*B¼?gtN$_C@g1Š‡’ßX@gt10•zP¾@gˆ@Žv	w?g¸tÙ÷P¼?g1‰~¶	@g,t´ù	`@g¤ˆKËC/Æ@gúÎ( t?gÃ—Ø	\¼?g¯…Ï	@g™E¸ú@d@g¨Õƒ(Ï@g"‡aì]nr?gªÁ!&j¼?g}ó{Ôþ@gá3ÀQFSi@gý¬äú6öÕ@g2šl{p?g’Ëáq¼?g§J�ŠýN@g6±v¥ôo@g]rð0dß@g¢Î‚m?g¶Ü7©·–¼?gTeM—ìT@g©keUt@gÏž‡&îå@g¶h+â	:j?gˆz_Ïz¯¼?gƒ„ÄcÄ@g?úî±¼y@gëkh.«ï@gKòÌßÈtg?g|”“áÔ¼?gÉfoù	u@gëµMÇU€@g�u™�–ö@gÈÑÐ;ûe?gs ?ryð¼?gÁ»VK�V@g�Á~„„@gTŸýó¼ÿ@g¹êÍŽöÕb?g4(Ü	½?g÷M(Î¡@g%mŸá‰@g¦.¯ä§qAg9ÀÍÔ¨À`?g¸ë…{$½?g]§ÛÍ'Ç @g°pS©‰�@gÅ%0œ'.AgN}>%ì ^?gµÜðþå8½?gíÅ•GµÖ"@g›‡–AÊ”@g�oÝœÇAgGG�GÏZ?g÷ÍIB¶R½?gJH�;�:%@gú—™æ%Oš@g_Ñ±/ Agö–ÜëW?g94ÉOf½?gYÞ>\ë'@gÁZ‘É,¨ @gÿºî�'Ag\O¨‡gFU?gGƒFŠy½?gßœ¶Âb+@gcC!>7¥@gìjìbˆ0AgÙ¼“Á’S?gÇ÷Çq‰½?g5ÄØ-ÄW.@gSg.Id®ª@g5ä�@K7AgFÍÂkôP?g~ã¯By”½?gÔ”_¯1@gKY“iâ°@g8*Ý6’@AgbðÚ?1AN?g´`†ŽÕŸ½?gÚ.áb633@g´ çzYMµ@gšb‘4wGAgÁK×ÆàöJ?gr)	›ó³½?gð¢›?H¨5@g‹OY44»@gêÖïXõ¿PAg"4H?gÒ'6ÀÍ½?g5“pëøf8@gå‹¦ÕçÁ@g-ßLÌWAgDáÒÚÌ¢E?gBAMàd¾?g·pMÇ±;@gAF�k±ÑÅ@g4ßWGaAg6
+JsC?gD#ÿÜV¾?gÎ;y�TS?@g×ÏÅ¯Ë@gŠÔð;‚JhAg*$JüfA?g¶ð
Ó¾?g	YÒWÆ°A@gõbÉ¥À�Ñ@gîhpëQqAg{<˜cŒõ>?g‰Û	2¶y¾?gäæ…QÛC@gø�åÜ%Ö@gn)$9í†xAgêòÔqÃi;?g.ZüOW¾?gºx¯û9F@gmk “¤ßÛ@gâN[Z�AgÂwE¼‚u8?gìar‘j¾?g±‡¥«ŽI@g}Oq\È¢á@gTRŠØ«ˆAgtrl�º5?gmºàfeT¾?g�ÿ/��L@gàÆ_–é(æ@g&3gf‘Agúâ[èM3?g!‰‘‘çI¾?gì.5ÍºtO@gyÐ)G1öë@gmw¾˜­˜Agâ@s›¸<1?gNÜ9ù]¾?gk)†)—´Q@gWÕw]ò«ñ@g:°ÿ¼ƒ¡AgËW;×!õ.?gà¨'”¢¾?g¾U½‘ûT@gÂ“50€ö@g¥«‰©Ag¨$¥„¾+?g<‡ixÄÔ¾?gpµø¦â­V@g`²ùŽü@g�8'@Ú±Ag"í/†–(?gÆ-�£]³¾?gãúþ—ï_Y@g:‚óAgoá¡³7¹AgK3êPÔ%?gím¯2¼œ¾?gX9n˜8j\@g)f\M“Ag¦¾&ÖÑÎÁAg²S-fZJ#?gÝiûlzd¾?gkÛˆÛ±_@g9)i¶tJAgir(/|ÉAgú›lóÝ ?gÅÖf�Û½?g9¶@™ö}a@gÿá;åŠAgÙ(QµwÑAgñ«ÛmXm?goâ6i4A½?g/^Ð@c@gâß÷E¯Ag¥£Ôï–@ØAg›T#æ?g¢òªêªê¼?gª¹Õçã^e@g‚]el	Ag£AˆãûàAgxéÖ?gF'Ö;I§¼?gÅ¹8Ëg@gtN6�jé Ag™õ}!pÞçAg6óÔð?gÒy ¼P¼?gš§¹=:ij@gÐW“7ë%Ag±Î»¶ðAg"dÑ §?gÁ7nÏñ»?g¢t´ÕÉGm@g˜‡ãÐ�B*AgÚL÷b÷Agcrý¿�?gðº­®²–»?gº¯0sí;p@gò
ì	SZ0AgRZ„ÜÕZ Bg7xõ40?gc&9,
'»?gqÊ5óòq@g<™U_¶O4AgJŒÜFÒBgwÔñÏcœ?g?–%?}º?g“6pè½«s@gbHÛŒ9AgP Ùå¯�BgÝ8	Îx?g*'¨¾Ì¹?g2ÐÏí{…u@g~«Ž|p»>Ag>;¬Û+ÉBg
gîk+?g·B«5¸¹?g(�x@g„M VSCAgñ8ëyÆBgÏ9W×,‚ ?g-ôÂxU@º?g0Á4r¡{@g`³1|äHAgõe„†ÿC&Bg*Éä”å<ÿ>gì–6"iæ»?g‚d¯_t~€@gÉÐù1±PAgîmQ«Å0BgÍ	©À˜+þ>gª–I½D¾?g¨Eax£„@g¼ò€sÙVAgîjÌÊ9Bg“ãª¢9Oý>g„|‚b2„À?g‚ºW|f¤ˆ@gÕ
Àx_AgŸ€o,óCBg{¹Á™ü%ü>g!D)�ÑÁ?g]ÿâ€	Ý�@gà<ª‚keAg ³$‚NBgºs£¥n5ú>gba7UÎ¢Â?gÑþÏŠ‘@gàËY¶pDlAgøºÎ�»œVBg‘Wòí_‚ø>gæ!?ê¢“Ã?g4hØcC³”@g›­1Ò¼rAgê×îW¼Õ`Bgs‹—Õtõ>g,Lð™ äÂ?g±9u:ôp–@g «¾ÐvAgkÍÛ5»gBg/Ë¦]˜ò>gÒû%#¾Â?gUÝ=™@guX3]ß�|AgìÞ"�1pBgåÉèæð>gÃÒ0›#+Â?gÛ;~;›@g:PsŸúw�AgŒ–vI@vBgUŒ“ë>g¤�kW‰Á?gƒOM†�@g\#õ=F…Ag_Ÿ‚xlp~Bg	N˜nžè>gÞîß@-–Á?gg�ÁÕ–¡ @gX!òÐnìŠAg„V³^£…BgÏc¨5–å>góÁ�RÁ?gXÏæ¾f¢@g£�%ñ;»�Ag‡£Ö«m5ŽBgCŒ?'Lä>g›#*¸KÂ?gà3ÀKÕ¥@ga2G}‰L–Agâýpïœ–Bg*ÌºôSŸè¾g¾á9 0LÂ?gøu�ö†¨@g‰-ª $œAg²økMÃ†—Âg¬?�®7ö¾gÖ&>0èÂ?gNç:x¬@g+s?É¨X¢Ag%˜p�‘Âg»Õ"ê•¿g‹X„	‡Ä?gØV–ùb\±@g`Ëo‚"©Agîf�ü!´yÂgµýQ¼û
?g¤	Û~bŒÄ?g~­ÂéŽ…³@g zó@ª¿¯AgÍ…}s ŒBgué£fó>gò"~(#ÆÃ?gëºÀ4Jµ@g`Æ%T¯F³AgÑºDbì¦Bg$€•›uœ¿gz#â(g Â?gY ¢”µ@g ®ýqÖ$¶Ag6a¤ãJŽÂgI]qÛ7iý>gw»–8ñßÀ?gŠSfv¹¶@g6v_Ôn1ºAg~†j3è BrJ   r   )Údtype)gÀídËM�ã?gÆmÑUüq @r(   r(   r(   g|³%íãð?)r   ro   r   rs   Úfloat64r   r   )r
   rz   r2   Úsolr4   r   r   r   Útest_nnls_gh20302£   s   ÿ  �ê zTestNNLS.test_nnls_gh20302c                 C   sz   g d¢g d¢g d¢g d¢g d¢g}g d¢}t  g d¢¡}t||ƒ\}}t||ƒ t  t j || | ¡| ¡dk s;J ‚d S )	N)góíç*ds?g&²ñ—¼¸¿g’%òUš¦¿gÅÇÙFÚÙ?g‚õ,îXÁÑ¿g[˜§'J¥Ê¿g…uš;Æ¿gs¯ˆ¦ãª?)g·‘_bhýž¿g@Ä68›mÓ¿gFW=o–$Ç?gÞœ½ùä¤±¿gŠ.*€ŸÆÚ¿gIy
f[Ó?g>ú¿kÜTÈ¿gÂÿ½o²J„¿)gmäœÑ*eÐ¿g»Íœh¦¿gý“È�MMÜ?gVjŽ�Á¿g‘‚œz|¿g�a˜{T®¿gÂnCÁãY�?gCý9gTá?)gõ2u51àÒ?g^:Â°,ÂÕ?g.Âî.BšØ?gç£€ˆ•Ó¿g×²_®Ð1Ç?g–ÌO†ùw×¿gˆ.I’–¿g§7Ï·ÑÑ¿)gúúàQoà?g§%T¨¬ÎÉ¿g•û:ûƒµ?g‚0ÉÙ”!Ð?gß?â™õÂ?g´—^=ê†Ð¿gõáU_¡pÄ¿gÄ>dJŒã?)gøò]j	2@gêsQd 2Àg&Åû@+@g{!™­ËRÀg¡á^H'U"@)r(   gÕ«#�]@g¼A²<Ž™F@g´¾°Ç§Y@r(   gœÐ©aôíK@r(   g6"Ú=ž»=@ç‚vIhÂ%,=©r   ro   r   r   r/   r   r   )r
   rz   r2   Údes_solr°   r   r   r   r   Útest_nnls_gh21021_ex1@  s   ô
*zTestNNLS.test_nnls_gh21021_ex1c                 C   s|   t  ddgddgddgddgg¡}t  g d	¢¡}t||ƒ\}}t|t  d
dg¡ƒ t  t j || | ¡| ¡dk s<J ‚d S )NgÈ±ô}ˆÐ?g’“ÂÎ¿gû°rò9Wà?g ÞºcÒ?g¦ë {:ê?g¤˜mŒ¢¿gRnP>zŸ?ggÕþADã³¿)g/¸Åt8@gFžá”<@gfèòky�D@gÊÔa¼CSó¿g´,vˆ'K@r(   r²   r³   ©r
   rz   r2   r°   r   r   r   r   Útest_nnls_gh21021_ex2\  s   ü*zTestNNLS.test_nnls_gh21021_ex2c                 C   sþ   t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t  g d¢¡}t||ƒ\}}t|t  g d¢¡dd� t  t j || | ¡| ¡dk s}J ‚d S )N)gyÚS$µ?geòÓ_æ­?gÔUjHhº¿g+²Áë) ?geJùu66ž¿)g�:Œå1yË?gŽÍ<²´Ë¿g§uÙ€ë°»¿gKK©¿?gjî¢9e;Ã¿)gº“îúš�²?gÌ5
Vçðh¿g8~¶…Ú¥?gc}œèâ—’¿gùQß=™½?)gÔßHÏÍ?gÊO‰<T·¿g¹g	F^SË?gºzÇÌhr?g-Mû¹|DÅ¿)g¸	ÀŽþ˜¿gÆiƒªÄÉ¿gµ�'V� Ÿ?goÏ‡ãæY§¿gSfË¸-¼?)g£}‚cà½Ò¿gòô
ü(Ê¿ggq¸Ò½d•¿gÀ¾ÃÐÃº¿g_nP ©S«?)gÊsI�6Ì?gîðTÎ5�?g³y•Ø.µ?g:'W‚WôÆ¿gORB™;¾¿)gþ¤€>ºº?gŒí–[šz·?grKóbP/¤?g7EþýåT½?gAžÑ÷±F³?)gJ}ä9«ª¿gÎ¸\´Q5Ä¿g�4Ìeµ¿gÖ~Ó¸‰[ ¿g�¹N.ÿ«¿)gg·y„F…¿gteRÆê�?gØKðd¨?gÇBµÌÆ¿g�Åî)º?)gajOÁ ?gäð×o ¦Ñ¿g)´¿~™?g¥¢>¦#Â¿g„îd¢ ¡¿)gõOBisù¿¿gp=ÅWÉ×ž¿gdLªU–]ª¿gòÔXê‰¸ˆ?gOËV¥Ê¢¨?)g�Éµéµ†Ã?gyì7ãÛ�ª¿g`ØaÞ³­?gFK	ß³2±¿g�+gæ*”Â¿)gÌ:±¾ú\¿?g²NZÆ¿gq®VÚXñ™¿gÐsÃ·?½?gU!¨ßa©¯?)g3›õAs¿È?gXRyü³Ë?gµGkFàU“¿gP!ñbDZ´?g:¬;lÌ¿)g&Ù‹Í¨’¿gÕž‹„¾*À?g~7Q#äíŸ¿g3ßû4gœ?g4Œ‘l°?)g,V§™Á?gHÆÑRßTª¿gºÎäY"«Õ?gHÙ1Z†…Ð¿gVÄâ§T%Ñ?)gøÞ#wÇÃÀ?gÞ{¡”³ó¾?gR20ÀÝÁ¿gð¨‡¨ŽÒÅ?g„nFá}òÎ¿)gÎ,.}øOÒ?g~knŸŸ-Þ¿gžŽÊ?g–‚2ç/¡¸¿g¹î¤ÊI¸³¿)g_UnÝRÌ?g¬¹;Oš?gPÔù@M–¿gÇJmš§?g}No»éÉ¿)g}r9­¡!¦¿g|sÖbúÍÆ?gáyÓ	ÍŽ¿g‘æÉ€‘ç±?gt@/W ·¿)gØ©™„Š·Æ?gN1	òUÞÊ¿gœºvrM
°?g^FÂe¨±?gçÈ¡ÅË™?)gºòBC›Ë½¿gWÅ<Â}1Ó?gŠžŒŠ¡?g0™$ôßX�?g»³¦·À¯W¿)gGöX±×õ˜?g£È,4a«?gÍ‹HÙ‚Ž›?gL¤íyõª?gÐ¼àX åÃ?)g†ç{÷Wÿ’¿g¨¾%°r¼©¿g]{1¤DoÐ?gÄ=\_®Ð¿gk7W˜É6Ð?)gË#üª�ÀgˆGÕá… Àg±Ó|2
@gÈPu<M0@g[ëEºÁ~@gëì°ˆ†ù¿gH>�:F@gœÂW@go?Ž`%ÀgLí0@g"Šè®Wkþ?gÃ<ës8uÀgbÞ@¸@gÅàôþ¿g‹1«ˆè÷¿g¥]B$OÀg][€À…Ú9@g‚K#Q%ÀgBÛCù/@gÔ:Ô�½bú¿g9¿(­£øñ¿gZÕ^�g#@gP2«¦0n@gêè0ä„p @gzðFß›3@)r(   r(   g Ó—ÃS@r(   r(   r²   r&   r³   r¶   r   r   r   Útest_nnls_gh21021_ex3k  sB   Ï4
ÿ*zTestNNLS.test_nnls_gh21021_ex3N)Ú__name__Ú
__module__Ú__qualname__r   r   r5   r8   r<   r€   r¬   r±   rµ   r·   r¸   r   r   r   r   r      s    	:; r   )
Únumpyr   Únumpy.testingr   Úpytestr   r:   Úscipy.optimizer   r   r   r   r   r   Ú<module>   s
    