U
    ½mœd
  ã                   @  sb   d dl mZ d dlmZmZ d dlZer4d dlmZ ddddd	œd
d„Z	ddddddœdd„Z
dS )é    )Úannotations)ÚTYPE_CHECKINGÚAnyN)ÚCoordinateArrayFztuple[int, int]ÚboolzVtuple[CoordinateArray, CoordinateArray, CoordinateArray | np.ma.MaskedArray[Any, Any]])ÚshapeÚ	want_maskÚreturnc              
   C  s€  | \}}t j|t jd�}t j|t jd�}t  ||¡\}}|d }|d }t  dddddg¡}t  ddgd	dgd
dgdd	gddgg¡}	t  dddddg¡}
t  |¡}tt|ƒƒD ]T}||| t  || |	|df  d || |	|df  d   |
| d  ¡ 7 }q®|�rvt  	|| d d d || d d d  dk || d d d || d d d  dk ¡}t j
j||d�}|||fS )ai  Return simple test data consisting of the sum of two gaussians.

    Args:
        shape (tuple(int, int)): 2D shape of data to return.
        want_mask (bool, optional): Whether test data should be masked or not, default ``False``.

    Return:
        Tuple of 3 arrays: ``x``, ``y``, ``z`` test data, ``z`` will be masked if
        ``want_mask=True``.
    ©Zdtypeg      ð?g      ð¿gš™™™™™é?gÍÌÌÌÌÌì¿gffffffæ?gš™™™™™Ù?gš™™™™™É?g333333Ó?gÍÌÌÌÌÌì?g      è?gš™™™™™©?gš™™™™™¹?r   é   é   ç        g{®Gáz”?gÍÌÌÌÌÌÜ?g{®Gáz´?©Úmask)ÚnpÚarangeÚfloat64ÚmeshgridZasarrayZ
zeros_likeÚrangeÚlenÚexpÚ
logical_orÚmaÚarray)r   r   ÚnyÚnxÚxÚyZxscaleZyscaleÚampÚmidÚwidthÚzÚir   © r#   úL/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/contourpy/util/data.pyÚsimple   s&    (
R**þr%   é‹  r   ÚintÚfloat)r   ÚseedÚmask_fractionr	   c           
      C  sŒ   | \}}t j|t jd�}t j|t jd�}t  ||¡\}}t j |¡}|j| d�}|dkr‚t|dƒ}|j| d�|k }	t jj	||	d�}|||fS )a•  Return random test data..

    Args:
        shape (tuple(int, int)): 2D shape of data to return.
        seed (int, optional): Seed for random number generator, default 2187.
        mask_fraction (float, optional): Fraction of elements to mask, default 0.

    Return:
        Tuple of 3 arrays: ``x``, ``y``, ``z`` test data, ``z`` will be masked if
        ``mask_fraction`` is greater than zero.
    r
   )Úsizer   g®Gáz®ï?r   )
r   r   r   r   ÚrandomZdefault_rngÚuniformÚminr   r   )
r   r)   r*   r   r   r   r   Úrngr!   r   r#   r#   r$   r,   3   s    
r,   )F)r&   r   )Ú
__future__r   Útypingr   r   Únumpyr   Zcontourpy._contourpyr   r%   r,   r#   r#   r#   r$   Ú<module>   s    ÿ)   ÿ