+
    nDj                     H   ^ RI t ^ RIt^ RIHt ^ RIHtHtHtH	t	 ^ RI
HtHtHtHtHtHtHtHtHtHt ^ RIHtHt ^ RIHt ^ RIHu Ht ^ RIHt ] P@                  PB                  t!].t"]! RR4      R 4       t#]PH                  ! ^ ^0R	7      R
 4       t%R t&]! ]PN                  4       ! R R4      4       t(]! RR4      R 4       t)]! ]4       ! R R4      4       t*]! RR4      R 4       t+R^ RRRRRR/R lt,]-! ].! ]4      4      t/]! ]P`                  4       ! R R4      4       t1R# )     N)stats)_xp_searchsorted_estimated_cdf_methods$_estimated_cdf_discontinuous_methods!_estimated_cdf_continuous_methods)
xp_default_dtypeis_numpyis_torchis_jaxis_cupyis_array_api_strictmake_xp_test_caseSCIPY_ARRAY_APIxp_sizexp_copy)xp_assert_closexp_assert_equal)_apply_over_batch)_broadcast_arraysc                    VR 8X  d   V \         P                  ! V 4      ( ,          p \         P                  ! V4      pVP                  4       pRW&   VR8X  dY   V P                  ^8X  d   \         P                  ! W^ ,          4      M(\
        P                  P                  W4      P                  pMPVP                  R4      '       d"   \        \         P                  ! V 4      W4      pM\         P                  ! WVR7      p\         P                  ! V4      pVR8X  dD   \         P                  ! \         P                  ! V 4      4      '       d   \         P                  VR&   \         P                  WT&   V# )omit      ?harrell-davisroundmethod	propagateNNN)npisnancopysize	full_liker   mstatshdquantilesdata
startswithwinsor_reference_1dsortquantileasarrayanynan)xp
nan_policyr   p_maskress   &&&&  Y/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/stats/tests/test_quantile.pyquantile_reference_last_axisr4      s    Vrxx{lOXXa[F	AAI ()!r||At$LL,,Q277 				7	#	#!"''!*a8kk!v.
**S/C[ RVVBHHQK%8%8A&&CKJ    )excludedc                 N   \        V 4      pVR 8X  dX   \        VR8  d   \        P                  ! W,          4      M"\        P                  ! W1,          ^,
          4      4      pW,          # VR8X  dX   \        VR8  d   \        P                  ! W,          4      M"\        P
                  ! W1,          ^,
          4      4      pW,          # VR8X  dP   \        VR8  d   \        P
                  ! W,          4      M"\        P                  ! W1,          ^,
          4      4      pV X,          # )round_nearestr   round_outwardround_inward)lenintr   r   floorceil)yr/   r   njs   &&&  r3   r(   r(   4   s     	AA 1s70CD
 4K	 
?	"1s7	0BC 4K 
>	!!c'rxx	/BCQ4Kr5   c                   \         P                  ! WR4      \         P                  ! \         P                  ! V4      VR4      r\        WW54      p\         P                  ! VRV4      pV'       g   \         P                  ! WbR7      pV# )   axis)r   moveaxis
atleast_1dr4   squeeze)r.   r/   rE   r0   keepdimsr   r2   s   &&$$$$ r3   quantile_referencerK   B   s^    ;;q#R[[q1A4%Lq
&qZ
@C
++c2t
$Cjj(Jr5   c                     a  ] tR t^Kt o R tR t]! RRR.R7      ]P                  P                  R. R'O4      ]P                  P                  R. R)O4      ]P                  P                  R
RR.4      R 4       4       4       4       t
]P                  P                  R4      ]! RRRR.R7      ]P                  P                  R^ ^.4      ]P                  P                  RRR.4      ]P                  P                  R. R*O4      ]P                  P                  RRR.4      ]P                  P                  R. R+O4      ]P                  P                  R
RR.4      R 4       4       4       4       4       4       4       4       tR t]P                  P                  R. R]P                  / 3. R,OR(^ ^R]P                  .]P                  ^^]P                  ]P                  ./ 3. R,O. . / 3]P                  ^..R]P                  ^.RR/3. . .R]P                   ! ^]P                  4      RR(/3. . .R]P"                  ! R-4      R^ RR/3. . .R]P"                  ! R.4      R^ RR/3. RR.]P                   ! ^]P                  4      / 3]P$                  ! ^^4      P'                  R/4      RR...RR	RR/3^^.^^... R0O. R1O.RR	RR/3.
4      R 4       t]P                  P                  R. R2O4      ]P                  P                  RRR.4      R 4       4       t]P                  P                  R. R3O4      R 4       t]P                  P                  R RR.4      R! 4       t]P                  P                  R. R4O4      R" 4       t]P                  P                  R4      ]P                  P                  R. R4O4      ]P                  P                  R#^2R5.4      R$ 4       4       4       t]! RRRR.R7      R% 4       tR&tV tR	# )6TestQuantilec           
     
   VP                  . RO4      pVP                  R4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! VP                  RR.4      V4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        P
                  ! VP                  R^.4      V4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W!P                  ^ ^.4      4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#VP                  W!P                  4      R	7       RRR4       R
p\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#RR7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#RR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#^R7       RRR4       \        V4      '       ge   Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! VP                  VP                  ^^.4      VRR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#RR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#VRR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#VRR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#^*R7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W!P                  RR.4      RR7       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELY; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELv; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELz; i  + '       g   i     ELG; i  + '       g   i     R# ; i)rC   r   `x` must have real dtype.matchTFNz"`p` must have real floating dtype.z`weights` must have real dtype.)weights"`axis` must be an integer or None.rD   7`axis` is not compatible with the shapes of the inputs.The input contains nan valuesraiser0   z`method` must be one of...a duckr   z4`method='harrell-davis'` does not support `weights`.r   rR   r   z4`method='round_nearest'` does not support `weights`.r8   /If specified, `keepdims` must be True or False.rJ   zD`keepdims` may be False only if the length of `p` along `axis` is 1.333333?rC               ?      ?r   rF   )
r+   pytestraises
ValueErrorr   r*   astype	complex64r   r-   )selfxpr.   r/   messages   &&   r3   test_input_validation"TestQuantile.test_input_validationN   s<   JJy!JJsO-]]:W55NN2::tUm4a8 6]]:&&NN2::tQi0!4 ' 7]]:W55NN1jj!Q01 6 4]]:W55NN11ll)CD 6 7]]:W55NN1c* 6]]:W55NN1g. 6 L]]:W55NN1a( 6 bzz5Gz99rzz2661a.91Q : /]]:W55NN11 6 I]]:W55NN1?C 6 I]]:W55NN1?C 6 D]]:W55NN1"- 6 Y]]:W55NN1jj#s4uE 65[ 655&&& 655 655 655555 655
 :99 655 655 655 655 655s   )Q)Q5(Q-2R+R0R)7R=6S3S%:S9T
T!*T5Q	Q*	-Q>	R	R&	)R:	=S	S"	%S6	9T
	T	!T2	5U	c                   \         P                  ! WR4      pVP                  p\         P                  ! V4      pVP	                  ^
VP
                  R,          \         P                  R7      p. p. pV FJ  pVP                  V4      p	VP                  \         P                  ! W4      4       VP                  V	4       KL  	  \         P                  ! V4      \         P                  ! V4      rvV^8  d0   \         P                  ! V^ R7      \         P                  ! V^ R7      rv\         P                  ! VRV4      \         P                  ! VRV4      rv\         P                  ! WqP                  R7      pWv3# )rC   )r"   dtyperD   rm   rF   )r   swapaxesndim
atleast_2dintegersshapeint32permutedappendrepeatstackrI   r+   rm   )
rg   r.   rE   rngrp   countsx_reprR   x_counts_s
   &&&&      r3   _get_weights_x_repTestQuantile._get_weights_x_rep   s   KK$vvMM!bqwwr{"((CBll6*GLL2/0NN7#  %"((7*;w!8ZZA6

7QR8S7UB5r{{7BPT7Uw**WGG4~r5   TzPyTorch doesn't have `betainc`.cupy)cpu_onlyreason
exceptionsr   zshape_x, shape_p, axisNrR   Fc           	        V'       dL   VP                  R 4      '       g   VP                  R4      '       g   VR8X  d   \        P                  ! R4       \        V4      p\        P
                  P                  R4      pVP                  VR7      p	VP                  VR7      p
V'       d   V P                  WV4      w  r[MRT	r\        YVP                  R 4      '       d
   VR,          MTVRVRJR	7      pVP                  WR
7      VP                  WR
7      rVf   TMVP                  WWR
7      p\        P                  ! WWVR7      p\        WP                  WR
7      4       R# )_r   r   z4`weights` not supported by private (legacy) methods.   lv_r"   NrC   NNr   )r   rE   r0   rJ   rn   )r   rR   rE   )r'   rb   skipr   r   randomdefault_rngr~   rK   r+   r   r*   r   )rg   r   shape_xshape_prE   rR   rh   rm   ry   r.   r/   r{   refr2   s   &&&&&&&       r3   test_against_reference#TestQuantile.test_against_reference   s'    ))#..&2C2CG2L2L!?2KKNO $ii##$56JJGJ$JJGJ$!44QcBNGU!1U 6+<+<S+A+AVBZv+t8KM zz!z)2::a:+E1$_'"**W*2RnnQ&MZZZ9:r5   %ignore:torch.searchsorted:UserWarning	jax.numpyrE   rJ   r0   r   rm   float32float64c                   \        V4      '       d   VR 8X  d   \        P                  ! R4       V'       d   VR9   d   \        P                  ! R4       \        P                  P                  R4      pRp	VP	                  V	R7      P                  V4      p
VP	                  V	R7      P                  V4      pVP	                  V	R7      R8  p\        P                  ! V4      '       g   Q h\        P                  W&   V'       g   \        P                  ! WRR7      p\        V4      '       d   VP                  4       pRV^&   R	VR&   \        Wt4      pV'       d-   V P                  WV4      w  rnVf   TMVP                  V4      pMR
T
rVR 8X  d   \        '       g   \        P                  ! R4       Ve   \        P                  ! R4       \        P                   ! R 4      p\#        WVR7      pVP%                  V4      pVP                  WR7      pVf   TMVP                  V4      p\&        P(                  ! VVP                  V4      3RV/VB p\+        W3RR/VB p\-        VP.                  VP                  VVR7      4       R
# \#        WW5R7      p\&        P(                  ! VP                  V
4      VP                  V4      3RV/VB p\+        W3/ VB p\-        VVP                  VVR7      4       R
# )marray(`marray` currently incompatible with JAXz'These methods don't yet support weightsr   r   皙?TrE   rJ                 ?N-MArray is only available if SCIPY_ARRAY_API=1z)MArray is not yet compatible with weightsrE   rJ   r   maskrR   r0   r   rn   rE   rJ   r0   r   >   r8   r         )r   rb   r   r   r   r   re   r,   r-   meanr	   ravelgetattrr~   r+   r   importorskipdict_get_namespacer   r*   rK   r   r&   )rg   rE   rJ   r0   rm   r   rR   rh   ry   rs   r.   r/   r   p0r{   r   kwargsmxpx_mpr2   r   s   &&&&&&&&             r3   test_against_reference_2%TestQuantile.test_against_reference_2   sb    "::*0KKBCv!CCKKABii##$56JJEJ"))%0JJEJ"))%0zzuz%+vvd|||&&t4A
 B<<BBqEBrF"!44QcBNG!(gbjj6IG!1U!"?KL"GH((2FtvFF''+C;;q;,D!(gckk'6JG..s{{1~QwQ&QC$UK&KFKCCHHbjjEj&BC4!+<nnRZZ]BJJqMU7UfU 4V4RZZ5Z9:r5   c                    \         P                  ! VP                  ^
VP                  R7      R4      pVP                  \        V4      8X  g   Q hR# )
   rn   r   N)r   r*   arangeint64rm   r   )rg   rh   r2   s   && r3   test_integer_input_output_dtype,TestQuantile.test_integer_input_output_dtype   s;    nnRYYrY:C@yy,R0000r5   zx, p, ref, kwargsr   g      ?r\         ,@c                    \        V4      pVP                  V4      VP                  V4      VP                  W6R 7      r2p\        P                  ! W3/ VB p\	        Ws4       R# )rn   N)r   r+   r   r*   r   )rg   r.   r/   r   r   rh   default_dtyper2   s   &&&&&&  r3   test_edge_casesTestQuantile.test_edge_cases   sO    $ ),JJqM2::a="**S*2VcnnQ,V,!r5   c                   . ROpVP                  4       pV'       d   ^WQ&   MVP                  V4       \        P                  ! VP	                  \        V4      4      RWR7      pVP                  \        V4      8X  g   Q hR# )r_   r   r   N)r_      r   )r!   popr   r*   zerostuplers   )rg   rE   rJ   rh   rs   	out_shaper2   s   &&&&   r3   test_size_0TestQuantile.test_size_0  s`     JJL	IOMM$nnRXXeEl3StWyyE),,,,r5   c                   VR 8X  d,   \         P                  R8  d   \        P                  ! R4       \         P                  ! R\         P
                  R7      p\         P                  ! ^ RR4      p\        P                  ! VP                  V4      VP                  V4      VR7      p\         P                  ! Y4VP                  R4      '       d
   VR	,          MTR7      p\        WRP                  WbP
                  R7      4       R
