
    Mhs'                     T    S SK rS SKrS SKrS SKJrJrJrJr  S SK	J
r   " S S5      rg)    N)	DataFrameSeries	Timestamp
date_rangec                      \ rS rSrS r\R                  R                  SS\R                  " S5      /5      S 5       r
S rS rS rS	 r\R                  R                  S
SS/5      S 5       r\R                  R                  S
SS/5      S 5       r\R                  R                  S
SS/5      S 5       r\R                  R                  S
SS/5      S 5       rS rS rS rS rS rS rS rS rS rS r\R                  R                  SS\" \R<                  SSS\R<                  \R<                  \R<                  S/\R<                  S\R<                  \R<                  SS\R<                  \R<                  /\R>                  " \R<                  S5      \R<                  SS S!S"S#S$S%/S&.S'S(94S\" \R>                  " \R<                  S5      SS\R<                  S\R<                  \R<                  \R<                  S/\R>                  " \R<                  S5      \R>                  " \R<                  S5      S&.S'S(94/5      S) 5       r S* r!S+ r"S,r#g)-TestDataFrameDiff   c                     [        [        R                  R                  S5      R	                  S5      5      n[
        R                  " [        SS9   UR                  S5        S S S 5        g ! , (       d  f       g = f)N   )r   r   zperiods must be an integer)matchg      ?)	r   nprandomdefault_rngstandard_normalpytestraises
ValueErrordiffselfdfs     V/var/www/html/env/lib/python3.13/site-packages/pandas/tests/frame/methods/test_diff.pytest_diff_requires_integer,TestDataFrameDiff.test_diff_requires_integer   sM    ryy,,Q/??GH]]:-IJGGCL KJJs   A,,
A:num   c                     UnUR                  U5      nUS   US   R                  U5      -
  n[        R                  " US   U5        g )NA)r   shifttmassert_series_equal)r   datetime_framer   r   the_diffexpecteds         r   	test_diffTestDataFrameDiff.test_diff   sC    773<c7RW]]3//
x}h7    c                     SnUS-   n[        X/5      n[        SU05      R                  5       nUR                  S   S:X  d   eg )Nl     _r   s)r   r   r   r)   )r   abserrss        r   test_diff_int_dtype%TestDataFrameDiff.test_diff_int_dtype   sF    "EaVnSz"'')ttAw!||r'   c                     UR                  S5      nUR                  S5      n[        R                  " US   US   US   R	                  S5      -
  5        g )Nfloat32r   r   )astyper   r    r!   r   )r   r"   tfr#   s       r   test_diff_mixed_numeric)TestDataFrameDiff.test_diff_mixed_numeric&   sI    ""9-771:
