
    5[g                        d dl Z d dlZd dlm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 d dlmZ d d	lmZ g d
ZdZdZg dZg dZg dZg dZg dZdgZeez   edZeedZdhZ g dZ!d Z"ejF                  jH                  ejF                  jK                  d e"             ejF                  jK                  dddg      d                      Z&d1dZ'd Z(d Z)d Z*ejF                  jK                  d e
jV                  d!fe
jX                  d"fg      d#        Z-d$ Z.d% Z/d& Z0ejF                  jK                  d' e0             d(        Z1	 	 d2d)Z2 G d* d+      Z3g d,Z4 G d- d.      Z5 G d/ d0      Z6y)3    N)assert_allcloseassert_equal)statsdifferential_evolution   )distcont)FitError)distdiscrete)goodness_of_fit)    i'        ?      ?)
gausshypergenexpongengamma	irwinhallkappa4ksonekstwoncfncx2
truncexpontukeylambdavonmiseslevy_stable	trapezoidtruncweibull_minstudentized_range)		betaprimecrystalball	exponweibfgeninvgauss	jf_skew_trecipinvgaussrel_breitwignervonmises_line)burrchichi2mielkepearson3genhalflogisticrdistparetopowerlawpowerlognorm
wrapcauchyr(   )2alphar!   r*   burr12cauchyr+   r,   r"   dgammadweibullr$   fatiguelifefisk
foldcauchy
genextremer   genhyperbolicgennorm	genpareto
halfcauchyinvgamma
invweibullr   r&   	johnsonsukappa3r   r   levylevy_lr   
loglaplacelomaxr-   nakagamir   nctr   r1   r3   	powernormr(   
skewcauchytr   triangtruncparetor   r   r    )argusexponpowr#   r   r   r/   halfgennormgompertz	johnsonsbr   	kstwobignr'   r   r   r)   r4   )MMMLErP   )erlangr>   norminvgaussc               #   F   K   t         D ]  \  } }| t        vs| |f  y wN)r	   skip_fit)distnameargs     U/var/www/html/bid-api/venv/lib/python3.12/site-packages/scipy/stats/tests/test_fit.pycases_test_cont_fitra   _   s(     
 "#8#C- "s   !	!zdistname,argmethodrX   rW   c           	      (   t        t        j                  dd            }t        t        j                  dd            }| t        |   v r|sd}t	        j
                  |       | t        |   v r|sd}t	        j                  |       t        t        |       }t        j                  |ddgg      }t        j                  t        j                  |t        z  t        j                  |j                   d	z   t"              g      d
      }t$        D ])  }	t        j&                  j)                  d       t        j*                  d      5   |j,                  |d|	i}
|dk(  r|j.                  t0        v rdd
i}ni } |j2                  |
fd|i|}|dk(  rLt        j4                  |
      } |j2                  |fi |}d|j.                   d| d| }t7        ||d|       |dk(  r| t8        vrd}t        j:                  |
|
f      }|d |d
fxx   dz  cc<   |d |dfxx   dz  cc<   |j=                  d       t        j4                  |      } |j2                  |fi |}d|j.                   d| d| }t7        ||d|       d d d        |z
  }t        j                  t        j>                  
jA                               t        z  t"        g      |d <   t        jB                  t        jD                  |            rtG        d!      t        jH                  t        j>                  |      |k        s* y  d"tK        |      z  }|d#tK              z  z  }|d$tK              z  z  }tG        d%|j.                  z  |z         # 1 sw Y   xY w)&NSCIPY_XFAILF)defaultSCIPY_XSLOWz@Failure expected; set environment variable SCIPY_XFAIL=1 to run.z9Very slow; set environment variable SCIPY_XSLOW=1 to run.g              ?   r   i  ignore)allsizerX   flocrb   zCDifferent results fitting uncensored data wrapped as CensoredData: z: est=z est1=g|=)rtolerr_msg   Gz?r   )\(?axis)intervalz2Different results fitting interval-censored data: z est2=皙?znan returned in fitzparameter: %s
zestimated: %s
zdiff     : %s
zfit not very good in %s
)&intosgetenvfailing_fitspytestxfail
xslow_fitsskipgetattrr   nphstackmaxvstackthresh_percentfullnumargs
thresh_min	fit_sizesrandomseederrstatervsnamemle_use_floc0fitCensoredDatar   fail_interval_censoredcolumn_stacksortabsmeananyisnanAssertionErrorrj   str)r^   r_   rb   	run_xfail	run_xslowmsgdistfntrueargdiffthresholdfit_sizer   kwdsestdata1est1nicrt   data2est2difftxts                        r`   test_cont_fitr   i   sG    BIImU;<IBIImU;<I<''	 QS:f%%iICUH%FiisCj)*GFF299gn&<&(ggfnnQ.>
&K&M NM I
		t[[X&&**S1(1C6;;-#?{&**S8848C **3/!vzz%040))/VC5tfNcsC83I#I ??C:6#q!T)!#q!T)!1%**H=!vzz%040!!'VC5tfFccB= '@ W} FFBFF388:$6~$E$.$0 1b 66"((3-  !677vvbffTlm34] `  #g,. 3s8++ 3t9,,86;;FLMM_ '&s   D>NN	c                 p    t        t        |       }|j                  |      dd  }t        |||d| z         y )Nrv   z"poor mle fit of (loc, scale) in %s)atolrn   )r   r   r   r   )r   datadesiredr   dactuals         r`   _check_loc_scale_mle_fitr      s9    tAUU4[FFG$@4GI    c                  r    t        j                  g d      } t        d| ddgd       t        d| ddgd       y )N)rq   {Gz?r   r   Gz?r   r          @uniformrq   rp   MbP?expongp=
