
    .i                        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l	m
Z d Zd Zd Zej                  j!                  d      d	        Zd
 Zd Zd Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zy)z9
Tests that can be parametrized over _any_ Index object.
    N)InvalidIndexError)StringDtypec                     t        j                  t        d      5  | r	 d d d        t        j                  t        d      5  t        |        d d d        y # 1 sw Y   9xY w# 1 sw Y   y xY w)NzThe truth value of amatch)pytestraises
ValueErrorboolindexs    a/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/indexes/test_any_index.pytest_boolean_context_compatr      s^    	z)?	@  
z)?	@ U 	  s   AA$A!$A-c                     t        j                  t        dt        |       j                   d      5  t        |        d d d        y # 1 sw Y   y xY w)Nzunhashable type: ''r   )r   r	   	TypeErrortype__name__hashr   s    r   test_hash_errorr      sB    	y*<T%[=Q=Q<RRS(T	U U  s   AAc                     t        |       st        j                  d       d}t        j                  t        |      5  | d   | d<   d d d        y # 1 sw Y   y xY w)Nz'Test doesn't make sense for empty indexz)Index does not support mutable operationsr   r   )lenr   skipr	   r   )r   msgs     r   test_mutabilityr      sK    u:=>
5C	y	, 8a  s   	AAz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                    |sdt        | j                  t              rJ| j                  j                  dk(  r1t        j
                  j                  d      }|j                  |       | j                  d       }| j                  t        k(  r*|j                  t        dfv r| |k(  j                         sJ y t        j                  || d       y )NpythonzDoes not preserve dtypereasonc                     | S N )xs    r   <lambda>z+test_map_identity_mapping.<locals>.<lambda>2   s         stringequivexact)
isinstancedtyper   storager   markxfailapplymarkermapobjectr   alltmassert_index_equal)r   requestusing_infer_stringr-   results        r   test_map_identity_mappingr8   '   s     u{{K0KK8+{{  (A BD!YY{#F{{f&,,42B"B$$&&&&%w7r%   c                     | j                   g dz  }t        j                  t        d      5  || _        d d d        y # 1 sw Y   y xY w)N)applebananacarrotz^Lengthr   )nlevelsr   r	   r
   names)r   r>   s     r   test_wrong_number_namesr?   :   s;    MM99E	z	3   s	   >Ac                 V    | j                         j                  | j                  k(  sJ y r!   )viewnamer   s    r   test_view_preserves_namerC   @   s     ::<

