
    Mh;%                     `    S SK J r   S SKrS SKJr  S SKrS SKJrJrJ	r	  S SK
Jr   " S S5      rg)    )datetimeN)CategoricalDtype)Categorical	DataFrameSeriesc                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)TestCategoricalConcat   c                    [        [        R                  " SSS9R                  SS5      / SQS9n[        [        R                  " SSS9R                  S	S
5      SS/S9n/ SQn[	        [        U5      5      US'   [        R                  " X#4SSUS9n[        / SQSSS	SSS[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  // SQS /S-  U-   S.5      nUS   R                  US   R                  5      US'   [        R                  " XV5        g )N   int64dtype      abc)columns         r   r   )oner   twor   r   r   r   hr   T)axisignore_indexsort)r   r   r   	         r   r      r      
   r!      r#   r%      r
   )r      r$      r      r&   r   r(   r   r    r)   r'   )r   r   r   r   )r   nparangereshaper   r   pdconcatnanastyper   tmassert_frame_equal)selfr   df1df2
cat_valuesresexps          ^/var/www/html/env/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_categorical.pytest_categorical_concat-TestCategoricalConcat.test_categorical_concat   s   IIb(00A6
 		"G4<<QBSRUJWF
+j12Cii
DI@FFFFFFFFFFFFFF BVaZ*,%
, s8??3s8>>2C
c'    c                    / SQn[        / SQ5      n[        / SQ5      n[        / SQ5      n[        R                  " [        U5      XE/SUS9nUR                  U(       d  [
        OS:H  n[        / SQUS9n[        R                  " Xx5        UR                  S	:H  n[        / S
QUS9n[        R                  " Xx5        UR                  S:H  n[        / SQUS9n[        R                  " Xx5        g )N)catobjnumr   r&   r   r   r&   )r   keyszstring[pyarrow_numpy])FTFindexr   )FFTcategory)TFF)r   r   r.   r/   dtypesobjectr2   assert_series_equal)	r4   using_infer_stringrE   r?   r@   rA   dfresultexpecteds	            r:   test_categorical_concat_dtypes4TestCategoricalConcat.test_categorical_concat_dtypes6   s    %/*_%YYYsS.QUC,F2I
 .e<
v0g%.e<
v0j(.e<
v0r=   c                 0   / SQn[        S[        R                  " SS/US9S9n[        S[        R                  " SS/US9S9n[        S[        R                  " SS/US9S9n[        R                  " X#U/SS	9n[        R                  " / S
QUS9n[	        SS[
        R                  [
        R                  /[
        R                  SS[
        R                  /[
        R                  [
        R                  SS/S./ SQUS9n[        R                  " XW5        g )N)r    r   r&   r   r   r&   r    r   
categoriesrD   r   r   r   )r    r   r&   r   r   r&   r   )r   rE   )	r   r.   CategoricalIndexr/   r   r+   r0   r2   r3   )r4   rR   r   r   r   rL   exp_idxr9   s           r:   test_concat_categoricalindex2TestCategoricalConcat.test_concat_categoricalindexL   s    $
1B//A:NO1B//A:NO1B//A:NOA!91-%%lzJq"&&"&&)FFAq"&&)FFBFFAq)
 
 	f*r=   c           
         [        [        S5      SS9n[        [        S5      SS9n[        [        S5      5      n[        R                  " X/SS9n[        R
                  " XC5        [        [        S5      SS9n[        R                  " X/SS9n[        R
                  " XC5        [        [        S5      / S	QSS
9n[        R                  " X/5      n[        R
                  " XC5        [        [        R                  " SSS95      n[        [        S5      5      n[        XVR                  [        [        S5      5      5      S.5      n[        R                  " Xw/5      n[        [        R                  " XU/5      [        R                  " Xf/5      R                  [        [        S5      5      5      S.5      n[        R                  " XC5        g )NabcrF   r   abdabcabdTr   abcabcr   r&   r   r   r&   r   rE   r   r   r   aabbcacabAB)r   listr.   r/   r2   rI   r+   r,   r   r1   r   r3   )r4   ss2r9   r8   r   r   r6   s           r:    test_categorical_concat_preserve6TestCategoricalConcat.test_categorical_concat_preserveb   sV    4;j1DKz2T(^$iid3
s(T(^:6iiT2
s(T(^+=ZPii
s(299Qg./4>"ahh/?U/L&MNOii
#YYv&YYv&--.>tE{.KL
 	c'r=   c           
         [        [        R                  " SSS95      n[        [        S5      5      n[	        XR                  [        [        S5      5      5      S.5      R                  S5      n[        R                  " X3/5      n[	        [        R                  " X/5      [        R                  " X"/5      R                  [        [        S5      5      5      S.5      R                  S5      n[        R                  " XE5        [	        U[        U[        S5      S	9S.5      R                  S5      n[        R                  " X6/5      n[        R                  " UR                  UR                  R                  [        5      S
S9UR                  UR                  R                  [        5      S
S9/5      n[        R                  " XE5        g )Nr   r   r   ra   rb   rc   re   aberQ   r   rS   )r   r+   r,   rf   r   r1   r   	set_indexr.   r/   r2   r3   r   set_axisrE   rH   )r4   r   r   r6   rL   rM   df3s          r:    test_categorical_index_preserver6TestCategoricalConcat.test_categorical_index_preserver   sb   299Qg./4>"((#3DK#@AB

)C. 	 C:&YYv&YYv&--.>tE{.KL

 )C. 	 	f/ +aDK@A

)C. 	 C:&99SYY--f5A>SYY--f5A>
 	f/r=   c                    [        [        R                  " SSSS95      n[        SS/SS9n[        R                  " X/S	S
9n[        [        R                  " SSS9[        R                  " SSS9SS/5      n[
        R                  " X45        g )Nz
2017-01-01r   z
US/Pacific)periodstzr   r   rF   r   Tr]   )rt   z
2017-01-02)r   r.   
date_ranger/   	Timestampr2   rI   )r4   r   r   rL   rM   s        r:   test_concat_categorical_tz0TestCategoricalConcat.test_concat_categorical_tz   s|    2==q\JKC:Z0A65\l;\l;	
 	v0r=   c                 B   [        S[        [        SSS5      S/SS905      n[        S[        [        SSS5      S/SS905      n[        R                  " X/5      n[        S[        [        SSS5      [        SSS5      /5      05      n[
        R                  " X45        g )Nxi  r&   r   rF   r`   r   )r   r   r   r.   r/   r2   assert_equal)r4   r5   r6   rL   rM   s        r:    test_concat_categorical_datetime6TestCategoricalConcat.test_concat_categorical_datetime   s    &$1-aS
