
    Pi/                     h    d dl mZ d dlZd dlZd dlZd dlmZmZm	Z	m
Z
 d dlmZ  G d d          ZdS )    )timezoneN)	DataFrameIndexSeries
date_rangec            	           e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            dddej        gdd	egd	degd	d	ej        gg          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 )TestDataFrameAlignc                 :   t          dddd          }t          dddd          }t          t          j                            d                              t          |          df          |          }t          t          j                            d                              t          |          df          |          }|                    |          \  }}|j        j	        |j        j	        k    sJ |j        j	        |j        j	        k    sJ |
                    d	          }|                    |          \  }}|j        j	        t          j        u sJ |j        j	        t          j        u sJ |                    |d
         d
          \  }}|j        j	        t          j        u sJ |j        j	        t          j        u sJ |d
                             |d
           |j        j	        t          j        u sJ |j        j	        t          j        u sJ d S )N2001   hz
US/Eastern)periodsfreqtz2h      z
US/Centralr   axis)r   r   nprandomdefault_rngstandard_normallenalignindexr   
tz_convertr   utc)selfidx1idx2df1df2new1new2df1_centrals           y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/frame/methods/test_align.pytest_frame_align_awarez)TestDataFrameAlign.test_frame_align_aware   s   &!#,GGG&!$<HHH	--a00@@#d))QPPRVWW	--a00@@#d))QPPRVWWYYs^^
dy|tz},,,,y|tz},,,,
 nn\22YY{++
dz},,,,z},,,, YY{1~AY66
dz},,,,z},,,,A[q)))z},,,,z},,,,,,    c                    |                     |          \  }}|j        |j        usJ |                     |          \  }}|j        |j        usJ |j        d dd df         }|                     |dd          \  }}t          j        |j        |j                   |j                            |j                  }|j                            |          }|	                    |          j
        }|dk                                    sJ |                     |dd          \  }}t          j        |j        |j                   t          j        |j        |j                   t          j        |j        |j                   |j        d dd df                                         }|                     |d	          \  }}t          j        |j        |j                   t          j        |j        |j                   |j                            |j                  }|j                            |          }|	                    |          j
        }|dk                                    sJ |                     |d
d          \  }}t          j        |j        |j                   d}t          j        t          |          5  |                     |j        dd df         d
d           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   
fill_valueright)joinr      r   innerz)No axis named 2 for object type DataFramematchr   )r   _mgriloctmassert_index_equalcolumnsr   r/   
differencereindexvaluesallcopypytestraises
ValueError)	r   float_frameafbfotherjoin_idxdiff_adiff_a_valsmsgs	            r'   test_align_floatz#TestDataFrameAlign.test_align_float+   s5   "";//Bwk....."";//Bwk.....  "bqb)""5qR"@@B
bj%-888 $))%+66"--h77jj((/r!&&(((((""5wQ"??B
bj%-888
bh444
bh444  "bqb)..00""5q"11B
bj+*=>>>
bh444 $))%+66"--h77jj((/r!&&(((((""5wQ"??B
bj%-888 :]:S111 	D 	Dbga!en7CCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   (K99K= K=c                 H   |j         }t          t          t          |                    |          }|                    |d          \  }}t          j        |j         |j                    t          j        |j         |j                    t          |t                    sJ d S )Nr   r   r   )r   r   ranger   r   r6   r7   
isinstance)r   rA   idxsleftr.   s         r'   test_align_frame_with_seriesz/TestDataFrameAlign.test_align_frame_with_seriesX   s    5S??#...!'''22e
dj+*;<<<
ek;+<===%(((((((r)   c                 F   t          g dg dd          }||d         dk             }t          ddggdgddg	          }t          j        ||           |                    |d         dk    d
          }t          g dg dd          }t          j        ||           d S )Nr0   r   r   )   r      abrW   r   r   r0   rX   r   r8   r   )r   r   r   )r   r   r   )r   r6   assert_frame_equalwhere)r   dfresultexpecteds       r'   test_align_series_conditionz.TestDataFrameAlign.test_align_series_conditionb   s    YYYYYY7788BsGqL!q!fXaS3*EEE
fh///"S'Q,**999999==>>
fh/////r)   c                     t          t          d          g d          }|                    |j        d d df         ddd          \  }}t	          j        |j        t          g                      d S Nr   )ABCrY   r   r1   r0   )r/   r   r-   r   rL   r   r5   r6   r7   r   r   )r   mixed_float_framerD   rB   rC   s        r'   test_align_mixed_floatz)TestDataFrameAlign.test_align_mixed_floatm   sw    a///BBB"((Jqqq!t7q ) 
 
B 	bhb		22222r)   c                     t          t          d          g d          }|                    |j        d d df         ddd          \  }}t	          j        |j        t          g                      d S ra   re   )r   mixed_int_framerD   rB   rC   s        r'   test_align_mixed_intz'TestDataFrameAlign.test_align_mixed_intu   sw    a///BBB &&Jqqq!t7q ' 
 
