
    EgA                     ,   d dl Zd dlZd dlmZmZmZmZmZm	Z	 d dl
mZ d Zd Zd Zej                            ddd ej        d	          d
f ej        d          df ej        d          dfg          d             Zej                            ddddd ej        d	          fddg          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dddg          d             Zej                            dg d          d              Zej                            dg d!          d"             Zej                            dd#d$d  ej        d           fd%g          d&             Zej                            dd'd(g          d)             Zej                            dd*d	d	gfd	 e            fg          d+             Z ej                            d,g d-          ej                            d.g d-          d/                         Z!d0 Z"d1 Z#d2 Z$ej                            dd	d3d4d	d5d4fd	d3d4d	d3d5d6fd7d	id	fd7d	id8fd7d	id	gfg          d9             Z%ej                            d:d	d3g          d;             Z&d< Z'ej                            dd=d>d?d8d	gfg          d@             Z(ej                            dg dAg dAf ej)        g dA           ej)        g dA          fg          dB             Z*ej                            d ej)        g dA          g dAf ej)        g dA           ej)        g dC          f e+g dA          g dAfg dAg dDfg dAg dEfg dAd	fg          dF             Z,dG Z-ej                            ddej.        fdHej.        d fg          dI             Z/ej                            dej0        ej0        fej0         e1dJ          f ej)        ej0        ej.        ej0         g           ej)        ej0        ej.        ej0         g          fg          dK             Z2eej.        ed ej3        dL           ej4        dL          gZ5ej                            dMe5          ej                            dNe5          dO                         Z6dP Z7ej                            d edQdg           edQdRg          f edQdg           edQdRg          f ej)        ddSg           ej)        ddTg          f ed7dQdgi           ed7dQdRgi          fg          dU             Z8dV Z9dW Z:ej                            dX ej)        d	g          d	dYdZfd	 ej)        d	g          dZdYfg          d[             Z;d\ Z<d] Z=d^ Z>d_ Z?d` Z@da ZAdb ZBdc ZCdd ZD ejE        d3ee          ZF ej)        ddfgee           ej)        dgdhgee          geFdd<    ej)         ej)        g di           ej)        djdkg          gee           ej)         ej)        g di           ej)        djdkg          gee          f ej)         ej)         ej)        dldmg           ej)        dng          gee           ej)         ej)        djdkg          gee          gee           ej)         ej)         ej)        dldmg           ej)        dng          gee           ej)         ej)        djdkg          gee          gee          f ej)        g didjdkggee           ej)        g didjdkggee          f ej)         ej)        g dA           ej)        dodg          gee           ej)        g dAdodggee          f ej)         ej)         ej)        g dA           ej)        dodg          gee           ej)         ej)        dpg           ej)        dqdrg           ej)        dsg          gee          gee           ej)        g dAdodggdpgdqdrgdsgggee          f ej)        eFdgee           ej)        ddfgdgdhggdgee          f ej)        d	 ej)        d7dfgee          dtgee           ej)        d	 ej)        d7dfgee          dtgee          f ej)        d	 ej)        d7dfgee          dtgee           ej)        d	d7dfgdtgee          f ej)         ej)        d	 ej)        d7dfgee          dtgee           ej)        g ee          gee           ej)        d	d7dfgdtgg gee          fg	ZGej        H                    du          ej                            deG          dv                         ZIdS )w    N)NA	DataFrameIndexNaTSeries	Timestampc                 R    t          j        | |fi | t          j        || fi | dS )a4  
    Check that two objects are approximately equal.

    This check is performed commutatively.

    Parameters
    ----------
    a : object
        The first object to compare.
    b : object
        The second object to compare.
    **kwargs
        The arguments passed to `tm.assert_almost_equal`.
    N)tmassert_almost_equalabkwargss      _/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/util/test_assert_almost_equal.py_assert_almost_equal_bothr      s@     1a**6***1a**6*****    c                     	 t          j        | |fi | |  d| d}t          j        |           dS # t          $ r Y dS w xY w)a  
    Check that two objects are not approximately equal.

    Parameters
    ----------
    a : object
        The first object to compare.
    b : object
        The second object to compare.
    **kwargs
        The arguments passed to `tm.assert_almost_equal`.
    z and z7 were approximately equal when they shouldn't have been)reasonN)r
   r   pytestfailAssertionError)r   r   r   msgs       r   _assert_not_almost_equalr   "   ss    
