U
    sVc5                     @   sX   d dl Z d dlZd dlmZ ejdd Zejdd Zejdd ZG d	d
 d
ZdS )    N
FrozenListc                   C   s   dddddgS )N                r	   r	   r	   D/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/indexes/test_frozen.pylst   s    r   c                 C   s   t | S Nr   )r   r	   r	   r
   	container   s    r   c                   C   s   t dddgS )Nu   אu   בcr   r	   r	   r	   r
   unicode_container   s    r   c                   @   sl   e Z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 )TestFrozenListc              	   O   s6   t d}d}tjt|d ||| W 5 Q R X d S )Nz#does not support mutable operationsz/'(_s)?re.(SRE_)?Pattern' object is not callablematch)recompilepytestraises	TypeError)selfargskwargsZmutable_regexmsgr	   r	   r
   check_mutable_error   s    
z"TestFrozenList.check_mutable_errorc                    sz    fdd}|  |  fdd}|  |  fdd}|  |  fdd}|  | d	}|D ]}|  t | q`d S )
Nc                      s   d d< d S )Nr   r   r	   r	   r   r	   r
   setitem!   s    z5TestFrozenList.test_no_mutable_funcs.<locals>.setitemc                      s   d dd< d S )Nr   r   r   r	   r	   r   r	   r
   setslice&   s    z6TestFrozenList.test_no_mutable_funcs.<locals>.setslicec                      s
    d= d S )Nr   r	   r	   r   r	   r
   delitem+   s    z5TestFrozenList.test_no_mutable_funcs.<locals>.delitemc                      s    dd= d S )Nr   r   r	   r	   r   r	   r
   delslice0   s    z6TestFrozenList.test_no_mutable_funcs.<locals>.delslice)extendpopremoveinsert)r   getattr)r   r   r   r   r    r!   Zmutable_methodsmethr	   r   r
   test_no_mutable_funcs    s    



z$TestFrozenList.test_no_mutable_funcsc                 C   s(   |dd }|dd }|  || d S )Nr   r   check_resultr   r   r   resultexpectedr	   r	   r
   test_slicing_maintains_type:   s    z*TestFrozenList.test_slicing_maintains_typec                 C   s   t |tst||kstd S r   )
isinstancer   AssertionErrorr   r,   r-   r	   r	   r
   r*   ?   s    zTestFrozenList.check_resultc                 C   s   t | t| t| d S r   )reprstrbytes)r   r   r	   r	   r
   test_string_methods_dont_failC   s    z,TestFrozenList.test_string_methods_dont_failc                 C   s   t | t| d S r   )r2   r3   )r   r   r	   r	   r
   test_tricky_containerH   s    z$TestFrozenList.test_tricky_containerc                 C   sP   |d }t |dddg }| || d| }t dddg| }| || d S N)r   r   r   r   r   r   )r   r*   r+   r	   r	   r
   test_addL   s    zTestFrozenList.test_addc                 C   s4   | }}|dg7 }|  ||dg  |  || d S )Nr   r)   )r   r   r   qrr	   r	   r
   	test_iaddU   s    
zTestFrozenList.test_iaddc                 C   s,   | d}t|dddg }| || d S r7   )unionr   r*   r+   r	   r	   r
   
test_union^   s    
zTestFrozenList.test_unionc                 C   s,   | dg}tddddg}| || d S )Nr   r   r   r   r   )
differencer   r*   )r   r   r,   r-   r	   r	   r
   test_differencec   s    zTestFrozenList.test_differencec                 C   s4   t ddddgdg}t ddg}| || d S )Nr   r   r   )r   r>   r*   r1   r	   r	   r
   test_difference_dupeh   s    z#TestFrozenList.test_difference_dupec              	   C   s*   d}t jt|d t| W 5 Q R X d S )Nz2^'str' object cannot be interpreted as an integer$r   )r   r   r   r4   )r   r   r   r	   r	   r
   %test_tricky_container_to_bytes_raisesm   s    z4TestFrozenList.test_tricky_container_to_bytes_raisesN)__name__
__module____qualname__r   r(   r.   r*   r5   r6   r8   r;   r=   r?   r@   rA   r	   r	   r	   r
   r      s   		r   )	r   r   Zpandas.core.indexes.frozenr   Zfixturer   r   r   r   r	   r	   r	   r
   <module>   s   