B 	bhb		22222r)   zl_ordered,r_ordered,expectedTFc           
         t          t          j        dd          t          t	          d                                        t          j        t	          d          |                    d                              d          }t          t          j        d	d          t          t	          d
                                        t          j        t	          d          |                    d                              d          }|	                    |          \  }}t          |j        |          sJ t          |j        |          sJ t          j        |j        |j                   d S )NrU   int64dtypeaabbcacab)ordered)rb   rc   rc   r   babca)r   r   aranger   listastypepdCategoricalDtype	set_indexr   rM   r   r6   r7   )r   	l_ordered	r_orderedr^   df_1df_2	aligned_1	aligned_2s           r'   test_align_categoricalz)TestDataFrameAlign.test_align_categorical|   sU    Yq000DNN++22'UYGGG  
 
 )C.. 	 Yq000DMM**11'UYGGG  
 
 )C.. 	  $zz$//	9)/844444)/844444
ioy?????r)   c                    t           j                            t          d          t          d          t          d          gd          }t	          t          d          d          }t          t          j        dd	          |
          }t          t          j        dd	          |
          }|                    |d          \  }}|                    |d          \  }}|}	t          j
        |	|           t          j
        |	|           t          ddddt          j        t          j        gdz  |
          }
t          j
        |
|           t          j
        |
|           |                    |d          \  }}|                    |d          \  }}t           j                            t          d          t          d          t          d          gd          }t          g d|
          }	t          j
        |	|           t          j
        |	|           t          g ddz  |
          }
t          j
        |
|           t          j
        |
