Ë
    âQ(h£d  ã                   óD   — d dl Zd dlmZ d dlmZ d dlmZ  G d„ d«      Z	y)é    N)Úassert_allclose)Úraises)Únnlsc                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestNNLSc                 óL   — t         j                  j                  d«      | _        y )Nl   óF_fÐr/ )ÚnpÚrandomÚdefault_rngÚrng)Úselfs    ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_nnls.pyÚsetup_methodzTestNNLS.setup_method   s   € Ü—9‘9×(Ñ(Ð)9Ó:ˆ�ó    c                 ó  — t        j                  d«      j                  dd«      }t        j                  d«      }||z  }t        ||«      \  }}|dk  sJ ‚t         j                  j                  ||z  |z
  «      dk  sJ ‚y )Ng      9@éÿÿÿÿé   g      @çH¯¼šò×z>)r	   ÚarangeÚreshaper   ÚlinalgÚnorm)r   ÚaÚxÚyÚress        r   Ú	test_nnlszTestNNLS.test_nnls   sp   € Ü�I‰I�d‹O×#Ñ# B¨Ó*ˆÜ�I‰I�c‹NˆØ�‰EˆÜ�a˜“‰ˆˆ3Ø�TŠzÐˆzÜ�y‰y�~‰~˜q 1™u¨™kÓ*¨TÒ1Ð1Ñ1r   c           	      ó~  — | j                   j                  ddddg¬«      }t        j                  | j                   j                  dddg¬«      «      }d|d d d…<   ||z  }t	        ||dt        j
                  j                  |d	«      z  t        j                  d
«      z  ¬«      \  }}t        ||dd¬«       |dk  sJ ‚y )Néöÿÿÿé
   é2   ©ÚlowÚhighÚsizeéþÿÿÿé   r   éô  é   ç      ð?©Úatolç        ç»½×Ùß|Û=©Úrtolr,   çê-�™—q=©	r   Úuniformr	   Úabsr   r   r   Úspacingr   ©r   r   r   ÚbÚxactÚrnorms         r   Útest_nnls_tallzTestNNLS.test_nnls_tall   sª   € Ø�H‰H×Ñ ¨2°R¸°HÐÓ=ˆÜ�F‰F�4—8‘8×#Ñ#¨°¸"¸Ð#Ó>Ó?ˆØˆ‰#ˆAˆ#‰Ø�‰EˆÜ˜1˜a c¬"¯)©)¯.©.¸¸AÓ*>Ñ&>¼r¿z¹zÈ"»~Ñ&MÔN‰ˆˆeÜ˜˜a b¨uÕ5Ø�uŠ}Ð‰}r   c           	      ó~  — | j                   j                  ddddg¬«      }t        j                  | j                   j                  dddg¬«      «      }d|d d d…<   ||z  }t	        ||d	t        j
                  j                  |d
«      z  t        j                  d«      z  ¬«      \  }}t        ||dd¬«       |dk  sJ ‚y )Nr   r    éd   éx   r"   r&   r'   r   r(   r)   r*   r+   r-   r.   r/   r1   r2   r6   s         r   Útest_nnls_widezTestNNLS.test_nnls_wide   s¬   € ð �H‰H×Ñ ¨2°S¸#°JÐÓ?ˆÜ�F‰F�4—8‘8×#Ñ#¨°¸#¸Ð#Ó?Ó@ˆØˆ‰#ˆAˆ#‰Ø�‰EˆÜ˜1˜a c¬"¯)©)¯.©.¸¸AÓ*>Ñ&>¼r¿z¹zÈ"»~Ñ&MÔN‰ˆˆeÜ˜˜a b¨uÕ5Ø�uŠ}Ð‰}r   c                 óØ   — | j                   j                  d¬«      }| j                   j                  d¬«      }t        t        «      5  t	        ||d¬«       d d d «       y # 1 sw Y   y xY w)N)r   r    )r%   r   r)   )Úmaxiter)r   r3   Úassert_raisesÚRuntimeErrorr   )r   r   r7   s      r   Útest_maxiterzTestNNLS.test_maxiter'   sY   € à�H‰H×Ñ 'ÐÓ*ˆØ�H‰H×Ñ !ÐÓ$ˆÜœ<Ó(ñ 	"Ü��A˜qÕ!÷	"÷ 	"ñ 	"ús   ÁA Á A)c                 ó0  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        |«      }t        j                  |«      t        j                  t        j
                  ||f«      «      z  }|dz  }|dk(  j                  «       d   }d|||f<   d||t        j                  |dz   |dz
  «      f<   d||<   d||<   t        j                  |«      }t        ||z  ||z  «      \  }	}
