o
    _~#g`)                     @   sx   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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 )
Nfoobobjectdtype   USzNo matching signature foundmatch)
nparraynan
libwritersmax_len_string_arrayastyper
   pytestraises	TypeError)selfarramsg r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/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   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>7       z?TestMisc.test_fast_multiget_timedelta_resos.<locals>.<listcomp>r   iP: Dmsusc                    r8   r   r   r9   r:   r   r    r<   D   r=   )r   as_unitr   range_valuesr   r
   r   fast_multigetr/   r0   r   timedelta64hash)r   mapping1mapping2oindexr3   resultr   r:   r    "test_fast_multiget_timedelta_resos.   s    
""z+TestMisc.test_fast_multiget_timedelta_resosN)__name__
__module____qualname__r!   r5   rK   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/   r0   )r   targetindicesmaybe_slicer   r   r    %test_maybe_indices_to_slice_left_edgeL   s
   
z2TestIndexing.test_maybe_indices_to_slice_left_edgeend)r6            c   step)r6   r^      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 )NrQ   r   r   
r   rS   rT   r   rU   rV   rW   rX   r/   r0   )r   r]   rb   rY   rZ   r[   r   r   r    9test_maybe_indices_to_slice_left_edge_not_slice_end_stepsV   s   
zFTestIndexing.test_maybe_indices_to_slice_left_edge_not_slice_end_stepscase)r^   r6   r^   r   )r^   r^   r6   r   )r   r6   r^   r6   )r   r^   )r^   r   rh   c                 C   \   t d}t j|t jd}t|t|}t|trJ t	
|| t	
|| ||  d S rP   rR   r   rg   rY   rZ   r[   r   r   r    /test_maybe_indices_to_slice_left_edge_not_sliceg      
z<TestIndexing.test_maybe_indices_to_slice_left_edge_not_slicestart)r   r^   r_   r`   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 )NrQ   ra   r   rd   re   )r   rm   rb   rY   rZ   r[   r   r   r    &test_maybe_indices_to_slice_right_edget      
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 )NrQ   )rn   ro   ra   rQ   r   z7index 100 is out of bounds for axis (0|1) with size 100r   )rQ   ra   ro   rn   )r   rS   r   rT   r   rU   rV   rW   rX   r/   r0   r   r   
IndexError)r   rY   rZ   r[   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)ra   rn   ra   `   )ra   ra   ro   rn   )ro   ro   rn   rt   c                 C   ri   rP   rR   rj   r   r   r    ,test_maybe_indices_to_slice_right_edge_cases   s   
z9TestIndexing.test_maybe_indices_to_slice_right_edge_cases)r6   r^   rc   r_      	   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   rw   r   rd   re   )r   rb   rY   rZ   r[   r   r   r    &test_maybe_indices_to_slice_both_edges   s   
z3TestIndexing.test_maybe_indices_to_slice_both_edges)rc   r^   r   rh   c                 C   ri   )Nrx   r   rR   rj   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))r^   rx   )r_      )A   rn   )r6   r^   rc   r`   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 )NrQ   r   rd   re   )r   rm   r]   rb   rY   rZ   r[   r   r   r    "test_maybe_indices_to_slice_middle   rq   z/TestIndexing.test_maybe_indices_to_slice_middle)      rx   r   )r   r      rx   )rx   r   r   r   c                 C   ri   rP   rR   rj   r   r   r    ,test_maybe_indices_to_slice_middle_not_slice   rl   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   r6   r6   r6   r   r6   r   r   )r   r   uint8r   maybe_booleans_to_slicer   bool_rX   )r   r   rJ   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)rd   rd   r6   r^   r   rd   r   rc   r   r_   )rc   r^   r         )r   r   rT   r   get_reverse_indexerr/   r0   )r   indexerrJ   r3   r   r   r    test_get_reverse_indexer   s   z%TestIndexing.test_get_reverse_indexerr   int64int32c                 C   s$   t jdd|d}t|dsJ d S )Nr   rQ   r   r   rS   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   rQ   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 )Nr6   r^   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   r6   r^   r   r^   r   r   r   r   r    %test_is_range_indexer_not_equal_shape  r   z2TestIndexing.test_is_range_indexer_not_equal_shapeN)rL   rM   rN   r\   r   markparametrizerf   rk   rp   rs   ru   ry   rz   r}   r   r   r   r   skipifr   r   r   r   r   r   r   r    rO   K   sT    
"


	

	



rO   c                   C   s   t jjd usJ d S r'   )r   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/   round_trip_pickler   
no_default)objr   r   r    test_no_default_pickle  s   r   )numpyr   r   pandas._libsr   r   r   r   pandas.compatr   pandasr   pandas._testing_testingr/   r   rO   r   r   r   r   r   r    <module>   s    < K