
    yoch%                     `    d dl m Z  d dlZd dlmZ d dlZd dlmZmZm	Z	 d dl
mZ  G d d      Zy)    )datetimeN)CategoricalDtype)Categorical	DataFrameSeriesc                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)TestCategoricalConcatc                    t        t        j                  dd      j                  dd      g d      }t        t        j                  dd      j                  d	d
      ddg      }g d}t	        t        |            |d<   t        j                  ||fdd|      }t        g dddd	dddt        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  gg dd gdz  |z   d      }|d   j                  |d   j                        |d<   t        j                  ||       y )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   nparangereshaper   r   pdconcatnanastyper   tmassert_frame_equal)selfr   df1df2
cat_valuesresexps          {/mnt/ACDE16A4DE16673C/PROJECTS/MIS_PORTAL/venv/lib/python3.12/site-packages/pandas/tests/reshape/concat/test_categorical.pytest_categorical_concatz-TestCategoricalConcat.test_categorical_concat   s"   IIb(00A6
 		"G4<<QBSRUJWF
+j12Ciic
DI@FFFFFFFFFFFFFF BVaZ*,%
, s8??3s8>>2C
c3'    c                    g d}t        g d      }t        g d      }t        g d      }t        j                  t        |      ||gd|      }|j                  |st
        ndk(  }t        g d|      }t        j                  ||       |j                  d	k(  }t        g d
|      }t        j                  ||       |j                  dk(  }t        g d|      }t        j                  ||       y )N)catobjnumr   r%   r   r   r%   )r   keysstr)FTFindexr   )FFTcategory)TFF)r   r   r.   r/   dtypesobjectr2   assert_series_equal)	r4   using_infer_stringrE   r>   r?   r@   dfresultexpecteds	            r:   test_categorical_concat_dtypesz4TestCategoricalConcat.test_categorical_concat_dtypes6   s    %/*_%YYYsS#.QUC-?vUK.e<
vx0g%.e<
vx0j(.e<
vx0r<   c                 ^   g d}t        dt        j                  ddg|            }t        dt        j                  ddg|            }t        dt        j                  ddg|            }t        j                  |||gd	      }t        j                  g d
|      }t	        ddt
        j                  t
        j                  gt
        j                  ddt
        j                  gt
        j                  t
        j                  ddgdg d|      }t        j                  ||       y )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   rQ   r   r   r   rL   exp_idxr9   s           r:   test_concat_categoricalindexz2TestCategoricalConcat.test_concat_categoricalindexJ   s    $
1B//A:NO1B//A:NO1B//A:NOAq!91-%%lzJq"&&"&&)FFAq"&&)FFBFFAq)
 
 	fc*r<   c           
         t        t        d      d      }t        t        d      d      }t        t        d            }t        j                  ||gd      }t	        j
                  ||       t        t        d      d      }t        j                  ||gd      }t	        j
                  ||       t        t        d      g d	d
      }t        j                  ||g      }t	        j
                  ||       t        t        j                  dd            }t        t        d            }t        ||j                  t        t        d                  d      }t        j                  ||g      }t        t        j                  ||g      t        j                  ||g      j                  t        t        d                  d      }t	        j                  ||       y )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_preservez6TestCategoricalConcat.test_categorical_concat_preserve`   sl    4;j1DKz2T(^$iiBd3
sC(T(^:6iiAT2
sC(T(^+=ZPiiA
sC(299Qg./4>"aahh/?U/L&MNOiic
#YY1v&YY1v&--.>tE{.KL
 	c3'r<   c           
         t        t        j                  dd            }t        t        d            }t	        ||j                  t        t        d                  d      j                  d      }t        j                  ||g      }t	        t        j                  ||g      t        j                  ||g      j                  t        t        d                  d      j                  d      }t        j                  ||       t	        |t        |t        d      	      d      j                  d      }t        j                  ||g      }t        j                  |j                  |j                  j                  t              d
      |j                  |j                  j                  t              d
      g      }t        j                  ||       y )Nr   r   r   r_   r`   ra   rc   aberP   r   rR   )r   r+   r,   rd   r   r1   r   	set_indexr.   r/   r2   r3   r   set_axisrE   rH   )r4   r   r   r6   rL   rM   df3s          r:    test_categorical_index_preserverz6TestCategoricalConcat.test_categorical_index_preserver   sp   299Qg./4>"!((#3DK#@AB

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

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

)C. 	 C:&99SYY--f5A>SYY--f5A>
 	fh/r<   c                 4   t        t        j                  ddd            }t        ddgd      }t        j                  ||gd	
      }t        t        j                  dd      t        j                  dd      ddg      }t        j                  ||       y )Nz
2017-01-01r   z
US/Pacific)periodstzr   r   rF   r   Tr[   )rp   z
2017-01-02)r   r.   
date_ranger/   	Timestampr2   rI   )r4   r   r   rL   rM   s        r:   test_concat_categorical_tzz0TestCategoricalConcat.test_concat_categorical_tz   s    2==q\JKC:Z0Aq65\l;\l;	
 	vx0r<   c                 N   t        dt        t        ddd      dgd      i      }t        dt        t        ddd      dgd      i      }t        j                  ||g      }t        dt        t        ddd      t        ddd      g      i      }t        j                  ||       y )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_datetimez6TestCategoricalConcat.test_concat_categorical_datetime   s    &$1-aS
KL
 &$1-aS
KL
 C:&&(4A.q!0DEFG
 	)r<   c           	      H   t        t        g ddd            }t        g dg dd      }t        j                  ||gd	
      }t        t        dddt        j
                  gd      t        dd	t        j
                  dgd      d      }t        j                  ||       y )Nr   rF   rb   )r   namerS   )r   r%   r   rc   )rE   ry   r%   rR   r   r   r   r   r   r   floatra   )r   r   r.   r/   r+   r0   r2   rv   )r4   rK   serrL   rM   s        r:   !test_concat_categorical_unchangedz7TestCategoricalConcat.test_concat_categorical_unchanged   s     voZcJKYic:B91-S#sBFF3:FQ2661-W=
 	)r<   c                    t        g dt        d      d      }t        |d         |d<   |d   j                  j	                  g d       |dd }|dd  }t        j                  |d   j                  j                  |d   j                  j                         t        j                  |d   j                  j                  |d   j                  j                         t        j                  ||g      }t        j                  |d   j                  j                  |d   j                  j                         |j                  |      }t        j                  |d   j                  j                  |d   j                  j                         y )	N)r%   r   r   r"   r(   r   abbaae)id	raw_grader   grade)er   r   r   r   )r   rd   r   r>   set_categoriesr2   assert_index_equalrQ   r.   r/   _append)r4   rK   r5   r6   dfxdfas         r:   test_categorical_concat_gh7864z4TestCategoricalConcat.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c
#
bkoo88#g,:J:J:U:UVkk#
bkoo88#g,:J:J:U:UVr<   c                    t        dddgit        ddg            }t        dddgit        ddg            }t        j                  ||g      }t        dg d	ig d
      }t	        j
                  ||       t        ddgt        ddg            }t        ddgt        ddg            }t        j                  ||g      }t        g d	g d
      }t	        j
                  ||       y )Nfoor%   r   barrD   r"   r   baz)r%   r   r"   r   )r   r   r   r   )r   r   r.   r/   r2   rv   r   )r4   r   r   r8   r9   s        r:   test_categorical_index_upcastz3TestCategoricalConcat.test_categorical_index_upcast   s    
 uq!fo[%-HIuq!fo[%-HIiiA-5QR
S!Aq6eU^!<=Aq6eU^!<=iiA\)EF
S!r<   c                 B   t        dg di      }t        g dt        g d      j                  d      d      }t        j                  ||gd      }t        d	g      }t        g d
t        j                  g d|      dg d      }t        j                  ||       y )Nf1rA   )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_framez=TestCategoricalConcat.test_categorical_missing_from_one_frame   s    y)*yy0A0H0H0TUVC:D1 !%(!,,-B%P %
 	fh/r<   c                 l   t        j                  ddgddgd      }t        j                  ddgddgd      }t        j                  g dddgd      }t        dddgi|	      }t        dd
dgi|	      }t        j                  ||f      }t        dg di|	      }t	        j
                  ||       y )Nr   r   F)rQ   ordered)r   r   r   r   rb   r%   r   rD   r   r"   )r%   r   r   r"   )r.   rT   r   r/   r2   r3   )r4   c1c2c3r5   r6   rL   rM   s           r:   7test_concat_categorical_same_categories_different_orderzMTestCategoricalConcat.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;
fh/r<   N)__name__
__module____qualname__r;   rN   rV   rg   rm   rs   rw   r|   r   r   r   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  
 0 0r<   