ף?)r   arrayr   )r   s    r`   "test_non_default_loc_scale_mle_fitr      s5    88DEDYtTlDAWdT7OTBr   c                  n    g d} t         j                  j                  | d      }t        |ddgd       y)zgh-6167)r   r   r   r   rh   rh   rh   rh   r   )rl   rg   r   r   N)r   r   r   r   )r   phats     r`   test_expon_fitr      s-    #D;;??4a?(DD1c(.r   c                  |   t        j                  t        j                  d      t        j                  d      g      } d}t	        j
                  t        |      5  t	        j                  t              5  t        j                  j                  |        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N      z0Optimization converged to parameters that are...match)r   concatenatezerosonesr{   raisesr
   warnsRuntimeWarningr   betar   )r   messages     r`   test_fit_errorr      sq    >>288B<56D@G	xw	/LL(

t ) 
0	/(( 
0	/s$   B25 B&B2&B/	+B22B;zdist, params)      ?      @)
   333333?rh   c                 Z   t         j                  j                  d      }t        | d      r| j                  }n| j
                  } | j                  |d|d} ||g| j                          }| j                  ||      }| j                  ||      }t        ||       t        ||       y )Nig:pdfd   rk   random_state)r   r   default_rnghasattrlogpdflogpmfr   sumnnlf_penalized_nnlfr   )distparamsrnglogpxfxrefres1res2s           r`   test_nnlf_and_related_methodsr      s     ))

	
*CtU&s5A!f!!#
#C99VQD*DD#D#r   c               #     K   h d} h d}h d}t        t        t        z         D ]  }|| v st        |t              s:d}t        j                  |t
        j                  j                  |             Q||v r:d}t        j                  |t
        j                  j                  |             ||v r:d}t        j                  |t
        j                  j                  |             |  y w)	N>
   rQ   r   r   arcsinefoldnormr   r   rP   r   r    >3   r$   rN   r+   r;   ricer5   binomgammarI   r0   r6   rY   rE   r-   nbinomr1   r?   lognormrandintr   bradfordr9   rR   r   rT   rB   invgaussrJ   r.   r2   skewnormr!   	exponnormr@   r&   rU   rD   rV   rL   r<   r=   rC   rH   r4   r"   r:   rS   weibull_maxweibull_minrZ   r'   >   r   rK   r   r*   r   r   rO   skellamzipfianr   r   	betabinomr#   	hypergeomr   	truncnorm
betanbinomr   
loguniform
nhypergeom
reciprocalr%   r   r3   r>   r/   r(   nchypergeom_fishernchypergeom_walleniusztested separatelyreasonmarkstoo slow (>= 0.25s)too slow (>= 1.0s))dictr   r	   
isinstancer   r{   parammarkr~   slowxslow)skip_basic_fitslow_basic_fitxslow_basic_fitr   r  s        r`   cases_test_fit_mler     s     ?N

RN=O \H,->!D#)>(F,,t6;;+;+;6+;+JKK^#*F,,t6;;+;+;6+;+JKK_$)F,,t6;;+<+<F+<+KLLJ .s   C7C9c               #   |  K   h d} h d}h d}dh}t        t        t        z         D ]  }|| v st        |t              s:d}t        j                  |t
        j                  j                  |             R||v r:d}t        j                  |t
        j                  j                  |             ||v r:d	}t        j                  |t
        j                  j                  |             ||v r:t
        j                  j                  d
      }t        j                  ||       |  y w)N>   rQ   r   r   r   r   r   r   r%   r   r   rZ   r>   r    >2   rN   r+   r,   r;   waldr5   r   rI   anglitrY   rE   r1   rO   r   r   maxwellr   r   r   r9   rR   r   r   rT   loggammar   r   r#   r@   r   rD   rV   rL   r<   r=   rC   rH   r   r   r4   r"   r:   genlogisticrP   r   r   semicircularr'   r/   laplace_asymmetric>#   r$   r   rK   r   r*   r   r   rQ   r0   r6   r8   r   r-   r?   r   r   rB   r   rJ   r.   r2   r!   r&   rU   r   r   r   r   rS   r3   r)   r(   r   r   r   r   zFails. Oh well.r  r  r  r  zignore::RuntimeWarning)r  r   r	   r  r   r{   r	  r
  r~   r  r  filterwarnings)r  r  r  warns_basic_fitr   r  r
  s          r`   cases_test_fit_mser    s    NJN$	3O !kO\H,->!D#)>&F,,t6;;+;+;6+;+JKK^#*F,,t6;;+;+;6+;+JKK_$)F,,t6;;+<+<F+<+KLL_$;;--.FGD,,t400J .s   D:D<c               #      K   t        t              j                         D ]   \  } }t        | t              r| dv r| |f " y w)N>   r'   r    )r  r	   itemsr  r   )r^   shapess     r`   cases_test_fitstartr  O  sC      N002&8S)BB	 3s   AAzdistname, shapesc                 &   t        t        |       }t        j                  j	                  d      }|j                  d      }t        j
                  dd      5  |j                  |      }d d d         |j                  d d  sJ y # 1 sw Y   xY w)NiV r   ri   )invaliddividerv   )r   r   r   r   r   r   	_fitstart	_argcheck)r^   r  r   r   r   guesss         r`   test_fitstartr&  W  su    5(#D
))

	
*C::b>D	Xh	7t$ 
8 4>>5":&&& 
8	7s   BBc                     t        | |      } |||      } |||      }	||	k  s$t        j                  j                  ||	||       y y )N)rm   r   )r   r   testingr   )
r   r   params1params0rm   r   	nlff_namenlffnlff1nlff0s
             r`   assert_nlff_less_or_closer/  c  sM    4#D$E$EEM


""5%d"F r   c                   8   e Zd Zej                  ZdZej                  j                  e      Z
ej                  j                  ddde
      ZddgZdddZd	Zd
ZeedZd Zd Zd Zd Zd Zd Zej2                  j5                  d e             d        Zej2                  j5                  d e             d        Zd Zej2                  j5                  dd      d        Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'ej2                  jP                  d         Z)d! Z*d" Z+y#)$TestFitl   Va   r   r   r   r   r   r   r   npru   {Gz?)r   rm   c                     t        |ddi|S )Nr   r   r   )selfargsr   s      r`   optzTestFit.optw  s    %t<!<t<<r   c                     d}t        j                  t        |      5  t        j                  d| j
                  | j                         d d d        y # 1 sw Y   y xY w)Nz `dist` must be an instance of...r   r   )r{   r   