***r%   c                 P    | j                         }t        j                  ||        y r!   )ravelr3   r4   )r   ress     r   
test_ravelrG   D   s    
++-C#u%r%   c                       e Zd Zd Zd Zd Zy)TestConversionc                     |j                         }|j                  |j                  usJ |j                  |usJ |j                  |j                  k(  sJ y r!   	to_seriesvaluesr   rB   selfr   sers      r   test_to_serieszTestConversion.test_to_seriesK   sN     oozz---yy%%%xx5::%%%r%   c                 `   |j                  |      }|j                  |j                  usJ |j                  |u sJ |j                  |j                  k(  sJ |j                  d      }|j                  |j                  usJ |j                  |usJ |j                  |j                  k7  sJ y )Nr   __testrB   rK   rN   s      r   test_to_series_with_argumentsz,TestConversion.test_to_series_with_argumentsS   s     ooEo*zz---yyE!!!xx5::%%% oo8o,zz---yy%%%xx5::%%%r%   c                 @    |j                         t        |      k(  sJ y r!   )tolistlistrO   r   s     r   test_tolist_matches_listz'TestConversion.test_tolist_matches_listd   s    ||~e,,,r%   N)r   
__module____qualname__rQ   rU   rZ   r"   r%   r   rI   rI   J   s    &&"-r%   rI   c                       e Zd Zd Zd Zy)TestRoundTripsc                     t        j                  ||      }t        j                  ||d       |j                  dkD  r|j	                  |      sJ y y )NTr(      )r3   round_trip_pickler4   r=   equal_levels)rO   r   	temp_filer7   s       r   test_pickle_roundtripz$TestRoundTrips.test_pickle_roundtripi   sK    %%eY7
fe48>>A%%f--- r%   c                     |j                   dc}|_         t        j                  ||      }|j                  |      sJ ||_         y )Nfoo)rB   r3   ra   equals)rO   r   rc   original_name	unpickleds        r   test_pickle_preserves_namez)TestRoundTrips.test_pickle_preserves_namep   s?    $)JJ!uz((	:	||I&&&"
r%   N)r   r[   r\   rd   rj   r"   r%   r   r^   r^   h   s    .#r%   r^   c                   l    e Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Z
y)	TestIndexingc                     t        |      dk(  rt        j                  d       t        j                  d      }||   }||d   k(  sJ y )Nr   zTest assumes non-empty indexr   )r   r   r   nparray)rO   r   keyr7   s       r   test_getitem_0d_ndarrayz$TestIndexing.test_getitem_0d_ndarrayx   sB    u:?KK=>hhqksq!!!r%   c                 |   t        j                  ddgt         j                        }t        j                  t
        d      5  |j                  |       d d d        t        j                  t
        d      5  |j                  |j                  t                     d d d        y # 1 sw Y   RxY w# 1 sw Y   y xY w)Nr   r`   )r+   z\[0 1\]r   z\[False  True\])	rn   ro   intpr   r	   r   get_locastyper   )rO   r   rp   s      r   0test_get_loc_listlike_raises_invalid_index_errorz=TestIndexing.test_get_loc_listlike_raises_invalid_index_error   s    hh1vRWW-]],J? 	MM#	 ]],4FG 	,MM#**T*+	, 	,	 		, 	,s   B&8%B2&B/2B;c                 @    |d   }|j                  |      sJ ||usJ y )N.)rg   )rO   r   r7   s      r   test_getitem_ellipsisz"TestIndexing.test_getitem_ellipsis   s+    s}}U###U"""r%   c                 @    |j                   |dd  j                   k(  sJ y )Nr`   rT   rY   s     r   test_slice_keeps_namez"TestIndexing.test_slice_keeps_name   s    zzU12Y^^+++r%   item)e   no_intg      @c                     dj                  dt        j                  d      dg      }t        j                  t
        |      5  ||    d d d        y # 1 sw Y   y xY w)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 boundsr   )joinreescaper   r	   
IndexError)rO   r   r{   r   s       r   test_getitem_errorzTestIndexing.test_getitem_error   sZ    hhH		(
 &

 ]]:S1 	$K	 	 	s   AAN)r   r[   r\   rq   rv   rx   rz   r   r-   parametrizer   r"   r%   r   rl   rl   w   s<    ",#, [[V%9: ;r%   rl   c                       e Zd Zd Zy)TestRenderingc                 t    d|_         dt        |      v sJ t        |      j                  t        |      v sJ y )Nrf   z'foo')rB   strr   r   rY   s     r   test_strzTestRendering.test_str   s7    
#e*$$$E{##s5z111r%   N)r   r[   r\   r   r"   r%   r   r   r      s    2r%   r   c                       e Zd Zd Zy)TestReductionsc                    d}t        j                  t        |      5  |j                  d       d d d        t        j                  t        |      5  |j	                  d       d d d        t        j                  t        |      5  |j                  d       d d d        t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   y xY w)Nz8`axis` must be fewer than the number of dimensions \(1\)r   r`   )axis   )r   r	   r
   argmaxargminminmax)rO   r   r   s      r   test_argmax_axis_invalidz'TestReductions.test_argmax_axis_invalid   s    I]]:S1 	!LLaL 	!]]:S1 	!LLaL 	!]]:S1 	II2I	]]:S1 	II2I	 		! 	!	! 	!	 		 	s/   CC(
C4 D C%(C14C= D	N)r   r[   r\   r   r"   r%   r   r   r      s    
r%   r   )__doc__r   numpyrn   r   pandas.errorsr   pandasr   pandas._testing_testingr3   r   r   r   r-   filterwarningsr8   r?   rC   rG   rI   r^   rl   r   r   r"   r%   r   <module>r      s    
   +  
 RS8 T8$+&- -<# #+ +\2 2 r%   