o
    i                     @   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   sp   t jtdd | r	 W d    n1 sw   Y  t jtdd t|  W d    d S 1 s1w   Y  d S )NzThe truth value of amatch)pytestraises
ValueErrorboolindex r   ^/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/indexes/test_any_index.pytest_boolean_context_compat   s   
"r   c                 C   @   d}t jt|d |   W d    d S 1 sw   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   sJ   t jtdt| j dd t|  W d    d S 1 sw   Y  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 d    d S 1 sw   Y  d S )Ndtype)tmassert_produces_warningFutureWarningcopyobjectr	   r   r   r   test_copy_dtype_deprecated#   s   "r    c                 C   sP   t | sd S d}tjt|d | d | d< W d    d S 1 s!w   Y  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r|jtkr| |k sJ d S tj|| dd d S )Nc                 S   s   | S Nr   )xr   r   r   <lambda>4   s    z+test_map_identity_mapping.<locals>.<lambda>equivexact)mapr   r   r   allr   assert_index_equal)r
   requestresultr   r   r   test_map_identity_mapping1   s
   r.   c                 C   sH   | j g d }tjtdd || _W d    d S 1 sw   Y  d S )N)applebananacarrotz^Lengthr   )nlevelsr   r   r   names)r
   r3   r   r   r   test_wrong_number_names<   s   "r4   c                 C   s   |   j| jks
J d S r#   )viewnamer	   r   r   r   test_view_preserves_nameB      r7   c                 C   s8   t t |   W d    d S 1 sw   Y  d S r#   )r   r   r   ravelr	   r   r   r   test_ravel_deprecationF   s   
"r:   c                 C   sD   d}t jt|d | | j W d    d S 1 sw   Y  d S )Nz is_type_compatible is deprecatedr   )r   r   r   is_type_compatibleinferred_typer   r   r   r   #test_is_type_compatible_deprecationL   s   "r=   c                 C   r   )NzIndex.is_mixed is deprecatedr   )r   r   r   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usJ |j|usJ |j|jksJ d S r#   	to_seriesvaluesr
   r6   selfr
   serr   r   r   test_to_series[   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s+J |j|us2J |j|jks:J d S )Nr	   __testr6   rA   rD   r   r   r   test_to_series_with_argumentsc   s   z,TestConversion.test_to_series_with_argumentsc                 C   s   |  t|ks
J d S r#   )tolistlistrE   r
   r   r   r   test_tolist_matches_listt   r8   z'TestConversion.test_tolist_matches_listN)r   
__module____qualname__rG   rJ   rN   r   r   r   r   r@   Z   s    r@   c                   @   s   e Zd Zdd Zdd ZdS )TestRoundTripsc                 C   s:   t |}t j||dd |jdkr||sJ d S d S )NTr'      )r   round_trip_pickler+   r2   equal_levelsrE   r
   r-   r   r   r   test_pickle_roundtripy   s   

z$TestRoundTrips.test_pickle_roundtripc                 C   s0   |j d}|_ t|}||sJ ||_ d S )Nfoo)r6   r   rS   equals)rE   r
   original_name	unpickledr   r   r   test_pickle_preserves_name   s   

z)TestRoundTrips.test_pickle_preserves_nameN)r   rO   rP   rV   r[   r   r   r   r   rQ   x   s    rQ   c                   @   sJ   e Zd Zdd Zdd Zdd Zejdg dej	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 s!w   Y  tjtdd ||t W d    d S 1 sAw   Y  d S )Nr   rR   r   z\[0 1\]r   z\[False  True\])	nparrayintpr   r   r   get_locastyper   )rE   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J ||usJ d S )N.)rX   rU   r   r   r   test_getitem_ellipsis   s   z"TestIndexing.test_getitem_ellipsisc                 C   s   |j |dd  j ksJ d S )NrR   rI   rM   r   r   r   test_slice_keeps_name   s   z"TestIndexing.test_slice_keeps_nameitem)e   no_intg      @zignore::FutureWarningc                 C   sT   d dtdddg}tjt|d ||  W d    d S 1 s#w   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 boundszFOnly integers, slices and integer or boolean arrays are valid indices.r   )joinreescaper   r   
IndexError)rE   r
   rf   r   r   r   r   test_getitem_error   s   
"zTestIndexing.test_getitem_errorN)r   rO   rP   rc   rd   re   r   markparametrizefilterwarningsrn   r   r   r   r   r\      s    

r\   c                   @      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 )NrW   z'foo')r6   strr   r   rM   r   r   r   test_str   s   zTestRendering.test_strN)r   rO   rP   ru   r   r   r   r   rs          rs   c                   @   rr   )TestReductionsc                 C   s   d}t jt|d |jdd W d    n1 sw   Y  t jt|d |jdd W d    n1 s7w   Y  t jt|d |jdd W d    n1 sTw   Y  t jt|d |jdd W d    d S 1 srw   Y  d S )Nz8`axis` must be fewer than the number of dimensions \(1\)r   rR   )axis   )r   r   r   argmaxargminminmax)rE   r
   r   r   r   r   test_argmax_axis_invalid   s   "z'TestReductions.test_argmax_axis_invalidN)r   rO   rP   r   r   r   r   r   rw      rv   rw   )__doc__rk   numpyr]   r   pandas.errorsr   pandas._testing_testingr   r   r   r   r    r"   r.   r4   r7   r:   r=   r?   r@   rQ   r\   rs   rw   r   r   r   r   <module>   s,    
)