ValueErrorr   r   r   shape_bounds_ar:  r   s     r`   test_dist_ivzTestFit.test_dist_ivz  s;    4]]:W5IIb$))T%8%89 655s   ,AAc                 8   d}t        j                  t        |      5  t        j                  | j
                  g dg| j                         d d d        d}t        j                  t        |      5  t        j                  | j
                  dddt        j                  g| j                         d d d        t        j                  t        |      5  t        j                  | j
                  dddt        j                  g| j                         d d d        t        j                  t        |      5  t        j                  | j
                  g d| j                         d d d        y # 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)	Nz'`data` must be exactly one-dimensional.r   r   rh      z.All elements of `data` must be finite numbers.r   rh   rD  )123)
r{   r   r>  r   r   r   r?  r   naninfr@  s     r`   test_data_ivzTestFit.test_data_iv  s   ;]]:W5IIdii)d.A.AB 6 C]]:W5IIdii!Q266!2D4G4GH 6]]:W5IIdii!Q266!2D4G4GH 6]]:W5IIdii$2E2EF 65 65 655555s/   /E+2>E8>F4.F+E58FFFc                    d}dddd}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        d}ddg}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        d	}dd
g}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        ddg}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        d}dg}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        d}g d}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        d}ddd}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        d}ddg}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        d}ddg}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        d}t        j                  t        |      5  t        j                  | j
                  | j                         d d d        t        j                   t        j                  fdg}t        j                  t        |      5  t        j                  | j
                  | j                  |       d d d        y # 1 sw Y   sx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   Vx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   5xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz1Bounds provided for the following unrecognized...r3  r4  r   r   r6  r7  rE  r   z6Each element of a `bounds` sequence must be a tuple...)r   r   rD  z6Each element of `bounds` must be a tuple specifying...)r   r   r   r   r   z7A `bounds` sequence must contain at least 2 elements...z;A `bounds` sequence may not contain more than 3 elements...)r3  r3  r3  r3  z.There are no values for `p` on the interval...)r   r   r5  z.There are no values for `n` on the interval...)r   r   z6There are no integer values for `n` on the interval...)gffffff?g?z0The intersection of user-provided bounds for `n`)r{   r   r   r   r   r   r   r   r>  r   rI  )r:  r   shape_boundsboundss       r`   test_bounds_ivzTestFit.test_bounds_iv  s   E$6@\\.8IIdiiL9 9 K"F+]]:W5IIdiiL9 6 K"K0]]:W5IIdiiL9 61v]]:W5IIdiiL9 6 Ly]]:W5IIdiiL9 6 P5]]:W5IIdiiF3 6 C$62]]:W5IIdiiL9 6 C(]]:W5IIdiiL9 6 K"F+]]:W5IIdiiL9 6 E]]:W5IIdii+ 6&&"&&)62]]:W5IIdiiL9 65[ 98
 65
 65 65
 65
 65
 65
 65
 65 65 65s   ,O9,O,O!,O(5,O5
,P ,P5,P
,P)+P6,QOOO%(O25O?PPP&)P36P?Qc                    d}dddd}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        d}dd	d
}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        ddg}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        ddgg}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        d}dg}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        d}g d}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        d}ddd
}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        d}g d}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        d}ddd
}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        d}g d}t        j                  t        |      5  t        j                  | j
                  | j                  | j                  |       d d d        y # 1 sw Y   sxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yx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   y xY w)Nz2Guesses provided for the following unrecognized...r   r      rM  r   )r%  z+Each element of `guess` must be a scalar...hir5  r$   rh   z-A `guess` sequence must contain at least 2...z1A `guess` sequence may not contain more than 3...)r   rh   rD     zCGuess for parameter `n` rounded.*|Guess for parameter `p` clipped.*g      @g      z$Guess for parameter `loc` rounded...)r2  r   r   z"Guess for parameter `p` clipped...r2  z$Guess for parameter `loc` clipped...)r2  r   r   )