|           d S )Nr   r   )rW   rX   c)namesrX   name   rl   rm   rK   rP   )r/   r.   r   r0   )r   r0   r   r   rU         	   )r   r   r0   r0   )rv   
MultiIndexfrom_productrL   r   r   r   rs   r   r6   rZ   nan)r   midxrN   r"   r#   res1lres1rres2lres2rexplexprexp_idxs               r'   test_align_multiindexz(TestDataFrameAlign.test_align_multiindex   s;    }))1XXuQxxq*/ * 
 
 E!HH3'''	"G444DAAA	!73333??? yy6y22uyy7y33u
dE***
dE***!Q1bfbf59FFF
dE***
dE***yy7y33uyy6y22u-,,1XXuQxxq*/ - 
 
 111AAA
dE***
dE***)999
dE***
dE*****r)   c                    t          g dg ddt          d                    }t          g dt          d          d          }|                    |d	
          \  }}t          dt          j        dt          j        dgdt          j        dt          j        dgdt          d                    }t          ddt          j        dt          j        gt          d          d          }t          j        ||           t          j        ||           |                    |          \  }}t          j        ||           t          j        ||           d S )N)r0   r   r   rV   ACErK   r0   r   rT   ABDxr   r   r   r   r0   r   r   ABCDEr   rT   )	r   rt   r   r   r   r   r6   rZ   assert_series_equal)r   r\   rO   res1res2exp1exp2s          r'   test_align_series_combinationsz1TestDataFrameAlign.test_align_series_combinations   s;   YYYYYY77tE{{KKK999DKKc::: XXaaX((
dbfa+1bfa2KLLw--
 
 
 q!RVQ/tG}}3OOO
dD)))
tT*** WWR[[
d
tT***
dD)))))r)   c                    t          g dd          }t          ddgd          }t          ddg|d          }t          d	t          j        d
          it
          j                            ||g                    }t          ddgdz  |j        d          }|	                    |d          \  }}t          j        ||           t          j        ||           d S )NrS   foor   r0   r   bar
foo_seriesr   colrU   rK   r   r   r   r   r   r   r   rs   rv   r   r   r   r   r6   rZ   r   r   	foo_index	bar_indexseriesr\   
expected_rresult_lresult_rs           r'   7test_multiindex_align_to_series_with_common_index_levelzJTestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level   s    )))%000	1a&u---	AilCCCBIaLL!-,,i-CDD
 
 

 QFQJbh\JJJ
XXf1X55(
h+++
x44444r)   c                    t          g dd          }t          ddgd          }t          g dt          g dd          d	          }t          d
t          j        d          it
          j                            ||g                    }t          ddgdz  |j        d	          }|	                    |d          \  }}t          j        ||           t          j        ||           d S )NrS   r   r   r0   r   r   r0   r   r   rT   r   r   r   rU   rK   r   r   r   r   r   s           r'   Gtest_multiindex_align_to_series_with_common_index_level_missing_in_leftzZTestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level_missing_in_left   s   )))%000	1a&u---	LLlll ? ? ?l
 
 
 BIaLL!-,,i-CDD
 
 

 QFQJbh\JJJ
XXf1X55(
h+++
x44444r)   c                    t          g dd          }t          g dd          }t          ddgt          ddgd          d	          }t          d
t          j        d          it
          j                            ||g                    }t          ddt          j        t          j        gdz  |j	        d	          }|
                    |d          \  }}t          j        ||           t          j        ||           d S )NrS   r   r   r   r   r0   r   r   r   r   r   rK   r   r   r   r   r   r   r   rs   rv   r   r   r   r   r   r6   rZ   r   r   s           r'   Htest_multiindex_align_to_series_with_common_index_level_missing_in_rightz[TestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level_missing_in_right   s   )))%000	,,,U333	AeQF&?&?&?lSSSBIbMM"-,,i-CDD
 
 

 2626"Q&bh\
 
 

  XXf1X55(
h+++
x44444r)   c                    t          g dd          }t          g dd          }t          g dt          g dd          d          }t          d	t          j        d
          it
          j                            ||g                    }t          dt          j        dgdz  |j	        d          }|
                    |d          \  }}t          j        ||           t          j        ||           d S )NrS   r   r   )r0   r   rT   r   r   r   r   r   r   rK   r0   r   r   r   r   r   s           r'   Gtest_multiindex_align_to_series_with_common_index_level_missing_in_bothzZTestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level_missing_in_both  s   )))%000	)))%000	IIU9995999
 
 
 BIaLL!-,,i-CDD
 
 

 QNQ.bh\RRR
XXf1X55(
h+++
x44444r)   c                    t          g dd          }t          ddgd          }t          ddg|d          }t          t          j        d	                              d
d          t          j                            ||g                    }g d|_	        t          ddgdz  |j
        d          }|                    |d          \  }}t          j        ||           t          j        |j	        |j	                   d S )NrS   r   r   r0   r   r   r   r      rU   r   rK   )cfoocbarr   r   r   )r   r   r   r   rs   reshaperv   r   r   r8   r   r   r6   r   r7   )r   r   r   r   r\   r^   result_leftresult_rights           r'   Gtest_multiindex_align_to_series_with_common_index_level_non_unique_colszZTestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level_non_unique_cols  s   )))%000	1a&u---	AilCCCIbMM!!!Q''-,,i-CDD
 
 
 .--
1a&1*BH<HHH$&HHV!H$<$<!\
|X666
k12:>>>>>r)   c                 B   t          t          j        d                              d                    }t	          t          j        d                    }t          j        t          d          5  |                    |           d d d            d S # 1 swxY w Y   d S )N2   )
   r   r   zaxis=0 or 1r2   )	r   r   rs   r   r   r>   r?   r@   r   )r   r\   r   s      r'   )test_missing_axis_specification_exceptionz<TestDataFrameAlign.test_missing_axis_specification_exception0  s    ry}},,W5566	!%%]:^<<< 	 	HHV	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   1BBBc                     t          dddgi          }t          dgd          }|                                }|                    |d          \  }}d|j        d<   t          j        ||           d S )Nr   r0   r   r   r   d   )r   r   r=   r   r5   r6   r   )r   r\   serr^   r]   rD   s         r'   test_align_series_check_copyz/TestDataFrameAlign.test_align_series_check_copy7  su    Aq6{##aSq!!!88::1--
uh/////r)   c                     t          dddgi          }t          ddg          }|                    |d          \  }}t          j        ||           t          j        ||           ||usJ ||usJ d S )NrW   r0   r   r   rT   r   r   r   r   r   r6   rZ   r   r   r\   r   r]   result2s        r'   %test_align_identical_different_objectz8TestDataFrameAlign.test_align_identical_different_object@  s    aV}%%aVnn((3Q(//
fb)))
w,,,'!!!!!!r)   c                     t          dddgi          }t          dgdg          }|                    |d          \  }}t          j        ||           t          j        ||           ||usJ ||usJ d S )NrW   r0   r   rK   r   r   r   s        r'   -test_align_identical_different_object_columnsz@TestDataFrameAlign.test_align_identical_different_object_columnsJ  s    aV}%%aS&&&((3Q(//
fb)))
w,,,'!!!!!!r)   N)__name__
__module____qualname__r(   rI   rQ   r_   rg   rj   r>   markparametrizerv   CategoricalIndexr   r   r   r   r   r   r   r   r   r   r   r   r    r)   r'   r	   r	      s       - - -4+D +D +DZ) ) )	0 	0 	03 3 33 3 3 [&4,-5% D% E2./		
 @ @ @0!+ !+ !+F* * *(5 5 5"5 5 5&5 5 5&5 5 5&? ? ?$  0 0 0" " "" " " " "r)   r	   )datetimer   numpyr   r>   pandasrv   r   r   r   r   pandas._testing_testingr6   r	   r   r)   r'   <module>r      s                                   B" B" B" B" B" B" B" B" B" B"r)   