
    Mh5              
       &   S SK r S SKrS SKrS SKJs  Jr  S SKJ	r	J
r
JrJrJrJrJr  \R"                  R%                  SS\\
/5      S 5       r\R"                  R%                  SS\R(                  " S\R*                  " S5      S	9/5      S
 5       rS r\R"                  R%                  SS\R(                  " S\R*                  " S5      S	9/5      \R"                  R%                  SSS/5      \R"                  R%                  SSS/5      \R"                  R%                  SSS/5      S 5       5       5       5       r\R"                  R%                  S/ SQ/ SQ/ SQ// SQS9\R"                  R%                  S\\
\S // SQS9S 5       5       rS r\R"                  R%                  S/ SQ5      S  5       r\R"                  R%                  S/ SQ5      S! 5       rS" rS# rS$ r \R"                  R%                  S%\!\\RD                  \\
/5      S& 5       r#S' r$g)(    N)	DataFrameIndex
MultiIndexSeries_testingconcatoption_contextotherc                     U nSS/nU(       a	  U" U5      nOUnU" USS9R                   R                  USS9nUR                  S:X  d   eg )Nabname)r   ,sep)strcatr   )index_or_seriesr
   boxvaluesresults        O/var/www/html/env/lib/python3.13/site-packages/pandas/tests/strings/test_cat.pytest_str_cat_namer      sW     C3ZFff%))--e-=F;;&       infer_stringFTpyarrow)marksc           	      4   [        SU5         U nU" SSSSS[        R                  /5      nUR                  R	                  5       nSnXE:X  d   eUR                  R	                  SS9nSnXE:X  d   eUR                  R	                  S	S
S9nSnXE:X  d   e[        R
                  " S[        R                  SSS[        R                  /[        S9nU" / SQ5      nUR                  R	                  USS9n[        R                  " XE5        UR                  R	                  [        U5      SS9n[        R                  " XE5        Sn[        / SQ5      n[        R                  " [        US9   UR                  R	                  UR                  5        S S S 5        [        R                  " [        US9   UR                  R	                  [        U5      5        S S S 5        S S S 5        g ! , (       d  f       N]= f! , (       d  f       N(= f! , (       d  f       g = f)Nfuture.infer_stringr   r   caabbc-na_repzaabbc-_NA)r   r$   a_a_b_b_c_NAdfoodtype)aaza-bbbdcfooz--<If `others` contains arrays or lists \(or other list-likes.*123match)r	   npnanr   r   arrayobjecttmassert_equallistr   pytestraises
ValueErrorr   )	r   r   r   sr   expectedtrgxzs	            r   test_str_catrF       s    
-|	< c3S"&&12 !!!#&!!!s40!!!!HHc2663UBFF;6J=> 1S)
) 473/
) N?#]]:S1EEIIahh 2 ]]:S1EEIId1g 2K 
=	<D 21 21K 
=	<s<   EH	*&G'!H	1%G8H	'
G5	1H	8
H	H		
Hc                 X   U nU" / SQ5      nSn[         R                  " [        US9   UR                  R	                  S5        S S S 5        [         R                  " [        US9   UR                  R	                  S5        S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)Nr   r   r    r(   z'Did you mean to supply a `sep` keyword?r5   |z    )r>   r?   r@   r   r   )r   r   rA   messages       r   #test_str_cat_raises_intuitive_errorrK   M   so    
C !A7G	z	1			# 
2	z	1			& 
2	1 
2	1	1	1s   B
%B

B
B)r    dtype_targetr:   categorydtype_callerc           	      N   U n[        SU5         [        / SQUS9nU[        :X  a  UO[        XfUR                  S9n[        / SQUS9n[        / SQUS:X  a  [        OS S9nU[        :X  a  UO[        U[        XaS9UR                  S9nUR
                  R                  UR                  US9n	[        R                  " X5        [        UR                  [        XaS9S	9nUR
                  R                  XsS9n	[        R                  " X5        UR
                  R                  UR                  US9n	[        R                  " X5        [        UR                  UR                  S	9n[        / S
QUS:X  a  [        OS S9nUS:X  a  [        OUR                  R                  R                  n
U[        :X  a  UO)[        U[        UR
                  S S U
S9UR                  S9nUR
                  R                  XsS9n	[        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nr   )r   r   r   r   r*   indexr+   )r   r   r   r    )abr,   r-   acr:   r   rR   )r,   r,   r-   r-   r,      )r	   r   r   r+   r:   r   r   r   r;   r<   
categories)r   rO   rM   r   r   r   rA   rC   rB   r   r+   s              r   test_str_cat_categoricalrX   X   s    C	-|	<&l;A6!AGG#D&l;$lh6NFTX

 e| a <HNN 	 188-
) 1885#?@1&
) 188-
) 188188,*(H4&$
 '(28J8J8P8P e| HLL!,E:nn 	 1&
)_ 
=	<	<s   G>H
H$datarV         )g?g?g333333?)rV   r[   r   )integersfloatsmixed)idsr   c                 4    [         R                  " U [        S9$ )Nr*   )r7   r9   r:   )xs    r   <lambda>rc      s    BHHQf$=r   )r   r   r=   znp.arrayc                     [        / SQ5      nU " U5      nSn[        R                  " [        US9   UR                  R                  USSS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r    z;Concatenation requires list-likes containing only strings.*r5   outerr"   joinr$   )r   r>   r?   	TypeErrorr   r   )r   rY   rA   rC   msgs        r   test_str_cat_wrong_dtype_raisesrk      sL     	AD	A
GC	y	,			!'#	. 
-	,	,s   A
A$c           	      
   U n[        / SQ5      nU[         :X  a  UO[        X"S9n[        / SQUR                  S9n[        U[        X"S9/SS9n[        / SQ5      nU[         :X  a  UO[        UR                  UR                  S9nUR                  R                  U5      n[        R                  " Xe5        UR                  R                  UR                  5      n[        R                  " Xe5        UR                  R                  X2/5      n[        R                  " Xe5        UR                  R                  X2R                  /5      n[        R                  " Xe5        / SQUl        U" / SQ5      nU[         :X  a  UO[        UR                  UR                  S9nUR                  R                  X2/5      n[        R                  " Xe5        UR                  R                  X2R                  /5      n[        R                  " Xe5        / SQUl        U" / S	Q5      nU[         :X  a  UO[        UR                  UR                  S9nUR                  R                  U5      n[        R                  " Xe5        S
n[        / SQ5      n[        X/SS9n	[        R                  " [        US9   UR                  R                  U	R                  5        S S S 5        [        R                  " [        US9   UR                  R                  UR                  UR                  /5        S S S 5        [        R                  " [        US9   UR                  R                  UR                  U/5        S S S 5        Sn[        S[        R                  SS /5      n
[        R                  " [        US9   UR                  R                  U
S/5        S S S 5        [        R                  " [        US9   UR                  R                  X/5        S S S 5        [        R                  " [        US9   UR                  R                  XR                  /5        S S S 5        [        R                  " [        US9   UR                  R                  XU//5        S S S 5        [        R                  " [        US9   UR                  R                  [        U
5      5        S S S 5        [        R                  " [        US9   UR                  R                  U
[        U
5      /5        S S S 5        [        R                  " [        US9   UR                  R                  S5        S S S 5        [        R                  " [        US9   UR                  R                  [!        UR                  [#        U5      /5      5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN~= f! , (       d  f       GN2= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNn= f! , (       d  f       GN8= f! , (       d  f       GN= f! , (       d  f       g = f)NrH   rU   ABCDrV   axis)aAabBbcCcdDd)r   r    r(   r   )aDabAbcBcdCd)aDdbAacBbdCcr0   r1   r5   z*others must be Series, Index, DataFrame,.*r   r    u)r   r   r   r   r   r   r;   r<   rR   r>   r?   r@   r7   r8   ri   setiterr=   )r   r   rA   rC   r(   rB   r   rD   rE   er   s              r   test_str_cat_mixed_inputsr      sD   
C"#AE\va1A#1884A6!%&Q/A12H%<xVHOO188-TH UUYYq\FOOF% UUYYqxx FOOF% UUYYvFOOF% UUYY88}%FOOF% #AG/0H%<xVHOO188-THUUYYvFOOF% UUYY88}%FOOF% #AG/0H%<xVHOO188-THUUYYq\FOOF% JCAvAA 
z	-			!(( 
. 
z	-			188QXX&' 
. 
z	-			188Q-  
. 7CRVVS$'(A 
y	,			1c( 
- 
y	,			1& 
- 
y	,			1hh-  
- 
y	,			1!f+ 
-
 
y	,			#a& 
-
 
y	,			1c!f+ 
- 
y	,			! 
- 
y	,			$$q'*+, 
-	,_ 
.	- 
.	- 
.	- 
-	, 
-	, 
-	, 
-	,
 
-	,
 
-	, 
-	, 
-	,s   +&W 22W(W$-W6,X*'X2X,2%X>8'Y Y"=:Y4 
W
W!$
W36
X
X
X),
X;>
Y
Y"
Y14
Zrh   )leftrf   innerrightc                 L   U n[        / SQ/ SQS9n[        / SQ/ SQS9nUR                  XAS9u  pVUR                  R                  USS9nU[        :X  a!  [	        U5      n[	        U5      n[	        U5      nUR                  R                  XASS9n[
        R                  " X5        g )	NrH   rU   )rq   rn   Ero   r(   r   r   r   rh   r"   r#   rg   )r   alignr   r   r   r;   r<   )	r   rh   r   rA   rC   satarB   r   s	            r   test_str_cat_align_indexedr     s     C#+?@A#+?@AWWQW"FBvvzz"Sz)H
e|!H2Y?UUYYqCY0FOOF%r   c                    [        / SQ5      n[        / SQ/ SQS9n[        X"/SS9n[        / SQ5      nUR                  UR                  R	                  UR                  U S9   nUR
                  R                  X"/U S	S
9n[        R                  " Xe5        UR
                  R                  X0S	S
9n[        R                  " Xe5        [        R                  " / SQ5      n[        / SQ5      nU S:X  a%  UR                  R                  UR                  5      OhU S:X  a%  UR                  R                  UR                  5      O=UR                  R                  UR                  R                  UR                  5      5      nUR                  UR                  R	                  XS9   nUR
                  R                  X'/U S	S
9n[        R                  " Xe5        [        R                   " ["        SS9   UR
                  R                  U[%        U5      /U S9  S S S 5        Sn	[        / SQ5      R&                  n
[        R                   " [(        U	S9   UR
                  R                  XS9  S S S 5        [        R                   " [(        U	S9   UR
                  R                  X*/U S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N]= f! , (       d  f       g = f)NrH   r   r\   r      rV   rU   rV   rr   )aaabbbzc--dddz-ee)howr"   rg   rm   )aaAbbBzc-CddD-e-r   rf   zothers must be Series,.*r5   r   r0   r1   )r   r   locrR   rh   r   r   r;   assert_series_equalr7   r9   intersectionunionappend
differencer>   r?   ri   r=   r   r@   )rh   rA   rC   r(   expected_outerrB   r   r   rhs_idxrD   rE   s              r   test_str_cat_align_mixed_inputsr   %  s/   #$A#<8AvAA?@N!!!'',,qwwD,"ABH UUYYvDY5F6, UUYYqCY0F6, 	%&A?@N 7? 	
QWW% 7? WW]]177#WW^^AGG..qww78  !!!'',,w,"ABHUUYYvDY5F6,	y(B	C			1d1g,T	* 
D
 JC&&A 
z	-			!	 
. 
z	-			1&t	$ 
.	- 
D	C 
.	- 
.	-s$   1&J1KK1
J?
K
K!c                    U nUn[        / SQ5      nU[         :X  a  UO[        XDS9nU" [        R                  /S-  [        S9nU[         :X  a  UO[        XTS9nU[        :X  a2  [        [        R                  /S-  UR
                  UR                  S9nO [        [        R                  /S-  [        S9nUR                  R                  USS9n[        R                  " Xv5        U[        :X  a\  [        [        R                  /S-  [        UR
                  S9nUR                  R                  USS9n[        R                  " Xv5        g g )	NrH   rU   r   r*   rQ   r   r   )r+   rR   )r   r   r7   r8   r:   rR   r+   r   r   r;   r<   r   )r   index_or_series2r   r
   rA   rC   rB   r   s           r   test_str_cat_all_nar   W  s   
CE 	"#AE\va1Arvvhl&)Ae^!3A f}266(Q,aggQWWE "&&AV4UUYYqvY&FOOF% 266(Q,fAGGD16*
v0 r   c                     [        / SQ5      n [        / SQ/ SQS9n[        / SQ5      nU R                  R                  [        XR                  /5      SSS9n[
        R                  " X25        [        S	S
/SS/S9nU R                  R                  UR                  S/   UR                  S/   /SSS9n[
        R                  " X25        g )NrH   r   r   rU   )r   r   zc-cr   r   rf   r"   rg   zaa-zd-dr   r\   r   )r   r   r   r   r   r;   r   r   )rA   rC   rB   r   s       r   test_str_cat_special_casesr   s  s    #$A#<8A 9:HUUYYtQM*YEF6, uenQF3HUUYYqc
AEE1#J/gcYJF6,r   c                     [        [        R                  " SS// SQ/SS/S9S9n U R                  5       n X R                  S:     n U R
                  R                  S	5      nU R                  R                  S	5      nUR                  R                  US
S9nUR                  S   S:X  d   eUR                  R                  X"/S
S9nUR                  S   S:X  d   eg )Ni  i  rZ   yearmonth)namesrU   rV   r    r   z2011 2z2011 2 2)
r   r   from_productreset_indexr   r   astyper   r   r   )dfstr_year	str_monthstr_bothstr_multiples        r   test_cat_on_filtered_indexr     s    	%%D\9%fg->

B 
	B	HHqL	Bww~~e$H&I||	s3H<<?h&&&<<##Y$:#DLA*,,,r   klassc                     [        / SQ5      nUR                  R                  U " / SQ5      5      n[        / SQ5      n[        R                  " X#5        g )Nre   )rb   yrE   )axbycz)r   r   r   r;   r   )r   rA   r   rB   s       r   test_cat_different_classesr     s>     	AUUYYu_-.F()H6,r   c                      [        / SQ5      n [        R                  " S5      n[        R                  " [
        US9   U R                  R                  U R                  S9  S S S 5        g ! , (       d  f       g = f)N)AbCdeFGHIjkLLLmzothers must be Series, Index, DataFrame, np.ndarray or list-like (either containing only strings or containing only objects of type Series/Index/np.ndarray[1-dim])r5   )others)r   reescaper>   r?   ri   r   r   )psrJ   s     r   test_cat_on_series_dot_strr     sR    	3	4Bii	G 
y	0


"&&
! 
1	0	0s   $A**
A8)%r   numpyr7   r>   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r   r;   r   r	   markparametrizer   param
skip_if_norF   rK   rX   r=   rk   r   r   r   r   r   r   tupler9   r   r    r   r   <module>r      s=   	   ) )   4"78	! 9	! UFLLR]]95MNO''T UFLLR]]95MNO T
+(J)?@(J)?@4* A A ,4*n 
-'   	UD=>/  
//c-L !DE& F&& !DE.% F.%b18--* 5$&%"HI- J-"r   