o
    %jA                     @   s  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d Zdd Zdd Zejd	d
deddfeddfeddfgdd Zejd	ddddedfddgdd Zejd	g ddd Zejd	g ddd Zejd	g d d!d" Zejd	d#d$gd%d& Zejd'g d(d)d* Zejd'g d+d,d- Zejd	d.d/d ed fd0gd1d2 Zejd	d3d4gd5d6 Zejd	d7ddgfde fgd8d9 Z ejd:g d;ejd<g d;d=d> Z!d?d@ Z"dAdB Z#dCdD Z$ejd	ddEdFddGdFfddEdFddEdGdHfdIdidfdIdidJfdIdidgfgdKdL Z%ejdMddEgdNdO Z&dPdQ Z'ejd	dRdSdTdJdgfgdUdV Z(ejd	g dWg dWfe)g dWe)g dWfgdXdY Z*ejd	e)g dWg dWfe)g dWe)g dZfe+g dWg dWfg dWg d[fg dWg d\fg dWdfgd]d^ Z,d_d` Z-ejd	dej.fdaej.d fgdbdc Z/ejd	ej0ej0fej0e1ddfe)ej0ej.ej0 ge)ej0ej.ej0 gfgdedf Z2eej.ede3dge4dggZ5ejdhe5ejdie5djdk Z6dldm Z7ejd	edndgedndogfedndgedndogfe)ddpge)ddqgfedIdndgiedIdndogifgdrds Z8dtdu Z9dvdw Z:ejdxe)dgddydzfde)dgdzdyfgd{d| Z;d}d~ Z<dd Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDejEdEedZFej)ddgedej)ddgedgeFdd< ej)e)g de)ddggedej)e)g de)ddggedfej)ej)e)ddge)dggedej)e)ddggedgedej)ej)e)ddge)dggedej)e)ddggedgedfej)g dddggedej)g dddggedfej)e)g dWe)ddggedej)g dWddggedfej)ej)e)g dWe)ddggedej)e)dge)ddge)dggedgedej)g dWddggdgddgdgggedfej)eFdgedej)ddgddggdgedfej)dej)dIdgeddgedej)dej)dIdgeddgedfej)dej)dIdgeddgedej)ddIdgdgedfej)ej)dej)dIdgeddgedej)g edgedej)ddIdgdgg gedfg	ZGejHdejd	eGdd ZIdS )    N)NA	DataFrameIndexNaTSeries	Timestampc                 K   s,   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kwargs r   k/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/util/test_assert_almost_equal.py_assert_almost_equal_both   s   r   c                 K   sL   zt j| |fi | |  d| d}tj|d W dS  ty%   Y dS 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	   pytestZfailAssertionError)r   r   r   msgr   r   r   _assert_not_almost_equal"   s   r   c                 K   s(   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
   r   r   r   _assert_not_almost_equal_both7   s   r   za,b皙?r   r   	?   gzo ?r      c                 C      t | | d S Nr   r   r   r   r   r    test_assert_almost_equal_numbersJ      r"   )r   r   )r   T)r      gqh ?)皙?g`TR'?)g/nR?ga2U0*S?c                 C   r   r   r   r!   r   r   r   $test_assert_not_almost_equal_numbersX   s   r'   )r   r   r   gF%u?gư>gh㈵>g     @@g/$@@&|>gTqs*>c                 C   s   t | |ddd d S )NgMb@?)rtolatolr    r!   r   r   r   %test_assert_almost_equal_numbers_atolh   s   r/   )r   g(\?r%   gB`"۹?)r,   gӹP?c                 C      t | |dd d S )NMbP?)r.   r&   r!   r   r   r   )test_assert_not_almost_equal_numbers_atoly      r4   )r   r   r(   r*   r0   r1   c                 C   r2   Ng?r-   r    r!   r   r   r   %test_assert_almost_equal_numbers_rtol~   s   r8   r+   r)   c                 C   r2   r6   r&   r!   r   r   r   )test_assert_not_almost_equal_numbers_rtol   r5   r9   za,b,rtol))grZ|
 ?g9m4 ?r3   )y$@?yBD?r3   )y?/$?y?jt?r%   )y`TR'?       @y?5^I @{Gz?c                 C   F   t | ||d t t| t||d t t| t||d d S Nr7   )r   np	complex64
complex128r   r   r-   r   r   r   (test_assert_almost_equal_complex_numbers   s   
rA   ))goѨ?gYa#t?gHz>)yuV?yKￚ?r3   )y?      ?y?       @r:   )yL7A`jt?yL7A`Gz?gh㈵>)y        oѨ?y        Ya#t?g&.>c                 C   r;   r<   )r   r=   r>   r?   r@   r   r   r   ,test_assert_not_almost_equal_complex_numbers   s   rB   )r   r   )r   g        )g:0yE>r   c                 C   r   r   r    r!   r   r   r   +test_assert_almost_equal_numbers_with_zeros      rC   )r3   r   )r   r   c                 C   r   r   r&   r!   r   r   r   /test_assert_not_almost_equal_numbers_with_zeros   rD   rE   )r   abcc                 C   r   r   r&   r!   r   r   r   /test_assert_not_almost_equal_numbers_with_mixed   rD   rG   
left_dtype)zM8[ns]zm8[ns]float64Zint64objectright_dtypec                 C   s&   t tjg | dtjg |ddd d S )NZdtypeFZcheck_dtype)r   r=   array)rH   rK   r   r   r   +test_assert_almost_equal_edge_case_ndarrays   s
   
rO   c                   C   s   t h dh d d S )N   r   r$      r    r   r   r   r   test_assert_almost_equal_sets   s   rR   c                  C   sJ   d} t jt| d th dh d W d    d S 1 sw   Y  d S )Nz{1, 2, 3} != {1, 2, 4}matchrP   >   r   r$      )r   raisesr   r   r   r   r   r   !test_assert_almost_not_equal_sets   s   "rX   c                   C   s   t dddddd d S )Nr   r$   r!   r    r   r   r   r   test_assert_almost_equal_dicts   s   rY   r$   r!   rQ   )r   r   cr   rF   c                 C   r   r   r&   r!   r   r   r   "test_assert_not_almost_equal_dicts   r#   r[   valc                    sB   d d| i}G  fddd}|  krt nt}||| dd d S )Nr   r   c                       s    e Zd Zdd Z fddZdS )z>test_assert_almost_equal_dict_like_object.<locals>.DictLikeObjc                 S   s   dS )N)r   r   )selfr   r   r   keys   s   zCtest_assert_almost_equal_dict_like_object.<locals>.DictLikeObj.keysc                    s   |dkr S d S )Nr   r   )r]   itemZdict_valr   r   __getitem__   s   zJtest_assert_almost_equal_dict_like_object.<locals>.DictLikeObj.__getitem__N)__name__
__module____qualname__r^   ra   r   r`   r   r   DictLikeObj   s    re   FrM   )r   r   )r\   Z	real_dictre   funcr   r`   r   )test_assert_almost_equal_dict_like_object   s   	rg   c                   C   s   t dd d S )NrF   r    r   r   r   r    test_assert_almost_equal_strings      rh   )rF   abcd)rF   Zabd)rF   r   c                 C   r   r   r&   r!   r   r   r   $test_assert_not_almost_equal_strings     rk   )r   r$   rQ   c                 C   r   r   r    r!   r   r   r   "test_assert_almost_equal_iterables  rl   rm   )      ?       @g      @)r   r$   rU   )r   r$   rQ   rU   c                 C   r   r   r   r!   r   r   r   &test_assert_not_almost_equal_iterables  s   rp   c                   C   s   t d d  d S r   r    r   r   r   r   test_assert_almost_equal_null$  ri   rq   Nr   c                 C   r   r   r   r!   r   r   r   !test_assert_not_almost_equal_null(  rD   rs   infc                 C   r   r   r    r!   r   r   r   test_assert_almost_equal_inf-  s   	ru   r   leftrightc                 C   st  t j| gtd}t j|gtd}d}| |u rOt| |dd t|| tt|tdt|td tt	|tdt	|td t
t|tdt|td d S tjt|d t| |dd W d    n1 shw   Y  tjt|d tt	|tdt	|td W d    n1 sw   Y  tjt|d t
t|tdt|td W d    d S 1 sw   Y  d S )NrL   zMismatched null-like valuesFrM   rS   )r=   rN   rJ   r   r   Zassert_numpy_array_equalZassert_index_equalr   Zassert_series_equalr   Zassert_frame_equalr   Zassert_produces_warningFutureWarning)rv   rw   Zleft_arrZ	right_arrr   r   r   r   2test_mismatched_na_assert_almost_equal_deprecation<  s8   "ry   c                   C   s   t tjd d S rr   )r   r=   rt   r   r   r   r    test_assert_not_almost_equal_infd  s   rz   rn   r   g7   @ro   c                 C   r   r   r    r!   r   r   r   test_assert_almost_equal_pandash  s   
r{   c                  C   s.   t dt dg} t dt dg}t| | d S )N
2011-01-01)r   r   r!   r   r   r   test_assert_almost_equal_objectu  s   r}   c                  C   sD   d} t jt| d tdd W d    d S 1 sw   Y  d S )Nz?expected 2\.00000 but got 1\.00000, with rtol=1e-05, atol=1e-08rS   r   r$   r   rV   r   r   r	   rW   r   r   r   'test_assert_almost_equal_value_mismatch{  s   "r   za,b,klass1,klass2Zndarrayintc                 C   sP   d| d| }t jt|d t| | W d    d S 1 s!w   Y  d S )NzHnumpy array are different

numpy array classes are different
\[left\]:  z
\[right\]: rS   r~   )r   r   Zklass1Zklass2r   r   r   r   'test_assert_almost_equal_class_mismatch  s   "r   c               	   C   s`   d} t jt| d tttjddgtdtjdg W d    d S 1 s)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\]rS   r$   rQ   r   )r   rV   r   r   r	   r=   rN   nanrW   r   r   r   (test_assert_almost_equal_value_mismatch1  s   *"r   c                  C   sX   d} t jt| d ttddgtddg W d    d S 1 s%w   Y  d S )Nzonumpy array are different

numpy array values are different \(50\.0 %\)
\[left\]:  \[1, 2\]
\[right\]: \[1, 3\]rS   r   r$   rQ   r   rV   r   r   r	   r=   rN   rW   r   r   r   (test_assert_almost_equal_value_mismatch2  s   ""r   c               
   C   st   d} t jt| d' ttddgddgddggtddgddgddgg W d    d S 1 s3w   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\]\]rS   r   r$   rQ   rU   r      r   rW   r   r   r   (test_assert_almost_equal_value_mismatch3  s   4"r   c               	   C   sh   d} t jt| d! ttddgddggtddgddgg W d    d S 1 s-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\]\]rS   r   r$   rQ   rU   r   rW   r   r   r   (test_assert_almost_equal_value_mismatch4  s   2"r   c                  C   s\   d} t jt| d tjtddgtg ddd W d    d S 1 s'w   Y  d S )NzWIndex are different

