
    Owgch                         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 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)NumpyEADtype)na_value_for_dtype)nargsortc                   H   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ddddddej,                  fddej,                  fd d!g      d"        Zd# Zej                  j                  d$d% ej2                  g d& ej4                  d'      (      fd) ej2                  g d* ej4                  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                  d0g d1      d2        Zej                  j                  d3e jB                  d4 g      ej                  j                  dd5 e jD                  g      d6               Z#d7 Z$d8 Z%d9 Z&d: Z'd; Z(d< Z) e*d=      Z+e,e-d><   d? Z.d@ Z/dA Z0ej                  j                  dBddg      ej                  j                  dCdDg dEfdFg dGfdHg dIfg      dJ               Z1dK Z2ej                  j                  dLdMdDg      dN        Z3ej                  j                  dCdOdPdPggdPdMdPggdFdFdMggdMdPdFggdQdPdPggg      dR        Z4ej                  j                  dLg dS      dT        Z5dU Z6dV Z7dW Z8dX Z9dY Z:dZ Z;d[ Z<ej                  j                  d\dFdMdHg d]g      d^        Z=ej                  j                  d_dHd`dMie>d`fdPi e>dafdMdHgi e>dbfdHdcddie?defg      df        Z@dg ZAdh ZBdi ZCdj ZDej                  j                  d3e j2                  e jB                  e j                  g      dk        ZFdl ZGy)m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       Z/var/www/horilla/myenv/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                 8   |d d }|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(   s    CR=hmmo-.EE8$111@KKM99U#000?JJL
vx0r   c                    |d d 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                  d
d      dk(  s$t        |j                  t        j                        r|j                  d      }nbt        |j                  d
d      dk(  r|j                  d      }n6t!        |j                        t        j"                  u r|j                  d      }t%        j&                  ||       y )Nr*   r   T)	normalize   
proportion)indexnameg        r   storage pyarrowzdouble[pyarrow]pyarrow_numpyfloat64Float64)uniquer   arrayr+   r,   r-   r   r   r.   
isinstanceCategoricallenr;   getattr
ArrowDtypeastyper   NAr/   r0   )r   r   valuesserr3   r4   s         r    test_value_counts_with_normalizez1BaseMethodsTests.test_value_counts_with_normalize5   sZ   CRy!$		|,-iiDJJ/!!D!1<<>$/yyS[!CK/v||,H yyFLL|LH#$s6{?HVaZ 4::y"-:jJJ?
  '89HTZZB/?By1H

+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   r9   )r,   	DataFramecountr-   r/   r0   )r   data_missingdfr3   r4   s        r   
test_countzBaseMethodsTests.test_countS   sG    \\3-.y)99aV$
vx0r   c                 `    t        j                  |      }|j                         }d}||k(  sJ y )Nr9   )r,   r-   rU   )r   rV   rM   r3   r4   s        r   test_series_countz"BaseMethodsTests.test_series_countY   s.    ii%!!!r   c                     t        j                  |      j                  t              }t	        |t         j                        sJ y N)r,   r-   applyidrE   r   r   r3   s      r   test_apply_simple_seriesz)BaseMethodsTests.test_apply_simple_series`   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>f   s    A r   )ra   )mapto_numpyr/   assert_numpy_array_equal)r   rV   ra   r3   r4   s        r   test_mapzBaseMethodsTests.test_mapd   s5    !!+!C((*
##FH5r   c                     t        j                  |      j                         }t        j                  t        j                  g dt        j
                              }t        j                  ||       y N   r   r9   r7   )r,   r-   argsortr   rD   intpr/   r0   )r   data_for_sortingr3   r4   s       r   test_argsortzBaseMethodsTests.test_argsortj   sG    +,44699RXXirww?@
vx0r   c                     |j                         }t        j                  g dt        j                        }t	        j
                  ||       y rn   )rq   r   rD   rr   r/   rk   )r   data_missing_for_sortingr3   r4   s       r   test_argsort_missing_arrayz+BaseMethodsTests.test_argsort_missing_arrayp   s4    )11388IRWW5
