a
    Pf                     @   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ejd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   sl   t jtdd | rW d    n1 s(0    Y  t jtdd t|  W d    n1 s^0    Y  d S )NzThe truth value of amatch)pytestraises
ValueErrorboolindex r   \/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/indexes/test_any_index.pytest_boolean_context_compat   s
    r   c                 C   s>   d}t jt|d |   W d    n1 s00    Y  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   sH   t jtdt| j dd t|  W d    n1 s:0    Y  d S )Nzunhashable type: ''r   )r   r   r   type__name__hashr	   r   r   r   test_hash_error   s    r   c                 C   sT   t | std d}tjt|d | d | d< W d    n1 sF0    Y  d S )Nz'Test doesn't make sense for empty indexz)Index does not support mutable operationsr   r   )lenr   skipr   r   r   r   r   r   test_mutability#   s
    
r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   sJ   |  dd }| jtkr6|jtkr6| |k s2J d S tj|| dd d S )Nc                 S   s   | S Nr   )xr   r   r   <lambda>/       z+test_map_identity_mapping.<locals>.<lambda>equivexact)mapdtypeobjectr   alltmassert_index_equal)r
   requestresultr   r   r   test_map_identity_mapping+   s
    r*   c                 C   sF   | j g d }tjtdd || _W d    n1 s80    Y  d S )N)applebananacarrotz^Lengthr   )nlevelsr   r   r   names)r
   r/   r   r   r   test_wrong_number_names7   s    r0   c                 C   s   |   j| jksJ d S r   )viewnamer	   r   r   r   test_view_preserves_name=   s    r3   c                 C   s   |   }t||  d S r   )Zravelr&   r'   )r
   resr   r   r   
test_ravelA   s    r5   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestConversionc                 C   s:   |  }|j|jusJ |j|us&J |j|jks6J d S r   Z	to_seriesvaluesr
   r2   selfr
   Zserr   r   r   test_to_seriesH   s    zTestConversion.test_to_seriesc                 C   sx   |j |d}|j|jusJ |j|u s*J |j|jks:J |j dd}|j|jusVJ |j|usdJ |j|jkstJ d S )Nr	   Z__testr2   r7   r9   r   r   r   test_to_series_with_argumentsP   s    z,TestConversion.test_to_series_with_argumentsc                 C   s   |  t|ksJ d S r   )tolistlistr:   r
   r   r   r   test_tolist_matches_lista   s    z'TestConversion.test_tolist_matches_listN)r   
__module____qualname__r;   r=   rA   r   r   r   r   r6   G   s   r6   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||s2J d S )NTr       )r&   round_trip_pickler'   r.   Zequal_levelsr:   r
   r)   r   r   r   test_pickle_roundtripf   s    

z$TestRoundTrips.test_pickle_roundtripc                 C   s0   |j d }|_ t|}||s&J ||_ d S )Nfoo)r2   r&   rF   equals)r:   r
   original_nameZ	unpickledr   r   r   test_pickle_preserves_namem   s    
z)TestRoundTrips.test_pickle_preserves_nameN)r   rB   rC   rH   rL   r   r   r   r   rD   e   s   rD   c                   @   s>   e Zd Zdd Zdd Zdd Zejdg dd	d
 Z	dS )TestIndexingc                 C   s   t jddgt jd}tjtdd || W d    n1 sB0    Y  tjtdd  ||t W d    n1 s0    Y  d S )Nr   rE   )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_erroru   s
    (z=TestIndexing.test_get_loc_listlike_raises_invalid_index_errorc                 C   s&   |d }| |sJ ||us"J d S )N.)rJ   rG   r   r   r   test_getitem_ellipsis   s    z"TestIndexing.test_getitem_ellipsisc                 C   s   |j |dd  j ksJ d S )NrE   r<   r@   r   r   r   test_slice_keeps_name   s    z"TestIndexing.test_slice_keeps_nameitem)e   Zno_intg      @c                 C   sP   d dtddg}tjt|d ||  W d    n1 sB0    Y  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 boundsr   )joinreescaper   r   
IndexError)r:   r
   rT   r   r   r   r   test_getitem_error   s    zTestIndexing.test_getitem_errorN)
r   rB   rC   rQ   rR   rS   r   markZparametrizer[   r   r   r   r   rM   t   s
   
rM   c                   @   s   e Zd Zdd ZdS )TestRenderingc                 C   s0   d|_ dt|v sJ t|jt|v s,J d S )NrI   z'foo')r2   strr   r   r@   r   r   r   test_str   s    zTestRendering.test_strN)r   rB   rC   r_   r   r   r   r   r]      s   r]   c                   @   s   e Zd Zdd ZdS )TestReductionsc                 C   s   d}t jt|d |jdd W d    n1 s40    Y  t jt|d |jdd W d    n1 sn0    Y  t jt|d |jdd W d    n1 s0    Y  t jt|d |jdd W d    n1 s0    Y  d S )Nz8`axis` must be fewer than the number of dimensions \(1\)r   rE   )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   rB   rC   rf   r   r   r   r   r`      s   r`   )__doc__rX   numpyrN   r   Zpandas.errorsr   Zpandas._testingZ_testingr&   r   r   r   r   r\   filterwarningsr*   r0   r3   r5   r6   rD   rM   r]   r`   r   r   r   r   <module>   s&   


%