
    bMhvh                         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dS )	    N)Dtype)is_bool_dtype)NumpyEADtype)na_value_for_dtype)nargsortc                   J   e Zd ZU dZd Zd Zej                            dddg          d             Z	d Z
d	 Zd
 Zd Zej                            dddg          d             Zd Zd Zd Zd Zej                            dddg          d             Zej                            dddg          d             Ze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                            d$d% ej        g d& ej        d'          (          fd) ej        g d* ej        d'          (          fg          d+             Zej                            d,ddg          d-             Zej                            d,ddg          d.             Zej                            d,ddg          d/             Zej                            d0g d1          d2             Zej                            d3e j!        d4 g          ej                            dd5 e j"        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                            dBddg          ej                            dCdDg dEfdFg dGfdHg dIfg          dJ                         Z1dK Z2ej                            dLdMdDg          dN             Z3ej                            dCdOdPdPggdPdMdPggdFdFdMggdMdPdFggdQdPdPggg          dR             Z4ej                            dLg dS          dT             Z5dU Z6dV Z7dW Z8dX Z9dY Z:dZ Z;d[ Z<ej                            d\dFdMdHg d]g          d^             Z=e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                            d3e j        e j!        e jE        g          dk             ZFdl ZGdS )mBaseMethodsTestsz%Various Series and DataFrame methods.c                     ddl m} |                    d|d          }|j        t          j        k    sJ |j        |j        k    sJ d S )Nr   )_default_hash_keyzutf-8F)encodinghash_key
categorize)pandas.core.util.hashingr   _hash_pandas_objectdtypenpuint64shape)selfdatar   ress       c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/extension/base/methods.pytest_hash_pandas_objectz(BaseMethodsTests.test_hash_pandas_object   sj     	?>>>>>&&'8U ' 
 
 yBI%%%%yDJ&&&&&&    c                     t          |d          s$t          j        dt          |                      t	          j        |j                  }|j        d         }|j        du sJ d S )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    sl    t^,, 	MKKtDzzKKLLL 122x(}$$$$$$r   r   TFc                 l   |d d         }|r||                                           }n|}t          j        |                              |                                          }t          j        |                              |                                          }t          j        ||           d S )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    CRC= 	hmmoo-.EEE8$$111@@KKMM9U##000??JJLL
vx00000r   c                    |d d                                          }t          j        ||                                                    }t	          j        ||j                  }|                    d                                          }t          |t          j
                  s>t	          j        dt          |          z  gt          |          z  |j        d          }n5t	          j        d|j        d          }dt          |          z  ||d	k    <   t          |j        t          j                  r.|j        j        t          j        u r|                    d
          }nt#          |j        dd          dk    st          |j        t          j                  r|                    d          }n5t'          |j                  t          j        u r|                    d          }t+          j        ||           d S )Nr*   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   NAr/   r0   )r   r   valuesserr3   r4   s         r    test_value_counts_with_normalizez1BaseMethodsTests.test_value_counts_with_normalize5   s   CRCy!!$		|,--iDJ///!!D!11<<>>$// 	3yS[[!CKK/v|,  HH yFL|LLLH#$s6{{?HVaZ dj".11 
	2dj6IRV6S6Sy11HHTZB//9<<
JA
 A
