
    o[wee                         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Zd dlmZ d dlmZ  G d d          ZdS )    N)Dtype)is_bool_dtype)na_value_for_dtype)nargsortc                      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                            d0ej         d1 g          ej                            dd2 ej!        g          d3                         Z"d4 Z#d5 Z$d6 Z%d7 Z&d8 Z'd9 Z( ej        e)          Z*e+e,d:<   d; Z-d< Z.d= Z/ej                            d>ddg          ej                            d?d@g dAfdBg dCfdDg dEfg          dF                         Z0dG Z1ej                            dHdId@g          dJ             Z2ej                            d?dKdLdLggdLdIdLggdBdBdIggdIdLdBggdMdLdLggg          dN             Z3ej                            dHg dO          dP             Z4dQ Z5dR Z6dS Z7dT Z8dU Z9dV Z:dW Z;ej                            dXdBdIdDg dYg          dZ             Z<ej                            d[dDd\dIie=d\fdLi e=d]fdIdDgi e=d^fdDd_d`ie>dafg          db             Z?dc Z@dd ZAde ZBdf ZCej                            d0ej        ej         ejD        g          dg             ZEdh ZFdS )i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       Clib/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        d
d          dk    st          |j        t          j                  r|                    d          }net          |j        d
d          dk    r|                    d          }n5t!          |j                  t          j        u r|                    d          }t%          j        ||           d S )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.   r/   )r   r   valuesserr2   r3   s         r    test_value_counts_with_normalizez1BaseMethodsTests.test_value_counts_with_normalize4   s   CRCy!!$		|,--iDJ///!!D!11<<>>$// 	3yS[[!CKK/v|,  HH yFL|LLLH#$s6{{?HVaZ 4:y"--::jJ?
 ?
:  '899HHTZB//?BBy11HH
++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   r8   )r+   	DataFramecountr,   r.   r/   )r   data_missingdfr2   r3   s        r   
test_countzBaseMethodsTests.test_countR   sU    \3-..y))9aV$$
vx00000r   c                 j    t          j        |          }|                                }d}||k    sJ d S )Nr8   )r+   r,   rT   )r   rU   rL   r2   r3   s        r   test_series_countz"BaseMethodsTests.test_series_countX   s:    i%%!!!!!!r   c                     t          j        |                              t                    }t	          |t           j                  sJ d S N)r+   r,   applyidrD   r   r   r2   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>e   s    A r   )r`   )mapto_numpyr.   assert_numpy_array_equal)r   rU   r`   r2   r3   s        r   test_mapzBaseMethodsTests.test_mapc   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   r8   r6   )r+   r,   argsortr   rC   intpr.   r/   )r   data_for_sortingr2   r3   s       r   test_argsortzBaseMethodsTests.test_argsorti   s[    +,,44669RXiiirw???@@
vx00000r   c                     |                                 }t          j        g dt          j                  }t	          j        ||           d S rm   )rp   r   rC   rq   r.   rj   )r   data_missing_for_sortingr2   r3   s       r   test_argsort_missing_arrayz+BaseMethodsTests.test_argsort_missing_arrayo   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)r8   r   r6   )
r.   assert_produces_warningFutureWarningr+   r,   rp   r   rC   rq   r/   )r   ru   msgr2   r3   s        r   test_argsort_missingz%BaseMethodsTests.test_argsort_missingu   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 )Nr8      r   ro   )ro   r   r   r8   r8   ro   )r   _is_booleanargmaxargmintake)r   rr   ru   na_value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 getrx   r   )r   raises
ValueErrorrG   )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   r6   rx   )r    _from_sequencer   r   r   r   rG   )r   r   r   r   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   )idxminTro   )r   Tr   )r   Tro   r   r   )r   Frz   )r   Frz   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argrz   idxzThe behavior of Series.rx   skipna)

