§
    fŠtj¶)  ã                   ó¶   — 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dS )é    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  }
|	|
                     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/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/stats/tests/test_sensitivity_analysis.pyÚishigami_ref_indicesr+      s,  € ð 	€AØ€Aà
��1‘�Q‘‰,˜�2œ5 !™8™ A™Ñ
%¨¨1©­R¬U°A©X©°bÑ(8Ñ
8€CØ	ˆq•”˜‘‰z˜!‰|Ñ	˜a ™d¥2¤5¨!¡8™m¨BÑ.Ñ	.€BØ	
ˆA‰ˆa‰€BØ	
€BØ
€Cà
ˆQ‰$�rŒu�a‰x‰-˜‰/˜#Ñ
€CØ
€CåŒh˜˜B �|Ñ$Ô$ SÑ(€GÝŒ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
                             d¦  «        e	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
                             d¦  «        d„ ¦   «         Zd„ ZdS )Ú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          ||¦  «         d S )	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Øˆ]ˆ]Øˆ]ˆ]Øˆ]ˆ]ðñ
ô 
ˆð
 �‰GˆåŒhØ"Ð"Ð"ØˆmˆmØˆmˆmðð ˆmˆmØ"Ð"Ð"Øˆmˆmðð ˆmˆmØˆmˆmØ"Ð"Ð"ð$ð%ñ

ô 

ˆõ ˜˜aÐ Ñ Ô ˆÝ˜˜CÑ Ô Ð Ð Ð r,   z!Can't create large array for testÚfunc)ÚmarksÚscalarÚvector)Úidsc                 óÆ  — t           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 ‚| 
                    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          | 
                    dd	¬¦  «        t          ¦  «        sJ ‚t          |j	        t          ¦  «        sJ ‚d S )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×#Ò#Ð$JÑKÔKˆÝØ˜Ø”*Øð
ñ 
ô 
ˆð Œ=Ð,Ò,Ð,à)¨!Ô,Ð.BÀ1Ô.EÐFØ)¨!Ô,Ð.BÀ1Ô.EÐFð$Ð õ
 	˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLÝ˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLàÔ$Ð,Ð,Ð,ØŸš°"˜Ñ5Ô5ˆÝ˜-Õ)=Ñ>Ô>Ð>Ð>Ð>Ý˜#Ô/µÑAÔAÐAÐAÐAàÔ$Ô8Ô<ÔBÀ1ÔEÈÒJÐJÐJÐJØÔ$Ô8Ô<¸QÔ?ÔEØ”/Ô'ò(ð (ð (ð (ð Ô(Ô<Ô@ÔFØ”/Ô'ò(ð (ð (ð (àÔ(Ô<Ô@ÔFØ”/Ô'ò(ð (ð (ð (õ 	ØÔ%Ô9Ô=¸s¼ñ	
ô 	
ð 	
õ 	ØŒO˜]Ô6ÔJÔOñ	
ô 	
ð 	
õ 	ØÔ%Ô9Ô=¸s¼ñ	
ô 	
ð 	
õ 	ØŒO˜]Ô6ÔJÔOñ	
ô 	
ð 	
õ
 Ø�MŠM¨3¸BˆMÑ?Ô?Ý ñ
ô 
ð 	
ð 	
ð 
õ ˜#Ô/µÑAÔAÐAÐAÐAÐAÐAr,   c                 ó|  — t           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          |¦  «         	                    dd¦  «        t          |¦  «         	                    dd¦  «        t          |¦  «         	                    d	¦  «        d
œ}t          ||||¬¦  «        }	t          |	j        |d         d¬¦  «         t          |||¬¦  «        }	t          |	j        |d         d¬¦  «         t          t          |¦  «         	                    dd¦  «        |d         ¦  «         t          t          |¦  «         	                    dd¦  «        |d         ¦  «         t          t          |¦  «         	                    d	¦  «        |d         ¦  «         d S )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×#Ò#Ð$JÑKÔKˆØˆåŒM�rœu˜f¨A­b¬e©GÐ4Ñ4Ô4ÝŒM�rœu˜f¨A­b¬e©GÐ4Ñ4Ô4ÝŒM�rœu˜f¨A­b¬e©GÐ4Ñ4Ô4ð
ˆõ ˜A U°Ð4Ñ4Ô4‰ˆˆ1Ý˜˜aÐ Ñ Ô ˆõ ˜a‘=”=×(Ò(¨¨BÑ/Ô/Ý˜a‘=”=×(Ò(¨¨BÑ/Ô/Ý˜r‘N”N×*Ò*¨:Ñ6Ô6ð
ð 
ˆõ Ø˜ØØð
ñ 
ô 
ˆõ
 	˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLåØ˜Øð
ñ 
ô 
ˆõ 	˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLõ 	�
 1™œ×-Ò-¨a°Ñ4Ô4°d¸5´kÑBÔBÐBÝ�
 1™œ×-Ò-¨a°Ñ4Ô4°d¸5´kÑBÔBÐBÝ�
 2™œ×.Ò.¨zÑ:Ô:¸DÀ¼LÑIÔIÐIÐIÐIr,   c           
      óÒ  ‡— d„ Št           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        ||¬¦  «        }d S )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°   sw   € õ ”&˜#˜s˜¨'Ð2Ñ2Ô2ˆCà�s�2œ7 C¨$¡J°¡?¸Ð<Ñ<Ô<Ñ<Ñ<ÀÑCˆAÝ”˜˜c D™jÑ)°Ð3Ñ3Ô3°cÑ9ˆBà”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×#Ò#Ð$JÑKÔKˆÝÝ˜tØ”*ØØð	
ñ 
ô 
ˆõ 	˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLÝ˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLð	0Ý”ð	0Ý"$¤*ð	0Ý46´Jð	0å•2”:�rœzÐ)Ô*ð	0ð 	0ð 	0ð 	0ð 	0ð 	0õ
 Ý˜qØ”*Ø%Øð	
ñ 
ô 
ˆˆˆr,   c                 óê   — t           j                             d¦  «        }t          d„ d| j        |¬¦  «        }t          |j        |d         d¬¦  «         t          |j        |d         d¬¦  «         d S )	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×#Ò#Ð$JÑKÔKˆÝØ/Ð/°4Ø”*Øð
ñ 
ô 
ˆõ 	˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLÝ˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLÐLÐLr,   c                 ó:  — d„ }t           j                             d¦  «        }t          |d| j        |¬¦  «        }|d         g d¢|d         g|d         g d¢|d         gg}t          |j        |d         d¬	¦  «         t          |j        |d         d¬	¦  «         d S )
Nc                 ó6   — 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×#Ò#Ð$JÑKÔKˆÝØ%¨Ø”*Øð
ñ 
ô 
ˆð & aÔ(¨)¨)¨)Ð5IÈ!Ô5LÐMØ% aÔ(¨)¨)¨)Ð5IÈ!Ô5LÐMð 
Ðõ
 	˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLÝ˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLÐLÐLr,   c                 óò   — t           j                             d¦  «        }t          t          d| j        |¬¦  «        }t          |j        |d         d¬¦  «         t          |j        |d         d¬¦  «         d S )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×#Ò#Ð$JÑKÔKˆÝÝ˜uØ”*Øð