<  '899HH
++ru44y11H
vx00000r   c                     t          j        d|i          }|                    d          }t          j        ddg          }t	          j        ||           d S )NAcolumnsaxisr   r9   )r,   	DataFramecountr-   r/   r0   )r   data_missingdfr3   r4   s        r   
test_countzBaseMethodsTests.test_countS   sU    \3-..y))9aV$$
vx00000r   c                 j    t          j        |          }|                                }d}||k    sJ d S )Nr9   )r,   r-   rW   )r   rX   rO   r3   r4   s        r   test_series_countz"BaseMethodsTests.test_series_countY   s:    i%%!!!!!!r   c                     t          j        |                              t                    }t	          |t           j                  sJ d S N)r,   r-   applyidrD   r   r   r3   s      r   test_apply_simple_seriesz)BaseMethodsTests.test_apply_simple_series`   s;    4&&r**&"),,,,,,,r   	na_actionNignorec                     |                     d |          }|                                }t          j        ||           d S )Nc                     | S r^    xs    r   <lambda>z+BaseMethodsTests.test_map.<locals>.<lambda>f   s    A r   )rc   )mapto_numpyr/   assert_numpy_array_equal)r   rX   rc   r3   r4   s        r   test_mapzBaseMethodsTests.test_mapd   sF    !!++!CC((**
#FH55555r   c                     t          j        |                                          }t          j        t          j        g dt          j                            }t          j        ||           d S N   r   r9   r7   )r,   r-   argsortr   rC   intpr/   r0   )r   data_for_sortingr3   r4   s       r   test_argsortzBaseMethodsTests.test_argsortj   s[    +,,44669RXiiirw???@@
vx00000r   c                     |                                 }t          j        g dt          j                  }t	          j        ||           d S rp   )rs   r   rC   rt   r/   rm   )r   data_missing_for_sortingr3   r4   s       r   test_argsort_missing_arrayz+BaseMethodsTests.test_argsort_missing_arrayp   sF    )11338IIIRW555
#FH55555r   c                 N   d}t          j        t          |          5  t          j        |                                          }d d d            n# 1 swxY w Y   t          j        t          j        g dt          j                            }t          j	        ||           d S )Nz;The behavior of Series.argsort in the presence of NA valuesmatch)r9   r   r7   )
r/   assert_produces_warningFutureWarningr,   r-   rs   r   rC   rt   r0   )r   rx   msgr3   r4   s        r   test_argsort_missingz%BaseMethodsTests.test_argsort_missingv   s    K'SAAA 	C 	CY788@@BBF	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C9RXjjj@@@AA
vx00000s   'AAAc                    |j         j        }d}d}|rd}d}|                                |k    sJ |                                dk    sJ |                    g d          }|                                |k    sJ |                                dk    sJ |                                dk    sJ |                                dk    sJ d S )Nr9      r   rr   )rr   r   r   r9   r9   rr   )r   _is_booleanargmaxargmintake)r   ru   rx   rH   is_bool
exp_argmaxexp_argmax_repeatedr   s           r   test_argmin_argmaxz#BaseMethodsTests.test_argmin_argmax}   s    "(4
 	$J"#  &&((J6666&&((A----  $$%7%7%788{{}} 33333{{}}!!!! (..00A5555'..00A555555r   methodr   r   c                     d}t          j        t          |          5   t          |d d         |                       d d d            d S # 1 swxY w Y   d S )Nattempt to getr{   r   )r   raises
ValueErrorrK   )r   r   r   err_msgs       r   test_argmin_argmax_empty_arrayz/BaseMethodsTests.test_argmin_argmax_empty_array   s     #]:W555 	( 	(%GD!Hf%%'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   !AAAc                     d}t          |                              ||g|j                  }t          j        t
          |          5   t          ||                       d d d            d S # 1 swxY w Y   d S )Nr   r7   r{   )r!   _from_sequencer   r   r   r   rK   )r   r   r   rH   r   data_nas         r   test_argmin_argmax_all_naz*BaseMethodsTests.test_argmin_argmax_all_na   s     #t**++Xx,@
+SS]:W555 	' 	'$GGV$$&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   	A//A36A3zop_name, skipna, expected)idxmaxTr   )idxminTrr   )r   Tr   )r   Trr   r   r   )r   Fr}   )r   Fr}   c                    d }d}|                     d          r|dk    rt          }|                     d          r t          j        |          rt          }d| }t	          j        |          }t          j        ||          5   t          ||          |          }d d d            n# 1 swxY w Y   t          j	        ||           d S )Nz$The behavior of Series.argmax/argminargr}   idxzThe behavior of Series.r{   skipna)

