
    I j'9                        S SK rS SKrS SKJr  S SKrS SKJr  S SKJ	r
  \R                  " SS/S9S 5       rS r\R                  R                  S	SS/5      S
 5       r\R                  R                  SS/ SQ0S/ SQ04/ SQ/ SQS.S/ SQ04/5      S 5       r\R                  R                  S\R$                  " SS/SS/S.S/S9\R$                  " SS/SS/S.S/S9S4\R$                  " SS/SS/SS/S.SS /S9\R$                  " SS/SS/SS/S.SS /S9S!4/5      S" 5       rS# r\R                  R                  S	SS/5      S$ 5       r\R                  R                  S	SS/5      S% 5       rS& r\R                  R                  S/ S'Q/ S(QS)./ S'Q/ S*QS).S+4/ S'Q/ S(QS)./ S,Q/ S-QS).S.4/5      S/ 5       rS0 rS1 rS2 rS3 r\R                  R                  S4/ S5Q5      S6 5       rS7 rS8 rS9 r \R                  R                  S:S;S</5      S= 5       r!S> r"S? r#S@ r$SA r%SB r&SC r'SD r(SE r)SF r*\R                  R                  SG\RV                  \RX                  S/5      SH 5       r-g)I    N)Pandas4Warning)	DataFrameTF)paramsc                     U R                   $ )N)param)requests    z/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_frame_equal.pyby_blocks_fixturer
      s    ==    c                 `    [         R                  " X40 UD6  [         R                  " X40 UD6  g)a  
Check that two DataFrame equal.

This check is performed commutatively.

Parameters
----------
a : DataFrame
    The first DataFrame to compare.
b : DataFrame
    The second DataFrame to compare.
kwargs : dict
    The arguments passed to `tm.assert_frame_equal`.
N)tmassert_frame_equal)abkwargss      r	   _assert_frame_equal_bothr      s*     !)&)!)&)r   
check_likec                 J   [        / SQ/ SQS./ SQS9n[        / SQ/ SQS./ SQS9nU (       dQ  UR                   S	3n[        R                  " [        US
9   [
        R                  " X#XR                  S9  S S S 5        g [        X#XR                  S9  g ! , (       d  f       g = f)N                  ABr   r   cindex)r   r   r   )r   r   r   r!   r   r   z.index are differentmatchr   obj)r   __name__pytestraisesAssertionErrorr   r   r   )r   frame_or_seriesdf1df2msgs        r	   #test_frame_equal_row_order_mismatchr1   #   s    
))4O
LC
))4O
LC ))**>?]]>5!!Z5M5M 65
 	!1I1I	
 65s    B
B"zdf1,df2r   r   )r   r   r   r   r   r   c                     [        U 5      n [        U5      nUR                   S3n[        R                  " [        US9   [
        R                  " XUR                  S9  S S S 5        g ! , (       d  f       g = f)Nz are differentr%   r(   )r   r)   r*   r+   r,   r   r   )r.   r/   r-   r0   s       r	   test_frame_equal_shape_mismatchr4   4   sY     C.C
C.C%%&n
5C	~S	1
cO,D,DE 
2	1	1s    A((
A6zdf1,df2,msgr   r   l1l2)r   r!   r   r"   g      ?g       @zDataFrame\.index are differentg @g      ?r    r   z*DataFrame\.index level \[0\] are differentc                     SU0nU(       a:  [         R                  " [        US9   [        R                  " X40 UD6  S S S 5        g [        R                  " X40 UD6  g ! , (       d  f       g = f)Ncheck_index_typer%   )r*   r+   r,   r   r   )r.   r/   r0   r8   r   s        r	   %test_frame_equal_index_dtype_mismatchr9   D   sY    , !"23F]]>5!!#5f5 65 	c1&1 65s   A
A,c                 <   SS/n[        US9n[        US9nSU 0nUS   R                  S5      US'   U (       a<  Sn[        R                  " [        US9   [
        R                  " X#40 UD6  S S S 5        g [
        R                  " X#40 UD6  g ! , (       d  f       g = f)Ncol1col2)columnscheck_dtypeint64z)Attributes of DataFrame\..* are differentr%   )r   astyper*   r+   r,   r   r   )r>   r=   r.   r/   r   r0   s         r	   test_empty_dtypesrA   c   s    vG
G
$C
G
$C[)Ff+$$W-CK:]]>5!!#5f5 65 	c1&1 65s   B
Bc                 P   U(       a  SnOSnUR                    SUR                    SU SU S3n[        / SQ/ SQS	./ S
QS9n[        / SQ/ SQS	./ SQS9n[        R                  " [        US9   [
        R                  " XVXR                   S9  S S S 5        g ! , (       d  f       g = f)Nstrobjectz\.index are different

zY\.index values are different \(33\.33333 %\)
\[left\]:  Index\(\['a', 'b', 'c'\], dtype='z0'\)
\[right\]: Index\(\['a', 'b', 'd'\], dtype='z-'\)
At positional index 2, first diff: c != dr   r   r   r    r"   )r   r   dr%   r'   r)   r   r*   r+   r,   r   r   r   r-   using_infer_stringdtyper0   r.   r/   s          r	   test_frame_equal_index_mismatchrJ   s   s    ''( )  227 9227 9*	-C ))4O
LC
))4O
LC	~S	1
1I1I	
 
2	1	1   . B
B%c                 P   U(       a  SnOSnUR                    SUR                    SU SU S3n[        / SQ/ SQS	./ S
QS9n[        / SQ/ SQS./ S
QS9n[        R                  " [        US9   [
        R                  " XVXR                   S9  S S S 5        g ! , (       d  f       g = f)NrC   rD   z\.columns are different

zR\.columns values are different \(50\.0 %\)
\[left\]:  Index\(\['A', 'B'\], dtype='z+'\)
\[right\]: Index\(\['A', 'b'\], dtype='z'\)r   r   r   r    r"   )r   r   r%   r'   rF   rG   s          r	   !test_frame_equal_columns_mismatchrM      s    ''( )  --2G 4--2G4	;C ))4O
LC
))4O
LC	~S	1
1I1I	
 
2	1	1rK   c                    UR                   nU SU S3n[        / SQ/ SQS.5      n[        / SQ/ SQS.5      n[        R                  " [        US9   [
        R                  " XEXS9  S S S 5        g ! , (       d  f       g = f)	Nz2\.iloc\[:, 1\] \(column name="B"\) are different

z\.iloc\[:, 1\] \(column name="B"\) values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[4, 5, 6\]
\[right\]: \[4, 5, 7\]r   r   r   )r   r      r%   	by_blocksr(   rF   )r
   r-   r(   r0   r.   r/   s         r	   test_frame_equal_block_mismatchrR      ss    

"
"Ce  C ))4
5C
))4
5C	~S	1
c2CM 
2	1	1s   A11
A?)   á   à   ä)   é   è   ë)r   E)rV   rW   u   e̊u   {obj}\.iloc\[:, 1\] \(column name="E"\) are different

{obj}\.iloc\[:, 1\] \(column name="E"\) values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[é, è, ë\]
\[right\]: \[é, è, e̊\])r   r   r   )erZ   rZ   u   {obj}\.iloc\[:, 0\] \(column name="A"\) are different

{obj}\.iloc\[:, 0\] \(column name="A"\) values are different \(100\.0 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[á, à, ä\]
\[right\]: \[a, a, a\]c                    [        U 5      n [        U5      nUR                  UR                  S9n[        R                  " [
        US9   [        R                  " XX4R                  S9  S S S 5        g ! , (       d  f       g = f)Nr3   r%   rP   )r   formatr)   r*   r+   r,   r   r   )r.   r/   r0   r
   r-   s        r	   test_frame_equal_unicoder]      s`    < C.C
