3
Ud)!                 @   s   d dl Z d dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
 d dlj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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 )&    N)'construct_1d_object_array_from_listlike)IntervalIndex
MultiIndex
RangeIndexc              C   s   t jddg} | jd jdks"t| jd jdks6tt jdgtdg} | jd jdks^tt jdgtdg} | jd jd	kstt jdgtd
g} | jd jdksttj jdgtdg} | jd dkj st| jd dkj std S )NA      r   Zint8a(   i  Zint16i@  Zint32i  )r   r   )r   r   )	r   from_tuplescodesdtypeAssertionErrorfrom_productrangepdall)i r   ]/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/indexes/multi/test_integrity.pytest_labels_dtypes   s    r   c              C   s   dt jdfdt jfdt jdfdt jdfdt jdfdt jdfg} t jj| }t| }tj|j| tj|jd d |d d j d S )	Nr   z
2000-01-01r      z
2000-01-03z
2000-01-04z
2000-01-02   )	r   	TimestampZNaTr   r   r   tmassert_numpy_array_equalvalues)Ztuplesresultexpectedr   r   r   test_values_boxed    s    r   c              C   s   t jdd} tj| }tj| dd}tjj||g}|j}tjdd |D }tj|| tjdd |D }tj|| |d d	 j}tjd
d |D }tj||d d	  tjdd |D }tj||d d	  d S )N
         z
US/Central)tzc             S   s   g | ]}|d  qS )r   r   ).0xr   r   r   
<listcomp>:   s    z8test_values_multiindex_datetimeindex.<locals>.<listcomp>c             S   s   g | ]}|d  qS )r   r   )r$   r%   r   r   r   r&   =   s    r   c             S   s   g | ]}|d  qS )r   r   )r$   r%   r   r   r   r&   C   s    c             S   s   g | ]}|d  qS )r   r   )r$   r%   r   r   r   r&   F   s    l     NZol     NZol    NZo)	nparanger   ZDatetimeIndexr   from_arraysr   r   assert_index_equal)intsZnaiveZawareidxr   outerinnerr   r   r   $test_values_multiindex_datetimeindex0   s    
r/   c              C   s   t jdd} tj| dd}tjj| |g}|j}tjdd |D }tj	|tj|  tjdd |D }tj	|| |d d j}tjd	d |D }tj	|tj| d d  tjd
d |D }tj	||d d  d S )Ni  i  D)freqc             S   s   g | ]}|d  qS )r   r   )r$   r%   r   r   r   r&   R   s    z6test_values_multiindex_periodindex.<locals>.<listcomp>c             S   s   g | ]}|d  qS )r   r   )r$   r%   r   r   r   r&   U   s    r   c             S   s   g | ]}|d  qS )r   r   )r$   r%   r   r   r   r&   [   s    c             S   s   g | ]}|d  qS )r   r   )r$   r%   r   r   r   r&   ^   s    )
r'   r(   r   ZPeriodIndexr   r)   r   
Int64Indexr   r*   )r+   Zpidxr,   r   r-   r.   r   r   r   "test_values_multiindex_periodindexJ   s    r3   c           
   C   s   t td} t td}tjd}tjtdd}t| |g||gd}tjdddddddddg	}tjdddddddddg	}t| |g||gd}|jd	kstd S )
