o
    5c                     @   sj   d dl Zd dlZd dlZd dlmZmZ d dlmZ	 G dd dZ
G dd dZG dd dZd	d
 ZdS )    N)IndexNaTc                	   @   s   e Zd Zejdg dejdddgdd Zejdg dejdd	d
gejdedddfedddfgdd Zdd Z	dS )TestGetSliceBoundskind)getitemlocNzside, expected)left   )right   c                 C   sZ   t td}tjtdd |jd||d}W d    n1 s w   Y  ||ks+J d S )Nabcdef'kind' argumentmatcher   side)r   listtmassert_produces_warningFutureWarningget_slice_bound)selfr   r   expectedindexresult r   c/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/indexes/base_class/test_indexing.pytest_get_slice_bounds_within   s
   z/TestGetSliceBounds.test_get_slice_bounds_withinr   r   r
   zdata, bound, expectedr   x   bcdefgar   c                 C   sV   t |}tjtdd |j|||d}W d    n1 sw   Y  ||ks)J d S )Nr   r   r   )r   r   r   r   r   )r   r   r   r   databoundr   r   r   r   r   test_get_slice_bounds_outside   s
   z0TestGetSliceBounds.test_get_slice_bounds_outsidec                 C   sF   t jtdd tg jddd W d    d S 1 sw   Y  d S )NzInvalid value for side kwargr   r"   middle)r   )pytestraises
ValueErrorr   r   )r   r   r   r   "test_get_slice_bounds_invalid_side    s   "z5TestGetSliceBounds.test_get_slice_bounds_invalid_sideN)
__name__
__module____qualname__r'   markparametrizer   r   r%   r*   r   r   r   r   r      s    r   c                   @   s   e Zd Zdd ZdS )TestGetIndexerNonUniquec                 C   sT   t ddgt dg\}}ttjdgtjd| ttjdgtjd| d S )NABr   dtype)r   get_indexer_non_uniquer   assert_numpy_array_equalnparrayintp)r   indexesmissingr   r   r   *test_get_indexer_non_unique_dtype_mismatch&   s   zBTestGetIndexerNonUnique.test_get_indexer_non_unique_dtype_mismatchN)r+   r,   r-   r=   r   r   r   r   r0   %   s    r0   c                   @   s$   e Zd Zejjdd Zdd ZdS )
TestGetLocc                 C   sb   t d}tjddd}tj|td|g}| }t|d }|| }||}||ks/J d S )NABCDEFGHIJKLMNOPQRSTUVWXYZz
2016-01-01d   )periodsi     )	r   pd
date_range
MultiIndexfrom_productrangeto_flat_indexlenget_loc)r   levdtimioidxr   tupresr   r   r   .test_get_loc_tuple_monotonic_above_size_cutoff.   s   
z9TestGetLoc.test_get_loc_tuple_monotonic_above_size_cutoffc                 C   s   t dtjd ddd gtd}|tj}|dksJ |d }tg d}t|| tj	t
dd |t W d    d S 1 sCw   Y  d S )Nfoog      ?r4      )FFTFFTr   r   )r   r8   nanobjectrJ   r9   r   r7   r'   r(   KeyErrorr   )r   idxrP   r   r   r   r   4test_get_loc_nan_object_dtype_nonmonotonic_nonunique?   s   
"z?TestGetLoc.test_get_loc_nan_object_dtype_nonmonotonic_nonuniqueN)r+   r,   r-   r'   r.   slowrQ   rX   r   r   r   r   r>   -   s    
r>   c                  C   s:   t jddt jgdd} | j|  }tdg}t|| d S )NTFbooleanr4   r   )rC   SeriesNAr   r   r   assert_index_equal)serr   r   r   r   r   test_getitem_boolean_ea_indexerQ   s   

r_   )numpyr8   r'   pandasrC   r   r   pandas._testing_testingr   r   r0   r>   r_   r   r   r   r   <module>   s    $