
    _Mh$                         d dl Zd dlm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mZ  G d	 d
          Zd ZddZd Z	 	 ddZdS )    N)stats   )_get_pvalue	_rankdata_SimpleNormal)
_morestats)_broadcast_arrays_get_wilcoxon_distr)
_lazywhere_get_nanc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )WilcoxonDistributionc                     t          j        |                              t          d          }|| _        d t          j        |          D             | _        d S )NFcopyc                 .    i | ]}|t          |          S  r
   ).0nis     U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/stats/_wilcoxon.py
<dictcomp>z1WilcoxonDistribution.__init__.<locals>.<dictcomp>   s#    JJJrr.r22JJJ    )npasarrayastypeintnunique_dists)selfr   s     r   __init__zWilcoxonDistribution.__init__   sJ    JqMM  5 11JJRYq\\JJJr   c                 Z    | j         |         }|d |dz                                            S Nr   r    sumr!   kr   pmfss       r   _cdf1zWilcoxonDistribution._cdf1   s+    {1~FQUF|!!!r   c                 X     t          j        | j        t          g          ||          S N)otypes)r   	vectorizer*   floatr!   r(   r   s      r   _cdfzWilcoxonDistribution._cdf   s'    7r|DJw7771===r   c                 T    | j         |         }||d                                          S )Nr%   r'   s       r   _sf1zWilcoxonDistribution._sf1   s#    {1~ABBx||~~r   c                 X     t          j        | j        t          g          ||          S r,   )r   r.   r3   r/   r0   s      r   _sfzWilcoxonDistribution._sf   s'    6r|DIug666q!<<<r   c                 ,    | j         | j         dz   z  dz  S )Nr      )r   )r!   s    r   meanzWilcoxonDistribution.mean    s    v!$q((r   c                     t          j        |                              t          d          }|                                 }t          j        |j        t           j                  }|||fS )NFr   )dtype)r   r   r   r   r8   emptyshapefloat64r!   r(   mnouts       r   _prepzWilcoxonDistribution._prep#   sS    JqMM  5 11YY[[hqwbj111"czr   c                                            |          \  }}}t          ||k    | j        f j         fd          d         S )Nc                 <    d                     | dz   |          z
  S r$   )r5   r(   r   r!   s     r   <lambda>z*WilcoxonDistribution.cdf.<locals>.<lambda>,   s    !dhhqsA.>.>*> r   f2r   )rA   r   r   r1   r>   s   `   r   cdfzWilcoxonDistribution.cdf)   sZ    ZZ]]
2s!r'Atv;	>>>>@ @ @@BD 	Dr   c                                            |          \  }}}t          ||k    | j        f j         fd          d         S )Nc                 <    d                     | dz
  |          z
  S r$   )r1   rD   s     r   rE   z)WilcoxonDistribution.sf.<locals>.<lambda>1   s    !dii!Q.?.?*? r   rF   r   )rA   r   r   r5   r>   s   `   r   sfzWilcoxonDistribution.sf.   sZ    ZZ]]
2s!r'Atv;????A A AACE 	Er   N)__name__
__module____qualname__r"   r*   r1   r3   r5   r8   rA   rH   rK   r   r   r   r   r      s        K K K
" " "> > >  = = =) ) )  D D D
E E E E Er   r   c                    t          j        |          d         }d}t          j        |j        t           j                  r|j        dk    rt          |          d}	 |t          j        |           } | }nt          | |f|          \  } }| |z
  }t          j        ||d          }n'# t           j	        $ r}	t          |          |	d }	~	ww xY wd}|+| j
        |         |j
        |         k    rt          |          d}t          j        |j        t           j                  r|                    t           j                  }t          j        |j        t           j                  st          |          t          |                                          }h d	}
d
|
 d}||
vrt          |          ddh}d| d}||vrt          |          t          |                                          }h d}d| d}||vrt          |          t!          |t"          j                  sh d}d| d}||vrt          |          |dk    rdnd}t          j        |dk              }|dk    r|j
        d         dk    rd}||||||||fS )Nr   z`axis` must be an integer.r   z<`axis` must be compatible with the shape(s) of `x` (and `y`)axisz3`x` and `y` must have the same length along `axis`.z<`x` (and `y`, if provided) must be an array of real numbers.>   prattwilcoxzsplitz`zero_method` must be one of .TFz`correction` must be one of >   lessgreater	two-sidedz`alternative` must be one of >   autoexact
