
    OwgF                     `    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y)    )timezoneN)	DataFrameIndexSeries
date_rangec                   X   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  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ej                  j                  dddg      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dg d      ej                  j                  d  ed!       ed"      g ed       ed      gg      ej                  j                  d# ed$d%       ed&d%      g ed       ed      gg      ej                  j                  d'dd%g      d(                                                  Zd) Zd* Zd+ Zy%),TestDataFrameAlignc                 N   t        ddt        j                  dgi      }d}d}t        j                  t
        |      5  t        j                  t        |      5  |j                  |j                  d d d   d	       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
NA      zInvalid fill methodz/The 'method', 'limit', and 'fill_axis' keywordsmatchasfreq)method)r   npnanpytestraises
ValueErrortmassert_produces_warningFutureWarningaligniloc)selfdfmsgmsg2s       \/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_align.pytest_align_asfreq_method_raisesz2TestDataFrameAlign.test_align_asfreq_method_raises   s    a^,-#@]]:S1 	9++MF 92x89	9 	99 9	9 	9s#   B$B>BB	BB$c                    t        dddd      }t        dddd      }t        t        j                  j	                  d      j                  t        |      df      |      }t        t        j                  j	                  d      j                  t        |      df      |      }|j                  |      \  }}|j                  j                  |j                  j                  k(  sJ |j                  j                  |j                  j                  k(  sJ |j                  d	      }|j                  |      \  }}|j                  j                  t        j                  u sJ |j                  j                  t        j                  u sJ |j                  |d
   d
      \  }}|j                  j                  t        j                  u sJ |j                  j                  t        j                  u sJ |d
   j                  |d
       |j                  j                  t        j                  u sJ |j                  j                  t        j                  u sJ y )N2001   hz
US/Eastern)periodsfreqtz2hr      z
US/Centralr   axis)r   r   r   randomdefault_rngstandard_normallenr   indexr)   
tz_convertr   utc)r   idx1idx2df1df2new1new2df1_centrals           r!   test_frame_align_awarez)TestDataFrameAlign.test_frame_align_aware   s   &!#,G&!$<H		--a0@@#d)QPRVW		--a0@@#d)QPRVWYYs^
dyy||tzz}},,,yy||tzz}},,,
 nn\2YY{+
dzz}},,,zz}},,, YY{1~AY6
dzz}},,,zz}},,,A[q)zz}},,,zz}},,,    c                 d
   |j                  |      \  }}|j                  |j                  usJ |j                  |d      \  }}|s|j                  |j                  u sJ |j                  |j                  usJ |j                  d dd df   }|j                  |dd      \  }}t        j                  |j
                  |j
                         |j                  j                  |j                        }|j                  j                  |      }|j                  |      j                  }|dk(  j                         sJ |j                  |dd	      \  }}t        j                  |j
                  |j
                         t        j                  |j                  |j                         t        j                  |j                  |j                         |j                  d dd df   j                         }|j                  |d
      \  }}t        j                  |j
                  |j
                         t        j                  |j                  |j                         |j                  j                  |j                        }|j                  j                  |      }|j                  |      j                  }|dk(  j                         sJ |j                  |dd
	      \  }}t        j                  |j
                  |j
                         d}	t        j                  t        |	      5  |j                  |dd
d      \  }}d d d        t        j                  |j
                  |j
                         d}	t        j                  t        |	      5  |j                  |j                  d d df   dd
d d       \  }}d d d        t        j                  |j                  t        g       j!                  |j                  j"                               d}	t        j                  t        |	      5  |j                  |j                  d d df   dd
d d      \  }}d d d        t        j                  |j                  t        g       j!                  |j                  j"                               d}	t%        j&                  t(        |	      5  |j                  |j                  dd df   dd	       d d d        y # 1 sw Y   xY w# 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   y xY w)NF)copyr+   r   r   )r-   
fill_valueright)joinr-   r   r,   innerQThe 'method', 'limit', and 'fill_axis' keywords in DataFrame.align are deprecatedr   padrC   r-   r   rC   r-   r   rA   z)No axis named 2 for object type DataFramer   )r   _mgrr   r   assert_index_equalcolumnsr2   rC   
differencereindexvaluesallr?   r   r   r   astypedtyper   r   r   )
r   float_frameusing_copy_on_writeafbfotherjoin_idxdiff_adiff_a_valsr   s
             r!   test_align_floatz#TestDataFrameAlign.test_align_float3   sp   "";/Bwwk....."";U";B"77k.....77+"2"2222   "bqb)""5qR"@B
bjj%--8 $$))%++6""--h7jj(//r!&&(((""5wQ"?B
bjj%--8
bhh4
bhh4   "bqb)..0""5q"1B
bjj+*=*=>
bhh4 $$))%++6""--h7jj(//r!&&(((""5wQ"?B
bjj%--8 	 ''SA 	R &&u75&QFB	R
bjj%--8 	 ''SA 	 &&

1a4 wQtPT ' FB	 	bhhb	(8(8(HI 	 ''SA 	 &&

1a4 wQtPQ ' FB	 	bhhb	(8(8(HI :]]:S1 	Dbgga!en7C	D 	D5	R 	R	 		 		D 	Ds0   1T +T5+T&T& T
TT#&T/c                    |j                   }t        t        t        |            |      }|j	                  |d      \  }}t        j                  |j                   |j                          t        j                  |j                   |j                          t        |t              sJ d}t        j                  t        |      5  |j	                  |d      \  }}d d d        t        j                  |j                   |j                          |j                  D ci c]  }|| }}t        ||j                   |j                        }t        j                  ||       y # 1 sw Y   xY wc c}w )	Nr2   r   r,   z=The 'broadcast_axis' keyword in DataFrame.align is deprecatedr   r   )broadcast_axisr2   rK   )r2   r   ranger1   r   r   rJ   
isinstancer   r   rK   r   assert_frame_equal)	r   rR   idxsleftrB   r   cexpecteds	            r!   test_align_frame_with_seriesz/TestDataFrameAlign.test_align_frame_with_series   s/   5S?#.!'''2e
djj+*;*;<
ekk;+<+<=%(((M''SA 	A%++Aa+@KD%	A
djj+*;*;<"-"5"56QAqD66K--{7J7J
 	eX.	A 	A 7s   E!
E-!E*c                    t        g dg dd      }||d   dk(     }t        ddggdgddg	      }t        j                  ||       |j                  |d   dk(  d
      }t        g dg dd      }t        j                  ||       y )Nr   r   r+   )   r%      abrm   r   r%   r   rn   r^   r   )r   r   r   )r   r%   r   )r   r   ra   where)r   r   resultrf   s       r!   test_align_series_conditionz.TestDataFrameAlign.test_align_series_condition   s    YY78BsGqL!q!fXaS3*E
fh/"S'Q,*99=>
fh/r=   c                    t        t        d      g d      }d}t        j                  t        |      5  |j                  |ddd	      \  }}d d d        t        j                  j                  |j                         y # 1 sw Y   4xY w)
Nr%   r   BCr^   rE   r   rD   r   rF   rG   )r   r_   r   r   r   r   rJ   rK   )r   	int_framerV   r   rT   rU   s         r!   test_align_intz!TestDataFrameAlign.test_align_int   sy    a/B 	 ''SA 	P__Uq_OFB	P
bjj%--8	P 	Ps   BBc                     d}t        j                  t        |      5  |j                  |ddd      \  }}d d d        t        j                  j
                  |j
                         y # 1 sw Y   4xY w)NrE   r   rD   r   rF   rG   )r   r   r   r   rJ   rK   )r   float_string_framer   rT   rU   s        r!   test_align_mixed_typez(TestDataFrameAlign.test_align_mixed_type   sr     	 ''SA 	'--"q . FB	 	bjj*<*D*DE		 	s   A**A3c                 >   t        t        d      g d      }d}t        j                  t        |      5  |j                  |j                  d d df   ddd d	      \  }}d d d        t        j                  j                  t        g              y # 1 sw Y   3xY w
Nr%   rs   r^   rE   r   r   rD   r   rH   
r   r_   r   r   r   r   r   rJ   r2   r   )r   mixed_float_framerV   r   rT   rU   s         r!   test_align_mixed_floatz)TestDataFrameAlign.test_align_mixed_float   s    a/B 	 ''SA 	&,,

1a4 wQtPQ - FB	 	bhhb	2		 	   +BBc                 >   t        t        d      g d      }d}t        j                  t        |      5  |j                  |j                  d d df   ddd d	      \  }}d d d        t        j                  j                  t        g              y # 1 sw Y   3xY wr|   r}   )r   mixed_int_framerV   r   rT   rU   s         r!   test_align_mixed_intz'TestDataFrameAlign.test_align_mixed_int   s    a/B 	 ''SA 	$**

1a4 wQtPQ + FB	 	bhhb	2		 	r   zl_ordered,r_ordered,expectedTFc           
         t        t        j                  dd      t        t	        d            j                  t        j                  t	        d      |            d      j                  d      }t        t        j                  d	d      t        t	        d
            j                  t        j                  t	        d      |            d      j                  d      }|j                  |      \  }}t        |j                  |      sJ t        |j                  |      sJ t        j                  |j                  |j                         y )Nrk   int64rQ   aabbcacab)ordered)r   rt   rt   r%   babca)r   r   aranger   listrP   pdCategoricalDtype	set_indexr   r`   r2   r   rJ   )r   	l_ordered	r_orderedrf   df_1df_2	aligned_1	aligned_2s           r!   test_align_categoricalz)TestDataFrameAlign.test_align_categorical   s    YYq0DN+22''UYG
 )C. 	 YYq0DM*11''UYG
 )C. 	  $zz$/	9)//8444)//8444
