
    dy&                     \    d dl Zd dlZd dlZd dlmZmZmZmZ d dl	m
Z  G d d          ZdS )    N)	DataFrameSeries	Timestamp
date_rangec                      e Zd Zd Zej                            dd ej        d          g          d             Z	d Z
d Zd Zd Zej                            d	d
dg          d             Zej                            d	d
dg          d             Zej                            d	d
dg          d             Zej                            d	d
dg          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                            dd eej        dddej        ej        ej        dgej        dej        ej        ddej        ej        g ej        ej        d          ej        ddd d!d"d#d$gd%d&'          fd e ej        ej        d          ddej        dej        ej        ej        dg ej        ej        d           ej        ej        d          d%d&'          fg          d(             Zd) Z d* Z!d
S )+TestDataFrameDiffc                     t          t          j                            dd                    }t	          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )N   zperiods must be an integer)matchg      ?)r   nprandomrandnpytestraises
ValueErrordiffselfdfs     `/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/methods/test_diff.pytest_diff_requires_integerz,TestDataFrameDiff.test_diff_requires_integer   s    ryq!,,--]:-IJJJ 	 	GGCLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	A,,A03A0num   c                     |}|                     |          }|d         |d                             |          z
  }t          j        |d         |           d S )NA)r   shifttmassert_series_equal)r   datetime_framer   r   the_diffexpecteds         r   	test_diffzTestDataFrameDiff.test_diff   sQ    773<<c7RW]]3///
x}h77777    c                     d}|dz   }t          ||g          }t          d|i                                          }|j        d         dk    sJ d S )Nl     _r   s)r   r   r   r%   )r   abserrss        r   test_diff_int_dtypez%TestDataFrameDiff.test_diff_int_dtype   sS    "EaVnnSz""''))tAw!||||||r#   c                     |                     d          }|                    d          }t          j        |d         |d         |d                             d          z
             d S )Nfloat32r   r   )astyper   r   r   r   )r   r   tfr    s       r   test_diff_mixed_numericz)TestDataFrameDiff.test_diff_mixed_numeric&   sZ    ""9--771::
x}bg3a8H8H.HIIIIIr#   c                 T   t          t          dg          t          dg          d          }|                    ddd           |                    d          }t          t          j        t          d          t          d          d          }t          j        ||           d S )	Nr
      )yzr   xr   axis)r4   r2   r3   )r   r   insertr   r   nanr   assert_frame_equal)r   r   resultr!   s       r   test_diff_axis1_nonconsolidatedz1TestDataFrameDiff.test_diff_axis1_nonconsolidated,   s    VQC[[vqc{{;;<<
		!S!a26q		q		JJKK
fh/////r#   c                    t          j        d                              dd                              d          }t          j        dd          |d d df<   t          |          }|                    dd	          }t          |d         t          j        t          j	        d          t          j	        d          gd
          }t          j        ||           |                    d          }||z
  }|d                                                                         sJ t          j        ||           |                    dd	          }|t           j        z  }t          j        ||           d S )N   r1   r
   ztimedelta64[ns]NaTnsr   r   r5   r   r   )r   arangereshaper-   timedelta64r   r   pdr>   	Timedeltar   assert_equalisnaallr8   r   arrr   r:   r!   s        r   test_diff_timedelta64_with_natz0TestDataFrameDiff.test_diff_timedelta64_with_nat4   s:   ill""1a((//0ABBN5$//AAAqD	s^^##ABFBLOOR\RS__+UVVWW
)))7{!!%%'''''
)))!$$;
)))))r#   tzNUTCc                    t          j        g d|          }t          |          }|                                }|                                }t          j        t           j        t           j        t          j        d          g          }t          |                                          }t          j	        ||           d S )N)r>   z
2019-01-01z
2019-01-02)rM   r   )days)
rE   DatetimeIndexr   to_framer   TimedeltaIndexr>   rF   r   r9   )r   rM   dtir(   r   r:   ex_indexr!   s           r   !test_diff_datetime_axis0_with_natz3TestDataFrameDiff.test_diff_datetime_axis0_with_natH   s     BBBrJJJSkk\\^^$bfbfbl6J6J6J%KLL(##,,..
fh/////r#   c                    t          dd|          }t          |          }|                                }|                                |d<   t          j        |j        d d df<   ||z
  }|d                                                                         sJ |	                    dd          }t          j        ||           |	                    dd          }t          j        ||           d S )N
2016-01-01   )periodsrM   r   r   r5   )r   r   rR   copyrE   r>   ilocrH   rI   r   r   r9   )r   rM   rT   r(   r   r!   r:   s          r   (test_diff_datetime_with_nat_zero_periodsz:TestDataFrameDiff.test_diff_datetime_with_nat_zero_periodsU   s     qR888Skk\\^^

117{!!%%'''''##
fh///##
fh/////r#   c           	      8   t          t          ddd|          t          ddd|          d          }|                    d          }t          t          j        dd	g          t          j        dd	g          d          }t          j        ||           d S )
N2010Dr
   freqrZ   rM   r@   r   r5   r>   z1 daysr   r   r   rE   rS   r   r9   r   rM   r   r:   r!   s        r   test_diff_datetime_axis0z*TestDataFrameDiff.test_diff_datetime_axis0i   s     f3bAAAf3bAAA 
 
 a$eX%677$eX%677 
 
 	fh/////r#   c           	      8   t          t          ddd|          t          ddd|          d          }|                    d          }t          t          j        ddg          t          j        d	d	g          d          }t          j        ||           d S )
Nr_   r`   r
   ra   r@   r   r5   r>   z0 daysrc   rd   s        r   test_diff_datetime_axis1z*TestDataFrameDiff.test_diff_datetime_axis1|   s     f3bAAAf3bAAA 
 
 a$eU^44$h%9:: 
 
 	fh/////r#   c                 6   t          t          d          t          d          gddgd          }|                                }t          t          j        t
          j        gt          j        d          dggdd	g
          }t          j	        ||           d S )Nz20130101 9:01z20130101 9:02      ?       @)timevaluez00:01:00r   rk   rl   )columns)
