3
OdH                 @   s   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 deZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZdS )    N)assert_)FuncData)
kolmogorovkolmogismirnovsmirnovi)_kolmogc	_kolmogci_kolmogp	_smirnovc
_smirnovci	_smirnovpg|=c               @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )TestSmirnovc             C   s   t tjtdtj d S )N   )r   npisnanr   nan)self r   W/var/www/html/virt/lib64/python3.6/site-packages/scipy/special/tests/test_kolmogorov.pytest_nan   s    zTestSmirnov.test_nanc             C   sz   ddddg}t j|}tt|ddtd	jtttgd
 d|d d df  |d d df< tt|ddtd	jtttgd
 d S )Nr   皙??      ?      ?      r   )rtol)dtypes)r   r   r   )r   r   r         ?)r   r   r   g      ?      `?)r   r   r    )r   r   r!   )r   r   )	r   asarrayr   r   _rtolcheckintfloatr   )r   datasetr   r   r   
test_basic   s    
  zTestSmirnov.test_basicc             C   s   dd t jtddtddD }tj|}tt|ddtd	jt	t
t
gd
 d|d d df  |d d df< tt|ddtd	jt	t
t
gd
 d S )Nc             S   s   g | ]}|d dfqS )r   r   r   ).0nr   r   r   
<listcomp>   s    z/TestSmirnov.test_x_equals_0.<locals>.<listcomp>r      i  i  r   r   )r   )r   )r   r   r!   r!   )r   r   )	itertoolschainranger   r"   r   r   r#   r$   r%   r&   r   )r   r'   r   r   r   test_x_equals_0   s
    "
  zTestSmirnov.test_x_equals_0c             C   s   dd t jtddtddD }tj|}tt|ddtd	jt	t
t
gd
 d|d d df  |d d df< tt|ddtd	jt	t
t
gd
 d S )Nc             S   s   g | ]}|d dfqS )r   r   r   )r)   r*   r   r   r   r+   &   s    z/TestSmirnov.test_x_equals_1.<locals>.<listcomp>r   r,   i  i  r   r   )r   )r   )r   r   r!   r!   )r   r   )r-   r.   r/   r   r"   r   r   r#   r$   r%   r&   r   )r   r'   r   r   r   test_x_equals_1%   s
    "
  zTestSmirnov.test_x_equals_1c             C   s   ddddddddd d!g
}t j|}tt|d"dtdjtttgd d|d d d#f  |d d d$f< tt|d%dtdjtttgd d S )&Nr         ?r         ?r   ?UUUU?         ?   y&1?   Eʠ?   >?   !?	   +ˎ{?
   璳4o?r   )r   )r   )r   r2   r2   )r   r2   r3   )r   r2   r4   )r5   r2   r6   )r7   r2   r8   )r9   r2   r:   )r;   r2   r<   )r=   r2   r>   )r?   r2   r@   )rA   r2   rB   )r   r   r!   r!   )r   r   )	r   r"   r   r   r#   r$   r%   r&   r   )r   r'   r   r   r   test_x_equals_0point5,   s    
  z!TestSmirnov.test_x_equals_0point5c             C   s   t jddddd}t jdgt| |d| g}tt|d	dtdjtt	t	gd d|d d d
f  |d d df< tt
|ddtdjtt	t	gd d S )Nr   r   e   T)endpointr   )r   )r   )r   r   r!   r!   )r   r   )r   linspacecolumn_stacklenr   r   r#   r$   r%   r&   r   )r   xr'   r   r   r   test_n_equals_1=   s
      zTestSmirnov.test_n_equals_1c             C   s   t jddddd}t jd| d}t jdgt| }t j|||g}tt|d
dtdj	t
ttgd	 d|d d df  |d d df< tt|ddtdj	t
ttgd	 d S )Ng      ?r   rD   T)rE   r   r   )r   )r   )r   r   r!   r!   )r   r   )r   rF   powerarrayrH   rG   r   r   r#   r$   r%   r&   r   )r   rI   pr*   r'   r   r   r   test_n_equals_2D   s      zTestSmirnov.test_n_equals_2c             C   s   t jddddd}t jd| d}t jdgt| }t j|||g}tt|ddtd	j	t
ttgd
 d|d d df  |d d df< tt|ddtd	j	t
ttgd
 d S )Ngffffff?r      T)rE   r   r   r   )r   )r   )r   r   r!   r!   )r   r   )r   rF   rK   rL   rH   rG   r   r   r#   r$   r%   r&   r   )r   rI   rM   r*   r'   r   r   r   test_n_equals_3M   s      zTestSmirnov.test_n_equals_3c                sL   d t j fddtdddD }t j|}tt j|dkd| d	 d S )
Ng?c                s   g | ]}t | qS r   )r   )r)   r*   )rI   r   r   r+   Z   s    z,TestSmirnov.test_n_large.<locals>.<listcomp>i  iL  r,   r   zNot all diffs negative %s)msg)r   rL   r/   Zdiffr   all)r   Zpvalsdfsr   )rI   r   test_n_largeV   s     
zTestSmirnov.test_n_largeN)__name__
__module____qualname__r   r(   r0   r1   rC   rJ   rN   rP   rT   r   r   r   r   r      s   		r   c               @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )TestSmirnovic             C   s   t tjtdtj d S )Nr   )r   r   r   r   r   )r   r   r   r   r   `   s    zTestSmirnovi.test_nanc             C   s   dddddddg}t j|}tt|ddtdjtttgd d|d d df  |d d df< tt|ddtdjtttgd d S ) Nr   皙?333333?Gz?{Gz?r   g      ?      ?r   rA   g      ?   r   )r   )r   )r   rY   rZ   )r   rZ   rY   )r   r[   r\   )r   r\   r[         ?)r   r_   r]   g      ?      `?)r   r`   r]   l              p=g      ?      ?)rA   ra   rb   )r   r   )r   r   )	r   r"   r   r   r#   r$   r%   r&   r   )r   r'   r   r   r   r(   c   s    
  zTestSmirnovi.test_basicc             C   s   dd t jtddtddD }tj|}tt|ddtd	jt	t