##FH5r   c                 N   d}t        j                  t        |      5  t        j                  |      j                         }d d d        t        j                  t        j                  g dt        j                              }t        j                  |       y # 1 sw Y   ZxY w)Nz;The behavior of Series.argsort in the presence of NA valuesmatch)r9   r   r7   )
r/   assert_produces_warningFutureWarningr,   r-   rq   r   rD   rr   r0   )r   rv   msgr3   r4   s        r   test_argsort_missingz%BaseMethodsTests.test_argsort_missingv   su    K''SA 	CYY78@@BF	C99RXXj@A
vx0	C 	Cs   $BB$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 )Nr9      r   rp   )rp   r   r   r9   r9   rp   )r   _is_booleanargmaxargmintake)r   rs   rv   na_value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 getry   r   )r   raises
ValueErrorrH   )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   r7   ry   )r!   _from_sequencer   r   r   r   rH   )r   r   r   r   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   )idxminTrp   )r   Tr   )r   Trp   r   r   )r   Fr{   )r   Fr{   c                 z   d }d}|j                  d      r|dk(  rt        }|j                  d      r t        j                  |      rt        }d| }t	        j
                  |      }t        j                  ||      5   t        ||      |      }d d d        t        j                  |       y # 1 sw Y    xY w)Nz$The behavior of Series.argmax/argminargr{   idxzThe behavior of Series.ry   skipna)

startswithr}   r   isnanr,   r-   r/   r|   rH   assert_almost_equal)	r   rv   op_namer   r4   warnr~   rM   r3   s	            r   test_argreduce_seriesz&BaseMethodsTests.test_argreduce_series   s    " 4e$R De$(); D+G95Cii01''C8 	:*WS'*&9F	:
vx0	: 	:s   >B11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>   ry   Fr   )r   r   NotImplementedErrorr   r   )r   rv   r   s      r   +test_argmax_argmin_no_skipna_notimplementedz<BaseMethodsTests.test_argmax_argmin_no_skipna_notimplemented   sr    ']].b9 	&KKuK%	& ]].b9 	&KKuK%	& 	&	& 	&	& 	&s   A0A<0A9<Bzna_position, expectedlastro   rr   r7   firstr9   rp   r   c                 J    t        ||      }t        j                  ||       y )N)na_position)r   r/   rk   )r   rv   r   r4   r3   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   keyro   rp   )r   r9   rp   )r9   r   rp   )r,   r-   sort_valuesilocnuniquer/   r0   )r   rs   r   sort_by_keyrM   r3   r4   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   ro   )r   rp   r9   )r,   r-   r   r   r/   r0   )r   rv   r   r   rM   r3   r4   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)r9   rp   r9   rP   BrP   r   )r9   r9   rp   ro   r;   )r,   rT   r   r   r/   assert_frame_equal)r   rs   r   rW   r3   r4   s         r   test_sort_values_framez'BaseMethodsTests.test_sort_values_frame   s^    \\	0@ABc
+<<"2"7"7	"BC9
 	fh/r   keep)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   r9   r   r9   )r   r   )FFTTr   TTFF)TTTT)r   
duplicatedr   rD   r/   rk   )r   r   r   arrr3   r4   s         r   test_duplicatedz BaseMethodsTests.test_duplicated   sk    ii%T*7?xx :;HV^xx :;Hxx 89H
##FH5r   boxc                     | S r\   re   rf   s    r   rh   zBaseMethodsTests.<lambda>  s    ! r   c                 "    | j                         S r\   )rC   rf   s    r   rh   zBaseMethodsTests.<lambda>  s    !((* r   c                      ||j                  |d   |d   g|j                              } ||      }t        |      dk(  sJ t        |t	        |            sJ |d   |d   k(  sJ y )Nr   r7   r9   )r   r   rG   rE   r!   )r   r   r   r   r   r3   s         r   test_uniquezBaseMethodsTests.test_unique  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{   r9   r9   r   r   r7   r      )r   r   r{   r{   r9   r9   r   rp   )r   r      )r,   	factorizer   r   r   rD   rr   r   r/   rk   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   r/   rk   r   rG   rC   r   )r   r   codes_1	uniques_1codes_2	uniques_2s         r   test_factorize_equivalencez+BaseMethodsTests.test_factorize_equivalence!  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   r7   )r,   r   r   rD   rr   r!   r   r   r/   rk   r   )r   r   r   r   r   r   s         r   test_factorize_emptyz%BaseMethodsTests.test_factorize_empty*  ss    d2Ah/w"BGG4:44RtBQx~~4N
##E>:
''1ABr   c                    |j                  ddg      }t        j                  d|i      }|j                         }|j                  d   }|j                  |      }||j                  d<   t        j                  ||       y )Nr9   rP   )r   r   )r   r,   rT   copyr   fillnar/   r   )r   rV   r   rW   df_orig
filled_valr3   s          r   test_fillna_copy_framez'BaseMethodsTests.test_fillna_copy_frame2  sl    A'\\3*%'')WWT]
:&&D
b'*r   c                     |j                  ddg      }t        j                  |d      }|j                         }|d   }|j	                  |      }||j
                  d<   t        j                  ||       y )Nr9   F)r   r   )r   r,   r-   r   r   r   r/   r0   )r   rV   r   rM   ser_origr   r3   s          r   test_fillna_copy_seriesz(BaseMethodsTests.test_fillna_copy_series>  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.ry   r9   )r   r   r   r   r   )r   rV   r~   s      r   test_fillna_length_mismatchz,BaseMethodsTests.test_fillna_length_mismatchI  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 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 )Nrp   c                     | |k  S r\   re   x1x2s     r   rh   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>W  s
    rRx r   r7   r   c                     | |k  S r\   re   r   s     r   rh   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>a  s
    b r   )