startswithr   r   isnanr,   r-   r/   r~   rK   assert_almost_equal)	r   rx   op_namer   r4   warnr   rO   r3   s	            r   test_argreduce_seriesz&BaseMethodsTests.test_argreduce_series   s   " 4e$$ 	!R De$$ 	6();); 	6 D5G55Ci011'C888 	: 	:*WS'**&999F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:
vx00000s   B--B14B1c                 0   |}t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr?   r{   Fr   )r   r   NotImplementedErrorr   r   )r   rx   r   s      r   +test_argmax_argmin_no_skipna_notimplementedz<BaseMethodsTests.test_argmax_argmin_no_skipna_notimplemented   s   '].b999 	& 	&KKuK%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& ].b999 	& 	&KKuK%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s#   AAA'BBBzna_position, expectedlastrq   rt   r7   firstr9   rr   r   c                 R    t          ||          }t          j        ||           d S )N)na_position)r   r/   rm   )r   rx   r   r4   r3   s        r   test_nargsortzBaseMethodsTests.test_nargsort   s0     2LLL
#FH55555r   	ascendingc                    t          j        |          }|                    ||          }|j        g d         }|s7|                                dk    r|j        g d         }n|j        g d         }t          j        ||           d S )Nr   keyrq   rr   )r   r9   rr   )r9   r   rr   )r,   r-   sort_valuesilocnuniquer/   r0   )r   ru   r   sort_by_keyrO   r3   r4   s          r   test_sort_valuesz!BaseMethodsTests.test_sort_values   s    i())9+FF8III& 	/{{}}!!8III.8III.
vx00000r   c                     t          j        |          }|                    ||          }|r|j        g d         }n|j        g d         }t	          j        ||           d S )Nr   rq   )r   rr   r9   )r,   r-   r   r   r/   r0   )r   rx   r   r   rO   r3   r4   s          r   test_sort_values_missingz)BaseMethodsTests.test_sort_values_missing   sl     i0119+FF 	+x			*HHx			*H
vx00000r   c                     t          j        g d|d          }|                    ddg          }t          j        g d|                    g d          dg d          }t	          j        ||           d S )N)r9   rr   r9   rR   BrR   r   )r9   r9   rr   rq   r;   )r,   rV   r   r   r/   assert_frame_equal)r   ru   r   rY   r3   r4   s         r   test_sort_values_framez'BaseMethodsTests.test_sort_values_frame   s    \			0@AABBc
++<))"2"7"7			"B"BCC999
 
 
 	fh/////r   keep)r   r   Fc                 *   |                     g d          }|                    |          }|dk    rt          j        g d          }n3|dk    rt          j        g d          }nt          j        g d          }t	          j        ||           d S )N)r   r9   r   r9   )r   r   )FFTTr   TTFF)TTTT)r   
duplicatedr   rC   r/   rm   )r   r   r   arrr3   r4   s         r   test_duplicatedz BaseMethodsTests.test_duplicated   s    ii%%T**7??x : : :;;HHV^^x : : :;;HHx 8 8 899H
#FH55555r   boxc                     | S r^   rg   rh   s    r   rj   zBaseMethodsTests.<lambda>  s    ! r   c                 *    |                                  S r^   )rB   rh   s    r   rj   zBaseMethodsTests.<lambda>  s    !((** r   c                     ||                     |d         |d         g|j                            } ||          }t          |          dk    sJ t          |t	          |                    sJ |d         |d         k    sJ d S )Nr   r7   r9   )r   r   rF   rD   r!   )r   r   r   r   r   r3   s         r   test_uniquezBaseMethodsTests.test_unique  s     S,,d1gtAw-?tz,RRSS

##6{{a&$t**-----ayJqM))))))r   c                    t          j        |d          \  }}|j        j        }|r:t	          j        g dt          j                  }|                    ddg          }n9t	          j        g dt          j                  }|                    g d          }t          j	        ||           t          j
        ||           d S )	NTuse_na_sentinel)r   r   r}   r}   r9   r9   r   r   r7   r      )r   r   r}   r}   r9   r9   r   rr   )r   r      )r,   	factorizer   r   r   rC   rt   r   r/   rm   assert_extension_array_equal)r   data_for_groupingcodesuniquesr   expected_codesexpected_uniquess          r   test_factorizezBaseMethodsTests.test_factorize  s    &7NNNw#)5 	AX&@&@&@PPPN055q!f==X&@&@&@PPPN055iii@@
