
    bMh:+                         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          Z G d d          Zd	 Zd
 Zd ZdS )    N)	Timedeltalibwriters)IS64)Indexc                        e Zd Zd Zd Zd ZdS )TestMiscc                 Z   t          j        ddt           j        gd          x}}t          j        |          dk    sJ |                    d                              t                    }t          j        |          dk    sJ |                    d                              t                    }t          j        |          dk    sJ d}t          j        t          |	          5  t          j        |                    d                     d d d            d S # 1 swxY w 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msgs       Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/libs/test_lib.pytest_max_len_string_arrayz"TestMisc.test_max_len_string_array   sQ   (E3/x@@@@a.s33q8888 hhsmm""6**.s33q8888 hhsmm""6**.s33q8888 ,]9C000 	= 	=+CJJsOO<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   +(D  D$'D$c                    ddgddgddgg}d |D             }t          j        g d          }t          j        |d	          }t	          j        t          j        |          |           d
 |D             }t          j        g d          }t          j        |d	          }t	          j        t          j        |          |           d S )Npr    ndsc              3      K   | ]}|V  d S N .0keys     r"   	<genexpr>zCTestMisc.test_fast_unique_multiple_list_gen_sort.<locals>.<genexpr>&   "      ##ss######    )r    r'   r&   r%   r(   T)sortc              3      K   | ]}|V  d S r*   r+   r,   s     r"   r/   zCTestMisc.test_fast_unique_multiple_list_gen_sort.<locals>.<genexpr>+   r0   r1   )r%   r    r&   r'   r(   F)r   r   r   fast_unique_multiple_list_gentmassert_numpy_array_equal)r   keysgenexpectedouts        r"   'test_fast_unique_multiple_list_gen_sortz0TestMisc.test_fast_unique_multiple_list_gen_sort#   s    c
S#Jc
3##d###855566/$???
#BHSMM8<<<##d###855566/%@@@
#BHSMM8<<<<<r1   c                    t          d          di}                    d          di}t          fdt          d          D                       j                            t                    }t          j        ||          }t          j        ||          }t          j
        ||           t          t          j        dd                    t                    t                              d                    k    sJ t                    t                              d	                    k    sJ di}                    d          di}t          fd
t          d          D                       j                            t                    }t          j        ||          }t          j        ||          }t          j
        ||           d S )N   )daysr(   c                     g | ]}|z  S r+   r+   r-   r&   tds     r"   
<listcomp>z?TestMisc.test_fast_multiget_timedelta_resos.<locals>.<listcomp>9       1111Q111r1   r   iP: Dmsusc                     g | ]}|z  S r+   r+   r@   s     r"   rB   z?TestMisc.test_fast_multiget_timedelta_resos.<locals>.<listcomp>F   rC   r1   )r   as_unitr   range_valuesr   r   r   fast_multigetr5   r6   r   timedelta64hash)r   mapping1mapping2oindexr9   resultrA   s         @r"   "test_fast_multiget_timedelta_resosz+TestMisc.test_fast_multiget_timedelta_resos0   s    A7JJsOOQ'1111a11122:AA&II$Xv66"8V44
#FH555 r~fc2233Bxx4

4 0 0111111Bxx4

4 0 01111117JJt$$a(1111a11122:AA&II$Xv66"8V44
#FH55555r1   N)__name__
__module____qualname__r#   r;   rR   r+   r1   r"   r	   r	      sA        = = ="= = =6 6 6 6 6r1   r	   c            	          e Zd Zd Zej                            dg d          ej                            dg d          d                         Zej                            dg dg d	g d
g dg dg          d             Zej                            dg d          ej                            dg d          d                         Z	d Z
ej                            dg dg dg dg          d             Zej                            dg d          d             Zej                            dg dg d	g d
g          d             Zej                            dg d          ej                            dg d          d                         Zej                            dg dg dg d g          d!             Zd" Zd# Zej                            d$d%d&g          d'             Zej                            e d()          ej                            d$d%d&g          d*                         Zej                            d$d%d&g          d+             Zej                            d$d%d&g          d,             Zd-S ).TestIndexingc                 "   t          j        d          }t          j        g t           j                  }t	          j        |t          |                    }t          |t                    sJ t          j
        ||         ||                    d S Nd   r   r   aranger   intpr   maybe_indices_to_slicelen