# )closest_observationz2.0.1z5Bug in np.quantile (numpy/numpy#26656) fixed in 2.0.1       @rn   g     ?g      ?r   r   r   N)r   __version__rb   r   r   r   r   r*   r+   r'   r   )rg   r   rh   r.   r/   r2   r   s   &&&    r3   test_transitionTestQuantile.test_transition!  s     **r~~/GKKOPIIb

+IIa'*nnRZZ]BJJqM&Ikk!V5F5Fs5K5KvbzQWXZZ::Z>?r5   zero_weightsc           
     l   \        V4      '       d0   VP                  R 8  d   V'       d   \        P                  ! R4       \	        V4      p\
        P                  P                  R4      pRpVP                  ^dR7      pVP                  ^dR7      pV'       d   ^ WwR8  &   \
        P                  ! RRR4      p\        P                  ! VP                  WcR	7      VP                  WR	7      WRP                  WsR	7      R
7      p	\
        P                  ! WhWWR
7      p
\        WP                  WR	7      4       R# )z2.1.3z6`Bug in np.quantile (numpy/numpy#27563) fixed in 2.1.3   z-\"}	inverted_cdfr   r   r   r   i,  rn   )r   rR   N)r	   r   rb   r   r   r   r   r   linspacer   r*   r+   r   )rg   r   rh   rm   ry   r   r.   rR   r/   r2   r   s   &&&        r3   test_weights_against_numpy'TestQuantile.test_weights_against_numpy/  s    B<<BNNW4KKPQ $ii##$56JJCJ **#*&%&GcM"KKB$nnRZZZ7A9S$*JJwJ4TVkk!v?ZZZ9:r5   c           	     X   \         P                  P                  R 4      p^dpVP                  VP                  VR7      4      p\	        V4      pVP                  VP                  VR7      4      pVP                  VP                  VR7      R8  4      pVP                  VP                  VR7      4      p	VP                  VRV	4      p	\        P                  ! WWWR7      p
\        P                  ! WX( ,          WyV( ,          VR7      p\        W4       \        WV4       R	pVP                  VP                  VR7      4      p\	        V4      pVP                  VP                  VR7      4      pVP                  VP                  VR7      R8  4      pVP                  VP                  VR7      4      p	VP                  WP                  V4      pVP                  VRV	4      p\        P                  ! WWWR
R7      p
\        P                  ! WV	RVR
R7      p\        W4       \        WV4       R# )r   r   皙?r   rY   )rR   r   rE   r   )rR   r0   r   rE   N)r   d   rF   )r   r   r   r+   r   wherer   r*   r   r   r-   )rg   r   rh   ry   r@   r.   x0r/   i_zerorR   r2   r   rs   x_nannedweights_zeroeds   &&&            r3   test_zero_weightsTestQuantile.test_zero_weights@  s   
 ii##$56 JJszzqz)*QZJJszzqz)*CJJAJ.45**SZZQZ/0((62w/nnQ7BnnQwZVG4DVT! JJszzuz-.QZJJszzuz-.CJJEJ2S89**SZZUZ3488FFFA.&"g6nnQ>rRnnX'(.vBH!r5   rs   c                `   \         P                  P                  R 4      pVP                  VP                  VR7      4      pVP                  VP                  VR7      4      pVP	                  V4      p\
        P                  ! WVWqR7      p\
        P                  ! WVVR7      p	\        W4       R# )l   .,+r   rY   r   N)r   r   r   r+   	ones_liker   r*   r   )
rg   r   rs   rh   ry   r.   r/   rR   r2   r   s
   &&&&      r3   test_unity_weightsTestQuantile.test_unity_weightsc  s     ii##$56JJszzuz-.JJszzuz-.,,q/nnQ7BnnQ&1!r5   c                   \        R RR7      pVP                  VP                  VP                  VP                  .VP                  ^^..4      p\        P                  ! VR3/ VBRR/B p\        WAP                  VP                  R.4      4       \        P                  ! VR3/ VBRR/B p\        WAP                  VP                  VP                  .4      4       R# )	r   r   rE   r   r0   r         @r   NrF   )r   r+   r-   r   r*   r   )rg   rh   r   r.   r2   s   &&   r3   "test_all_nan_harrell_davis_gh24707/TestQuantile.test_all_nan_harrell_davis_gh24707s  s     _26JJ02661a.ABnnQAvA&AZZ67nnQFvF+FZZ(89:r5    )r   averaged_inverted_cdfr   hazeninterpolated_inverted_cdflinearmedian_unbiasednormal_unbiasedweibullr   r8   r9   r:   _lower_higher	_midpoint_nearestrF   ))r   NrF   )r   r   rF   )r   )r^   r_   rF   ))r   r^   Nr   )r   r   r   )r   r   r8   r]   r   rC   r   r_   r_   r_         ?r         ?g      ?r   g      
@)r   rC   r^   )r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )2   r_   )__name__
__module____qualname____firstlineno__rj   r~   skip_xp_backendsrb   markparametrizer   filterwarningsr   r   r   r-   fullr   r   reshaper   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r3   rM   rM   K   sH    3Fl& t,M"(+[[X
89 [[5LN[[Y6; 7N9+;2 [[ GHt,M"(+!68[[VaV,[[Z%7[[\+JK[[Wy)&<=[[X'ST[[Y64; 7 U > L 8 -8 I4;l1 [[0
c2662	
b!QRVV,rvvq!RVVRVV.Lb	Q
RR	 FFA;-rvvqkL&+A	Br(CBFF+fb\	:r(C$&!Z)G	Hr(C&)FAz4+H	I
sCj"''!RVV,b	1
))Ar

"
"9
-sseWI4T
*
,q6Aq6
-0A/B4T
*
,	""#"" [[VY/[[Z%7- 8 0- [[X	78	@8	@ [[^eT];; <;  [[X		> [[ GH[[X	 [[Wr7m4" 5	 I" t,M"(+!68;8;r5   rM   c                 2    \         P                  ! WVR 7      # )side)r   searchsorted)avr  s   &&&r3   np_searchsortedr    s    ??1d++r5   c            	       p  a  ] tR tRt o ]P
                  P                  RRR.4      ]P
                  P                  RRR.4      ]P
                  P                  R. RO4      ]P
                  P                  R	RR.4      ]P
                  P                  R
RR.4      R 4       4       4       4       4       tRtV t	R# )Test_XPSearchsortedi  r  leftrighttiesFTrs   nans_xinfs_xc                   V'       d(   \        V4      '       d   \        P                  ! R 4       \        P                  P                  R4      pV'       d   VP                  ^VR7      pMVP	                  V4      p\        P                  ! V\        P                  R7      p\        P                  ! V\        P                  4      p	\        P                  ! V\        P                  ) 4      p
\        P                  ! \        P                  ) \        P                  \        P                  .4      p\        P                  ! WP                  RR	 R
,           4      pVP                  \        P                  ! WW3R	R7      R	R7      pV'       d'   VP	                  V4      R8  p\        P                  W&   V'       dN   VP	                  V4      R8  p\        P                  ) W&   VP	                  V4      R8  p\        P                  W&   \        P                   ! VR	R7      p\        P                  ! V\        P"                  R7      \        P                  ! V\        P"                  R7      rVP                  ^4      P$                  p\'        V4      ^ 8X  dd   VP(                  ^ 8  dS   VP                  R	,          ^ 8w  d;   VP+                  VP                  RR	 VP                  R	,          3,           VR7      pMVP                  \-        WVR7      VR7      pVP                  V4      VP                  V4      r\/        WVR7      p\1        VV4       R# )ztorch sorts NaNs differentlyl   %Dg hr   rn   NrD   r   g?r  rF   )r_   )r
   rb   r   r   r   r   rr   r+   r   	nextafterinfr-   broadcast_tors   ru   concatenater)   r   rm   r   rp   emptyr  r   r   )rg   r  r  rs   r  r  rh   ry   r.   xrxlr|   r?   r   xp_default_intr   r2   s   &&&&&&&          r3   test_ndTest_XPSearchsorted.test_nd  s2    hrllKK67ii##$67QU+A

