
    OwgA                        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                   j#                  ddd ej$                  d	      d
f ej&                  d      df ej(                  d      dfg      d        Zej                   j#                  ddddd ej$                  d	      fddg      d        Zej                   j#                  dg d      d        Zej                   j#                  dg d      d        Zej                   j#                  dg d      d        Zej                   j#                  dddg      d        Zej                   j#                  dg d      d         Zej                   j#                  dg d!      d"        Zej                   j#                  dd#d$d  ej&                  d       fd%g      d&        Zej                   j#                  dd'd(g      d)        Zej                   j#                  dd*d	d	gfd	 e       fg      d+        Z ej                   j#                  d,g d-      ej                   j#                  d.g d-      d/               Z!d0 Z"d1 Z#d2 Z$ej                   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                   j#                  d:d	d3g      d;        Z&d< Z'ej                   j#                  dd=d>d?d8d	gfg      d@        Z(ej                   j#                  dg dAg dAf ejR                  g dA       ejR                  g dA      fg      dB        Z*ej                   j#                  d ejR                  g dA      g dAf ejR                  g dA       ejR                  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                   j#                  ddej\                  fdHej\                  d fg      dI        Z/ej                   j#                  dej`                  ej`                  fej`                   e1dJ      f ejR                  ej`                  ej\                  ej`                   g       ejR                  ej`                  ej\                  ej`                   g      fg      dK        Z2eej\                  ed ejf                  dL       ejh                  dL      gZ5ej                   j#                  dMe5      ej                   j#                  dNe5      dO               Z6dP Z7ej                   j#                  d edQdg       edQdRg      f edQdg       edQdRg      f ejR                  ddSg       ejR                  ddTg      f ed7dQdgi       ed7dQdRgi      fg      dU        Z8dV Z9dW Z:ej                   j#                  dX ejR                  d	g      d	dYdZfd	 ejR                  d	g      dZdYfg      d[        Z;d\ Z<d] Z=d^ Z>d_ Z?d` Z@da ZAdb ZBdc ZCdd ZD ej                  d3ee      ZF ejR                  ddfgee       ejR                  dgdhgee      geFdd  ejR                   ejR                  g di       ejR                  djdkg      gee       ejR                   ejR                  g di       ejR                  djdkg      gee      f ejR                   ejR                   ejR                  dldmg       ejR                  dng      gee       ejR                   ejR                  djdkg      gee      gee       ejR                   ejR                   ejR                  dldmg       ejR                  dng      gee       ejR                   ejR                  djdkg      gee      gee      f ejR                  g didjdkggee       ejR                  g didjdkggee      f ejR                   ejR                  g dA       ejR                  dodg      gee       ejR                  g dAdodggee      f ejR                   ejR                   ejR                  g dA       ejR                  dodg      gee       ejR                   ejR                  dpg       ejR                  dqdrg       ejR                  dsg      gee      gee       ejR                  g dAdodggdpgdqdrgdsgggee      f ejR                  eFdgee       ejR                  ddfgdgdhggdgee      f ejR                  d	 ejR                  d7dfgee      dtgee       ejR                  d	 ejR                  d7dfgee      dtgee      f ejR                  d	 ejR                  d7dfgee      dtgee       ejR                  d	d7dfgdtgee      f ejR                   ejR                  d	 ejR                  d7dfgee      dtgee       ejR                  g ee      gee       ejR                  d	d7dfgdtgg gee      fg	ZGej                   j                  du      ej                   j#                  deG      dv               ZIy)w    N)NA	DataFrameIndexNaTSeries	Timestampc                 `    t        j                  | |fi | t        j                  || fi | y)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      a/var/www/horilla/myenv/lib/python3.12/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                  |       y# t        $ r Y y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   "   sM    
q!.v.5RS3 s   58 	AAc                 8    t        | |fi | t        || fi | y)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        | |       y 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        | |       y 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       y )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       y )NMbP?)r4   r+   r&   s     r   )test_assert_not_almost_equal_numbers_atolr:   y       !!QT2r   )r   r   r-   r/   r6   r7   c                      t        | |d       y Ng?r3   r%   r&   s     r   %test_assert_almost_equal_numbers_rtolr?   ~   s     a.r   r0   r.   c                      t        | |d       y 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                  |      |       y Nr>   )r   np	complex64
complex128r   r   r3   s      r   (test_assert_almost_equal_complex_numbersrI      sJ     a.bll1or||ATJbmmA.a0@t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                  |      |       y rD   )r   rE   rF   rG   rH   s      r   ,test_assert_not_almost_equal_complex_numbersrK      sJ     "!QT2!",,q/2<<?N!"--"2BMM!4D4Pr   )r   r   )r   g        )g:0yE>r   c                     t        | |       y r$   r%   r&   s     r   +test_assert_almost_equal_numbers_with_zerosrM      s    a#r   )r9   r   )r!   r   c                     t        | |       y r$   r+   r&   s     r   /test_assert_not_almost_equal_numbers_with_zerosrO          !!Q'r   )r!   abcc                     t        | |       y 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                 t    t        t        j                  g |       t        j                  g |      d       y )NdtypeFcheck_dtype)r   rE   array)rT   rX   s     r   +test_assert_almost_equal_edge_case_ndarraysr_      s+     
:&
;'r   c                  $    t        h dh d       y )N   r!   r(      r%    r   r   test_assert_almost_equal_setsrd      s    i3r   c                      d} t        j                  t        |       5  t        h dh d       d d d        y # 1 sw Y   y xY w)Nz{1, 2, 3} != {1, 2, 4}matchra   >   r!   r(      )r   raisesr   r   r   s    r   !test_assert_almost_not_equal_setsrk      s4    
#C	~S	1 8!)Y78 8 8s	   8Ac                  (    t        dddddd       y )Nr!   r(   r&   r%   rc   r   r   test_assert_almost_equal_dictsrm      s    AA.aa0@Ar   r(   r&   rb   )r   r   cr   rQ   c                     t        | |       y r$   r+   r&   s     r   "test_assert_not_almost_equal_dictsrp      s     "!Q'r   valc                 l    dd| i} G fdd      }| k(  rt         nt        } || |       d       y )Nr!   r   c                       e Zd Zd Z fdZy)>test_assert_almost_equal_dict_like_object.<locals>.DictLikeObjc                      y)N)r   rc   )selfs    r   keyszCtest_assert_almost_equal_dict_like_object.<locals>.DictLikeObj.keys   s    r   c                     |dk(  rS y )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 	 	KMu5r   c                      t        dd       y )NrQ   r%   rc   r   r    test_assert_almost_equal_stringsr      s    eU+r   )rQ   abcd)rQ   abd)rQ   r!   c                     t        | |       y r$   r+   r&   s     r   $test_assert_not_almost_equal_stringsr     s     "!Q'r   )r!   r(   rb   c                     t        | |       y r$   r%   r&   s     r   "test_assert_almost_equal_iterablesr     s     a#r   )      ?       @g      @)r!   r(   rh   )r!   r(   rb   rh   c                     t        | |       y r$   r   r&   s     r   &test_assert_not_almost_equal_iterablesr     s     Q"r   c                      t        d d        y r$   r%   rc   r   r   test_assert_almost_equal_nullr   $  s    dD)r   Nr   c                     t        | |       y r$   r   r&   s     r   !test_assert_not_almost_equal_nullr   (  s    Q"r   infc                     t        | |       y 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                     y t	        j                  t        |      5  t        | |d       d d d        t	        j                  t        |      5  t	        j                  t        |t              t        |t                     d d d        t	        j                  t        |      5  t	        j                  t        |t              t        |t                     d d d        y # 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   y xY w)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    xxf-H%/I
'Cu}!$5A
##Hi8
(&)5&+I	
 	86*F9F,K	
 	hf-y&/Q	

 ''SA 	F%dEuE	F ''SA 	""xv.y0O	 ''SA 	!!(&19Yf3U	 		F 	F	 		 	s$   G#5G/%5G;#G,/G8;Hc                  8    t        t        j                  d       y r   )r   rE   r   rc   r   r    test_assert_not_almost_equal_infr   d  s    !"&&!,r   r   r    g7   @r   c                     t        | |       y r$   r%   r&   s     r   test_assert_almost_equal_pandasr   h  s     a#r   c                  t    t        d      t        d      g} t        d      t        d      g}t        | |       y )N
2011-01-01)r   r   r&   s     r   test_assert_almost_equal_objectr   u  s4    	<	 )L"9:A	<	 )L"9:Aa#r   c                      d} t        j                  t        |       5  t        j                  dd       d d d        y # 1 sw Y   y xY w)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 %
q!$% % %s	   >Aza,b,klass1,klass2ndarrayintc                     d| d| }t        j                  t        |      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)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     sT    
 X X	C 
