
    Owg                     `    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                  g d      d        Zej                  d        Zd Zej                  j                  dddg      ej                  j                  d	d
dg      d               Z
ej                  j                  dddg      ej                  j                  d	d
dg      d               Zd Zd Zej                  j                  d      d        Zd Zd Zej                  j                  d	d
dg      d        Zy)TestReductions)smsusns)paramsc                     |j                   S )N)param)selfrequests     d/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/datetimes/test_reductions.pyunitzTestReductions.unit   s    }}    c                     |}|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)r   tz_naive_fixturer   r   arrs        r   arr1dzTestReductions.arr1d   sC     *,.2&bhhx>P** 

 
r   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	Timestampr   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/Centralr$   TFc                     |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_empty8   sg     +-.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_emptyC   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#   r2   )r4   r   dropna)r   r!   r    r*   s       r   test_medianzTestReductions.test_medianT   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   r;   Fr1   z"abs\(axis\) must be less than ndim)matchr3   )r4   r   pytestraises
ValueError)r   r!   r    msgs       r   test_median_axiszTestReductions.test_median_axisb   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 )	Nr3   Fr#   r   r;   r1   r   )r5   r4   r   r7   r8   r6   r   r   )r   r!   r    r*   r+   s        r   test_median_2dzTestReductions.test_median_2dk   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?r3   )daysFr#   r;   )r'   	Timedeltameanr   r<   )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      }|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)periodsr   r0      r   r;   r3      )hours)r'   
date_range_datar5   rK   r7   assert_datetime_array_equalrJ   )r   dtidtar*   r+   s        r   test_mean_2dzTestReductions.test_mean_2d   s    mmL!E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#   r0   r1   r   r3   )rK   r   r5   r   r   r   r7   rU   )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__r@   fixturer   r!   r,   markparametrizer.   r9   r=   rD   filterwarningsrG   rL   rX   r[    r   r   r   r      s-   V^^23 4 ^^ "* [[TD,#78[[Xe}5 6 9 [[TD,#78[[Xe}5* 6 9*  [[ QR* S*4"""  [[Xe}5 6r   r   )numpyr   r@   pandas.core.dtypes.dtypesr   pandasr'   r   pandas._testing_testingr7   pandas.core.arraysr   r   rc   r   r   <module>rj      s&      5    ,k kr   