Ë
    âQ(h¶)  ã                   ó¬   — d dl Zd dlmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZ  ej"                  d¬«      d	„ «       Zd
„ Z G d„ d«      Zy)é    N)Úassert_allcloseÚassert_array_less)Ústats)Úsobol_indices)ÚBootstrapResult)ÚBootstrapSobolResultÚ
f_ishigamiÚ	sample_ABÚ
sample_A_BÚsession)Úscopec                  ó
  — d} d}d| dz  dz  z   |t         j                  dz  z  dz  z   |dz  t         j                  dz  z  dz  z   }d|t         j                  dz  z  dz  z   |dz  t         j                  dz  z  d	z  z   }| dz  dz  }d
}d
}|dz  t         j                  dz  z  dz  dz  }d
}t        j                  |||g«      |z  }	t        j                  dd|g|d|g||dgg«      |z  }
|	|
j                  d¬«      z   }|	|fS )z_Reference values for Ishigami from Saltelli2007.

    Chapter 4, exercise 5 pages 179-182.
    g      @gš™™™™™¹?ç      à?é   é   é   é   é   é2   r   éá   g        é   ©Úaxis)ÚnpÚpiÚarrayÚsum)ÚaÚbÚvarÚv1Úv2Úv3Úv12Úv13Úv23Ús_firstÚs_secondÚs_totals               úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/stats/tests/test_sensitivity_analysis.pyÚishigami_ref_indicesr+      s/  € ð 	€AØ€Aà
��1‘�Q‘‰,˜œ2Ÿ5™5 !™8™ A™Ñ
%¨¨1©¬R¯U©U°A©X©°bÑ(8Ñ
8€CØ	ˆq”—‘˜‘‰z˜!‰|Ñ	˜a ™d¤2§5¡5¨!¡8™m¨BÑ.Ñ	.€BØ	
ˆA‰ˆa‰€BØ	
€BØ
€Cà
ˆQ‰$Œr�u‰u�a‰x‰-˜‰/˜#Ñ
€CØ
€Cä�h‰h˜˜B �|Ó$ SÑ(€GÜ�x‰xØ	ˆR�ˆØ	ˆb�#ˆØ	ˆc�2ˆðó ð ñ	€Hð
 ˜Ÿ™¨!˜Ó,Ñ,€Gà�GÐÐó    c                 ó    — t        | «      }||fS )zOutput of shape (2, n).©r	   ©ÚxÚress     r*   Úf_ishigami_vecr2   *   s   € ä
�Q‹-€CØ�ˆ8€Or,   c            
       óÜ  — e Zd Z ej                  ej                   dej                  z  ¬«      gdz  Zd„ Ze	j                  j                  e	j                  j                  d«      e	j                  j                  de e	j                  ee	j                  j"                  ¬«      gdd	g¬
«      d„ «       «       «       Zd„ Zd„ Zd„ Zd„ Ze	j                  j                  d«      d„ «       Zd„ Zy)ÚTestSobolIndicesr   ©ÚlocÚscaleé   c                 óâ   — t        j                  g d¢g d¢g d¢g«      }|dz   }t        j                  g d¢g d¢g d¢gg d¢g d¢g d¢gg d¢g d¢g d¢gg«      }t        ||¬«      }t        ||«       y )	N)r   r   é   é
   )r   r   r   é   )r8   é   é	   é   éd   )ée   éh   ék   én   )éf   éi   él   éo   )ég   éj   ém   ép   ©ÚAÚB)r   r   r
   r   )ÚselfrN   rO   ÚrefÚABs        r*   Útest_sample_ABzTestSobolIndices.test_sample_AB6   s‚   € ä�H‰HÚÚÚðó
ˆð
 �‰Gˆä�h‰hÚ"ÚÚðò Ú"Úðò ÚÚ"ð$ð%ó

ˆô ˜˜aÔ ˆÜ˜˜CÕ r,   z!Can't create large array for testÚfunc)ÚmarksÚscalarÚvector)Úidsc                 óÜ  — t         j                  j                  d«      }t        |d| j                  |¬«      }|j
                  dk(  r|d   |d   g|d   |d   gg}t        |j                  |d   d¬«       t        |j                  |d   d¬«       |j                  �J ‚|j                  d	¬