x}bg3a8H.HIr'   c                    [        [        S/5      [        S/5      S.5      nUR                  SSS5        UR                  SS9n[        [        R
                  [        S5      [        S5      S.5      n[        R                  " X#5        g )	Nr      )yzr   xr   axis)r:   r8   r9   )r   r   insertr   r   nanr    assert_frame_equal)r   r   resultr$   s       r   test_diff_axis1_nonconsolidated1TestDataFrameDiff.test_diff_axis1_nonconsolidated,   sg    VQC[vqc{;<
		!S!a266q	q	JK
f/r'   c                    [         R                  " S5      R                  SS5      R                  S5      n[         R                  " SS5      US S 2S4'   [        U5      nUR                  SSS	9n[        US   [        R                  [        R                  " S5      [        R                  " S5      /S
.5      n[        R                  " X45        UR                  S5      nX"-
  nUS   R                  5       R                  5       (       d   e[        R                  " X45        UR                  SSS	9nU[         R                  -  n[        R                  " X45        g )N   r7   r   ztimedelta64[ns]NaTnsr   r   r;   r   r   )r   arangereshaper2   timedelta64r   r   pdrE   	Timedeltar    assert_equalisnaallr>   r   arrr   r@   r$   s        r   test_diff_timedelta64_with_nat0TestDataFrameDiff.test_diff_timedelta64_with_nat4   s   iil""1a(//0ABNN5$/AqD	s^#ABFFBLLOR\\RS_+UVW
)7{!%%''''
)!$;
)r'   tzNUTCc                    [         R                  " / SQUS9R                  U5      n[        U5      nUR	                  5       nUR                  5       n[         R                  " [         R                  [         R                  [         R                  " SS9/5      R                  U5      n[        U5      R	                  5       n[        R                  " Xh5        g )N)rE   z
2019-01-01z
2019-01-02)rU   r   )days)rL   DatetimeIndexas_unitr   to_framer   TimedeltaIndexrE   rM   r    r?   )	r   rU   unitdtir,   r   r@   ex_indexr$   s	            r   !test_diff_datetime_axis0_with_nat3TestDataFrameDiff.test_diff_datetime_axis0_with_natH   s     BrJRRSWXSk\\^$$bffbffbll6J%KLTT
 (#,,.
f/r'   c                    [        SSUS9n[        U5      nUR                  5       R                  5       nUR                  5       US'   [        R
                  UR                  S S 2S4'   XD-
  nUS   R                  5       R                  5       (       d   eUR                  SSS9n[        R                  " Xe5        UR                  SSS9n[        R                  " Xe5        g )N
2016-01-01   )periodsrU   r   r   r;   )r   r   r[   copyrL   rE   ilocrO   rP   r   r    r?   )r   rU   r^   r,   r   r$   r@   s          r   (test_diff_datetime_with_nat_zero_periods:TestDataFrameDiff.test_diff_datetime_with_nat_zero_periodsW   s     qR8Sk\\^  "
117{!%%''''#
f/#
f/r'   c           
         [        [        SSSUS9[        SSSUS9S.5      nUR                  SS9n[        [        R                  " SS	/5      [        R                  " SS	/5      S.5      n[
        R                  " X45        g )
N2010Dr   freqre   rU   rG   r   r;   rE   z1 daysr   r   r   rL   r\   r    r?   r   rU   r   r@   r$   s        r   test_diff_datetime_axis0*TestDataFrameDiff.test_diff_datetime_axis0k   s     f3bAf3bA
 a$$eX%67$$eX%67
 	f/r'   c           
         [        [        SSSUS9[        SSSUS9S.5      nUR                  SS9n[        [        R                  " SS/5      [        R                  " S	S	/5      S.5      n[
        R                  " X45        g )
Nrk   rl   r   rm   rG   r   r;   rE   z0 daysro   rp   s        r   test_diff_datetime_axis1*TestDataFrameDiff.test_diff_datetime_axis1~   s     f3bAf3bA
 a$$eU^4$$h%9:
 	f/r'   c                    [        [        S5      [        S5      /SS/S.5      nUS   R                  R                  U5      US'   UR	                  5       n[        [
        R                  [        R                  /[
        R                  " S5      S//SS	/S
9nUS   R                  R                  U5      US'   [        R                  " X45        g )Nz20130101 9:01z20130101 9:02      ?       @)timevaluery   z00:01:00r   rz   )columns)r   r   dtrZ   r   rL   rE   r   r>   rM   r    r?   )r   r]   r   resexps        r   test_diff_timedelta%TestDataFrameDiff.test_diff_timedelta   s    "?3Y5OPs
 Z]]**406
ggiffbffZ 8!<=PWGX
 &knn,,T2F
c'r'   c                    [        [        R                  R                  S5      R	                  S5      5      n[        R
                  " / SQ[        S9US'   UR                  5       nUS   R                  [        R                  :X  d   eg )Nr   )   r7   )r   r   r7   rd   r   dtyper   r   )
r   r   r   r   r   arrayobjectr   r   float64)r   r   r@   s      r   test_diff_mixed_dtype'TestDataFrameDiff.test_diff_mixed_dtype   s_    ryy,,Q/??GH((?&93ay"**,,,r'   c                 x    UR                  S5      nXR                  S5      -
  n[        R                  " X#5        g )NrH   )r   r   r    r?   r   r"   r-   xps       r   test_diff_neg_n!TestDataFrameDiff.test_diff_neg_n   s3      $22266
b%r'   c                 t    UR                  S5      nUR                  S5      n[        R                  " X#5        g )Nrw   r   )r   r    r?   r   s       r   test_diff_float_n#TestDataFrameDiff.test_diff_float_n   s0      %  #
b%r'   c                 b   [        SS/SS//5      n[        R                  " UR                  SS9[        [        R
                  S/[        R
                  S//5      5        [        R                  " UR                  SS9[        [        R
                  [        R
                  /SS//5      5        g )Nrw   rx   g      @g      @r   r;   r   )r   r    r?   r   r   r>   r   s     r   test_diff_axis TestDataFrameDiff.test_diff_axis   s    c
S#J/0
GGGOY}'EF	
 	GGGOY(83*'EF	
r'   c                     [        SSS9R                  S5      n[        SU05      nUR                  SSS9nU[        R
                  -
  R                  [        5      n[        R                  " X45        g )Nrc   r7   )re   rl   r   r   r;   )
r   	to_periodr   r   rL   rE   r2   r   r    r?   )r   pir   r@   r$   s        r   test_diff_period"TestDataFrameDiff.test_diff_period   s_    a0::3?Ry!#K''/
f/r'   c           	      H   [        [        S5      S[        R                  " S[        R                  S9-  S.5      n[        [        R
                  [        R
                  [        R
                  /US   S-  S.5      nUR                  SS9n[        R                  " X25        [        [        R                  " SSS9[        R                  " SS	S9S
.5      nUR                  SS9n[        US   [        R
                  -  US   S-  S
.5      n[        R                  " X25        g )Nr7   r   r   r   Br   r   r;   r1   r   )r*   r+   r*   r+   r   	r   ranger   rI   r   r>   r   r    r?   r   r   r$   r@   s       r   test_diff_axis1_mixed_dtypes.TestDataFrameDiff.test_diff_axis1_mixed_dtypes   s    U1XA		!2::0N,NOPBFFBFFBFF#;"S'A+NOa
f/ ))AY/bii6ST
 a2c7RVV#3"S'A+FG
f/r'   c           	          [        [        S5      S[        R                  " S[        R                  S9-  S.5      nU[        R
                  -  nUR                  SSS9n[        R                  " X25        g )Nr7   r   r   r   r   r<   re   r   r   s       r   *test_diff_axis1_mixed_dtypes_large_periods<TestDataFrameDiff.test_diff_axis1_mixed_dtypes_large_periods   sV    U1XA		!2::0N,NOP;a+
f/r'   c           	         [        [        S5      S[        R                  " S[        R                  S9-  S.5      n[        SUS   -  US   [        R
                  -  S.5      nUR                  SS	S
9n[        R                  " X25        g )Nr7   r   r   r         r   r   r   rH   r   r   r   s       r   -test_diff_axis1_mixed_dtypes_negative_periods?TestDataFrameDiff.test_diff_axis1_mixed_dtypes_negative_periods   sm    U1XA		!2::0N,NOP4"S'>3"&&8HIJa,
f/r'   c                     [        SS/SS//SS9nUR                  5       n[        [        R                  [        R                  /SS//[        R
                  " SS5      S9n[        R                  " X#5        g )	Nr   r   zSparse[int]r   rw   r   floatg        )r   r   r   r>   rL   SparseDtyper    r?   )r   	sparse_dfr@   r$   s       r   test_diff_sparse"TestDataFrameDiff.test_diff_sparse   sg    1v1v.mD	!ffbffT{+2>>'33O
 	f/r'   zaxis,expectedr      r7   r      	            r*   r+   cdInt64r   c           	      ~   [        [        R                  " SS[        R                  S/S5      [        R                  " SS[        R                  S/S5      [        R                  " [        R                  S5      [        R
                  " SS5      S-  S.SS9nUR                  US	9n[        R                  " XB5        g )
Nr   r   r   r   r   r   r   r   r;   )	r   r   repeatr>   tilerI   r   r    r?   )r   r<   r$   r   r@   s        r   test_diff_integer_na&TestDataFrameDiff.test_diff_integer_na   s    > YY1bffa0!4WWaBFFA.2YYrvvq)YYq!_)	 
 d#
f/r'   c                 >   [         R                  R                  S5      R                  S5      nSUR                  l        [        U5      nUR                  5       n[        [         R                  " U5      5      R                  5       n[        R                  " X45        g )Nr   )r   r   F)r   r   r   r   flags	writeabler   r   r   r    r?   rQ   s        r   test_diff_readonly$TestDataFrameDiff.test_diff_readonly"  sj    ii##A&66v>#		s^RXXb\*//1
f/r'   c                     [        [        S5      5      nUR                  U5      nUR                  5       nUS;   a  SOSn[        [        R
                  SSSS/US9n[        R                  " X55        g )Nr   )int8int16r1   r   rw   r   )r   r   r2   r   r   r>   r    r?   )r   any_int_numpy_dtyper   r@   expected_dtyper$   s         r   test_diff_all_int_dtype)TestDataFrameDiff.test_diff_all_int_dtype+  sg    uQx YY*+,0AAIy 	 bffc3S9P
f/r'    )$__name__
__module____qualname____firstlineno__r   r   markparametrizer   int64r%   r.   r4   rA   rS   r`   rh   rq   rt   r   r   r   r   r   r   r   r   r   r   r   r>   r   r   r   r   __static_attributes__r   r'   r   r   r      sa    [[UQ$458 68J0*( [[TD%=10 20 [[TD%=10 20& [[TD%=10 20$ [[TD%=10 20$("-&
&

00"00	0 [[  ffaArvvrvvrvvqI ffaQOYYrvvq1 ffaAq"b"=	 " YYrvvq1BFFArvvrvvrvvqIYYrvvq1YYrvvq1	 "	
:0;:0 0	0r'   r   )numpyr   r   pandasrL   r   r   r   r   pandas._testing_testingr    r   r   r'   r   <module>r      s)        f0 f0r'   