iooy?r=   c                 n   t         j                  j                  t        d      t        d      t        d      gd      }t	        t        d      d      }t        t        j                  dd	      |
      }t        t        j                  dd	      |
      }|j                  |d      \  }}|j                  |d      \  }}|}	t        j                  |	|       t        j                  |	|       t        ddddt        j                  t        j                  gdz  |
      }
t        j                  |
|       t        j                  |
|       |j                  |d      \  }}|j                  |d      \  }}t         j                  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                  |
|       y )Nr   r+   )rm   rn   re   )namesrn   name   r   r   r\   rd   )rC   rB   r   r   )r   r   r   r+   rk         	   )r   r   r   r   )r   
MultiIndexfrom_productr_   r   r   r   r   r   r   ra   r   )r   midxrb   r7   r8   res1lres1rres2lres2rexplexprexp_idxs               r!   test_align_multiindexz(TestDataFrameAlign.test_align_multiindex   s    }}))1XuQxq*/ * 
 E!H3'		"G4DA		!733? yy6y2uyy7y3u
dE*
dE*!Q1bffbff59F
dE*
dE*yy7y3uyy6y2u--,,1XuQxq*/ - 
 1A
dE*
dE*)9
dE*
dE*r=   c                    t        g dg ddt        d            }t        g dt        d      d      }|j                  |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                  ||       |j                  |      \  }}t        j                  ||       t        j                  ||       y )N)r   r+   r%   rl   ACEr\   r   r   rj   ABDxr2   r   r   r,   r   r+   r%   ABCDEr   rj   )	r   r   r   r   r   r   r   ra   assert_series_equal)r   r   rc   res1res2exp1exp2s          r!   test_align_series_combinationsz1TestDataFrameAlign.test_align_series_combinations  s    YY7tE{K9DKc: XXaaX(
dbffa+1bffa2KLw-
 q!RVVQ/tG}3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                  j                  ||g            }t        ddgdz  |j                  d      }|j                  |d      \  }}t        j                  ||       t        j                  ||       y )Nri   foor   r   r   bar