«      }t        |t        «      sJ ‚t        |j                  t        «      sJ ‚|j                  j                  j                  j                   d   dk(  sJ ‚|j                  j                  j                  d   j                   |j                  j                   k(  sJ ‚|j                  j                  j                  j                   |j                  j                   k(  sJ ‚|j                  j                  j                  j                   |j                  j                   k(  sJ ‚t#        |j                  j                  j                  |j                  «       t#        |j                  |j                  j                  j$                  «       t#        |j                  j                  j                  |j                  «       t#        |j                  |j                  j                  j$                  «       t        |j                  dd	¬«      t        «      sJ ‚t        |j                  t        «      sJ ‚y )Nì	   ´;m~ç|W2’L—E é   ©rT   ÚnÚdistsÚrngr2   r   r   ç{®Gáz„?©Úatoléc   )Ún_resamplesr   gÍÌÌÌÌÌì?)Úconfidence_levelrd   )r   ÚrandomÚdefault_rngr   r^   Ú__name__r   Úfirst_orderÚtotal_orderÚ_bootstrap_resultÚ	bootstrapÚ
isinstancer   r   Úconfidence_intervalÚlowÚshaper   Úhigh)rP   r+   rT   r_   r1   Úbootstrap_ress         r*   Útest_ishigamizTestSobolIndices.test_ishigamiM   s�  € ô �i‰i×#Ñ#Ð$JÓKˆÜØ˜Ø—*‘*Øô
ˆð �=‰=Ð,Ò,à)¨!Ñ,Ð.BÀ1Ñ.EÐFØ)¨!Ñ,Ð.BÀ1Ñ.EÐFð$Ð ô
 	˜Ÿ™Ð)=¸aÑ)@ÀtÕLÜ˜Ÿ™Ð)=¸aÑ)@ÀtÕLà×$Ñ$Ð,Ð,Ð,ØŸ™°"˜Ó5ˆÜ˜-Ô)=Ô>Ð>Ð>Ü˜#×/Ñ/´ÔAÐAÐAà×$Ñ$×8Ñ8×<Ñ<×BÑBÀ1ÑEÈÒJÐJÐJØ×$Ñ$×8Ñ8×<Ñ<¸QÑ?×EÑEØ—/‘/×'Ñ'ò(ð 	(ð (ð ×(Ñ(×<Ñ<×@Ñ@×FÑFØ—/‘/×'Ñ'ò(ð 	(ð (à×(Ñ(×<Ñ<×@Ñ@×FÑFØ—/‘/×'Ñ'ò(ð 	(ð (ô 	Ø×%Ñ%×9Ñ9×=Ñ=¸s¿¹ô	
ô 	Ø�O‰O˜]×6Ñ6×JÑJ×OÑOô	
ô 	Ø×%Ñ%×9Ñ9×=Ñ=¸s¿¹ô	
ô 	Ø�O‰O˜]×6Ñ6×JÑJ×OÑOô	
ô
 Ø�M‰M¨3¸BˆMÓ?Ü ô
ð 	
ð 
ô ˜#×/Ñ/´ÔAÐAÑAr,   c                 óþ  — t         j                  j                  d«      }d}t        j                  t         j
                   dt         j
                  z  ¬«      t        j                  t         j
                   dt         j
                  z  ¬«      t        j                  t         j
                   dt         j
                  z  ¬«      g}t        |||¬«      \  }}t        ||¬«      }t        |«      j                  dd«      t        |«      j                  dd«      t        |«      j                  d	«      d
