
    i'9                        d dl Zd dlZd dlmZ d dlZd dlmZ d dlm	Z
  ej                  ddg      d        Zd Zej                  j                  d	ddg      d
        Zej                  j                  ddg didg difg dg dddg difg      d        Zej                  j                  d ej$                  ddgddgddg       ej$                  ddgddgddg      df ej$                  ddgddgddgddd g       ej$                  ddgddgddgddd g      d!fg      d"        Zd# Zej                  j                  d	ddg      d$        Zej                  j                  d	ddg      d%        Zd& Zej                  j                  dg d'g d(d)g d'g d*d)d+fg d'g d(d)g d,g d-d)d.fg      d/        Zd0 Zd1 Zd2 Zd3 Zej                  j                  d4g d5      d6        Zd7 Zd8 Zd9 Z ej                  j                  d:d;d<g      d=        Z!d> Z"d? Z#d@ Z$dA Z%dB Z&dC Z'dD Z(dE Z)dF Z*ej                  j                  dGejV                  ejX                  dg      dH        Z-y)I    N)Pandas4Warning)	DataFrameTF)paramsc                     | j                   S )N)param)requests    f/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/util/test_assert_frame_equal.pyby_blocks_fixturer
      s    ==    c                 `    t        j                  | |fi | t        j                  || fi | y)a4  
    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.     !Q)&)!Q)&)r   
check_likec                 X   t        g dg ddg d      }t        g dg ddg d      }| sW|j                   d	}t        j                  t        |
      5  t        j                  ||| |j                         d d d        y t        ||| |j                         y # 1 sw Y   y xY w)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 	!!SZ_5M5M	 	
 	!1I1I	
	 	s   $B  B)zdf1,df2r   r   )r   r   r   r   r   r   c                     t        |       } t        |      }|j                   d}t        j                  t        |      5  t        j                  | ||j                         d d d        y # 1 sw Y   y xY w)Nz are differentr%   r(   )r   r)   r*   r+   r,   r   r   )r.   r/   r-   r0   s       r	   test_frame_equal_shape_mismatchr4   4   sh     C.C
C.C%%&n
5C	~S	1 F
c3O,D,DEF F Fs   #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                     d|i}|r<t        j                  t        |      5  t        j                  | |fi | d d d        y t        j                  | |fi | y # 1 sw Y   y xY w)Ncheck_index_typer%   )r*   r+   r,   r   r   )r.   r/   r0   r8   r   s        r	   %test_frame_equal_index_dtype_mismatchr9   D   sf    , !"23F]]>5 	6!!#s5f5	6 	6 	c31&1	6 	6s   AA$c                 8   ddg}t        |      }t        |      }d| i}|d   j                  d      |d<   | r>d}t        j                  t        |      5  t        j                  ||fi | d d d        y t        j                  ||fi | y # 1 sw Y   y xY w)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 	6!!#s5f5	6 	6 	c31&1	6 	6s   BBc                 T   |rd}nd}|j                    d|j                    d| d| d}t        g dg dd	g d
      }t        g dg dd	g d      }t        j                  t        |      5  t        j                  ||| |j                          d d d        y # 1 sw Y   y xY w)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	

 
 
   1$BB'c                 T   |rd}nd}|j                    d|j                    d| d| d}t        g dg dd	g d
      }t        g dg ddg d
      }t        j                  t        |      5  t        j                  ||| |j                          d d d        y # 1 sw Y   y xY w)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	

 
 
rK   c                    |j                   }| d| d}t        g dg dd      }t        g dg dd      }t        j                  t        |      5  t        j                  ||| |       d d d        y # 1 sw Y   y xY w)	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      s    

"
"Ce  C ))4
5C
))4
5C	~S	1 N
c32CMN N Ns   A77B )   á   à   ä)   é   è   ë)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                    t        |       } t        |      }|j                  |j                        }t        j                  t
        |      5  t        j                  | |||j                         d d d        y # 1 sw Y   y xY w)Nr3   r%   rP   )r   formatr)   r*   r+   r,   r   r   )r.   r/   r0   r
   r-   s        r	   test_frame_equal_unicoder]      sm    < C.C
C.C
**11*
2C	~S	1 

 17O7O	

 
 
s   $A;;Bc                     t        dg did      } | j                  t              }d}t        j                  | |d       t        j                  t        |      5  t        j                  | |d	       d d d        y # 1 sw Y   y xY w)
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      st    c9%W5DKKE	"  $59	~S	1 =
dEt<= = =s   A>>Bc                  :   t        dt        j                  dd      gid      } | j                  t              }d}t        j                  | |d       t        j                  t        |	      5  t        j                  | |d
       d d d        y # 1 sw Y   y xY w)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      s    cBKK1-./zBDKKE	  $59	~S	1 =
dEt<= = =s   /BBc                  x    t        dg did      } t        dg did      }t        j                  | |d       y )Nr   r   r_   r`   Int32Fra   r   r   r   rd   re   s     r	   7test_assert_frame_equal_ignore_extension_dtype_mismatchrp      6    c9%W5DsI&g6E$59r   c                  x    t        dg did      } t        dg did      }t        j                  | |d       y )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                 l    t        dg i|       }t        dg i      }t        j                  ||d       y )Nr   r`   Fra   rn   )rI   r.   r/   s      r	   4test_assert_frame_equal_datetime_like_dtype_mismatchru   	  s4     S"IU
+C
S"I
C#s6r   c                     t               } t               j                  d      }t        j                  | |        t        j                  ||       t        j                  | |d       t        j                  || d       t	        j
                  t        d      5  t        j                  | |       d d d        t	        j
                  t        d      5  t        j                  | |       d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)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 +
dE*+ 
~X	6 +
dE*+ ++ ++ +s   C6D6C?Dc                  ^    t        g dgg dg d      } t        j                  | | d       y )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"bT2r   c                 L     | ddg|      }t        j                  ||d       y )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                     |df} | ddg||d            } | ddg||d            }t        j                  ||dd       y )	Nr?   r   r   r   r`   TF)r   r>   r   )r-   r   r   dtypesobj1obj2s         r	   test_frame_equal_mixed_dtypesr   -  sP    "G,FAq6
);<DAq6
);<DOOD$DeDr   c                     t        t        j                  g d            } t        t        j                  ddd            }t	        j
                  t        d      5  t        j                  | |d	
       d d d        y # 1 sw Y   y xY w)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  sd    
