
    MhA                     J   S SK rS SKrS SKJrJrJrJrJrJ	r	  S SK
Jr  S rS rS r\R                   R#                  SSS\R$                  " S	5      S
4\R&                  " S5      S4\R(                  " S5      S4/5      S 5       r\R                   R#                  SSSSS\R$                  " S	5      4SS/5      S 5       r\R                   R#                  S/ SQ5      S 5       r\R                   R#                  S/ SQ5      S 5       r\R                   R#                  S/ SQ5      S 5       r\R                   R#                  SSS/5      S 5       r\R                   R#                  S/ SQ5      S  5       r\R                   R#                  S/ S!Q5      S" 5       r\R                   R#                  SS#S$S \R&                  " S 5      4S%/5      S& 5       r\R                   R#                  SS'S(/5      S) 5       r\R                   R#                  SS*S	S	/4S	\" 5       4/5      S+ 5       r \R                   R#                  S,/ S-Q5      \R                   R#                  S./ S-Q5      S/ 5       5       r!S0 r"S1 r#S2 r$\R                   R#                  SS	S3S4.S	S5S4.4S	S3S4.S	S3S5S6.4S7S	0S	4S7S	0S84S7S	0S	/4/5      S9 5       r%\R                   R#                  S:S	S3/5      S; 5       r&S< r'\R                   R#                  SS=S>S?S8S	/4/5      S@ 5       r(\R                   R#                  S/ SAQ/ SAQ4\RR                  " / SAQ5      \RR                  " / SAQ5      4/5      SB 5       r*\R                   R#                  S\RR                  " / SAQ5      / SAQ4\RR                  " / SAQ5      \RR                  " / SCQ5      4\+" / SAQ5      / SAQ4/ SAQ/ SDQ4/ SAQ/ SEQ4/ SAQS	4/5      SF 5       r,SG r-\R                   R#                  SS\R\                  4SH\R\                  S 4/5      SI 5       r/\R                   R#                  S\R`                  \R`                  4\R`                  \1" SJ5      4\RR                  " \R`                  \R\                  \R`                  * /5      \RR                  " \R`                  \R\                  \R`                  * /5      4/5      SK 5       r2\\R\                  \S\Rf                  " SL5      \Rh                  " SL5      /r5\R                   R#                  SM\55      \R                   R#                  SN\55      SO 5       5       r6SP r7\R                   R#                  S\" SQS/5      \" SQSR/5      4\" SQS/5      \" SQSR/5      4\RR                  " SSS/5      \RR                  " SST/5      4\" S7SQS/05      \" S7SQSR/05      4/5      SU 5       r8SV r9SW r:\R                   R#                  SX\RR                  " S	/5      S	SYSZ4S	\RR                  " S	/5      SZSY4/5      S[ 5       r;S\ r<S] r=S^ r>S_ r?S` r@Sa rASb rBSc rCSd rD\R                  " S3\Se9rF\RR                  " SSf/\Se9\RR                  " SgSh/\Se9/\FSS& \RR                  " \RR                  " / SiQ5      \RR                  " SjSk/5      /\Se9\RR                  " \RR                  " / SiQ5      \RR                  " SjSk/5      /\Se94\RR                  " \RR                  " \RR                  " SlSm/5      \RR                  " Sn/5      /\Se9\RR                  " \RR                  " SjSk/5      /\Se9/\Se9\RR                  " \RR                  " \RR                  " SlSm/5      \RR                  " Sn/5      /\Se9\RR                  " \RR                  " SjSk/5      /\Se9/\Se94\RR                  " / SiQSjSk//\Se9\RR                  " / SiQSjSk//\Se94\RR                  " \RR                  " / SAQ5      \RR                  " SoS/5      /\Se9\RR                  " / SAQSoS//\Se94\RR                  " \RR                  " \RR                  " / SAQ5      \RR                  " SoS/5      /\Se9\RR                  " \RR                  " Sp/5      \RR                  " SqSr/5      \RR                  " Ss/5      /\Se9/\Se9\RR                  " / SAQSoS//Sp/SqSr/Ss///\Se94\RR                  " \FS/\Se9\RR                  " SSf/SgSh//S/\Se94\RR                  " S	\RR                  " S7Sf/\Se9St./\Se9\RR                  " S	\RR                  " S7Sf/\Se9St./\Se94\RR                  " S	\RR                  " S7Sf/\Se9St./\Se9\RR                  " S	S7Sf/St./\Se94\RR                  " \RR                  " S	\RR                  " S7Sf/\Se9St./\Se9\RR                  " / \Se9/\Se9\RR                  " S	S7Sf/St.// /\Se94/	rG\R                   R                  Su5      \R                   R#                  S\G5      Sv 5       5       rIg)w    N)NA	DataFrameIndexNaTSeries	Timestampc                 `    [         R                  " X40 UD6  [         R                  " X40 UD6  g)a  
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/html/env/lib/python3.13/site-packages/pandas/tests/util/test_assert_almost_equal.py_assert_almost_equal_bothr      s*     1*6*1*6*    c                      [         R                  " X40 UD6  U  SU S3n[        R                  " US9  g! [         a     gf = f)z
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   "   sK    
q.v.5RS3 s   36 
AAc                 4    [        X40 UD6  [        X40 UD6  g)a  
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                     [        X5        g 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                     [        X5        g r$   r   r&   s     r   $test_assert_not_almost_equal_numbersr,   X   s     "!'r   )r   r   r   gF%u?gư>gh㈵>g     @@g/$@@&|>gTqs*>c                     [        XSSS9  g )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                     [        XSS9  g )NMbP?)r4   r+   r&   s     r   )test_assert_not_almost_equal_numbers_atolr:   y       !!T2r   )r   r   r-   r/   r6   r7   c                     [        XSS9  g Ng?r3   r%   r&   s     r   %test_assert_almost_equal_numbers_rtolr?   ~   s     a.r   r0   r.   c                     [        XSS9  g 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                     [        XUS9  [        [        R                  " U 5      [        R                  " U5      US9  [        [        R                  " U 5      [        R                  " U5      US9  g Nr>   )r   np	complex64
complex128r   r   r3   s      r   (test_assert_almost_equal_complex_numbersrI      sH     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                     [        XUS9  [        [        R                  " U 5      [        R                  " U5      US9  [        [        R                  " U 5      [        R                  " U5      US9  g rD   )r   rE   rF   rG   rH   s      r   ,test_assert_not_almost_equal_complex_numbersrK      sH     "!T2!",,q/2<<?N!"--"2BMM!4D4Pr   )r   r   )r   g        )g:0yE>r   c                     [        X5        g r$   r%   r&   s     r   +test_assert_almost_equal_numbers_with_zerosrM      s
    a#r   )r9   r   )r!   r   c                     [        X5        g r$   r+   r&   s     r   /test_assert_not_almost_equal_numbers_with_zerosrO      
    !!'r   )r!   abcc                     [        X5        g 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                 f    [        [        R                  " / U S9[        R                  " / US9SS9  g )NdtypeFcheck_dtype)r   rE   array)rT   rX   s     r   +test_assert_almost_equal_edge_case_ndarraysr_      s+     
:&
;'r   c                  $    [        1 Sk1 Sk5        g )N   r!   r(      r%    r   r   test_assert_almost_equal_setsrd      s    i3r   c                      Sn [         R                  " [        U S9   [        1 Sk1 Sk5        S S S 5        g ! , (       d  f       g = f)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!)Y7 
2	1	1s	   6
Ac                  (    [        SSS.SSS.5        g )Nr!   r(   r&   r%   rc   r   r   test_assert_almost_equal_dictsrm      s    AA.aa0@Ar   r(   r&   rb   )r   r   cr   rQ   c                     [        X5        g r$   r+   r&   s     r   "test_assert_not_almost_equal_dictsrp      s     "!'r   valc                 h   ^ SmSU 0n " U4S jS5      nU T:X  a  [         O[        nU" X" 5       SS9  g )Nr!   r   c                   (   > \ rS rSrS rU 4S jrSrg)>test_assert_almost_equal_dict_like_object.<locals>.DictLikeObj   c                     g)N)r   rc   )selfs    r   keysCtest_assert_almost_equal_dict_like_object.<locals>.DictLikeObj.keys   s    r   c                    > US:X  a  T$ g )Nr   rc   )rw   itemdict_vals     r   __getitem__Jtest_assert_almost_equal_dict_like_object.<locals>.DictLikeObj.__getitem__   s    s{ r   rc   N)__name__
__module____qualname____firstlineno__rx   r}   __static_attributes__)r|   s   r   DictLikeObjrt      s    		  	 r   r   Fr\   )r   r   )rq   	real_dictr   funcr|   s       @r   )test_assert_almost_equal_dict_like_objectr      s?    Hc
I    &)H_!:W 	 	KMu5r   c                      [        SS5        g )NrQ   r%   rc   r   r    test_assert_almost_equal_stringsr      s    eU+r   )rQ   abcd)rQ   abd)rQ   r!   c                     [        X5        g r$   r+   r&   s     r   $test_assert_not_almost_equal_stringsr     s     "!'r   )r!   r(   rb   c                     [        X5        g r$   r%   r&   s     r   "test_assert_almost_equal_iterablesr     s     a#r   )      ?       @g      @)r!   r(   rh   )r!   r(   rb   rh   c                     [        X5        g r$   r   r&   s     r   &test_assert_not_almost_equal_iterablesr     s     Q"r   c                      [        S S 5        g r$   r%   rc   r   r   test_assert_almost_equal_nullr   $  s    dD)r   Nr   c                     [        X5        g r$   r   r&   s     r   !test_assert_not_almost_equal_nullr   (  s
    Q"r   infc                     [        X5        g r$   r%   r&   s     r   test_assert_almost_equal_infr   -  s     a#r   r   leftrightc           	         [         R                  " U /[        S9n[         R                  " U/[        S9nSnXL a  [        XSS9  [        R
                  " X#5        [        R                  " [        U[        S9[        U[        S95        [        R                  " [        U[        S9[        U[        S95        [        R                  " [        U[        S9[        U[        S95        g [        R                  " [        US9   [        XSS9  S S S 5        [        R                  " [        US9   [        R                  " [        U[        S9[        U[        S95        S S S 5        [        R                  " [        US9   [        R                  " [        U[        S9[        U[        S95        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       g = f)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   <  sf    xxf-H%/I
'C}!$5A
##H8
(&)5&+I	
 	86*F9F,K	
 	hf-y&/Q	

 ''SA%duE B ''SA""xv.y0O B ''SA!!(&19Yf3U BA BA BA BAs$   F8.0G	?0G8
G	
G
G(c                  8    [        [        R                  S5        g r   )r   rE   r   rc   r   r    test_assert_not_almost_equal_infr   d  s    !"&&!,r   r   r    g7   @r   c                     [        X5        g r$   r%   r&   s     r   test_assert_almost_equal_pandasr   h  s     a#r   c                  r    [        S5      [        S5      /n [        S5      [        S5      /n[        X5        g )N
2011-01-01)r   r   r&   s     r   test_assert_almost_equal_objectr   u  s2    	<	 )L"9:A	<	 )L"9:Aa#r   c                      Sn [         R                  " [        U S9   [        R                  " SS5        S S S 5        g ! , (       d  f       g = f)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   {  s1    
MC	~S	1
q!$ 
2	1	1s	   =
Aza,b,klass1,klass2ndarrayintc                     SU SU 3n[         R                  " [        US9   [        R                  " X5        S S S 5        g ! , (       d  f       g = f)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     sI    
 X X	C 
~S	1
q$ 
2	1	1s   A
Ac            	      0   Sn [         R                  " [        U S9   [        R                  " [
        R                  " [
        R                  SS/5      [
        R                  " S[
        R                  S/5      5        S S S 5        g ! , (       d  f       g = f)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
rxxA71bffa.9QR 
2	1	1s   A"B
Bc                      Sn [         R                  " [        U S9   [        R                  " [
        R                  " SS/5      [
        R                  " SS/5      5        S S S 5        g ! , (       d  f       g = f)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     sO    C 
~S	1
rxxA/1a&1AB 
2	1	1   AA))
A7c            
         Sn [         R                  " [        U S9   [        R                  " [
        R                  " SS/SS/SS//5      [
        R                  " SS/SS/SS//5      5        S S S 5        g ! , (       d  f       g = f)	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     sp    9C 
~S	1
HHq!fq!fq!f-.1a&1a&1a&9Q0R	
 
2	1	1s   AA77
Bc            	         Sn [         R                  " [        U S9   [        R                  " [
        R                  " SS/SS//5      [
        R                  " SS/SS//5      5        S S S 5        g ! , (       d  f       g = f)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     sb    -C 
~S	1
rxx!Q!Q(89288aVaQRVDT;UV 
2	1	1s   AA11
A?c                      Sn [         R                  " [        U S9   [        R                  " [
        R                  " SS/5      [
        R                  " / SQ5      SS9  S S S 5        g ! , (       d  f       g = f)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     sM    C
 
~S	1
rxxA/)1D'R 
2	1	1s   AA((
A6c                      Sn [         R                  " [        U S9   [        R                  " [
        R                  " / SQ5      [
        R                  " / SQ5      5        S S S 5        g ! , (       d  f       g = f)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     sI    !C 
~S	1
rxx(:;RXXFX=YZ 
2	1	1r   c                  B   [         R                  " [        S5      [        S5      /5      n [         R                  " [        S5      [        S5      /5      nSn[        R                  " [
        US9   [        R                  " X5        S S S 5        g ! , (       d  f       g = f)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     sm    
)L)9\+BCDA
)L)9\+BCDA?C 
~S	1
q$ 
2	1	1s   0B
Bc                      Sn [         R                  " [        U S9   [        R                  " SS// SQ5        S S S 5        g ! , (       d  f       g = f)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     s9    C 
~S	1
1vy1 
2	1	1   A
Ac                      Sn [         R                  " [        U S9   [        R                  " SS/SS/5        S S S 5        g ! , (       d  f       g = f)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
1v1v. 
2	1	1r   rZ   r   rn   d)2   F   Z         r   r   r   rh   r         	   )f1f2z7ignore:elementwise comparison failed:DeprecationWarningc                     [        X5        g 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 Arzz!}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	"RXXi%8"((9:M$NO$$ 	 
)	i(	)	bhh78	i)$	I	L!	A
##* $RVVQK HI# J# 			u	266266BFF7+	,bhh7P.QR$$ 	BFFCr}}U3R^^E5JK &$'# ( '#L- 		Sz	E3/23	c
	VS(O45	3/	"BHHc3Z$89	C#s$	%y#X1G'HI	$$$% hhsmQ	5)Arxx}eY+OP%	%SC

WS	[%2/ 
!6	"XXtSk0"((C:V2TUq	
 	"((<("((B8*<=VL
"((<("((B8*<=VL 	"((B8,bhhtn=VL"((B8,-V< 	
 	"((B8,bhhtn=VL"((B8,-V< 	
$ 	,R)8
,R)8 	"((9%rxxA'78G
)aV$F3
 	"((9-rxxA/?@OXXqc]BHHaV$4bhh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= 	RXXsCj%GHIQW 6*	 	
 	!C:./4FCyHV UV-$ . W$r   