asymptoticz`method` must be one of z- or an instance of `stats.PermutationMethod`.r\   rZ   2   )r   r   
issubdtyper:   integerndim
ValueErrorr	   moveaxis	AxisErrorr<   r   r=   floatingstrlower
isinstancer   PermutationMethodr&   )xyzero_method
correctionalternativemethodrQ   messagedezero_methodscorrectionsalternativesmethodsoutput_zn_zeros                   r   _wilcoxon_ivrx   4   s   :dBD*G=RZ00 "DINN!!!LG	)9
1AAA$aV$777DAqAAK4$$< ) ) )!!q() DG}!'$-77!!!LG	}QWbj)) !HHRZ  ="+.. "!!!k""((**K000L=l===G,&&!!!-K;[;;;G$$!!!k""((**K333L=l===G,&&!!!fe566 &111?g ? ? ?  W%%%--tt5H
 VAF^^FAGBK",,k:{FD(FRRs   A
B) )C8CCrT   c                    | dk    }|dk    r0| j         d         s|                                 } t          j        | |<   t          j        |           }t          j        |d          }| j        d         |z
  }t          t          |           dd          \  }}t          j        | dk    |z  d          }	t          j        | dk     |z  d          }
|dk    	                                }|d	k    r&t          j        ||z  d          d
z  }|	|z  }	|
|z  }
||dz   z  dz  }||dz   z  d|z  dz   z  }|dk    rS|                    d          }|||dz   z  dz  z  }|||dz   z  d|z  dz   z  z  }d||	                    d          df<   |dz  |z
                      d          }||d
z  z  }t          j
        |dz            }|dv r	|	|z
  |z  }nt          j        }|	|
||||fS )Nr   rT   	WRITEABLErR   rP   averageT)return_tiesrU      g      ?g      ?g       @rS         )r\   rZ   )flagsr   r   nanisnanr&   r<   r   absanysqrt)rp   rn   rk   i_zerosi_nann_nancountrtr_plusr_minushas_tiesr_zero_2r?   serw   tie_correctzs                     r   _wilcoxon_statisticr   t   s/   AvGh w{# 	AV'
HQKKEF5r"""EGBK%ESVVYD999DAqVQUaKb)))Ffa!eq[r***GQ||~~Hh 6'A+B///!3(8	%"*		$B	%"*	eb	1Bg "%%
f$t++
f$Vb(899 &''++2+


!"a4!8..b.))K+a-B	b		B '''b[BF7B5(22r   c                 J    |dk    rdS |dk    rdS t          j        |           S )NrX   r   rW   rR   )r   sign)r   rm   s     r   _correction_signr      s0    iq			rwqzzr   TrY   rZ   c           	         t          | ||||          }|\  }}}}}	}
|j        dk    r4t          |          }t          j        ||          }dk    r||_        |S t          |          \  }}}}}}dk    r2|s	|
dk    sdn'|j        d         dk    rt          j	                    nddk    rC|rt          ||          }||dz  |z  z  }t          |t                      |t          	          }n dk    rt          |          }|d
k    r(|                    t          j        |                    }n|dk    r(|                    t          j        |                    }ndt          j        |                    t          j        |                    |                    t          j        |                              z  }t          j        |dd          }n6t          j        |ffdfddi                                |ddj        }|dk    rt          j        ||          n|}|dk    rdk    rt          j        |           n|}t          j        ||d                   }|	r|d         |_        |S )Nr   )	statisticpvaluer\   rZ   r[   rR      g      ?)xprW   rX   r}   r   c                 2    t          |           d         S )Nr   )r   )rp   rn   rk   s    r   rE   z_wilcoxon_nd.<locals>.<lambda>   s    /6;GGJ r   permutation_typesamples)rm   rQ   rY   r   )rx   sizer   r   WilcoxonResult
zstatisticr   r<   r   rh   r   r   r   r   r   rH   ceilrK   floorminimumclippermutation_test_asdictr   r   )ri   rj   rk   rl   rm   rn   rQ   temprp   rv   rw   NaNresr   r   r   r   r   r   r   pdistr   s     `  `                 r   _wilcoxon_ndr      s    1k:{FDQQDNRKA{JVT8Vv{{qkk'#cBBB\!! CN
.A	6;/ /+FGRE8  	"FQJJFFWR[B
 ,..FF "F 	!#A{33Db A=??KB???	7		#E** &  ))AAI%%(())AABJtwwrx'7'788#xx88: : :A1a  AA"DJJJJJ. .&.*0..*:*:. $". . . . /5 	
 0;K/G/G
67+++VI"k11f6L6L

STA

#i"
F
F
FC 2Jr   )rT   )NrT   TrY   rZ   r   )numpyr   scipyr   	_stats_pyr   r   r    r   _axis_nan_policyr	   
_hypotestsr   scipy._lib._utilr   r   r   rx   r   r   r   r   r   r   <module>r      s$             < < < < < < < < < <       / / / / / / + + + + + + 1 1 1 1 1 1 1 1&E &E &E &E &E &E &E &ER=S =S =S@<3 <3 <3 <3~   >B>?G G G G G Gr   