isinstanceslicer5   r6   )r   targetindicesmaybe_slices       r"   %test_maybe_indices_to_slice_left_edgez2TestIndexing.test_maybe_indices_to_slice_left_edgeN   sw    3 (2RW---0#f++FF+u-----
#F7OVK5HIIIIIr1   end)r=            c   step)r=   rg      c                    t          j        d          }t          j        d||t           j                  }t          j        |t          |                    }t          |t                    sJ t          j	        ||         ||                    |d d d         }t          j        |t          |                    }t          |t                    sJ t          j	        ||         ||                    d S )NrZ   r   r   
r   r\   r]   r   r^   r_   r`   ra   r5   r6   )r   rf   rk   rb   rc   rd   s         r"   9test_maybe_indices_to_slice_left_edge_not_slice_end_stepszFTestIndexing.test_maybe_indices_to_slice_left_edge_not_slice_end_stepsX   s     3)AsD8880#f++FF+u-----
#F7OVK5HIII $$B$-0#f++FF+u-----
#F7OVK5HIIIIIr1   case)rg   r=   rg   r   )rg   rg   r=   r   )r   r=   rg   r=   )r   rg   )rg   r   rr   c                 L   t          j        d          }t          j        |t           j                  }t	          j        |t          |                    }t          |t                    rJ t          j
        ||           t          j
        ||         ||                    d S rY   r[   r   rq   rb   rc   rd   s        r"   /test_maybe_indices_to_slice_left_edge_not_slicez<TestIndexing.test_maybe_indices_to_slice_left_edge_not_slicei       
 3(4rw///0#f++FFk511111
#K999
#F7OVK5HIIIIIr1   start)r   rg   rh   ri   a   b   c                    t          j        d          }t          j        |d|t           j                  }t          j        |t          |                    }t          |t                    sJ t          j	        ||         ||                    |d d d         }t          j        |t          |                    }t          |t                    sJ t          j	        ||         ||                    d S )NrZ   rj   r   rn   ro   )r   rw   rk   rb   rc   rd   s         r"   &test_maybe_indices_to_slice_right_edgez3TestIndexing.test_maybe_indices_to_slice_right_edgev   s     3 )E2t27;;;0#f++FF+u-----
#F7OVK5HIII $$B$-0#f++FF+u-----
#F7OVK5HIIIIIr1   c                    t          j        d          }t          j        g dt           j                  }t	          j        |t          |                    }t          |t                    rJ t          j
        ||           d}t          j        t          |          5  ||          d d d            n# 1 swxY w Y   t          j        t          |          5  ||          d d d            n# 1 swxY w Y   t          j        g dt           j                  }t	          j        |t          |                    }t          |t                    rJ t          j
        ||           t          j        t          |          5  ||          d d d            n# 1 swxY w Y   t          j        t          |          5  ||          d d d            d S # 1 swxY w Y   d S )NrZ   )rx   ry   rj   rZ   r   z7index 100 is out of bounds for axis (0|1) with size 100r   )rZ   rj   ry   rx   )r   r\   r   r]   r   r^   r_   r`   ra   r5   r6   r   r   
IndexError)r   rb   rc   rd   r!   s        r"   0test_maybe_indices_to_slice_right_edge_not_slicez=TestIndexing.test_maybe_indices_to_slice_right_edge_not_slice   s   3(,,,BG<<<0#f++FFk511111
#K999G]:S111 	 	7OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	  	 ;	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  (,,,BG<<<0#f++FFk511111
#K999]:S111 	 	7OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	  	 ;	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 sH   "	B77B;>B;	C22C69C6	FF!$F!	GG G)rj   rx   rj   `   )rj   rj   ry   rx   )ry   ry   rx   r   c                 L   t          j        d          }t          j        |t           j                  }t	          j        |t          |                    }t          |t                    rJ t          j
        ||           t          j
        ||         ||                    d S rY   r[   rt   s        r"   ,test_maybe_indices_to_slice_right_edge_casesz9TestIndexing.test_maybe_indices_to_slice_right_edge_cases   s     3(4rw///0#f++FFk511111
#K999
#F7OVK5HIIIIIr1   )r=   rg   rl   rh      	   c                    t          j        d          }t          j        dd|t           j                  }t          j        |t          |                    }t          |t                    sJ t          j	        ||         ||                    |d d d         }t          j        |t          |                    }t          |t                    sJ t          j	        ||         ||                    d S )N
   r   r   r   rn   ro   )r   rk   rb   rc   rd   s        r"   &test_maybe_indices_to_slice_both_edgesz3TestIndexing.test_maybe_indices_to_slice_both_edges   s    2 )Aq$bg6660#f++FF+u-----
