
    tKgK                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlmZmZmZmZmZmZ dZ G d d      Z G d	 d
      Z G d d      Z G d d      Z G d d      Z G d d      Zy)    N)assert_)FuncData)
kolmogorovkolmogismirnovsmirnovi)_kolmogc	_kolmogci_kolmogp	_smirnovc
_smirnovci	_smirnovpg|=c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestSmirnovc                 p    t        t        j                  t        dt        j                                     y N   )r   npisnanr   nanselfs    g/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/tests/test_kolmogorov.pytest_nanzTestSmirnov.test_nan   s    BFF+,-    c                 8   g d}t        j                  |      }t        t        |ddt              j                  t        t        t        g       d|d d df   z
  |d d df<   t        t        |ddt              j                  t        t        t        g       y )N))r   皙??)r         ?      ?)   r         ?)   r         `?r   r   r!   rtoldtypesr   	r   asarrayr   r   _rtolcheckintfloatr   r   datasets     r   
test_basiczTestSmirnov.test_basic   s    6
 **W%Wfae	

%UE*%
+WQU^+2w	

%UE*%
+r   c                    t        j                  t        dd      t        dd            D cg c]  }|ddf	 }}t        j                  |      }t        t        |ddt              j                  t        t        t        g	       d|d d d
f   z
  |d d d
f<   t        t        |ddt              j                  t        t        t        g	       y c c}w )Nr!          r   r   r%   r&   r(   r*   	itertoolschainranger   r,   r   r   r-   r.   r/   r0   r   r   nr2   s      r   test_x_equals_0zTestSmirnov.test_x_equals_0"       &/ooeArlE$PTDU&VW&VAq!9&VW**W%Wfae	

%UE*%
+WQU^+2w	

%UE*%
+ X   Cc                    t        j                  t        dd      t        dd            D cg c]  }|ddf	 }}t        j                  |      }t        t        |ddt              j                  t        t        t        g	       d|d d d
f   z
  |d d d
f<   t        t        |ddt              j                  t        t        t        g	       y c c}w )Nr!   r5   r6   r7   r   r   r%   r&   r(   r*   r8   r<   s      r   test_x_equals_1zTestSmirnov.test_x_equals_1-   r?   r@   c                 8   g d}t        j                  |      }t        t        |ddt              j                  t        t        t        g       d|d d df   z
  |d d df<   t        t        |ddt              j                  t        t        t        g       y )N)
r         ?rE   )r!   rE         ?)r#   rE   g?UUUU?)   rE   g      ?)   rE   gy&1?)   rE   gEʠ?)   rE   g>?)   rE   g!?)	   rE   g+ˎ{?)
   rE   g4o?r%   r!   r&   r(   r   r*   r+   r1   s     r   test_x_equals_0point5z!TestSmirnov.test_x_equals_0point58   s    	+ **W%Wfae	

%UE*%
+WQU^+2w	

%UE*%
+r   c                    t        j                  dddd      }t        j                  dgt        |      z  |d|z
  g      }t	        t
        |ddt              j                  t        t        t        g	       d|d d d
f   z
  |d d d
f<   t	        t        |ddt              j                  t        t        t        g	       y )Nr   r   e   Tendpointr%   r!   r&   r(   r*   )r   linspacecolumn_stacklenr   r   r-   r.   r/   r0   r   )r   xr2   s      r   test_n_equals_1zTestSmirnov.test_n_equals_1M   s    KK1cD1//A3s1v:q!A#"67Wfae	

%UE*%
+WQU^+2w	

%UE*%
+r   c                    t        j                  dddd      }t        j                  d|z
  d      }t        j                  dgt	        |      z        }t        j
                  |||g      }t        t        |ddt              j                  t        t        t        g	       d|d d d
f   z
  |d d d
f<   t        t        |ddt              j                  t        t        t        g	       y )NrE   r   rP   TrQ   r!   r%   r&   r(   r*   r   rS   powerarrayrU   rT   r   r   r-   r.   r/   r0   r   r   rV   pr=   r2   s        r   test_n_equals_2zTestSmirnov.test_n_equals_2X   s    KKQd3HHQqS!HHaS3q6\"//1a),Wfae	

%UE*%
+WQU^+2w	

%UE*%
+r   c                    t        j                  dddd      }t        j                  d|z
  d      }t        j                  dgt	        |      z        }t        j
                  |||g      }t        t        |ddt        	      j                  t        t        t        g
       d|d d df   z
  |d d df<   t        t        |ddt        	      j                  t        t        t        g
       y )Nffffff?r      TrQ   r#   r%   r!   r&   r(   r*   rY   r\   s        r   test_n_equals_3zTestSmirnov.test_n_equals_3e   s    KKQT2HHQqS!HHaS3q6\"//1a),Wfae	

%UE*%
+WQU^+2w	

%UE*%
+r   c           	          d}t        j                  t        ddd      D cg c]  }t        ||       c}      }t        j                  |      }t        t        j                  |dk        d|z         y c c}w )N皙?i  iL  r5   r   zNot all diffs negative %s)msg)r   r[   r;   r   diffr   all)r   rV   r=   pvalsdfss        r   test_n_largezTestSmirnov.test_n_larger   sg     sD"1EF1EA'!Q-1EFGggensax &AC&GH Gs   A7N)__name__
__module____qualname__r   r3   r>   rB   rN   rW   r^   rb   rj    r   r   r   r      s0    .,	,	,,*	,,,Ir   r   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestSmirnovic                 p    t        t        j                  t        dt        j                                     y r   )r   r   r   r   r   r   s    r   r   zTestSmirnovi.test_nan|   s    !RVV,-.r   c                 8   g d}t        j                  |      }t        t        |ddt              j                  t        t        t        g       d|d d df   z
  |d d df<   t        t        |ddt              j                  t        t        t        g       y )N))r   rd   333333?)r   rs   rd   )r   Gz?{Gz?)r   ru   rt   )r!   r"   r   )r#   r$   r   )rM   g      p=g      ?r%   r!   r&   r(   r   	r   r,   r   r   r-   r.   r/   r0   r   r1   s     r   r3   zTestSmirnovi.test_basic   s    7 **W%gvqu	

%UE*%
+GAqDM)1	

%UE*%
+r   c                    t        j                  t        dd      t        dd            D cg c]  }|ddf	 }}t        j                  |      }t        t        |ddt              j                  t        t        t        g	       d|d d df   z
  |d d df<   t        t        |ddt              j                  t        t        t        g	       y c c}w )
Nr!   r5   r6   r7   r   r   r%   r&   r(   r9   r:   r;   r   r,   r   r   r-   r.   r/   r0   r   r<   s      r   r>   zTestSmirnovi.test_x_equals_0       &/ooeArlE$PTDU&VW&VAq!9&VW**W%gvqu	

%UE*%
+GAqDM)1	

%UE*%
+ Xr@   c                    t        j                  t        dd      t        dd            D cg c]  }|ddf	 }}t        j                  |      }t        t        |ddt              j                  t        t        t        g	       d|d d df   z
  |d d df<   t        t        |ddt              j                  t        t        t        g	       y c c}w )
Nr!   r5   r6   r7   r   r   r%   r&   r(   rx   r<   s      r   rB   zTestSmirnovi.test_x_equals_1   ry   r@   c                    t        j                  dddd      }t        j                  dgt        |      z  |d|z
  g      }t	        t
        |ddt              j                  t        t        t        g	       d|d d df   z
  |d d df<   t	        t        |ddt              j                  t        t        t        g	       y )
Nr   r   rP   TrQ   r%   r!   r&   r(   )r   rS   rT   rU   r   r   r-   r.   r/   r0   r   )r   ppr2   s      r   rW   zTestSmirnovi.test_n_equals_1   s    [[AsT2//A3s2w;AbD"9:gvqu	

%UE*%
+GAqDM)1	

%UE*%
+r   c                    t        j                  dddd      }t        j                  d|z
  d      }t        j                  dgt	        |      z        }t        j
                  |||g      }t        t        |ddt              j                  t        t        t        g	       d|d d df   z
  |d d df<   t        t        |ddt              j                  t        t        t        g	       y )
NrE   r   rP   TrQ   r!   r%   r&   r(   r   rS   rZ   r[   rU   rT   r   r   r-   r.   r/   r0   r   r\   s        r   r^   zTestSmirnovi.test_n_equals_2   s    KKQd3HHQqS!HHaS3q6\"//1a),gvqu	

%UE*%
+GAqDM)1	

%UE*%
+r   c                    t        j                  dddd      }t        j                  d|z
  d      }t        j                  dgt	        |      z        }t        j
                  |||g      }t        t        |ddt        	      j                  t        t        t        g
       d|d d df   z
  |d d df<   t        t        |ddt        	      j                  t        t        t        g
       y )Nr`   r   ra   TrQ   r#   r%   r!   r&   r(   r~   r\   s        r   rb   zTestSmirnovi.test_n_equals_3   s    KKQT2HHQqS!HHaS3q6\"//1a),gvqu	