r{   r   r   r   r   r   r   shape_bounds_dr   r>  )r:  r   r%  s      r`   test_guess_ivzTestFit.test_guess_iv  s   Fc,\\.8IIdiiD,?,?uM 9 @d#]]:W5IIdiiD,?,?uM 6C]]:W5IIdiiD,?,?uM 6Q]]:W5IIdiiD,?,?uM 6 B]]:W5IIdiiD,?,?uM 6 F]]:W5IIdiiD,?,?uM 6 X%\\.8IIdiiD,?,?uM 9 9\\.8IIdiiD,?,?uM 9 7d#\\.8IIdiiD,?,?uM 9 9\\.8IIdiiD,?,?uM 98S 98
 65 65 65
 65
 65
 98
 98
 98
 98sw   8O8O%8O'8O4%8P8P(8P	8P(+8P58QOO$'O14O>PPP%(P25P>Q
c                 2   d}t        t        t        z         }t        j                  j                  | j                        }t        t        |      }t        j                  ||         }t        j                  t        |      dz   dft        j                        }|dt        j                  |      z  z  |d ddf<   |dt        j                  |      z  z  |d ddf<   d|d<   d	|d
<    |j                  |d    }	 |j                  |d
    }
t        ||         |	|
gz   }t        |dd      r5|d d
 }t        j                   |	      |d
<    |j"                  |||d}|d d
 }t        |dd      r |j"                  |||d}t%        j&                         5 }|j)                  t*        d       t        j,                  |||| j.                        }d d d        ddd}||   }t1        |j2                  |fi | j4                  d|i y # 1 sw Y   ;xY w)Nr   rh   )dtypeg      $@rv   r   r   rL  )gؗҜ<r   pmfFr   r   zoverflow encountered)rb   	optimizerr   _penalized_nlpsfmlemser+  )r  r	   r   r   r   r   r   r   r   r   emptylenfloat64signr   listfloorr   nptsuppress_warningsfilterr   r   r<  r/  r   tols)r:  	dist_namerb   N	dist_datar   r   r  rO  locscaler   r   supres
nlff_namesr+  s                    r`   basic_fit_testzTestFit.basic_fit_test  s   L01	ii##DII.ui()I./3v;?A.bjjARWWV_ 44ssAvRWWV_ 44ssAvr
 r
ckk6":&VBZ(9Y'(C<74&cr(ChhsmCG488Sqs;DCR[F4&488Sqs;D""$JJ~'=>))D$v&*hh0C %
 $,>?
v&	!$cjj# 	7 	7,5	7 %$s   ;HHrj  c                 (    | j                  |d       y )Nr^  rr  r:  rj  s     r`   test_basic_fit_mlezTestFit.test_basic_fit_mle      Iu-r   c                 (    | j                  |d       y )Nr_  rt  ru  s     r`   test_basic_fit_msezTestFit.test_basic_fit_mse  rw  r   c                 :   d}t         j                  j                  | j                        }t        j
                  }d} |j                  |||d}ddd}t	        j                  |||| j                        }t        |||j                  |fi | j                   y )Nr   )rg   r   r   皙?r   rm  rn  r[  )r   r   r   r   r   r   r   r   r<  r/  r   ri  r:  rk  r   r   r  r   rN  rp  s           r`   test_arcsinezTestFit.test_arcsine  s     ii##DII.}}txxac:(9=iidLDHHE!$cjj&NDIINr   rb   r]  c                 >   d}t         j                  j                  | j                        }t        j
                  }d} |j                  |||d}dddd}t	        j                  |||| j                  |      }t        |||j                  |fi | j                   y )Nr   )rg   r         @r   r{  )r+   rm  rn  )r[  rb   )r   r   r   r   r   rQ   r   r   r<  r/  r   ri  )	r:  rb   rk  r   r   r  r   rN  rp  s	            r`   