#E>:::
'1ABBBBBr   c                 J   t          j        |d          \  }}|                    d          \  }}t          j        ||           t          j        ||           t          |          t          t          j        |                    k    sJ |j        |j        k    sJ d S )NTr   )r,   r   r/   rm   r   rF   rB   r   )r   r   codes_1	uniques_1codes_2	uniques_2s         r   test_factorize_equivalencez+BaseMethodsTests.test_factorize_equivalence!  s    \*;TRRR.888NN
#GW555
'	9===9~~RYy%9%9!:!:::::"3"9999999r   c                 :   t          j        |d d                   \  }}t          j        g t          j                  }t          |                              g |d d         j                  }t          j	        ||           t          j
        ||           d S )Nr   r7   )r,   r   r   rC   rt   r!   r   r   r/   rm   r   )r   r   r   r   r   r   s         r   test_factorize_emptyz%BaseMethodsTests.test_factorize_empty*  s    d2A2h//w"BG444::44RtBQBx~4NN
#E>:::
'1ABBBBBr   c                 
   |                     ddg          }t          j        d|i          }|                                }|j        d         }|                    |          }||j        d<   t          j        ||           d S )Nr9   rR   )r   r   )r   r,   rV   copyr   fillnar/   r   )r   rX   r   rY   df_orig
filled_valr3   s          r   test_fillna_copy_framez'BaseMethodsTests.test_fillna_copy_frame2  sz    A''\3*%%''))WT]
:&&&D
b'*****r   c                     |                     ddg          }t          j        |d          }|                                }|d         }|                    |          }||j        d<   t          j        ||           d S )Nr9   F)r   r   )r   r,   r-   r   r   r   r/   r0   )r   rX   r   rO   ser_origr   r3   s          r   test_fillna_copy_seriesz(BaseMethodsTests.test_fillna_copy_series>  sx    A''i%(((88::V
J''#A
sH-----r   c                     d}t          j        t          |          5  |                    |                    dg                     d d d            d S # 1 swxY w Y   d S )Nz!Length of 'value' does not match.r{   r9   )r   r   r   r   r   )r   rX   r   s      r   test_fillna_length_mismatchz,BaseMethodsTests.test_fillna_length_mismatchI  s    1]:S111 	8 	8 1 11# 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   *AAAbool_combine_le_expected_dtypec                     |d          \  }}t          j        |          }t          j        |          }|                    |d           }t          j        t          j        d t	          t          |          t          |                    D             | j                            }t          j        ||           |j	        d         |                    d           }t          j        t          j        fdt          |          D             | j                            }t          j        ||           d S )Nrr   c                     | |k    S r^   rg   x1x2s     r   rj   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>W  s
    rRx r   c                      g | ]\  }}||k    S rg   rg   .0abs      r   
<listcomp>z4BaseMethodsTests.test_combine_le.<locals>.<listcomp>Z  s     NNNFQaNNNr   r7   r   c                     | |k    S r^   rg   r   s     r   rj   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>a  s
    b r   c                     g | ]}|k    	S rg   rg   r   r   vals     r   r   z4BaseMethodsTests.test_combine_le.<locals>.<listcomp>d  s    444ac444r   )
r,   r-   combinerC   ziplistr   r/   r0   r   )	r   data_repeated
orig_data1
orig_data2s1s2r3   r4   r   s	           @r   test_combine_lez BaseMethodsTests.test_combine_leQ  s@    "/q!1!1
JYz""Yz""B 7 7889HNNc$z*:*:D<L<L&M&MNNN5  
 
 	vx000gajC!8!8999H44444