%UE*%
+GAqDM)1	

%UE*%
+r   c                    d }d }g d}t        j                  |      }t        ||ddt              j	                  t
        t        t        g       t        ||ddt              j	                  t
        t        t        g       y )Nc                 .    t        | t        | |            S N)r   r   r=   r]   s     r   _sm_smiz-TestSmirnovi.test_round_trip.<locals>._sm_smi   s    1hq!n--r   c                 .    t        | t        | |            S r   )r   r   r   s     r   	_smc_smciz/TestSmirnovi.test_round_trip.<locals>._smc_smci   s    Q
1a 011r   ))r   rd   rd   )r   rs   rs   )r!   r   r   )r#   r   r   )r#   r    r    )rM   +?r   )rM   -C6?r   r%   r!   r&   r(   )r   r,   r   r-   r.   r/   r0   )r   r   r   r2   s       r   test_round_tripzTestSmirnovi.test_round_trip   so    	.	2) **W%Wfae	

%UE*%
+w	

%UE*%
+r   c                 8   g d}t        j                  |      }t        t        |ddt              j                  t        t        t        g       d|d d df   z
  |d d df<   t        t        |ddt              j                  t        t        t        g       y )N)rD   )r!   rE   gwzl?)r!   rF   rE   )r#   rE   g<{?)rG   rE   gFwrZ?)rH   rE   g0 ?)rI   rE   g0@?)rJ   rE   g A?)rK   rE   g^CKf?)rL   rE   g޵&?)rM   rE   gL4J?r%   r!   r&   r(   r   rv   r1   s     r   rN   z"TestSmirnovi.test_x_equals_0point5   s    