t
gd
 d|d d df  |d d df< tt|ddtd	jt	t
t
gd
 d S )Nc             S   s   g | ]}|d dfqS )r   r   r   )r)   r*   r   r   r   r+   r   s    z0TestSmirnovi.test_x_equals_0.<locals>.<listcomp>r   r,   i  i  r   r   )r   )r   )r   r   )r   r   )r-   r.   r/   r   r"   r   r   r#   r$   r%   r&   r   )r   r'   r   r   r   r0   q   s
    "
  zTestSmirnovi.test_x_equals_0c             C   s   dd t jtddtddD }tj|}tt|ddtd	jt	t
t
gd
 d|d d df  |d d df< tt|ddtd	jt	t
t
gd
 d S )Nc             S   s   g | ]}|d dfqS )r   r   r   )r)   r*   r   r   r   r+   y   s    z0TestSmirnovi.test_x_equals_1.<locals>.<listcomp>r   r,   i  i  r   r   )r   )r   )r   r   )r   r   )r-   r.   r/   r   r"   r   r   r#   r$   r%   r&   r   )r   r'   r   r   r   r1   x   s
    "
  zTestSmirnovi.test_x_equals_1c             C   s   t jddddd}t jdgt| |d| g}tt|d	dtdjtt	t	gd d|d d df  |d d df< tt
|d
dtdjtt	t	gd d S )Nr   r   rD   T)rE   r   )r   )r   )r   r   )r   r   )r   rF   rG   rH   r   r   r#   r$   r%   r&   r   )r   ppr'   r   r   r   rJ      s
      zTestSmirnovi.test_n_equals_1c             C   s   t jddddd}t jd| d}t jdgt| }t j|||g}tt|d
dtdj	t
ttgd	 d|d d df  |d d df< tt|ddtdj	t
ttgd	 d S )Ng      ?r   rD   T)rE   r   r   )r   )r   )r   r   )r   r   )r   rF   rK   rL   rH   rG   r   r   r#   r$   r%   r&   r   )r   rI   rM   r*   r'   r   r   r   rN      s      zTestSmirnovi.test_n_equals_2c             C   s   t jddddd}t jd| d}t jdgt| }t j|||g}tt|ddtd	j	t
ttgd
 d|d d df  |d d df< tt|ddtd	j	t