#3#34445  
 
 	vx00000r   c                     |d          \  }}t          j        |          }t          j        |          }	 t          j        d          5  t          j        |                    d t          t          |          t          |                    D                                 }d d d            n# 1 swxY w Y   nY# t          $ rL t          j	        t                    5  |
                    |d            d d d            n# 1 swxY w Y   Y d S w xY w|
                    |d           }t          j        ||           |j        d         |
                    d           }t          j        |                    fd	t          |          D                                 }t          j        ||           d S )
Nrr   rd   )overc                     g | ]
\  }}||z   S rg   rg   r   s      r   r   z5BaseMethodsTests.test_combine_add.<locals>.<listcomp>v  s     UUU6AqQUUUr   c                     | |z   S r^   rg   r   s     r   rj   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>}  s
    b2g r   c                     | |z   S r^   rg   r   s     r   rj   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    rBw r   r   c                     | |z   S r^   rg   r   s     r   rj   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    R r   c                     g | ]}|z   S rg   rg   r   s     r   r   z5BaseMethodsTests.test_combine_add.<locals>.<listcomp>  s    &I&I&I1q3w&I&I&Ir   )r,   r-   r   errstater   r   r   	TypeErrorr   r   r   r/   r0   r   )	r   r   r   r   r   r  r4   r3   r   s	           @r   test_combine_addz!BaseMethodsTests.test_combine_addj  s=   !.q!1!1
JYz""Yz""	(+++  9--UUSj1A1A4
CSCS-T-TUUU                  	 	 	 y)) 7 7

2556667 7 7 7 7 7 7 7 7 7 7 7 7 7 7FF	 B 6 677
vx000gajC!7!7889%%&I&I&I&IZ8H8H&I&I&IJJ
 
 	vx00000sZ   C  AB4(C  4B88C  ;B8<C   #D#D;DD	DD	DDc                 
   t          j        |d d                   }t          j        |dd         g d          }|                    |          }t          j        |d d                   }t          j        ||           d S )Nr   rr      )rr   r   r   r   )r,   r-   combine_firstr/   r0   )r   r   r   r   r3   r4   s         r   test_combine_firstz#BaseMethodsTests.test_combine_first  sz    Id2A2hId1Q3iyyy111##9T"1"X&&
vx00000r   framezperiods, indices)rr   r   r   r}   r}   r   )r   r9   rr   r   r   rr   )r}   r}   r   r9   rr   c                    |d d         }t          j        |d          }t          j        |                    |d          d          }|r|                    d                              d                              |          }t          j        |t          j        dgdz  d                              |          gd	          }t          j        }n!|                    |          }t          j	        } |||           d S )
Nr  rR   r<   T
allow_fillr9   )r   r   rT   )
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    bqbyc***9V[[T[BBMMM 	-]]],,33a388>>wGGFy29aS1W3777==gFFGa  H +GGZZ((F,G!!!!!r   c                     |                     d          }|d         |d         k    sJ |d         |d<   |d         |d         k    sJ d S )Nr   r9   r  ra   s      r   test_shift_0_periodsz%BaseMethodsTests.test_shift_0_periods  sV    AAw$q'!!!!q'QayF1I%%%%%%r   r  r9   c                    |d d         }t          |j                  rt          j        }nt          j        }	  |||           n4# t
          $ r' t          j        t          |           d           Y nw xY wt          j
        |          }|                    |          }t          j
         |||                    |                              }t          j        ||           t          j        |dgdz  d          }|                    |          }|dk    rt           j        ddddg}ndddt           j        t           j        g}t          j        ||d          }t          j        ||           d S )Nr  z does not support diffg      ?r   r9   r   )r   r   operatorxorsub	Exceptionr   r    r!   r,   r-   diffr  r/   r0   rV   r   rI   r   )	r   r   r  opsr3   r4   rY   r   s	            r   	test_diffzBaseMethodsTests.test_diff  sl   BQBx$$ 	BBB	?BtTNNNN 	? 	? 	?K4::===>>>>>	?IdOO9RRdjj&9&9::;;
