U
    f/eu                  
   @   s   d dl Z d dlZd dlZd dlmZmZ d dlmZm	Z	 d dl
Zd dl
mZmZmZ ejddddd	d
ddgejdeegdd Zdd Zejjedddd Zdd Zdd Zdd Zdd ZdS )    N)IS64PYPY)is_categorical_dtypeis_object_dtype)	DataFrameIndexSerieszop_name, op)add+)sub-)mul*)mod%)powz**)truediv/)floordivz//klassc                 C   s^   | j  }d}d|||g}|t| |jks2td|||g}|t| d| jksZtd S )Nother r)__name__lowerjoingetattr__doc__AssertionError)r   Zop_nameopZoperand1Zoperand2Zexpected_str r    ?/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/base/test_misc.pytest_binary_ops_docstring   s    
r"   c              	   C   s   | }dD ]}t ||d d k	stqdD ]}t||r&tq&d}tjt|d |  W 5 Q R X |jdksnt|jt	|kstt
dg dksttdg dkstd S )N)shapedtypeTnbytes)stridesitemsizebasedataz6can only convert an array of size 1 to a Python scalarmatch   )r   r   hasattrpytestraises
ValueErroritemndimsizelenr   r   )index_or_series_objobjpmsgr    r    r!   test_ndarray_compat_properties2   s    r:   znot relevant for PyPy)reasonc                 C   s   | }|  }|j dd}t|p2t|to2t|j}t|jpRt|toRt|jj}t|dkrt|trpd}nt	rxdnd}||  kr|ksn t
n"|s|r||kst
n||kst
|t| }t|dk st
d S )NT)deepr   l   @   d   )memory_usager   
isinstancer   indexr   r$   r5   r   r   r   sys	getsizeofabs)r6   r7   resZres_deepZ	is_objectZis_categoricalexpectedZdiffr    r    r!   test_memory_usageH   s&    

rH   c                 C   s:   | }|j dd}|j dd}|j  }||| ks6td S NT)rB   Fr@   rB   r   )Zseries_with_simple_indexseriestotal_usagenon_index_usageindex_usager    r    r!   #test_memory_usage_components_seriesh   s
    
rO   c                 C   s:   | }|j dd}|j dd}|j  }||| ks6td S rI   rJ   )Znarrow_seriesrK   rL   rM   rN   r    r    r!   *test_memory_usage_components_narrow_seriesp   s
    
rP   c                 C   s   | }t |tjrtd t|dd}t||}d|  krJt|ksPn t	tj||t
t|d}d|  krt|ksn t	d S )Nz-np.searchsorted doesn't work on pd.MultiIndexr   )default)Zsorter)rA   pd
MultiIndexr/   skipmaxnpZsearchsortedr5   r   range)r6   r7   Zmax_objrB   r    r    r!   test_searchsortedx   s    
rX   c              	   C   s   t | dkrtd nt| tjr.td t| }| d |jd ksLt| d |jd ksbt| d |jd ksxtt | }| d | |d  kstd| d| }tj	t
|d	 | |  W 5 Q R X d
}tj	t
|d	 |j|  W 5 Q R X d S )Nr   z%Test doesn't make sense on empty dataz(Can't instantiate Series from MultiIndex   r-   zindex z' is out of bounds for axis 0 with size r+   z*single positional indexer is out-of-bounds)r5   r/   rT   rA   rR   rS   r   Zilocr   r0   
IndexError)rB   rK   r4   r9   r    r    r!   test_access_by_position   s     
r\   )rC   ZnumpyrV   r/   Zpandas.compatr   r   Zpandas.core.dtypes.commonr   r   ZpandasrR   r   r   r   markZparametrizer"   r:   ZskipifrH   rO   rP   rX   r\   r    r    r    r!   <module>   s4   