foo_seriesr   colrk   r\   r+   r   r,   r   r   r   r   r   r   r   r   r2   r   r   ra   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	1a&u-	AilCBIIaL!--,,i-CD

 QFQJbhh\J
XXf1X5(
h+
x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                  j                  ||g            }t        ddgdz  |j                  d	      }|j                  |d      \  }}t        j                  ||       t        j                  ||       y )Nri   r   r   r   r   r   r   r   r+   rj   r   r   r   rk   r\   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_left9  s    )%0	1a&u-	l ?l
 BIIaL!--,,i-CD

 QFQJbhh\J
XXf1X5(
h+
x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                  j                  ||g            }t        ddt        j                  t        j                  gdz  |j                  d	      }|j                  |d      \  }}t        j                  ||       t        j                  ||       y )Nri   r   r   r   r   r   r   r   r   r   r   r\   r+   r   r,   r   r   r   r   r   r   r   r   r   r2   r   r   ra   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_rightL  s    )%0	,U3	AeQF&?lSBIIbM"--,,i-CD

 266266"Q&bhh\

  XXf1X5(
h+
x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                  j                  ||g            }t        dt        j                  dgdz  |j                  d      }|j                  |d      \  }}t        j                  ||       t        j                  ||       y )Nri   r   r   )r   r+   rj   r   r   r   r   r   r   r\   r   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	U959
 BIIaL!--,,i-CD

 QNQ.bhh\R
