U
    e»{jG  ã                	   @   s`  d dl Zd dlZd dlmZ d dlmZ d dlmZ e 	ddgddgd	d
gg¡Z
e 	ddgddgdd	gg¡Zej de
d dfeddfg¡dd„ ƒZedƒ�* ejjdddd�Z
ejjdddd�ZW 5 Q R X ej de
eg¡dd„ ƒZedƒ�* ejjd ddd�Z
ejjdd dd�ZW 5 Q R X ej de
d dfedd fg¡dd„ ƒZedƒ�* ejjdddd�Z
ejjdddd�ZW 5 Q R X ej de
ddfeddfg¡dd„ ƒZedƒ�* ejjd dd d�Z
ejjdd d d�ZW 5 Q R X ej de
d dfedd fg¡d!d"„ ƒZedƒ�* ejjddd d�Z
ejjddd d�ZW 5 Q R X ej de
ddfeddfg¡d#d$„ ƒZdS )%é    N)Úassert_allclose)ÚRipleysKEstimator)ÚNumpyRNGContexté   é   é   é   é   é   éÿÿÿÿéþÿÿÿéýÿÿÿzpoints, x_min, x_maxé
   éûÿÿÿc                 C   s€   d}t  ddd¡}t|||||d�}t  dddddg¡}t||| |dd�d	d
� t  dddddg¡}t||| |dd�d	d
� dS )a½  
    Test against Ripley's K function implemented in R package `spatstat`
        +-+---------+---------+----------+---------+-+
      6 +                                          * +
        |                                            |
        |                                            |
    5.5 +                                            +
        |                                            |
        |                                            |
      5 +                     *                      +
        |                                            |
    4.5 +                                            +
        |                                            |
        |                                            |
      4 + *                                          +
        +-+---------+---------+----------+---------+-+
          1        1.5        2         2.5        3

        +-+---------+---------+----------+---------+-+
      3 + *                                          +
        |                                            |
        |                                            |
    2.5 +                                            +
        |                                            |
        |                                            |
      2 +                     *                      +
        |                                            |
    1.5 +                                            +
        |                                            |
        |                                            |
      1 +                                          * +
        +-+---------+---------+----------+---------+-+
         -3       -2.5       -2        -1.5       -1
    éd   r   g      @r   )ÚareaÚx_minÚy_minÚx_maxÚy_maxg¦›Ä °ªP@Únone©ÚdataZradiiÚmodegü©ñÒMbP?©Úatolgú~j¼t“T@ÚtranslationN)ÚnpÚlinspacer   Úarrayr   )Úpointsr   r   r   ÚrÚKestZANS_NONEZ	ANS_TRANS© r#   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/stats/tests/test_spatial.pyÚtest_ripley_K_implementation   s"    %    ÿ  ÿr%   é{   )r   r   )ÚlowÚhighÚsizeiöÿÿÿr    c                 C   s8   d}t |d�}t ddd¡}t||| |dd�d ƒ d S )	Né2   )r   r   é   r   r   r   r   )r   r   r   r   )r    r   r"   r!   r#   r#   r$   Útest_ripley_uniform_propertyE   s    
r,   )iô  r   zpoints, low, highc           	      C   s^   t d||||d�}t ddd¡}| |¡}dddg}|D ] }|| ||d	�}t||d
d� q8d S )Nr   ©r   r   r   r   r   r   ç      Ð?é   Úohserr   Úripleyr   çš™™™™™¹?r   ©r   r   r   Úpoissonr   )	r    r'   r(   r"   r!   ÚKposÚmodesÚmÚKest_rr#   r#   r$   Útest_ripley_large_densityU   s    

r9   c           	      C   sl   t d||||d�}t ddd¡}t | |¡¡}dddg}|D ](}t || ||d�¡}t||d	d	d
� q>d S )Nr/   ©r   r   r   r   r   r   ç333333ó?r0   r   r1   r   r2   ©r   Zrtol)r   r   r   Úmeanr4   r   )	r    r'   r(   r"   r!   Z	Kpos_meanr6   r7   Z	Kest_meanr#   r#   r$   Útest_ripley_modese   s    
r>   )r*   r   c                 C   sJ   t d||||d�}t ddd¡}| |¡}|| |dd�}t||dd	� d S )
Nr   r-   r   r.   r/   ú	var-widthr   r2   r   r3   )r    r'   r(   r"   r!   r5   r8   r#   r#   r$   Ú#test_ripley_large_density_var_widthu   s
    
r@   c                 C   s\   t d||||d�}t ddd¡}t || |dd�¡}t || |dd�¡}t||ddd	� d S )
Nr/   r:   r   r;   r0   r   r?   r2   r<   )r   r   r   r=   r   )r    r'   r(   r"   r!   Z
Kest_ohserZKest_var_widthr#   r#   r$   Útest_ripley_var_widthƒ   s
    rA   )Únumpyr   ZpytestZnumpy.testingr   Zastropy.stats.spatialr   Zastropy.utils.miscr   r   ÚaÚbÚmarkZparametrizer%   ÚrandomÚuniformr,   r9   r>   r@   rA   r#   r#   r#   r$   Ú<module>   sB   
3