œ}t        ||||¬«      }	t        |	j                  |d   d¬«       t        |||¬«      }	t        |	j                  |d   d¬«       t        t        |«      j                  dd«      |d   «       t        t        |«      j                  dd«      |d   «       t        t        |«      j                  d	«      |d   «       y )NrZ   r[   r   r5   )r]   r^   r_   rM   r   éÿÿÿÿ)r8   r   ru   ©Úf_AÚf_BÚf_ABr\   r   r`   ra   )rT   r]   r_   rw   rx   ry   )r   rf   rg   r   Úuniformr   r   r
   r	   Úreshaper   r   ri   )
rP   r+   r_   r]   r^   rN   rO   rR   rT   r1   s
             r*   Útest_func_dictzTestSobolIndices.test_func_dict‡   s�  € Ü�i‰i×#Ñ#Ð$JÓKˆØˆä�M‰MœrŸu™u˜f¨A¬b¯e©e©GÔ4Ü�M‰MœrŸu™u˜f¨A¬b¯e©e©GÔ4Ü�M‰MœrŸu™u˜f¨A¬b¯e©e©GÔ4ð
ˆô ˜A U°Ô4‰ˆˆ1Ü˜˜aÔ ˆô ˜a“=×(Ñ(¨¨BÓ/Ü˜a“=×(Ñ(¨¨BÓ/Ü˜r“N×*Ñ*¨:Ó6ñ
ˆô Ø˜ØØô
ˆô
 	˜Ÿ™Ð)=¸aÑ)@ÀtÕLäØ˜Øô
ˆô 	˜Ÿ™Ð)=¸aÑ)@ÀtÕLô 	œ
 1›×-Ñ-¨a°Ó4°d¸5±kÔBÜœ
 1›×-Ñ-¨a°Ó4°d¸5±kÔBÜœ
 2›×.Ñ.¨zÓ:¸DÀ¹LÕIr,   c           
      óè  ‡— d„ Št         j                  j                  d«      }t        t        d| j
                  ‰|¬«      }t        |j                  |d   d¬«       t        |j                  |d   d¬«       d	t         j                  d
t         j                  dt         j                  dt        t         j                  t         j                  f   fˆfd„}t        t        d| j
                  ||¬«      }y )Nc                 óð   — t        j                  | |gd¬«      }|dt        j                  ||z
  dz  d¬«      z  z
  |z  }t        j                  | | |z
  z  d¬«      |z  }|j                  |j                  fS )zaJansen for S and Sobol' for St.

            From Saltelli2010, table 2 formulations (c) and (e).)r   ru   r   r   r   ru   )r   r    ÚmeanÚT)rw   rx   ry   r    ÚsÚsts         r*   Újansen_sobolz2TestSobolIndices.test_method.<locals>.jansen_sobol°   so   € ô —&‘&˜#˜s˜¨'Ô2ˆCà�sœ2Ÿ7™7 C¨$¡J°¡?¸Ô<Ñ<Ñ<ÀÑCˆAÜ—‘˜˜c D™jÑ)°Ô3°cÑ9ˆBà—3‘3˜Ÿ™�9Ðr,   rZ   r[   )rT   r]   r^   Úmethodr_   r   r`   ra   r   rw   rx   ry   Úreturnc                 ó   •—  ‰| ||«      S ©N© )rw   rx   ry   rƒ   s      €r*   Újansen_sobol_typedz8TestSobolIndices.test_method.<locals>.jansen_sobol_typedÆ   s   ø€ ñ    S¨$Ó/Ð/r,   r   )r   rf   rg   r   r	   r^   r   ri   rj   ÚndarrayÚtuple)rP   r+   r_   r1   r‰   Ú_rƒ   s         @r*   Útest_methodzTestSobolIndices.test_method¯   sÊ   ø€ ò		ô �i‰i×#Ñ#Ð$JÓKˆÜÜ˜tØ—*‘*ØØô	
ˆô 	˜Ÿ™Ð)=¸aÑ)@ÀtÕLÜ˜Ÿ™Ð)=¸aÑ)@ÀtÕLð	0Ü—‘ð	0Ü"$§*¡*ð	0Ü46·J±Jð	0ä”2—:‘:œrŸz™zÐ)Ñ*õ	0ô
 Ü˜qØ—*‘*Ø%Øô	