5!AJJq

+\\!RVV$\\!bffW%ZZ"&&"&&"&&12__R"!45LLbALK::e$s*DffAG::e$s*DvvgAG::e$s*DffAGGGABzz!2::.

1BJJ0O1A,,1:?qvvzaggbkQ.>((1773B<1772;.8(OC**_Q=^*TCzz!}bjjm1q$/S!r5   r   N)r   rC   r^   r      i  i'  )r^   r   )r   r^   r^   r   r^   r_   r  )
r   r   r   r   rb   r   r   r  r  r  r  s   @r3   r  r    s     [[Vfg%67[[VeT]3[[W 'L M[[Xt}5[[Xt}5 " 6 6M 4 8 "r5   r  c                    \         P                  ! V 4      pVR 8X  dB   \         P                  ! V4      '       d&   \         P                  ! V\         P                  4      # VR8X  d
   W( ,          p \
        P                  ! WRVR7      # )r   r   T)rJ   r   )r   r    r,   r#   r-   r   estimated_cdf)r.   r?   r0   r   i_nans   &&&& r3   !estimated_cdf_reference_last_axisr%    s^    HHQKE[ RVVE]]||Arvv&&	v	fIqd6BBr5   rE   r0   r   rJ   r   r   c                   \        W3VR 7      w  r\        P                  ! WR4      \        P                  ! WR4      r\        WW54      p\        P                  ! VRV4      pV'       g   \        P                  ! WbR 7      pV# )rD   rF   )r   r   rG   r%  rI   )r.   r?   rE   r0   rJ   r   r2   s   &&$$$$ r3   estimated_cdf_referencer'    sc    aV$/DA;;q#R[["%=q
+A*
EC
++c2t
$Cjj(Jr5   c                   	  a  ] tR tRt o R t]P                  P                  R]4      ]P                  P                  R. R4O4      ]P                  P                  RR^.4      ]P                  P                  RRR	.4      R
 4       4       4       4       t	]P                  P                  R4      ]P                  P                  R^ ^.4      ]P                  P                  RRR	.4      ]P                  P                  R. R5O4      ]P                  P                  RRR.4      ]P                  P                  RRR	.4      ]P                  P                  RRR.4      R 4       4       4       4       4       4       4       t]P                  P                  RRR7      ]P                  P                  R^2R.4      ]P                  P                  R]P                  ! 4       4      R 4       4       4       t]P                  P                  RRR	.4      R  4       tR! t]P                  P                  R. R5O4      ]P                  P                  R]4      R" 4       4       t]P                  P                  RRR.4      ]P                  P                  R]4      R# 4       4       t]P                  P                  R$. R%]P*                  / 3. R6OR&R']P*                  .R(R)]P*                  ./ 3. R6O. . / 3]P*                  ^..^]P*                  R%.RRRR*/3. . .R%]P,                  ! ^]P*                  4      RR7/3. . .R%]P.                  ! R84      R^ RR/3. . .R%]P.                  ! R94      R^ RR	/3. R%R+.]P,                  ! ^]P*                  4      / 3]P0                  ! ^^4      P3                  R:4      R,R%...RRRR	/3^^.^^... R;O. R<O.RRRR	/3. R6O]P4                  ) ]P4                  .R(R)./ 3]P4                  ) R7^ ^]P4                  .]P4                  ) R=R7^ ^^]P4                  .R-R-R-R%R.R.]P*                  .RR/3]P4                  ) R7^ ^]P4                  .]P4                  ) R=R7^ ^^]P4                  .. R>ORR/3.4      R/ 4       t]P                  P                  R0R1R7      ]P                  P                  R]P:                  ! 4       4      R2 4       4       tR3tV t R# )?TestEstimatedCDFi  c           	     :   VP                  . RO4      pVP                  ^4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! VP                  RR.4      V4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        P
                  ! VP                  R^.4      V4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W!P                  R^.4      4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#R	R