XXf1X5(
h+
x4r=   c                    t        g dd      }t        ddgd      }t        ddg|d      }t        t        j                  d	      j                  d
d      t        j                  j                  ||g            }g d|_	        t        ddgdz  |j                  d      }|j                  |d      \  }}t        j                  ||       t        j                  |j                  |j                         y )Nri   r   r   r   r   r   r   r      rk   r+   r\   )cfoocbarr   r   r,   )r   r   r   r   r   reshaper   r   r   rK   r2   r   r   r   rJ   )r   r   r   r   r   rf   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_colsr  s    )%0	1a&u-	AilCIIbM!!!Q'--,,i-CD
 .
1a&1*BHH<H$&HHV!H$<!\
|X6
k112::>r=   c                    t        t        j                  d      j                  d            }t	        t        j                  d            }t        j                  t        d      5  |j                  |       d d d        y # 1 sw Y   y xY w)N2   )
   r%   r%   zaxis=0 or 1r   )	r   r   r   r   r   r   r   r   r   )r   r   r   s      r!   )test_missing_axis_specification_exceptionz<TestDataFrameAlign.test_missing_axis_specification_exception  s`    ryy},,W56		!%]]:^< 	HHV	 	 	s   'BBr   rF   bfillr-   )r   r   N	fill_axisr   r   how)rD   outerrd   rB   
left_slicerj   r   right_slicer   Nrk   limitc	           	      d   |}	|	j                   |d   |d   f   }
|	j                   |d   |d   f   }d}t        j                  t        |      5  |
j	                  ||||||      \  }}d d d        d\  }}|
|}}||dk(  rK|
j
                  j                  |j
                  |      }|j                  |      }|j                  |      }||dk(  rK|
j                  j                  |j                  |      }|j                  |	      }|j                  |	      }d
}t        j                  t        |      5  |j                  |||      }|j                  |||      }d d d        t        j                  |       t        j                  |       y # 1 sw Y   2xY w# 1 sw Y   CxY w)Nr   r   rE   r   )r-   rC   r   r   r   )NN)r   r\   )rK   z,DataFrame.fillna with 'method' is deprecated)r-   r   r   )r   r   r   r   r   r2   rC   rM   rK   fillnara   )r   r   r   r-   r   rR   r   r   r   framerd   rB   r   aaab
join_indexjoin_columnseaebs                      r!   test_align_fill_methodz)TestDataFrameAlign.test_align_fill_method  s   , zz*Q-A67

;q>;q>9: 	
 ''SA 	ZZ#   FB	 $. 
LuB<419#>J*-B*-B<419<<,,U]],DLL1BL1B<''SA 	G	&FB	&FB	G 	b"%
b"%;	 	0	G 	Gs   F;)F&F#&F/c                     t        dddgi      }t        dgd      }|j                         }|j                  |d      \  }}d|j                  d<   t        j                  ||       y )Nr   r   r   r   r,   d   )r   r   r?   r   r   r   r   )r   r   serrf   rp   rV   s         r!   test_align_series_check_copyz/TestDataFrameAlign.test_align_series_check_copy  s`    Aq6{#aSq!88:1-
uh/r=   c                     t        dddgi      }t        ddg      }|j                  |d      \  }}t        j                  ||       t        j
                  ||       ||usJ ||usJ y )Nrm   r   r   r+   rj   r   r,   r   r   r   r   ra   r   r   r   r   rp   result2s        r!   %test_align_identical_different_objectz8TestDataFrameAlign.test_align_identical_different_object  ss    aV}%aVn((3Q(/
fb)
w,'!!!r=   c                     t        dddgi      }t        dgdg      }|j                  |d      \  }}t        j                  ||       t        j
                  ||       ||usJ ||usJ y )Nrm   r   r   r\   r,   r   r   s        r!   -test_align_identical_different_object_columnsz@TestDataFrameAlign.test_align_identical_different_object_columns  sv    aV}%aS&((3Q(/
fb)
w,'!!!r=   ) __name__
__module____qualname__r"   r<   rZ   rg   rq   rw   rz   r   r   r   markparametrizer   CategoricalIndexr   r   r   r   r   r   r   r   r   r   slicer   r   r   r    r=   r!   r	   r	      s   9-4JDX/(	0
9	F33 [[&4,,-5% D% E2../		
@@0!+F*(5"5&5&5&?$ [[Xw'78[[V\2[[[1a&1[[U$GH[[1XuRy!1XuQx 	
 [[1d^U1d^,1XuQx 	
 [[Wq$i0)& 1 I 2 3 9&)&V0""r=   r	   )datetimer   numpyr   r   pandasr   r   r   r   r   pandas._testing_testingr   r	   r   r=   r!   <module>r     s,         T" T"r=   