
    aj>s                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ d dlZd dlmZ d dlmZ  G d d          ZdS )	    N)Dtype)is_bool_dtypeis_float_dtypeis_integer_dtype)NumpyEADtype)na_value_for_dtype)nargsortc                   	   e Zd ZU dZd Zd Zej                            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g d          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                            d%ddg          d)             Zej                            dd*d+g          d,             Zej                            d-g d.          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+d= Z,d> Z- e.d?          Z/e0e1d@<   dA Z2dB Z3dC Z4dD Z5ej                            dEddg          ej                            dFdGg dHfdIg dJfdKg dLfg          dM                         Z6dN Z7ej                            dOdPdGg          dQ             Z8ej                            dFdRdSdSggdSdPdSggdIdIdPggdPdSdIggdTdSdSggg          dU             Z9ej                            dOg dV          dW             Z:dX Z;dY Z<dZ Z=d[ Z>d\ Z?d] Z@d^ ZAej                            d_dIdPdKg d`g          da             ZBej                            dbdKdcdPieCdcfdSi eCddfdPdKgi eCdefdKdfdgieDdhfg          di             ZEdj ZFdk ZGdl ZHdm ZIej                            d3e"j        e"j#        e"jJ        g          dn             ZKdo ZLdS )p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       g/var/www/app.qaans.com/backend/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                 X   |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     	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                    |                                 }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 )Nr   T)	normalize   
proportion)indexnameg        r   float64storage pyarrowzdouble[pyarrow]Float64)uniquer   arrayr,   r-   r.   r   r   r/   
isinstanceCategoricallenr<   StringDtypena_valuenanastypegetattr
ArrowDtyper   NAr0   r1   )r   r   valuesserr4   r5   s         r    test_value_counts_with_normalizez1BaseMethodsTests.test_value_counts_with_normalize8   s   {{}}$		|,--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   r:   )r-   	DataFramecountr.   r0   r1   )r   data_missingdfr4   r5   s        r   
test_countzBaseMethodsTests.test_countV   sU    \3-..y))9aV$$
vx00000r   c                 j    t          j        |          }|                                }d}||k    sJ d S )Nr:   )r-   r.   rX   )r   rY   rP   r4   r5   s        r   test_series_countz"BaseMethodsTests.test_series_count\   s:    i%%!!!!!!r   c                     t          j        |                              t                    }t	          |t           j                  sJ d S N)r-   r.   applyidrE   r   r   r4   s      r   test_apply_simple_seriesz)BaseMethodsTests.test_apply_simple_seriesc   s;    4&&r**&"),,,,,,,r   	na_actionNignorec                     |                     d |          }|                                }t          j        ||           d S )Nc                     | S r_    xs    r   <lambda>z+BaseMethodsTests.test_map.<locals>.<lambda>i   s    A r   )rd   )mapto_numpyr0   assert_numpy_array_equal)r   rY   rd   r4   r5   s        r   test_mapzBaseMethodsTests.test_mapg   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   r:   r8   r-   r.   argsortr   rD   intpr0   r1   )r   data_for_sortingr4   r5   s       r   test_argsortzBaseMethodsTests.test_argsortm   s[    +,,44669RXiiirw???@@
vx00000r   c                     |                                 }t          j        g dt          j                  }t	          j        ||           d S rq   )ru   r   rD   rv   r0   rn   r   data_missing_for_sortingr4   r5   s       r   test_argsort_missing_arrayz+BaseMethodsTests.test_argsort_missing_arrays   sF    )11338IIIRW555
#FH55555r   c                     t          j        |                                          }t          j        t          j        g dt          j                            }t          j        ||           d S rq   rt   rz   s       r   test_argsort_missingz%BaseMethodsTests.test_argsort_missingy   s[    344<<>>9RXiiirw???@@
vx00000r   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 )Nr:      r   rs   )rs   r   r   r:   r:   rs   )r   _is_booleanargmaxargmintake)r   rw   r{   rI   is_bool
exp_argmaxexp_argmax_repeatedr   s           r   test_argmin_argmaxz#BaseMethodsTests.test_argmin_argmax~   s    "(4
 	$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 getmatchr   )r!   raises
ValueErrorrL   )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   r8   r   )r#   _from_sequencer   r!   r   r   rL   )r   r   r   rI   r   data_nas         r   test_argmin_argmax_all_naz*BaseMethodsTests.test_argmin_argmax_all_na   s     #t**++Xx,@
+SS]:W555 	' 	'$GGV$$&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   	A//A36A3zop_name, skipna, expected))idxmaxTr   )idxminTrs   )r   Tr   )r   Trs   )r   F)r   Fr   )r   Fr   )r   Fr   c                 8   t          j        |          }|dk    rPt          j        t          d          5   t          ||          |           d d d            d S # 1 swxY w Y   d S  t          ||          |          }t          j        ||           d S )Nr   Encountered an NA valuer   skipna)r-   r.   r!   r   r   rL   r0   assert_almost_equal)r   r{   op_namer   r5   rP   r4   s          r   test_argreduce_seriesz&BaseMethodsTests.test_argreduce_series   s    " i011r>>z1JKKK 5 5%W%%V44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 +WS'**&999F"6844444s   AA"%A"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   r   r   r   )r   r{   r   s      r   +test_argmax_argmin_no_skipna_notimplementedz<BaseMethodsTests.test_argmax_argmin_no_skipna_notimplemented   s   ']:-FGGG 	& 	&KKuK%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& ]:-FGGG 	& 	&KKuK%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s#   AAA'BBBzna_position, expectedlastrr   rv   r8   firstr:   rs   r   c                 R    t          ||          }t          j        ||           d S )N)na_position)r	   r0   rn   )r   r{   r   r5   r4   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   keyrr   rs   )r   r:   rs   )r:   r   rs   )r-   r.   sort_valuesilocnuniquer0   r1   )r   rw   r   sort_by_keyrP   r4   r5   s          r   test_sort_valuesz!BaseMethodsTests.test_sort_values   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   rr   )r   rs   r:   )r-   r.   r   r   r0   r1   )r   r{   r   r   rP   r4   r5   s          r   test_sort_values_missingz)BaseMethodsTests.test_sort_values_missing   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)r:   rs   r:   rS   BrS   r   )r:   r:   rs   rr   r<   )r-   rW   r   r   r0   assert_frame_equal)r   rw   r   rZ   r4   r5   s         r   test_sort_values_framez'BaseMethodsTests.test_sort_values_frame   s    \			0@AABBc
++<))"2"7"7			"B"BCC999
 
 
 	fh/////r   c                 t   t          j        |          }|                    |          }t          |j                  sJ |                    d          }t          |j                  rt          j        |rg dng d          }nt          j        |rg dng d          }t          j        ||           d S )N)r   r>   )      @r         ?)      ?r         @       @r   r   )r   r   r   )	r-   r.   rankr   r   rK   r   r0   r1   )r   rw   r   rP   r4   r5   s         r   	test_rankzBaseMethodsTests.test_rank   s    i())I.. fl+++++y))## 	TyI!R???SSHHyI!R???SSH
vx00000r   averageminc                    t          j        |                    g d                    }|                    |          }|dk    rBt	          |j                  sJ |                    d          }t          j        g d          }nGt          |j                  st	          |j                  sJ t          j        g d|j                  }t          j	        ||           d S )N)r   rs   r   )r   r   r>   )r   r   r   )rs   r:   rs   r8   )
r-   r.   r   r   r   r   rK   r   r0   r1   )r   rw   r   rP   r4   r5   s         r   test_rank_methodz!BaseMethodsTests.test_rank_method  s    i(--iii8899((Y!&,/////]]9--Fy11HH $FL11Q^FL5Q5QQQQy&,???H
vx00000r   	na_option)keeptopbottomc                    t          j        |          }|                    |          }t          |j                  sJ |                    d          }|dk    r"t          j        dt          j        dg          }n3|dk    rt          j        g d          }nt          j        g d          }t          j	        ||           d S )	N)r   r>   r   r   r   r   )r   r   r   r   )
r-   r.   r   r   r   rK   r   rJ   r0   r1   )r   r{   r   rP   r4   r5   s         r   test_rank_missingz"BaseMethodsTests.test_rank_missing  s    i011I..fl+++++y))y#rvs!344HH%y11HH y11H
vx00000r   r   )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   r:   r   r:   )r   r   )FFTTr   TTFF)TTTT)r   
duplicatedr   rD   r0   rn   )r   r   r   arrr4   r5   s         r   test_duplicatedz BaseMethodsTests.test_duplicated$  s    ii%%T**7??x : : :;;HHV^^x : : :;;HHx 8 8 899H
#FH55555r   boxc                     | S r_   rh   ri   s    r   rk   zBaseMethodsTests.<lambda>0  s    ! r   c                 *    |                                  S r_   )rC   ri   s    r   rk   zBaseMethodsTests.<lambda>1  s    !((** r   c                     ||                     |d         |d         g|j                            } ||          }t          |          dk    sJ t          |t	          |                    sJ |d         |d         k    sJ d S )Nr   r8   r:   )r   r   rG   rE   r#   )r   r   r   r   r   r4   s         r   test_uniquezBaseMethodsTests.test_unique0  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   r:   r:   r   r   r8   r      )r   r   r   r   r:   r:   r   rs   )r   r      )r-   	factorizer   r   r   rD   rv   r   r0   rn   assert_extension_array_equal)r   data_for_groupingcodesuniquesr   expected_codesexpected_uniquess          r   test_factorizezBaseMethodsTests.test_factorize;  s    &7N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   r0   rn   r   rG   rC   r   )r   r   codes_1	uniques_1codes_2	uniques_2s         r   test_factorize_equivalencez+BaseMethodsTests.test_factorize_equivalenceJ  s    \*;TR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   r8   )r-   r   r   rD   rv   r#   r   r   r0   rn   r   )r   r   r   r   r   r   s         r   test_factorize_emptyz%BaseMethodsTests.test_factorize_emptyS  s    d2A2h//w"BG444::44RtBQBx~4NN
#E>:::
'1ABBBBBr   c                    t          j        d|                    g d          i          }t          j        d|                    g d          i          }|                    |d         d          }t	          j        ||           d S )NrS   r   r:   r:   r   r:   r:   valuelimit)r-   rW   r   fillnar0   r   )r   rY   rZ   r5   r4   s        r   test_fillna_limit_framez(BaseMethodsTests.test_fillna_limit_frame[  s    \3 1 1,,, ? ?@AA<l&7&7&E&E FGGa::
fh/////r   c                    t          j        |                    g d                    }t          j        |                    g d                    }|                    |d         d          }t	          j        ||           d S )Nr   r   r:   r   )r-   r.   r   r   r0   r1   )r   rY   rP   r5   r4   s        r   test_fillna_limit_seriesz)BaseMethodsTests.test_fillna_limit_seriesb  sv    i)),,,77889\..|||<<==,q/;;
vx00000r   c                 
   |                     ddg          }t          j        d|i          }|                                }|j        d         }|                    |          }||j        d<   t          j        ||           d S )Nr:   rS   )r   r   )r   r-   rW   copyr   r   r0   r   )r   rY   r   rZ   df_orig
filled_valr4   s          r   test_fillna_copy_framez'BaseMethodsTests.test_fillna_copy_framei  sz    A''\3*%%''))WT]
:&&&D
b'*****r   c                     |                     ddg          }t          j        |d          }|                                }|d         }|                    |          }||j        d<   t          j        ||           d S )Nr:   F)r   r   )r   r-   r.   r   r   r   r0   r1   )r   rY   r   rP   ser_origr   r4   s          r   test_fillna_copy_seriesz(BaseMethodsTests.test_fillna_copy_seriesu  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   r:   )r!   r   r   r   r   )r   rY   msgs      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bool_combine_le_expected_dtypec                     |d          \  }}t          j        |          }t          j        |          }|                    |d           }t          j        t          j        d t	          t          |          t          |          d          D             | j                            }t          j        ||           |j	        d         |                    d           }t          j        t          j        fd	t          |          D             | j                            }t          j        ||           d S )
Nrs   c                     | |k    S r_   rh   x1x2s     r   rk   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>  s
    rRx r   c                      g | ]\  }}||k    S rh   rh   .0abs      r   
<listcomp>z4BaseMethodsTests.test_combine_le.<locals>.<listcomp>  s0       A F  r   Tstrictr8   r   c                     | |k    S r_   rh   r  s     r   rk   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>  s
    b r   c                     g | ]}|k    	S rh   rh   )r	  r
  vals     r   r  z4BaseMethodsTests.test_combine_le.<locals>.<listcomp>  s    444ac444r   )
r-   r.   combinerD   ziplistr  r0   r1   r   )	r   data_repeated
orig_data1
orig_data2s1s2r4   r5   r  s	           @r   test_combine_lez BaseMethodsTests.test_combine_le  sS    "/q!1!1
JYz""Yz""B 7 7889H "%d:&6&6Z8H8HQU"V"V"V   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           	      H   t          t          |                    rP|                    d t          t	          |          t	                    d          D             |j                  S |                    fdt	          |          D             |j                  S )Nc                     g | ]
\  }}||z   S rh   rh   r  s      r   r  z?BaseMethodsTests._construct_for_combine_add.<locals>.<listcomp>  s     OOO6AqQOOOr   Tr  r8   c                     g | ]}|z   S rh   rh   )r	  r
  rights     r   r  z?BaseMethodsTests._construct_for_combine_add.<locals>.<listcomp>  s    ///qU///r   )rE   r#   r   r  r  r   )r   leftr  s     `r   _construct_for_combine_addz+BaseMethodsTests._construct_for_combine_add  s    eT$ZZ(( 		&&OOSdT%[[%N%N%NOOOj '   
 &&////DJJ///j '   r   c                     |d          \  }}t          j        |          }t          j        |          }	 t          j        d          5  |                     ||          }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t          j        |          }|                    |d           }t          j
        ||           |j        d         }	|                    |	d           }|                     ||	          }t          j        |          }t          j
        ||           d S )Nrs   re   )overc                     | |z   S r_   rh   r  s     r   rk   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    b2g r   c                     | |z   S r_   rh   r  s     r   rk   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    rBw r   r   c                     | |z   S r_   rh   r  s     r   rk   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>  s
    R r   )r-   r.   r   errstater   	TypeErrorr!   r   r  r0   r1   r   )