~S	1 %
q!$% % %s   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        y # 1 sw Y   y xY w)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     sh    (C 
~S	1 S
rxxA71bffa.9QRS S Ss   ABBc                      d} t        j                  t        |       5  t        j                  t        j                  ddg      t        j                  ddg             d d d        y # 1 sw Y   y xY w)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 C
rxxA/1a&1ABC C C   AA((A1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        y # 1 sw Y   y xY w)	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     sy    9C 
~S	1 

HHq!fq!fq!f-.1a&1a&1a&9Q0R	

 
 
s   AA66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        y # 1 sw Y   y xY w)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     so    -C 
~S	1 W
rxx!Q!Q(89288aVaQRVDT;UVW W Ws   A	A00A9c                      d} t        j                  t        |       5  t        j                  t        j                  ddg      t        j                  g d      d       d d d        y # 1 sw Y   y xY w)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     sZ    C
 
~S	1 S
rxxA/)1D'RS S Ss   AA**A3c                      d} t        j                  t        |       5  t        j                  t        j                  g d      t        j                  g d             d d d        y # 1 sw Y   y xY w)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     sV    !C 
~S	1 [
rxx(:;RXXFX=YZ[ [ [r   c                  8   t        j                  t        d      t        d      g      } t        j                  t        d      t        d      g      }d}t        j                  t
        |      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)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     sx    
)L)9\+BCDA
)L)9\+BCDA?C 
~S	1 %
q!$% % %s   0BBc                      d} t        j                  t        |       5  t        j                  ddgg d       d d d        y # 1 sw Y   y xY w)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     sB    C 
~S	1 2
1vy12 2 2   AAc                      d} t        j                  t        |       5  t        j                  ddgddg       d d d        y # 1 sw Y   y xY w)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     sF    C 
~S	1 /
1v1v./ / /r   rZ   r   rn   d)2   F   Z         r   r   r   rh   r         	   )f1f2z7ignore:elementwise comparison failed:DeprecationWarningc                     t        | |       y 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      s|      +&*-& 		!h	C#	1q	$	$ 		!(( 	>>
  QR3 S3 	
