
    e!h$                         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y)    N)stats   )_get_pvalue	_rankdata_SimpleNormal)
_morestats)_broadcast_arrays)_get_wilcoxon_distr)
_lazywhere_get_nanc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)WilcoxonDistributionc                     t        j                  |      j                  t        d      }|| _        t        j
                  |      D ci c]  }|t        |       c}| _        y c c}w )NFcopy)npasarrayastypeintnuniquer
   _dists)selfr   nis      ]/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/stats/_wilcoxon.py__init__zWilcoxonDistribution.__init__   sN    JJqM  5 1=?YYq\Jrr.r22JJs   	A%c                 L    | j                   |   }|d |dz    j                         S Nr   r   sumr   kr   pmfss       r   _cdf1zWilcoxonDistribution._cdf1   s(    {{1~FQU|!!    c                 \     t        j                  | j                  t        g      ||      S N)otypes)r   	vectorizer$   floatr   r"   r   s      r   _cdfzWilcoxonDistribution._cdf   s"    7r||DJJw71==r%   c                 F    | j                   |   }||d  j                         S )Nr   r!   s       r   _sf1zWilcoxonDistribution._sf1   s!    {{1~ABx||~r%   c                 \     t        j                  | j                  t        g      ||      S r'   )r   r)   r.   r*   r+   s      r   _sfzWilcoxonDistribution._sf   s"    6r||DIIug6q!<<r%   c                 @    | j                   | j                   dz   z  dz  S )Nr      )r   )r   s    r   meanzWilcoxonDistribution.mean    s    vv!$q((r%   c                     t        j                  |      j                  t        d      }| j	                         }t        j
                  |j                  t         j                        }|||fS )NFr   )dtype)r   r   r   r   r3   emptyshapefloat64r   r"   mnouts       r   _prepzWilcoxonDistribution._prep#   sN    JJqM  5 1YY[hhqwwbjj1"czr%   c                       j                  |      \  }}}t        ||k  | j                  f j                   fd      d   S )Nc                 4    dj                  | dz   |      z
  S r   )r0   r"   r   r   s     r   <lambda>z*WilcoxonDistribution.cdf.<locals>.<lambda>,   s    !dhhqsA.>*> r%   f2 )r<   r   r   r,   r9   s   `   r   cdfzWilcoxonDistribution.cdf)   sG    ZZ]
2s!r'Atvv;		>@@BD 	Dr%   c                       j                  |      \  }}}t        ||k  | j                  f j                   fd      d   S )Nc                 4    dj                  | dz
  |      z
  S r   )r,   r?   s     r   r@   z)WilcoxonDistribution.sf.<locals>.<lambda>1   s    !dii!Q.?*? r%   rA   rC   )r<   r   r   r0   r9   s   `   r   sfzWilcoxonDistribution.sf.   sG    ZZ]
2s!r'Atvv;?AACE 	Er%   N)__name__
__module____qualname__r   r$   r,   r.   r0   r3   r<   rD   rG   rC   r%   r   r   r      s2    K
">=)D
Er%   r   c                    t        j                  |      d   }d}t        j                  |j                  t         j                        r|j
                  dk7  rt        |      d}	 |t        j                  |       } | }nt        | |f|      \  } }| |z
  }t        j                  ||d      }d}|*| j                  |   |j                  |   k7  rt        |      d}t        j                  |j                  t         j                        r|j                  t         j                        }t        j                  |j                  t         j                        st        |      t        |      j                         }h d	}
d
|
 d}||
vrt        |      ddh}d| d}||vrt        |      t        |      j                         }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kD  rd}||||||||fS # t         j                  $ r}	t        |      |	d }	~	ww xY w)NrC   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`.rX   rV   2   )r   r   
issubdtyper5   integerndim
ValueErrorr	   moveaxis	AxisErrorr7   r   r8   floatingstrlower
isinstancer   PermutationMethodr    )xyzero_method
correctionalternativemethodrM   messagedezero_methodscorrectionsalternativesmethodsoutput_zn_zeros                   r   _wilcoxon_ivrt   4   sa   ::dBD*G==RZZ0DIIN!!LG	)9