r   r  r  r  r  r  r   r5   r4   r  s
             r   test_combine_addz!BaseMethodsTests.test_combine_add  s   !.q!1!1
JYz""Yz""	(+++ N N55j*MMN N N N N N N N N N N N N N N 	 	 	 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	 9S>>B 6 677
vx000gajC!7!788--j#>>9S>>
vx00000sY   A< A0$A< 0A44A< 7A48A< <#CC7CC	C
C	CCc                 
   t          j        |d d                   }t          j        |dd         g d          }|                    |          }t          j        |d d                   }t          j        ||           d S )Nr   rs      )rs   r   r   r   )r-   r.   combine_firstr0   r1   )r   r   r
  r  r4   r5   s         r   test_combine_firstz#BaseMethodsTests.test_combine_first  sz    Id2A2hId1Q3iyyy111##9T"1"X&&
vx00000r   framezperiods, indices)rs   r   r   r   r   r   )r   r:   rs   r   r   rs   )r   r   r   r:   rs   c                    |d d         }t          j        |d          }t          j        |                    |d          d          }|r|                    d                              d                              |          }t          j        |t          j        dgdz  d                              |          gd	          }t          j        }n!|                    |          }t          j	        } |||           d S )
Nr*  rS   r=   T
allow_fillr:   )r   r   rU   )
r-   r.   r   to_frameassignshiftconcatr0   r   r1   )	r   r   r-  periodsindicessubsetr5   r4   compares	            r   test_container_shiftz%BaseMethodsTests.test_container_shift  s    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   r:   r5  rb   s      r   test_shift_0_periodsz%BaseMethodsTests.test_shift_0_periods  sV    AAw$q'!!!!q'QayF1I%%%%%%r   r7  r:   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 diffr   r   r:   r   )r   r   operatorxorsub	Exceptionr!   r"   r#   r-   r.   diffr5  r0   r1   rW   r   rJ   r   )	r   r   r7  opsr4   r5   rZ   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 )Nrs   Tr1  r5  r   r0   r   )r   r   r7  r8  r9  r4   r5   s          r   test_shift_non_empty_arrayz+BaseMethodsTests.test_shift_non_empty_array  sP     bqbg&&;;w4;88
'99999r   )rH  r   r   r:   r   c                 r    |d d         }|                     |          }|}t          j        ||           d S )Nr   )r5  r0   r   )r   r   r7  emptyr4   r5   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   rs   r=  rb   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   r:   )
fill_value)r   r   r:   rs   r.  )rs   r   r   r   rJ  )r   r   r   rR  r4   r5   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_hashable2  s    ]9,=>>> 	 	JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   9= =c                     t          j        |          }|r|                                }t           j                            |          }t           j                            |          }t          j        ||           d S r_   )r-   r.   r3  utilhash_pandas_objectr0   assert_equal)r   r   as_framer
  r  s        r   test_hash_pandas_object_worksz.BaseMethodsTests.test_hash_pandas_object_works7  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 )Nrr   r   r  sider:   rs   r   r8   r   sorter)r   r   _test_searchsorted_bool_dtypesr   r-   r.   searchsortedr   rD   rv   r0   rn   )
