
    ]j>s                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ d dlZd dlmZ d dlmZ  G d d      Zy)	    N)Dtype)is_bool_dtypeis_float_dtypeis_integer_dtype)NumpyEADtype)na_value_for_dtype)nargsortc                      e Zd ZU dZd Zd Zej                  j                  dddg      d        Z	d Z
d	 Zd
 Zd Zej                  j                  dddg      d        Zd Zd Zd Zd Zej                  j                  dddg      d        Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zd Zej                  j                  dd ej0                  g d ej2                  d       !      fd" ej0                  g d# ej2                  d       !      fg      d$        Zej                  j                  d%ddg      d&        Zej                  j                  d%ddg      d'        Zej                  j                  d%ddg      d(        Zej                  j                  d%ddg      d)        Zej                  j                  dd*d+g      d,        Zej                  j                  d-g d.      d/        Z ej                  j                  d0g d1      d2        Z!ej                  j                  d3e"jF                  d4 g      ej                  j                  dd5 e"jH                  g      d6               Z%d7 Z&d8 Z'd9 Z(d: Z)d; Z*d< Z+d= Z,d> Z- e.d?      Z/e0e1d@<   dA Z2dB Z3dC Z4dD Z5ej                  j                  dEddg      ej                  j                  dFdGg dHfdIg dJfdKg dLfg      dM               Z6dN Z7ej                  j                  dOdPdGg      dQ        Z8ej                  j                  dFdRdSdSggdSdPdSggdIdIdPggdPdSdIggdTdSdSggg      dU        Z9ej                  j                  dOg dV      dW        Z:dX Z;dY Z<dZ Z=d[ Z>d\ Z?d] Z@d^ ZAej                  j                  d_dIdPdKg d`g      da        ZBej                  j                  dbdKdcdPieCdcfdSi eCddfdPdKgi eCdefdKdfdgieDdhfg      di        ZEdj ZFdk ZGdl ZHdm ZIej                  j                  d3e"j0                  e"jF                  e"j                  g      dn        ZKdo ZLy)pBaseMethodsTestsz%Various Series and DataFrame methods.c                     ddl m} |j                  d|d      }|j                  t        j
                  k(  sJ |j                  |j                  k(  sJ y )Nr   )_default_hash_keyzutf-8F)encodinghash_key
categorize)pandas.core.util.hashingr   _hash_pandas_objectdtypenpuint64shape)selfdatar   ress       M/root/env/lib/python3.12/site-packages/pandas/tests/extension/base/methods.pytest_hash_pandas_objectz(BaseMethodsTests.test_hash_pandas_object   sR     	?&&'8U ' 
 yyBII%%%yyDJJ&&&    c                     t        |d      s!t        j                  dt        |              t	        j
                  |j                        }|j                  d   }|j                  du sJ y )Nvalue_countsz$value_counts is not implemented for dropnaT)	hasattrpytestskiptypeinspect	signaturer   
parametersdefault)r   r   sigkwargs       r    test_value_counts_default_dropnaz1BaseMethodsTests.test_value_counts_default_dropna$   sZ    t^,KK>tDzlKL 1 12x(}}$$$r   r   TFc                 .   |r||j                             }n|}t        j                  |      j                  |      j	                         }t        j                  |      j                  |      j	                         }t        j                  ||       y )N)r   )isnapdSeriesr   
sort_indextmassert_series_equal)r   all_datar   otherresultexpecteds         r   test_value_countsz"BaseMethodsTests.test_value_counts,   sw    hmmo-.EE8$111@KKM99U#000?JJL
vx0r   c                    |j                         }t        j                  ||j                                   }t	        j
                  ||j                        }|j                  d      j                         }t        |t        j                        s<t	        j
                  dt        |      z  gt        |      z  |j                  d      }n6t	        j
                  d|j                  d      }dt        |      z  ||dkD  <   t        |j                  t        j                        r8|j                  j                  t        j                  u r|j!                  d	      }nt#        |j                  d