7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#RR
7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#^R
7       RRR4       \        V4      '       ge   Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! VP                  VP                  ^^.4      VRR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#RR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W#^*R7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! W!P                  R	R.4      RR7       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELi; i  + '       g   i     EL6; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELq; i  + '       g   i     EL>; i  + '       g   i     EL; i  + '       g   i     R# ; i)rC   rO   rP   TFNy              ?z`y` must have real dtype.rS   r   rD   rT   rU   rV   rW   zmethod` must be one of...rX   r   rZ   r[   zD`keepdims` may be False only if the length of `y` along `axis` is 1.r\   r]   r`   ra   )r+   rb   rc   rd   r   r#  r   r-   )rg   rh   r.   r?   ri   s   &&   r3   rj   &TestEstimatedCDF.test_input_validation  s   JJy!JJqM-]]:W55

D%= 91= 6]]:&&

D!9 5q9 ' .]]:W55::tQi#89 6 7]]:W553/ 6]]:W5573 6 L]]:W551- 6 bzz5Gz99##BJJ1~$>gV : .]]:W55X6 6 D]]:W55r2 6 Y]]:W55::sCj#9EJ 65C 655&&& 655 655555 655
 :99 655 655 655sx   )M)M)5(M=NN%N9/6OO!O5!*P	M&	)M:	=N	N"	%N6	9O
	O	!O2	5P		P	r   x_shapey_shapeNr  FTc                   V\         9   p\        V4      p\        P                  P	                  R 4      pVf   TMTpV'       d&   VP                  VP                  ^	VR7      VR7      p	M#VP                  VP                  VR7      VR7      p	VP                  VP                  VR7      VR7      p