1AA$aV$7DAqAAKK4$ DG}!''$-7!!LG	}}QWWbjj)HHRZZ =="++.!!k"((*K0L-l^1=G,&!!-K,[M;G$!!k"((*K3L-l^1=G,&!!fe5561-gY 7? ? W%%-t5H
 VVAF^FAGGBK",k:{FD(FRR[ << )!q()s   &AI I<+I77I<c                    | dk(  }|dk(  r2| j                   d   s| j                         } t        j                  | |<   t        j                  |       }t        j
                  |d      }| j                  d   |z
  }t        t        |       dd      \  }}t        j
                  | dkD  |z  d      }	t        j
                  | dk  |z  d      }
|dk(  j                         }|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(  rK|j                  d      }|||dz   z  dz  z  }|||dz   z  d|z  dz   z  z  }d||j                  d      df<   |dz  |z
  j                  d      }||d
z  z  }t        j                  |dz        }|dv r	|	|z
  |z  }nt        j                  }|	|
||||fS )Nr   rP   	WRITEABLErN   rL   averageT)return_tiesrQ      g      ?g      ?g       @rO         )rX   rV   )flagsr   r   nanisnanr    r7   r   absanysqrt)rl   rj   rg   i_zerosi_nann_nancountrtr_plusr_minushas_tiesr_zero_2r:   sers   tie_correctzs                     r   _wilcoxon_statisticr   t   s   AvGh ww{#AVV'
HHQKEFF5r"EGGBK%ESVYD9DAqVVQUaKb)Fffa!eq[r*GQ||~Hh 66'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FF7B5(22r%   c                 D    |dk(  ry|dk(  ryt        j                  |       S )NrT   r   rS   rN   )r   sign)r   ri   s     r   _correction_signr      s&    i		wwqzr%   c           	         t        | ||||      }|\  }}}}}	}
|j                  dk(  r0t        |      }t        j                  ||      }dk(  r||_        |S t        |      \  }}}}}}dk(  r3|s|
dkD  sdn)|j                  d   dk  rt        j                         nddk(  r6|rt        ||      }||dz  |z  z  }t        |t               |t        	      }ndk(  rt        |      }|d
k(  r%|j                  t        j                   |            }n|dk(  r%|j#                  t        j$                  |            }ndt        j&                  |j#                  t        j$                  |            |j                  t        j                   |                  z  }t        j(                  |dd      }n;t        j*                  |ffdfddij-                         |ddj.                  }|dk(  rt        j&                  ||      n|}|dk(  rdk(  rt        j0                  |       n|}t        j                  ||d         }|	r
|d   |_        |S )Nr   )	statisticpvaluerX   rV   rW   rN      g      ?)xprS   rT   ry   r   c                 $    t        |       d   S )Nr   )r   )rl   rj   rg   s    r   r@   z_wilcoxon_nd.<locals>.<lambda>   s    /6;GJ r%   permutation_typesamples)ri   rM   rU   rC   )rt   sizer   r   WilcoxonResult
zstatisticr   r7   r   rd   r   r   r   r   r   rD   ceilrG   floorminimumclippermutation_test_asdictr   r   )re   rf   rg   rh   ri   rj   rM   temprl   rr   rs   NaNresr   r   r   r   r   r   r   pdistr   s     `  `                 r   _wilcoxon_ndr      sL    1k:{FDQDNRKA{JVT8Vvv{qk''#cB\! CN
.A	6;/+FGRE8 FQJFWWR[B
 ,,.F "F#A{3Db A=?KB?	7	#E* & )AI%()ABJJtwwrxx'78#xx8: :A1a A""DJ.&.*0..*:. $". /5f 	
 0;K/G

67+VI"k1f6L
STA

#
#i"
FC2Jr%   )rP   )NrP   TrU   rV   r   )numpyr   scipyr   	_stats_pyr   r   r    r   _axis_nan_policyr	   
_hypotestsr
   scipy._lib._utilr   r   r   rt   r   r   r   rC   r%   r   <module>r      sK      < <  / + 1&E &ER=S@<3~ >B>?Gr%   