3
Ud-                 @   s   d dl Zd dlZd dlZd dlmZmZ d dljZ	dddZ
dd Zdd	 Zd
d Zdd Zdd Zdd Zejjdddgdd Zejjdddgdd Zdd Zdd ZdS )    N)CategoricalIndex
MultiIndexFc             C   sT   t | t |kstx:t| |D ],\}}tj|}tj|}tj|||d q W d S )N)check_dtype)lenAssertionErrorzipnpZasarraytmZassert_numpy_array_equal)actualexpectedr   Zactexp r   [/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/indexes/multi/test_get_set.pyassert_matching	   s
    

r   c             C   s~   ddg| _ | jddkst| jddks.td}tjt|d | jd W d Q R X tjtdd | jd W d Q R X d S )N   r   z/Too many levels: Index has only 2 levels, not 3)match   zLevel fourth not foundZfourth)namesZ_get_level_numberr   pytestraises
IndexErrorKeyError)idxmsgr   r   r   test_get_level_number_integer   s    
r   c             C   s  | j | jkstdd |D }| j|}| j|ks6t|j|ksDtd}tjt|d |j||  W d Q R X dd |D }|j|dd}|d kst|j|kst| j|d dd	}| j|kst|j|d |d
 gkst|j|d ddd}|d kst|j|d |d
 gkst| j|dd
gd	}| j|ks@t|j|ksPt|j|dd
gdd}|d ksrt|j|kstd S )Nc             S   s   g | ]}|d  qS )ZSUFFIXr   ).0namer   r   r   
<listcomp>!   s    z)test_set_name_methods.<locals>.<listcomp>z9Length of names must match number of levels in MultiIndex)r   c             S   s   g | ]}|d  qS )ZSUFFIX2r   )r   r   r   r   r   r   (   s    T)inplacer   )levelr   )r   r   )rename	set_namesr   r   r   r   
ValueError)r   Zindex_namesZ	new_namesindr   Z
new_names2resr   r   r   test_set_name_methods   s0    
r%   c             C   s   | j }dd |D }| j}|\}}dd |D }dd |D }||g}d}tjt|d || _ W d Q R X tjt|d || _W d Q R X d S )Nc             S   s   g | ]}d d |D qS )c             S   s   g | ]}|d  qS )ar   )r   levr   r   r   r   D   s    z=test_set_levels_codes_directly.<locals>.<listcomp>.<listcomp>r   )r   r   r   r   r   r   D   s    z2test_set_levels_codes_directly.<locals>.<listcomp>c             S   s   g | ]}|d  d qS )r      r   )r   xr   r   r   r   H   s    c             S   s   g | ]}|d  d  qS )r   r   )r   r)   r   r   r   r   I   s    z[Cc]an't set attribute)r   )levelscodesr   r   AttributeError)r   r*   
new_levelsr+   major_codesminor_codes	new_codesr   r   r   r   test_set_levels_codes_directly@   s    r1   c          "   C   s  | j }dd |D }| j|}t|j | t| j | | j }|j|dd}|d ksXtt|j | | j|d dd}t|j |d |d g t| j | | j|d dd}t|j |d |d g t| j | | j|ddgd}t|j | t| j | | j }|j|d ddd}|d ks$tt|j |d |d g t| j | | j }|j|d ddd}|d ksrtt|j |d |d g t| j | | j }|j|ddgdd}|d kstt|j | t| j | | j }xdD ]}tjtd
d | jdgd|d W d Q R X t| j |j dd tjtd
d" | jddddddgd|d W d Q R X t| j	|j	dd tjt
dd | jdd|d W d Q R X t| j |j dd tjt
dd | jdd|d W d Q R X t| j	|j	dd qW d S )Nc             S   s   g | ]}d d |D qS )c             S   s   g | ]}|d  qS )r&   r   )r   r'   r   r   r   r   W   s    z.test_set_levels.<locals>.<listcomp>.<listcomp>r   )r   r   r   r   r   r   W   s    z#test_set_levels.<locals>.<listcomp>T)r   r   )r   r   )r   r   Fz^On)r   c)r   r   r(         z^Levelsz^Codes)TF)r*   
set_levelsr   copyr   r   r   r"   	set_codesr+   	TypeError)r   r*   r-   ind2inplace_returnZoriginal_indexr   r   r   r   test_set_levelsS   s^    
&r;   c       
      C   s|  | j }|\}}dd |D }dd |D }||g}| j|}t|j | t| j | | j }|j|dd}|d ksvtt|j | | j|d dd}t|j |d |d g t| j | | j|d dd}t|j |d |d g t| j | | j|ddgd}t|j | t| j | | j }|j|d ddd	}|d ksBtt|j |d |d g t| j | | j }|j|d ddd	}|d kstt|j |d |d g t| j | | j }|j|ddgdd	}|d kstt|j | t| j | tjjd