r   r   r   rE   r>   r   r8   rF   r   r9   )r   r   resexps       r   test_diff_timedeltaz%TestDataFrameDiff.test_diff_timedelta   s    "?33Y5O5OPs 
 
 ggiifbfZ 8 8!<=PWGX
 
 
 	c3'''''r#   c                    t          t          j                            dd                    }t          j        g dt
                    |d<   |                                }|d         j        t          j        k    sJ d S )N   r1   )r   r
   r1   rY   rr   dtyper   r   )	r   r   r   r   arrayobjectr   rt   float64)r   r   r:   s      r   test_diff_mixed_dtypez'TestDataFrameDiff.test_diff_mixed_dtype   sg    ryq!,,--(???&9993ay"*,,,,,,r#   c                     |                     d          }||                    d          z
  }t          j        ||           d S )NrA   )r   r   r   r9   r   r   r)   xps       r   test_diff_neg_nz!TestDataFrameDiff.test_diff_neg_n   sF      $$n222666
b"%%%%%r#   c                     |                     d          }|                     d          }t          j        ||           d S )Nri   r   )r   r   r9   rz   s       r   test_diff_float_nz#TestDataFrameDiff.test_diff_float_n   sA      %%  ##
b"%%%%%r#   c                 p   t          ddgddgg          }t          j        |                    d          t          t          j        dgt          j        dgg                     t          j        |                    d          t          t          j        t          j        gddgg                     d S )Nri   rj   g      @g      @r   r5   r   )r   r   r9   r   r   r8   r   s     r   test_diff_axisz TestDataFrameDiff.test_diff_axis   s    c
S#J/00
GGGOOY}'EFF	
 	
 	
 	GGGOOY(83*'EFF	
 	
 	
 	
 	
r#   c                    t          dd                              d          }t          d|i          }|                    dd          }|t          j        z
                      t                    }t          j	        ||           d S )NrX   r1   )rZ   r`   r   r   r5   )
r   	to_periodr   r   rE   r>   r-   rv   r   r9   )r   pir   r:   r!   s        r   test_diff_periodz"TestDataFrameDiff.test_diff_period   sz    a000::3??Ry!!##K''//
fh/////r#   c                 z   t          t          d          dt          j        dt          j                  z  d          }t          t          j        t          j        t          j        g|d         dz  d          }|                    d          }t          j        ||           t          t          j        dd          t          j        dd	          d
          }|                    d          }t          |d         t          j        z  |d         dz  d
          }t          j        ||           d S )Nr1   r
   rs   r   Br   r   r5   r,   rw   )r&   r'   r&   r'   r   	r   ranger   rB   rw   r8   r   r   r9   r   r   r!   r:   s       r   test_diff_axis1_mixed_dtypesz.TestDataFrameDiff.test_diff_axis1_mixed_dtypes   s   U1XXA	!2:0N0N0N,NOOPPBFBFBF#;"S'A+NNOOa
fh/// )AY///bi6S6S6STT
 
 a2c7RV#3"S'A+FFGG
fh/////r#   c                     t          t          d          dt          j        dt          j                  z  d          }|t          j        z  }|                    dd          }t          j        ||           d S )Nr1   r
   rs   r   r   r6   rZ   r   r   s       r   *test_diff_axis1_mixed_dtypes_large_periodsz<TestDataFrameDiff.test_diff_axis1_mixed_dtypes_large_periods   sl    U1XXA	!2:0N0N0N,NOOPP;a++
fh/////r#   c                 :   t          t          d          dt          j        dt          j                  z  d          }t          d|d         z  |d         t          j        z  d          }|                    dd	
          }t          j        ||           d S )Nr1   r
   rs   r         r   r   r   rA   r   r   r   s       r   -test_diff_axis1_mixed_dtypes_negative_periodsz?TestDataFrameDiff.test_diff_axis1_mixed_dtypes_negative_periods   s    U1XXA	!2:0N0N0N,NOOPP4"S'>3"&8HIIJJa,,
fh/////r#   c                    t          ddgddggd          }|                                }t          t          j        t          j        gddggt	          j        dd                    }t          j        ||           d S )	Nr   r   zSparse[int]rs   ri   r   floatg        )r   r   r   r8   rE   SparseDtyper   r9   )r   	sparse_dfr:   r!   s       r   test_diff_sparsez"TestDataFrameDiff.test_diff_sparse   s    1v1v.mDDD	!!fbfT{+2>'33O3O
 
 
 	fh/////r#   zaxis,expectedr      r1   rr      	            r&   r'   cdInt64rs   c           	      r   t          t          j        ddt          j        dgd          t          j        ddt          j        dgd          t          j        t          j        d          t          j        dd          dz  dd          }|                    |	          }t          j        ||           d S )
Nr   r   r
   r   r   r   r   rs   r5   )	r   r   repeatr8   tilerB   r   r   r9   )r   r6   r!   r   r:   s        r   test_diff_integer_naz&TestDataFrameDiff.test_diff_integer_na   s    > Y1bfa0!44WaBFA.22Yrvq))Yq!__)	  
 
 
 d##
fh/////r#   c                 4   t           j                            dd          }d|j        _        t          |          }|                                }t          t          j        |                                                    }t          j	        ||           d S )Nrr   r
   F)
r   r   r   flags	writeabler   r   ru   r   r9   rJ   s        r   test_diff_readonlyz$TestDataFrameDiff.test_diff_readonly  ss    iooa###	s^^RXb\\**//11
fh/////r#   c                 
   t          t          d                    }|                    |          }|                                }|dv rdnd}t          t          j        ddddg|          }t          j        ||           d S )Nrr   )int8int16r,   rw   ri   rs   )r   r   r-   r   r   r8   r   r9   )r   any_int_numpy_dtyper   r:   expected_dtyper!   s         r   test_diff_all_int_dtypez)TestDataFrameDiff.test_diff_all_int_dtype'  s    uQxx  YY*++,0AAAIIy 	 bfc3S9PPP
fh/////r#   )"__name__
__module____qualname__r   r   markparametrizer   int64r"   r*   r/   r;   rL   rV   r]   re   rg   rp   rx   r|   r~   r   r   r   r   r   r   r   r8   r   r   r   r    r#   r   r   r      se          [UQ$4558 8 658  J J J0 0 0* * *( [TD%=11
0 
0 21
0 [TD%=110 0 210& [TD%=110 0 210$ [TD%=110 0 210$( ( (- - -& & &
& & &

 
 
0 0 00 0 0"0 0 00 0 0	0 	0 	0 [ 	 faArvrvrvqI faQO&RYrvq11 faAq"b"=	  "   	&RYrvq11BFArvrvrvqI&RYrvq11&RYrvq11	  "  	
 :0 0; :0 0 0 0	0 	0 	0 	0 	0r#   r   )numpyr   r   pandasrE   r   r   r   r   pandas._testing_testingr   r   r   r#   r   <module>r      s                             b0 b0 b0 b0 b0 b0 b0 b0 b0 b0r#   