r   rw   	as_seriesr  cr
  r   r4   r5   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 )
NTFr8   r   r  r_  r:   rs   ra  )r   r-   rD   r#   r   r.   rd  r   r   rv   r0   rn   )
r   rw   re  r   r  r
  r   r4   r5   rb  s
             r   rc  z/BaseMethodsTests._test_searchsorted_bool_dtypes[  s}    !&8T5M???1#$$33QF%3HH 	!)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   r:   rs   r8   r   r
  r0  r   T)inplace)TFTT)r#   r-   r.   r   r   r   r   rD   r3  reshapewherer0   r[  maskrW   )r   r   rI   r\  clsr
  r  origrP   condr4   r5   r3   s                r   test_where_seriesz"BaseMethodsTests.test_where_seriesu  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)r:   rs   r   c                 :   t          |                              |d d         |j                  }|rt          j        |          }|rt          j        ||          n|                    |          }t          |t                    r|gdz  n|}d t          ||d          D             }t          |                              ||j                  }|r.t          j        ||j
                            |                    }t          j        ||           d S )Nr   r8   c                 <    g | ]\  }}t          |          D ]}|S rh   )range)r	  rj   n_s       r   r  z0BaseMethodsTests.test_repeat.<locals>.<listcomp>  s0    SSS$!Q%PQ((SSQASSSSr   Tr  r   )r#   r   r   r-   r.   r   repeatrE   intr  r<   r0   r[  )r   r   rr  re  	use_numpyr   r4   r5   s           r   test_repeatzBaseMethodsTests.test_repeat  s   4jj''RaR
'CC 	!)C..C,5N3(((3::g;N;N#-gs#;#;H7)a--SS#c74"@"@"@SSS::,,XTZ,HH 	Ly1A1A'1J1JKKKH
)))))r   zrepeats, kwargs, error, msgrV   negativer   foobarz'foo'c                     t          j        ||          5  |rt          j        ||fi | n |j        |fi | d d d            d S # 1 swxY w Y   d S )Nr   )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   r:   r   rs   r   )deleter0   r   _concat_same_type)r   r   r4   r5   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 )Nr:   r   r   r   r*  )insertr0   r   rG   r   aranger   )r   r   r4   takerr5   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   r:   )r!   r   r'  r   r  rG   )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 )Nr:   r   r   )rG   r!   r   
IndexErrorr  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   r8   F)	transposeTrs   r   )r#   r   rG   r   r0   box_expectedequalsr   )r   r   rI   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.   r  rV  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   )M__name__
__module____qualname____doc__r   r*   r!   markparametrizer6   rQ   r[   r]   rc   ro   rx   r|   r~   r   r   r   r   r   r   rD   r   r   r   r   r   r   r   r   r   r-   r.   rC   r   r   r   r   r   r   r   r   r   r   r  r   __annotations__r  r   r(  r,  r;  r>  rG  rK  rN  rP  rS  rW  r]  rg  rc  rq  r{  r   r'  r  r  r  r  r  rW   r  r  rh   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(';<<' ' =<' [#		
 		
 		
 
5 
5 
5& & & [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 [[4-881 1 981 [X	5'9::1 1 ;:1 [[*C*C*CDD1 1 ED1 [V%=%=%=>>	6 	6 ?>	6 [URY$<==[X(<(<bi'HII* * JI >=*C C C: : :C C C0 0 01 1 1
+ 
+ 
+	. 	. 	.8 8 8 )5V(<(<<<<1 1 18
 
 
1 1 18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   r   r   pandas.core.dtypes.dtypesr   pandas.core.dtypes.missingr   pandasr-   pandas._testing_testingr0   pandas.core.sortingr	   r   rh   r   r   <module>r     s                              
 3 2 2 2 2 2 9 9 9 9 9 9           ( ( ( ( ( (|7 |7 |7 |7 |7 |7 |7 |7 |7 |7r   