/
/ !57K LM3 N3 MM 	Q	Q Azrzz!}3E WX$ Y$ V 45( 6( a!X68} EF( G( D E4
8B 	q	+,q	34
q1
q5
qA3	(	( A'6 (6$, 	O^Z%!F(( 	Y	"XRXXi%8("((9:M$NO$$ 	 
)	i(	)	hbhh78	i)$	I	L!	A
##* $RVVQK HI# J# 			u	266266BFF7+	,hbhh7P.QR$$ 	BFFC}r}}U3^R^^E5JK &$'# ( '#L- 		Sz	E3/23	c
	VS(O45	3/	"HBHHc3Z$89	C#s$	%y#X1G'HI	$$$% bhhsmQ	5)Axrxx}eY+OP%	%SC

WS	[%2/ 
!6	"RXXtSk0("((C:V2TUq	
 	("((<(("((B8*<=VL("((<(("((B8*<=VL 	("((B8,hbhhtn=VL("((B8,-V< 	
 	("((B8,hbhhtn=VL("((B8,-V< 	
$ 	,R)8,R)8 	("((9%xrxxA'78G)aV$F3
 	("((9-xrxxA/?@ORXXqc]HBHHaV$4hbhhsmDF 	
 	9q!f%aVaS'9:&I 	&$v.D#;c
+T2&A 	("((C:V"DEFfU("((C:V"DEFfU
 	("((C:V"DEFfU3*-.f= 	XRXXsCj%GHIQW 6*	 	
 	!C:./4FCyHV UV-$ . W$r   