d tdD }tddd}tjjdd |D }|j|dd}	|	j	|sPt|j }	|	j|ddd |	j	|sxtd S )Nc             S   s   g | ]}|d  d qS )r   r(   r   )r   r)   r   r   r   r      s    z"test_set_codes.<locals>.<listcomp>c             S   s   g | ]}|d  d  qS )r   r   )r   r)   r   r   r   r      s    T)r   r   )r   r   )r   r   c             S   s   g | ]}d |fqS )r   r   )r   ir   r   r   r      s          c             S   s   g | ]}d |fqS )r   r   )r   r<   r   r   r   r      s    )r+   r   )r+   r   r   r?   )
r+   r7   r   r6   r   pdr   from_tuplesrangeequals)
r   r+   r.   r/   r0   r9   r:   r#   r   resultr   r   r   test_set_codes   sX    
rE   c          X   C   s  | j | j }}| j}tjtdd | j|d g W d Q R X tjtdd | j|d g W d Q R X tjtdd | j|d g W d Q R X 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t	dd | j|d  W d Q R X tjt	dd | j|d ddgd	 W d Q R X tjt	dd | j|dd	 W d Q R X tjt	dd | j|d ddgd	 W d Q R X tjt	dd | j|dd	 W d Q R X tjtdd | j|d ddgd	 W d Q R X tjt	d
d | j|dd	 W d Q R X d S )NzLength of levels)r   r   zLength of codeszLength of nameszlist of lists-likez	list-liker   )r   zNames must be a)
r*   r+   r   r   r   r"   r5   r7   r!   r8   )r   r*   r+   r   r   r   r   %test_set_levels_codes_names_bad_input   s4       rF   r   Tc             C   sX   t jddggddggdgd}t jjddgg}|jdd| d}| rH|}tj|| d S )Nr   r   first)r*   r+   r   )r   r   )r@   r   Zfrom_productr!   r	   assert_index_equal)r   r   mrD   r   r   r   test_set_names_with_nlevel_1  s    rJ   orderedc             C   s   t jtdddddgg}ttd| d}|j|d}t |ddddgg|jd}tj|| |jd}ttd	|j	|j
d
}tj|| d S )NZxyzxr   r   r   r(   Zbac)rK   )r*   r+   Zbacb)
categoriesrK   )r   from_arrayslistr   r5   r+   r	   rH   Zget_level_valuesrL   rK   )rK   indexZcidxrD   r   Z
result_lvlZexpected_lvlr   r   r   test_set_levels_categorical  s    
rP   c              C   s   ddddddg} dddgd }t jj| |gddgd	}t jtjjd
dddddg|d}|j }|jd ksnt	|j
jdks~t	d|jd< |jd kst	|j
jdkst	d S )NZhansgrethe123r   NameNumber)r      r3   oneZtwoZthreeZfour)columnsrO   g(\X@4)rU   rV   rQ   rZ   )r[   rX   )rU   rV   )r@   r   rM   Z	DataFramer   randomZrandnZ
sort_indexZ_is_copyr   rO   r   Zat)Zlev1Zlev2r   dfr   r   r   test_set_value_keeps_names/  s    
r^   c              C   sx   dddg} dgd }t jj| |gddgd}|jttdd	d
gdd}dddg}t jj||gddgd}tj|| d S )Nr   r   r(   blacksizecolor)r   rT   rS   rR   )r   )r@   r   rM   r5   mapintr	   rH   )sizescolorsrO   rD   Zexpected_sizesr   r   r   r   test_set_levels_with_iterable?  s    


rf   )F)Znumpyr   r   Zpandasr@   r   r   Zpandas._testingZ_testingr	   r   r   r%   r1   r;   rE   rF   markZparametrizerJ   rP   r^   rf   r   r   r   r   <module>   s   


"HE/