o
    %j:+                     @   s   d dl Z d dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ G dd dZG dd dZd	d
 Zdd Zdd ZdS )    N)	Timedeltalibwriters)IS64)Indexc                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestMiscc                 C   s   t jddt jgdd }}t|dksJ |dt}t|dks'J |dt}t|dks8J d}tjt	|d	 t|d W d    d S 1 sUw   Y  d S )
NZfoobobjectdtype   USzNo matching signature foundmatch)
nparraynan
libwritersZmax_len_string_arrayastyper	   pytestraises	TypeError)selfarramsg r   [/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/libs/test_lib.pytest_max_len_string_array   s   "z"TestMisc.test_max_len_string_arrayc                 C   s   ddgddgddgg}dd |D }t g d}tj|d	d
}tt || dd |D }t g d}tj|dd
}tt || d S )Npr   ndsc                 s       | ]}|V  qd S Nr   .0keyr   r   r   	<genexpr>&       zCTestMisc.test_fast_unique_multiple_list_gen_sort.<locals>.<genexpr>)r   r"   r!   r    r#   T)sortc                 s   r$   r%   r   r&   r   r   r   r)   +   r*   )r    r   r!   r"   r#   F)r   r   r   Zfast_unique_multiple_list_gentmassert_numpy_array_equal)r   keysgenexpectedoutr   r   r   'test_fast_unique_multiple_list_gen_sort#   s   z0TestMisc.test_fast_unique_multiple_list_gen_sortc                    s
  t dd  di} ddi}t fddtdD jt}t||}t||}t	
|| t tdd t t d	ksHJ t t d
ksUJ  di} d	di}t fddtdD jt}t||}t||}t	
|| d S )N   )daysr#   c                       g | ]} | qS r   r   r'   r!   tdr   r   
<listcomp>9       z?TestMisc.test_fast_multiget_timedelta_resos.<locals>.<listcomp>r   iP: Dmsusc                    r5   r   r   r6   r7   r   r   r9   F   r:   )r   Zas_unitr   range_valuesr   r	   r   Zfast_multigetr,   r-   r   Ztimedelta64hash)r   Zmapping1Zmapping2Zoindexr0   resultr   r7   r   "test_fast_multiget_timedelta_resos0   s    
""z+TestMisc.test_fast_multiget_timedelta_resosN)__name__
__module____qualname__r   r2   rB   r   r   r   r   r      s    r   c                	   @   s  e Zd Zdd Zejdg dejdg ddd Zejd	g d
g dg dg dg dgdd Zejdg dejdg ddd Z	dd Z
ejd	g dg dg dgdd Zejdg ddd Zejd	g dg dg dgd d! Zejd"g d#ejdg d$d%d& Zejd	g d'g d(g d)gd*d+ Zd,d- Zd.d/ Zejd0d1d2gd3d4 Zejje d5d6ejd0d1d2gd7d8 Zejd0d1d2gd9d: Zejd0d1d2gd;d< Zd=S )>TestIndexingc                 C   sP   t d}t jg t jd}t|t|}t|tsJ t	
|| ||  d S Nd   r
   r   aranger   intpr   maybe_indices_to_slicelen
isinstanceslicer,   r-   )r   targetindicesmaybe_slicer   r   r   %test_maybe_indices_to_slice_left_edgeN   s
   
z2TestIndexing.test_maybe_indices_to_slice_left_edgeend)r3            c   step)r3   rU      c                 C   s   t d}t jd||t jd}t|t|}t|tsJ t	|| ||  |d d d }t|t|}t|ts>J t	|| ||  d S )NrH   r   r
   
r   rJ   rK   r   rL   rM   rN   rO   r,   r-   )r   rT   rY   rP   rQ   rR   r   r   r   9test_maybe_indices_to_slice_left_edge_not_slice_end_stepsX   s   
zFTestIndexing.test_maybe_indices_to_slice_left_edge_not_slice_end_stepscase)rU   r3   rU   r   )rU   rU   r3   r   )r   r3   rU   r3   )r   rU   )rU   r   r_   c                 C   \   t d}t j|t jd}t|t|}t|trJ t	
|| t	
|| ||  d S rG   rI   r   r^   rP   rQ   rR   r   r   r   /test_maybe_indices_to_slice_left_edge_not_slicei      
z<TestIndexing.test_maybe_indices_to_slice_left_edge_not_slicestart)r   rU   rV   rW   a   b   c                 C   s   t d}t j|d|t jd}t|t|}t|tsJ t	|| ||  |d d d }t|t|}t|ts>J t	|| ||  d S )NrH   rX   r
   r[   r\   )r   rd   rY   rP   rQ   rR   r   r   r   &test_maybe_indices_to_slice_right_edgev      
z3TestIndexing.test_maybe_indices_to_slice_right_edgec                 C   sh  t d}t jg dt jd}t|t|}t|trJ t	
|| d}tjt|d ||  W d    n1 s<w   Y  tjt|d ||  W d    n1 sWw   Y  t jg dt jd}t|t|}t|truJ t	
|| tjt|d ||  W d    n1 sw   Y  tjt|d ||  W d    d S 1 sw   Y  d S )NrH   )re   rf   rX   rH   r
   z7index 100 is out of bounds for axis (0|1) with size 100r   )rH   rX   rf   re   )r   rJ   r   rK   r   rL   rM   rN   rO   r,   r-   r   r   