Nip r    iX  )levelsr   r   r   r   r   F)	listr   r'   r(   repeatr   arrayZ	is_uniquer   )Z
major_axisZ
minor_axisZmajor_codesZminor_codesindexr   r   r   test_consistencyb   s    
r9   c              C   s   t jtjdtjdgddgd} | j| j}tj|tjt| dd x>ddt| d	 t| d gD ]}| j	| | }||ksft
qfW d S )
Ni  ZoneZtwo)namesZintp)r   r   r   r   )r   r   r'   r(   Zget_indexerr   r   r   lenget_locr   )r8   r   r   r   r   r   test_hash_collisionsy   s    "r=   c               C   s   d S )Nr   r   r   r   r   	test_dims   s    r>   c              C   s   ddgt jdt jdgg} t jj| ddgd}dd	g}d
}tjt|d |j|d	d W d Q R X d}tjt|d |j||d W d Q R X d}tjt|d |j|dd W d Q R X d S )Nr   Bz
2011-01-01z
2011-01-02strdt)r:   r   r   z1take\(\) got an unexpected keyword argument 'foo')match)fooz$the 'out' parameter is not supported)outz%the 'mode' parameter is not supportedZclip)mode)	r   r   r   r   pytestraises	TypeErrorZtake
ValueError)valsr,   indicesmsgr   r   r   take_invalid_kwargs   s    rM   c          	   C   s,   d}t jt|d tj|  W d Q R X d S )Nz"isna is not defined for MultiIndex)rB   )rF   rG   NotImplementedErrorr   Zisna)r,   rL   r   r   r   test_isna_behavior   s    rO   c              C   s   t jdt jjddgtdgdgd} tjtdd | jd  W d Q R X tjtd	d | jd  W d Q R X t jdt jjddgtdgdgd}tjtdd |jd  W d Q R X tjtd	d |jd  W d Q R X d S )Nr   r   i dest)r8   columnsz^\(-1, 0\)$)rB   r   z
^\(3, 0\)$r   i! rR   r   )rS   rP   r   r   )rT   rP   rR   rR   r   )rU   rP   r   r   )rV   rP   )	r   	DataFramer   r   r   rF   rG   KeyErrorloc)Zdf_below_1000000Zdf_above_1000000r   r   r   test_large_multiindex_error   s    ""rZ   c           	   C   s`   t td} tj| | dtjjdd | D d}d}tjt|d |d j	  W d Q R X d S )	Ni@B )r	   bc             S   s   g | ]}||fqS r   r   )r$   r%   r   r   r   r&      s    z7test_million_record_attribute_error.<locals>.<listcomp>)r8   z&'Series' object has no attribute 'foo')rB   r	   )
r5   r   r   rW   r   r   rF   rG   AttributeErrorrC   )rdfrL   r   r   r   #test_million_record_attribute_error   s    "r_   c             C   s   | d }| j |dkstd S )Nr   T)Z$_can_hold_identifiers_and_holds_namer   )r,   keyr   r   r   test_can_hold_identifiers   s    ra   c          &   C   s   | j | j }}tjd}tjt|d |d |d< W d Q R X tjt|d |d d |d d< W d Q R X tjt|d |d |d< W d Q R X tjtdd |d d |d d< W d Q R X | j}tjt|d |d |d< W d Q R X d S )Nz#does not support mutable operations)rB   r   z#assignment destination is read-only)	r4   r   recompilerF   rG   rH   rI   r:   )r,   r4   r   Zmutable_regexr:   r   r   r   test_metadata_immutable   s    
rd   c              C   sZ   t jjdddddgdddddgg} | js.t| jddgdddggdd | j sVtd S )Nr   r?   r   r   r   T)Zinplace)r   r   r)   Zis_monotonicr   Z
set_levels)indr   r   r   $test_level_setting_resets_attributes   s    $
rf   c              C   s  t jtjdjd} t jtjdjd}t j| j |j ddd}ddg|j_t	| t jtjdtjddt j
jtdtdgddgd	d
}tj||dd |jjd}t jtjdddjd}tj|| |jjd}t jtjtjdddd}tj|| d S )Nd   r    )rC   barr   )ZaxisZfizzZbuzz)rh   rC   )r:   )r8   T)Z
check_like)name)r    r    )r    r    )r   rW   r'   r(   Zreshapeconcatstackr8   r:   r@   r   r   r   r   Zassert_frame_equalZget_level_valuesr2   r6   r*   Ztile)rC   rh   r^   r   r   r   r   r   %test_rangeindex_fallback_coercion_bug   s     rl   c             C   st   | j  }t| rd| j| d  | j  }| j dd}t| ttfsL||ksLt| jdkrp||ksptn|dksptd S )Nr   T)deepobject)Zmemory_usager;   r<   
isinstancer   r   r   Zinferred_type)r,   r   Zresult2Zresult3r   r   r   test_memory_usage   s    
rp   c             C   s   | j dkstd S )Nr   )Znlevelsr   )r,   r   r   r   test_nlevels  s    rq   )rb   Znumpyr'   rF   Zpandas.core.dtypes.castr   Zpandasr   r   r   r   Zpandas._testingZ_testingr   r   r   r/   r3   r9   r=   r>   rM   rO   rZ   r_   ra   rd   rf   rl   rp   rq   r   r   r   r   <module>   s.   
	