ñ 
ô 
ˆõ 	˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLÝ˜œÐ)=¸aÔ)@ÀtÐLÑLÔLÐLÐLÐLr,   c                 ó  — d}t          j        t          |¬¦  «        5  t          dt          d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          dt          d„ g¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          dt          t          j        ¦   «         g¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d	t          t          j        ¦   «         g¬¦  «         d d d ¦  «         n# 1 swxY w Y   d
}t          j        t          |¬¦  «        5  t          dt          d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          dt          d„ ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          dt          ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d„ }d}t          j        t          |¬¦  «        5  t          d|t          j        ¦   «         g¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          dg g dœt          j        ¦   «         g¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          dddgdgg d¢dœ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          dddgddgg d¢dœ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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                 ó.   — |                       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Ñ5Ô5ð 	Að 	AÝ˜A¥J°iÐ@Ñ@Ô@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Aõ Œ]�:¨WÐ5Ñ5Ô5ð 	Eð 	EÝ˜A¥J°{°{°mÐDÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð 6ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Ið 	IÝ˜A¥Jµu´}±´Ð6GÐHÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Iõ Œ]�:¨WÐ5Ñ5Ô5ð 	Kð 	KÝ˜C¥j½¼¹¼Ð8IÐJÑJÔJÐJð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð 4ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	?ð 	?Ý˜A¥J°vÐ>Ñ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 7ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Dð 	DÝ˜A¥J°{°{ÐCÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð GˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	0ð 	0Ý˜A¥JÐ/Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð	$ð 	$ð 	$ð 7ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ÝØÐ1½%¼-¹/¼/Ð9Jðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 1ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ÝØ "¨bÐ1Ð1½%¼-¹/¼/Ð9Jðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 Œ]�:¨WÐ5Ñ5Ô5ð 	ð 	åØØ ˜V¨Q¨C¸¸¸ÐFÐFðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]�:¨WÐ5Ñ5Ô5ð 	ð 	åØØ ˜V¨Q°¨F¸I¸I¸IÐFÐFðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sÅ   žAÁAÁ	AÁ(BÂBÂBÂ6*C,Ã,C0Ã3C0Ä*EÅEÅEÅ0FÆFÆFÆ<G!Ç!G%Ç(G%È	H,È,H0È3H0É%JÊJÊJÊ0(K$Ë$K(Ë+K(Ì
L1Ì1L5Ì8L5ÍN Î NÎN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   sh  € € € € € ð 	ˆŒ˜2œ5˜&¨¨"¬%©Ð0Ñ0Ô0ðà	ñ
€Eð!ð !ð !ð. „[ÔØ„[×ÒÐ CÑDÔDØ„[×ÒØØ	�\�V”\ .¸¼Ô8HÐIÑIÔIÐJØ�xÐ ð ñ ô ð
1Bð 1Bñô ñ EÔDñ Ôð1Bðf&Jð &Jð &JðP!
ð !
ð !
ðF	Mð 	Mð 	MðMð Mð Mð, „[×ÒÐ CÑDÔDð	Mð 	Mñ EÔDð	Mð7ð 7ð 7ð 7ð 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¸      s  ðØ Ð Ð Ð Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø €€€à Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð ð ð
 €„�iÐ Ñ Ô ðð ñ !Ô ðð8ð ð ðFð Fð Fð Fð Fñ Fô Fð Fð Fð Fr,   