d      dk(  s$t        |j                  t        j$                        r|j!                  d      }n6t'        |j                        t        j(                  u r|j!                  d      }t+        j,                  ||       y )Nr   T)	normalize   
proportion)indexnameg        r   float64storage pyarrowzdouble[pyarrow]Float64)uniquer   arrayr,   r-   r.   r   r   r/   
isinstanceCategoricallenr<   StringDtypena_valuenanastypegetattr
ArrowDtyper   NAr0   r1   )r   r   valuesserr4   r5   s         r    test_value_counts_with_normalizez1BaseMethodsTests.test_value_counts_with_normalize8   sd   {{}$		|,-iiDJJ/!!D!1<<>$/yyS[!CK/v||,H yyFLL|LH#$s6{?HVaZ djj"..1djj6I6IRVV6Sy1HTZZB/9<
JJA
  '89H

+ruu4y1H
vx0r   c                     t        j                  d|i      }|j                  d      }t        j                  ddg      }t	        j
                  ||       y )NAcolumnsaxisr   r:   )r-   	DataFramecountr.   r0   r1   )r   data_missingdfr4   r5   s        r   
test_countzBaseMethodsTests.test_countV   sG    \\3-.y)99aV$
vx0r   c                 `    t        j                  |      }|j                         }d}||k(  sJ y )Nr:   )r-   r.   rX   )r   rY   rP   r4   r5   s        r   test_series_countz"BaseMethodsTests.test_series_count\   s.    ii%!!!r   c                     t        j                  |      j                  t              }t	        |t         j                        sJ y N)r-   r.   applyidrE   r   r   r4   s      r   test_apply_simple_seriesz)BaseMethodsTests.test_apply_simple_seriesc   s.    4&&r*&")),,,r   	na_actionNignorec                 x    |j                  d |      }|j                         }t        j                  ||       y )Nc                     | S r_    xs    r   <lambda>z+BaseMethodsTests.test_map.<locals>.<lambda>i   s    A r   )rd   )mapto_numpyr0   assert_numpy_array_equal)r   rY   rd   r4   r5   s        r   test_mapzBaseMethodsTests.test_mapg   s5    !!+!C((*
##FH5r   c                     t        j                  |      j                         }t        j                  t        j                  g dt        j
                              }t        j                  ||       y N   r   r:   r8   r-   r.   argsortr   rD   intpr0   r1   )r   data_for_sortingr4   r5   s       r   test_argsortzBaseMethodsTests.test_argsortm   sG    +,44699RXXirww?@
vx0r   c                     |j                         }t        j                  g dt        j                        }t	        j
                  ||       y rq   )ru   r   rD   rv   r0   rn   r   data_missing_for_sortingr4   r5   s       r   test_argsort_missing_arrayz+BaseMethodsTests.test_argsort_missing_arrays   s4    )11388IRWW5
##FH5r   c                     t        j                  |      j                         }t        j                  t        j                  g dt        j
                              }t        j                  ||       y rq   rt   rz   s       r   test_argsort_missingz%BaseMethodsTests.test_argsort_missingy   sG    34<<>99RXXirww?@
vx0r   c                 f   |j                   j                  }d}d}|rd}d}|j                         |k(  sJ |j                         dk(  sJ |j	                  g d      }|j                         |k(  sJ |j                         dk(  sJ |j                         dk(  sJ |j                         dk(  sJ y )Nr:      r   rs   )rs   r   r   r:   r:   rs   )r   _is_booleanargmaxargmintake)r   rw   r{   rI   is_bool
exp_argmaxexp_argmax_repeatedr   s           r   test_argmin_argmaxz#BaseMethodsTests.test_argmin_argmax~   s    "((44
J"#  &&(J666&&(A---  $$%78{{} 3333{{}!!! (..0A555'..0A555r   methodr   r   c                     d}t        j                  t        |      5   t        |d d |              d d d        y # 1 sw Y   y xY w)Nattempt to getmatchr   )r!   raises
ValueErrorrL   )r   r   r   err_msgs       r   test_argmin_argmax_empty_arrayz/BaseMethodsTests.test_argmin_argmax_empty_array   sA     #]]:W5 	(%GD!Hf%'	( 	( 	(s	   <Ac                     d}t        |      j                  ||g|j                        }t        j                  t
        |      5   t        ||              d d d        y # 1 sw Y   y xY w)Nr   r8   r   )r#   _from_sequencer   r!   r   r   rL   )r   r   r   rI   r   data_nas         r   test_argmin_argmax_all_naz*BaseMethodsTests.test_argmin_argmax_all_na   s]     #t*++Xx,@

+S]]:W5 	'$GGV$&	' 	' 	's   A!!A*zop_name, skipna, expected))idxmaxTr   )idxminTrs   )r   Tr   )r   Trs   )r   F)r   Fr   )r   Fr   )r   Fr   c                    t        j                  |      }|dk(  r8t        j                  t        d      5   t        ||      |       d d d        y  t        ||      |      }t        j                  ||       y # 1 sw Y   y xY w)Nr   Encountered an NA valuer   skipna)r-   r.   r!   r   r   rL   r0   assert_almost_equal)r   r{   op_namer   r5   rP   r4   s          r   test_argreduce_seriesz&BaseMethodsTests.test_argreduce_series   sy    " ii01r>z1JK 5%W%V45 5 +WS'*&9F""684	5 5s   A==Bc                    |}t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |j	                  d       d d d        y # 1 sw Y   @xY w# 1 sw Y   y xY w)Nr   r   Fr   )r!   r   r   r   r   )r   r{   r   s      r   +test_argmax_argmin_no_skipna_notimplementedz<BaseMethodsTests.test_argmax_argmin_no_skipna_notimplemented   sr    ']]:-FG 	&KKuK%	& ]]:-FG 	&KKuK%	& 	&	& 	&	& 	&s   A0A<0A9<Bzna_position, expectedlastrr   rv   r8   firstr:   rs   r   c                 J    t        ||      }t        j                  ||       y )N)na_position)r	   r0   rn   )r   r{   r   r5   r4   s        r   test_nargsortzBaseMethodsTests.test_nargsort   s!     2L
##FH5r   	ascendingc                    t        j                  |      }|j                  ||      }|j                  g d   }|s6|j	                         dk(  r|j                  g d   }n|j                  g d   }t        j                  ||       y )Nr   keyrr   rs   )r   r:   rs   )r:   r   rs   )r-   r.   sort_valuesilocnuniquer0   r1   )r   rw   r   sort_by_keyrP   r4   r5   s          r   test_sort_valuesz!BaseMethodsTests.test_sort_values   sn    ii()9+F88I&{{}!88I.88I.
vx0r   c                     t        j                  |      }|j                  ||      }|r|j                  g d   }n|j                  g d   }t	        j
                  ||       y )Nr   rr   )r   rs   r:   )r-   r.   r   r   r0   r1   )r   r{   r   r   rP   r4   r5   s          r   test_sort_values_missingz)BaseMethodsTests.test_sort_values_missing   sT     ii019+Fxx	*Hxx	*H
vx0r   c                     t        j                  g d|d      }|j                  ddg      }t        j                  g d|j                  g d      dg d      }t	        j
                  ||       y )N)r:   rs   r:   rS   BrS   r   )r:   r:   rs   rr   r<   )r-   rW   r   r   r0   assert_frame_equal)r   rw   r   rZ   r4   r5   s         r   test_sort_values_framez'BaseMethodsTests.test_sort_values_frame   s^    \\	0@ABc
+<<"2"7"7	"BC9
 	fh/r   c                 n   t        j                  |      }|j                  |      }t        |j                        sJ |j                  d      }t        |j                        rt        j                  |rg dng d      }nt        j                  |rg dng d      }t        j                  ||       y )N)r   r>   )      @r         ?)      ?r         @       @r   r   )r   r   r   )	r-   r.   rankr   r   rK   r   r0   r1   )r   rw   r   rP   r4   r5   s         r   	test_rankzBaseMethodsTests.test_rank   s    ii()I. fll+++y)#yyI?SHyyI?SH
vx0r   averageminc                    t        j                  |j                  g d            }|j                  |      }|dk(  r@t	        |j
                        sJ |j                  d      }t        j                  g d      }nOt        |j
                        st	        |j
                        sJ t        j                  g d|j
                        }t        j                  ||       y )N)r   rs   r   )r   r   r>   )r   r   r   )rs   r:   rs   r8   )
r-   r.   r   r   r   r   rK   r   r0   r1   )r   rw   r   rP   r4   r5   s         r   test_rank_methodz!BaseMethodsTests.test_rank_method  s    ii(--i89(Y!&,,///]]9-Fyy1H $FLL1^FLL5QQQyy&,,?H
vx0r   	na_option)keeptopbottomc                    t        j                  |      }|j                  |      }t        |j                        sJ |j                  d      }|dk(  r't        j                  dt        j                  dg      }n4|dk(  rt        j                  g d      }nt        j                  g d      }t        j                  ||       y )	N)r   r>   r   r   r   r   )r   r   r   r   )
r-   r.   r   r   r   rK   r   rJ   r0   r1   )r   r{   r   rP   r4   r5   s         r   test_rank_missingz"BaseMethodsTests.test_rank_missing  s    ii01I.fll+++y)yy#rvvs!34H%yy1H yy1H
vx0r   r   )r   r   Fc                    |j                  g d      }|j                  |      }|dk(  rt        j                  g d      }n4|dk(  rt        j                  g d      }nt        j                  g d      }t	        j
                  ||       y )Nr   r:   r   r:   )r   r   )FFTTr   TTFF)TTTT)r   
duplicatedr   rD   r0   rn   )r   r   r   arrr4   r5   s         r   test_duplicatedz BaseMethodsTests.test_duplicated$  sk    ii%T*7?xx :;HV^xx :;Hxx 89H
##FH5r   boxc                     | S r_   rh   ri   s    r   rk   zBaseMethodsTests.<lambda>0  s    ! r   c                 "    | j                         S r_   )rC   ri   s    r   rk   zBaseMethodsTests.<lambda>1  s    !((* r   c                      ||j                  |d   |d   g|j                              } ||      }t        |      dk(  sJ t        |t	        |            sJ |d   |d   k(  sJ y )Nr   r8   r:   )r   r   rG   rE   r#   )r   r   r   r   r   r4   s         r   test_uniquezBaseMethodsTests.test_unique0  su     ,,d1gtAw-?tzz,RS

#6{a&$t*---ayJqM)))r   c                    t        j                  |d      \  }}|j                  j                  }|r;t	        j
                  g dt        j                        }|j                  ddg      }n:t	        j
                  g dt        j                        }|j                  g d      }t        j                  ||       t        j                  ||       y )	NTuse_na_sentinel)r   r   r   r   r:   r:   r   r   r8   r      )r   r   r   r   r:   r:   r   rs   )r   r      )r-   	factorizer   r   r   rD   rv   r   r0   rn   assert_extension_array_equal)r   data_for_groupingcodesuniquesr   expected_codesexpected_uniquess          r   test_factorizezBaseMethodsTests.test_factorize;  s    &7Nw#))55XX&@PN055q!f=XX&@PN055i@
##E>:
''1ABr   c                 H   t        j                  |d      \  }}|j                  d      \  }}t        j                  ||       t        j                  ||       t        |      t        t        j                  |            k(  sJ |j                  |j                  k(  sJ y )NTr   )r-   r   r0   rn   r   rG   rC   r   )r   r   codes_1	uniques_1codes_2	uniques_2s         r   test_factorize_equivalencez+BaseMethodsTests.test_factorize_equivalenceJ  s    \\*;TR.888N
##GW5
''	9=9~RYYy%9!::::"3"9"9999r   c                 .   t        j                  |d d       \  }}t        j                  g t        j                        }t        |      j                  g |d d j                        }t        j                  ||       t        j                  ||       y )Nr   r8   )r-   r   r   rD   rv   r#   r   r   r0   rn   r   )r   r   r   r   r   r   s         r   test_factorize_emptyz%BaseMethodsTests.test_factorize_emptyS  ss    d2Ah/w"BGG4:44RtBQx~~4N
##E>:
''1ABr   c                     t        j                  d|j                  g d      i      }t        j                  d|j                  g d      i      }|j                  |d   d      }t	        j
                  ||       y )NrS   r   r:   r:   r   r:   r:   valuelimit)r-   rW   r   fillnar0   r   )r   rY   rZ   r5   r4   s        r   test_fillna_limit_framez(BaseMethodsTests.test_fillna_limit_frame[  sd    \\3 1 1, ?@A<<l&7&7&E FGa:
fh/r   c                     t        j                  |j                  g d            }t        j                  |j                  g d            }|j                  |d   d      }t	        j
                  ||       y )Nr   r   r:   r   )r-   r.   r   r   r0   r1   )r   rY   rP   r5   r4   s        r   test_fillna_limit_seriesz)BaseMethodsTests.test_fillna_limit_seriesb  sZ    ii)),7899\..|<=,q/;
vx0r   c                    |j                  ddg      }t        j                  d|i      }|j                         }|j                  d   }|j                  |      }||j                  d<   t        j                  ||       y )Nr:   rS   )r   r   )r   r-   rW   copyr   r   r0   r   )r   rY   r   rZ   df_orig
filled_valr4   s          r   test_fillna_copy_framez'BaseMethodsTests.test_fillna_copy_framei  sl    A'\\3*%'')WWT]
:&&D
b'*r   c                     |j                  ddg      }t        j                  |d      }|j                         }|d   }|j	                  |      }||j
                  d<   t        j                  ||       y )Nr:   F)r   r   )r   r-   r.   r   r   r   r0   r1   )r   rY   r   rP   ser_origr   r4   s          r   test_fillna_copy_seriesz(BaseMethodsTests.test_fillna_copy_seriesu  se    A'ii%(88:V
J'#A
sH-r   c                     d}t        j                  t        |      5  |j                  |j	                  dg             d d d        y # 1 sw Y   y xY w)Nz!Length of 'value' does not match.r   r:   )r!   r   r   r   r   )r   rY   msgs      r   test_fillna_length_mismatchz,BaseMethodsTests.test_fillna_length_mismatch  sE    1]]:S1 	8 1 11# 67	8 	8 	8s   "A		Abool_combine_le_expected_dtypec           
          |d      \  }}t        j                  |      }t        j                  |      }|j                  |d       }t        j                  t        j                  t	        t        |      t        |      d      D cg c]
  \  }}||k   c}}| j                              }	t        j                  ||	       |j                  d   }
|j                  |
d       }t        j                  t        j                  t        |      D cg c]  }||
k  	 c}| j                              }	t        j                  ||	       y c c}}w c c}w )Nrs   c                     | |k  S r_   rh   x1x2s     r   rk   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>  s
    rRx r   Tstrictr8   r   c                     | |k  S r_   rh   r  s     r   rk   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>  s
    b r   )
r-   r.   combinerD   ziplistr  r0   r1   r   )r   data_repeated
orig_data1
orig_data2s1s2r4   abr5   vals              r   test_combine_lez BaseMethodsTests.test_combine_le  s    "/q!1
JYYz"YYz"B 7899HH #&d:&6Z8HQU"VA F 55
 	vx0ggajC!8999HH#'
#34ac455
 	vx0# 5s   
EEc                 R   t        |t        |            rQ|j                  t        t	        |      t	        |      d      D cg c]
  \  }}||z    c}}|j
                        S |j                  t	        |      D cg c]  }||z   	 c}|j
                        S c c}}w c c}w )NTr  r8   )rE   r#   r   r  r  r   )r   leftrightr  r  s        r   _construct_for_combine_addz+BaseMethodsTests._construct_for_combine_add  s    eT$Z(&&%(dT%[%NO6AqQOjj '  
 &&$(J/qU/jj '  	 P
 0s   B
?B$c                     |d      \  }}t        j                  |      }t        j                  |      }	 t        j                  d      5  | j	                  ||      }d d d        t        j                        }|j                  |d       }t        j                  ||       |j                  d   }	|j                  |	d       }| j	                  ||	      }t        j                  |      }t        j                  ||       y # 1 sw Y   xY w# t
        $ rE t        j                  t
              5  |j                  |d        d d d        Y y # 1 sw Y   Y y xY ww xY w)Nrs   re   )overc                     | |z   S r_   rh   r  s     r   rk   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    b2g r   c                     | |z   S r_   rh   r  s     r   rk   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    rBw r   r   c                     | |z   S r_   rh   r  s     r   rk   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    R r   )r-   r.   r   errstater  	TypeErrorr!   r   r
  r0   r1   r   )
r   r  r  r  r  r  r   r5   r4   r  s
             r   test_combine_addz!BaseMethodsTests.test_combine_add  s'   !.q!1
JYYz"YYz"	(+ N55j*MN 99S>B 67
vx0ggajC!78--j#>99S>
vx0#N N 	 y) 7

25677	sA   D D D DD "E 4EE E	E E c                     t        j                  |d d       }t        j                  |dd g d      }|j                  |      }t        j                  |d d       }t        j                  ||       y )Nr   rs      )rs   r   r   r   )r-   r.   combine_firstr0   r1   )r   r   r  r  r4   r5   s         r   test_combine_firstz#BaseMethodsTests.test_combine_first  s^    IId2AhIId1Qiy1#99T"1X&
vx0r   framezperiods, indices)rs   r   r   r   r   r   )r   r:   rs   r   r   rs   )r   r   r   r:   rs   c                    |d d }t        j                  |d      }t        j                  |j                  |d      d      }|r|j                  d      j	                  d      j                  |      }t        j                  |t        j                  dgdz  d      j                  |      gd	      }t        j                  }n!|j                  |      }t        j                  } |||       y )
Nr#  rS   r=   T
allow_fillr:   )r   r   rU   )
r-   r.   r   to_frameassignshiftconcatr0   r   r1   )	r   r   r&  periodsindicessubsetr5   r4   compares	            r   test_container_shiftz%BaseMethodsTests.test_container_shift  s     bqyyc*99V[[T[BM]]],33a38>>wGFyy299aS1W37==gFGaH ++GZZ(F,,G!r   c                 j    |j                  d      }|d   |d   k7  sJ |d   |d<   |d   |d   k7  sJ y )Nr   r:   r.  rb   s      r   test_shift_0_periodsz%BaseMethodsTests.test_shift_0_periods  sH    AAw$q'!!!q'QayF1I%%%r   r0  r:   c                    |d d }t        |j                        rt        j                  }nt        j                  }	  |||       t        j                  |      }|j                  |      }t        j                   |||j                  |                  }t        j                  ||       t        j                  |dgdz  d      }|j                  |      }|dk(  rt         j"                  ddddg}n#dddt         j"                  t         j"                  g}t        j                  ||d      }t        j$                  ||       y # t
        $ r% t        j                  t        |       d       Y .w xY w)Nr#  z does not support diffr   r   r:   r   )r   r   operatorxorsub	Exceptionr!   r"   r#   r-   r.   diffr.  r0   r1   rW   r   rJ   r   )	r   r   r0  opsr4   r5   rZ   r  s	            r   	test_diffzBaseMethodsTests.test_diff  s)   BQx$BB	?tTN IIdO99Rdjj&9:;
vx0\\C51956!a<Aq!$AAq"&&"&&)A<<hQ 78
fh/  	?KK4:,&<=>	?s   	E *E54E5r   r   c                     |d d }|j                  |      }|j                  |d      }t        j                  ||       y )Nrs   Tr*  r.  r   r0   r   )r   r   r0  r1  r2  r4   r5   s          r   test_shift_non_empty_arrayz+BaseMethodsTests.test_shift_non_empty_array  s?     bqg&;;w4;8
''9r   )rA  r   r   r:   r   c                 `    |d d }|j                  |      }|}t        j                  ||       y )Nr   )r.  r0   r   )r   r   r0  emptyr4   r5   s         r   test_shift_empty_arrayz'BaseMethodsTests.test_shift_empty_array  s2     RaW%
''9r   c                 f    |j                  d      }||usJ |d d j                  d      }||usJ y )Nr   rs   r6  rb   s      r   test_shift_zero_copiesz'BaseMethodsTests.test_shift_zero_copies  s?    AT!!!bq"T!!!r   c                    |d d }|d   }|j                  d|      }|j                  g d      }t        j                  ||       |j                  d|      }|j                  g d      }t        j                  ||       y )Nr   r   r:   )
fill_value)r   r   r:   rs   r'  )rs   r   r   r   rC  )r   r   r   rK  r4   r5   s         r   test_shift_fill_valuez&BaseMethodsTests.test_shift_fill_value'  sv    2Ah!W
1499\*
''92*599\*
''9r   c                 z    t        j                  t        d      5  t        |       d d d        y # 1 sw Y   y xY w)Nzunhashable typer   )r!   r   r   hashr   r   s     r   test_not_hashablez"BaseMethodsTests.test_not_hashable2  s-    ]]9,=> 	J	 	 	s   1:c                     t        j                  |      }|r|j                         }t         j                  j	                  |      }t         j                  j	                  |      }t        j                  ||       y r_   )r-   r.   r,  utilhash_pandas_objectr0   assert_equal)r   r   as_framer  r  s        r   test_hash_pandas_object_worksz.BaseMethodsTests.test_hash_pandas_object_works7  sS    yy==?DGG&&t,GG&&t,
1r   c                    |j                   j                  r| j                  ||      S |\  }}}|j                  g d      }|rt	        j
                  |      }|j                  |      dk(  sJ |j                  |d      dk(  sJ |j                  |      dk(  sJ |j                  |d      dk(  sJ |j                  |      dk(  sJ |j                  |d      dk(  sJ |j                  |j                  ddg            }t        j                  ddgt        j                        }t        j                  ||       t        j                  g d	      }	|j                  ||	
      dk(  sJ y )Nrr   r   r  sider:   rs   r   r8   r   sorter)r   r   _test_searchsorted_bool_dtypesr   r-   r.   searchsortedr   rD   rv   r0   rn   )
r   rw   	as_seriesr  cr  r   r4   r5   r[  s
             r   test_searchsortedz"BaseMethodsTests.test_searchsorted@  sh   !!--667GSS"1a##I.))C.C"a'''0A555"a'''0A555"a'''0A555!!#((Aq6"2388QF"''2
##FH5 )$,,Qv,>!CCCr   c                    |j                   }t        j                  ddg|      }|\  }}t        |      j	                  ||g|      }|rt        j
                  |      }|j                  |      dk(  sJ |j                  |d      dk(  sJ |j                  |      dk(  sJ |j                  |d      dk(  sJ |j                  |j                  ddg            }t        j                  ddgt        j                        }t        j                  ||       t        j                  ddg      }	|j                  ||		      dk(  sJ y )
NTFr8   r   r  rX  r:   rs   rZ  )r   r-   rD   r#   r   r.   r]  r   r   rv   r0   rn   )
r   rw   r^  r   r  r  r   r4   r5   r[  s
             r   r\  z/BaseMethodsTests._test_searchsorted_bool_dtypes[  sA    !&&88T5M?1#$33QF%3H))C.C"a'''0A555"a'''0A555!!#((Aq6"2388QF"''2
##FH5 1a&!,,Qv,>!CCCr   c                    |d   |d   k7  sJ t        |      }|d d \  }}t        j                  |j                  ||||g|j                              }|j                         }t        j                  g d      }	|r$|j                  d      }|	j                  dd      }	|j                  |	      }
t        j                  |j                  ||||g|j                              }|r|j                  d      }t        j                  |
|       |j                  |	 d	
       t        j                  ||       |j                         }|r|j                  d      }t        j                  g d      }	|j                  ||||g|j                        }|r.t        j                  d|i      }t        j                  d|	i      }	|j                  |	|      }
