
    o[we0                     8   d dl Z d dlZd dlZd dlmZmZmZmZm	Z
mZ ej                            ddeeg          d             Zd Zd Zej                            dddg          ej                            d	d
dg          ej                            dd
dg          d                                     Zej                            dg dg dg dgg d          ej                            deeed gg d          d                         Zd Zej                            dg d          d             Zej                            dg d          d             Zd Zd Zd Zej                            d eeej        eeg          d!             Zd" ZdS )#    N)	DataFrameIndex
MultiIndexSeries_testingconcatotherc                     | }ddg}|r ||          }n|} ||d          j                             |d          }|j        dk    sJ d S )Nabname)r   ,sep)strcatr   )index_or_seriesr	   boxvaluesresults        =lib/python3.11/site-packages/pandas/tests/strings/test_cat.pytest_str_cat_namer      sq     C3ZF fSf%%%)--e-==F;&          c                    | } |dddddt           j        g          }|j                                        }d}||k    sJ |j                            d          }d}||k    sJ |j                            dd	
          }d}||k    sJ t          j        dt           j        dddt           j        gt
                    } |g d          }|j                            |d          }t          j        ||           |j                            t          |          d          }t          j        ||           d}t          g d          }t          j        t          |          5  |j                            |j                   d d d            n# 1 swxY w Y   t          j        t          |          5  |j                            t          |                     d d d            d S # 1 swxY w Y   d S )Nr   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)npnanr   r   arrayobjecttmassert_equallistr   pytestraises
ValueErrorr   )r   r   sr   expectedtrgxzs           r   test_str_catrA      sk   
C 	S#sCbf-..A UYY[[FHXUYYcY""FHXUYY3tY,,FHX
#rvsC7vFFFAs999::H UYYqY%%FOFH%%% UYYtAwwsY++FOFH%%% JCA	z	-	-	-  			!(               
z	-	-	-  			$q''                 s$   + FFF=(G22G69G6c                 ^   | } |g d          }d}t          j        t          |          5  |j                            d           d d d            n# 1 swxY w Y   t          j        t          |          5  |j                            d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r#   z'Did you mean to supply a `sep` keyword?r0   |z    )r9   r:   r;   r   r   )r   r   r<   messages       r   #test_str_cat_raises_intuitive_errorrF   F   s*   
C   !!A7G	z	1	1	1  			#              	z	1	1	1  			&                 s#   AAA:B""B&)B&r    dtype_targetr5   categorydtype_callerc                 f   | }t          g d|          }|t           k    r|nt          ||          }t          g d|          }t          g d          }|t           k    r|nt          ||          }|j                            |j        |          }t          j        ||           t          |j        |          }|j                            ||          }t          j        ||           |j                            |j        |          }t          j        ||           t          |j        |j                  }t          g d          }|t           k    r|nt          ||j        d d                   }|j                            ||          }t          j        ||           d S )	N)r   r   r   r   r%   index)r   r   r   r   )abr'   r(   acr   )r'   r'   r'   r(   r(      )r   r   r   r   r   r6   r7   )	r   rJ   rH   r   r   r<   r>   r=   r   s	            r   test_str_cat_categoricalrQ   Q   s    C""",777AE\\vaq111A""",777A---..H%<<xxVHA-F-F-FH UYYqxSY))FOFH%%% 	qxq!!!AUYYqcY""FOFH%%% UYYqxSY))FOFH%%% 	qxqx(((A33344H%<<xxVHHLQSRSQSDT-U-U-UHUYYqcY""FOFH%%%%%r   datarP         )g?g?g333333?)rP   rT   r   )integersfloatsmixed)idsr   c                 8    t          j        | t                    S )Nr%   )r2   r4   r5   )xs    r   <lambda>r\   |   s    BHQf$=$=$= r   )r   r   r8   znp.arrayc                     t          g d          } | |          }d}t          j        t          |          5  |j                            |dd           d d d            d S # 1 swxY w Y   d S )Nr   r   r   z;Concatenation requires list-likes containing only strings.*r0   outerr   joinr   )r   r9   r:   	TypeErrorr   r   )r   rR   r<   r>   msgs        r   test_str_cat_wrong_dtype_raisesrd   t   s     	AD		A
GC	y	,	,	, / /			!'#	.../ / / / / / / / / / / / / / / / / /s   A%%A),A)c           	         | }t          g d          }|t           k    r|nt          ||          }t          g d|j                  }t          |t          ||          gd          }t          g d          }|t           k    r|nt          |j        |j                  }|j                            |          }t          j        ||           |j                            |j                  }t          j        ||           |j                            ||g          }t          j        ||           |j                            ||j        g          }t          j        ||           g d|_         |g d          }|t           k    r|nt          |j        |j                  }|j                            ||g          }t          j        ||           |j                            ||j        g          }t          j        ||           g d|_         |g d	          }|t           k    r|nt          |j        |j                  }|j                            |          }t          j        ||           d
}t          g d          }t          ||gd          }	t          j
        t          |          5  |j                            |	j                   d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            |j        |j        g           d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            |j        |g           d d d            n# 1 swxY w Y   d}t          dt          j        dd g          }