Index shapes are different
\[left\]:  \(2L*,\)
\[right\]: \(3L*,\)rS   r   r$   rQ   rU   r   r   )objr   rW   r   r   r   0test_assert_almost_equal_shape_mismatch_override  s   &"r   c                  C   sX   d} t jt| d ttg dtg d W d    d S 1 s%w   Y  d S )Nu   numpy array are different

numpy array values are different \(33\.33333 %\)
\[left\]:  \[á, à, ä\]
\[right\]: \[á, à, å\]rS   )   á   à   ä)r   r      år   rW   r   r   r    test_assert_almost_equal_unicode  s   ""r   c                  C   sp   t tdtdg} t tdtdg}d}tjt|d t| | W d    d S 1 s1w   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\]rS   )r=   rN   r   r   rV   r   r   r	   )r   r   r   r   r   r   "test_assert_almost_equal_timestamp  s   "r   c                  C   sL   d} t jt| d tddgg d W d    d S 1 sw   Y  d S )NzOIterable are different

Iterable length are different
\[left\]:  2
\[right\]: 3rS   r   r$   r   r~   rW   r   r   r   1test_assert_almost_equal_iterable_length_mismatch     "r   c                  C   sL   d} t jt| d tddgddg W d    d S 1 sw   Y  d S )NziIterable are different

Iterable values are different \(50\.0 %\)
\[left\]:  \[1, 2\]
\[right\]: \[1, 3\]rS   r   r$   rQ   r~   rW   r   r   r   1test_assert_almost_equal_iterable_values_mismatch  r   r   rL   r   rZ   d)2   F   Z         r   r   r   rU   r         	   )f1f2z7ignore:elementwise comparison failed:DeprecationWarningc                 C   r   r   r    r!   r   r   r   %test_assert_almost_equal_array_nestedG  s   r   )Jnumpyr=   r   Zpandasr   r   r   r   r   r   Zpandas._testingZ_testingr   r   r   r   markZparametrizeZint16rI   Zuint32r"   r'   r/   r4   r8   r9   rA   rB   rC   rE   rJ   rG   rO   rR   rX   rY   r[   rg   rh   rk   rN   rm   iterrp   rq   r   rs   rt   floatru   Z
datetime64Ztimedelta64Zobjsry   rz   r{   r}   r   r   r   r   r   r   r   r   r   r   r   emptyZsubarrZNESTED_CASESfilterwarningsr   r   r   r   r   <module>   s    







	




	





,




.
&
	&

,$$""$$$*	"""	
K