IndexError)r   rP   rQ   rR   r   r   r   r   0test_maybe_indices_to_slice_right_edge_not_slice   s,   




"z=TestIndexing.test_maybe_indices_to_slice_right_edge_not_slice)rX   re   rX   `   )rX   rX   rf   re   )rf   rf   re   rk   c                 C   r`   rG   rI   ra   r   r   r   ,test_maybe_indices_to_slice_right_edge_cases   s   
z9TestIndexing.test_maybe_indices_to_slice_right_edge_cases)r3   rU   rZ   rV      	   c                 C   s   t d}t jdd|t jd}t|t|}t|tsJ t	|| ||  |d d d }t|t|}t|ts>J t	|| ||  d S )N
   r   rn   r
   r[   r\   )r   rY   rP   rQ   rR   r   r   r   &test_maybe_indices_to_slice_both_edges   s   
z3TestIndexing.test_maybe_indices_to_slice_both_edges)rZ   rU   r   r_   c                 C   r`   )Nro   r
   rI   ra   r   r   r   0test_maybe_indices_to_slice_both_edges_not_slice   s   
z=TestIndexing.test_maybe_indices_to_slice_both_edges_not_slicez
start, end))rU   ro   )rV      )A   re   )r3   rU   rZ   rW   c                 C   s   t d}t j|||t jd}t|t|}t|tsJ t	|| ||  |d d d }t|t|}t|ts>J t	|| ||  d S )NrH   r
   r[   r\   )r   rd   rT   rY   rP   rQ   rR   r   r   r   "test_maybe_indices_to_slice_middle   rh   z/TestIndexing.test_maybe_indices_to_slice_middle)      ro   rv   )rv   rv      ro   )ro   rw   rv   rw   c                 C   r`   rG   rI   ra   r   r   r   ,test_maybe_indices_to_slice_middle_not_slice   rc   z9TestIndexing.test_maybe_indices_to_slice_middle_not_slicec                 C   sV   t jg dt jd}t|}|jt jksJ t|d d }|tddks)J d S )N)r   r   r3   r3   r3   r   r3   r
   r   )r   r   Zuint8r   Zmaybe_booleans_to_slicer   Zbool_rO   )r   r   rA   r   r   r   test_maybe_booleans_to_slice   s
   
z)TestIndexing.test_maybe_booleans_to_slicec                 C   sD   t jg dt jd}t|d}t jg dt jd}t|| d S )N)r[   r[   r3   rU   r   r[   r   rZ   r
   rV   )rZ   rU   r         )r   r   rK   r   Zget_reverse_indexerr,   r-   )r   ZindexerrA   r0   r   r   r   test_get_reverse_indexer   s   z%TestIndexing.test_get_reverse_indexerr   Zint64Zint32c                 C   s$   t jdd|d}t|dsJ d S )Nr   rH   r
   r   rJ   r   is_range_indexerr   r   leftr   r   r   test_is_range_indexer   s   z"TestIndexing.test_is_range_indexerzx2**31 is too big for Py_ssize_t on 32-bit. It doesn't matter though since you cannot create an array that long on 32-bit)reasonc                 C   s$   t jdd|d}t|drJ d S )Nr   rH   r
   l        r}   r   r   r   r   test_is_range_indexer_big_n   s   z(TestIndexing.test_is_range_indexer_big_nc                 C   s&   t jddg|d}t|drJ d S )Nr3   rU   r
   r   r   r   r~   r   r   r   r   test_is_range_indexer_not_equal
     z,TestIndexing.test_is_range_indexer_not_equalc                 C   s&   t jg d|d}t|drJ d S )N)r   r3   rU   r
   rU   r   r   r   r   r   %test_is_range_indexer_not_equal_shape  r   z2TestIndexing.test_is_range_indexer_not_equal_shapeN)rC   rD   rE   rS   r   markZparametrizer]   rb   rg   rj   rl   rp   rq   rt   rx   ry   r|   r   Zskipifr   r   r   r   r   r   r   r   rF   M   sT    
"


	

	



rF   c                   C   s   t jjd usJ d S r%   )r   Zhasnans__doc__r   r   r   r   'test_cache_readonly_preserve_docstrings  s   r   c                  C   s   t tj} | tju sJ d S r%   )r,   Zround_trip_pickler   Z
no_default)objr   r   r   test_no_default_pickle  s   r   c                  C   sf   t jdd gtd} tt| } tj| dd}t | |r J | d d u s(J |d t j	u s1J d S )Nr   r
   F)copyr3   )
r   r   r	   pickleloadsdumpsr   Zensure_string_arrayZshares_memoryr   )r   rA   r   r   r   test_ensure_string_array_copy"  s   r   )r   numpyr   r   Zpandas._libsr   r   r   r   Zpandas.compatr   Zpandasr   Zpandas._testingZ_testingr,   r   rF   r   r   r   r   r   r   r   <module>   s    < K