
    .i&                         d Z ddlZddlZddlZddlZddlmZ	 ej                  ej                  ej                  j                  ej                  j                  dZ G d d      Zy)zX
Tests for Series cumulative operations.

See also
--------
tests.frame.test_cumulative
    N)cumsumcumprodcummincummaxc            &          e Zd Zej                  j                  dej                  ej                  g      d        Z	ej                  j                  dddg      d        Z
ej                  j                  d ej                  d       ej                  d	       ej                  d	      j                  d
      g      ej                  j                  dddg dgddg dgddg dgddg dgg      d               Zd Zej                  j                  dddg      d        Zej                  j                  dg dg dg      ej                  j                  dd d gddg      ej                  j                  dej'                               d                      Zej                  j                  d d! ej*                  dd"ej,                  d"ge#      gd$ ej*                  ddej,                  dg      gd ej*                  ddej,                  dg      gd ej*                  ddej,                  dg      gg      d%        Zej                  j                  d&dd'gdd(gg      d)        Zej                  j                  d*dd+ej,                  d,d,d-ggdd+ej,                  ej,                  ej,                  ej,                  ggg      ej                  j                  d&dd'gdd(gg      d.               Zd/ Zej                  j                  d0g d!dg fg d!dg fg d1d!dg d2fg d1d!dg d2fd3ej8                  d4gd!dd3ej8                  d5gfd3ej8                  d4gd!dd3ej8                  ej8                  gfej8                  d3d4gd!dej8                  d3d5gfej8                  d3d4gd!dej8                  ej8                  ej8                  gfej8                  ej8                  ej8                  gd!dej8                  ej8                  ej8                  gfej8                  ej8                  ej8                  gd!dej8                  ej8                  ej8                  gfg ddg fg ddg fg d6ddg d7fg d6ddg d7fd4ej8                  d3gddd4ej8                  d3gfd4ej8                  d3gddd4ej8                  ej8                  gfej8                  d4d3gddej8                  d4d3gfej8                  d4d3gddej8                  ej8                  ej8                  gfej8                  ej8                  ej8                  gddej8                  ej8                  ej8                  gfej8                  ej8                  ej8                  gddej8                  ej8                  ej8                  gfg ddg fg ddg fg d1ddg d8fg d1ddg d8fd3ej8                  d4gddd3ej8                  d4gfd3ej8                  d4gddd3ej8                  ej8                  gfej8                  d3d4gddej8                  d3d4gfej8                  d3d4gddej8                  ej8                  ej8                  gfej8                  ej8                  ej8                  gddej8                  ej8                  ej8                  gfej8                  ej8                  ej8                  gddej8                  ej8                  ej8                  gfg      d9        Zd: Zy;)<TestSeriesCumulativeOpsfuncc                    t        j                   ||      j                   |t        j                  |            d       |j                         }t        j                  |d d d<    ||      dd d   } |t        j                  |j                                     }t        j                  |j                  |d       y )NT)check_dtype      F)tmassert_numpy_array_equalvaluesnparraycopynandropna)selfdatetime_seriesr	   tsresultexpecteds         a/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/series/test_cumulative.pytest_datetime_seriesz,TestSeriesCumulativeOps.test_datetime_series   s    
##!((/*+	
 !!#&&3Q3b!$Q$-.
##FMM8O    methodr   r   c                    t         |   } t        ||             j                  } |t        j                  |            }t        j                  ||       |j                         }t        j                  |d d d<    t        ||             dd d   } ||j                               }|j                  j                  d       |_
        t        j                  ||       y )Nr   r   )methodsgetattrr   r   r   r   r   r   r   r   index