t        j                  |j                  ||||g|j                              }|r|j                  d      }t        j                  |
|       |j                  |	 |d	
       t        j                  ||       y )Nr   r:   rs   r8   r   r  r)  r   T)inplace)TFTT)r#   r-   r.   r   r   r   r   rD   r,  reshapewherer0   rT  maskrW   )r   r   rI   rU  clsr  r  origrP   condr4   r5   r3   s                r   test_where_seriesz"BaseMethodsTests.test_where_seriesu  s   Aw$q'!!!4jBQx1yy++Q1aL

+KLiikxx23,,C,(C<<A&D4991h9L
 ((c(2H
)$%
X& iik,,C,(Cxx12""Aq!Q<tzz"BLL#u.E<<d,D4'99S//Aq!DJJ/OP((c(2H
)$t,
X&r   repeats)r:   rs   r   c                 T   t        |      j                  |d d |j                        }|rt        j                  |      }|rt        j                  ||      n|j                  |      }t        |t              r|gdz  n|}t        ||d      D 	cg c]  \  }}t        |      D ]  }	|  }
}}}	t        |      j                  |
|j                        }
|r0t        j                  |
|j                  j                  |            }
t        j                  ||
       y c c}	}}w )Nr   r8   Tr  r   )r#   r   r   r-   r.   r   repeatrE   intr  ranger<   r0   rT  )r   r   rk  r^  	use_numpyr   r4   rj   n_r5   s              r   test_repeatzBaseMethodsTests.test_repeat  s    4j''Ra