ttgd
 d S )Ngffffff?r   rO   T)rE   r   r   r   )r   )r   )r   r   )r   r   )r   rF   rK   rL   rH   rG   r   r   r#   r$   r%   r&   r   )r   rI   rM   r*   r'   r   r   r   rP      s      zTestSmirnovi.test_n_equals_3c          	   C   sp   dd }dd }dddddddg}t j|}t||ddtdjtttgd t||ddtdjtttgd d S )Nc             S   s   t | t| |S )N)r   r   )r*   rM   r   r   r   _sm_smi   s    z-TestSmirnovi.test_round_trip.<locals>._sm_smic             S   s   t | t| |S )N)r   r   )r*   rM   r   r   r   	_smc_smci   s    z/TestSmirnovi.test_round_trip.<locals>._smc_smcir   皙?333333?r         ?r         ?rA   +?-C6?r   )r   )r   )r   rf   rf   )r   rg   rg   )r   rh   rh   )r   rh   rh   )r   ri   ri   )rA   rj   rj   )rA   rk   rk   )r   r   )r   r   )r   r"   r   r#   r$   r%   r&   )r   rd   re   r'   r   r   r   test_round_trip   s    
 zTestSmirnovi.test_round_tripc             C   s   dddddddd d!d"d#g}t j|}tt|d$dtdjtttgd d|d d df  |d d df< tt|d%dtdjtttgd d S )&Nr         ?r   wzl?      ?r   <{?r5   FwrZ?r7   0 ?r9   0@?r;    A?r=   ^CKf?r?   ޵&?rA   L4J?r   )r   )r   )r   rm   rm   )r   rm   rn   )r   ro   rm   )r   rm   rp   )r5   rm   rq   )r7   rm   rr   )r9   rm   rs   )r;   rm   rt   )r=   rm   ru   )r?   rm   rv   )rA   rm   rw   )r   r   )r   r   )	r   r"   r   r   r#   r$   r%   r&   r   )r   r'   r   r   r   rC      s    
  z"TestSmirnovi.test_x_equals_0point5N)rU   rV   rW   r   r(   r0   r1   rJ   rN   rP   rl   rC   r   r   r   r   rX   _   s   		rX   c               @   sR   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	j
ejdkdddd ZdS )TestSmirnovpc             C   s   t tjtdtj d S )Nr   )r   r   r   r   r   )r   r   r   r   r      s    zTestSmirnovp.test_nanc             C   s   t jdd}t j|t j|dt j|dg}tt|d	dtdjtt	t	gd t jdd}t j|t j|dt j|dg}tt|d
dtdjtt	t	gd d S )Nr   rA   r   r   )r   )r   g      ?r!   )r   r   )r   r   )
r   arangerG   Z	full_liker   r   r#   r$   r%   r&   )r   Zn1_10dataset0Zn2_10dataset1r   r   r   r(      s       zTestSmirnovp.test_basicc             C   s   t jdd}d| }dd|  }| ||d   }|dt j|d d  d 8 }t j|||g}tt|d	dtdjtt	t	gd d S )
Nr   r,   g      ?r   g      ?r   )r   )r   )r   r   )
r   ry   signrG   r   r   r#   r$   r%   r&   )r   r*   rI   Zxm1Zpp1r{   r   r   r   test_oneminusoneovern   s    z"TestSmirnovp.test_oneminusoneovernc             C   sf   t jdd}d| }|| d  d| |d   }t j|||g}tt|d	dtdjtttgd d S )
Nr   r,   g      ?r   r   )r   )r   g      ?)r   r   )	r   ry   rG   r   r   r#   r$   r%   r&   )r   r*   rI   rc   rz   r   r   r   test_oneovertwon   s
    zTestSmirnovp.test_oneovertwonc             C   sn   dt jdd }d| }|| d  d| |d   d }t j|||g}tt|d	dtdjtttgd d S )
Nr   r   rA   g      ?g      ?r   )r   )r   )r   r   )	r   ry   rG   r   r   r#   r$   r%   r&   )r   r*   rI   rc   rz   r   r   r   test_oneovern   s
    "zTestSmirnovp.test_oneovernr       zrequires 64-bit platform)reasonc             C   s   t jdd}d| dt jtj  }|| d  d| |d   }t j|||g}tt|d	dtdj	t
ttgd d| dt jtj  }|| d  d| |d   d }t j|||g}tt|d
dtdj	t
ttgd d S )Nr   r,   g      ?r   r   r   )r   )r   )r   r   )r   r   )r   ry   Zfinfor&   ZepsrG   r   r   r#   r$   r%   )r   r*   rI   rc   rz   r{   r   r   r   test_oneovernclose   s     "zTestSmirnovp.test_oneoverncloseNl        )rU   rV   rW   r   r(   r}   r~   r   pytestmarkZxfailsysmaxsizer   r   r   r   r   rx      s   

rx   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestKolmogorovc             C   s   t tjttj d S )N)r   r   r   r   r   )r   r   r   r   r      s    zTestKolmogorov.test_nanc             C   s2   dddddg}t j|}tt|ddtd
j  d S )Nr         ?      ?˜?BgR{{?r   	=G?r    !E?)r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   )r   r"   r   r   r#   r$   )r   r'   r   r   r   r(      s    
zTestKolmogorov.test_basicc             C   s   t jddd}d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+d,g}t j||g}tt|d/d-td.j  t j||g}tt|d0d-td.j  d S )1Nr   g       @   g      ?g;?gCg{?g?g˜?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        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   )r   rF   rG   r   r   r#   r$   r   )r   rI   r'   	dataset_cr   r   r   test_linspace  s&    