- **W%gvqu	

%UE*%
+GAqDM)1	

%UE*%
+r   N)rk   rl   rm   r   r3   r>   rB   rW   r^   rb   r   rN   rn   r   r   rp   rp   {   s/    /,$	,	,
,,,,.,r   rp   c                       e Zd Zd Zd Zd Zd Zd Zej                  j                  ej                  dk  d      d	        Zy
)TestSmirnovpc                 p    t        t        j                  t        dt        j                                     y r   )r   r   r   r   r   r   s    r   r   zTestSmirnovp.test_nan   s    1bff-./r   c                 8   t        j                  dd      }t        j                  |t        j                  |d      t        j                  |d      g      }t	        t
        |ddt              j                  t        t        t        g       t        j                  dd      }t        j                  |t        j                  |d	      t        j                  |d      g      }t	        t
        |ddt              j                  t        t        t        g       y )
Nr   rM   r   r*   r%   r!   r&   r(         ?)
r   arangerT   	full_liker   r   r-   r.   r/   r0   )r   n1_10dataset0n2_10dataset1s        r   r3   zTestSmirnovp.test_basic   s    		!R ??E$&LL$:$&LL$;$= > 	x	

%UE*%
+		!R ??E$&LL$<$&LL$:$< = 	x	

%UE*%
+r   c                 H   t        j                  dd      }d|z  }dd|z  z
  }| ||dz
  z  z  }|dt        j                  |dz
        dz  z
  dz  z  }t        j                  |||g      }t	        t
        |ddt              j                  t        t        t        g       y )	Nr   r5   r   r!   rE   r%   r&   r(   )
r   r   signrT   r   r   r-   r.   r/   r0   )r   r=   rV   xm1pp1r   s         r   test_oneminusoneovernz"TestSmirnovp.test_oneminusoneovern  s    IIaEAgb1qs8m"''!A#,/!S((??AsC=1x	

