
    bMh                     h    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dS )    N)DatetimeTZDtype)NaT)DatetimeArrayc                   :   e Zd Z ej        g d          d             Zej        d             Zd Zej        	                    dddg          ej        	                    d	d
dg          d                         Z
ej        	                    dddg          ej        	                    d	d
dg          d                         Zd Zd Zej                            d          d             Zd Zd Zej        	                    d	d
dg          d             ZdS )TestReductions)smsusns)paramsc                     |j         S )N)param)selfrequests     m/var/www/html/test/jupyter/venv/lib/python3.11/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 timezonesN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   s^     *,.2&&&&bhx>P>P*   

 

 

 
r   c                 "   |}|                     |          }|j        }|                                }t          j        d|                               |          }||k    sJ |j        |j        k    sJ |                                }t          j        d|                               |          }||k    sJ |j        |j        k    sJ |                    d          }|t          u sJ |                    d          }|t          u sJ d S )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$V<444<<TBB!!!!{hm++++<444<<TBB!!!!{hm++++&&}}}}&&}}}}}}r   r   Nz
US/Centralr$   TFc                    |t          |          nt          j        d          }t          j        g |          }|                    |          }|t          u sJ |                    |          }|t          u sJ d S )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   s     +-.2&&&&bhx>P>P*2U;;;''}}}}''}}}}}}r   c                 d   |t          |          nt          j        d          }t          j        g |          }|                    |          }|t          u sJ |                    dd          }|                    d|          }t          |                              t          t          t          g|j                  }t          j
        ||           |                    d|          }t          |                              g |j                  }t          j
        ||           d S )	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&&&&bhx>P>P*2U;;;6**}}}}kk!Q62299++S#sO39+MM
)))62299++Bci+@@
)))))r   c                 D   |}|                                 }||d         k    sJ |                     d          }|t          u sJ |                                                     d          }||d         k    sJ |                     d          }||d         k    sJ d S )Nr   Fr#   r2   )r4   r   dropna)r   r!   r    r*   s       r   test_medianzTestReductions.test_medianT   s    Q5))}}}}$$E$22Q##Qr   c                 >   |}|                     d          |                                 k    sJ |                     dd          t          u sJ d}t          j        t          |          5  |                     d           d d d            d S # 1 swxY w Y   d S )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   s    zzqz!!SZZ\\1111zzqz//366663]:S111 	 	JJAJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   .BBBz/ignore:All-NaN slice encountered:RuntimeWarningc                    |                     dd          }|                                |                                k    sJ |                    d          t          u sJ |                    d          }|}t          j        ||           |                    dd          }|}t          j        ||           |                    d          }t          |                              |                                g|j                  }t          j        ||           |                    dd          }t          |                              t          g|j                  }t          j        ||           d S )	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   sR   mmAr"" zz||u||~~----zzz''3.... ##
))) 511
))) ##99++U\\^^,<CI+NN
)))51199++SE+CC
)))))r   c                 b   |}|d         dt          j        d          z  z   }|                                }||k    sJ |                    d          }|t          u sJ |                                                    d          }||k    sJ |                    d          }||k    sJ d S )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66!!!!''}}}}""%"00!!!!q!!!!!!!!r   c                    t          j        ddd          }|j                            dd          }|                    d          }|d	         }t          j        ||           |                    d	          }|d d df         t          j        d
          z   }t          j        ||           |                    d           }|                                }||k    sJ d S )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    mL!EEEi1%%q!!q6
&vx888q!!qqq!t9r|"5555
&vx888t$$88::!!!!!!r   c                    |d d         }|                     |          t          u sJ |                    dd          }|                     d|          }t          j        t          t          t          g|j                  }t          j        ||           |                     d|          }|}t          j        ||           |                     d |          }|t          u sJ d S )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    BQBixxvx&&#----Aq!!622 /c3syQQQ
&vx888622
&vx888f5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22333  43 ^  ^"  * [TD,#788[Xe}55  65 98 [TD,#788[Xe}55* * 65 98*        [ QRR* * SR*4" " """ " "  [Xe}55  65  r   r   )numpyr   r@   pandas.core.dtypes.dtypesr   pandasr'   r   pandas._testing_testingr7   pandas.core.arraysr   r   rc   r   r   <module>rj      s         5 5 5 5 5 5                 , , , , , ,k k k k k k k k k kr   