\        P                  ! WVRR7      p\        P                  ! WVRR7      pVP                  V
. V	P                  RR OVP                  R,          N54      pV'       d
   VR,
          MTp\        P                  ! WVRR7      pWuP                  8X  d   RMRp\        WVR7       V'       g	   V'       d   R# \        V,          w  ppV	P                  R,          p^V,
          V^,           V,
          V,
          ,          pVV,
          V^,           V,
          V,
          ,          pWP!                  V	RR	R
7      8  pWP#                  V	RR	R
7      8  pVV8*  V( ,          pVV8  V( ,          pVV,          V,          V,          ( p\        VV,          VV,          4       \%        RRR	R7      p\        VV,          VP                  V4      3/ VB  \        VV,          VP                  V4      3/ VB  \        VV,          VP                  R4      3/ VB  \        VV,          VP                  R4      3/ VB  R# )l   S9UP+Nr   rn   r   gư>gh㈵>g-q=)atolTr   F)check_shapecheck_dtypecheck_0dr   r   rF   )r   r   r   r   r   r+   rr   standard_normalr   r*   r#  r  rs   r   r   r   minmaxr   )rg   r   r,  r-  r  rh   discontinuousrm   ry   r.   r/   r?   r2   r   y2r/  r
  br@   p_minp_max
i_very_lowi_very_highi_lowi_highi_okr   s   &&&&&&                     r3   test_against_quantile&TestEstimatedCDF.test_against_quantile  sx   
 "FF $ii##$67$_''

3<<<8
FA

3..G.<E
JAJJszzwz/uJ=NN1R8!!!vB?ooa!=1773B<!=!=> *cDjs^^A6;

*tD) = 181GGBKQ1q519q=)Q1q519q=)T::
&&d&;;*,,;,.*,{:; 	D	3t9- %UTJE
BJJu$5@@FRZZ%6A&AJCCFCK("**S/DVDr5   r   rE   rJ   r0   r   r   rm   r   r   nansmethr   r   c                   \        V4      '       d   VR 8X  d   \        P                  ! R4       \        P                  P                  R4      pRp	VP                  V	R7      P                  V4      p
VP                  V	R7      P                  V4      pRpV'       dF   VP	                  V	R7      R8  p\        P                  ! V4      '       g   Q h\        P                  W&   V'       g   \        P                  ! WRR7      p\        Wt4      pVR 8X  d   \        '       g   \        P                  ! R4       \        P                  ! R 4      p\        WVR	7      pVP                  V4      pVP!                  WR
7      p\"        P$                  ! VVP!                  V4      3/ VB p\'        W3RR/VB p\)        VP*                  VP!                  VVR7      4       R# \        WW6R7      p\"        P$                  ! VP!                  V
4      VP!                  V4      3/ VB p\'        W3/ VB p\)        VVP!                  VVR7      4       R# )r   r   r   r   Nr   Tr   r   r   r   r0   r   rn   r   r   )r   rb   r   r   r   r   r3  re   r,   r-   r   r   r   r   r   r   r+   r   r#  r'  r   r&   )rg   rE   rJ   r0   rm   rB  rC  rh   ry   rs   r.   r?   r   r   r   r   r   r2   r   s   &&&&&&&&           r3   r   'TestEstimatedCDF.test_against_reference1  s    "::*0KKBCii##$56U+2259U+2259::5:)C/D66$<<<ffAGt4A"!"?KL((2FttDF''+C;;q;,D%%dCKKNEfEC)!L6LVLCCHHbjjEj&BC4!+:!!"**Q-AI&I%a5f5RZZ5Z9:r5   torchzissues with sorting NaNs)r   r@   i  z
method, abc                t   Vw  rV\         P                  P                  R 4      pVP                  V4      pVP                  V4      R8  p	\         P                  W&   VP                  V	4      p	\         P                  P                  V4      p
\        P                  P                  WV4      pVP                  VP                  4      pVP                  V4      p\        P                  ! WRVR7      p\        W( ,          W( ,          4       VP                  VP                  W,          4      4      '       g   Q hR# )l   \H|;r   r   )r0   r   N)r   r   r   r3  r-   r+   mamasked_invalidr   r$   plotting_positionsr&   r#  r   allr    )rg   r@   r   abrh   r
  r8  ry   r.   r   x_maskedr   r2   s   &&&&&        r3   test_plotting_positions(TestEstimatedCDF.test_plotting_positions]  s     ii##$67"zz!}s"&&zz$55''*ll--h1=jj"JJqM!!!6&IE
CJ/vvbhhsy)****r5   c                   \         P                  P                  R 4      p^2p\        V4      pV'       d   VP	                  ^
VR7      MVP                  VR7      pV'       d   VP	                  ^
^R7      MVP                  ^R7      p\        P                  ! V4      P                  P                  V4      p\        P                  ! WgR4      p	VP                  WeR7      VP                  WuR7      rv\        P                  ! WgRR7      p
VP                  WR7      VP                  WR7      r\        W4       \        W^d,          4       R# )l   mKJ^r   weakrn   r   r   N)r   r   r   r   rr   r3  r   ecdfcdfevaluatepercentileofscorer+   r#  r   )rg   r  rh   ry   r@   rm   r.   r?   r   ref2r2   s   &&&        r3   #test_against_ecdf_percentileofscore4TestEstimatedCDF.test_against_ecdf_percentileofscores  s    ii##$67 $(,CLL!L$#2E2E12E2M)-CLL"L%33F3FB3F3Ojjm((+&&qV4zz!z)2::a:+E1!!!~>JJsJ0"**T*2OT!CZ(r5   c                    VP                  ^
VP                  R7      p\        P                  ! W"4      pVP                  \        V4      8X  g   Q hR# )r   rn   N)r   r   r   r#  rm   r   )rg   rh   r.   r2   s   &&  r3   r   0TestEstimatedCDF.test_integer_input_output_dtype  s@    IIbI)!!!'yy,R0000r5   c           	        V\         9   pVP                  R 4      pVP                  . RO4      p\        V4      '       d   \        P                  ! R4      MVP                  R4      p\        P
                  ! RRR7      ;_uu_ 4        V'       d   VP                  . RO4      pMN\        V,          w  rVP                  \        Wy,
          V^,           V	,
          V
,
          ,          4      RR.4      pRRR4       VR8X  d   VR,          pRR/pMVR	8X  d<   \        P                  ! V4      R
,          P                  VP                  4      pRR	/pMVR8X  d   \        V4      '       d   \        P                  ! R4       \        '       g   \        P                  ! R4       \        P                   ! R4      pVP#                  V4      pVR8  pVP                  W^R7      pVP                  V4      p/ p\        P
                  ! RRR7      ;_uu_ 4        \$        P&                  ! WV3RV/XB pRRR4       VR8X  d   XP(                  MXp\+        VX4       R#   + '       g   i     ELn; i  + '       g   i     LG; i)      $@r   r   ignoredivideinvalidNr   :NrC   Nr0   r   r   r   (JAX currently incompatible with `marray`r   r   r   r   g      r   )r   r   r   )r   r   r+   r   r   errstater   floatxpxatsetr-   r   rb   r   r   r   r   r   r#  r&   r   )rg   r0   r   rh   r6  r.   r?   r@   r   r
  r8  r   r   r   r   r2   s   &&&&            r3   test_size_one_sample%TestEstimatedCDF.test_size_one_sample  s    "FFIIcNJJ}%1"55BJJrN2::b>[[(;;jj.8@jj%1q519q=(A"BB!KL < $"A"K0F6!q	"!!"&&)A"F+F8#bzzFG"?KL((2F''+CFDA)AAAF[[(;;%%aD6DVDC <$0chhcS!9 <;;2 <;s   A+II*I'	*I:	c                   VP                  R 4      pVP                  . RO4      pVP                  WSP                  4      pVR8X  d   VR,          pRR/pMVR8X  d<   \        P
                  ! V4      R,          P                  VP                  4      pRR/pMVR8X  d   \        '       g   \        P                  ! R4       \        V4      '       d   \        P                  ! R	4       \        P                  ! R4      pVP                  V4      p	VR8  p
V	P                  WJR
7      pV	P                  V4      p/ p\        P                  ! RRR7      ;_uu_ 4        \        P                   ! WE3RV/XB pRRR4       VR8X  d&   VP#                  XP$                  4      '       g   Q hR# \'        XV4       R#   + '       g   i     LJ; i)r\  r   r   :r   r   Nr0   r   r   r   r   ra  r   r]  r^  r   Nrb  )r   r+   r#   r-   re  rf  rg  r   rb   r   r   r   r   r   rc  r   r#  rK  r   r   )rg   r0   r   rh   r.   r?   r   r   r   r   r   r2   s   &&&&        r3   test_size_zero_sample&TestEstimatedCDF.test_size_zero_sample  s_    IIcNJJ}%ll1ff%$#A"K0F6!q	!  (A"F+F8#"?KLbzzFG((2F''+CGDA)AAAF[[(;;%%aD6DVDC < !66#((####C% <;s   F44G	zx, y, ref, kwargsr   g+?g5^I@r   r   r   r\   r   r   r   c                   VP                  R R4      R8X  d(   \        V4      '       d   \        P                  ! R4       VP                  RR4      R	8X  d(   \	        V4      '       d   \        P                  ! R4       \        V4      pVP                  V4      VP                  V4      VP                  W6R7      r2p\        P                  ! W3/ VB p\        WsRR7       R# )
r   Nr   zdata-apis/array-api-compat#360rE   zFails; need to investigate.rn   gV瞯<)rtolrF   )
getr
   rb   r   r   r   r+   r   r#  r   )rg   r.   r?   r   r   rh   r   r2   s   &&&&&&  r3   r    TestEstimatedCDF.test_edge_cases  s    > ::h%2x||KK89::fd#r)gbkkKK56(,JJqM2::a="**S*2Vc!!!1&1u-r5   r   z-1e-45 is not less than 0?c                   \         P                  ! R \         P                  R7      p\         P                  ! V\         P                  ) 4      \         P                  ! V\         P                  4      rTVR8X  d   RMRpV^,           V,           ^,          pRVR&   W6,           ^,          pRV^ &   VP                  V4      VP                  V4      VP                  V4      rTpVP                  V4      VP                  V4      rx\        \        P                  ! W3VR7      V4       \        \        P                  ! W5VR7      V4       \        \        P                  ! W4VR7      V4       R# )	r   rn   r   r   r   r   r   NrF   )	r   r   r   r  r  r+   r   r   r#  )	rg   r   rh   r.   r  r  offsetref_rref_ls	   &&&      r3   r    TestEstimatedCDF.test_transition  s    
 IIb

+a"&&)2<<266+BB"77SQ1$b	q aJJqM2::b>2::b>rzz%("**U*;u++A@%H++A&A5I++A&A5Ir5   r   )r^   r   r  r   i  r   r!  )r   r   r   r]   rF   r   r   r   r   r   r   )皙?rv  g?r\   r   r   r   )!r   r   r   r   rj   rb   r   r   _estimated_cdf_methods_listr@  r   r   r   r   itemsrN  rW  r   rh  rk  r   r-   r   r   r   r  r  r   r   keysr   r  r  r  s   @r3   r)  r)    s    'KR [[X'BC[[Y(ST[[Yr
3[[VeT]31E 4 4 U D1Ef [[ GH[[VaV,[[Z%7[[\+JK[[Wy)&<=[[VeT]3[[Vh%?@#; A 4 > L 8 - I#;J [[!!'2L!M[[S2s),[[\+L+R+R+TU+ V - N+& [[VeT]3) 4)1
 [[\+JK[[X'BC!" D L!"H [[\K+@A[[X'BC& D B&> [[0
c2662	
eUBFF+b"bff-=r	B
RR	 FFA;-RVVSML&(I+V	Wr(CBFF+fb\	:r(C$&!Z)G	Hr(C&)FAz4+H	I
sCj"''!RVV,b	1
))Ar

"
"9
-sseWI4T
*
,q6Aq6
-0A/B4T
*
,
rvvgrvv&c
B	7 FF7B1bff
%RAq"&&'ItS4rvv
6(8K
MFF7B1bff
%RAq"&&'I
,x.H
J5	
<.=<. [[!!+6R!S[[X'K'P'P'RSJ T TJr5   r)  )r.   rC   )r/   rC   )r
  rC   )r  rC   )r?   rC   )2rb   numpyr   scipyr   scipy.stats._quantiler   r   r   r   scipy._lib._array_apir   r	   r
   r   r   r   r   r   r   r   scipy._lib._array_api_no_0dr   r   scipy._lib._utilr   scipy._external.array_api_extra	_externalarray_api_extrare  scipy.stats._axis_nan_policyr   r   r   lazy_xp_modulesr4   	vectorizer(   rK   r*   rM   r  r  r%  r'  sortedlistrw  r#  r)  r   r5   r3   <module>r     so     M M   I . - - :;;// '8X& '. 1v
 
 5>>"w; w; #w;t	 8X&, ', #$'" '" %'"T 8X&C 'C!  !%.6 %T*@%AB  5&&'vJ vJ (vJr5   