
    Pid%                     t    d dl m Z  d dlZd dlm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dS )    )datetimeN)Pandas4Warning)CategoricalDtype)Categorical	DataFrameSeriesc                   V    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dS )TestCategoricalConcatc                    t          t          j        dd                              dd          g d          }t          t          j        dd                              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         	                    |d         j
                  |d<   t          j        ||           d S )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          /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/reshape/concat/test_categorical.pytest_categorical_concatz-TestCategoricalConcat.test_categorical_concat   sf   Ib(((00A66
 
 
 	"G444<<QBBSRUJWWWFFF
+j1122Cic
DIII@@@FFFFFFF BAAVaZ*,% 
 
, s8??3s8>2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        ||           d S )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_stringrF   r?   r@   rA   dfresultexpecteds	            r;   test_categorical_concat_dtypesz4TestCategoricalConcat.test_categorical_concat_dtypes8   s   %%%///**___%%YYYYsS#.QUCCC-?JvvUK...e<<<
vx000g%...e<<<
vx000j(...e<<<
vx00000r=   c                 D   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        ||           d S )N)r    r   r&   r   r   r&   r    r   
categoriesrE   r   r   r   )r    r   r&   r   r   r&   r   )r   rF   )	r   r/   CategoricalIndexr0   r   r,   r1   r3   r4   )r5   rR   r   r   r   rM   exp_idxr:   s           r;   test_concat_categoricalindexz2TestCategoricalConcat.test_concat_categoricalindexL   s%   $__
1B/A:NNNOOO1B/A:NNNOOO1B/A:NNNOOOAq!91---%lllzJJJq"&"&)FAq"&)FBFAq) 
 II
 
 
 	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          ||	                    t          t          d                              d          }t          j        ||g          }t          t          j        ||g          t          j        ||g          	                    t          t          d                              d          }t	          j        ||           d S )NabcrG   r   abdabcabdTr   abcabcr   r&   r   r   r&   r   rF   r   r   r   aabbcacabAB)r   listr/   r0   r3   rJ   r,   r-   r   r2   r   r4   )r5   ss2r:   r9   r   r   r7   s           r;    test_categorical_concat_preservez6TestCategoricalConcat.test_categorical_concat_preserveb   s    4;;j111DKKz222T(^^$$iBd333
sC(((T(^^:666iAT222
sC(((T(^^+=+=+=ZPPPiA
sC(((29Qg...//4>>""aahh/?U/L/L&M&MNNOOic
##Y1v&&Y1v&&--.>tE{{.K.KLL 
 
 	c3'''''r=   c           
         t          t          j        dd                    }t          t          d                    }t	          ||                    t          t          d                              d                              d          }t          j	        ||g          }t	          t          j	        ||g          t          j	        ||g                              t          t          d                              d                              d          }t          j        ||           d}t          j        t          |	          5  t	          |t          |t          d
                    d                              d          }d d d            n# 1 swxY w Y   t          j	        ||g          }t          j	        |                    |j                            t"                    d          |                    |j                            t"                    d          g          }t          j        ||           d S )Nr   r   r   r`   ra   rb   rd   z=Constructing a Categorical with a dtype and values containing)matchaberQ   r   rS   )r   r,   r-   re   r   r2   r   	set_indexr/   r0   r3   r4   assert_produces_warningr   r   set_axisrF   rI   )r5   r   r   r7   rM   rN   msgdf3s           r;    test_categorical_index_preserverz6TestCategoricalConcat.test_categorical_index_preserver   s@   29Qg...//4>>""!((#3DKK#@#@AABB
 

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

 )C.. 	 	fh/// N'cBBB 	 	k!UDDDEE inn 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 C:&&9SY--f55A>>SY--f55A>>
 
 	fh/////s   AF""F&)F&c                 D   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        ||           d S )Nz
2017-01-01r   z
US/Pacific)periodstzr   r   rG   r   Tr\   )rt   z
2017-01-02)r   r/   
date_ranger0   	Timestampr3   rJ   )r5   r   r   rM   rN   s        r;   test_concat_categorical_tzz0TestCategoricalConcat.test_concat_categorical_tz   s    2=q\JJJKKC:Z000Aq6555\l;;;\l;;;	
 
 	vx00000r=   c                    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        ||           d S )Nxi  r&   r   rG   r_   r   )r   r   r   r/   r0   r3   assert_equal)r5   r6   r7   rM   rN   s        r;    test_concat_categorical_datetimez6TestCategoricalConcat.test_concat_categorical_datetime   s    &$1--aS
KKKL
 
 &$1--aS
KKKL
 
 C:&&&(4A..q!0D0DEFFG
 
 	)))))r=   c           	      f   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        ||           d S )Nr   rG   rc   )r   namerT   )r   r&   r   rd   )rF   r}   r&   rS   r   r   r   r   r   r   floatrb   )r   r   r/   r0   r,   r1   r3   rz   )r5   rL   serrM   rN   s        r;   !test_concat_categorical_unchangedz7TestCategoricalConcat.test_concat_categorical_unchanged   s     voooZcJJJKKYYYiiic:::B91---S#sBF3:FFFQ261-W=== 
 
 	)))))r=   c                 N   t          g dt          d          d          }t          |d                   |d<   |d         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                   d S )	N)r&   r   r   r#   r)   r   abbaae)id	raw_grader   grade)er   r   r   r   )
r   re   r   r?   set_categoriesr3   assert_index_equalrR   r/   r0   )r5   rL   r6   r7   dfxs        r;   test_categorical_concat_gh7864z4TestCategoricalConcat.test_categorical_concat_gh7864   s     000tH~~NNOO!"[/227
7&&7771gf
bko8#g,:J:UVVV
bko8#g,:J:UVVVic
##
bko8#g,:J:UVVVV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        ||           d S )Nfoor&   r   barrE   r#   r   baz)r&   r   r#   r   )r   r   r   r   )r   r   r/   r0   r3   rz   r   )r5   r   r   r9   r:   s        r;   test_categorical_index_upcastz3TestCategoricalConcat.test_categorical_index_upcast   s#   
 uq!fo[%-H-HIIIuq!fo[%-H-HIIIiA-5Q5Q5QRRR
S!!!Aq6eU^!<!<===Aq6eU^!<!<===iA\\\)E)E)EFFF
S!!!!!r=   c                 n   t          dg di          }t          g dt          g d                              d          d          }t          j        ||gd          }t          d	g          }t          g d
t          j        g d|          dg d          }t          j	        ||           d S )Nf1rB   )r   r   r&   )r#   r#   r#   rG   )r   f2T)r   r#   )r&   r   r   r   r   r&   )r   r   r   r   r   r   r^   rE   )
r   r   r2   r/   r0   r   r   
from_codesr3   r4   )r5   r6   r7   rM   r   rN   s         r;   'test_categorical_missing_from_one_framez=TestCategoricalConcat.test_categorical_missing_from_one_frame   s    yyy)**yyyyyy0A0A0H0H0T0TUUVVC:D111 !%%(((!,-B-B-B%PPP  %$$
 
 
 	fh/////r=   c                 |   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        ||           d S )Nr   r   F)rR   ordered)r   r   r   r   rc   r&   r   rE   r   r#   )r&   r   r   r#   )r/   rU   r   r0   r3   r4   )r5   c1c2c3r6   r7   rM   rN   s           r;   7test_concat_categorical_same_categories_different_orderzMTestCategoricalConcat.test_concat_categorical_same_categories_different_order  s      #sc
ERRR #sc
ERRR    c3Z
 
 
 q!fR000q!fR000C:&&c<<<0;;;
fh/////r=   N)__name__
__module____qualname__r<   rO   rW   rh   rq   rw   r{   r   r   r   r   r    r=   r;   r
   r
      s        #( #( #(J1 1 1(+ + +,( ( (>0 0 0>1 1 1* * * * * *W W W " " "*0 0 00 0 0 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 6 6 6 6 6             
      ~0 ~0 ~0 ~0 ~0 ~0 ~0 ~0 ~0 ~0r=   