U
    `»{j›  ã                   @   sÖ   d Z ddlZddlZddlZddlmZ ddlm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G dd„ dƒZG dd„ dƒZG dd„ dƒZG d d!„ d!ƒZG d"d#„ d#ƒZdS )$z9
Tests that can be parametrized over _any_ Index object.
é    N)ÚInvalidIndexErrorc              	   C   sD   t jtdd��
 | rW 5 Q R X t jtdd�� t| ƒ W 5 Q R X d S )NzThe truth value of a©Úmatch)ÚpytestÚraisesÚ
ValueErrorÚbool©Úindex© r   úb/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/indexes/test_any_index.pyÚtest_boolean_context_compat   s
    
r   c              	   C   s*   d}t jt|d�� |  ¡  W 5 Q R X d S )Nz=cannot sort an Index object in-place, use sort_values insteadr   )r   r   Ú	TypeErrorÚsort©r
   Úmsgr   r   r   Ú	test_sort   s    r   c              	   C   s4   t jtdt| ƒj› d�d�� t| ƒ W 5 Q R X d S )Nzunhashable type: 'ú'r   )r   r   r   ÚtypeÚ__name__Úhashr	   r   r   r   Útest_hash_error   s    r   c              	   C   s&   t  t¡� | jtd� W 5 Q R X d S )N©Údtype)ÚtmÚassert_produces_warningÚFutureWarningÚcopyÚobjectr	   r   r   r   Útest_copy_dtype_deprecated#   s    r   c              	   C   s:   t | ƒsd S d}tjt|d�� | d | d< W 5 Q R X d S )Nz)Index does not support mutable operationsr   r   )Úlenr   r   r   r   r   r   r   Útest_mutability)   s
    r!   c                 C   sJ   |   dd„ ¡}| jtkr6|jtkr6| |k ¡ s2t‚d S tj|| dd� d S )Nc                 S   s   | S ©Nr   )Úxr   r   r   Ú<lambda>4   ó    z+test_map_identity_mapping.<locals>.<lambda>Úequiv©Úexact)Úmapr   r   r   ÚallÚAssertionErrorr   Úassert_index_equal)r
   ÚrequestÚresultr   r   r   Útest_map_identity_mapping1   s
    r/   c              	   C   s4   | j dddg }tjtdd�� || _W 5 Q R X d S )NÚappleÚbananaÚcarrotz^Lengthr   )Únlevelsr   r   r   Únames)r
   r4   r   r   r   Útest_wrong_number_names<   s    r5   c                 C   s   |   ¡ j| jkst‚d S r"   )ÚviewÚnamer+   r	   r   r   r   Útest_view_preserves_nameB   s    r8   c              	   C   s"   t  t¡� |  ¡  W 5 Q R X d S r"   )r   r   r   Zravelr	   r   r   r   Útest_ravel_deprecationF   s    r9   c              	   C   s.   d}t jt|d�� |  | j¡ W 5 Q R X d S )Nz is_type_compatible is deprecatedr   )r   r   r   Zis_type_compatibleZinferred_typer   r   r   r   Ú#test_is_type_compatible_deprecationL   s    r:   c              	   C   s*   d}t jt|d�� |  ¡  W 5 Q R X d S )NzIndex.is_mixed is deprecatedr   )r   r   r   Zis_mixedr   r   r   r   Útest_is_mixed_deprecatedS   s    r;   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestConversionc                 C   s:   |  ¡ }|j|jk	st‚|j|k	s&t‚|j|jks6t‚d S r"   ©Z	to_seriesÚvaluesr+   r
   r7   ©Úselfr
   Zserr   r   r   Útest_to_series[   s    zTestConversion.test_to_seriesc                 C   sx   |j |d�}|j|jk	st‚|j|ks*t‚|j|jks:t‚|j dd�}|j|jk	sVt‚|j|k	sdt‚|j|jkstt‚d S )Nr	   Z__test)r7   r=   r?   r   r   r   Útest_to_series_with_argumentsc   s    z,TestConversion.test_to_series_with_argumentsc                 C   s   |  ¡ t|ƒkst‚d S r"   )ÚtolistÚlistr+   ©r@   r
   r   r   r   Útest_tolist_matches_listt   s    z'TestConversion.test_tolist_matches_listN)r   Ú
__module__Ú__qualname__rA   rB   rF   r   r   r   r   r<   Z   s   r<   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestRoundTripsc                 C   s6   t  |¡}t j||dd� |jdkr2| |¡s2t‚d S )NTr'   é   )r   Úround_trip_pickler,   r3   Zequal_levelsr+   ©r@   r
   r.   r   r   r   Útest_pickle_roundtripy   s    

z$TestRoundTrips.test_pickle_roundtripc                 C   s0   |j d }|_ t |¡}| |¡s&t‚||_ d S )NÚfoo)r7   r   rK   Úequalsr+   )r@   r
   Úoriginal_nameZ	unpickledr   r   r   Útest_pickle_preserves_name€   s    
z)TestRoundTrips.test_pickle_preserves_nameN)r   rG   rH   rM   rQ   r   r   r   r   rI   x   s   rI   c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zej ddd	d
g¡ej 	d¡dd„ ƒƒZ
dS )ÚTestIndexingc              	   C   sf   t jddgt jd�}tjtdd�� | |¡ W 5 Q R X tjtdd�� | | t¡¡ W 5 Q R X d S )Nr   rJ   r   z\[0 1\]r   z\[False  True\])	ÚnpÚarrayZintpr   r   r   Zget_locZastyper   )r@   r
   Úkeyr   r   r   Ú0test_get_loc_listlike_raises_invalid_index_errorˆ   s
    z=TestIndexing.test_get_loc_listlike_raises_invalid_index_errorc                 C   s&   |d }|  |¡st‚||k	s"t‚d S )N.)rO   r+   rL   r   r   r   Útest_getitem_ellipsis’   s    z"TestIndexing.test_getitem_ellipsisc                 C   s   |j |dd … j kst‚d S )NrJ   )r7   r+   rE   r   r   r   Útest_slice_keeps_name˜   s    z"TestIndexing.test_slice_keeps_nameÚitemée   Zno_intg      @zignore::FutureWarningc              	   C   s>   d  dt d¡ddg¡}tjt|d�� ||  W 5 Q R X d S )Nú|z5index 101 is out of bounds for axis 0 with size [\d]+zuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indiceszindex out of boundszFOnly integers, slices and integer or boolean arrays are valid indices.r   )ÚjoinÚreÚescaper   r   Ú
IndexError)r@   r
   rY   r   r   r   r   Útest_getitem_error›   s    ÿøÿzTestIndexing.test_getitem_errorN)r   rG   rH   rV   rW   rX   r   ÚmarkZparametrizeÚfilterwarningsr`   r   r   r   r   rR   ‡   s   

