U
    f/e                     @   sd   d dl Zd dlm  mZ d dlmZ d dlZ	d dlm
Z
mZmZmZ d dlmZ G dd dZdS )    N)PerformanceWarning)	DataFrameIndex
MultiIndexSeriesc                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestMultiIndexBasicc              	   C   s   t ddddgddddgtjdddd	g}tt |jd
  W 5 Q R X |j	ddddg }tt |jd  W 5 Q R X d S )Nr      xzy   )jimjoeZjolier   r   )r   r
         )r   )
r   nprandomZrand	set_indextmZassert_produces_warningr   locZiloc)selfdf r   T/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/indexing/multiindex/test_multiindex.pytest_multiindex_perf_warn   s    


z-TestMultiIndexBasic.test_multiindex_perf_warnc                 C   sp   d}t j}dt _tt|tdg| t|f}|d dksFt|d dksVt|d d	ksft|t _d S )
Ni'  i N  a)r      r   )r      r   )r      r   )_indexZ_SIZE_CUTOFFr   r   Zaranger   from_arraysAssertionError)r   nZ
old_cutoffsr   r   r   (test_indexing_over_hashtable_size_cutoff"   s    &z<TestMultiIndexBasic.test_indexing_over_hashtable_size_cutoffc                 C   s   t ddtjdgddddgdd	tjd
gd}|jddgdd}t ddtjdgddddgdd	tjd
gdtddtjdgddtddddgddgd}t|| d S )NZR1ZR2ZR4ZC1ZC2ZC3ZC4
         )r   bcr   r(   F)Zdropnameindex)r   r   nanr   r   r   assert_frame_equal)r   r   resultexpectedr   r   r   test_multi_nan_indexing1   s"    

z+TestMultiIndexBasic.test_multi_nan_indexingc                 C   s   t dddg}tdddg}tj||gddgd}tdd	d
gtjtjtjgd|d}t|d ddtjgd|d}|jdd}d|j	|d dfdf< t
|| |jdd}d|j	|d dfgdf< t
|| d S )NZ20190101Z20190102r   r)   Zindex1index2)namesr   r   r   )c1c2r,   r5   g      ?T)deepr   r6   )pdZto_datetimer   r   r    r   r   r.   copyr   r   r/   )r   dtiidxmir   r1   Zdf2Zdf3r   r   r   test_nested_tuples_duplicatesI   s    $z1TestMultiIndexBasic.test_nested_tuples_duplicatesc                 C   sr   t tddd}tjddddd}t||g}ttj	d	d|d
}|j
d j}t|| |j|jksntd S )Nr   Ar*   z
2020-01-01r   DB)Zperiodsfreqr+      r,   r   )r   ranger8   Z
date_ranger   Zfrom_productr   r   r   Zrandnr   r-   r   Zassert_index_equalrA   r!   )r   r;   r:   r<   r   r0   r   r   r   2test_multiindex_with_datatime_level_preserves_freq\   s    zFTestMultiIndexBasic.test_multiindex_with_datatime_level_preserves_freqN)__name__
__module____qualname__r   r$   r2   r=   rD   r   r   r   r   r      s
   r   )Znumpyr   Zpandas._libs.indexZ_libsr-   r   Zpandas.errorsr   Zpandasr8   r   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s   