KL
 &$1-aS
KL
 C:&&(4A.q!0DEFG
 	)r=   c           	      *   [        [        / SQSSS95      n[        / SQ/ SQSS9n[        R                  " X/S	S
9n[        [        SSS[        R
                  /SS9[        SS	[        R
                  S/SS9S.5      n[        R                  " X45        g )Nr   rF   rd   )r   namerT   )r   r&   r   re   )rE   r   r&   rS   r   r   r   r   r   r   floatrc   )r   r   r.   r/   r+   r0   r2   r{   )r4   rK   serrL   rM   s        r:   !test_concat_categorical_unchanged7TestCategoricalConcat.test_concat_categorical_unchanged   s     voZcJKYic:B91-S#sBFF3:FQ2661-W=
 	)r=   c                 $   [        / SQ[        S5      S.5      n[        US   5      US'   US   R                  R	                  / SQ5        USS nUSS  n[
        R                  " US   R                  R                  US   R                  R                  5        [
        R                  " US   R                  R                  US   R                  R                  5        [        R                  " X#/5      n[
        R                  " US   R                  R                  US   R                  R                  5        UR                  U5      n[
        R                  " US   R                  R                  US   R                  R                  5        g )	N)r&   r   r   r#   r(   r   abbaae)id	raw_grader   grade)er   r   r   r   )r   rf   r   r?   set_categoriesr2   assert_index_equalrR   r.   r/   _append)r4   rK   r5   r6   dfxdfas         r:   test_categorical_concat_gh78644TestCategoricalConcat.test_categorical_concat_gh7864   s,    0tH~NO!"[/27
7&&71gf
bkoo88#g,:J:J:U:UV
bkoo88#g,:J:J:U:UVii
#
bkoo88#g,:J:J:U:UVkk#
bkoo88#g,:J:J:U:UVr=   c                    [        SSS/0[        SS/5      S9n[        SSS/0[        SS/5      S9n[        R                  " X/5      n[        S/ S	Q0/ S
QS9n[        R
                  " X45        [        SS/[        SS/5      S9n[        SS/[        SS/5      S9n[        R                  " X/5      n[        / S	Q/ S
QS9n[        R
                  " X45        g )Nfoor&   r   barrD   r#   r   baz)r&   r   r#   r   )r   r   r   r   )r   r   r.   r/   r2   r{   r   )r4   r   r   r8   r9   s        r:   test_categorical_index_upcast3TestCategoricalConcat.test_categorical_index_upcast   s    
 uq!fo[%-HIuq!fo[%-HIii-5QR
!Aq6eU^!<=Aq6eU^!<=ii\)EF
!r=   c                 2   [        S/ SQ05      n[        / SQ[        / SQ5      R                  S5      S.5      n[        R                  " X/SS9n[        S	/5      n[        / S
Q[        R                  " / SQUS9S./ SQS9n[        R                  " X55        g )Nf1rB   )r   r   r&   )r#   r#   r#   rF   )r   f2T)r   r#   )r&   r   r   r   r   r&   )r   r   r   r   r   r   r_   rD   )
r   r   r1   r.   r/   r   r   
from_codesr2   r3   )r4   r5   r6   rL   r   rM   s         r:   'test_categorical_missing_from_one_frame=TestCategoricalConcat.test_categorical_missing_from_one_frame   s    y)*yy0A0H0H0TUVC:D1 !%(!,,-B%P %
 	f/r=   c                 N   [         R                  " SS/SS/SS9n[         R                  " SS/SS/SS9n[         R                  " / SQSS/SS9n[        SSS/0US	9n[        SS
S/0US	9n[         R                  " XE45      n[        S/ SQ0US	9n[        R
                  " Xg5        g )Nr   r   F)rR   ordered)r   r   r   r   rd   r&   r   rD   r   r#   )r&   r   r   r#   )r.   rU   r   r/   r2   r3   )r4   c1c2c3r5   r6   rL   rM   s           r:   7test_concat_categorical_same_categories_different_orderMTestCategoricalConcat.test_concat_categorical_same_categories_different_order  s       #sc
ER  #sc
ER   c3Z
 q!fR0q!fR0C:&c<0;
f/r=    N)__name__
__module____qualname____firstlineno__r;   rN   rW   ri   rp   rw   r|   r   r   r   r   r   __static_attributes__r   r=   r:   r	   r	      s@    #(J1,+,(>0:1* *W&"*00r=   r	   )r   numpyr+   pandas.core.dtypes.dtypesr   pandasr.   r   r   r   pandas._testing_testingr2   r	   r   r=   r:   <module>r      s,      6  
 A0 A0r=   