t          j
        t          |          5  |j                            |
dg           d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            |
|g           d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            |
|j        g           d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            |
|
|gg           d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            t          |
                     d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            |
t          |
          g           d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            d           d d d            n# 1 swxY w Y   t          j
        t          |          5  |j                            t!          |j        t#          |          g                     d d d            d S # 1 swxY w Y   d S )NrC   rL   ABCDrP   axis)aAabBbcCcdDd)r   r   r#   r   )aDabAbcBcdCd)aDdbAacBbdCcr+   r,   r0   z*others must be Series, Index, DataFrame,.*r   r   u)r   r   r   r   r   r   r6   r7   rM   r9   r:   r;   r2   r3   rb   setiterr8   )r   r   r<   r>   r#   r=   r   r?   r@   ery   s              r   test_str_cat_mixed_inputsr}      s   
C"""##AE\\vaq111A###18444A6!1%%%&Q///A11122H%<<xxVHO18-T-T-TH UYYq\\FOFH%%% UYYqx  FOFH%%% UYY1vFOFH%%% UYY18}%%FOFH%%% #""AGs///00H%<<xxVHO18-T-T-THUYY1vFOFH%%% UYY18}%%FOFH%%% #""AGs///00H%<<xxVHO18-T-T-THUYYq\\FOFH%%% JCA1vAA 
z	-	-	-  			!(               
z	-	-	- ( (			18QX&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 
z	-	-	- ! !			18Q-   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 7CRVS$'((A 
y	,	,	,  			1c(               
y	,	,	,  			1a&               
y	,	,	, ! !			1ah-   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
y	,	,	,  			1q!f+              
 
y	,	,	,  			#a&&              
 
y	,	,	,  			1c!ff+               
y	,	,	,  			!               
y	,	,	, - -			$$q''*++,,,- - - - - - - - - - - - - - - - - -s    K..K25K2'MMM-"NN"N P		PP/QQQ>"R,,R03R0S==TT#(UUU=*V33V7:V7X  XX&<Y//Y36Y3ra   )leftr_   innerrightc                    | }t          g dg d          }t          g dg d          }|                    ||          \  }}|j                            |d          }|t          k    r-t	          |          }t	          |          }t	          |          }|j                            ||d          }t          j        ||           d S )	NrC   rL   )rj   rg   Erh   r#   r   r|   r   ra   r   r   r`   )r   alignr   r   r   r6   r7   )	r   ra   r   r<   r>   satar=   r   s	            r   test_str_cat_align_indexedr      s     C###+?+?+?@@@A###+?+?+?@@@AWWQTW""FBvzz"Sz))H
e||!HH2YY??UYYqtCY00FOFH%%%%%r   c                    t          g d          }t          g dg d          }t          ||gd          }t          g d          }|j        |j                            |j        |                    }|j                            ||g| d	
          }t          j        ||           |j                            || d	
          }t          j        ||           t          j
        g d          }t          g d          }| dk    r|j                            |j                  n[| dk    r|j                            |j                  n6|j                            |j                            |j                            }|j        |j                            ||                    }|j                            ||g| d	
          }t          j        ||           t          j        t"          d          5  |j                            |t%          |          g|            d d d            n# 1 swxY w Y   d}	t          g d          j        }
t          j        t(          |	          5  |j                            |
|            d d d            n# 1 swxY w Y   t          j        t(          |	          5  |j                            ||
g|            d d d            d S # 1 swxY w Y   d S )NrC   r   rU   r      rP   rL   rP   rk   )aaabbbzc--dddz-ee)howr   r`   rf   )aaAbbBzc-CddD-e-r   r_   zothers must be Series,.*r0   r   r+   r,   )r   r   locrM   ra   r   r   r6   assert_series_equalr2   r4   intersectionunionappend
differencer9   r:   rb   r8   r   r;   )ra   r<   r>   r#   expected_outerr=   r   ry   rhs_idxr?   r@   s              r   test_str_cat_align_mixed_inputsr     s   ###$$A###<<<888A1vAA???@@N!!',,qwD,"A"ABH UYY1vDY55F68,,, UYYqtCY00F68,,, 	%%%&&A???@@N 7?? 	
QW%%% 7?? W]]17###W^^AG..qw7788  !!',,wD,"A"ABHUYY1vDY55F68,,,	y(B	C	C	C + +			1d1gg,T	***+ + + + + + + + + + + + + + +
 JC&A 
z	-	-	-    			!$	                              
z	-	-	- % %			1a&t	$$$% % % % % % % % % % % % % % % % % %s6   ;,H33H7:H71JJ!J K,,K03K0c                    | }|}t          g d          }|t           k    r|nt          ||          } |t          j        gdz  t                    }|t           k    r|nt          ||          }|t          k    r+t          t          j        gdz  |j        t                    }n$t          t          j        gdz  t                    }|j                            |d          }t          j	        ||           |t          k    r]t          t          j        gdz  t          |j                  }|j                            |d          }t          j
        ||           d S d S )	NrC   rL   r   r%   )rM   r&   r~   r   )r&   rM   )r   r   r2   r3   r5   rM   r   r   r6   r7   r   )r   index_or_series2r   r	   r<   r>   r=   r   s           r   test_str_cat_all_nar   6  sH   
CE 	"""##AE\\vaq111Arvhl&)))Ae^^!3!3!3A f}}26(Q,agVDDD"&AV444UYYqvY&&FOFH%%% 26(Q,fAGDDD16**
vx00000 r   c                     t          g d          } t          g dg d          }t          g d          }| j                            t          || j        g          dd          }t          j        ||           t          d	d
gddg          }| j                            |j        dg         |j        dg         gdd          }t          j        ||           d S )NrC   r   r   rL   )r   r   zc-cr   r   r_   r   r`   zaa-zd-dr   rU   r   )r   r   r   r{   r   r6   r   r   )r<   r>   r=   r   s       r   test_str_cat_special_casesr   Q  s    ###$$A###<<<888A 999::HUYYtQM**YEEF68,,, uenQF333HUYYqc
AE1#J/gcYJJF68,,,,,r   c                     t          t          j        ddgg dgddg                    } |                                 } | | j        dk             } | j                            d	          }| j                            d	          }|j                            |d
          }|j	        d         dk    sJ |j                            ||gd
          }|j	        d         dk    sJ d S )Ni  i  rS   yearmonth)namesrL   rP   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\999%fg->
 
 

 
 
B 
		B	BHqL	Bw~~e$$H&&I|	s33H<?h&&&&<##Y	$:#DDLA*,,,,,,r   klassc                     t          g d          }|j                             | g d                    }t          g d          }t          j        ||           d S )Nr^   )r[   yr@   )axbycz)r   r   r   r6   r   )r   r<   r   r=   s       r   test_cat_different_classesr   u  sc     	AUYYuu___--..F((())H68,,,,,r   c                      t          g d          } t          j        d          }t          j        t
          |          5  | j                            | j                   d d d            d S # 1 swxY w Y   d S )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])r0   )others)r   reescaper9   r:   rb   r   r   )psrE   s     r   test_cat_on_series_dot_strr   ~  s    	333	4	4Bi	 G 
y	0	0	0 " "


"&
!!!" " " " " " " " " " " " " " " " " "s   !A//A36A3)r   numpyr2   r9   pandasr   r   r   r   r   r6   r   markparametrizer   rA   rF   rQ   r8   rd   r}   r   r   r   r   r   tupler4   r   r    r   r   <module>r      s   				                     4"788	! 	! 98	!& & &R   T
++(J)?@@(J)?@@& & A@ A@ ,+&@ 
YY-'''    	UD==>///   
/ /  /c- c- c-L !D!D!DEE& & FE&& !D!D!DEE.% .% FE.%b1 1 16- - -- - -* 5$&%"HII- - JI-" " " " "r   