
    I jd%                     l    S SK J r   S SKrS SKJ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)Pandas4Warning)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 )Nr   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   nparangereshaper   r   pdconcatnanastyper   tmassert_frame_equal)selfr   df1df2
cat_valuesresexps          }/root/GenerationalWealth/GenerationalWealth/venv/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   keysstr)FTFindexr   )FFTcategory)TFF)r   r   r/   r0   dtypesobjectr3   assert_series_equal)	r5   using_infer_stringrG   r@   rA   rB   dfresultexpecteds	            r;   test_categorical_concat_dtypes4TestCategoricalConcat.test_categorical_concat_dtypes8   s    %/*_%YYYsS.QUC-?vUK.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   
categoriesrF   r   r   r   )r    r   r&   r   r   r&   r   )r   rG   )	r   r/   CategoricalIndexr0   r   r,   r1   r3   r4   )r5   rT   r   r   r   rN   exp_idxr:   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abcrH   r   abdabcabdTr   abcabcr   r&   r   r   r&   r   rG   r   r   r   aabbcacabAB)r   listr/   r0   r3   rK   r,   r-   r   r2   r   r4   )r5   ss2r:   r9   r   r   r7   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        Sn[        R                  " [        US	9   [	        U[        U[        S
5      S9S.5      R                  S5      nS S S 5        [        R                  " UW/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 ! , (       d  f       N= f)Nr   r   r   rc   rd   re   rg   z=Constructing a Categorical with a dtype and values containing)matchaberS   r   rU   )r   r,   r-   rh   r   r2   r   	set_indexr/   r0   r3   r4   assert_produces_warningr   r   set_axisrG   rJ   )r5   r   r   r7   rN   rO   msgdf3s           r;    test_categorical_index_preserver6TestCategoricalConcat.test_categorical_index_preserver   s   299Qg./4>"((#3DK#@AB

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

 )C. 	 	f/ N''cBk!UDEin  C C:&99SYY--f5A>SYY--f5A>
 	f/ CBs    /G44
H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   rH   r   Tr_   )ry   z
2017-01-02)r   r/   
date_ranger0   	Timestampr3   rK   )r5   r   r   rN   rO   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   rH   rb   r   )r   r   r   r/   r0   r3   assert_equal)r5   r6   r7   rN   rO   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   rH   rf   )r   namerV   )r   r&   r   rg   )rG   r   r&   rU   r   r   r   r   r   r   floatre   )r   r   r/   r0   r,   r1   r3   r   )r5   rM   serrN   rO   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                 x   [        / 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        g )	N)r&   r   r   r#   r)   r   abbaae)id	raw_grader   grade)er   r   r   r   )
r   rh   r   r@   set_categoriesr3   assert_index_equalrT   r/   r0   )r5   rM   r6   r7   dfxs        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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   barrF   r#   r   baz)r&   r   r#   r   )r   r   r   r   )r   r   r/   r0   r3   r   r   )r5   r   r   r9   r:   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f1rC   )r   r   r&   )r#   r#   r#   rH   )r   f2T)r   r#   )r&   r   r   r   r   r&   )r   r   r   r   r   r   ra   rF   )
r   r   r2   r/   r0   r   r   
from_codesr3   r4   )r5   r6   r7   rN   r   rO   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)rT   ordered)r   r   r   r   rf   r&   r   rF   r   r#   )r&   r   r   r#   )r/   rW   r   r0   r3   r4   )r5   c1c2c3r6   r7   rN   rO   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<   rP   rY   rk   ru   r|   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.errorsr   pandas.core.dtypes.dtypesr   pandasr/   r   r   r   pandas._testing_testingr3   r
   r   r>   r;   <module>r      s/      ( 6  
 ~0 ~0r>   