‰r,   c                 óâ   — t         j                  j                  d«      }t        d„ d| j                  |¬«      }t        |j                  |d   d¬«       t        |j                  |d   d¬«       y )	NrZ   c                 ó   — t        | «      dz   S )Niè  r.   ©r0   s    r*   ú<lambda>z5TestSobolIndices.test_normalization.<locals>.<lambda>Õ   s   € œ: a›=¨4Ñ/€ r,   r[   r\   r   r`   ra   r   ©r   rf   rg   r   r^   r   ri   rj   ©rP   r+   r_   r1   s       r*   Útest_normalizationz#TestSobolIndices.test_normalizationÒ   s^   € Ü�i‰i×#Ñ#Ð$JÓKˆÜÙ/°4Ø—*‘*Øô
ˆô 	˜Ÿ™Ð)=¸aÑ)@ÀtÕLÜ˜Ÿ™Ð)=¸aÑ)@ÀtÖLr,   c                 ó  — d„ }t         j                  j                  d«      }t        |d| j                  |¬«      }|d   g d¢|d   g|d   g d¢|d   gg}t        |j                  |d   d¬	«       t        |j                  |d   d¬	«       y )
Nc                 ó.   — t        | «      }||dz  dz   |fS )zOutput of shape (3, n).r   r;   r.   r/   s     r*   Úf_ishigami_vec_constzETestSobolIndices.test_constant_function.<locals>.f_ishigami_vec_constß   s    € ä˜Q“-ˆCØ˜˜a™ "™ cÐ)Ð)r,   rZ   r[   r\   r   )r   r   r   r   r`   ra   r’   )rP   r+   r—   r_   r1   Úishigami_vec_indicess         r*   Útest_constant_functionz'TestSobolIndices.test_constant_functionÝ   s™   € ò	*ô
 �i‰i×#Ñ#Ð$JÓKˆÜØ%¨Ø—*‘*Øô
ˆð & aÑ(ª)Ð5IÈ!Ñ5LÐMØ% aÑ(ª)Ð5IÈ!Ñ5LÐMð 
Ðô
 	˜Ÿ™Ð)=¸aÑ)@ÀtÕLÜ˜Ÿ™Ð)=¸aÑ)@ÀtÖLr,   c                 óè   — t         j                  j                  d«      }t        t        d| j
                  |¬«      }t        |j                  |d   d¬«       t        |j                  |d   d¬«       y )NrZ   i   r\   r   g-Cëâ6?ra   r   )	r   rf   rg   r   r	   r^   r   ri   rj   r“   s       r*   Útest_more_convergedz$TestSobolIndices.test_more_convergedó   s^   € ä�i‰i×#Ñ#Ð$JÓKˆÜÜ˜uØ—*‘*Øô