vx000\C5195566!!a<<Aq!$AAAq"&"&)A<hQ 7 788
fh/////s   A .A76A7r}   r   c                     |d d         }|                     |          }|                    |d          }t          j        ||           d S )Nrr   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  sP     bqbg&&;;w4;88
'99999r   )r,  r}   r   r9   r   c                 r    |d d         }|                     |          }|}t          j        ||           d S )Nr   )r  r/   r   )r   r   r  emptyr3   r4   s         r   test_shift_empty_arrayz'BaseMethodsTests.test_shift_empty_array  s@     RaRW%%
'99999r   c                     |                     d          }||usJ |d d                              d          }||usJ d S )Nr   rr   r!  ra   s      r   test_shift_zero_copiesz'BaseMethodsTests.test_shift_zero_copies  sR    AT!!!!bqb""T!!!!!!r   c                 6   |d d         }|d         }|                     d|          }|                    g d          }t          j        ||           |                     d|          }|                    g d          }t          j        ||           d S )Nr   r   r9   )
fill_value)r   r   r9   rr   r  )rr   r   r   r   r.  )r   r   r   r6  r3   r4   s         r   test_shift_fill_valuez&BaseMethodsTests.test_shift_fill_value  s    2A2h!W
14499\\\**
'9992*5599\\\**
'99999r   c                     t          j        t          d          5  t          |           d d d            d S # 1 swxY w Y   d S )Nzunhashable typer{   )r   r   r  hashr   r   s     r   test_not_hashablez"BaseMethodsTests.test_not_hashable  s    ]9,=>>> 	 	JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   9= =c                     t          j        |          }|r|                                }t           j                            |          }t           j                            |          }t          j        ||           d S 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  sf    y 	#==??DG&&t,,G&&t,,
1r   c                 (   |j         j        r|                     ||          S |\  }}}|                    g d          }|rt	          j        |          }|                    |          dk    sJ |                    |d          dk    sJ |                    |          dk    sJ |                    |d          dk    sJ |                    |          dk    sJ |                    |d          dk    sJ |                    |                    ddg                    }t          j        ddgt          j	                  }t          j        ||           t          j        g d	          }	|                    ||	
          dk    sJ d S )Nrq   r   rightsider9   rr   r   r7   r   sorter)r   r   _test_searchsorted_bool_dtypesr   r,   r-   searchsortedr   rC   rt   r/   rm   )
r   ru   	as_seriesr   cr   r   r3   r4   rG  s
             r   test_searchsortedz"BaseMethodsTests.test_searchsorted  s   !- 	T667GSSS"1a##III.. 	!)C..C""a''''00A5555""a''''00A5555""a''''00A5555!!#((Aq6"2"2338QF"'222
#FH555 )))$$,,Qv,>>!CCCCCCr   c                    |j         }t          j        ddg|          }|\  }}t          |                              ||g          }|rt          j        |          }|                    |          dk    sJ |                    |d          dk    sJ |                    |          dk    sJ |                    |d          dk    sJ |                    |                    ddg                    }t          j        ddgt          j	                  }t          j        ||           t          j        ddg          }	|                    ||		          dk    sJ d S )
NTFr7   r   rC  rD  r9   rr   rF  )r   r,   rC   r!   r   r-   rI  r   r   rt   r/   rm   )
r   ru   rJ  r   r   r   r   r3   r4   rG  s
             r   rH  z/BaseMethodsTests._test_searchsorted_bool_dtypes  sx    !&8T5M???1#$$33QF;; 	!)C..C""a''''00A5555""a''''00A5555!!#((Aq6"2"2338QF"'222
#FH555 1a&!!,,Qv,>>!CCCCCCr   c                 "   |d         |d         k    sJ t          |          }|d d         \  }}t          j        |                    ||||g|j                            }|                                }t          j        g d          }	|r,|                    d          }|		                    dd          }	|
                    |	          }
t          j        |                    ||||g|j                            }|r|                    d          }t          j        |
|           |                    |	 d	
           t          j        ||           |                                }|r|                    d          }t          j        g d          }	|                    ||||g|j                  }|r,t          j        d|i          }t          j        d|	i          }	|
                    |	|          }