%UE*%
+r   c                    t        j                  dd      }d|z  }||z  dz    d|z   |dz
  z  z  }t        j                  |||g      }t        t        |ddt
              j                  t        t        t        g       y )Nr   r5   rE   r!   r%   r&   r(   	r   r   rT   r   r   r-   r.   r/   r0   r   r=   rV   r|   r   s        r   test_oneovertwonzTestSmirnovp.test_oneovertwon  su    IIa!Gs1uX1!$??Aq":.x	

%UE*%
+r   c                    dt        j                  dd      z  }d|z  }||z  dz    d|z   |dz
  z  z  dz   }t        j                  |||g      }t        t        |ddt
              j                  t        t        t        g       y )	Nr!   r   rM   r   rE   r%   r&   r(   r   r   s        r   test_oneovernzTestSmirnovp.test_oneovern'  s     ryyBEs1uX1!$s*??Aq":.x	

%UE*%
+r   l        zrequires 64-bit platform)reasonc                 v   t        j                  dd      }d|z  dt        j                  t              j                  z  z
  }||z  dz    d|z   |dz
  z  z  }t        j
                  |||g      }t        t        |ddt              j                  t        t        t        g       d|z  dt        j                  t              j                  z  z   }||z  dz    d|z   |dz
  z  z  dz   }t        j
                  |||g      }t        t        |ddt              j                  t        t        t        g       y )	Nr#   r5   r   r!   r   r%   r&   r(   )r   r   finfor0   epsrT   r   r   r-   r.   r/   )r   r=   rV   r|   r   r   s         r   test_oneovernclosezTestSmirnovp.test_oneovernclose2  s   
 IIaEAbhhuo))))s1uX1!$??Aq":.x	

%UE*%
+EAbhhuo))))s1uX1!$q(??Aq":.x	

%UE*%
+r   N)rk   rl   rm   r   r3   r   r   r   pytestmarkxfailsysmaxsizer   rn   r   r   r   r      sQ    0,$
,,	, [[s{{e+8  :,:,r   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestKolmogorovc                 n    t        t        j                  t        t        j                                     y r   )r   r   r   r   r   r   s    r   r   zTestKolmogorov.test_nanI  s    BFF+,-r   c                     g d}t        j                  |      }t        t        |ddt              j                          y )N))r   r   )rE   ˜?)BgR{{?rE   )r   	=G?)r!    !E?r   r   r&   )r   r,   r   r   r-   r.   r1   s     r   r3   zTestKolmogorov.test_basicL  s2    0 **W%WdAE:@@Br   c                 6   t        j                  ddd      }g d}g d}t        j                  ||g      }t        t        |ddt
              j                          t        j                  ||g      }t        t        |ddt
              j                          y )	Nr          @   )r   r   g;?gCg{?g?r   g<[4?gUOp?g|Xi?g\"?g
=G?gT	@x?g1qVd?grl}n?gS.Q?grI;N?glPz?ghMy?gn㨫D!i?g9=W?gK!E?)        glAcR5gkC a=gz>gbk g?gQ3u?g._?gTe`{?g{N,?gQn?g|)\?g=!P?g1csh?grB0?gz$?gl%I?gLZ?gt.d?gWT?gc"?g?r   r   r&   )r   rS   rT   r   r   r-   r.   r	   )r   rV   r2   	dataset_cs       r   test_linspacezTestKolmogorov.test_linspaceV  s|    KK3#OQ	 //1g,/WdAE:@@BOOQ	N3	9dAE:@@Br   c                    t        j                  dddd      }t         j                  dddd	d
dddddddddddddddg}dddddddddddddddd
d	dddt         j                  g}t        j                  |d d  |d d  g      }t	        t
        |d!d t        "      j                          t        j                  |d d# |d d# g      }t	        t        |d!d t        "      j                          y )$Nr   r   r   TrQ   gź?g3?gn	o5?g	)?g(!N?gU#?g r?gl?g2|?r   gK)|?g?g2 ?gˍ?gu?gN?gk<?gf'G?g&?r   g&?gk?gU#?go	o5?g4?gź?r   r   r&   r*   )	r   rS   infrT   r   r   r-   r.   r
   )r   r]   r2   r   s       r   test_linspaceizTestKolmogorov.test_linspaceim  s   KK3T266-/A%'9;M%'9;M%'9;M%'9;M%'9;M%'9;MO ();=O');=O');=O');=O');=O');=O');RVVE	 //1QR5'!"+"67'47==?OOQsVYs^$<=	ItQU;AACr   c                     dt        j                  dd      z  }t        j                  g d      }t        j                  |d|z
  g      }t	        t
        |ddt              j                          y )Nr   r      )Z'G?gp=9?g=$7?g,^5?gȤ@?g1l4?gQGד?g%5?g	By?gZbqf-?gK?g	N?g"?r   r&   )r   r   r[   rT   r   r   r-   r.   r   epsilonrV   r2   s       r   test_smallxzTestKolmogorov.test_smallx  s[    1b))HH % &
 //1ai.1WdAE:@@Br   c                 B   d }d }t        j                  dddd      }||dk(  |d	kD  z     }t        j                  ||g      }t        ||d
dt              j                          t        j                  ||g      }t        ||d
dt              j                          y )Nc                 *    t        t        |             S r   )r   r   _xs    r   _ki_kz-TestKolmogorov.test_round_trip.<locals>._ki_k  s    :b>**r   c                 *    t        t        |             S r   )r
   r	   r   s    r   _kci_kcz/TestKolmogorov.test_round_trip.<locals>._kci_kc  s    Xb\**r   r   r   r   TrQ   r   gzG?r   r   r&   r   rS   rT   r   r-   r.   )r   r   r   rV   x02	dataset02r2   s          r   r   zTestKolmogorov.test_round_trip  s    	+	+ KKS"t4aAH%&OOS#J/		47==?//1a&)'47==?r   N)	rk   rl   rm   r   r3   r   r   r   r   rn   r   r   r   r   H  s%    .CC.D.C@r   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestKolmogic                 n    t        t        j                  t        t        j                                     y r   )r   r   r   r   r   r   s    r   r   zTestKolmogi.test_nan  s    )*r   c                     g d}t        j                  |      }t        t        |ddt              j                          y )N))r   r   )r   rE   )r   r   )rE   r   )r   r   )r   r!   r   r   r&   )r   r,   r   r   r-   r.   r1   s     r   r3   zTestKolmogi.test_basic  s2    0 **W%'47==?r   c                 `   dt        j                  ddd      z  }t        j                  g d      }t        j                  d|z
  |g      }t	        t
        |ddt              j                          t        j                  ||g      }t	        t        |ddt              j                          y )NrE   r   7   r#   )r   gza<?gN(?gB9|?gZ"h?g:A?gi.^$?gڎ4?gMtxA?g~Iy?g^?gcw?guz)t?g<?gw(uR?gj_#K7?gvn@?g2n.?r   r&   	r   r   r[   rT   r   r   r-   r.   r
   r   s       r   test_smallpcdfzTestKolmogi.test_smallpcdf  s    1b!,,
 HH R S //1W9a.1'47==?//7A,/GT159??Ar   c                 `   dt        j                  ddd      z  }t        j                  g d      }t        j                  ||g      }t	        t
        |ddt              j                          t        j                  d|z
  |g      }t	        t        |ddt              j                          y )NrE   r   r   r#   )r   gI\%	?gI?gX~=?gA^12@gk@g	@gd1.@g[{U@gNo[\	@gHaI
