
    ` h>                        d dl Z d dlZd dlZd dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d Zd Zg d	Ze j&                  j)                  d
e      d        Ze j&                  j)                  d
e      d        Ze j&                  j.                  e j&                  j1                  d      d               Ze j&                  j5                  ed      e j&                  j7                  d      e j&                  j)                  d
dg      d                      Zd Zd Zd Ze j&                  j)                  ddddej@                   ej@                  ffg      d        Z!e j&                  j)                  d
ddg      d        Z"d Z#d  Z$d! Z%e j&                  j)                  d"g d#      d$        Z&d% Z'd& Z(d' Z)e j&                  jU                  d(       G d) d*             Z+d+ Z,y),    N)assert_array_equalassert_allclosesuppress_warnings)deepcopy)FastGeneratorInversion)stats)IS_MUSLc                     t        j                  t        d      5  t        t	        j
                  d             d d d        t        j                  t        d      5  t        t	        j
                  ddg             d d d        t        j                  t        d	      5  t        t	        j
                         d
       d d d        d} t        j                  t        |       5  t        t	        j                  ddg             d d d        t        j                  t        d      5  t        d       d d d        t        j                  t        d      5  t        t	        j                  dd             d d d        y # 1 sw Y   Kx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)Nzloc must be scalarmatch)333333??)loczscale must be scalar      ?@)scalez'test' cannot be used to seedtestrandom_statez/Each of the 1 shape parameters must be a scalarr         @z`dist` must be a frozenxyzDistribution 'truncnorm' is not      @)pytestraises
ValueErrorr   r   normgamma	truncnorm)msgs    /home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/scipy/stats/tests/test_fast_gen_inversion.pytest_bad_argsr!      sU   	z)=	> ;uzzj9:;	z)?	@ =uzzc
;<= 
z)H	I Buzz|&AB <C	z	- 8u{{C:678 
z)B	C %t$% 
z)J	K :usC89: :; ;= =B B8 8% %: :sG    F"F$ F)!F+-F7 GFFF(+F47G Gc                     t        t        j                         d      } | j                  d      }d| _        | j                  d      }t        ||       t        j                  j                  d      }t        t        j                         |      } | j                  d      }t        j                  j                  d      | _        | j                  d      }t        ||       t        j                  j                  d      }t        t        j                         |      } | j                  d      }t        j                  j                  d      | _        | j                  d      }t        ||       t        t        j                         d      } | j                  d      }| j                  d      }| j                  d      }d| _        | j                  d      }t        ||dd         y )	Ni-r   
   sizei16i<	        )r   r   r   rvsr   r   nprandomdefault_rngRandomStateevaluate_error)genx1x2urng_x3s         r    test_random_stater4   !   s   
 H
EC	b	BC	b	Br2 99  *D
 D
AC	b	Byy,,X6C	b	Br2 99  &D
 D
AC	b	Byy,,T2C	b	Br2 !H
EC	b	B"A	b	BC	b	Br2bc7#    )#)alpha      @)anglit )argusr7   )r;   )gffffff@)beta)r   ?)cosiner:   )	betaprime)r   gffffff
@)bradfordr   )burr)r   333333@)burr12ffffff?r   )cauchyr:   )chi2r7   )chi)r   )crystalballrE   )exponr:   )r   r   )gennorm)g@)gumbel_lr:   )gumbel_rr:   )	hypsecantr:   )invgauss)g@)
invweibullrL   )laplacer:   )logisticr:   )maxwellr:   )moyalr:   r   r:   )pareto)r   )powerlaw)gffffff@)rayleighr:   )semicircularr:   )t)r   )waldr:   )weibull_max)rC   )weibull_minrA   zdistname, argsc                 v   t         j                  j                  d      } t        t        |       | }|j                  d|      }t        ||      }|j                  d      }t	        j                  ||      j                  dkD  sJ g d}t        |j                  |      |j                  |      d	       y )
N   IOi^  r%   r   r   r$   {Gz?gMbP?g?      ?r=   g+?绽|=atol)r)   r*   r+   getattrr   r(   r   cramervonmises_2samppvaluer   ppf)distnameargsr1   rng1rvs1rng2rvs2qs           r    test_rvs_and_ppfru   k   s     99  !12D#75(#T*D88480D!$T:D888D%%dD1884??? 	&ADHHQK!59r5   c                      t        t        |       | }t               5 }|j                  t               t        |      }d d d        j                  ddd      \  }}|dk  sJ y # 1 sw Y   (xY w)N'  ra   Fr%   r   x_errorrg   )rj   r   r   filterRuntimeWarningr   r-   )rn   ro   distsuprngu_errorry   s          r    test_u_errorr   z   s~     $75(#T*D		 +

>"$T*+ ))"2E * GW e+ +s   !A&&A/zgeninvgauss CDF is not accurate)reasonc                      t        j                  dd      } t        |       }|j                  dd      }|d   dk  sJ y )N皙	@r   rw   i	 rc   r   rg   )r   geninvgaussr   r-   )r|   r~   errs      r    test_geninvgauss_uerrorr      sE     S#&D
 
&C


&u

=Cq6E>>r5   z!Hits RecursionError, see gh-23172r&   )r<   ))\(?r   c                     t               5 }|j                  t                t        t        |       | }t        |      }d d d        j                  ddd      \  }}|dk\  r|dk  sJ y y # 1 sw Y   .xY w)Nrw   l   c}u -SRTrx   g&.=g&.>)r   rz   r{   rj   r   r   r-   )rn   ro   r}   r|   r~   r   ry   s          r    test_error_extreme_paramsr      s     
	 +

>"'wuh'.$T*	+
 ))"7 * GW +~~ + +s   4A,,A5c                  F   t        t        j                               } t        j                  t
        d      5  | j                  d       d d d        t        j                  t
        d      5  | j                  d       d d d        y # 1 sw Y   @xY w# 1 sw Y   y xY w)Nzsize must be an integerr   r8   r$   )   r   )r   r   r   r   r   r   r-   )r.   s    r    test_evaluate_error_inputsr      s    
 
.C	z)B	C %$%	z)B	C ('( (% %( (s   B/BBB c                  4   d\  } }t        j                  | |      }t        |d      }|j                  d      }|| z
  |z  }t        j                  |d      j
                  dkD  sJ g d	}t        |j                  |      |j                  |      d
       y )N)r8   ffffff@r   r   i  r     r$   r   rd   re   rg   rh   )	r   r   r   r(   cramervonmisesrl   r   _ppfrm   )r   r   r|   r~   r
r_rescaledrt   s          r    test_rvs_ppf_loc_scaler      s    JC::#U+D
 D
9CTAc'U"J
F3::TAAA%ACHHQK%8r5   c                     t        t        j                         d      } | j                  d      }d|j	                         cxk  r|j                         cxk  rdk  sJ  J d\  }}t        j                  ||      }t        |d	      } | j                  d      }||d
z  z
  ||dz  z   }}||j	                         cxk  r|j                         cxk  r|k  sJ  J y )N)   domaind   r$   r   r   )r8   r   r   )g         r   r   )r   r   r   r(   minmax)r~   r   r   r   r|   lbubs          r    test_domainr      s     !g
>CSA'1557'a''''' JC::#U+D
 i
8CSA53;eaiB(1557(b(((((r5   zdistname, args, expected)r<   r8   r   r   r   r   r:   c                      t        t        |       | }t        |      }t        |j	                         |       d|_        d|_        t        |j	                         ddt        j                  |      z  z          y )Nr   r   )	rj   r   r   r   supportr   r   r)   array)rn   ro   expectedr|   r~   s        r    test_supportr      sb     $75(#T*D
 
&Cs{{}h/CGCIs{{}a!BHHX,>*>&>?r5   )r<   r   rW   c                      t        t        |       | }t        |d      }t        |j	                         d       d|_        d|_        t        |j	                         d       y )N)rf   rF   r   r   r   )       @rC   )rj   r   r   r   r   r   r   )rn   ro   r|   r~   s       r    test_support_truncationr      sR     $75(#T*D
 j
9Cs{{}j1CGCIs{{}&@Ar5   c                  F   t        j                         5  t        j                  d       t        t	        j
                         d      } d d d         j                  d      }d|j                         cxk  r|j                         cxk  rdk  sJ  J y # 1 sw Y   NxY w)Nerror)r   r   r   r   r$   r   r   )	warningscatch_warningssimplefilterr   r   r   r(   r   r   )r~   r   s     r    test_domain_shift_truncationr      s     
	 	 	" Bg&$UZZ\&AB 	SA&!%%'&Q&&&&&	B Bs   5BB c                     t        t        j                         d      } t        j                  dd      }d}d}t	        | j                  |      |j                  |             t	        | j                  |      |j                  |             d\  }}d| _	        d	| _
        t        j                  dd||
      }t        j                  |      |z  |z   }t	        | j                  |      |j                  |             t	        | j                  |      |j                  |             t        t        j                  dd      d      } d| _	        d| _
        t        | j                         d       t        j                  g d      }| j                  |      }t        |d   |d	   fd       t        j                   |dd	       dkD  sJ t	        | j                  |      d       y )N)r   r   r   r   r   )r   rC         @g333333@rd   rf   gGz?)r   r   r   r   r   r   r8   )g333333?rF   )      @      @)gQ@Gz@Q@gGz@r   r   r   )r   r   r   r   )r   r   r   r   r   _cdfcdfr   rm   r   r   r)   r   r<   r   r   r   )r~   
trunc_normxpr   r   y_cdfs          r     test_non_rvs_methods_with_domainr      sv   
 j
ACc*JAACHHQK!23CHHQK!23JCCGCIcs%@J
ec!ACHHQK!23CHHQK!23
 !C!5j
ICCGCIs{{}l3
)*AHHQKEa%(+V466%!*!!!CHHUO%=>r5   c                     t        j                         } t        |       }t        j                  ddd      }d}t        |j                  |      | j                  |             t        |j                  |      | j                  |             d\  }}||_
        ||_        t        j                  ||      } t        |j                  |      | j                  |             t        |j                  |      | j                  |             y )Nr   r#   )numr   )rf   r   r   )r   r   r   r)   linspacer   r   r   r   rm   r   r   )	norm_distr~   r   r   r   r   s         r    #test_non_rvs_methods_without_domainr     s    

I
 
+C
Br"AACHHQKq!12CHHQKq!12JCCGCI

s%0ICHHQKq!12CHHQKq!12r5   z	domain, x))Nrf   )r   rf   )r   r   c                     t        t        j                         |       }t        j                  |j                  |            sJ t        j                  |j                  d            sJ y)z pdf, cdf etc should map scalar values to scalars. check with and
    w/o domain since domain impacts pdf, cdf etc
    Take x inside and outside of domain r   rf   N)r   r   r   r)   isscalarr   r   )r   r   r~   s      r    test_scalar_inputsr     sJ     !f
=C;;sxx{###;;sxx}%%%r5   c                     d\  } }}t        t        j                  |       ||f      }d|_        |j	                  d      }||j                         cxk  r|j                         cxk  r|k  sJ  J t        j                  |       j                   |       |      z
  t        j                  |fd      j                  dkD  sJ y )N)g      @g      ?g      ?r   i  rb   r$   c                      |       z  S )Nr:   )r   r   probs    r    <lambda>z-test_domain_argus_large_chi.<locals>.<lambda>6  s    SVd] r5   皙?)
r   r   r;   r   r(   r   r   r   r   rl   )rI   r   r   r~   r   r   r   s        @@r    test_domain_argus_large_chir   +  s     "KCR
 S!12r(
CCCSA(1557(b(((((
++c


Cr7SWD#:;BBTIIIr5   c                     t        t        j                         d      } | j                  d      }d| _        d| _        | j                  d      }t        j                  ||dz
  dz        j                  dkD  sJ d	| _        d
| _        | j                  d      }t        j                  ||      j                  dkD  sJ y )Ni訤-r   r   r$   r   r   r   r   r   r   )r   r   r   r(   r   r   rk   rl   )r~   r1r2s      r    test_setting_loc_scaler   9  s    
 I
FC	d	BCGCI	B%%b26S.9@@4GGGCGCI	B%%b"-44t;;;r5   c                     d} t        j                  t        |       5  t        t	        j
                  d            }d d d        t        t	        j
                  d      d      }|j                  dd      \  }}|d	k\  sJ y # 1 sw Y   GxY w)
Nz0No generator is defined for the shape parametersr   gQ?T)ignore_shape_ranger      rc   gư>)r   r   r   r   r   r\   r-   )r   r~   u_errr2   s       r    test_ignore_shape_ranger   H  sw    
<C	z	- 4$UWWT]34
 4
HC !!t#!>HE1D==4 4s   BBz4NumericalInversePolynomial.qrvs fails for Win 32-bitc                      e Zd Zd Zdej
                  j                  dd      ej
                  j                  dd      gZd e	       fddd	d
gZ
d e	       fd e	       fdgZej                  j                  de      ej                  j                  de
      ej                  j                  de      d                      Zd Zy)TestQRVSc                    t        t        j                               }d}t        j                  t
        |      5  |j                  d       d d d        d}t        j                  t
        |      5  |j                  dt        j                  j                  d             d d d        y # 1 sw Y   `xY w# 1 sw Y   y xY w)	Nz&`qmc_engine` must be an instance of...r   r   )