test_arguszTestFit.test_argus%  s    
 ii##DII.{{txxac:(YOiidLDHHVT!$cjj&NDIINr   c                 <   d}t         j                  j                  | j                        }t        j
                  }d} |j                  |||d}dddd}t	        j                  |||| j                        }t        |||j                  |fi | j                   y )Nr   )g);?r   r  r   r{  )crm  rn  r~  )r   r   r   r   r   r   r   r   r<  r/  r   ri  r  s           r`   test_foldnormzTestFit.test_foldnorm4  s     ii##DII.~~,txxac:&y9MiidLDHHE!$cjj&NDIINr   c                 <   d}t         j                  j                  | j                        }t        j
                  }d} |j                  |||d}dgdz  }t	        j                  |||| j                        }t        |||j                  |fi | j                   y )Nr   )g?g333333@gffffff@gffffff@r   r{  rT  r~  )r   r   r   r   r   rP   r   r   r<  r/  r   ri  r  s           r`   test_truncparetozTestFit.test_truncparetoB  s     ii##DII.  %txxac:!{1}iidLDHHE!$cjj&NDIINr   c                 <   d}t         j                  j                  | j                        }t        j
                  }d} |j                  |||d}dgdz  }t	        j                  |||| j                        }t        |||j                  |fi | j                   y )Nr   )r   r   g      ?r   r  r   r{  r2  r~  )r   r   r   r   r   r   r   r   r<  r/  r   ri  r  s           r`   test_truncweibull_minzTestFit.test_truncweibull_minP  s     ii##DII.%%*txxac:!{1}iidLDHHE!$cjj&NDIINr   c                 P   d}t         j                  j                  | j                        }t        j
                  }d\  }}}|j                  |||||      }dt        j                  ddg      i}t	        j                  |||| j                        }	t        |	j                  |||ffi | j                   t        j                  }d\  }}|j                  ||||      }t	        j                  ||| j                        }	t        |	j                  ||ffi | j                   y )	Nr   r   ?r   rm  rk   r   r6  r      r~  )gY.?r   )r   r   r   r   r   r   r   r   r   r<  r   r   ri  	bernoulli)
r:  rk  r   r   r6  r7  rm  r   rN  rp  s
             r`   test_missing_shape_boundsz!TestFit.test_missing_shape_bounds^  s    
 ii##DII.{{	1cxx1#ACx@RXXq"g./iidLDHHE

Q3K=499=3xxsx=iiddhh7

QH:		:r   c                    d}t         j                  j                  | j                        }t        j
                  }d\  }}|j                  |||      }d}d|i}t	        j                  |||| j                        }	t        |	j                  ||ffi | j                   d\  }}|j                  |||      }d	}
d
|
i}t	        j                  |||| j                        }	t        |	j                  ||ffi | j                   t        j
                  }d\  }}|j                  ||||      }||
d}t	        j                  |||| j                        }	t        |	j                  ||ffi | j                   y )Nr   )      ?r   r  )r   r2  rm  r~  )r   r   )rn  rk   r   )r8  r2  rn  r  r   rm  rn  rk   r   r}  )r   r   r   r   r   normr   r   r<  r   r   ri  )r:  rk  r   r   rm  rn  r   
loc_boundsrO  rp  scale_boundss              r`   test_fit_only_loc_scalezTestFit.test_fit_only_loc_scales  sO   ii##DII.zz
UxxCacx:
$iidFdhh?

S%L>DII> 
Uxxe!#x> <(iidFdhh?

S%L>DII> zz
UxxCu13xG#l;iidFdhh?

S%L>DII>r   c                    d}t         j                  j                  | j                        }t        j
                  }d\  }}|j                  ||||      }t	        j                  ||      }t        |j                  dfi | j                   ||f||fd}t	        j                  |||      }t        |j                  ||ffi | j                   t        j                  }d\  }	}
}|j                  |	|
|||      }dd	d
}t	        j                  |||| j                        }t        |j                  |	|
|ffi | j                   y )Nr   r  r  r4  r}  r  r  )r   r  )r  r  r5  r~  )r   r   r   r   r   r  r   r   r   r   ri  r   r<  )r:  rk  r   r   rm  rn  r   rp  rO  r6  r7  rN  s               r`   test_everything_fixedzTestFit.test_everything_fixed  s   ii##DII.zz
UxxCu13xG iid#

F8dii8 suen=iidF+

S%L>DII> {{	1cxx1#ACx@$<8iidLDHHE

Q3K=499=r   c                 b   d}t         j                  j                  | j                        }t        j
                  }d} |j                  |||d}|j                         dk(  sJ g d}t	        j                  |||      }d}|j                  j                  |      sJ |j                  du sJ y )Nr   )r2  r   r   r   )r      r4  )r   r   z3Optimization converged to parameter values that areF)r   r   r   r   r   r   r   minr   r   
startswithsuccess)	r:  rk  r   r   r  r   rO  rp  r   s	            r`   test_failurezTestFit.test_failure  s    ii##DII.||txxac:xxzQ-iidF+G{{%%g...{{e###r   c                    d}t         j                  j                  d      }t        j                  }d}g d} |j
                  |||d}t        j                  |||| j                        }t        j                  |j                  |fi | j                  rJ t        j                  ||||| j                        }t        |j                  |fi | j                   y )Ni  l   ^s )r        r   ))rh      )ffffff?F   )g333333?x   rL  r   r~  )r%  r[  )r   r   r   r   r   r   r   r<  allcloser   ri  r   )r:  rk  r   r   r   rO  r   rp  s           r`   
test_guesszTestFit.test_guess  s     ii##L1;txxac:iidFdhh?;;szz6?TYY???iidF&DHHM

