
    .i                     `    d dl Zd dlZd dlmZ d dlZd dlmZ d dlm	Z
 d dlmZ  G d d      Zy)    N)DatetimeTZDtype)NaT)DatetimeArrayc                   &   e Zd Zej                  d        Zd Zej                  j                  dddg      d        Z	ej                  j                  dddg      d        Z
d Zd	 Zej                  j                  d
      d        Zd Zd Zd Zy)TestReductionsc                     |}|t        |      nt        j                  d      }t        j                  g d|      }|S )z;Fixture returning DatetimeArray with parametrized timezonestzM8[ns])
2000-01-03r   r   
2000-01-02
2000-01-05z
2000-01-04dtype)r   npr   r   _from_sequence)selftz_naive_fixturer
   r   arrs        k/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/arrays/datetimes/test_reductions.pyarr1dzTestReductions.arr1d   sC     *,.2&bhhx>P** 

 
    c                    |}|j                  |      }|j                  }|j                         }t        j                  d|      j                  |      }||k(  sJ |j
                  |j
                  k(  sJ |j                         }t        j                  d|      j                  |      }||k(  sJ |j
                  |j
                  k(  sJ |j                  d      }|t        u sJ |j                  d      }|t        u sJ y )Nr   r	   r   Fskipna)as_unitr
   minpd	Timestampunitmaxr   )r   r   r    r   r
   resultexpecteds          r   test_min_maxzTestReductions.test_min_max   s    kk$VV<<4<<TB!!!{{hmm+++<<4<<TB!!!{{hmm+++&}}&}}r   r
   Nz
US/Centralc                     |t        |      nt        j                  d      }t        j                  g |      }|j                  |      }|t        u sJ |j                  |      }|t        u sJ y )Nr	   r   r   r   )r   r   r   r   r   r   r   r!   )r   r   r
   r   r   r"   s         r   test_min_max_emptyz!TestReductions.test_min_max_empty4   se    *,.2&bhhx>P**2U;'}}'}}r   c                 .   |t        |      nt        j                  d      }t        j                  g |      }|j                  |      }|t        u sJ |j                  dd      }|j                  d|      }t        |      j	                  t        t        t        g|j                        }t        j                  ||       |j                  d|      }t        |      j	                  g |j                        }t        j                  ||       y )	Nr	   r   r   r   r      axisr      )r   r   r   r   r   medianr   reshapetypetmassert_equal)r   r   r
   r   r   r"   r#   s          r   test_median_emptyz TestReductions.test_median_empty>   s    *,.2&bhhx>P**2U;6*}}kk!Q629++S#sO399+M
)629++Bcii+@
)r   c                     |}|j                         }||d   k(  sJ |j                  d      }|t        u sJ |j                         j                  d      }||d   k(  sJ |j                  d      }||d   k(  sJ y )Nr   Fr   r*   )r,   r   dropna)r   r   r   r"   s       r   test_medianzTestReductions.test_medianN   s    Q5)}}$$E$2Q#Qr   c                    |}|j                  d      |j                         k(  sJ |j                  dd      t        u sJ d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr   r3   Fr)   z"abs\(axis\) must be less than ndim)matchr+   )r,   r   pytestraises
ValueError)r   r   r   msgs       r   test_median_axiszTestReductions.test_median_axis\   sw    zzqz!SZZ\111zzqz/36663]]:S1 	JJAJ	 	 	s    A<<Bz/ignore:All-NaN slice encountered:RuntimeWarningc                    |j                  dd      }|j                         |j                         k(  sJ |j                  d      t        u sJ |j                  d      }|}t        j                  ||       |j                  dd      }|}t        j                  ||       |j                  d      }t        |      j                  |j                         g|j                        }t        j                  ||       |j                  dd      }t        |      j                  t        g|j                        }t        j                  ||       y )	Nr+   Fr   r   r3   r)   r   )r-   r,   r   r/   r0   r.   r   r   )r   r   r   r"   r#   s        r   test_median_2dzTestReductions.test_median_2de   s   mmAr" zz|u||~---zzz'3... #
) 51
) #9++U\\^,<CII+N
)519++SE+C
)r   c                 ,   |}|d   dt        j                  d      z  z   }|j                         }||k(  sJ |j                  d      }|t        u sJ |j	                         j                  d      }||k(  sJ |j                  d      }||k(  sJ y )Nr   g?r+   )daysFr   r3   )r   	Timedeltameanr   r4   )r   r   r   r#   r"   s        r   	test_meanzTestReductions.test_mean   s     q6C",,A"666!!!'}}""%"0!!!q!!!!r   c                    t        j                  dddd      }|j                  j                  dd      }|j	                  d	      }|d
   }t        j                  ||       |j	                  d
	      }|d d df   t        j                  d      z   }t        j                  ||       |j	                  d 	      }|j	                         }||k(  sJ y )Nz
2016-01-01   z
US/Pacificns)periodsr
   r    r(      r   r3   r+      )hours)r   
date_range_datar-   rC   r/   assert_datetime_array_equalrB   )r   dtidtar"   r#   s        r   test_mean_2dzTestReductions.test_mean_2d   s    mmL!4Pii1%q!q6
&&vx8q!q!t9r||"55
&&vx8t$88:!!!r   c                    |d d }|j                  |      t        u sJ |j                  dd      }|j                  d|      }t        j                  t        t        t        g|j
                        }t        j                  ||       |j                  d|      }|}t        j                  ||       |j                  d |      }|t        u sJ y )Nr   r   r(   r)   r   r+   )rC   r   r-   r   r   r   r/   rN   )r   r   r   r   arr2dr"   r#   s          r   test_mean_emptyzTestReductions.test_mean_empty   s    BQixxvx&#---Aq!62 //c3syyQ
&&vx862
&&vx8f5}}r   )__name__
__module____qualname__r8   fixturer   r$   markparametrizer&   r1   r5   r<   filterwarningsr?   rD   rQ   rT    r   r   r   r      s    ^^ "* [[TD,#78 9 [[TD,#78* 9*  [[ QR* S*4""" r   r   )numpyr   r8   pandas.core.dtypes.dtypesr   pandasr   r   pandas._testing_testingr/   pandas.core.arraysr   r   r\   r   r   <module>rc      s&      5    ,d dr   