'C))C.C,53(3::g;N#-gs#;7)a-"%c74"@SS$!Q%PQ(SQASASS:,,XTZZ,Hyy1A1A'1JKH
) Ts   D#zrepeats, kwargs, error, msgrV   negativer   foobarz'foo'c                     t        j                  ||      5  |rt        j                  ||fi | n |j                  |fi | d d d        y # 1 sw Y   y xY w)Nr   )r!   r   r   rm  )r   r   rk  kwargserrorr   rp  s          r   test_repeat_raisesz#BaseMethodsTests.test_repeat_raises  sP     ]]5, 	/		$262G.v.		/ 	/ 	/s   .AAc                     |j                  d      }|dd  }t        j                  ||       |j                  ddg      }|j                  |dg   |dg   |dd  g      }t        j                  ||       y )Nr   r:   r   rs   r   )deleter0   r   _concat_same_type)r   r   r4   r5   s       r   test_deletezBaseMethodsTests.test_delete  su    Q8
''9aV$))49dA3iab*JK
''9r   c                    |dd  j                  d|d         }t        j                  ||       |dd  j                  t        |dd         |d         }t        j                  ||       |d d j                  d|d         }t	        j
                  t        |            }|dd |dd  t        |      dz
  |d<   |j                  |      }t        j                  ||       y )Nr:   r   r   r   r#  )insertr0   r   rG   r   aranger   )r   r   r4   takerr5   s        r   test_insertzBaseMethodsTests.test_insert  s    abDG,