zTestKolmogorov.test_linspacec             C   s   t jd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d!j  t j|d d# |d d$ g}tt|d%d td!j  d S )&Nr   g      ?r   T)rE   gź?g3?gn	o5?g	)?g(!N?gU#?g r?gl?g2|?gBgR{{?gK)|?g?g2 ?gˍ?gu?gN?gk<?gf'G?g&?g        g&?gk?gU#?go	o5?g4?gź?r   )r   )r   r!   r!   )r   )	r   rF   infrG   r   r   r#   r$   r	   )r   rM   r'   r   r   r   r   test_linspacei  s&    
zTestKolmogorov.test_linspaceic             C   s`   dt jdd }t jdddddd	d
ddddddg}t j|d| g}tt|ddtdj  d S )Ng?r      gZ'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   ry   rL   rG   r   r   r#   r$   )r   epsilonrI   r'   r   r   r   test_smallx4  s    zTestKolmogorov.test_smallxc             C   s   dd }dd }t jddddd	}||d
k|dkB  }t j||g}t||ddtdj  t j||g}t||ddtdj  d S )Nc             S   s   t t| S )N)r   r   )_xr   r   r   _ki_k?  s    z-TestKolmogorov.test_round_trip.<locals>._ki_kc             S   s   t t| S )N)r	   r   )r   r   r   r   _kci_kcB  s    z/TestKolmogorov.test_round_trip.<locals>._kci_kcg        g       @r   T)rE   r   gzG?r   )r   )r   )r   )r   rF   rG   r   r#   r$   )r   r   r   rI   Zx02Z	dataset02r'   r   r   r   rl   >  s    zTestKolmogorov.test_round_tripN)	rU   rV   rW   r   r(   r   r   r   rl   r   r   r   r   r      s   

r   c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestKolmogic             C   s   t tjttj d S )N)r   r   r   r   r   )r   r   r   r   r   O  s    zTestKolmogi.test_nanc             C   s4   ddddddg}t j|}tt|dd	tdj  d S )N      ?r   ˜?      ??Z'G?BgR{{?	=G?r    !E?r   )r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   )r   r"   r   r   r#   r$   )r   r'   r   r   r   r(   R  s    
zTestKolmogi.test_basicc             C   s   dt jddd }t jddddd	d
ddddddddddddg}t jd| |g}tt|ddtdj  t j||g}tt|ddtdj  d S )Ng      ?r   7   r   gBgR{{?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   ry   rL   rG   r   r   r#   r$   r	   )r   r   rI   r'   r   r   r   test_smallpcdf]  s    
zTestKolmogi.test_smallpcdfc             C   s   dt jddd }t jddddd	d
ddddddddddddg}t j||g}tt|ddtdj  t jd| |g}tt|ddtdj  d S )Ng      ?r   r   r   gBgR{{?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   )	r   ry   rL   rG   r   r   r#   r$   r	   )r   r   rI   r'   r   r   r   test_smallpsfo  s    
zTestKolmogi.test_smallpsfc             C   sB   dd }t jddddd}t j||g}t||dd	td
j  d S )Nc             S   s   t t| S )N)r   r   )_pr   r   r   _k_ki  s    z*TestKolmogi.test_round_trip.<locals>._k_kig?g      ?rA   T)rE   r   r   )r   )r   )r   rF   rG   r   r#   r$   )r   r   rM   r'   r   r   r   rl     s    zTestKolmogi.test_round_tripN)rU   rV   rW   r   r(   r   r   rl   r   r   r   r   r   N  s
   r   c               @   s   e Zd Zdd Zdd ZdS )TestKolmogpc             C   s   t tjttj d S )N)r   r   r   r
   r   )r   r   r   r   r     s    zTestKolmogp.test_nanc             C   s>   dddd d"d$d&d(d*d,d.g}t j|}tt|d/dtdj  d S )0N        皙?g==皙?gt?333333?g^ڛ/?皙?g!$J?      ?g2&?333333?guk~;?ffffff?ggKk|q?皙?g??g??       @gz!u?r   r   )r          )r   r   =)r   r   t鹿)r   r   ^ڛ/)r   r   !$J)r   r   2&)r   r   uk~;)r   r   gKk|q̿)r   r   )r   r   ?𝖿)r   r   z!u)r   r   )r   )r   r"   r   r
   r#   r$   )r   r'   r   r   r   r(     s    
zTestKolmogp.test_basicN)rU   rV   rW   r   r(   r   r   r   r   r     s   r   )r-   r   r   Znumpyr   Znumpy.testingr   Zscipy.special._testutilsr   Zscipy.specialr   r   r   r   Zscipy.special._ufuncsr   r	   r
   r   r   r   r#   objectr   rX   rx   r   r   r   r   r   r   r   <module>   s    P`9V<