_with_freqassert_series_equal)r   r   r   ufuncr   r   r   s          r   test_cummin_cummaxz*TestSeriesCumulativeOps.test_cummin_cummax+   s    1&13::/23
##FH5!!#&&3Q3$V$&qt!t,%||..t4
vx0r   r   r   z
1999-12-31z
US/Pacificzmethod, skipna, exp_tdiT)NaT2 daysr'   r(   r'   3 days)r'   r(   r'   1 daysr'   r*   F)r'   r'   r'   r'   r'   r'   c                    t        j                  g d      }t        j                  ||z         }t        j                  |      }t        j                  ||z         } t        ||      |      }t	        j
                  ||       y )N)r'   r(   r'   r*   r'   r)   skipna)pdto_timedeltaSeriesr!   r   r$   )	r   r   r   r-   exp_tditdiserr   r   s	            r   test_cummin_cummax_datetimelikez7TestSeriesCumulativeOps.test_cummin_cummax_datetimelike;   sh    : ooQRiib!//'*99Wr\*%f%V4
x0r   c           	         t        j                  t        j                  d      t        j                  d      gt        j                  d      t         j                  gt        j                  d      t        j                  d      gg      }|j	                         }t        j                  t        j                  d      t        j                  d      gt        j                  d      t         j                  gt        j                  dd	      t        j                  dd	      gg      }t        j                  ||       y )
Nr   r   daysr   i)hours      )r7   r8   )r.   	DataFrame	Timedeltar'   r   r   assert_frame_equal)r   dfr   r   s       r   test_cumsum_datetimelikez0TestSeriesCumulativeOps.test_cumsum_datetimelike`   s    \\a",,A"671%rvv.B'B)?@
 <<a",,A"671%rvv.1B/1B1OP
 	fh/r   z	func, exp)r   2012-1-1)r   2012-1-2c                 ~   t        j                  t        j                  dd      t         j                  t        j                  dd      g      } t	        ||      d      }t        j                  t        j                  dd      t         j                  t         j                  g      }t        j                  ||        t	        ||      d      }t        j                  |d      }t        j                  t        j                  dd      t         j                  |g      }t        j                  ||       y )Nr@   D)freqrA   Fr,   T)r.   r0   Periodr'   r!   r   r$   )r   r	   expr3   r   r   s         r   test_cummin_cummax_periodz1TestSeriesCumulativeOps.test_cummin_cummax_periods   s     iiYYz,bffbii
QT6UV
 $d#5199bii
=rvvrvvNO
vx0#d#40ii#&99bii
=rvvsKL
vx0r   arg)FFFTTFF)FFFFFFFc                     | S N xs    r   <lambda>z TestSeriesCumulativeOps.<lambda>   s    1 r   c                     |  S rJ   rK   rL   s    r   rN   z TestSeriesCumulativeOps.<lambda>   s     r   identityinverse)idsc                      |t        j                  |            }t        |   } ||j                        }t        j                  |      } t	        ||             }t        j                  ||       y rJ   )r.   r0   r    r   r!   r   r$   )	r   rH   r	   r   r3   r%   exp_valsr   r   s	            r   test_cummethods_boolz,TestSeriesCumulativeOps.test_cummethods_bool   s\     299S>"$99X&%f%'
vx0r   zmethod, expectedr   r   dtyper   c                     t        j                  ddt        j                  dg      } t	        ||             }t        j                  ||       y )NFT)r.   r0   r   r   r!   r   r$   )r   r   r   r3   r   s        r   $test_cummethods_bool_in_object_dtypez<TestSeriesCumulativeOps.test_cummethods_bool_in_object_dtype   s@     iibffe45%f%'
vx0r   zmethod, orderabccbac                    t        j                  t        |      d      }t        j                  t        d      |      } t	        ||             }t        j                  t        d      |      }t        j                  ||       y )NTorderedababcabrV   abbbccc)r.   CategoricalDtypelistr0   r!   r   r$   )r   r   ordercatr3   r   r   s          r   )test_cummax_cummin_on_ordered_categoricalzATestSeriesCumulativeOps.test_cummax_cummin_on_ordered_categorical   so     !!$u+t<iiO
 &f%'99O
 	vx0r   z	skip, expabcc                    t        j                  t        |      d      }t        j                  dt        j
                  dddg|      } t        ||      |      }t        j                  ||      }t        j                  ||       y )NTr]   rf   rg   rh   rV   r,   )	r.   ra   rb   r0   r   r   r!   r   r$   )	r   skiprF   r   rc   rd   r3   r   r   s	            r   *test_cummax_cummin_ordered_categorical_nanzBTestSeriesCumulativeOps.test_cummax_cummin_ordered_categorical_nan   s|      !!$u+t<ii"&&#sC(
 &f%T299
 		