"((2X6
7C
"--aaa@
AC	~-L	M 9
c3489 9 9s   BB
c                  L   t        ddgddgg      } d| j                  _        t        ddgddgg      }d|j                  _        t        j                  | |d       t        j                  t        d	      5  t        j                  | |d       d d d        y # 1 sw Y   y xY w)
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 =
dEt<= = =s   8BB#c            
         t        dgdgdggt        j                  j                  t        j                  g d      t        j                  g d      g            } t        dgdgdggt        j                  j                  t        j                  g d      t        j                  g d      g            }t        j                  | |d       y )	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                  @   t        dt        j                  t        j                  dgd      i      } t        dt        j                  ddgd      i      }d}t	        j
                  t        |      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)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  sz    
S"))RUUAJg>?
@C
S"))QF':;
<C
TC	~S	1 (
c3'( ( (s   4BBc                     t        dt        j                  t        j                  dgd      i      } t        dt        j                  t        j                  dgd      i      }d}t	        j
                  t        |      5  t        j                  | |       d d d        t	        j
                  t        |      5  t        j                  | |d	       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)
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 (
c3'( 
~S	1 :
c3D9: :( (: :s   C<C*C'*C3c                  h   t        dt        j                  d      t        j                  d      gi      } t        dt        j                  d      t        j                  d      gi      }d}t        j                  t
        |      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)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 (
c3'( ( (s   B((B1c                  |    t        dh dh dgi      } t        dh dh dgi      }t        j                  | |       y )N
set_column   r   r   r      r   r   r   rn   r   s     r	   test_assert_frame_equal_setr     s:    
\Iy#9:
;C
\Iy#9:
;C#s#r   c                      t        dh dh dgi      } t        dh dh dgi      }d}t        j                  t        |      5  t	        j
                  | |       d d d        y # 1 sw Y   y xY w)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     sb    
\Iy#9:
;C
\Iy#9:
;C
UC	~S	1 (
c3'( ( (s   A$$A-c                  |   t        ddgi      } d}t        j                  t        |      5  t        j                  | | d       d d d        t        j                  t        |      5  t        j                  | | d       d d d        t        j                  t        |      5  t        j
                  | d   | d   d       d d d        t        j                  t        |      5  t        j
                  | d   | d   d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   dxY w# 1 sw Y   y xY w)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#	> F
b"EF		#	#N#	> G
b"FG 
	#	#N#	> Q
r#w34PQ		#	#N#	> R
r#w35QR RF FG GQ QR Rs/   D(D$D&&D2DD#&D/2D;na_valuec                     t        dd| gi      }t        d|gi      }t        d|gi      }t        j                  ||       y )Nr   r   r   rn   )r   innerr.   r/   s       r	   $test_assert_frame_equal_nested_df_nar     sG     sQM*+E
TE7O
$C
TE7O
$C#s#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      s5     (    e}% &*& e}5
 6
  
y	C./y	)C+;<FF  #I""!QtTl#CC5Q"I""#s4,#GPSuU-	
 #I""!fC:T4LA#s #I""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   