t        |	|dd	¬
«       y )N)Cé   r'   r   r)   r)   r)   rE   é   é   é   é   é   é)   é/   é5   é9   éC   éL   ég   éY   éa   é^   éU   é_   éN   rW   rW   éM   éI   r!   r!   é8   éD   éb   rV   ép   é†   é‘   éž   é¬   éÕ   éê   éÞ   é×   éØ   rf   éÎ   é·   é‡   éœ   én   é\   é?   é<   é4   rI   é   rH   é   r   r   r   r)   r'   rE   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 ÷?rr   ç¥ oN @ç¥ oN @rt   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@ru   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 '@rt   g�¬¡D -@gÎˆbÀÒ@r-   rs   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Ú_s              r   Útest_nnls_inner_loop_case1z#TestNNLS.test_nnls_inner_loop_case1.   s  € ä�H‰Hòóˆô �H‰Hò,ó-ˆô" �H‰Hòó	ˆô  �‹FˆÜ�G‰G�A‹JœŸ™¤§¡¨!¨Q¨£Ó1Ñ1ˆØ�‰Hˆà�1‰f×ÑÓ Ñ"ˆØˆˆ"ˆbˆ&‰	Ø+-ˆˆ"Œb�j‰j˜˜a™  Q¡Ó'Ð
'Ñ(Øˆˆ"‰Øˆˆ"‰Ü�G‰G�A‹Jˆô
 �q˜1‘u˜a !™eÓ$‰ˆˆaÜ˜˜a b¨uÖ5r   c                 ó  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        |«      }t        j                  |«      t        j                  t        j
                  ||f«      «      z  }|dz  }|dk(  j                  «       d   }d|||f<   d||t        j                  |dz   |dz
  «      f<   d||<   d||<   t        j                  |«      }t        ||z  ||z  d¬	«      \  }	}
t        j                  |	«      }t        j                  |	dk\  «      sJ ‚t         j                  j                  |||z  z
  t         j                  ¬