qmc_engine6`d` must be consistent with dimension of `qmc_engine`.r   r   dr   )	r   r   r   r   r   r   qrvsqmcHalton)selfr.   r   s      r    test_input_validationzTestQRVS.test_input_validationV  s    $UZZ\28]]:U3 	#HHH"	# I]]:U3 	:HHqUYY%5%5a%8H9	: 	:		# 	#	: 	:s   B-31B9-B69CNr   r   seedr   )r   )r   )   r   )r   r   )r   r   r   )r   )r   qrngzsize_in, size_outzd_in, d_outc                 n   t        t        j                               }|L|J|j                  |k7  r;d}t	        j
                  t        |      5  |j                  |||       d d d        y |||j                  dk7  r|j                  f}||z   }t        |      }	|j                  |||      }
||
j                  |k(  sJ |	e|	j                  t        j                  |      xs d      }t        j                  j                  |      j                  |      }t        |
|d       y y # 1 sw Y   y xY w)Nr   r   r   r   r%   r   r   -q=rh   )r   r   r   r   r   r   r   r   r   shaper*   r)   prodrm   reshaper   )r   r   size_insize_outd_ind_outr.   r   shape_expectedqrng2r   uniformqrvs2s                r    test_QRVS_shape_consistencyz$TestQRVS.test_QRVS_shape_consistencym  s   
 %UZZ\2  0TVVt^LEz7 ;DT:; <D,1VVIE!E)xxWx>::///ll2777#3#8q9GJJNN7+33NCED%e4 ;s   D++D4c                    t        t        j                               }d}d}t        j                  j	                  |d      }t        j                  j	                  |d      }|j                  t        j                  |            }|j                  |||      }t        j                  j                  |      }t        |      D ]/  }	|d|	f   }