#F7OVK5HIII $$B$-0#f++FF+u-----
#F7OVK5HIIIIIr1   )rl   rg   r   rr   c                 L   t          j        d          }t          j        |t           j                  }t	          j        |t          |                    }t          |t                    rJ t          j
        ||           t          j
        ||         ||                    d S )Nr   r   r[   rt   s        r"   0test_maybe_indices_to_slice_both_edges_not_slicez=TestIndexing.test_maybe_indices_to_slice_both_edges_not_slice   s     2(4rw///0#f++FFk511111
#K999
#F7OVK5HIIIIIr1   z
start, end))rg   r   )rh      )A   rx   )r=   rg   rl   ri   c                    t          j        d          }t          j        |||t           j                  }t          j        |t          |                    }t          |t                    sJ t          j	        ||         ||                    |d d d         }t          j        |t          |                    }t          |t                    sJ t          j	        ||         ||                    d S )NrZ   r   rn   ro   )r   rw   rf   rk   rb   rc   rd   s          r"   "test_maybe_indices_to_slice_middlez/TestIndexing.test_maybe_indices_to_slice_middle   s     3 )E3BG<<<0#f++FF+u-----
#F7OVK5HIII $$B$-0#f++FF+u-----
#F7OVK5HIIIIIr1   )      r   r   )r   r      r   )r   r   r   r   c                 L   t          j        d          }t          j        |t           j                  }t	          j        |t          |                    }t          |t                    rJ t          j
        ||           t          j
        ||         ||                    d S rY   r[   rt   s        r"   ,test_maybe_indices_to_slice_middle_not_slicez9TestIndexing.test_maybe_indices_to_slice_middle_not_slice   rv   r1   c                    t          j        g dt           j                  }t          j        |          }|j        t           j        k    sJ t          j        |d d                   }|t          dd          k    sJ d S )N)r   r   r=   r=   r=   r   r=   r   r   )r   r   uint8r   maybe_booleans_to_slicer   bool_ra   )r   r   rQ   s      r"   test_maybe_booleans_to_slicez)TestIndexing.test_maybe_booleans_to_slice   s{    h,,,BH===,S11|rx'''',S!W55q!$$$$$$r1   c                     t          j        g dt           j                  }t          j        |d          }t          j        g dt           j                  }t          j        ||           d S )N)rn   rn   r=   rg   r   rn   r   rl   r   rh   )rl   rg   r         )r   r   r]   r   get_reverse_indexerr5   r6   )r   indexerrQ   r9   s       r"   test_get_reverse_indexerz%TestIndexing.test_get_reverse_indexer   sd    (666bgFFF(!448OOO27;;;
#FH55555r1   r   int64int32c                 b    t          j        dd|          }t          j        |d          sJ d S )Nr   rZ   r   r   r\   r   is_range_indexerr   r   lefts      r"   test_is_range_indexerz"TestIndexing.test_is_range_indexer   s9     yCu---#D#.......r1   zx2**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                 b    t          j        dd|          }t          j        |d          rJ d S )Nr   rZ   r   l        r   r   s      r"   test_is_range_indexer_big_nz(TestIndexing.test_is_range_indexer_big_n   s9     yCu---'e4444444r1   c                 d    t          j        ddg|          }t          j        |d          rJ d S )Nr=   rg   r   r   r   r   r   r   s      r"   test_is_range_indexer_not_equalz,TestIndexing.test_is_range_indexer_not_equal
  s;     xAe,,,'a0000000r1   c                 d    t          j        g d|          }t          j        |d          rJ d S )N)r   r=   rg   r   rg   r   r   s      r"   %test_is_range_indexer_not_equal_shapez2TestIndexing.test_is_range_indexer_not_equal_shape  s;     x			///'a0000000r1   N)rS   rT   rU   re   r   markparametrizerp   ru   r{   r~   r   r   r   r   r   r   r   r   skipifr   r   r   r   r+   r1   r"   rW   rW   M   s       J J J [U$5$5$566[VYYY//J J 0/ 76J [|||\\\:::zzzR J J J [W&;&;&;<<[VYYY//J J 0/ =<J"     6 [!!!#3#3#35E5E5EF J J J [V%7%7%788J J 98J [Vmmm\\\<<<%PQQJ J RQJ [\+G+G+GHH[V]]]33J J 43 IHJ" [!!!#3#3#35E5E5EF J J J% % %6 6 6 [Ww&899/ / :9/
 [X   
 [Ww&8995 5 :9 5 [Ww&8991 1 :91
 [Ww&8991 1 :91 1 1r1   rW   c                  ,    t           j        j        J d S r*   )r   hasnans__doc__r+   r1   r"   'test_cache_readonly_preserve_docstringsr     s    = ,,,,,r1   c                  b    t          j        t          j                  } | t          j        u sJ d S r*   )r5   round_trip_pickler   
no_default)objs    r"   test_no_default_pickler     s-    

s~
.
.C#.      r1   c                  &   t          j        dd gt                    } t          j        t          j        |                     } t          j        | d          }t          j        | |          rJ | d         J |d         t           j	        u sJ d S )Nr    r   F)copyr=   )
r   r   r   pickleloadsdumpsr   ensure_string_arrayshares_memoryr   )r   rQ   s     r"   test_ensure_string_array_copyr   "  s     (C;f
-
-
-C
,v|C((
)
)C$Su555FV,,,,,q6>>>!9r1   )r   numpyr   r   pandas._libsr   r   r   r   pandas.compatr   pandasr   pandas._testing_testingr5   r	   rW   r   r   r   r+   r1   r"   <module>r      s                 
                  96 96 96 96 96 96 96 96xG1 G1 G1 G1 G1 G1 G1 G1T- - -
! ! !	 	 	 	 	r1   