ˆô 	˜Ÿ™Ð)=¸aÑ)@ÀtÕLÜ˜Ÿ™Ð)=¸aÑ)@ÀtÖLr,   c                 ó†  — d}t        j                  t        |¬«      5  t        dt        d¬«       d d d «       t        j                  t        |¬«      5  t        dt        d„ g¬«       d d d «       d}t        j                  t        |¬«      5  t        dt        t        j                  «       g¬«       d d d «       t        j                  t        |¬«      5  t        d	t        t        j                  «       g¬«       d d d «       d
}t        j                  t        |¬«      5  t        dt        d¬«       d d d «       d}t        j                  t        |¬«      5  t        dt        d„ ¬«       d d d «       d}t        j                  t        |¬«      5  t        dt        ¬«       d d d «       d„ }d}t        j                  t        |¬«      5  t        d|t        j                  «       g¬«       d d d «       d}t        j                  t        |¬«      5  t        dg g dœt        j                  «       g¬«       d d d «       t        j                  t        |¬«      5  t        dddgdgg d¢dœ¬«       d d d «       t        j                  t        |¬«      5  t        dddgddgg d¢dœ¬«       d d d «       y # 1 sw Y   �ŒˆxY w# 1 sw Y   �Œ]xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒãxY w# 1 sw Y   �Œ¸xY w# 1 sw Y   �ŒŒxY w# 1 sw Y   �ŒbxY w# 1 sw Y   �Œ%xY w# 1 sw Y   ŒçxY w# 1 sw Y   Œ¹xY w# 1 sw Y   y xY w)Nz3Each distribution in `dists` must have method `ppf`)Úmatchr   rz   )r]   rT   r^   c                 ó   — | S r‡   rˆ   r�   s    r*   r‘   z.TestSobolIndices.test_raises.<locals>.<lambda>  ó   € À€ r,   z The balance properties of Sobol'r:   gffffff@z'toto' is not a valid 'method'Útoto)r]   rT   r„   z!must have the following signaturec                 ó   — | S r‡   rˆ   r�   s    r*   r‘   z.TestSobolIndices.test_raises.<locals>.<lambda>  rŸ   r,   z1'dists' must be defined when 'func' is a callable)r]   rT   c                 ó&   — | j                  dd«      S )Nru   r   )r{   r�   s    r*   Úfunc_wrong_shape_outputz=TestSobolIndices.test_raises.<locals>.func_wrong_shape_output  s   € Ø—9‘9˜R Ó#Ð#r,   z!'func' output should have a shaper   zWhen 'func' is a dictionary)rw   ry   r   r8   )r   r=   r:   r   rv   r   )r   r=   r:   )ÚpytestÚraisesÚ
ValueErrorr   r	   r   rz   )rP   Úmessager£   s      r*   Útest_raiseszTestSobolIndices.test_raisesÿ   s®  € àHˆÜ�]‰]œ:¨WÔ5ñ 	AÜ˜A¤J°iÕ@÷	Aô �]‰]œ:¨WÔ5ñ 	EÜ˜A¤J±{°mÕD÷	Eð 6ˆÜ�]‰]œ:¨WÔ5ñ 	IÜ˜A¤J´u·}±}³Ð6GÕH÷	Iô �]‰]œ:¨WÔ5ñ 	KÜ˜C¤j¼¿¹»Ð8IÕJ÷	Kð 4ˆÜ�]‰]œ:¨WÔ5ñ 	?Ü˜A¤J°vÕ>÷	?ð 7ˆÜ�]‰]œ:¨WÔ5ñ 	DÜ˜A¤J±{ÕC÷	Dð GˆÜ�]‰]œ:¨WÔ5ñ 	0Ü˜A¤JÕ/÷	0ò	$ð 7ˆÜ�]‰]œ:¨WÔ5ñ 	ÜØÐ1¼%¿-¹-»/Ð9Jõ÷	ð
 1ˆÜ�]‰]œ:¨WÔ5ñ 	ÜØ "¨bÑ1¼%¿-¹-»/Ð9Jõ÷	ô
 �]‰]œ:¨WÔ5ñ 	äØØ ˜V¨Q¨CºÑFõ÷	ô �]‰]œ:¨WÔ5ñ 	äØØ ˜V¨Q°¨FºIÑFõ÷	ð 	÷_	Añ 	Aú÷	Eñ 	Eú÷	Iñ 	Iú÷	Kñ 	Kú÷	?ñ 	?ú÷	Dñ 	Dú÷	0ñ 	0ú÷	ñ 	ú÷	ð 	ú÷
	ð 	ú÷	ð 	úsƒ   žJ7ÁKÂ&KÃ&KÄ"K+ÅK8ÆLÇ"LÈ%LÉL+ÊL7Ê7KËKËKËK(Ë+K5Ë8LÌLÌLÌL(Ì+L4Ì7M N)rh   Ú
__module__Ú__qualname__r   rz   r   r   r^   rS   r¤   ÚmarkÚxslowÚxfail_on_32bitÚparametrizer	   Úparamr2   Úslowrs   r|   r�   r”   r™   r›   r¨   rˆ   r,   r*   r4   r4   0   sû   „ ð 	ˆ�‰˜2Ÿ5™5˜&¨¨"¯%©%©Ô0ðà	ñ
€Eò!ð. ‡[�[×ÑØ‡[�[×ÑÐ CÓDØ‡[�[×ÑØØ	�\�V—\‘\ .¸¿¹×8HÑ8HÔIÐJØ�xÐ ð ó ñ
1Bóó Eó ð1Bòf&JòP!
òF	MòMð, ‡[�[×ÑÐ CÓDñ	Mó Eð	Mó7r,   r4   )Únumpyr   Únumpy.testingr   r   r¤   Úscipyr   Úscipy.statsr   Úscipy.stats._resamplingr   Ú!scipy.stats._sensitivity_analysisr   r	   r
   r   Úfixturer+   r2   r4   rˆ   r,   r*   ú<module>r¸      sQ   ðÛ ß <Û å Ý %Ý 3÷ó ð
 €‡��iÔ ñó !ðò8÷Fò Fr,   