rR   c                   @   s   e Zd Zdd„ ZdS )ÚTestRenderingc                 C   s0   d|_ dt|ƒkst‚t|ƒjt|ƒks,t‚d S )NrN   z'foo')r7   Ústrr+   r   r   rE   r   r   r   Útest_str±   s    zTestRendering.test_strN)r   rG   rH   re   r   r   r   r   rc   °   s   rc   c                   @   s   e Zd Zdd„ ZdS )ÚTestReductionsc              	   C   s    d}t jt|d�� |jdd� W 5 Q R X t jt|d�� |jdd� W 5 Q R X t jt|d�� |jdd� W 5 Q R X t jt|d�� |jdd� W 5 Q R X d S )Nz8`axis` must be fewer than the number of dimensions \(1\)r   rJ   )Zaxisé   éþÿÿÿéýÿÿÿ)r   r   r   ZargmaxZargminÚminÚmax)r@   r
   r   r   r   r   Útest_argmax_axis_invalid¹   s    z'TestReductions.test_argmax_axis_invalidN)r   rG   rH   rl   r   r   r   r   rf   ¸   s   rf   )Ú__doc__r]   ÚnumpyrS   r   Zpandas.errorsr   Zpandas._testingZ_testingr   r   r   r   r   r!   r/   r5   r8   r9   r:   r;   r<   rI   rR   rc   rf   r   r   r   r   Ú<module>   s*   
)