''5ab#d12h-a9
''5 cr!!!T"X.		#d)$!BKab	t9q=a99U#
''9r   c                    |}t        j                  t        t        f      5  |j	                  d|       d d d        t        j                  t        t        f      5  |j	                  d|       d d d        t        j                  t        t        f      5  |j	                  t        |      dz
  |       d d d        y # 1 sw Y   xY w# 1 sw Y   \xY w# 1 sw Y   y xY w)Nr   r   r:   )r!   r   r   r   r  rG   )r   r   invalid_scalaritems       r   test_insert_invalidz$BaseMethodsTests.test_insert_invalid  s    ]]Iz23 	!KK4 	! ]]Iz23 	!KK4 	! ]]Iz23 	-KKD	At,	- 	-	! 	!	! 	!	- 	-s#   B>C
C>C
CCc                    t        |      }t        j                  t              5  |j	                  |dz   |d          d d d        t        j                  t              5  |j	                  | dz
  |d          d d d        t        j                  t
              5  |j	                  d|d          d d d        y # 1 sw Y   |xY w# 1 sw Y   MxY w# 1 sw Y   y xY w)Nr:   r   r   )rG   r!   r   
IndexErrorr  r   )r   r   ubs      r   test_insert_invalid_locz(BaseMethodsTests.test_insert_invalid_loc  s    Y]]:& 	)KKQQ(	) ]]:& 	*KKaa)	* ]]9% 	&KKT!W%	& 	&	) 	)	* 	*	& 	&s#   B9CC9CCCc                    t        |      j                  |d   gt        |      z  |j                        }t        |      j                  |gt        |      z  |j                        }t	        j
                  ||d      }t	        j
                  ||d      }t	        j
                  ||d      }|j                  |      du sJ |j                  |j                               du sJ |j                  |      du sJ |j                  |      du sJ |d d j                  |d d       du sJ |d d j                  |d d       du sJ |j                  d       du sJ |dg   j                  |d         du sJ y )Nr   r8   F)	transposeTrs   r   )r#   r   rG   r   r0   box_expectedequalsr   )r   r   rI   r^  r   data2r   s          r   test_equalszBaseMethodsTests.test_equals  sx   T
))47)c$i*?tzz)Rt*++XJT,B$**+UtSE:se<//'3%@
 {{4 D((({{499;'4/// {{5!U***{{7#u,,, BQxtBQx(E111 BQxtBQx(D000 {{4 E)))QCyQ(E111r   c                 v    t        j                  |      j                  t        j                  |            sJ y r_   )r-   r.   r  rO  s     r   &test_equals_same_data_different_objectz7BaseMethodsTests.test_equals_same_data_different_object  s&    yy%%biio666r   )M__name__
__module____qualname____doc__r   r*   r!   markparametrizer6   rQ   r[   r]   rc   ro   rx   r|   r~   r   r   r   r   r   r   rD   r   r   r   r   r   r   r   r   r   r-   r.   rC   r   r   r   r   r   r   r   r   r   r   r  r   __annotations__r  r  r!  r%  r4  r7  r@  rD  rG  rI  rL  rP  rV  r`  r\  rj  rs  r   r   rz  r~  r  r  r  rW   r  r  rh   r   r   r   r      sQ   /	'% [[Xe}5	1 6	11<1"- [[[4*:;6 <6
161
62 [[X(';<( =( [[X(';<' =' [[#		

5
5& [[XRXXixrxx/?@Ahbhhy0@AB	
66
 [[[4-81 91 [[[4-8	1 9	1 [[[4-80 90 [[[4-81 91 [[X	5'9:1 ;1 [[[*CD1 E1 [[V%=>	6 ?	6 [[URYY$<=[[X(<bii'HI* J >*C:C01
+	.8 )5V(<<18
181 [[WtUm4[[
	 1o"6<M8NO"	 5
"$& [[YB00 102 [[
r2h"q"gQFa"a\ABx=Q:	: [[Y(9:: ;:"	:
D6D4)'V [[YAq)(<=* >* [[%Z0Z,VRW-	73		
//::"
-& [[URXXryy",,$GH2 I287r   r   )r$   r9  numpyr   r!   pandas._typingr   pandas.core.dtypes.commonr   r   r   pandas.core.dtypes.dtypesr   pandas.core.dtypes.missingr   pandasr-   pandas._testing_testingr0   pandas.core.sortingr	   r   rh   r   r   <module>r     s;          
 3 9   (|7 |7r   