@gi@g/a<@gAї
(@g~=@g[5;$@gM @gH$@r   r&   r   r   s       r   test_smallpsfzTestKolmogi.test_smallpsf  s    1b!,,
 HH R S //7A,/'47==?//1W9a.1GT159??Ar   c                     d }t        j                  dddd      }t        j                  ||g      }t        ||ddt        	      j                          y )
Nc                 *    t        t        |             S r   )r   r   )_ps    r   _k_kiz*TestKolmogi.test_round_trip.<locals>._k_ki  s    gbk**r   r   r   rM   TrQ   r   r   r&   r   )r   r   r]   r2   s       r   r   zTestKolmogi.test_round_trip  sH    	+ KKS"t4//1a&)qu5;;=r   N)rk   rl   rm   r   r3   r   r   r   rn   r   r   r   r     s    +	@B&B&>r   r   c                       e Zd Zd Zd Zy)TestKolmogpc                 n    t        t        j                  t        t        j                                     y r   )r   r   r   r   r   r   s    r   r   zTestKolmogp.test_nan  s    "&&)*+r   c                     g d}t        j                  |      }t        t        |ddt              j                          y )N))r   g       )g?g=)rd   gt鹿)rs   g^ڛ/)g?g!$J)r   g2&)g333333?guk~;)gffffff?ggKk|q̿)g?g)g?g?𝖿)r   gz!ur   r   r&   )r   r,   r   r   r-   r.   r1   s     r   r3   zTestKolmogp.test_basic  s2    
6 **W%7D!%8>>@r   N)rk   rl   rm   r   r3   rn   r   r   r   r     s    ,Ar   r   )r9   r   r   numpyr   numpy.testingr   scipy.special._testutilsr   scipy.specialr   r   r   r   scipy.special._ufuncsr	   r
   r   r   r   r   r-   r   rp   r   r   r   r   rn   r   r   <module>r      s     
   ! - @ @E E 	iI iIX}, },@J, J,ZT@ T@n;> ;>|A Ar   