r,   r-   combinerD   ziplistr   r/   r0   r   )r   data_repeated
orig_data1
orig_data2s1s2r3   abr4   vals              r   test_combine_lez BaseMethodsTests.test_combine_leQ  s    "/q!1
JYYz"YYz"B 7899HH&)$z*:D<L&MNFQaN55
 	vx0ggajC!8999HH#'
#34ac455
 	vx0 O 5s   EEc                 h    |d      \  }}t        j                  |      }t        j                  |      }	 t        j                  d      5  t        j                  |j	                  t        t        |      t        |            D cg c]
  \  }}||z    c}}            }d d d        |j                  |d       }	t        j                  |	       |j                  d   }
|j                  |
d       }	t        j                  |j	                  t        |      D cg c]  }||
z   	 c}            }t        j                  |	|       y c c}}w # 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c c}w )Nrp   rb   )overc                     | |z   S r\   re   r   s     r   rh   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>}  s
    b2g r   c                     | |z   S r\   re   r   s     r   rh   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    rBw r   r   c                     | |z   S r\   re   r   s     r   rh   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    R r   )r,   r-   r   errstater   r   r   	TypeErrorr   r   r   r/   r0   r   )r   r   r   r   r   r   r   r   r4   r3   r   s              r   test_combine_addz!BaseMethodsTests.test_combine_addj  sg   !.q!1
JYYz"YYz"	(+ 99---0j1A4
CS-TU6AqQU B 67
vx0ggajC!7899%%Z8H&I1q3w&IJ
 	vx0% V   	 y) 7