startswithr|   r   isnanr+   r,   r.   r{   rG   assert_almost_equal)	r   ru   op_namer   r3   warnr}   rL   r2   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=   rx   Fr   )r   r   NotImplementedErrorr   r   )r   ru   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lastrn   rq   r6   firstr8   ro   r   c                 R    t          ||          }t          j        ||           d S )N)na_position)r   r.   rj   )r   ru   r   r3   r2   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   keyrn   ro   )r   r8   ro   )r8   r   ro   )r+   r,   sort_valuesilocnuniquer.   r/   )r   rr   r   sort_by_keyrL   r2   r3   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   rn   )r   ro   r8   )r+   r,   r   r   r.   r/   )r   ru   r   r   rL   r2   r3   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)r8   ro   r8   rO   BrO   r   )r8   r8   ro   rn   r:   )r+   rS   r   r   r.   assert_frame_equal)r   rr   r   rV   r2   r3   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   boxc                     | S r[   rd   re   s    r   rg   zBaseMethodsTests.<lambda>   s    ! r   c                 *    |                                  S r[   )rB   re   s    r   rg   zBaseMethodsTests.<lambda>   s    !((** r   c                     ||                     |d         |d         g                    } ||          }t          |          dk    sJ t          |t          |                    sJ |d         |d         k    sJ d S Nr   r8   )r   rF   rD   r    )r   r   r   r   
duplicatedr2   s         r   test_uniquezBaseMethodsTests.test_unique   s     S,,d1gtAw-?@@AA

##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   rz   rz   r8   r8   r   r   r6   r      )r   r   rz   rz   r8   r8   r   ro   )r   r      )r+   	factorizer   r   r   rC   rq   r   r.   rj   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.   rj   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   r6   )r+   r   r   rC   rq   r    r   r   r.   rj   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 )Nr8   rO   )r   r   )r   r+   rS   copyr   fillnar.   r   )r   rU   arrrV   df_orig
filled_valr2   s          r   test_fillna_copy_framez'BaseMethodsTests.test_fillna_copy_frame%  sz    A''\3*%%''))WT]
:&&&D
b'*****r   c                     |                     ddg          }t          j        |d          }|                                }|d         }|                    |          }||j        d<   t          j        ||           d S )Nr8   F)r   r   )r   r+   r,   r   r   r   r.   r/   )r   rU   r   rL   ser_origr   r2   s          r   test_fillna_copy_seriesz(BaseMethodsTests.test_fillna_copy_series1  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.rx   r8   )r   r   r   r   r   )r   rU   r}   s      r   test_fillna_length_mismatchz,BaseMethodsTests.test_fillna_length_mismatch<  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_combine_le_expected_dtypec           	      @    |d          \  }}t          j        |          }t          j        |          }|                    |d           }t          j        d t          t	          |          t	          |                    D             | j                  }t          j        ||           |j        d         |                    d           }t          j        fdt	          |          D             | j                  }t          j        ||           d S )Nro   c                     | |k    S r[   rd   x1x2s     r   rg   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>J  s
    rRx r   c                      g | ]\  }}||k    S rd   rd   .0abs      r   
<listcomp>z4BaseMethodsTests.test_combine_le.<locals>.<listcomp>L  s     JJJAQ!VJJJr   r6   r   c                     | |k    S r[   rd   r   s     r   rg   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>R  s
    b r   c                     g | ]}|k    	S rd   rd   r   r   vals     r   r   z4BaseMethodsTests.test_combine_le.<locals>.<listcomp>T  s    000!Q#X000r   )	r+   r,   combineziplistr   r.   r/   r   )	r   data_repeated
orig_data1
orig_data2s1s2r2   r3   r   s	           @r   test_combine_lez BaseMethodsTests.test_combine_leD  s"    "/q!1!1
JYz""Yz""B 7 7889JJ#d:&6&6Z8H8H"I"IJJJ1
 
 
 	vx000gajC!8!89990000tJ//0001
 
 
 	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 )
Nro   ra   )overc                     g | ]
\  }}||z   S rd   rd   r   s      r   r   z5BaseMethodsTests.test_combine_add.<locals>.<listcomp>e  s     UUU6AqQUUUr   c                     | |z   S r[   rd   r   s     r   rg   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>l  s
    b2g r   c                     | |z   S r[   rd   r   s     r   rg   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>o  s
    rBw r   r   c                     | |z   S r[   rd   r   s     r   rg   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>s  s
    R r   c                     g | ]}|z   S rd   rd   r   s     r   r   z5BaseMethodsTests.test_combine_add.<locals>.<listcomp>u  s    &I&I&I1q3w&I&I&Ir   )r+   r,   r   errstater   r   r   	TypeErrorr   r   r   r.   r/   r   )	r   r   r   r   r   r   r3   r2   r   s	           @r   test_combine_addz!BaseMethodsTests.test_combine_addY  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   ro      )ro   r   r   r   )r+   r,   combine_firstr.   r/   )r   r   r   r   r2   r3   s         r   test_combine_firstz#BaseMethodsTests.test_combine_firsty  sz    Id2A2hId1Q3iyyy111##9T"1"X&&