|d d |	f   j                  |      }t        |
|d       1 y )	N)r   r   r&   r   r   r   .r   rh   )r   r   r   r   r   r*   r)   r   r   rm   ranger   r   )r   r.   r%   r   r   r   r   r   r   isamplesample2s               r    test_QRVS_size_tuplezTestQRVS.test_QRVS_size_tuple  s     %UZZ\2yy*		   +,,rwwt}-xxTQ4x8

w'q 	9A#q&\FAqDk))$/GFG%8	9r5   )__name__
__module____qualname__r   r   r   Sobolr   qrngstuplesizesdsr   markparametrizer   r   r:   r5   r    r   r   R  s    	: 599??11?-uyy/?/?/?/JKE 
uwE /Auw<	3B[[VU+[[0%8[[]B/5 0 9 ,569r5   r   c                      d} t               5 }|j                  t               t        t	        j
                  |        }d d d        j                  d      \  }}|dk  sJ y # 1 sw Y   &xY w)N)gA;B?gעG-S?i  r   rg   )r   rz   r{   r   r   rB   r-   )ro   r}   r.   r   r2   s        r    test_burr_overflowr
    sl    
 $D		 8

>"$UZZ%678 ###6JGQe8 8s   1A##A,)-r   r   numpyr)   numpy.testingr   r   r   copyr   scipy.stats.samplingr   scipyr   scipy._lib._testutilsr	   r!   r4   dists_with_paramsr  r  ru   r   xslowxfailr   skipif	fail_slowr   r   r   r   infr   r   r   r   r   r   r   r   r   xfail_on_32bitr   r
  r:   r5   r    <module>r     s'     . .  7  ):* $F$ N *->?: @: *->?
 @
 ;< =  G$GHq*.D-EF G  I(9)  46!2'89;<
@<
@ *.=?B?B'?D3 +()&	)&J< :P9 P9P9fr5   