F8dii8r   c                 "   ddg}t         j                  }ddd}t        j                  |||d      }t        |j                  j
                  dd	
       t        j                  |||d      }t        |j                  j
                  dd	
       y )Nrh   rT  )r   r   :0yE>r   r}  r^  rO  rb   rD  r   r   r_  gRQ@)r   r   r   r   r   rn  )r:  r   r   rO  res_mleres_mses         r`   test_mse_accuracy_1zTestFit.test_mse_accuracy_1  st     1v{{*5))D$veD,,ad;))D$veD,,e$?r   c                    t         j                  j                  d      }t        j                  }d} |dd      j                  ||      }ddd}t        j                  |||d	
      }t        j                  |      }||d   z  |d   z
  |dz
  z  }||d   z  |d   z
  |dz
  z  }	||	|z
  f}
t        |j                  |
d       y )Nl   4gcvD r   rD     r   rL  r  r}  r_  r  r   rY  r   -C6?rm   )
r   r   r   r   r   r   r   r   r   r   )r:  r   r   r6  r   rO  rp  r   abr   s              r`   test_mse_accuracy_2zTestFit.test_mse_accuracy_2  s     ii##$78}}Aqz~~13~7 :6iid6%@ GGDMqtVae^a!e$quWqt^a!e$1f

Cd3r   N),__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r?  rU  r   rm   ri  r<  rA  rJ  rP  rV  rr  r{   r
  parametrizer  rv  r  ry  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r`   r1  r1  l  sY   ;;DD
))


%C;;??1c#?>Dv&N"0NDD$'D=:
G1:f-N^ 7D [[[*<*>?. @. [[[*<*>?. @.O [[X~6O 7OOOO;*?:>2$  [[9 9"	@4r   r1  )xA   =   Q   X   E   Y   7   T   V   r  G   r  r  r  N   C   `   B   I   K   ;   r  r  ?   O   L   r  U   W   r  P   r  r  r  r  r  r  r  @   r  r  M   r  r  r  r  r  \   Z   r  r  r  r  r  :   r  r  r  r  R   r  r  6   r  9   r  r  r  J   r  r  r  r  r  r  D   r  r  S   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ]   r  r  r  r  r  r  <   r  r  r  r  r  r  r  r  r  r  r  r  r  H   c                   h   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d Zej                  j#                  ddg dfdg dfdg dfg      d        Zej                  j                  ej                  j#                  dg d      d               Zd Zd Zy)TestGoodnessOfFitc                    t         j                  }g d}d}t        j                  t        |      5  t        t        j                         |       d d d        d}t        j                  t        |      5  t        |g dg       d d d        d}t        j                  t        |      5  t        ||d       d d d        d}t        j                  t        |      5  t        ||d	
       d d d        d}t        j                  t        |      5  t        ||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   bxY w# 1 sw Y   y xY w)NrC  z.`dist` must be a \(non-frozen\) instance of...r   z2`data` must be a one-dimensional array of numbers.z`statistic` must be one of...mm)	statisticz"`n_mc_samples` must be an integer.g     D@)n_mc_samplesz"'herring' cannot be used to seed aherring)r   )r   r  r{   r   	TypeErrorr   r>  )r:  r   r   r   s       r`   test_gof_ivzTestGoodnessOfFit.test_gof_iv  s   zzC]]9G4EJJL!, 5 G]]:W5D9+. 6 2]]:W5D!t4 6 7]]9G4D!&9 5 7]]:W5D!)< 65! 54 65 65 54 65s;   D+6D7+EEE+D47E EEE$c                    t         j                  j                  d      }t        }t        j                  |      t        j
                  |d      d}t        t        j                  ||d|      }t        j                  |t        j                  di |j                  d      }t        |j                  |j                         t        |j                  |j                  d	
       y )Nl   H]Vh1 r   ddofr}  ksknown_paramsr  r   exactrb   {Gzt?r   r  )r   r   r   
examgradesr   stdr   r   r  kstestcdfr   r  pvaluer:  r   r   r  rp  r   s         r`   test_against_ksz!TestGoodnessOfFit.test_against_ks  s    ii##$78!wwqzBFF114EFejj!,(,3@ll1ejj8<8<<WMs}}5

CJJT:r   c                    t         j                  j                  d      }t        }t	        t
        j                  |d|      }t        j                  |      t        j                  |d      d}t        j                  |t        j                  di |j                  d      }t        |j                  |j                         t        |j                  d	d
       y )Nl   8<*}p~ r  r  r   r   r  r}  r  r  g5;Nѡ?r  r   r  )r   r   r   r  r   r   r  r   r  r  r  r   r  r  r:  r   r   rp  r  r   s         r`   test_against_lillieforsz)TestGoodnessOfFit.test_against_lilliefors  s    ii##$78ejj!t#N!wwqzBFF114EFll1ejj8<8<<WMs}}5

F6r   c                    t         j                  j                  d      }t        }t        j                  |      t        j
                  |d      d}t        t        j                  ||d|      }t        j                  |t        j                  d	i |j                        }t        |j                  |j                         t        |j                  |j                  d       y )
Nl   vj!$'C r   r  r}  cvmr  r  r   r  )r   r   r   r  r   r  r   r   r  cramervonmisesr  r   r  r  r  s         r`   test_against_cvmz"TestGoodnessOfFit.test_against_cvm!  s    ii##$78!wwqzBFF114EFejj!,(-CA""1ejj&@<&@&D&DEs}}5

CJJT:r   c                    t         j                  j                  d      }t        j                  dd      }ddd}t	        t
        j                  ||d|      }t        |j                  d	       t        |j                  d
