
    KEf;%                     `    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          e/var/www/VTS_Report/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   keyszstring[pyarrow_numpy])FTFindexr   )FFTcategory)TFF)r   r   r.   r/   dtypesobjectr2   assert_series_equal)	r4   using_infer_stringrD   r>   r?   r@   dfresultexpecteds	            r:   test_categorical_concat_dtypesz4TestCategoricalConcat.test_categorical_concat_dtypes6   s    %/*_%YYYsS#.QUC,F2I
 .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   
categoriesrC   r   r   r   )r   r   r%   r   r   r%   r   )r   rD   )	r   r.   CategoricalIndexr/   r   r+   r0   r2   r3   )r4   rP   r   r   r   rK   exp_idxr9   s           r:   test_concat_categoricalindexz2TestCategoricalConcat.test_concat_categoricalindexL   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abcrE   r   abdabcabdTr   abcabcr   r%   r   r   r%   r   rD   r   r   r   aabbcacabAB)r   listr.   r/   r2   rH   r+   r,   r   r1   r   r3   )r4   ss2r9   r8   r   r   r6   s           r:    test_categorical_concat_preservez6TestCategoricalConcat.test_categorical_concat_preserveb   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_   r`   rb   aberO   r   rQ   )r   r+   r,   rc   r   r1   r   	set_indexr.   r/   r2   r3   r   set_axisrD   rG   )r4   r   r   r6   rK   rL   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   rE   r   TrZ   )ro   z
2017-01-02)r   r.   
date_ranger/   	Timestampr2   rH   )r4   r   r   rK   rL   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   rE   r]   r   )r   r   r   r.   r/   r2   assert_equal)r4   r5   r6   rK   rL   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   rE   ra   )r   namerR   )r   r%   r   rb   )rD   rx   r%   rQ   r   r   r   r   r   r   floatr`   )r   r   r.   r/   r+   r0   r2   ru   )r4   rJ   serrK   rL   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   rc   r   r>   set_categoriesr2   assert_index_equalrP   r.   r/   _append)r4   rJ   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   barrC   r"   r   baz)r%   r   r"   r   )r   r   r   r   )r   r   r.   r/   r2   ru   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"   rE   )r   f2T)r   r"   )r%   r   r   r   r   r%   )r   r   r   r   r   r   r\   rC   )
r   r   r1   r.   r/   r   r   
from_codesr2   r3   )r4   r5   r6   rK   r   rL   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)rP   ordered)r   r   r   r   ra   r%   r   rC   r   r"   )r%   r   r   r"   )r.   rS   r   r/   r2   r3   )r4   c1c2c3r5   r6   rK   rL   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;   rM   rU   rf   rl   rr   rv   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  
 A0 A0r<   