+
    0iZ              
       D   ^ RI t ^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	t
^ RIHtHt ^ RIHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ R	IH t H!t! ^ R
I"H#t#  ! R R4      t$RR]$! 4       /3RR. RVO/3RR. RVO/3RR]$! 4       /3RR]$! 4       /3RR]$! 4       R^ /3.t%]PL                  PN                  R8X  d   ]PL                  PP                  RW8  d   Rt)MRt)R ]R3R ]*])3R ]+R3R ]R3R ]R3R  ]*R!3.t,R" ]R3R# ]R3R$ ]*])3R% ]+R3R& ]*R!3.t-R' ]*])3R( ]+R3R) ]R3R* ]R3R+ ]*R!3.t.. R,3R-R...R/3R0R1]
P^                  R.R23R0R1]
P`                  R.R23R.R..R33.t1RX]2R43RY]2R43.t3RZ]R53R[]R53.t4R\]R53]
P`                  ]
P`                  3]R53]
P`                  ) ]
P`                  ) 3]R53]
P`                  ]
P`                  ) 3]R53]
P`                  ) ]
P^                  3]2R63]
P^                  ]
P`                  3]2R63.t5^ ]
P^                  3]2R63]
P^                  ]
P^                  3]2R63.t6]Pn                  Pq                  R7]4]3,           ]6,           4      ]Pn                  Pq                  R8]%4      R9 4       4       t9]Pn                  Pq                  R8]%4      R: 4       t:R; t;R< t<]Pn                  Pq                  R8]%4      R= 4       t=]Pn                  Pq                  R>. R]O4      R? 4       t>R@ t?R^RA lt@R_RB ltARC tB]Pn                  Pq                  RD. R`O4      RE 4       tC]Pn                  Pq                  RDRR.4       ! RF RG4      4       tD ! RH RI4      tE ! RJ RK4      tF ! RL RM4      tG ! RN RO4      tH ! RP RQ4      tI ! RR RS4      tJ ! RT RU4      tKR# )a    N)deepcopy)assert_allcloseassert_equal)TransformedDensityRejectionDiscreteAliasUrnDiscreteGuideTableNumericalInversePolynomialNumericalInverseHermiteRatioUniformsSimpleRatioUniformsUNURANError)raises)stats)special)	chisquarecramervonmises)distdiscretedistcont)check_random_statec                   2   a  ] tR t^"t o R tR tR tRtV tR# )StandardNormalc                    R \         P                  ! R\         P                  ,          4      ,          \         P                  ! RV,          V,          4      ,          #       ?       @      ࿩npsqrtpiexpselfxs   &&]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/stats/tests/test_sampling.pypdfStandardNormal.pdf#   s4    "''"RUU(##bffTAXaZ&888    c                    R \         P                  ! R\         P                  ,          4      ,          V) ,          \         P                  ! RV,          V,          4      ,          # r   r   r"   s   &&r%   dpdfStandardNormal.dpdf'   s;    "''"RUU(##qb(266$(1*+===r(   c                .    \         P                  ! V4      # N)r   ndtrr"   s   &&r%   cdfStandardNormal.cdf*   s    ||Ar(    N	__name__
__module____qualname____firstlineno__r&   r*   r/   __static_attributes____classdictcell____classdict__s   @r%   r   r   "   s     9> r(   r   r   distr   皙?r   r	   r
   r   modepypyz.unsupported operand type for float\(\): 'list'zmust be real number, not listc                     V ) # r-   r1   r$   s   &r%   <lambda>rA   B   s    rr(   z...c                     . # r-   r1   r@   s   &r%   rA   rA   D       rr(   c                     \         # r-   foor@   s   &r%   rA   rA   F       sr(   name 'foo' is not definedc                 "    \         P                  # r-   r   infr@   s   &r%   rA   rA   H       rvvr(   c                 "    \         P                  # r-   r   nanr@   s   &r%   rA   rA   J   rL   r(   c                      R # r   r1   r1   r(   r%   rA   rA   L       Sr(   ,takes 0 positional arguments but 1 was givenc                 "    \         P                  # r-   rJ   r@   s   &r%   rA   rA   S   rL   r(   c                 "    \         P                  # r-   rN   r@   s   &r%   rA   rA   U   rL   r(   c                     . # r-   r1   r@   s   &r%   rA   rA   W   rC   r(   c                     \         # r-   rE   r@   s   &r%   rA   rA   Y   rG   r(   c                      R # rQ   r1   r1   r(   r%   rA   rA   [   rR   r(   c                     . # r-   r1   r@   s   &r%   rA   rA   b   rC   r(   c                     \         # r-   rE   r@   s   &r%   rA   rA   d   rG   r(   c                 "    \         P                  # r-   rJ   r@   s   &r%   rA   rA   f   rL   r(   c                 "    \         P                  # r-   rN   r@   s   &r%   rA   rA   h   rL   r(   c                      R # rQ   r1   r1   r(   r%   rA   rA   j   rR   r(   z!must contain at least one elementr           z0wrong number of dimensions \(expected 1, got 2\)皙?皙?)must contain only finite / non-nan values(must contain at least one non-zero valuezmust be a length 2 tuplezleft >= rightzonly non-nan valuesdomain, err, msgzmethod, kwargsc                     \        \        P                  V4      p\        P                  ! WR 7      ;_uu_ 4        V! R/ VBRV /B  RRR4       R#   + '       g   i     R# ; i)matchdomainNr1   )getattrr   samplingpytestr   )rg   errmsgmethodkwargsMethods   &&&&& r%   test_bad_domainrp      sB    
 U^^V,F	s	&	&''' 
'	&	&	&s   AA"	c                 8   \        \        P                  V 4      p^{pV! R/ VBRV/B pV! R/ VBRV/B p\        VP	                  ^d4      VP	                  ^d4      4       \
        P                  P                  ^{4      pV! R/ VB pVP	                  ^dVR7      p\
        P                  P                  R4       V! R/ VBR^{/B pVP	                  ^d4      p\        Wx4       \
        P                  P                  \
        P                  P                  ^{4      4      p	\
        P                  P                  \
        P                  P                  ^{4      4      p
V! R/ VBRV	/B pV! R/ VBRV
/B p\        VP	                  ^d4      VP	                  ^d4      4       R# ){   random_staters   Nr1   )rh   r   ri   r   rvsr   randomRandomStateseedMT19937	Generator)rm   rn   ro   rx   rng1rng2rngrvs1rvs2seed1seed2s   &&         r%   test_random_stater      sI   U^^V,F D.F..D.F..D#. ))


$CFD88Cc8*DIINN4-F--D88C=D
 II!!"))"3"3C"89EII		 1 1# 67E/F//D/F//D#.r(   c                  r   \        \        4       ^{R7      p \        \        4       4      pVP                  ^{4       \        V P	                  ^d4      VP	                  ^d4      4       \        \        4       ^{R7      pVP	                  ^d4      pVP                  ^{4       VP	                  ^d4      p\        W44       R# )rr   rt   N)r   r   set_random_stater   ru   )r{   r|   r}   r~   r   s        r%   test_set_random_stater      s    &~'7cJD&~'78D##.
%n&6S
IC773<D773<Dr(   c                  b  aa R RRR/o ! R R4      oVV3R lp VV3R lp\         P                  ! V R7      p\         P                  ! VR7      pVP                  4        VP                  4        VP                  4        VP                  4        SR ,          R8X  g   Q hSR,          R	8X  g   Q hR# )
err1Nerr2c                   2   a  ] tR t^t o R tR tR tRtV tR# ).test_threading_behaviour.<locals>.Distributionc                    Wn         R # r-   pdf_msg)r#   r   s   &&r%   __init__7test_threading_behaviour.<locals>.Distribution.__init__   s    "Lr(   c                V    R Tu;8  d   R8  d   M V# \        V P                  4      hV# )g33333H@g      I@)
ValueErrorr   r"   s   &&r%   r&   2test_threading_behaviour.<locals>.Distribution.pdf   s(    a$H !..Hr(   c                    ^#    r1   r"   s   &&r%   r*   3test_threading_behaviour.<locals>.Distribution.dpdf   s    r(   r   N)	r3   r4   r5   r6   r   r&   r*   r7   r8   r9   s   @r%   Distributionr      s     	#	
	 	r(   r   c                     < S! R 4      p \        V R^R7      p VP                  R4       R#   \         d"   pTP                  ^ ,          SR&    Rp?R# Rp?ii ; i)rF   rg   rs   順 r   N
   d   r   ru   r   argsr;   r}   er   errorss      r%   func1'test_threading_behaviour.<locals>.func1   sO    E")$y79;	'GGFO 	'VVAYF6N	'   , AAAc                     < S! R 4      p \        V R^R7      p VP                  R4       R#   \         d"   pTP                  ^ ,          SR&    Rp?R# Rp?ii ; i)barr   r   r   Nr   r   r   s      r%   func2'test_threading_behaviour.<locals>.func2   sO    E")$y78:	'GGFO 	'VVAYF6N	'r   )targetrF   r   )	threadingThreadstartjoin)r   r   t1t2r   r   s       @@r%   test_threading_behaviourr      s     dFD)F
 
'' 
			'B				'BHHJHHJGGIGGI&>U"""&>U"""r(   c                     \        \        P                  V 4      pV! R/ VBR ^{/B p\        P                  ! V4      p\        P
                  ! V4      p\        VP                  ^d4      VP                  ^d4      4       R# )rs   Nr1   )rh   r   ri   pickledumpsloadsr   ru   )rm   rn   ro   r{   objr|   s   &&    r%   test_pickler      sZ    U^^V,F-F--D
,,t
C<<D#.r(   sizec                    \        \        4       4      pV f0   \        P                  ! VP	                  V 4      4      '       g   Q hR # \        P                  ! V 4      '       d   V 3p VP	                  V 4      P
                  V 8X  g   Q hR # r-   )r   r   r   isscalarru   shape)r   r}   s   & r%   test_rvs_sizer     se    
 &n&6
7C|{{3774=))));;t8Dwwt}""d***r(   c                      \         P                  ! 4       p \        P                  P	                  ^ 4      p\        WR7      p\        P                  ! ^ ^^dR7      p\        W V P                  4       4       \        V P                  V4      VP                  V4      4       \         P                  ! RRR7      p \        WR7      p\        W V P                  4       4       \        V P                  V4      VP                  V4      4       \         P                  ! ^
R4      p \        WR7      pV P                  4       pV P                  \        P                  ! V^ ,          V^,          ^,           4      4      p\        W%V P                  4       4       R# )r   rt   num      $@      @)locscaler_   N)r   normr   rv   default_rngr
   linspacecheck_cont_samplesr   ppfbinomr   supportpmfarangecheck_discr_samples)r;   urngr}   urg   pvs         r%   test_with_scipy_distributionr     s   ::<D99  #D
!$
:C
Aqc"As$**,/DHHQK,::#R(D
!$
:Cs$**,/DHHQK,;;r3D
4
3C\\^F	"))F1Ivay{3	4B.r(   c                    V P                  R 4      pVP                  4       VP                  4       3p\        P                  ! V^,          4      '       d   \        WbW4R7       V P                  R4      p\        P                  ! VP                  4      Vn        \        WQP                  4      P                  pVR8  g   Q hR# )r   rtolatoli  皙?N)
ru   meanvarr   isfiniter   	vectorizer/   r   pvalue)r}   r;   mv_exr   r   ru   mvpvals   &&&&&   r%   r   r   +  s    
''&/C	SWWY	B	{{588
''#,C||DHH%DH#xx(//D#::r(   c                    V P                  R 4      pVP                  4       VP                  4       3p\        WbW4R7       WP	                  4       ,          p\
        P                  ! V4      p\
        P                  ! VRR7      w  rWP	                  4       ,          p	WRV	P                  % \        Wq4      P                  p
V
R8  g   Q hR# )r   r   T)return_countsNr   )ru   r   r   r   sumr   
zeros_likeuniquer   r   r   )r}   r   r   r   r   ru   r   	obs_freqs_freqsr   s   &&&&&      r%   r   r   8  s    
''&/C	SWWY	BBD4	ffhBb!IyyD1HAIIKE"kuzzY#**D#::r(   c                  b   R p \         P                  ! \        V R7      ;_uu_ 4        \        \	        4       ^ RR7       RRR4       \         P                  ! \        V R7      ;_uu_ 4        \        \	        4       RR7       RRR4       R#   + '       g   i     LT; i  + '       g   i     R# ; i)z.102 : center moved into domain of distributionre   )centerrg   Nrg         )rj   warnsRuntimeWarningr	   r   )rl   s    r%   !test_warning_center_not_in_domainr   H  sg     ;C	nC	0	0">#3AfM 
1	nC	0	0">#3FC 
1	0 
1	0	0	0	0s   B
*B
B	B.	rm   c                     \        \        P                  V 4      pR p\        P                  ! \
        VR7      ;_uu_ 4        V! \        4       ^ RR7       RRR4       R#   + '       g   i     R# ; i)z17 : mode not in domainre   )r=   rg   Nr   )rh   r   ri   rj   r   r   r   )rm   ro   rl   s   &  r%   test_error_mode_not_in_domainr   R  sH     U^^V,F
#C	{#	.	.~a7 
/	.	.	.s   AA0	c                     a  ] tR tRt o R tR]P                  P                  ^^ R7      ]P                  P                  ^^ R7      .t	R]
! 4       3RRRR.tR]
! 4       3^]
! 4       3R.t]P                  P                  R]	4      ]P                  P                  R]4      ]P                  P                  R]4      ]P                  P!                  RR	7      R
 4       4       4       4       tR tRtV tR# )TestQRVSi`  c                <   R p\         P                  ! \        VR7      ;_uu_ 4        \        \        P
                  V4      pV! \        4       4      pVP                  ^ R7       RRR4       \        \        P
                  V4      pV! \        4       4      pRp\         P                  ! \        VR7      ;_uu_ 4        VP                  ^\        P                  P                  ^4      R7       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z&`qmc_engine` must be an instance of...re   )
qmc_engineN6`d` must be consistent with dimension of `qmc_engine`.dr   )
rj   r   r   rh   r   ri   r   qrvsqmcHalton)r#   rm   rf   ro   gens   &&   r%   test_input_validationTestQRVS.test_input_validationc  s    8]]:U33U^^V4F)*CHHH" 4 0^%&H]]:U33HHqUYY%5%5a%8H9 43 43 433s   =C7<1D
7D	
D	Nrx   qrngsize_in, size_outzd_in, d_outzfails in parallelreasonc                   \         P                  R 8H  ;'       d     \        P                  ! 4       ^ ,          R8H  pV'       d   VR8X  d   \        P                  ! R4       \        4       p\        \        P                  V4      p	V	! V4      p
VeZ   VeV   VP                  V8w  dE   Rp\        P                  ! \        VR7      ;_uu_ 4        V
P                  W$VR7       RRR4       R# Vf#   Ve   VP                  ^8w  d   VP                  3pW5,           p\        V4      pV
P                  W$VR7      pVe   VP                  V8X  g   Q hVen   TP                  \         P"                  ! V4      ;'       g    ^4      p\        P$                  P'                  V4      P)                  V4      p\+        VVR	R
7       R# R#   + '       g   i     R# ; i)win3232bitr	   z4NumericalInversePolynomial.qrvs fails for Win 32-bitNr   re   r   r   r   r   -q=r   )sysplatformarchitecturerj   xfailr   rh   r   ri   r   r   r   r   r   r   rv   r   prodr   r   reshaper   )r#   r   size_insize_outd_ind_outrm   w32r;   ro   r   rf   shape_expectedqrng2r   uniformqrvs2s   &&&&&&&          r%   test_QRVS_shape_consistency$TestQRVS.test_QRVS_shape_consistencyy  sl    llg%OO(*?*?*A!*D*O699LL " # 0Tl  0TVVt^LEz77T: 8 <D,1VVIE!)xxWx>::///ll2777#3#8#8q9GJJNN7+33NCED%e4  87s   F??G	c                    \        4       p\        \        P                  V4      pV! V4      pRp^p\        P                  P                  V^ R7      p\        P                  P                  V^ R7      pVP                  \        P                  ! V4      4      p	VP                  WVVR7      p
\        P                  P                  V	4      p\        V4       F5  pV
RV3,          pVRV3,          P                  V4      p\        WRR7       K7  	  R# )	r   r   r  .:NNNr  r	  N)r      )r   rh   r   ri   r   r   rv   r   r  r   r   r   ranger  r   )r#   rm   r;   ro   r   r   r   r   r  r  r   r  isamplesample2s   &&             r%   test_QRVS_size_tupleTestQRVS.test_QRVS_size_tuple  s     0Tlyy*		   +,,rwwt}-xxT4x8

w'qA#q&\FAqDk))$/GF%8 r(   r1   )r   r   )r  r  )r#  r#  )   r  r$  )r   r   )r3   r4   r5   r6   r   r   r   Sobolr   qrngstuplesizesdsrj   markparametrizethread_unsafer  r!  r7   r8   r9   s   @r%   r   r   `  s     : 599??11?-uyy/?/?/?/JKEEG_i+-E /Auw<	3B[[VU+[[0%8[[]B/[[&9: 5 ; 0 9 , 5D9 9r(   r   c            
       D  a  ] tR tRt o  ! R R4      t ! R R4      t ! R R4      t]! 4       ]! 4       ]! R4      ]! R	4      .tRR(.tRR
.t	R]
P                  .tR	]
P                  .t]]	]].t]P                   P#                  R]! ]]4      4      ]P                   P'                  RR7      R 4       4       tR ]R3.t]],          t]P                   P#                  R]4      R 4       t]P                   P#                  R]4      R 4       t]P                   P#                  R]4      R 4       t]P                   P#                  R. R)O4      R 4       tR t]P                   P#                  RR*]
P>                  ]
P                  RR.4      R 4       t ]
PB                  ! ^ ^RR7      . . .]
P>                  .]
P                  ) ]
P>                  ]
P                  .^ ]
P>                  R R.R!R"]
P                  .. R+O..t"]P                   P#                  R#]"4      R$ 4       t#R% t$R&t%V t&R'# ),TestTransformedDensityRejectioni  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )%TestTransformedDensityRejection.dist0i  c                .    R^W,          ,
          ,          # r         ?r1   r"   s   &&r%   r&   )TestTransformedDensityRejection.dist0.pdf      !AC%= r(   c                "    RRV,          ,          # )r   r5  r1   r"   s   &&r%   r*   *TestTransformedDensityRejection.dist0.dpdf  s    "Q$<r(   c                J    RW^,          ^,          ,
          R,           ,          # r   r5  gUUUUUU?r1   r"   s   &&r%   r/   )TestTransformedDensityRejection.dist0.cdf      !d1f*s*++r(   c                    R# r   )r   r1   r#   s   &r%   r   -TestTransformedDensityRejection.dist0.support      Lr(   r1   N
r3   r4   r5   r6   r&   r*   r/   r   r7   r8   r9   s   @r%   dist0r2    s     	!	 	,	 	r(   rF  c                   2   a  ] tR tRt o R tR tR tRtV tR# )%TestTransformedDensityRejection.dist1i  c                N    \         P                  P                  VR ,          4      # r   r   r   _pdfr"   s   &&r%   r&   )TestTransformedDensityRejection.dist1.pdf      ::??1s7++r(   c                l    V) R ,          \         P                  P                  VR,          4      ,          # ){Gz?r   rK  r"   s   &&r%   r*   *TestTransformedDensityRejection.dist1.dpdf  s$    29uzzq3w777r(   c                N    \         P                  P                  VR ,          4      # rJ  r   r   _cdfr"   s   &&r%   r/   )TestTransformedDensityRejection.dist1.cdf  rN  r(   r1   Nr2   r9   s   @r%   dist1rH    s     	,	8	, 	,r(   rV  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )%TestTransformedDensityRejection.dist2i  c                    Wn         R # r-   shiftr#   r[  s   &&r%   r   .TestTransformedDensityRejection.dist2.__init__  s    Jr(   c                x    WP                   ,          pR \        V4      R ,           ,          pRV,          V,          # r         ?r[  absr#   r$   ys   && r%   r&   )TestTransformedDensityRejection.dist2.pdf  -    OAc!frk"A7Q;r(   c                    WP                   ,          pR \        V4      R ,           ,          pW",          V,          pVR8  d   V# V) # )r   r^   ra  rc  s   && r%   r*   *TestTransformedDensityRejection.dist2.dpdf  s=    OAc!frk"A	AR1(qb(r(   c                    WP                   ,          pVR 8:  d   RRV,
          ,          # RRRV,           ,          ,
          # r^   r`  r   rZ  r"   s   &&r%   r/   )TestTransformedDensityRejection.dist2.cdf  5    OABwb1f~%C26N**r(   rZ  N)
r3   r4   r5   r6   r   r&   r*   r/   r7   r8   r9   s   @r%   dist2rX    s     		
	)	+ 	+r(   rm  r^        @rP  dist, mv_exdeadlocks for unknown reasonsr  c                    \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \	        V^*R7      pRRR4       \        XW4       R#   + '       g   i     L; i)ignorert   N)warningscatch_warningssimplefilterr   r   r   r#   r;   r   r}   s   &&& r%   
test_basic*TestTransformedDensityRejection.test_basic  sI     $$&&!!(N;-dDC ' 	3,	 '&s   )AA-	c                    ^ # r   r1   r@   s   &r%   rA   (TestTransformedDensityRejection.<lambda>  s    1r(   50 : bad construction points.pdf, err, msgc                     ! R  R4      pWn         R Vn        \        P                  ! W#R7      ;_uu_ 4        \	        V4       RRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtR# ):TestTransformedDensityRejection.test_bad_pdf.<locals>.disti
  r1   Nr3   r4   r5   r6   r7   r1   r(   r%   r;   r  
      r(   r;   c                     ^# r   r1   r@   s   &r%   rA   >TestTransformedDensityRejection.test_bad_pdf.<locals>.<lambda>  s    ar(   re   Nr&   r*   rj   r   r   r#   r&   rk   rl   r;   s   &&&& r%   test_bad_pdf,TestTransformedDensityRejection.test_bad_pdf  s>    	 		]]3**'- +***s   AA	zdpdf, err, msgc                     ! R  R4      pR Vn         Wn        \        P                  ! W#R7      ;_uu_ 4        \	        VRR7       RRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtR# );TestTransformedDensityRejection.test_bad_dpdf.<locals>.disti  r1   Nr  r1   r(   r%   r;   r    r  r(   r;   c                     V # r-   r1   r@   s   &r%   rA   ?TestTransformedDensityRejection.test_bad_dpdf.<locals>.<lambda>  s    Qr(   re   r   Nr   r   r  )r#   r*   rk   rl   r;   s   &&&& r%   test_bad_dpdf-TestTransformedDensityRejection.test_bad_dpdf  s@    	 		]]3**'W= +***s   AA!	rc   c                    \         P                  ! W#R 7      ;_uu_ 4        \        \        4       VR7       RRR4       R#   + '       g   i     R# ; ire   r   N)rj   r   r   r   r#   rg   rk   rl   s   &&&&r%   test_inf_nan_domains4TestTransformedDensityRejection.test_inf_nan_domains  s-    ]]3**'(8H +***   A  A	construction_pointsr   c                    \         P                  ! \        R R7      ;_uu_ 4        \        \	        4       VR7       RRR4       R#   + '       g   i     R# ; i)z1`construction_points` must be a positive integer.re   r  Nrj   r   r   r   r   r#   r  s   &&r%   #test_bad_construction_points_scalarCTestTransformedDensityRejection.test_bad_construction_points_scalar!  sG    ]]: .D E E' 6IE E E Es   AA	c                &   . p\         P                  ! \        R R7      ;_uu_ 4        \        \	        4       VR7       RRR4       . ROp\         P
                  ! \        RR7      ;_uu_ 4        \        \	        4       VR7       RRR4       \        P                  \        P                  \        P                  .p\         P                  ! \        RR7      ;_uu_ 4        \        \	        4       VR7       RRR4       R	^
.p\         P
                  ! \        RR7      ;_uu_ 4        \        \	        4       R
VR7       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)zC`construction_points` must either be a scalar or a non-empty array.re   r  Nz:33 : starting points not strictly monotonically increasingr|  z!50 : starting point out of domain)rg   r  )r   r   r   r   r   r   )r   )
rj   r   r   r   r   r   r   r   rO   r   r  s   & r%   "test_bad_construction_points_arrayBTestTransformedDensityRejection.test_bad_construction_points_array)  s7    ]]: .M N N ( 6IN 1\\. 1> ? ? ( 6I?  "vvrvvrvv6]]; /9 : :' 6I:  #Bi\\. 1: ; ;' $7; ;5N N N? ?: :; ; ;s/   E-EE,$E?E	E)	,E<	?F	cr   c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        \	        4       RR7       RRR4       R#   + '       g   i     R# ; i)z`c` must either be -0.5 or 0.re   )r  N      r  )r#   r  rl   s   && r%   
test_bad_c*TestTransformedDensityRejection.test_bad_cM  s4    .]]:S11'(8C@ 2111   AA	  r   r`  r_   r`   r   c                v   \        \        4       R R7      p\        P                  ! 4       ;_uu_ 4        Rp\        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       VP                  V4      p\        P                  P                  V4      pRRR4       \        XXR	R
R7       VP                  VP                  8X  g   Q hR#   + '       g   i     L>; i)gH.?)max_squeeze_hat_ratioinvalid value encountered in rr  greatergreater_equalless
less_equalNMbP?h㈵>r   )r   r   rs  rt  filterwarningsr   ppf_hatr   r   r   r   r   )r#   r   r}   rl   resexpecteds   &&    r%   test_ppf_hat,TestTransformedDensityRejection.test_ppf_hatW  s     *.*:@FH $$&&1C##HcIo~N##HcO.C^T##HcFlNK##HcL.@.Q++a.Czz~~a(H ' 	XDt<yyHNN*** '&s   B?D((D8	c                d    ! R  R4      pRp\         P                  ! \        VR7      ;_uu_ 4        \        V4       RRR4        ! R R4      pRp\         P                  ! \        VR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     LV; i  + '       g   i     R# ; i)c                       ] tR tRtRtR# );TestTransformedDensityRejection.test_bad_dist.<locals>.distil  r1   Nr  r1   r(   r%   r;   r  l  s    r(   r;   z`pdf` required but not found.re   Nc                       ] tR tRtR tRtR# )r  it  c                     ^W ,          ,
          # r   r1   r@   s   &r%   rA   DTestTransformedDensityRejection.test_bad_dist.<locals>.dist.<lambda>u  s
    AacEr(   r1   N)r3   r4   r5   r6   r&   r7   r1   r(   r%   r;   r  t  s    !Cr(   z`dpdf` required but not found.)rj   r   r   r   )r#   r;   rl   s   &  r%   test_bad_dist-TestTransformedDensityRejection.test_bad_distj  sx    	 	 /]]:S11'- 2	" 	" 0]]:S11'- 21 21 211s   B5BB	B/	r1   N?)rA  r   r   r  r9  r   r  )'r3   r4   r5   r6   rF  rV  rm  distsmv0mv1r   rK   mv2mv3mvsrj   r,  r-  zipr.  rw  r   bad_pdfsbad_pdfs_commonr  bad_dpdf_commonr  inf_nan_domainsr  r  r  rO   r  r   r   r  r  r7   r8   r9   s   @r%   r0  r0    sK     , ,+ +, WeguRy%-8E v,Ct*Crvv,C266
CS#
C[[] _.[[&EF- G.- k+KLMHH[[_h7. 8. [[-?> @> [[/AI BI [[2LA B"H [[S3R"@AA BA
 
Qt	$b2$66'266266	"A663
sC0*	=	?A [[S!$+ %+$. .r(   r0  c            	         a  ] tR tRt o 0 Rmt]P                  P                  R]4      R 4       t	R ]
R3R ]
R3R ]
R3R	 ]R
3R ]
R3R ]R3R ]R3.t]P                  P                  R]4      R 4       t]P                  P                  R. RO. R O.4      R 4       t]P                  P                  R]4      R 4       t]P(                  ) ]P(                  3]P(                  ]P(                  3]P(                  ) ]P(                  ) 3^ ]P(                  3]P(                  ) ^ 3.t]P                  P                  R]4      R 4       tR tR tR tRtV tR# )!TestDiscreteAliasUrni|  distname, paramsc                0   WP                   9   d   R p\        P                  ! V4       \        V\        4      '       g   TpM\        \        V4      pV! V!  pVP                  4       p\        P                  ! V^,          V^ ,          ,
          4      '       g   \        P                  ! R4       \        P                  ! V^ ,          V^,          ^,           4      pVP                  V4      pVP                  R4      p\        V^*R7      p	\        WV4       R# )zYDAU fails on these probably because of large domains and small computation errors in PMF.z$DAU only works with a finite domain.r   rt   N)basic_fail_distsrj   skip
isinstancestrrh   r   r   r   r   r   r   r   r   
r#   distnameparamsrl   r;   rg   kr   r   r}   s
   &&&       r%   rw  TestDiscreteAliasUrn.test_basic  s    ,,,:CKK(C((D5(+DV}{{6!9vay011 KK>?IIfQi1-XXa[

4 t"5CU+r(   c                "    \         P                  # r-   rJ   r@   s   &r%   rA   TestDiscreteAliasUrn.<lambda>      266r(   ra   c                "    \         P                  # r-   rN   r@   s   &r%   rA   r    r  r(   c                    R # )r^   r1   r@   s   &r%   rA   r    s    3r(   rb   c                    \         # r-   rE   r@   s   &r%   rA   r    s    3r(   rH   c                    . # r-   r1   r@   s   &r%   rA   r    s    2r(   z)setting an array element with a sequence.c                    V ) # r-   r1   r@   s   &r%   rA   r    s    A2r(   z50 : probability < 0c                     R # rQ   r1   r1   r(   r%   rA   r    s    r(   rS   zpmf, err, msgc                     ! R  R4      pWn         \        P                  ! W#R7      ;_uu_ 4        \        VRR7       RRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtR# )/TestDiscreteAliasUrn.test_bad_pmf.<locals>.disti  r1   Nr  r1   r(   r%   r;   r    r  r(   r;   re   r   Nr  )r   rj   r   r   )r#   r   rk   rl   r;   s   &&&& r%   test_bad_pmf!TestDiscreteAliasUrn.test_bad_pmf  s9    	 	]]3**T'2 +***s   AA	r   c                   \         P                  ! V\         P                  R 7      p\        V^{R7      pVP	                  R4       WP                  4       ,          p\         P                  ! ^ \        V4      4      p\         P                  ! W1R7      p\         P                  ! W4,
          ^,          VR7      pWE3p\        W!V4       R# ))dtypert   r   )weightsN)
r   asarrayfloat64r   ru   r   r   lenaverager   )r#   r   r}   variates
m_expected
v_expectedmv_expecteds   &&     r%   test_sampling_with_pv*TestDiscreteAliasUrn.test_sampling_with_pv  s     ZZ"**-r4&&(]99QB(ZZ5
ZZ!61 <bI
 ,C[1r(   pv, msgc                    \         P                  ! \        VR 7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; ire   Nrj   r   r   r   r#   r   rl   s   &&&r%   test_bad_pv TestDiscreteAliasUrn.test_bad_pv  s*    ]]:S11R  2111	   ;A	rg   c                    \         P                  ! \        R R7      ;_uu_ 4        \        \        P
                  ! ^
R4      VR7       RRR4       R#   + '       g   i     R# ; izmust be finitere   r_   r   N)rj   r   r   r   r   r   r#   rg   s   &&r%   test_inf_domain$TestDiscreteAliasUrn.test_inf_domain  s9    ]]:->??U[[S1&A @???   #AA#	c                    \         P                  ! \        R R7      ;_uu_ 4        \        RR.RR7       RRR4       R#   + '       g   i     R# ; i)zrelative urn size < 1.re   r`  )
urn_factorNrA  )rj   r   r   r   rB  s   &r%   test_bad_urn_factor(TestDiscreteAliasUrn.test_bad_urn_factor  s2    \\.0IJJc3ZB7 KJJJs	   ?A	c                    R p ! R R4      p\         P                  ! \        VR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)zG`domain` must be provided when the probability vector is not available.c                   &   a  ] tR tRt o R tRtV tR# )0TestDiscreteAliasUrn.test_bad_args.<locals>.disti  c                    V# r-   r1   r"   s   &&r%   r   4TestDiscreteAliasUrn.test_bad_args.<locals>.dist.pmf  s    r(   r1   N)r3   r4   r5   r6   r   r7   r8   r9   s   @r%   r;   r
    s      r(   r;   re   Nr  )r#   rl   r;   s   &  r%   test_bad_args"TestDiscreteAliasUrn.test_bad_args  s=    7	 	 ]]:S11T" 2111s   AA	c                    \         P                  ! \        P                  ! R4      4      p\	        V^*R7      p\        W!RRR7       R# )  rt   g{Gzt?)r   N)r  )g     @g    
A)r   softmaxr   onesr   r   )r#   r   r}   s   &  r%   test_gh19359!TestDiscreteAliasUrn.test_gh19359  s5    __RWWW-.r3C%C!%	'r(   r1   N>   randintnchypergeom_fishernchypergeom_wallenius)
ףp=
?{Gz?r<   )r   r   g      @      @r   g      @)r3   r4   r5   r6   r  rj   r,  r-  r   rw  r   	NameErrorr   	TypeErrorbad_pmfr  r  bad_pv_commonr  r   rK   
inf_domainr  r  r  r  r7   r8   r9   s   @r%   r  r  |  s     [[/>, ?,2 
:	5	7 
:	5	7 

	4	6 
		%	' 
z	5	7 
{	 	" 
i	8	:)G0 [[_g63 73 [[T$5$B$D E
2E
2 [[Y6! 7! FF7BFF#bffbff%5"&&7Ibff+|-J [[Xz2B 3B8	#' 'r(   r  c                     a  ] tR tRt o  ! R R4      t ! R R4      t ! R R4      t ! R R	4      t]! 4       ]! 4       ]! 4       ]! 4       .tR
R-.t	R
R.t
R.]P                  ,          R/R0]P                  ^,          ,          ,
          .tR.]P                  ,          R1R0]P                  ^,          ,          ,
          .t]	]
]].t]P"                  P%                  RR7      ]P"                  P'                  R]! ]]4      4      R 4       4       t]P"                  P,                  ]P"                  P'                  R]4      R 4       4       t]P"                  P'                  R]4      R 4       t]P"                  P'                  R]4      R 4       t]P"                  P'                  R]4      R 4       t]P>                  ! ^ ^RR7      . . .]P@                  .]PB                  ) ]P@                  ]PB                  .^ ]P@                  RR.RR]PB                  .. R2O..t"]P"                  P'                  R]"4      R 4       t#]P>                  ! R3^
RR7      . . .]P@                  .]PB                  ) ]P@                  ]PB                  .^ ]P@                  RR.RR]PB                  .]PB                  ) ^^...t$]P"                  P'                  R ]$4      R! 4       t%]P"                  PL                  R" 4       t'^R#^]PB                  ]P@                  .t(R$R]PB                  ]P@                  .t)]P"                  P'                  R%](4      R& 4       t*]P"                  P'                  R'])4      R( 4       t+R) t,R* t-R+t.V t/R,# )4TestNumericalInversePolynomiali  c                   2   a  ] tR tRt o R tR tR tRtV tR# )$TestNumericalInversePolynomial.dist0i  c                .    R^W,          ,
          ,          # r4  r1   r"   s   &&r%   r&   (TestNumericalInversePolynomial.dist0.pdf  r7  r(   c                J    RW^,          ^,          ,
          R,           ,          # r<  r1   r"   s   &&r%   r/   (TestNumericalInversePolynomial.dist0.cdf  r>  r(   c                    R# r@  r1   rB  s   &r%   r   ,TestNumericalInversePolynomial.dist0.support  rD  r(   r1   N	r3   r4   r5   r6   r&   r/   r   r7   r8   r9   s   @r%   rF  r#    s     	!	,	 	r(   rF  c                   ,   a  ] tR tRt o R tR tRtV tR# )$TestNumericalInversePolynomial.dist1i  c                N    \         P                  P                  VR ,          4      # rJ  rK  r"   s   &&r%   r&   (TestNumericalInversePolynomial.dist1.pdf  rN  r(   c                N    \         P                  P                  VR ,          4      # rJ  rS  r"   s   &&r%   r/   (TestNumericalInversePolynomial.dist1.cdf  rN  r(   r1   N)r3   r4   r5   r6   r&   r/   r7   r8   r9   s   @r%   rV  r,    s     	,	, 	,r(   rV  c                   2   a  ] tR tRt o R tR tR tRtV tR# )$TestNumericalInversePolynomial.dist2i
  c                    R R^\         P                  ! ^\         P                  ,          V,          4      ,           ,          ,           # )皙??r   sinr    r"   s   &&r%   r&   (TestNumericalInversePolynomial.dist2.pdf  s,    $!bffQruuWQY&7"7888r(   c                8   R V^,           ,          RRR\         P                  ,          ^V,           ,          ,           \         P                  ! R\         P                  ,          V,          4      ,
          ,          R\         P                  ,          ,          ,           # )r4  g?r   r   r  r   r    cosr"   s   &&r%   r/   (TestNumericalInversePolynomial.dist2.cdf  s_    !a%LbhA..255
1CCDX  r(   c                    R# r@  r1   rB  s   &r%   r   ,TestNumericalInversePolynomial.dist2.support  rD  r(   r1   Nr*  r9   s   @r%   rm  r2  
  s     	9	 
	 	r(   rm  c                   2   a  ] tR tRt o R tR tR tRtV tR# )$TestNumericalInversePolynomial.dist3i  c                    R RR^\         P                  ! ^\         P                  ,          V,          4      ,           ,          ,           ,          # )r_   r4  r5  r6  r"   s   &&r%   r&   (TestNumericalInversePolynomial.dist3.pdf  s1    $RVVAbeeGAI->)>!??@@r(   c                6   VR ,          R,           R^\         P                  ,          ,          \         P                  ! ^
\         P                  ,          4      \         P                  ! ^\         P                  ,          V,          4      ,
          ,          ,           # )r   r`  g
ףp=
?r:  r"   s   &&r%   r/   (TestNumericalInversePolynomial.dist3.cdf  s^    S53;qw266"RUU(3C3566!BEE'!)3D4E "F F Fr(   c                    R# )r   )r   r1   rB  s   &r%   r   ,TestNumericalInversePolynomial.dist3.support#  rD  r(   r1   Nr*  r9   s   @r%   dist3r@    s     	A	F	 	r(   rH  r^   rP  r`  r_   rp  r  ro  c                8    \        V^*R7      p\        W1V4       R# )*   rt   N)r	   r   rv  s   &&& r%   rw  )TestNumericalInversePolynomial.test_basic/  s     )B?3e,r(   r  c                   . ROp. ROpR.pW9   d   \         P                  ! RV 24       W9   d   \         P                  ! RV 24       \        V\        4      '       d   \	        \
        V4      MTpV! V!  p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        V^*R7      pRRR4       W9   d   R# \        XWfP                  4       VP                  4       .4       R#   + '       g   i     LD; i)	anglitrel_breitwignerzPINV too slow for zPINV fails for rr  rt   N)rM  
gausshyperkappa4ksonekstwolevy_llevy_stablestudentized_range	trapezoidtriangvonmises)	chi2fatiguelifegibrathalfgennormlognormncfncx2paretot)rj   r  r  r  rh   r   rs  rt  ru  r   r	   r   r   r   )r#   r  r  very_slow_dists
fail_distsskip_sample_moment_checkr;   r}   s   &&&     r%   test_basic_all_scipy_dists9TestNumericalInversePolynomial.test_basic_all_scipy_dists6  s    >-
 %6#6 &KK,XJ78!KK/(45h,, x( 	 V}$$&&!!(N;,TCC ' /3yy{DHHJ&?@ '&s   )C::D
	r}  c                     ! R  R4      pWn         \        P                  ! W#R7      ;_uu_ 4        \        V^ ^.R7       RRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtR# )9TestNumericalInversePolynomial.test_bad_pdf.<locals>.distiZ  r1   Nr  r1   r(   r%   r;   ri  Z  r  r(   r;   re   r   N)r&   rj   r   r	   r  s   &&&& r%   r  +TestNumericalInversePolynomial.test_bad_pdfX  s=    	 	]]3**&tQF; +***   A

A	zlogpdf, err, msgc                     ! R  R4      pWn         \        P                  ! W#R7      ;_uu_ 4        \        V^ ^.R7       RRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtR# )<TestNumericalInversePolynomial.test_bad_logpdf.<locals>.distib  r1   Nr  r1   r(   r%   r;   rn  b  r  r(   r;   re   r   N)logpdfrj   r   r	   )r#   ro  rk   rl   r;   s   &&&& r%   test_bad_logpdf.TestNumericalInversePolynomial.test_bad_logpdf`  s=    	 	]]3**&tQF; +***rk  rc   c                    \         P                  ! W#R 7      ;_uu_ 4        \        \        4       VR7       RRR4       R#   + '       g   i     R# ; ir  )rj   r   r	   r   r  s   &&&&r%   r  3TestNumericalInversePolynomial.test_inf_nan_domainsj  s-    ]]3**&~'7G +***r  '  r   r   r`   r   c                z   \        4       p\        VR R7      p\        P                  ! 4       ;_uu_ 4        Rp\        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       VP                  V4      p\        P                  P                  V4      pRRR4       \        XXR	R	R
7       VP                  VP                  8X  g   Q hR#   + '       g   i     L>; i+=u_resolutionr  rr  r  r  r  r  Ngdy=r   )r   r	   rs  rt  r  r   r   r   r   r   r   r#   r   r;   r}   rl   r  r  s   &&     r%   test_ppf'TestNumericalInversePolynomial.test_ppf~      (EB $$&&1C##HcIo~N##HcO.C^T##HcFlNK##HcL.@.Q''!*Czz~~a(H ' 	XE>yyHNN*** '&   B?D**D:	r$   c                z   \        4       p\        VR R7      p\        P                  ! 4       ;_uu_ 4        Rp\        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       VP                  V4      p\        P                  P                  V4      pRRR4       \        XXR	R	R
7       VP                  VP                  8X  g   Q hR#   + '       g   i     L>; irv  )r   r	   rs  rt  r  r   r/   r   r   r   r   )r#   r$   r;   r}   rl   r  r  s   &&     r%   test_cdf'TestNumericalInversePolynomial.test_cdf  r}  r~  c                    \        4       p\        VR R7      pVP                  4       w  r4VR 8  g   Q hWC8:  g   Q h\        VRR7      pVP                  4       w  r4VR8  g   Q hWC8:  g   Q hR# )绽|=rx  rw  N)r   r	   u_errorr#   r;   r}   	max_errormaes   &    r%   test_u_error+TestNumericalInversePolynomial.test_u_error  sp    (EB	5   (EB	5   r(   g      @g#B;orderc                    \        4       pR p\        P                  ! \        VR7      ;_uu_ 4        \	        W!R7       RRR4       R#   + '       g   i     R# ; i)z2`order` must be an integer in the range \[3, 17\].re   r  N)r   rj   r   r   r	   )r#   r  r;   rl   s   &&  r%   test_bad_orders.TestNumericalInversePolynomial.test_bad_orders  s7    C]]:S11&t9 2111s   AA	ry  c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        \	        4       VR7       RRR4       R#   + '       g   i     R# ; i)z.`u_resolution` must be between 1e-15 and 1e-5.re   rx  N)rj   r   r   r	   r   )r#   ry  rl   s   && r%   test_bad_u_resolution4TestNumericalInversePolynomial.test_bad_u_resolution  s8    ?]]:S11&~'74@B 2111r  c                p    ! R  R4      pV! 4       pRp\         P                  ! \        VR7      ;_uu_ 4        \        V4      pRRR4       \	        4       p\        V4      pRp\         P                  ! \        VR7      ;_uu_ 4        VP                  ^
4       RRR4        ! R R4      pV! 4       p\        V4      pRp\         P                  ! \        VR7      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)	c                   &   a  ] tR tRt o R tRtV tR# )=TestNumericalInversePolynomial.test_bad_args.<locals>.BadDisti  c                @    \         P                  P                  V4      # r-   rS  r"   s   &&r%   r/   ATestNumericalInversePolynomial.test_bad_args.<locals>.BadDist.cdf  s    zzq))r(   r1   N)r3   r4   r5   r6   r/   r7   r8   r9   s   @r%   BadDistr         * *r(   r  z9Either of the methods `pdf` or `logpdf` must be specifiedre   Nz4`sample_size` must be greater than or equal to 1000.c                   &   a  ] tR tRt o R tRtV tR# )BTestNumericalInversePolynomial.test_bad_args.<locals>.Distributioni  c                J    \         P                  ! RV,          V,          4      # )r`  r   r   r!   r"   s   &&r%   r&   FTestNumericalInversePolynomial.test_bad_args.<locals>.Distribution.pdf  s    vvdQhqj))r(   r1   N)r3   r4   r5   r6   r&   r7   r8   r9   s   @r%   r   r    r  r(   r   z!Exact CDF required but not found.)rj   r   r   r	   r   r  )r#   r  r;   rl   r}   r   s   &     r%   r  ,TestNumericalInversePolynomial.test_bad_args  s    	* 	* yJ]]:S11,T2C 2 (.E]]:S11KKO 2	* 	* ~(.2]]:S11KKM 21! 21 21 211s#   C>D#D$>D	D!	$D5	c                    ! R  R4      pV! 4       pR Vn         \        V4      pV! 4       pR Vn        \        V4      p\        P                  ! RR^dR7      p\        VP                  V4      VP                  V4      4       R# )c                       ] tR tRtRtR# )JTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.MyDisti  r1   Nr  r1   r(   r%   MyDistr    r  r(   r  c                 L    \         P                  ! V ) V ,          ^,          4      # r%  )mathr!   r@   s   &r%   rA   LTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.<lambda>  s    1"Q$q&!1r(   c                 $    V ) V ,          ^,          # r  r1   r@   s   &r%   rA   r    s    r!tAvr(   r  r   NgwJ?)r&   r	   ro  r   r   r   r   )r#   r  dist_pdfr{   dist_logpdfr|   qs   &      r%   test_logpdf_pdf_consistency:TestNumericalInversePolynomial.test_logpdf_pdf_consistency  sm    	 	 81)(3 h-)+6KKf#.TXXa[1r(   r1   Nr  gܿUUUUUU?gQ?g @r  r  )0r3   r4   r5   r6   rF  rV  rm  rH  r  r  r  r   r    r  r  r  rj   r,  r.  r-  r  rw  xslowr   re  r  r  bad_logpdfs_commonrp  r  r  r   rO   rK   r   r{  r$   r  slowr  
bad_ordersbad_u_resolutionr  r  r  r  r7   r8   r9   s   @r%   r!  r!    so     , ,
 
"	 	 Weguw0E v,Ct*C;'"%%("22
3C;)GBEE1H,<<
=CS#
C[[&EF[[] _.-. G- [[[[/:A ; A@ [[_o>< ?< [[/1CD< E< [[/AH BH 	Aqe$
RD	BFF7BFFBFF+	 &&#s	c3/<	A [[S!$+ %+  
S"%	("rdRVVH66'266266	"A663
sC0BFF7Aq/	B	DA [[S!$+ %+  [[	  	  S"bffbff-JtRVVRVV4[[Wj1: 2: [[^-=>B ?B62 2r(   r!  c            
         a  ] tR tRt o  ! R R4      t ! R R4      t]! 4       ]! 4       .tR"^]P                  ,          ,          R#^^]P                  ,          ]P                  ,          ,          ,
          .t	R$R%^^]P                  ,          ]P                  ,          ,          ,
          R&,
          .t
]	]
.t]P                  P                  R]! ]]4      4      ]P                  P                  R^^.4      ]P                  P                   R 4       4       4       t]P                  P                  R	]4      R
 4       tR t]P                  P+                  R4      ]P                  P,                  ]P                  P                  R']4      R 4       4       4       t]P                  P3                  ^4      ]P                  P+                  R4      ]P                  P5                  ^4      R 4       4       4       tR tR^ ]P:                  P=                  ^ 4      .t]PA                  ]P:                  PC                  ^ 4      4       R]"! 4       3R(R).t#]P                  P                  R]4      ]P                  P                  R]#4      ]P                  P                   R 4       4       4       t$R t%R t&]PN                  ! RRRR7      . . .]PP                  .]PR                  ) ]PP                  ]PR                  .^ ]PP                  RR.RR]PR                  .. R*O..t*]P                  P                  R]*4      R 4       t+]P                  PX                  R  4       t-R!t.V t/R# )+TestNumericalInverseHermitei  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )!TestNumericalInverseHermite.dist0i  c                    R R\         P                  ! R\         P                  ,          V,          4      ,           ,          # )r`  r   r   r6  r"   s   &&r%   r&   %TestNumericalInverseHermite.dist0.pdf  s'    RVVBruuHQJ//00r(   c                    \         P                  \         P                  ! R \         P                  ,          V,          4      ,          # )r   r:  r"   s   &&r%   r*   &TestNumericalInverseHermite.dist0.dpdf  s&    55255
+++r(   c                    R R\         P                  ,          ^V,           ,          ,           \         P                  ! R\         P                  ,          V,          4      ,
          R\         P                  ,          ,          # )r   r   r  r:  r"   s   &&r%   r/   %TestNumericalInverseHermite.dist0.cdf  sE    BEE1q5))BFF2bee8A:,>>2bee8LLr(   c                    R# r@  r1   rB  s   &r%   r   )TestNumericalInverseHermite.dist0.support  rD  r(   r1   NrE  r9   s   @r%   rF  r    s     	1	,	M	 	r(   rF  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )!TestNumericalInverseHermite.dist1i  c                l   VR8:  dO   \         P                  ! R\         P                  ,          V,          4      R ,          \         P                  ,          # VR8  d   R# VR 8:  dO   \         P                  ! R\         P                  ,          V,          4      R ,          \         P                  ,          # R# r`  r   r^   Nr   r6  r"   s   &&r%   r&   %TestNumericalInverseHermite.dist1.pdf	  ss    T	vvrBEEzQ./#5==BSvvrBEEzQ./#5== r(   c                   VR8:  d]   \         P                  ! R\         P                  ,          V,          4      \         P                  ,          \         P                  ,          # VR8  d   R# VR 8:  d]   \         P                  ! R\         P                  ,          V,          4      \         P                  ,          \         P                  ,          # R# r  r   r;  r    r"   s   &&r%   r*   &TestNumericalInverseHermite.dist1.dpdf  s{    T	vvrBEEzQ./"%%7"%%??BSvvrBEEzQ./"%%7"%%?? r(   c                4   VR8:  dA   R^\         P                  ! R\         P                  ,          V,          4      ,
          ,          # VR8  d   R # VR 8:  dA   RR\         P                  ! R\         P                  ,          V,          4      ,          ,
          # R# )r`        ?r   r^   r5  Nr   r  r"   s   &&r%   r/   %TestNumericalInverseHermite.dist1.cdf  sk    T	q2662:*:#;;<<BSdRVVR"%%Z1,<%==== r(   c                    R# )r   )rA  r`  r1   rB  s   &r%   r   )TestNumericalInverseHermite.dist1.support!  s    Nr(   r1   NrE  r9   s   @r%   rV  r    s     	>	@	>	 	r(   rV  ro  r  c                8    \        W^*R7      p\        WAV4       R# )rJ  )r  rs   N)r
   r   )r#   r;   r   r  r}   s   &&&& r%   rw  &TestNumericalInverseHermite.test_basic+  s    
 &dbI3e,r(   rc   c                    \         P                  ! W#R 7      ;_uu_ 4        \        \        4       VR7       RRR4       R#   + '       g   i     R# ; ir  )rj   r   r
   r   r  s   &&&&r%   r  0TestNumericalInverseHermite.test_inf_nan_domains5  s-    ]]3**#N$4VD +***r  c           	        0 Rmp0 RmpW9   d   \         P                  ! R4       W9   d   \         P                  ! R4       \        P                  P                  ^ 4      p\        \        V4      ! V!  p\        V4      pVP	                  ^
4      p\        P                  ! \        P                  ! VP                  V4      VP                  V4      ,
          4      \        P                  ! VP                  V4      4      ,          4      p	\        P                  ! \        P                  ! VP                  VP                  V4      4      V,
          4      4      p
V	R8  g   Q hV
R8  g   Q hR# )rQ  zDistribution is too slowz)Fails - usually due to inaccurate CDF/PDF:0yE>r  N>   rQ  rR  skewnormrT  >   r^  nctbetawaldrP  invgaussrX  rO  geninvgaussnorminvgaussgenhyperbolicrU  )rj   r  r  r   rv   r   rh   r   r
   maxrb  r   r/   )r#   r  shapes
slow_distsrc  r}   r;   fnir$   p_tolu_tols   &&&        r%   basic_test_all_scipy_dists6TestNumericalInverseHermite.basic_test_all_scipy_dists:  s    B
@
 !KK23! LLDEii##A&uh'0%d+JJrNrvvdhhqk#''!*45bffTXXa[6IIJrvvdhhswwqz2Q678t||u}}r(   zignore::RuntimeWarningc                (    V P                  W4       R # r-   r  )r#   r  r  s   &&&r%   re  6TestNumericalInverseHermite.test_basic_all_scipy_distsS  s     	''9r(   c                *    V P                  R R4       R# )	truncnormN)r   r%  r  rB  s   &r%   test_basic_truncnorm_gh171558TestNumericalInverseHermite.test_basic_truncnorm_gh17155[  s     	''X>r(   c                   R p\         P                  ! \        VR7      ;_uu_ 4        \        \	        4       ^R7       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        R4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        \	        4       RR7       RRR4       R#   + '       g   i     L; i  + '       g   i     Li; i  + '       g   i     R# ; i)	z"`order` must be either 1, 3, or 5.re   r  Nz`cdf` required but not foundr   z!could not convert string to floatekkirx  )rj   r   r   r
   r   )r#   rf   s   & r%   r   1TestNumericalInverseHermite.test_input_validationa  s    5]]:U33#N$4A> 4 /]]:U33#F+ 4 4]]:U33#N$4179 43 43 43 433s#   C+C%C+C	C(	+C<	Nr}   r  c                2   \        4       p\        V4      p\        V4      pVP                  W!R 7      pVe   VP                  V8X  g   Q hVeJ   \        V4      pVP                  VR7      p\        P                  P                  V4      p	\        Wy4       R# R# ))r   rs   Nr   )r   r
   r   ru   r   r   r  r   r   r   r   )
r#   r}   r  r  r;   r  r|   ru   r  r   s
   &&&&      r%   test_RVS$TestNumericalInverseHermite.test_RVSs  s     %d+}gg7g599(((%d+Dlll0G::>>'*DC&	 r(   c                   RpRp\         P                  ! \        VR7      ;_uu_ 4        \        \        P
                  ! V!  4       RRR4       \        \        P
                  ! V!  RR7       R#   + '       g   i     L1; i)獵dsz@zg98 : one or more intervals very short; possibly due to numerical problems with a pole or very flat tailre   Nr  rx  )r  g@e?)rj   r   r   r
   r   r  )r#   r  rf   s   &  r%   test_inaccurate_CDF/TestNumericalInverseHermite.test_inaccurate_CDF  sX     :D \\.66#EJJ$78 7 	 

F 3$G	 76s   A00B 	c                    \        4       p\        V4      p\        P                  ! 4       p\        V4      p\	        VP                  ^ R7      VP                  ^ R7      4       R# )r   rt   N)r   r
   r   r   r   ru   )r#   rV  fni1rm  fni2s   &    r%   test_custom_distribution4TestNumericalInverseHermite.test_custom_distribution  sI     &u-

&u-a0$(((2JKr(   r^   r   rt  r   r`  r   r_   r`   r   c                z   \        4       p\        VR R7      p\        P                  ! 4       ;_uu_ 4        Rp\        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       \        P                  ! RVR,           \
        4       VP                  V4      p\        P                  P                  V4      pRRR4       \        XXR	R
R7       VP                  VP                  8X  g   Q hR#   + '       g   i     L>; i)r  rx  r  rr  r  r  r  r  Ng&.>gLa㧝=r   )r   r
   rs  rt  r  r   r   r   r   r   r   rz  s   &&     r%   r{  $TestNumericalInverseHermite.test_ppf  s    %d? $$&&1C##HcIo~N##HcO.C^T##HcFlNK##HcL.@.Q''!*Czz~~a(H ' 	XDu=yyHNN*** '&r~  c                   \        4       p\        VR R7      pVP                  4       w  r4VR 8  g   Q hWC8:  g   Q h\        P                  ! 4       ;_uu_ 4        \        P
                  ! R\        4       \        VRR7      pRRR4       VP                  4       w  r4VR8  g   Q hWC8:  g   Q hR#   + '       g   i     L5; i)r  rx  rr  rw  N)r   r
   r  rs  rt  ru  r   r  s   &    r%   r  (TestNumericalInverseHermite.test_u_error  s    %d?	5   $$&&!!(N;)$UCC ' 	5    '&s   )B..B>	r1   rA  r  g      пg      ?g      ?)r  r  )   )r  )r  r      r  r  )0r3   r4   r5   r6   rF  rV  r  r   r    r  r  r  rj   r,  r-  r  r.  rw  r  r  r  r  r  r   re  	fail_slowparallel_threads_limitr  r   rv   rw   rngsappendr   r)  r*  r  r  r  r   rO   rK   r   r{  r  r  r7   r8   r9   s   @r%   r  r    s    
 " 8 WegE qw<q!BEE'"%%-00
1CQ"%%&&-
.C*C[[] _.[[Wq!f-[[-  ..- [[/AE BE2 [[ 89[[[[3X>: ?  ::
 [[1[[ 89[[''*? + : ?9 !RYY**1-.DKK		%%a()EG_i)?@E[[UD)[[0%8[['  9 *'HL 	B&
RD	BFF7BFFBFF+	 &&#s	c3/<	A [[S!$+ %+  [[   r(   r  c            
         a  ] tR tRt o 0 RmtR tR tR t]P                  P                  R]4      R 4       t]P                  ! ^ ^RR7      . . .]P                  .]P                   ) ]P                  ]P                   .^ ]P                  R	R
.RR]P                   .. RO..t]P                  P                  R]4      R 4       t]P                  P                  R]4      R 4       t]P                   ) ]P                   3]P                   ]P                   3]P                   ) ]P                   ) 3^ ]P                   3]P                   ) ^ 3.t]P                  P                  R]4      R 4       tRtV tR# )TestDiscreteGuideTablei  c                    . ROp\         P                  P                  4       p\        P                  ! \
        4      ;_uu_ 4        \        W^R7       RRR4       R#   + '       g   i     R# ; ir   rs   guide_factorNr   g333333?g333333?r   rv   r   rj   r   r   r   r#   r   r   s   &  r%   $test_guide_factor_gt3_raises_warning;TestDiscreteGuideTable.test_guide_factor_gt3_raises_warning  A    yy$$&\\.))r1E *)))   AA.	c                    . ROp\         P                  P                  4       p\        P                  ! \
        4      ;_uu_ 4        \        W^ R7       RRR4       R#   + '       g   i     R# ; ir  r  r  s   &  r%   %test_guide_factor_zero_raises_warning<TestDiscreteGuideTable.test_guide_factor_zero_raises_warning  r  r  c                    . ROp\         P                  P                  4       p\        P                  ! \
        4      ;_uu_ 4        \        WRR7       RRR4       R#   + '       g   i     R# ; i)r   r  Nr
  rA  r  r  s   &  r%   )test_negative_guide_factor_raises_warning@TestDiscreteGuideTable.test_negative_guide_factor_raises_warning  sC     yy$$&\\.))r2F *)))r  r  c                0   WP                   9   d   R p\        P                  ! V4       \        V\        4      '       g   TpM\        \        V4      pV! V!  pVP                  4       p\        P                  ! V^,          V^ ,          ,
          4      '       g   \        P                  ! R4       \        P                  ! V^ ,          V^,          ^,           4      pVP                  V4      pVP                  R4      p\        V^*R7      p	\        WV4       R# )zYDGT fails on these probably because of large domains and small computation errors in PMF.z$DGT only works with a finite domain.r   rt   N)r  rj   r  r  r  rh   r   r   r   r   r   r   r   r   r  s
   &&&       r%   rw  !TestDiscreteGuideTable.test_basic  s    ,,,:CKK(C((D5(+DV}{{6!9vay011 KK>?IIfQi1-XXa[

4  B7CU+r(   rt  r   r`  r   r_   r`   r   c                   ^Rr2\         P                  ! W#4      p\        V^*R7      p\        P                  ! 4       ;_uu_ 4        Rp\        P
                  ! RVR,           \        4       \        P
                  ! RVR,           \        4       \        P
                  ! RVR,           \        4       \        P
                  ! RVR,           \        4       VP                  V4      p\         P                  P                  WV4      pR	R	R	4       \        XP                  XP                  4       \        Wx4       R	#   + '       g   i     L=; i)
r  r   rt   r  rr  r  r  r  r  N)
r   r   r   rs  rt  r  r   r   r   r   )	r#   r   npr;   r}   rl   r  r  s	   &&       r%   r{  TestDiscreteGuideTable.test_ppf  s    #1{{1  B7 $$&&1C##HcIo~N##HcO.C^T##HcFlNK##HcL.@.Q''!*C{{qQ/H ' 	SYY/S# '&s   C D99E		r  c                    \         P                  ! \        VR 7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; ir  )rj   r   r   r   r  s   &&&r%   r  "TestDiscreteGuideTable.test_bad_pv#  s*    ]]:S11r" 2111r  rg   c                    \         P                  ! \        R R7      ;_uu_ 4        \        \        P
                  ! ^
R4      VR7       RRR4       R#   + '       g   i     R# ; ir  )rj   r   r   r   r   r   r   s   &&r%   r  &TestDiscreteGuideTable.test_inf_domain-  s9    ]]:->??u{{2s3FC @???r  r1   N>   r  r  r  r  )r3   r4   r5   r6   r  r  r  r  rj   r,  r-  r   rw  r   r   rO   rK   r   r{  r  r  r  r  r7   r8   r9   s   @r%   r  r    so    FFG [[/>, ?,6 	Aqe$
RD	BFF7BFFBFF+	 &&#s	c3/<	A [[S!$$ %$$ [[Y6# 7# FF7BFF#bffbff%5"&&7Ibff+|-J [[Xz2D 3Dr(   r  c                   b  a  ] tR tRt o  ! R R4      t]! R4      ]! R4      .tR]P                  .tR]P                  .t	]]	.t
]P                  P                  R]! ]]
4      4      ]P                  P                  R 4       4       t]P                  P                  R]4      R	 4       tR
 tRtV tR# )TestSimpleRatioUniformsi3  c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestSimpleRatioUniforms.disti7  c                    Wn         Wn        R # r-   )r[  r=   r\  s   &&r%   r   %TestSimpleRatioUniforms.dist.__init__8  s    JIr(   c                x    WP                   ,          pR \        V4      R ,           ,          pRV,          V,          # r_  ra  rc  s   && r%   r&    TestSimpleRatioUniforms.dist.pdf<  rf  r(   c                    WP                   ,          pVR 8:  d   RRV,
          ,          # RRRV,           ,          ,
          # rj  rZ  r"   s   &&r%   r/    TestSimpleRatioUniforms.dist.cdfA  rl  r(   )r=   r[  N)	r3   r4   r5   r6   r   r&   r/   r7   r8   r9   s   @r%   r;   r$  7  s     		
	+ 	+r(   r;   r^   rn  ro  c                    \        WP                  ^*R7      p\        W1V4       \        WP                  VP                  VP                  4      ^*R7      p\        W1V4       R# )rJ  )r=   rs   )r=   cdf_at_moders   N)r   r=   r   r/   rv  s   &&& r%   rw  "TestSimpleRatioUniforms.test_basicO  sM     "$YYRH3e,!$YY.2hhtyy.A/13 	3e,r(   rc   c                    \         P                  ! W#R 7      ;_uu_ 4        \        \        4       VR7       RRR4       R#   + '       g   i     R# ; ir  )rj   r   r   r   r  s   &&&&r%   r  ,TestSimpleRatioUniforms.test_inf_nan_domains\  s-    ]]3** 0@ +***r  c                    \         P                  ! \        R R7      ;_uu_ 4        \        \	        4       ^ RR7       RRR4       R#   + '       g   i     R# ; i)z`pdf_area` must be > 0re   )r=   pdf_areaNrA  )rj   r   r   r   r   rB  s   &r%   r  %TestSimpleRatioUniforms.test_bad_argsa  s3    ]]:-FGG 0q2F HGGGs   AA	r1   N)r3   r4   r5   r6   r;   r  r   rK   r  r  r  rj   r,  r-  r  r.  rw  r  r  r  r7   r8   r9   s   @r%   r"  r"  3  s     + +" "XtF|$E rvv,C266
C*C[[] _.[[- .- [[/AA BAG Gr(   r"  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestRatioUniformsig  c           	     h   \         P                  P                  p\        P                  ! V! \        P                  ! ^4      4      4      \        P                  ! ^4      ,          p\        P                  ! V! ^ 4      4      p\        WV) VRR7      p\        \         P                  ! VP                  R4      R4      ^,          R8  R4       \        R ^^ ^\        P                  ! R4      ,          RR7      p\        \         P                  ! VP                  R4      R	4      ^,          R8  R4       R
# )r%  i90  umaxvminvmaxrs   i	  r   r  Tc                 0    \         P                  ! V ) 4      # r-   r  r@   s   &r%   rA   6TestRatioUniforms.test_rv_generation.<locals>.<lambda>r  s    bffaRjr(   r  exponNrA  )
r   r   r&   r   r   r   r   kstestru   r!   )r#   fvr   r   s   &    r%   test_rv_generation$TestRatioUniforms.test_rv_generationh  s     JJNNGGAbggajM"RWWQZ/GGAaDMAQBQUKU\\#''$-8;dBDI 0q!"266":EKU\\#''$-9!<tCTJr(   c                F   \         P                  P                  p\        P                  ! V! \        P                  ! ^4      4      4      \        P                  ! ^4      ,          p\        P                  ! V! ^ 4      4      p\        WV) VRR7      p\        WV) VRR7      p\        WV) VRR7      pVP                  ^4      VP                  R4      VP                  R4      rp\        Wx4       \        WP                  4       4       \        VP                  R4       \        V	P                  R4       \        WV) V^R7      p
\        WV) V^R7      pV
P                  RR7      VP                  ^R7      r\        VP                  4       V4       \        VP                  R4       \        WV) VRR7      p\        WV) VRR7      p\        WV) VRR7      pVP                  4       VP                  ^4      VP                  R4      ppp\        VV4       \        VV4       R# )	r%    r6  r  Nr&  )r   r   )r   r   r   r   )
r   r   r&   r   r   r   ru   r   flattenr   )r#   r>  r?  r   gen1gen2gen3r1r2r3gen4gen5r4r5gen6gen7gen8r6r7r8s   &                   r%   
test_shapeTestRatioUniforms.test_shapev  s   JJNNGGAbggajM"RWWQZ/GGAaDMQaRadKQaRadKQaRadKXXa[$((4.$((62BRR&RXXt$RXXv&QaRabIQaRabIy)4888+<BRZZ\2&RXXy)QaRadKQaRadKQaRadKXXZ!dhhtnBRRr(   c                   \         P                  P                  p\        P                  ! V! \        P                  ! ^4      4      4      \        P                  ! ^4      ,          p\        P                  ! V! ^ 4      4      p\        WV) VRR7      pVP                  ^
4      p\        P                  P                  R4      p\        WV) W&R7      pVP                  ^
4      p\        WX4       R# )r%  rC  r6  N)
r   r   r&   r   r   r   ru   rv   rw   r   )	r#   r>  r?  r7  rE  rH  r}   rF  rI  s	   &        r%   r   #TestRatioUniforms.test_random_state  s    JJNNGGAbggajM"RWWQZ/wwqt}QNXXb\ii##D)QMXXb\Rr(   c           	     \   \         P                  P                  p\        \        R R7      ;_uu_ 4        \        V^^^R7       RRR4       \        \        R R7      ;_uu_ 4        \        V^^^R7       RRR4       \        \        RR7      ;_uu_ 4        \        VR^^R7       RRR4       \        \        RR7      ;_uu_ 4        \        V^ ^^R7       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Li; i  + '       g   i     R# ; i)zvmin must be smaller than vmaxre   )r&   r7  r8  r9  Nzumax must be positiverA  )r   r   r&   assert_raisesr   r   )r#   r>  s   & r%   test_exceptions!TestRatioUniforms.test_exceptions  s    JJNN:-MNNaaaa8 O:-MNNaaaa8 O :-DEEabqq9 F:-DEEaaaa8 FE ONNN FEEEEs/   C!%C4DD!C1	4D	D	D+	r1   N)
r3   r4   r5   r6   r@  rU  r   r[  r7   r8   r9   s   @r%   r4  r4  g  s     K8	9 9r(   r4  )r  r  r<   )   r   r   )r   r%  r   r1   )r%  r   )r   r   )r   r   )Nr   rz  r   )r   r   )r%  r   r  r   )r   r   )r   r   )gHz>r   )r  r   )r   r	   r   )Lr   r   rj   copyr   r  r
  r  rs  numpyr   numpy.testingr   r   scipy.stats.samplingr   r   r   r	   r
   r   r   r   r   rZ  scipyr   r   scipy.statsr   r   scipy.stats._distr_paramsr   r   scipy._lib._utilr   r   all_methodsimplementationnameversionfloaterrr  r  r  r  r  rO   rK   r  r   bad_sized_domainsbad_domainsr  nan_domainsr,  r-  rp   r   r   r   r   r   r   r   r   r   r   r   r0  r  r!  r  r  r"  r4  r1   r(   r%   <module>rn     s        
    7	 	 	 +   1 < /	 	 #V^-=$>?&"345F$567!FN,<#=>)9 :;V^%5vqAB v%&&3@H/H ;'9h'I;<{F+{F+)LM& {F+{F+9h'I;<)LM" 9h'I;<{F+{F+)LM  	-.
Cj\FG	3JK	3JK	3Z<= 
7801	  [*+[*+ {,-ffbff{$45	vvgw&67ffrvvg%56	vvgrvv
$:;ffbffz#9:	 [*45ffbffz#9: +$'88$%& );7( 8&( );7/ 8/8	.#b );7/ 8/  "2 3	+3	+/*
 D  $C D8D8 $=$@$B CY9 Y9CY9x{. {.|r' r'j~2 ~2BW  W tdD dDN1G 1GhA9 A9r(   