U
    ¾mœdÖ  ã                   @   s°  d dl Z d dlZd dlmZmZ ejdd„ ƒZejdd„ ƒZejdd„ ƒZejd	d
„ ƒZ	ejdd
gd�dd„ ƒZ
ejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejddgd�dd„ ƒZejdd„ d d„ d!d„ d"d„ gd#d$d%d&gd'�d(d)„ ƒZejddgd�d*d+„ ƒZejddgd�d,d-„ ƒZejddgd�d.d/„ ƒZejd0d1gd�d2d3„ ƒZejddgd�d4d5„ ƒZejd6d7„ ƒZejed8œd9d:„ƒZdS );é    N)ÚSeriesÚoptionsc                   C   s   t ‚dS )z3A fixture providing the ExtensionDtype to validate.N©ÚNotImplementedError© r   r   úX/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/extension/conftest.pyÚdtype   s    r   c                   C   s   t ‚dS )z�
    Length-100 array for this type.

    * data[0] and data[1] should both be non missing
    * data[0] and data[1] should not be equal
    Nr   r   r   r   r   Údata   s    r	   c                   C   s   t ‚dS )z3Length-100 array in which all the elements are two.Nr   r   r   r   r   Údata_for_twos   s    r
   c                   C   s   t ‚dS )zLength-2 array with [NA, Valid]Nr   r   r   r   r   Údata_missing"   s    r   )Úparamsc                 C   s    | j dkr|S | j dkr|S dS )z5Parametrized fixture giving 'data' and 'data_missing'r	   r   N©Úparam)Úrequestr	   r   r   r   r   Úall_data(   s    

r   c                    s   ‡ fdd„}|S )a  
    Generate many datasets.

    Parameters
    ----------
    data : fixture implementing `data`

    Returns
    -------
    Callable[[int], Generator]:
        A callable that takes a `count` argument and
        returns a generator yielding `count` datasets.
    c                 3   s   t | ƒD ]
}ˆ V  qd S ©N)Úrange)ÚcountÚ_©r	   r   r   ÚgenA   s    zdata_repeated.<locals>.genr   )r	   r   r   r   r   Údata_repeated1   s    r   c                   C   s   t ‚dS )zn
    Length-3 array with a known sort order.

    This should be three items [B, C, A] with
    A < B < C
    Nr   r   r   r   r   Údata_for_sortingH   s    r   c                   C   s   t ‚dS )z{
    Length-3 array with a known sort order.

    This should be three items [B, NA, A] with
    A < B and NA missing.
    Nr   r   r   r   r   Údata_missing_for_sortingS   s    r   c                   C   s   t jS )zÏ
    Binary operator for comparing NA values.

    Should return a function of two arguments that returns
    True if both arguments are (scalar) NA for your type.

    By default, uses ``operator.is_``
    )ÚoperatorÚis_r   r   r   r   Úna_cmp^   s    
r   c                   C   s   dS )z6The scalar missing value for this type. Default 'None'Nr   r   r   r   r   Úna_valuek   s    r   c                   C   s   t ‚dS )z˜
    Data for factorization, grouping, and unique tests.

    Expected to be like [B, B, NA, NA, A, A, B, C]

    Where A < B < C and NA is missing
    Nr   r   r   r   r   Údata_for_groupingq   s    	r   TFc                 C   s   | j S )z#Whether to box the data in a Seriesr   ©r   r   r   r   Úbox_in_series}   s    r    c                 C   s   dS ©Né   r   ©Úxr   r   r   Ú<lambda>…   ó    r%   c                 C   s   dgt | ƒ S r!   )Úlenr#   r   r   r   r%   †   r&   c                 C   s   t dgt| ƒ ƒS r!   )r   r'   r#   r   r   r   r%   ‡   r&   c                 C   s   | S r   r   r#   r   r   r   r%   ˆ   r&   ZscalarÚlistZseriesÚobject)r   Zidsc                 C   s   | j S )z,
    Functions to test groupby.apply().
    r   r   r   r   r   Úgroupby_apply_opƒ   s    r*   c                 C   s   | j S )zU
    Boolean fixture to support Series and Series.to_frame() comparison testing.
    r   r   r   r   r   Úas_frame“   s    r+   c                 C   s   | j S )zL
    Boolean fixture to support arr and Series(arr) comparison testing.
    r   r   r   r   r   Ú	as_series›   s    r,   c                 C   s   | j S )zd
    Boolean fixture to support comparison testing of ExtensionDtype array
    and numpy array.
    r   r   r   r   r   Ú	use_numpy£   s    r-   ZffillZbfillc                 C   s   | j S )z{
    Parametrized fixture giving method parameters 'ffill' and 'bfill' for
    Series.fillna(method=<method>) testing.
    r   r   r   r   r   Úfillna_method¬   s    r.   c                 C   s   | j S )zR
    Boolean fixture to support ExtensionDtype _from_sequence method testing.
    r   r   r   r   r   Úas_arrayµ   s    r/   c                 C   s
   t  t ¡S )zØ
    A scalar that *cannot* be held by this ExtensionArray.

    The default should work for most subclasses, but is not guaranteed.

    If the array can hold any item (i.e. object dtype), then use pytest.skip.
    )r)   Ú__new__r   r   r   r   Úinvalid_scalar½   s    	r1   )Úreturnc                   C   s   t jjot jjdkS )z7
    Fixture to check if Copy-on-Write is enabled.
    Úblock)r   ÚmodeZcopy_on_writeZdata_managerr   r   r   r   Úusing_copy_on_writeÉ   s    r5   )r   ZpytestZpandasr   r   Zfixturer   r	   r
   r   r   r   r   r   r   r   r   r    r*   r+   r,   r-   r.   r/   r1   Úboolr5   r   r   r   r   Ú<module>   sb   














ü
ù	