vx00000r   framezperiods, indices)ro   r   r   rz   rz   r   )r   r8   ro   r   r   ro   )rz   rz   r   r8   ro   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  rO   r;   T
allow_fillr8   )r   r   rQ   )
r+   r,   r   to_frameassignshiftconcatr.   r   r/   )	r   r   r  periodsindicessubsetr3   r2   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 r   r  r^   s      r   test_shift_0_periodsz%BaseMethodsTests.test_shift_0_periods  sV    AAw$q'!!!!q'QayF1I%%%%%%r   r  r8   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   r8   r   )r   r   operatorxorsub	Exceptionr   r   r    r+   r,   diffr  r.   r/   rS   r   nanr   )	r   r   r  opsr2   r3   rV   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rz   r   c                     |d d         }|                     |          }|                    |d          }t          j        ||           d S )Nro   Tr  r  r   r.   r   )r   r   r  r  r  r2   r3   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'  rz   r   r8   r   c                 r    |d d         }|                     |          }|}t          j        ||           d S )Nr   )r  r.   r   )r   r   r  emptyr2   r3   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   ro   r  r^   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   r8   )
fill_value)r   r   r8   ro   r  )ro   r   r   r   r)  )r   r   r   r1  r2   r3   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 typerx   )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 )Nrn   r   rightsider8   ro   r   r6   r   sorter)r   r   _test_searchsorted_bool_dtypesr   r+   r,   searchsortedr   rC   rq   r.   rj   )
r   rr   	as_seriesr   cr   r   r2   r3   rB  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 )
NTFr6   r   r>  r?  r8   ro   rA  )r   r+   rC   r    r   r,   rD  r   r   rq   r.   rj   )
r   rr   rE  r   r   r   r   r2   r3   rB  s
             r   rC  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   r8   ro   r6   )TTFFr   r  rz   T)inplace)TFTT)r    r+   r,   r   r   r   r   rC   r  reshapewherer.   r:  maskrS   )r   r   r   r;  clsr   r   origrL   condr2   r3   r1   s                r   test_where_seriesz"BaseMethodsTests.test_where_series"  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)r8   ro   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   r6   c                 <    g | ]\  }}t          |          D ]}|S rd   )range)r   rf   n_s       r   r   z0BaseMethodsTests.test_repeat.<locals>.<listcomp>V  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   rR  rE  	use_numpyr   r2   r3   s           r   test_repeatzBaseMethodsTests.test_repeatM  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, msgrR   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 )Nrx   )r   r   r   rX  )r   r   rR  kwargserrorr}   rZ  s          r   test_repeat_raisesz#BaseMethodsTests.test_repeat_raises]  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   r8   r   ro   r   )deleter.   r   _concat_same_type)r   r   r2   r3   s       r   test_deletezBaseMethodsTests.test_deletem  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 )Nr8   r   rz   r   r  )insertr.   r   rF   r   aranger   )r   r   r2   takerr3   s        r   test_insertzBaseMethodsTests.test_insertv  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   r8   )r   r   r  r   rh  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 )Nr8   r   g      ?)rF   r   r   
IndexErrorrh  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   r6   F)	transposeTro   r   )r    r   rF   r   r.   box_expectedequalsr   )r   r   r   rE  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,   rw  r5  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   )G__name__
__module____qualname____doc__r   r'   r   markparametrizer4   rM   rW   rY   r_   rk   rs   rv   r~   r   r   r   r   r#  r   r   rC   r   r   r   r   r   r+   r,   rB   r   r   r   r   r   r   r   boolr   r   __annotations__r   r  r
  r  r  r&  r*  r-  r/  r2  r6  r<  rG  rC  rQ  r[  r   r  rb  rf  rk  ro  rs  rS   ry  r{  rd   r   r   r   r      s        //	' 	' 	'% % % [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 [URY$<==[X(<(<bi'HII* * JI >=*C C C: : :C C C
+ 
+ 
+	. 	. 	.8 8 8 )16661 1 1*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.missingr   pandasr+   pandas._testing_testingr.   pandas.core.sortingr   r   rd   r   r   <module>r     s                       3 3 3 3 3 3 9 9 9 9 9 9           ( ( ( ( ( (n
7 n
7 n
7 n
7 n
7 n
7 n
7 n
7 n
7 n
7r   