C.C
**11*
2C	~S	1
 17O7O	
 
2	1	1s   	 A22
B c                     [        S/ SQ0SS9n U R                  [        5      nSn[        R                  " XSS9  [
        R                  " [        US9   [        R                  " XS	S9  S S S 5        g ! , (       d  f       g = f)
Nr   r   Int64rI   zAttributes of DataFrame\.iloc\[:, 0\] \(column name="a"\) are different

Attribute "dtype" are different
\[left\]:  Int64
\[right\]: int[32|64]Fr>   r%   T)r   r@   intr   r   r*   r+   r,   leftrightr0   s      r	   0test_assert_frame_equal_extension_dtype_mismatchrf      sg    c9%W5DKKE	"  $59	~S	1
dt< 
2	1	1s   A33
Bc                  0   [        S[        R                  " SS5      /0SS9n U R                  [        5      nSn[
        R                  " XSS9  [        R                  " [        US	9   [
        R                  " XS
S9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   intervalr`   zAttributes of DataFrame\.iloc\[:, 0\] \(column name="a"\) are different

Attribute "dtype" are different
\[left\]:  interval\[int64, right\]
\[right\]: objectFra   r%   T)
r   pdIntervalr@   rD   r   r   r*   r+   r,   rc   s      r	   /test_assert_frame_equal_interval_dtype_mismatchrk      su    cBKK1-./zBDKKE	  $59	~S	1
dt< 
2	1	1s   (B
Bc                  f    [        S/ SQ0SS9n [        S/ SQ0SS9n[        R                  " XSS9  g )Nr   r   r_   r`   Int32Fra   r   r   r   rd   re   s     r	   7test_assert_frame_equal_ignore_extension_dtype_mismatchrp      4    c9%W5DsI&g6E$59r   c                  f    [        S/ SQ0SS9n [        S/ SQ0SS9n[        R                  " XSS9  g )Nr   r   r_   r`   r?   Fra   rn   ro   s     r	   Ctest_assert_frame_equal_ignore_extension_dtype_mismatch_cross_classrs     rq   r   rI   )ztimedelta64[ns]zdatetime64[ns, UTC]z	Period[D]c                 `    [        S/ 0U S9n[        S/ 05      n[        R                  " XSS9  g )Nr   r`   Fra   rn   )rI   r.   r/   s      r	   4test_assert_frame_equal_datetime_like_dtype_mismatchru   	  s2     S"IU
+C
S"I
C#6r   c                     [        5       n [        5       R                  SS9n[        R                  " X 5        [        R                  " X5        [        R                  " XSS9  [        R                  " XSS9  [        R
                  " [        SS9   [        R                  " X5        S S S 5        [        R
                  " [        SS9   [        R                  " X5        S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)NF)allows_duplicate_labelscheck_flagsz<Flagsr%   )r   	set_flagsr   r   r*   r+   r,   ro   s     r	   test_allows_duplicate_labelsr{     s    ;DK!!%!@E$%%'$59%59	~X	6
d* 
7 
~X	6
d* 
7	6 
7	6 
7	6s   C)	C:)
C7:
Dc                  R    [        / SQ// SQ/ SQS9n [        R                  " X SS9  g )N)r   r   r   )foobar*   )r   testr   )r=   r#   Tr   rn   )dfs    r	   +test_assert_frame_equal_columns_mixed_dtyper   !  s#    	I;(:.	QB"T2r   c                 @    U " SS/US9n[         R                  " X"SS9  g )Nr   r   r`   Tcheck_exactr   assert_equal)r-   any_numeric_ea_dtyper(   s      r	    test_frame_equal_extension_dtyper   '  s!    
1a&(<
=COOC$/r   indexer)r   r   )r   r   c                 p    US4nU " SS/X2S      S9nU " SS/X2S      S9n[         R                  " XESSS9  g )	Nr?   r   r   r   r`   TF)r   r>   r   )r-   r   r   dtypesobj1obj2s         r	   test_frame_equal_mixed_dtypesr   -  sJ    "G,FAq6
);<DAq6
);<DOODDeDr   c                     [        [        R                  " / SS9S9n [        [        R                  " SSSS9S9n[        R
                  " [        SS9   [        R                  " XS	S
9  S S S 5        g ! , (       d  f       g = f)NrD   r`   r"   r   r   )startstopstepzDataFrame.index are differentr%   Tr   )	r   ri   Index
RangeIndexr*   r+   r,   r   r   r.   r/   s     r	   4test_assert_frame_equal_check_like_different_indexesr   5  sZ    
"((2X6
7C
"--aaa@
AC	~-L	M
c48 
N	M	Ms   A22
B c                  F   [        SS/SS//5      n SU R                  l        [        SS/SS//5      nSUR                  l        [        R                  " XSS9  [
        R                  " [        SS	9   [        R                  " XSS9  S S S 5        g ! , (       d  f       g = f)
Nr   r   r   r   FTrx   rw   r%   )r   flagsrw   r   r   r*   r+   r,   ro   s     r	   0test_assert_frame_equal_checking_allow_dups_flagr   =  s    q!fq!f%&D).DJJ&1v1v&'E*.EKK'$59	~-F	G
dt< 
H	G	Gs   3B
B c            
         [        S/S/S//[        R                  R                  [        R                  " / SQ5      [        R                  " / SQ5      /5      S9n [        S/S/S//[        R                  R                  [        R                  " / SQ5      [        R                  " / SQ5      /5      S9n[
        R                  " XSS9  g )	Nr   r   r   r    r"   r$   Tr   )r   ri   
MultiIndexfrom_arraysCategoricalr   r   ro   s     r	   3test_assert_frame_equal_check_like_categorical_midxr   J  s    
qcA3mm''//
D 
qcA3mm''//
E $$7r   c                  >   [        S[        R                  " [        R                  S/SS905      n [        S[        R                  " SS/SS905      nSn[        R
                  " [        US9   [        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nr   r   r_   r`   zGDataFrame.iloc\[:, 0\] \(column name="a"\) NA mask values are differentr%   	r   ri   SeriesNAr*   r+   r,   r   r   r.   r/   r0   s      r	   >test_assert_frame_equal_ea_column_definition_in_exception_maskr   a  so    
S"))RUUAJg>?
@C
S"))QF':;
<C
TC	~S	1
c' 
2	1	1s   .B
Bc                     [        S[        R                  " [        R                  S/SS905      n [        S[        R                  " [        R                  S/SS905      nSn[        R
                  " [        US9   [        R                  " X5        S S S 5        [        R
                  " [        US9   [        R                  " XSS	9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)
Nr   r   r_   r`   r   ?DataFrame.iloc\[:, 0\] \(column name="a"\) values are differentr%   Tr   r   r   s      r	   9test_assert_frame_equal_ea_column_definition_in_exceptionr   k  s    
S"))RUUAJg>?
@C
S"))RUUAJg>?
@C
LC	~S	1
c' 
2 
~S	1
cD9 
2	1 
2	1 
2	1s   <C4C$
C!$
C2c                  v   [        S[        R                  " S5      [        R                  " S5      /05      n [        S[        R                  " S5      [        R                  " S5      /05      nSn[        R                  " [
        US9   [        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nr   z
2019-12-31z
2020-12-31r   r%   )r   ri   	Timestampr*   r+   r,   r   r   r   s      r	   !test_assert_frame_equal_ts_columnr   x  s{    
S2<<5r||L7QRS
TC
S2<<5r||L7QRS
TC
LC	~S	1
c' 
2	1	1s   
B**
B8c                  |    [        S1 Sk1 Sk/05      n [        S1 Sk1 Sk/05      n[        R                  " X5        g )N
set_column   r   r   r      r   r   r   rn   r   s     r	   test_assert_frame_equal_setr     s8    
\Iy#9:
;C
\Iy#9:
;C##r   c                      [        S1 Sk1 Sk/05      n [        S1 Sk1 Sk/05      nSn[        R                  " [        US9   [        R
                  " X5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   >   r   r   rO   zHDataFrame.iloc\[:, 0\] \(column name="set_column"\) values are differentr%   )r   r*   r+   r,   r   r   r   s      r	   $test_assert_frame_equal_set_mismatchr     sW    
\Iy#9:
;C
\Iy#9:
;C
UC	~S	1
c' 
2	1	1s   A""
A0c                     [        SS/05      n Sn[        R                  " [        US9   [        R                  " X SS9  S S S 5        [        R                  " [        US9   [        R                  " X SS9  S S S 5        [        R                  " [        US9   [        R
                  " U S   U S   SS9  S S S 5        [        R                  " [        US9   [        R
                  " U S   U S   SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       g = f)Nr   r   z5the 'check_datetimelike_compat' keyword is deprecatedr%   T)check_datetimelike_compatF)r   r   assert_produces_warningr   r   assert_series_equal)r   r0   s     r	   #test_datetimelike_compat_deprecatedr     s    	C!:	B
AC		#	#N#	>
bE 
?		#	#N#	>
bF 
? 
	#	#N#	>
r#w34P 
?		#	#N#	>
r#w35Q 
?	> 
?	>	>	> 
?	>	>	>s/   C<!DDD/<
D

D
D,/
D=na_valuec                     [        SSU /05      n[        SU/05      n[        SU/05      n[        R                  " X#5        g )Nr   r   r   rn   )r   innerr.   r/   s       r	   $test_assert_frame_equal_nested_df_nar     sE     sQM*+E
TE7O
$C
TE7O
$C##r   ).numpynpr*   pandas.errorsr   pandasri   r   pandas._testing_testingr   fixturer
   r   markparametrizer1   r4   from_recordsr9   rA   rJ   rM   rR   r]   rf   rk   rp   rs   ru   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   nanr    r   r	   <module>r      s+     (    e}% &*& e}5
 6
  
y	C./y	)C+;<FF  ""!QtTl#CC5Q""#s4,#GPSuU-	
 ""!fC:T4LA#s ""CjSztEcSVZ <	
*2+*22  e}5
 6
* e}5
 6
(N   %+=>$+>?"		
 %+=>!8		
2
32
=&=&:: D77+30 VV$45E 6E9
=8.(
:($(R  beeRVVT%:;$ <$r   