d       y )Nl   jHJE3 r   e   gF6F@r  r}  adr  gV-@ru   r  r   
r   r   r   aranger   r   r  r   r  r  r:  r   r   r  rp  s        r`   test_against_anderson_case_0z.TestGoodnessOfFit.test_against_anderson_case_0+  si    ii##$78IIa02>ejj!,(,3@u-

Dt4r   c                    t         j                  j                  d      }t        j                  dd      }ddi}t	        t
        j                  ||d|      }t        |j                  d       t        |j                  d	d
       y )Nl   H'b4:/ r   r  rn  g{U=@r  r  guV?r|  r  r   r  r
  s        r`   test_against_anderson_case_1z.TestGoodnessOfFit.test_against_anderson_case_16  sj    ii##$78IIa!34ejj!,(,3@u-

Cd3r   c                    t         j                  j                  d      }t        j                  dd      }ddi}t	        t
        j                  ||d|      }t        |j                  d       t        |j                  d	d
       y )Nl   P^QqPr   r  rm  gfHF@r  r  gZd;@皙?r  r   r  r
  s        r`   test_against_anderson_case_2z.TestGoodnessOfFit.test_against_anderson_case_2A  sj    ii##$67IIa/0ejj!,(,3@u-

E5r   c                     t         j                  j                  d      }t        j                  j                  dddd|      }t        t        j                  |d|      }t        |j                  d	       t        |j                  d
d       y )Nl   iUn gBQ_ *?r   rh   r   r  r  r  gS?g333333?r  r   )r   r   r   r   r   r   r   r  r   r  r  )r:  r   r   rp  s       r`   test_against_anderson_case_3z.TestGoodnessOfFit.test_against_anderson_case_3L  sn    ii##$78NN1q,/  1ejj!t#Nu-

Dt4r   c                    t         j                  j                  d      }t        j                  ddd      j                  d|      }t        t        j                  |d|	      }t        j                  |d
      }t        |j                  |j                  d          t        |j                  |j                  d   dz  d       y )Nl   /JG gQ8?r   r  r}  r   r   r  r  gumbel_r)r   r   r   r  r   )r   r   r   r   r=   r   r   r  andersonr   r  critical_valuesr  significance_level)r:  r   r   rp  r   s        r`   test_against_anderson_gumbel_rz0TestGoodnessOfFit.test_against_anderson_gumbel_rV  s    ii##$451s#&((+C(H 	
enna4+.0nnQZ0s':':1'=>

C$:$:1$=c$AMr   c                 h   t         j                  j                  d      }g d}ddd}t        j                  t        j
                  ||d|      }t        |j                  dd	
       d|j                  cxk  rdk  sJ  J t        |j                  dd       t        |j                  dd       y )Nl   fKW7/z )r  r      rv   r2  r   r   r   r}  fillibenr  gG=D;?r  r   r   ?gF8y?gh㈵>r  gffffff?Mb`?)	r   r   r   r   r   r  r   r  r  )r:  r   yr  rp  s        r`   test_against_filliben_normz,TestGoodnessOfFit.test_against_filliben_normb  s    ii##$78# 1-##EJJ.8sL
 	wT:cjj&3&&&&& 	'7dC

F6r   c                 V   t         j                  j                  d      }|j                  ddd      }t	        j
                  t        j                  |d|      }dd	d
}t	        j
                  t        j                  ||d|      }t        |j                  |j                  d       y )Nl   1gDF3 r   r   r   )rm  rn  rk   r  r  r   r   r}  r  gV瞯<r  )	r   r   r   normalr   r   r  r   r  r  s         r`   test_filliben_propertyz(TestGoodnessOfFit.test_filliben_propertyy  s    ii##$78JJ2SsJ3##EJJ.8sL 1-##EJJ.8sLs}}5Ar   case   )gV-?gCl?ffffff?g-?gx?2   )g㥛 ?gzG?gv?$C?g1Zd?_   )r(  gS?g~jt?gZd;O?gS?c                 X   t         j                  j                  d      }|\  }}|j                  |      }ddd}t        j                  t        j
                  ||d|      }t        j                  g d      }t        j                  |j                  |dz        }t        ||d	
       y )Nl   +^8r   r   r}  r  r  )r  r8  r  ru   r|  r   r  r   )
r   r   r   r   r   r  r   scoreatpercentilenull_distributionr   )	r:  r$  r   r6  r   r   r  rp  percentiless	            r`    test_against_filliben_norm_tablez2TestGoodnessOfFit.test_against_filliben_norm_table  s    
 ii##$673JJqM 1-##EJJ.8sLhh>?%%c&;&;[_MSt,r   ))r2  g?g;On?)r  gǄ?g-?)r  g-hC/?g\ Ac?c                     |\  }}}t         j                  j                  d      }|j                  |      }t	        j
                  t        j                  |d|      }t        |j                  |d       t        |j                  |d       y )	Nl   vTV_ )rk   r  r  r  r  gQ?r   )
r   r   r   r"  r   r   rayleighr   r  r  )r:  r$  r6  ref_statistic
ref_pvaluer   r   rp  s           r`   test_against_ppccz#TestGoodnessOfFit.test_against_ppcc  sr     (,$=*ii##$78JJAJ##ENNA146}4@