q!..v...SSSSS3   s   04 
AAc                 >    t          | |fi | t          || fi | dS )a8  
    Check that two objects are not approximately equal.

    This check is performed commutatively.

    Parameters
    ----------
    a : object
        The first object to compare.
    b : object
        The second object to compare.
    **kwargs
        The arguments passed to `tm.assert_almost_equal`.
    Nr   r   s      r   _assert_not_almost_equal_bothr   7   s:     Q,,V,,,Q,,V,,,,,r   za,b皙?r   r   	?   gzo ?r      c                 &    t          | |           d S Nr   r   r   s     r    test_assert_almost_equal_numbersr'   J   s     a#####r   )r   r!   )r   T)r!      gqh ?)皙?g`TR'?)g/nR?ga2U0*S?c                 &    t          | |           d S r$   r   r&   s     r   $test_assert_not_almost_equal_numbersr,   X   s     "!Q'''''r   )r   r   r   gF%u?gư>gh㈵>g     @@g/$@@&|>gTqs*>c                 ,    t          | |dd           d S )NgMb@?)rtolatolr%   r&   s     r   %test_assert_almost_equal_numbers_atolr5   h   s!     af======r   )r   g(\?r)   gB`"۹?)r1   gӹP?c                 *    t          | |d           d S )NMbP?)r4   r+   r&   s     r   )test_assert_not_almost_equal_numbers_atolr:   y       !!QT222222r   )r   r   r-   r/   r6   r7   c                 *    t          | |d           d S Ng?r3   r%   r&   s     r   %test_assert_almost_equal_numbers_rtolr?   ~   s     a......r   r0   r.   c                 *    t          | |d           d S r=   r+   r&   s     r   )test_assert_not_almost_equal_numbers_rtolrA      r;   r   za,b,rtol))grZ|
 ?g9m4 ?r9   )y$@?yBD?r9   )y?/$?y?jt?r)   )y`TR'?       @y?5^I @{Gz?c                    t          | ||           t          t          j        |           t          j        |          |           t          t          j        |           t          j        |          |           d S Nr>   )r   np	complex64
complex128r   r   r3   s      r   (test_assert_almost_equal_complex_numbersrI      sm     a....bl1oor|ATJJJJbmA..a0@0@tLLLLLLr   ))goѨ?gYa#t?gHz>)yuV?yKￚ?r9   )y?      ?y?       @rB   )yL7A`jt?yL7A`Gz?gh㈵>)y        oѨ?y        Ya#t?g&.>c                    t          | ||           t          t          j        |           t          j        |          |           t          t          j        |           t          j        |          |           d S rD   )r   rE   rF   rG   rH   s      r   ,test_assert_not_almost_equal_complex_numbersrK      sm     "!QT2222!",q//2<??NNNN!"-"2"2BM!4D4D4PPPPPPr   )r   r   )r   g        )g:0yE>r   c                 &    t          | |           d S r$   r%   r&   s     r   +test_assert_almost_equal_numbers_with_zerosrM      s    a#####r   )r9   r   )r!   r   c                 &    t          | |           d S r$   r+   r&   s     r   /test_assert_not_almost_equal_numbers_with_zerosrO          !!Q'''''r   )r!   abcc                 &    t          | |           d S r$   r+   r&   s     r   /test_assert_not_almost_equal_numbers_with_mixedrS      rP   r   
left_dtype)zM8[ns]zm8[ns]float64int64objectright_dtypec                 z    t          t          j        g |           t          j        g |          d           d S )NdtypeFcheck_dtype)r   rE   array)rT   rX   s     r   +test_assert_almost_equal_edge_case_ndarraysr_      sL     
:&&&
;'''     r   c                  .    t          h dh d           d S )N   r!   r(      r%    r   r   test_assert_almost_equal_setsrd      s     iii33333r   c                      d} t          j        t          |           5  t          h dh d           d d d            d S # 1 swxY w Y   d S )Nz{1, 2, 3} != {1, 2, 4}matchra   >   r!   r(      )r   raisesr   r   r   s    r   !test_assert_almost_not_equal_setsrk      s    
#C	~S	1	1	1 8 8!)))YYY7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   A  AAc                  2    t          dddddd           d S )Nr!   r(   r&   r%   rc   r   r   test_assert_almost_equal_dictsrm      s(    AA..aa0@0@AAAAAr   r(   r&   rb   )r   r   cr   rQ   c                 &    t          | |           d S r$   r+   r&   s     r   "test_assert_not_almost_equal_dictsrp      s     "!Q'''''r   valc                     dd| i} G fdd          }| k    rt           nt          } || |            d           d S )Nr!   r   c                        e Zd Zd Z fdZdS )>test_assert_almost_equal_dict_like_object.<locals>.DictLikeObjc                     dS )N)r   rc   )selfs    r   keyszCtest_assert_almost_equal_dict_like_object.<locals>.DictLikeObj.keys   s    6r   c                     |dk    rS d S )Nr   rc   )rv   itemdict_vals     r   __getitem__zJtest_assert_almost_equal_dict_like_object.<locals>.DictLikeObj.__getitem__   s    s{{ {r   N)__name__
__module____qualname__rw   r{   )rz   s   r   DictLikeObjrt      s=        	 	 		  	  	  	  	  	  	 r   r   Fr\   )r   r   )rq   	real_dictr   funcrz   s       @r   )test_assert_almost_equal_dict_like_objectr      s    Hc
I                    &)H__!!:W 	 	DKKMMu555555r   c                  &    t          dd           d S )NrQ   r%   rc   r   r    test_assert_almost_equal_stringsr      s    eU+++++r   )rQ   abcd)rQ   abd)rQ   r!   c                 &    t          | |           d S r$   r+   r&   s     r   $test_assert_not_almost_equal_stringsr     s     "!Q'''''r   )r!   r(   rb   c                 &    t          | |           d S r$   r%   r&   s     r   "test_assert_almost_equal_iterablesr     s     a#####r   )      ?       @g      @)r!   r(   rh   )r!   r(   rb   rh   c                 &    t          | |           d S r$   r   r&   s     r   &test_assert_not_almost_equal_iterablesr     s     Q"""""r   c                  &    t          d d            d S r$   r%   rc   r   r   test_assert_almost_equal_nullr   $  s    dD)))))r   Nr   c                 &    t          | |           d S r$   r   r&   s     r   !test_assert_not_almost_equal_nullr   (  s    Q"""""r   infc                 &    t          | |           d S r$   r%   r&   s     r   test_assert_almost_equal_infr   -  s     a#####r   r   leftrightc                    t          j        | gt                    }t          j        |gt                    }d}| |u rt          | |d           t	          j        ||           t	          j        t          |t                    t          |t                               t	          j        t          |t                    t          |t                               t	          j
        t          |t                    t          |t                               d S t	          j        t          |          5  t          | |d           d d d            n# 1 swxY w Y   t	          j        t          |          5  t	          j        t          |t                    t          |t                               d d d            n# 1 swxY w Y   t	          j        t          |          5  t	          j
        t          |t                    t          |t                               d d d            d S # 1 swxY w Y   d S )NrZ   zMismatched null-like valuesFr\   rf   )rE   r^   rW   r   r
   assert_numpy_array_equalassert_index_equalr   assert_series_equalr   assert_frame_equalr   assert_produces_warningFutureWarning)r   r   left_arr	right_arrr   s        r   2test_mismatched_na_assert_almost_equal_deprecationr   <  s    xf---H%///I
'Cu}}!$5AAAA
#Hi888
(&)))5&+I+I+I	
 	
 	
 	86***F9F,K,K,K	
 	
 	
 	hf---y&/Q/Q/Q	
 	
 	
 	
 	

 'SAAA 	F 	F%dEuEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 'SAAA 	 	"xv...y0O0O0O  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 'SAAA 	 	!(&1119Yf3U3U3U  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   :EE E?>G		GG/>H::H>H>c                  :    t          t          j        d           d S r   )r   rE   r   rc   r   r    test_assert_not_almost_equal_infr   d  s    !"&!,,,,,r   r   r    g7   @r   c                 &    t          | |           d S r$   r%   r&   s     r   test_assert_almost_equal_pandasr   h  s     a#####r   c                      t          d          t          d          g} t          d          t          d          g}t          | |           d S )N
2011-01-01)r   r   r&   s     r   test_assert_almost_equal_objectr   u  sL    	<	 	 )L"9"9:A	<	 	 )L"9"9:Aa#####r   c                      d} t          j        t          |           5  t          j        dd           d d d            d S # 1 swxY w Y   d S )Nz?expected 2\.00000 but got 1\.00000, with rtol=1e-05, atol=1e-08rf   r!   r(   r   ri   r   r
   r   rj   s    r   'test_assert_almost_equal_value_mismatchr   {  s    
MC	~S	1	1	1 % %
q!$$$% % % % % % % % % % % % % % % % % %s   AAAza,b,klass1,klass2ndarrayintc                     d| d| }t          j        t          |          5  t          j        | |           d d d            d S # 1 swxY w Y   d S )NzHnumpy array are different

numpy array classes are different
\[left\]:  z
\[right\]: rf   r   )r   r   klass1klass2r   s        r   'test_assert_almost_equal_class_mismatchr     s    
   	 C 
~S	1	1	1 % %
q!$$$% % % % % % % % % % % % % % % % % %s   AAAc            	         d} t          j        t          |           5  t          j        t          j        t
          j        ddg          t          j        dt
          j        dg                     d d d            d S # 1 swxY w Y   d S )Nznumpy array are different

numpy array values are different \(66\.66667 %\)
\[left\]:  \[nan, 2\.0, 3\.0\]
\[right\]: \[1\.0, nan, 3\.0\]rf   r(   rb   r!   )r   ri   r   r
   r   rE   r^   nanrj   s    r   (test_assert_almost_equal_value_mismatch1r     s    (C 
~S	1	1	1 S S
rxA771bfa.9Q9QRRRS S S S S S S S S S S S S S S S S Ss   AA??BBc                      d} t          j        t          |           5  t          j        t          j        ddg          t          j        ddg                     d d d            d S # 1 swxY w Y   d S )Nzonumpy array are different

numpy array values are different \(50\.0 %\)
\[left\]:  \[1, 2\]
\[right\]: \[1, 3\]rf   r!   r(   rb   r   ri   r   r
   r   rE   r^   rj   s    r   (test_assert_almost_equal_value_mismatch2r     s    C 
~S	1	1	1 C C
rxA//1a&1A1ABBBC C C C C C C C C C C C C C C C C C   >A))A-0A-c            
         d} t          j        t          |           5  t          j        t          j        ddgddgddgg          t          j        ddgddgddgg                     d d d            d S # 1 swxY w Y   d S )	Nznumpy array are different

numpy array values are different \(16\.66667 %\)
\[left\]:  \[\[1, 2\], \[3, 4\], \[5, 6\]\]
\[right\]: \[\[1, 3\], \[3, 4\], \[5, 6\]\]rf   r!   r(   rb   rh   r"      r   rj   s    r   (test_assert_almost_equal_value_mismatch3r     s    9C 
~S	1	1	1 
 

Hq!fq!fq!f-..1a&1a&1a&9Q0R0R	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   AA77A;>A;c            	          d} t          j        t          |           5  t          j        t          j        ddgddgg          t          j        ddgddgg                     d d d            d S # 1 swxY w Y   d S )Nznumpy array are different

numpy array values are different \(25\.0 %\)
\[left\]:  \[\[1, 2\], \[3, 4\]\]
\[right\]: \[\[1, 3\], \[3, 4\]\]rf   r!   r(   rb   rh   r   rj   s    r   (test_assert_almost_equal_value_mismatch4r     s    -C 
~S	1	1	1 W W
rx!Q!Q(89928aVaQRVDT;U;UVVVW W W W W W W W W W W W W W W W W Ws   AA11A58A5c                      d} t          j        t          |           5  t          j        t          j        ddg          t          j        g d          d           d d d            d S # 1 swxY w Y   d S )NzWIndex are different

Index shapes are different
\[left\]:  \(2L*,\)
\[right\]: \(3L*,\)rf   r!   r(   rb   rh   r"   r   )objr   rj   s    r   0test_assert_almost_equal_shape_mismatch_overrider     s    C
 
~S	1	1	1 S S
rxA//)))1D1D'RRRRS S S S S S S S S S S S S S S S S Ss   A A++A/2A/c                      d} t          j        t          |           5  t          j        t          j        g d          t          j        g d                     d d d            d S # 1 swxY w Y   d S )Nu   numpy array are different

numpy array values are different \(33\.33333 %\)
\[left\]:  \[á, à, ä\]
\[right\]: \[á, à, å\]rf   )   á   à   ä)r   r      år   rj   s    r    test_assert_almost_equal_unicoder     s    !C 
~S	1	1	1 [ [
rx(:(:(:;;RXFXFXFX=Y=YZZZ[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [r   c                  \   t          j        t          d          t          d          g          } t          j        t          d          t          d          g          }d}t          j        t
          |          5  t          j        | |           d d d            d S # 1 swxY w Y   d S )Nr   z
2011-01-02znumpy array are different

numpy array values are different \(50\.0 %\)
\[left\]:  \[2011-01-01 00:00:00, 2011-01-01 00:00:00\]
\[right\]: \[2011-01-01 00:00:00, 2011-01-02 00:00:00\]rf   )rE   r^   r   r   ri   r   r
   r   )r   r   r   s      r   "test_assert_almost_equal_timestampr     s    
)L))9\+B+BCDDA
)L))9\+B+BCDDA?C 
~S	1	1	1 % %
q!$$$% % % % % % % % % % % % % % % % % %s   >B!!B%(B%c                      d} t          j        t          |           5  t          j        ddgg d           d d d            d S # 1 swxY w Y   d S )NzOIterable are different

Iterable length are different
\[left\]:  2
\[right\]: 3rf   r!   r(   r   r   rj   s    r   1test_assert_almost_equal_iterable_length_mismatchr     s    C 
~S	1	1	1 2 2
1vyyy1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2   AA	A	c                      d} t          j        t          |           5  t          j        ddgddg           d d d            d S # 1 swxY w Y   d S )NziIterable are different

Iterable values are different \(50\.0 %\)
\[left\]:  \[1, 2\]
\[right\]: \[1, 3\]rf   r!   r(   rb   r   rj   s    r   1test_assert_almost_equal_iterable_values_mismatchr     s    C 
~S	1	1	1 / /
1v1v.../ / / / / / / / / / / / / / / / / /r   rZ   r   rn   d)2   F   Z         r   r   r   rh   r         	   )f1f2z7ignore:elementwise comparison failed:DeprecationWarningc                 &    t          | |           d S r$   r%   r&   s     r   %test_assert_almost_equal_array_nestedr   G  s     a#####r   )JnumpyrE   r   pandasr   r   r   r   r   r   pandas._testing_testingr
   r   r   r   markparametrizeint16rU   uint32r'   r,   r5   r:   r?   rA   rI   rK   rM   rO   rW   rS   r_   rd   rk   rm   rp   r   r   r   r^   r   iterr   r   r   r   r   floatr   
datetime64timedelta64objsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   emptysubarrNESTED_CASESfilterwarningsr   rc   r   r   <module>r      sU                            + + +&  *- - -& 		!h	C#	1q	 	$ $	 	$ 		! ( ( ( 	   > > >
  Q Q QRR3 3 SR3 	  
 
/ /
 
/ !57K LMM3 3 NM3    M M M   	 	Q Q	 	Q Azrz!}}3E WXX$ $ YX$ V 455( ( 65( a!X6688} EFF( ( GF( DDD  EEE    4 4 4
8 8 8B B B 	q		++,q		334
q1
q5
qA3	 	( (	 	( A''6 6 ('6$, , , 	O^Z%!F ( ( ( 	YYY			"XRXiii%8%8("(999:M:M$NO $ $ $ 	 
)))		iii(	)))		hbh778	iii)))$	III	LLL!	A
 # # #* * * $RVQK HII# # JI# 			u	2626BF7+	,	,hbh7P.Q.QR $ $ $ 	BFC}r}U33^R^E5J5JK &&$''# # (' '&#L- - - 		Sz		EE3/223	c
		VVS(O445	3/	"	"HBHc3Z$8$89	C#s$	%	%yy#X1G'H'HI	 $ $ $$ $ $% % % bhsmmQ	5)Axrx}}eY+OP % %	 %S S SC C C

 

 

W W WS S S	[ 	[ 	[% % %2 2 2/ / / 
!6	"	"	"RXtSk000("(C:V2T2T2TUqqq	
 	("(<<<((("(B8*<*<=VLLL("(<<<((("(B8*<*<=VLLL 	("(B8,,hbhtnn=VLLL("(B8,,-V<<< 	
 	
 	
 	("(B8,,hbhtnn=VLLL("(B8,,-V<<< 	
 	
 	
$ 	,,,R)888,,,R)888 	("(999%%xrxA'7'78GGG)))aV$F333
 	("(999--xrxA/?/?@OOORXqc]]HBHaV$4$4hbhsmmDF   	
 	
 	
 	999q!f%aVaS'9:&III 	&$v...D#;c
+T2&AAA 	("(C:V"D"D"DEEFfUUU("(C:V"D"D"DEEFfUUU
 	("(C:V"D"D"DEEFfUUU3*--.f=== 	XRXsCj%G%G%GHHIQW   6***	 	
 	
 	
 	!C:../4FCCCyHV UVV--$ $ .- WV$ $ $r   