t          j        |                    ||||g|j                            }|r|                    d          }t          j        |
|           |                    |	 |d	
           t          j        ||           d S )Nr   r9   rr   r7   r   r   r  r}   T)inplace)TFTT)r!   r,   r-   r   r   r   r   rC   r  reshapewherer/   r?  maskrV   )r   r   rH   r@  clsr   r   origrO   condr3   r4   r2   s                r   test_where_seriesz"BaseMethodsTests.test_where_series3  s   Aw$q'!!!!4jjBQBx1y++Q1aL
+KKLLiikkx22233 	',,C,((C<<A&&D491h9LL
 
  	3((c(22H
)))$%%%
X&&& iikk 	),,C,((Cx11122""Aq!Q<tz"BB 	-L#u..E<d,,D4''9S//Aq!DJ/OOPP 	3((c(22H
)))$t,,,
X&&&&&r   repeats)r9   rr   r   c                 6   t          |                              |d d         |j                  }|rt          j        |          }|rt          j        ||          n|                    |          }t          |t                    r|gdz  n|}d t          ||          D             }t          |                              ||j                  }|r.t          j        ||j
                            |                    }t          j        ||           d S )Nr   r7   c                 <    g | ]\  }}t          |          D ]}|S rg   )range)r   ri   n_s       r   r   z0BaseMethodsTests.test_repeat.<locals>.<listcomp>g  s/    FFF$!QU1XXFFAFFFFr   r   )r!   r   r   r,   r-   r   repeatrD   intr   r;   r/   r?  )r   r   rW  rJ  	use_numpyr   r3   r4   s           r   test_repeatzBaseMethodsTests.test_repeat^  s   4jj''RaR
'CC 	!)C..C,5N3(((3::g;N;N#-gs#;#;H7)a--FF#c7"3"3FFF::,,XTZ,HH 	Ly1A1A'1J1JKKKH
)))))r   zrepeats, kwargs, error, msgrU   negativer   foobarz'foo'c                     t          j        ||          5  |rt          j        ||fi | n |j        |fi | d d d            d S # 1 swxY w Y   d S )Nr{   )r   r   r   r]  )r   r   rW  kwargserrorr   r_  s          r   test_repeat_raisesz#BaseMethodsTests.test_repeat_raisesn  s     ]5,,, 	/ 	/ /	$2262222G..v...		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   %A		AAc                 "   |                     d          }|dd          }t          j        ||           |                     ddg          }|                    |dg         |dg         |dd          g          }t          j        ||           d S )Nr   r9   r   rr   r   )deleter/   r   _concat_same_type)r   r   r3   r4   s       r   test_deletezBaseMethodsTests.test_delete~  s    Q8
'999aV$$))49dA3iabb*JKK
'99999r   c                 <   |dd                               d|d                   }t          j        ||           |dd                               t          |dd                     |d                   }t          j        ||           |d d                              d|d                   }t	          j        t          |                    }|dd         |dd <   t          |          dz
  |d<   |                    |          }t          j        ||           d S )Nr9   r   r}   r   r  )insertr/   r   rF   r   aranger   )r   r   r3   takerr4   s        r   test_insertzBaseMethodsTests.test_insert  s    abbDG,,
'555abb#d122h--a99
'555 crc!!!T"X..	#d))$$!B$Kabb	t99q=a99U##
'99999r   c                     |}t          j        t          t          f          5  |                    d|           d d d            n# 1 swxY w Y   t          j        t          t          f          5  |                    d|           d d d            n# 1 swxY w Y   t          j        t          t          f          5  |                    t          |          dz
  |           d d d            d S # 1 swxY w Y   d S )Nr   r   r9   )r   r   r  r   rm  rF   )r   r   invalid_scalaritems       r   test_insert_invalidz$BaseMethodsTests.test_insert_invalid  s   ]Iz233 	! 	!KK4   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ]Iz233 	! 	!KK4   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ]Iz233 	- 	-KKD		At,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s5   AA