r   c                    t        j                  t        j                  d      t        j                  d      g      }t        j                  t
        d      5  |j                          d d d        y # 1 sw Y   y xY w)Nr   r6      z#cumprod not supported for Timedeltamatch)r.   r0   r<   pytestraises	TypeErrorr   )r   r3   s     r   test_cumprod_timedeltaz.TestSeriesCumulativeOps.test_cumprod_timedelta   sT    ii1-r||/CDE]]9,QR 	KKM	 	 	s   A55A>zdata, op, skipna, expected_data)rM   zy)rM   xzxzyrM   ru   xy)ru   rt   rM   )ru   ru   rM   )rM   rt   rt   c                     t        j                  ||      }t        ||      }t        j                  ||      } ||      }	t        j                  |	|       y )NrV   r,   )r.   r0   r!   r   r$   )
r   string_dtype_no_objectdataopr-   expected_datar3   r   r   r   s
             r   test_cum_methods_ea_stringsz3TestSeriesCumulativeOps.test_cum_methods_ea_strings   sM    P ii$:;b!99]2HIv&
vx0r   c                    t        j                  t        d      |      }t        j                  d|j
                   d      }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)NxyzrV   z-operation 'cumprod' not supported for dtype ''rn   r,   )
r.   r0   rb   reescaperW   rp   rq   rr   r   )r   pyarrow_string_dtyper-   r3   msgs        r   test_cumprod_pyarrow_stringsz4TestSeriesCumulativeOps.test_cumprod_pyarrow_strings  se    iiU+?@iiG		{RSTU]]9C0 	'KKvK&	' 	' 	's   A;;BN)__name__
__module____qualname__rp   markparametrizer   r   r   r   r&   r.   r<   	Timestamptz_localizer4   r?   rG   r    keysrU   r0   r   objectrY   re   rk   rs   NAr~   r   rK   r   r   r   r      s   [[Vbii%<=P >P  [[X(';<1 =1 [[BLLOBLL&BLL&22<@	
 [[!tPQtPQ: :	
"
1#2
10& [[""	
11 [[;=	
 [[l+*i1H   [[Xw||~61 71 [[yryy!Q!2&AB			5!RVVQ"789yryy%!>?@yryy%rvvt!<=>		
11
 [[uu	
11 [[Cc3/0S"&&"&&"&&"&&9:	
 [[uu	


" [[)4$5"%h.@Ah/AB255#$beeT0BC255#%#ruubee1DEeeS#$T0BCeeS#%"%%1FGeeRUUBEE"HdRUUBEE2554IJeeRUUBEE"HebeeRUUBEE5JK4$5"%ho>h?255#$beeS0AB255#%#ruubee1DEeeS#$S0ABeeS#%"%%1FGeeRUUBEE"HdRUUBEE2554IJeeRUUBEE"HebeeRUUBEE5JK4$5"%ho>h?255#$beeS0AB255#%#ruubee1DEeeS#$S0ABeeS#%"%%1FGeeRUUBEE"HdRUUBEE2554IJeeRUUBEE"HebeeRUUBEE5JK=	
"F	1G"F	1'r   r   )__doc__r   numpyr   rp   pandasr.   pandas._testing_testingr   r   r   minimum
accumulatemaximumr    r   rK   r   r   <module>r      sX    
     iizzjj##jj##	C' C'r   