JV<r   c           	      F   t         j                  j                  d      }t        j                  j                  dddd|      }ddi}d	d
i}ddi}t         j                  j                  d      }t        t        j                  |d||||      }t        j                  |j                  j                  j                  d      rJ t        |j                  j                  j                  d
       t        |j                  j                  j                  d       ddi}t         j                  j                  d      }t        t        j                  |d||||      }t        j                  |j                  j                  j                  |j                  j                  j                  d      rJ t        j                  |j                  |j                  d      rJ t        |j                  j                  j                  d
       t        |j                  j                  j                  d       dd
d}t         j                  j                  d      }t        t        j                  |d||||      }t        |j                  j                  j                  d       t        |j                  j                  j                  d
       t        |j                  j                  j                  d       t        j                  |j                  |j                        rJ y )N   zV8t g}-r   rh   r'  r  r  g*@rn  g(\u+@rm  g33333+)r  guessed_params
fit_paramsr  r   r  r  )r  rn  )r   r   r   r   r   r   r   r   r  
fit_resultr   r  r   rn  rm  r,  )	r:  r   r   r6  r7  r  r   r   res3s	            r`   test_params_effectsz%TestGoodnessOfFit.test_params_effects  s    ii##$78NN1q,/  1
 tu%
vii##$78u00!!.<*4,8sL ;;t5577>>>T__++1159T__++//8 qii##$78u00!!.<*4,8sL ;;t5577#5577dD 	D D;;t55#55DB 	B BT__++1159T__++//8
  %0
ii##$78u00!!.<*4,8sL 	T__++--t4T__++1159T__++//8;;t55t7M7MNNNNr   c                 8   d }t         j                  j                  d      }t        j                  j                  d|      }t        t        j                  |ddd||      }g d	}g d
}t        j                  |j                  |      }t        ||d       y )Nc                    t        j                  ||      }| j                  |      }t        j                  ||dd      }t        j                  |dz  |      S )Nrr   r   r   )rs   prependappendrh   )r   r   r  r   r   )r   r   rs   r   r  r   s         r`   	greenwoodz:TestGoodnessOfFit.test_custom_statistic.<locals>.greenwood  sH    4(AAa:A66!q&t,,r   r5  r2  r   r   r   r}  r  )r8  ru   r|  g?r   g?r   g333333?r  g?r  r&  rp   )g҈?gxܙ	?g&)?gW>?gR?gEկt><?gw-?gL1=B?gi?g1cg?gV(?g?Qٰ?ghsۄ?r  r   )
r   r   r   r   r   r   r   quantiler,  r   )r:  r?  r   r   resultr7  exact_quantilessimulated_quantiless           r`   test_custom_statisticz'TestGoodnessOfFit.test_custom_statistic  s    	- ii##$78{{AC8 d67!.D+43H EB !kk&*B*BAF+_5Ir   N)r  r  r  r  r  r   r  r  r  r  r  r{   r
  r  r  r   r#  r  r.  r3  r:  rD  r  r   r`   r  r    s    =0;7;	5	4	65 [[	N 	N7.	B [[Vr+I&J')+I&J')+I&J&L M
-M
- [[[[V &D E=E =0OdJr   r  c                       e Zd Zd Zy)TestFitResultc                 r   t         j                  j                  d      t        j                  j                  ddd      }fd}ddg}t        j                  t        j                  |||	      }	 dd l}d
}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w# t        t        f$ ri t         j                  j                  d      sGd}t        j                  t        |      5  |j                  d       d d d        Y y # 1 sw Y   Y y xY wY y w xY w)Nl   u!u\xD r   r   r   r   c                  "    t        | i |diS )Nr   r   )r;  kwargsr   s     r`   r[  z-TestFitResult.test_plot_iv.<locals>.optimizer  s    )4D6DDDr   r  r4  r~  z!`plot_type` must be one of \{'...r   llama)	plot_typez
2.0.0.dev0z2matplotlib must be installed to use method `plot`.)r   r   r   r   r  r   r   
matplotlibr{   r   r>  plotModuleNotFoundErrorImportError__version__r  )r:  r   r[  rO  rp  rL  r   r   s          @r`   test_plot_ivzTestFitResult.test_plot_iv  s    ii##$78zz~~a3~?	E 6"ii

D&IF	0:Gz97+ :99#[1 	0 >>,,\:O]]#6gFHHwH/ GFF ;		0sO   5!B> B2)B> 2B;7B> ;B> >AD6	D&D6&D0	+D60D65D6N)r  r  r  rQ  r  r   r`   rF  rF    s    0r   rF  r\   )gHz>r   r   )7rx   numpyr   numpy.testingr(  rf  r   r   r{   scipyr   scipy.optimizer   test_continuous_basicr	   !scipy.stats._distn_infrastructurer
   scipy.stats._distr_paramsr   scipy.statsr   r   r   r   mle_failing_fitsmle_Xslow_fitsr   mm_failing_fitsmm_XXslow_fitsmm_Xslow_fitsrz   r}   r   r]   ra   r
  r  r  r   r   r   r   r   r  r   r   r  r  r  r&  r/  r1  r  r  rF  r  r   r`   <module>r_     s   	   7   1 + 6 2 '  	
 (T

(= %6?OP!.9
'   )<)>?E4=1HN 2 @ HNVIC/  ::z2 ;;5788 )X:z +-@-BC' D' MN(.Gz4 z4|.
BJ BJH0 0r   