A
1BBB?'C33C7:C7c                    t          |          }t          j        t                    5  |                    |dz   |d                    d d d            n# 1 swxY w Y   t          j        t                    5  |                    | dz
  |d                    d d d            n# 1 swxY w Y   t          j        t
                    5  |                    d|d                    d d d            d S # 1 swxY w Y   d S )Nr9   r   g      ?)rF   r   r   
IndexErrorrm  r  )r   r   ubs      r   test_insert_invalid_locz(BaseMethodsTests.test_insert_invalid_loc  s   YY]:&& 	) 	)KKQQ(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) ]:&& 	* 	*KKaa)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* ]9%% 	& 	&KKT!W%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s5    AAA9!B&&B*-B*
C44C8;C8c                    t          |                              |d         gt          |          z  |j                  }t          |                              |gt          |          z  |j                  }t	          j        ||d          }t	          j        ||d          }t	          j        ||d          }|                    |          du sJ |                    |                                          du sJ |                    |          du sJ |                    |          du sJ |d d                             |d d                   du sJ |d d                             |d d                   du sJ |                    d           du sJ |dg                             |d                   du sJ d S )Nr   r7   F)	transposeTrr   r   )r!   r   rF   r   r/   box_expectedequalsr   )r   r   rH   rJ  r   data2r   s          r   test_equalszBaseMethodsTests.test_equals  s   T

))47)c$ii*?tz)RRt**++XJT,B$*+UUtSE:::se<<</'3%@@@
 {{4  D(((({{499;;''4//// {{5!!U****{{7##u,,,, BQBxtBQBx((E1111 BQBxtBQBx((D0000 {{4  E))))QCyQ((E111111r   c                 |    t          j        |                              t          j        |                    sJ d S r^   )r,   r-   r|  r:  s     r   &test_equals_same_data_different_objectz7BaseMethodsTests.test_equals_same_data_different_object  s2    y%%bioo6666666r   )H__name__
__module____qualname____doc__r   r(   r   markparametrizer5   rP   rZ   r\   rb   rn   rv   ry   r   r   r   r   r   rI   r   r   rC   r   r   r   r   r   r   r,   r-   rB   r   r   r   r   r   r   r   r   r   r   __annotations__r  r  r  r  r"  r+  r/  r2  r4  r7  r;  rA  rL  rH  rV  r`  r   r  rg  rk  rp  rt  rx  rV   r~  r  rg   r   r   r	   r	      sR        //	' 	' 	'% % % [Xe}55
1 
1 65
11 1 1<1 1 1" " "- - - [[4*:;;6 6 <;6
1 1 16 6 61 1 16 6 62 [X(';<<( ( =<( [X(';<<' ' =<' [#ubf%ubf%!!		
 1 1 1 & & & [XRXiiixrx/?/?@@@Ahbhyyy0@0@AAAB	
 6 6 6
 [[4-881 1 981 [[4-88	1 	1 98	1 [[4-880 0 980 [V%=%=%=>>	6 	6 ?>	6 [URY$<==[X(<(<bi'HII* * JI >=*C C C: : :C C C
+ 
+ 
+	. 	. 	.8 8 8 )5V(<(<<<<1 1 121 1 1@1 1 1 [WtUm44[
	 1ooo"6<M<M<M8NO " "	  54
"$& & & [YB000 0 1002 [
r2h"q"gQFa"a\ABx=Q : :	 : [Y(9(9(9::: : ;::" " "	: 	: 	:  
  D D D6D D D4)' )' )'V [YAq)))(<==* * >=* [%Z0Z,VRW-	73		
 / / /: : :: : :"
- 
- 
-& & & [URXry",$GHH2 2 IH287 7 7 7 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	   rg   r   r   <module>r     s                       3 3 3 3 3 3 2 2 2 2 2 2 9 9 9 9 9 9           ( ( ( ( ( (~
7 ~
7 ~
7 ~
7 ~
7 ~
7 ~
7 ~
7 ~
7 ~
7r   