25677	 'JsY   E <E	EE$E F/EEE "F, FF,F(	#F,(F,c                     t        j                  |d d       }t        j                  |dd g d      }|j                  |      }t        j                  |d d       }t        j                  ||       y )Nr   rp      )rp   r   r   r   )r,   r-   combine_firstr/   r0   )r   r   r   r   r3   r4   s         r   test_combine_firstz#BaseMethodsTests.test_combine_first  s^    IId2AhIId1Qiy1#99T"1X&
vx0r   framezperiods, indices)rp   r   r   r{   r{   r   )r   r9   rp   r   r   rp   )r{   r{   r   r9   rp   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  rP   r<   T
allow_fillr9   )r   r   rR   )
r,   r-   r   to_frameassignshiftconcatr/   r   r0   )	r   r   r  periodsindicessubsetr4   r3   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   r9   r  r_   s      r   test_shift_0_periodsz%BaseMethodsTests.test_shift_0_periods  sH    AAw$q'!!!q'QayF1I%%%r   r  r9   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 diffg      ?r   r9   r   )r   r   operatorxorsub	Exceptionr   r    r!   r,   r-   diffr  r/   r0   rT   r   nanr   )	r   r   r  opsr3   r4   rW   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 )Nrp   Tr  r  r   r/   r   )r   r   r  r  r  r3   r4   s          r   test_shift_non_empty_arrayz+BaseMethodsTests.test_shift_non_empty_array  s?     bqg&;;w4;8
''9r   )r$  r{   r   r9   r   c                 `    |d d }|j                  |      }|}t        j                  ||       y )Nr   )r  r/   r   )r   r   r  emptyr3   r4   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   rp   r  r_   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   r9   )
fill_value)r   r   r9   rp   r	  )rp   r   r   r   r&  )r   r   r   r.  r3   r4   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 typery   )r   r   r  hashr   r   s     r   test_not_hashablez"BaseMethodsTests.test_not_hashable  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_objectr/   assert_equal)r   r   as_framer   r   s        r   test_hash_pandas_object_worksz.BaseMethodsTests.test_hash_pandas_object_works  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 )Nro   r   rightsider9   rp   r   r7   r   sorter)r   r   _test_searchsorted_bool_dtypesr   r,   r-   searchsortedr   rD   rr   r/   rk   )
r   rs   	as_seriesr   cr   r   r3   r4   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 )
NTFr7   r   r;  r<  r9   rp   r>  )r   r,   rD   r!   r   r-   rA  r   r   rr   r/   rk   )
r   rs   rB  r   r   r   r   r3   r4   r?  s
             r   r@  z/BaseMethodsTests._test_searchsorted_bool_dtypes  s<    !&&88T5M?1#$33QF;))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   r9   rp   r7   r   r   r  r{   T)inplace)TFTT)r!   r,   r-   r   r   r   r   rD   r  reshapewherer/   r7  maskrT   )r   r   r   r8  clsr   r   origrM   condr3   r4   r2   s                r   test_where_seriesz"BaseMethodsTests.test_where_series3  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)r9   rp   r   c                 P   t        |      j                  |d d |j                        }|rt        j                  |      }|rt        j                  ||      n|j                  |      }t        |t              r|gdz  n|}t        ||      D 	cg c]  \  }}t        |      D ]  }	|  }
}}}	t        |      j                  |
|j                        }
|r0t        j                  |
|j                  j                  |            }
t        j                  ||
       y c c}	}}w )Nr   r7   r   )r!   r   r   r,   r-   r   repeatrE   intr   ranger;   r/   r7  )r   r   rO  rB  	use_numpyr   r3   rg   n_r4   s              r   test_repeatzBaseMethodsTests.test_repeat^  s    4j''Ra

'C))C.C,53(3::g;N#-gs#;7)a-"%c7"3FF$!QU1XFAFAFF:,,XTZZ,Hyy1A1A'1JKH
) Gs   D!zrepeats, kwargs, error, msgrS   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)Nry   )r   r   r   rQ  )r   r   rO  kwargserrorr~   rT  s          r   test_repeat_raisesz#BaseMethodsTests.test_repeat_raisesn  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   r9   r   rp   r   )deleter/   r   _concat_same_type)r   r   r3   r4   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 )Nr9   r   r{   r   r  )insertr/   r   rG   r   aranger   )r   r   r3   takerr4   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   r9   )r   r   r  r   rd  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)Nr9   r   g      ?)rG   r   r   
IndexErrorrd  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   r7   F)	transposeTrp   r   )r!   r   rG   r   r/   box_expectedequalsr   )r   r   r   rB  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-   rs  r2  s     r   &test_equals_same_data_different_objectz7BaseMethodsTests.test_equals_same_data_different_object  s&    yy%%biio666r   )H__name__
__module____qualname____doc__r   r(   r   markparametrizer5   rN   rX   rZ   r`   rl   rt   rw   r   r   r   r   r   r   r   r   rD   r   r   r   r   r   r   r,   r-   rC   r   r   r   r   r   r   r   r   r   r   __annotations__r   r  r  r  r  r#  r'  r*  r,  r/  r3  r9  rD  r@  rN  rW  r   r  r^  rb  rg  rk  ro  rT   ru  rw  re   r   r   r	   r	      s   /	'% [[Xe}5
1 6
11<1"- [[[4*:;6 <6
16162 [[X(';<( =( [[X(';<' =' [[#ubff%ubff%!!		
11 & [[XRXXixrxx/?@Ahbhhy0@AB	
66
 [[[4-81 91 [[[4-8	1 9	1 [[[4-80 90 [[V%=>	6 ?	6 [[URYY$<=[[X(<bii'HI* J >*C:C
+	.8 )5V(<<121@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"   r  numpyr   r   pandas._typingr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandas.core.dtypes.missingr   pandasr,   pandas._testing_testingr/   pandas.core.sortingr   r	   re   r   r   <module>r     s2          3 2 9   (~
7 ~
7r   