
    d1                     >   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 d 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concatc                     t          | t                    rt          j        | |           d S t          j        | |           d S )N)
isinstancer   tmassert_series_equalassert_index_equal)leftrights     Y/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/strings/test_cat.pyassert_series_or_index_equalr      sF    $ +
tU+++++
dE*****    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        r   test_str_cat_namer!      sq     C3ZF fSf%%%)--e-==F;&      r   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                            t          |          d          }t          ||           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objectr   listr   pytestraises
ValueErrorr   )r   r   sr    expectedtrgxzs           r   test_str_catrG   $   sg   
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 222 UYYtAwwsY++F 222 JCA	z	-	-	-  			!(               
z	-	-	-  			$q''                 s$   ! FFF3(G((G,/G,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?r8   |z    )r?   r@   rA   r   r   )r   r   rB   messages       r   #test_str_cat_raises_intuitive_errorrL   M   s*   
C   !!A7G	z	1	1	1  			#              	z	1	1	1  			&                 s#   AAA:B""B&)B&r    dtype_targetr=   categorydtype_callerc                 >   | }t          g d|          }|t           k    r|nt          ||          }t          g d|          }t          g d          }|t           k    r|nt          ||          }|j                            |j        |          }t          ||           t          |j        |          }|j                            ||          }t          ||           |j                            |j        |          }t          ||           t          |j        |j                  }t          g d          }|t           k    r|nt          ||j        d d                   }|j                            ||          }t          ||           d S )	N)r   r   r   r   r-   index)r   r   r   r#   )abr/   r0   acr   )r/   r/   r/   r0   r0      )r   r   r   r   r   r   )	r   rP   rN   r   r   rB   rD   rC   r    s	            r   test_str_cat_categoricalrW   X   s    C""",777AE\\vaq111A""",777A---..H%<<xxVHA-F-F-FH UYYqxSY))F 222 	qxq!!!AUYYqcY""F 222 UYYqxSY))F 222 	qxqx(((A33344H%<<xxVHHLQSRSQSDT-U-U-UHUYYqcY""F 22222r   datarV         )g?g?g333333?)rV   rZ   r   )integersfloatsmixed)idsr   c                 8    t          j        | t                    S )Nr-   )r:   r<   r=   )xs    r   <lambda>rb      s    BHQf$=$=$= r   )r   r   r>   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.*r8   outerr%   joinr'   )r   r?   r@   	TypeErrorr   r   )r   rX   rB   rD   msgs        r   test_str_cat_wrong_dtype_raisesrj   {   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                  }t          ||           |j                            ||g          }t          ||           |j                            ||j        g          }t          ||           g d|_         |g d          }|t           k    r|nt          |j        |j                  }|j                            ||g          }t          ||           |j                            ||j        g          }t          ||           g d|_         |g d	          }|t           k    r|nt          |j        |j                  }|j                            |          }t          ||           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 )NrI   rR   ABCDrV   axis)aAabBbcCcdDd)r   r#   r+   r   )aDabAbcBcdCd)aDdbAacBbdCcr3   r4   r8   z*others must be Series, Index, DataFrame,.*r   r#   u)r   r   r   r   r   r   r   rS   r?   r@   rA   r:   r;   rh   setiterr>   )r   r   rB   rD   r+   rC   r    rE   rF   er   s              r   test_str_cat_mixed_inputsr      ss   
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 222 UYYqx  F 222 UYY1vF 222 UYY18}%%F 222 #""AGs///00H%<<xxVHO18-T-T-THUYY1vF 222 UYY18}%%F 222 #""AGs///00H%<<xxVHO18-T-T-THUYYq\\F 222 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KK1'L$$L(+L(
"M88M<?M<=O&&O*-O*P55P9<P9"R		RR/SS!S (T44T8;T8*VVV6WW!$W!<YYYrg   )r   re   innerr   c                    | }t          g dg d          }t          g dg d          }|                    ||          \  }}|j                            |d          }|t          k    r-t	          |          }t	          |          }t	          |          }|j                            ||d          }t          ||           d S )	NrI   rR   )rp   rm   Ern   r+   r   r   r   rg   r%   r&   rf   )r   alignr   r   r   r   )	r   rg   r   rB   rD   satarC   r    s	            r   test_str_cat_align_indexedr      s     C###+?+?+?@@@A###+?+?+?@@@AWWQTW""FBvzz"Sz))H
e||!HH2YY??UYYqtCY00F 22222r   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 )NrI   r   r[   r      rV   rR   rV   rq   )aaabbbzc--dddz-ee)howr%   rf   rl   )aaAbbBzc-CddD-e-r   re   zothers must be Series,.*r8   r   r3   r4   )r   r   locrS   rg   r   r   r   r   r:   r<   intersectionunionappend
differencer?   r@   rh   r>   r   rA   )rg   rB   rD   r+   expected_outerrC   r    r   rhs_idxrE   rF   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          ||           |t          k    r]t          t          j        gdz  t          |j                  }|j                            |d          }t          j
        ||           d S d S )	NrI   rR   r   r-   )rS   r.   r   r   )r.   rS   )r   r   r:   r;   r=   rS   r   r   r   r   r   )r   index_or_series2r   r   rB   rD   rC   r    s           r   test_str_cat_all_nar   =  sF   
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 222 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 )NrI   r   r   rR   )r   r   zc-cr   r   re   r%   rf   zaa-zd-dr   r[   r   )r   r   r   r   r   r   r   r   )rB   rD   rC   r    s       r   test_str_cat_special_casesr   X  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  rY   yearmonth)namesrR   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   g  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 )Nrd   )ra   yrF   )axbycz)r   r   r   r   r   )r   rB   r    rC   s       r   test_cat_different_classesr   |  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])r8   )others)r   reescaper?   r@   rh   r   r   )psrK   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   numpyr:   r?   pandasr   r   r   r   r   r   r   r   markparametrizer!   rG   rL   rW   r>   rj   r   r   r   r   r   r   tupler<   r   r    r   r   <module>r      s   				                    + + + 4"788	! 	! 98	!& & &R   T
++(J)?@@(J)?@@3 3 A@ A@ ,+3@ 
YY-'''    	UD==>///   
/ /  /c- c- c-L !D!D!DEE3 3 FE3& !D!D!DEE.% .% FE.%b1 1 16- - -- - -* 5$&%"HII- - JI-" " " " "r   