«      dk  sJ ‚t        |	|dd¬«       y )N)Dr)   r   r)   r'   r'   r'   rE   rE   r   é   rG   rG   é   é   é$   é*   r�   é@   r�   r�   éQ   rU   rU   rV   rV   rV   éK   rP   éE   r�   é>   é;   r[   r�   éG   rO   éJ   rW   év   ri   é™   éŸ   éÒ   éÃ   éÚ   éó   éì   re   éÄ   é¯   é¹   é•   é�   rQ   éh   r‘   rZ   é(   é    rŒ   é   é	   rq   rF   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 '¶²²?rv   r   r)   r   r   r+   )Úordé   r-   r.   r/   )r	   rw   rx   ry   rz   r{   r|   r}   r   ÚcumsumÚallr   r   Úinfr   )r   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   Úps               r   Útest_nnls_inner_loop_case2z#TestNNLS.test_nnls_inner_loop_case2h   sW  € ä�H‰Hòóˆô �H‰Hò5ó6ˆô" �H‰HòCó	Dˆô  �‹FˆÜ�G‰G�A‹JœŸ™¤§¡¨!¨Q¨£Ó1Ñ1ˆØ�‰Hˆà�1‰f×ÑÓ Ñ"ˆØˆˆ"ˆbˆ&‰	Ø+-ˆˆ"Œb�j‰j˜˜a™  Q¡Ó'Ð
'Ñ(Øˆˆ"‰Øˆˆ"‰Ü�G‰G�A‹Jˆä�q˜1‘u˜a !™e¨$Ô/‰ˆˆaä�I‰I�d‹OˆÜ�v‰v�d˜a‘iÔ Ð Ð Ü�y‰y�~‰~˜a ! a¡%™i¬R¯V©Vˆ~Ó4°rÒ9Ð9Ð9Ü˜˜a b¨uÖ5r   c                 ó  — t        j                  g d¢«      j                  dd«      }t        j                  dt         j                  ¬«      }t        ||«      \  }}t        |t        j                  g d¢«      «       t        |d«       y )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è BrR   r   )Údtype)gÀídËM�ã?gÆmÑUüq @r-   r-   r-   g|³%íãð?)r	   rw   r   r{   Úfloat64r   r   )r   r‚   r7   Úsolr9   s        r   Útest_nnls_gh20302zTestNNLS.test_nnls_gh20302£   sn   € ä�H‰HòTóU ÷j !(¡¨¨A£ðk 	
ôl �G‰G�BœbŸj™jÔ)ˆÜ˜!˜Q“Z‰
ˆˆUÜ˜œRŸX™XÒ&JÓKÔLÜ˜Ð1Õ2r   c                 ó  — g d¢g d¢g d¢g d¢g d¢g}g d¢}t        j                  g d¢«      }t        ||«      \  }}t        ||«       t        j                  t         j
                  j                  ||z  |z
  «      |z
  «      dk  sJ ‚y )	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	   rw   r   r   r4   r   r   )r   r‚   r7   Údes_solrº   r   s         r   Útest_nnls_gh21021_ex1zTestNNLS.test_nnls_gh21021_ex1@  sŠ   € ò5ò:ò8ò:ò7ðˆò 5ˆô —(‘(ò Hó Iˆä˜˜1“:‰ˆˆSÜ˜˜WÔ%Ü�v‰v”b—i‘i—n‘n Q s¡U¨Q¡YÓ/°#Ñ5Ó6¸Ò>Ð>Ñ>r   c                 óT  — t        j                  ddgddgddgddgg«      }t        j                  g d	¢«      }t        ||«      \  }}t        |t        j                  d
dg«      «       t        j                  t         j
                  j                  ||z  |z
  «      |z
  «      dk  sJ ‚y )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   r‚   r7   rº   r   s        r   Útest_nnls_gh21021_ex2zTestNNLS.test_nnls_gh21021_ex2\  s©   € Ü�H‰HØÐ!5Ð6ØÐ 2Ð3ØÐ!5Ð6Ø!Ð#7Ð8ð	:ó ;ˆô
 �H‰Hò +ó ,ˆô
 ˜˜1“:‰ˆˆSÜ˜œRŸX™XÐ'7¸Ð&=Ó>Ô?Ü�v‰v”b—i‘i—n‘n Q s¡U¨Q¡YÓ/°#Ñ5Ó6¸Ò>Ð>Ñ>r   c                 óÖ  — t        j                  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        j                  g d¢«      }t        ||«      \  }}t        |t        j                  g d¢«      d¬«       t        j                  t         j
                  j                  ||z  |z
  «      |z
  «      dk  sJ ‚y )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Â   s        r   Útest_nnls_gh21021_ex3zTestNNLS.test_nnls_gh21021_ex3k  s  € Ü�H‰Hò9ò8ò9ò8ò8ò8ò9ò7ò8ò7ò8ò8ò9ò7ò7ò7ò7ò6ò8ò7ò8ò7ò8ò7ò7ðc28ó 29ˆôh �H‰Hò )ó *ˆô ˜˜1“:‰ˆˆSÜ˜œRŸX™XÒ&LÓMØ"õ	$ä�v‰v”b—i‘i—n‘n Q s¡U¨Q¡YÓ/°#Ñ5Ó6¸Ò>Ð>Ñ>r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r:   r>   rC   rˆ   rµ   r»   rÀ   rÃ   rÅ   © r   r   r   r      s>   „ ò;ò2òò	ò"ò86òt96òv[3òz?ò8?óB?r   r   )
Únumpyr	   Únumpy.testingr   Úpytestr   rA   Úscipy.optimizer   r   rÉ   r   r   ú<module>rÎ      s   ðÛ Ý )Ý *Ý ÷f?ò f?r   