
    bMhs'                     \    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   )r
   r
   zperiods must be an integer)matchg      ?)	r   nprandomdefault_rngstandard_normalpytestraises
ValueErrordiffselfdfs     d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/methods/test_diff.pytest_diff_requires_integerz,TestDataFrameDiff.test_diff_requires_integer   s    ry,,Q//??GGHH]:-IJJJ 	 	GGCLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A>>BB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)r5   r3   r4   )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   r2   r
   ztimedelta64[ns]NaTnsr   r   r6   r   r   )r   arangereshaper.   timedelta64r   r   pdr?   	Timedeltar   assert_equalisnaallr9   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)rN   r   )days)rF   DatetimeIndexas_unitr   to_framer   TimedeltaIndexr?   rG   r   r:   )	r   rN   unit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RRSWXXSkk\\^^$bfbfbl6J6J6J%KLLTT
 
 (##,,..
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   )periodsrN   r   r   r6   )r   r   rT   copyrF   r?   ilocrI   rJ   r   r   r:   )r   rN   rW   r)   r   r"   r;   s          r   (test_diff_datetime_with_nat_zero_periodsz:TestDataFrameDiff.test_diff_datetime_with_nat_zero_periodsW   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
   freqr]   rN   rA   r   r6   r?   z1 daysr   r   r   rF   rU   r   r:   r   rN   r   r;   r"   s        r   test_diff_datetime_axis0z*TestDataFrameDiff.test_diff_datetime_axis0k   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 )
Nrb   rc   r
   rd   rA   r   r6   r?   z0 daysrf   rg   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                    t          t          d          t          d          gddgd          }|d         j                            |          |d<   |                                }t          t
          j        t          j        gt          j	        d          dggdd	g
          }|d         j                            |          |d<   t          j        ||           d S )Nz20130101 9:01z20130101 9:02      ?       @)timevaluern   z00:01:00r   ro   )columns)r   r   dtrS   r   rF   r?   r   r9   rG   r   r:   )r   rV   r   resexps        r   test_diff_timedeltaz%TestDataFrameDiff.test_diff_timedelta   s    "?33Y5O5OPs 
 
 Z]**4006
ggiifbfZ 8 8!<=PWGX
 
 
 &kn,,T22F
c3'''''r$   c                 &   t          t          j                            d                              d                    }t          j        g dt                    |d<   |                                }|d         j        t          j	        k    sJ d S )Nr
   )   r2   )r   r
   r2   r\   rv   dtyper   r   )
r   r   r   r   r   arrayobjectr   rx   float64)r   r   r;   s      r   test_diff_mixed_dtypez'TestDataFrameDiff.test_diff_mixed_dtype   su    ry,,Q//??GGHH(???&9993ay"*,,,,,,r$   c                     |                     d          }||                    d          z
  }t          j        ||           d S )NrB   )r   r   r   r:   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 )Nrl   r   )r   r   r:   r~   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 )Nrl   rm   g      @g      @r   r6   r   )r   r   r:   r   r   r9   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 )Nr[   r2   )r]   rc   r   r   r6   )
r   	to_periodr   r   rF   r?   r.   rz   r   r:   )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 )Nr2   r
   rw   r   Br   r   r6   r-   r{   )r'   r(   r'   r(   r   	r   ranger   rC   r{   r9   r   r   r:   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 )Nr2   r
   rw   r   r   r7   r]   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 )Nr2   r
   rw   r         r   r   r   rB   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]rw   rl   r   floatg        )r   r   r   r9   rF   SparseDtyper   r:   )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      r2   rv      	            r'   r(   cdInt64rw   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   rw   r6   )	r   r   repeatr9   tilerC   r   r   r:   )r   r7   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                 X   t           j                            d                              d          }d|j        _        t          |          }|                                }t          t          j        |                                                    }t          j
        ||           d S )Nr
   )rv   r
   F)r   r   r   r   flags	writeabler   r   ry   r   r:   rK   s        r   test_diff_readonlyz$TestDataFrameDiff.test_diff_readonly"  s    i##A&&66v>>#	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 )Nrv   )int8int16r-   r{   rl   rw   )r   r   r.   r   r   r9   r   r:   )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+   r0   r<   rM   rY   r`   rh   rj   rt   r|   r   r   r   r   r   r   r   r   r   r9   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   pandasrF   r   r   r   r   pandas._testing_testingr   r   r   r$   r   <module>r      s                             f0 f0 f0 f0 f0 f0 f0 f0 f0 f0r$   