
    ]j9!                         d dl Zd dlZd dlmZ d dlZd dlmZmZ d dl	m
Z d dlmZ  G d d      Zej                  j!                  ddd	g      d
        Zy)    N)
is_integer)IndexSeries)	Timestampc                      e Zd Zd Zd Zd Zd Zd Zej                  j                  d ed       ed       ed	      g edd
       edd
       ed	d
      g ej                  d       ej                  d       ej                  d      g ed       ed       ed	      ej                  g edd
       edd
       ed	d
      ej                  g ej                  d       ej                  d       ej                  d      ej                  gg      d        Zd Zd Zej                  j                  dg ddfg ddfg      d        Zd Zd Zd Zej                  j                  deedg      d        Zd Zd Zy )!TestSeriesQuantilec                    |j                  d      }|t        j                  |j                         d      k(  sJ |j                  d      }|t        j                  |j                         d      k(  sJ t	        |t
              j                  d      }|t        j                  |j                         d      k(  sJ |j                  j                         }|j                  d      }|t        d      k(  sJ |j                         }|j                  d      }|t        j                  d	      k(  sJ t	        t        j                  d
d      g      j                         }|t        j                  d      k(  sJ d}ddddgddgfD ]7  }t        j                   t"        |      5  |j                  |       d d d        9 t	        t        j$                  j'                  d      j)                  d            }g d}	t        j                   t"        |      5  |j                  |	       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N皙?
   ?Z   dtype皙?2000-01-10 19:12:00      ?z24:00:00NaTnsr   z2percentiles should all be in the interval \[0, 1\]         ?)matchd   )g      r   g      ?)quantilenp
percentiledropnar   objectindex	to_seriesr   diffpdto_timedeltatimedelta64sum	Timedeltapytestraises
ValueErrorrandomdefault_rngstandard_normal)
selfdatetime_seriesqdtstdsresultmsginvalidspercentile_arrays
             S/root/env/lib/python3.12/site-packages/pandas/tests/series/methods/test_quantile.pytest_quantilez TestSeriesQuantile.test_quantile   s    $$S)BMM/"8"8":B????$$S)BMM/"8"8":B???? ?&1::3?BMM/"8"8":B???? ##--/LLI34444 hhjLLBOOJ//// t456::<a(((DARy3(3 	2Gz5 2((12 2	2 299((+;;C@A,]]:S1 	)JJ'(	) 	)2 2
	) 	)s   &H3H?3H<	?Ic                    |j                   j                  |      |_         ddg}|j                  |      }t        t	        j
                  |j                         d      t	        j
                  |j                         d      g||j                        }t        j                  ||       |j                   j                         }d|_        |j                  d      }t        t        d      t        d      gd	d	gdd
| d      }t        j                  ||       |j                  g       }t        g |j                  t        g t              d      }t        j                  ||       y )Nr
   r   r   r   r   namexxx)r   r   r   r   zM8[])r   r;   r   r   float64)r;   r   r   )r   as_unitr   r   r   r   r   r;   tmassert_series_equalr    r   r   float)r-   r.   unitqsr2   expectedr0   s          r7   test_quantile_multiz&TestSeriesQuantile.test_quantile_multi3   sA    / 5 5 = =d C3Z ))"-o446;o446;  %%
 	vx0##--/j),-y9N/OP*vQ-	
 	vx0 ))"-_))r1Gy
 	vx0    c                     |j                  dd      }|t        j                  |j                         d      k(  sJ |j                  d      }|t        j                  |j                         d      k(  sJ ||k(  sJ y )Nr
   linearinterpolationr   )r   r   r   r   )r-   r.   r/   q1s       r7   test_quantile_interpolationz.TestSeriesQuantile.test_quantile_interpolationR   sz     $$S$ABMM/"8"8":B????%%c*R]]?#9#9#;R@@@@ BwwrG   c                 p   t        g d      j                  dd      }|t        j                  t        j                  g d      d      k(  sJ t        |      sJ t        g d      j                  dd      }|t        j                  t        j                  g d      d      k(  sJ t        |      sJ y )N)         r   lowerrJ   2   higher)r   r   r   r   arrayr   )r-   r/   s     r7   !test_quantile_interpolation_dtypez4TestSeriesQuantile.test_quantile_interpolation_dtype^   s     9&&s'&BBMM"((9"5r::::!}}9&&s(&CBMM"((9"5r::::!}}rG   c           	      x   t        ddddt        j                  g      }|j                  d      }d}||k(  sJ t        g t              }|t        t        j                  t        j                  g      g}|D ]  }|j                  d      }t        j
                  |      sJ |j                  dg      }t        j                  |t        t        j                  gdg             |j                  d	d
g      }t        j                  |t        t        j                  t        j                  gd	d
g              y )NrO   r   rP   rQ   r   g      @r   r   r   g333333?)r   r   nanr   r   isnanr@   rA   )r-   serr2   rE   s1casesress          r7   test_quantile_nanz$TestSeriesQuantile.test_quantile_nanj   s    aAq"&&)*c"!!! Bf%VRVVRVV,-. 	TC,,s#C88C= =,,u%C""3xu(EF,,Sz*C""3/?Sz(RS	TrG   casez
2011-01-01z
2011-01-02z
2011-01-03z
US/Eastern)tzz1 daysz2 daysz3 daysc                     t        |d      }|j                  d      }||d   k(  sJ |j                  dg      }t        |d   gdgd      }t        j                  ||       y )NXXX)r;   r   rO   r:   )r   r   r@   rA   )r-   r`   r[   r^   exps        r7   test_quantile_boxz$TestSeriesQuantile.test_quantile_box   se    H T&ll3d1g~~llC5!d1gYse%8
sC(rG   c                     t        j                  t        g d      j                  d            sJ t        j                  t        g d      j                  d            sJ y )NzM8[ns]r   r   zm8[ns])r"   isnar   r   )r-   s    r7   !test_datetime_timedelta_quantilesz4TestSeriesQuantile.test_datetime_timedelta_quantiles   sJ    wwvb1::3?@@@wwvb1::3?@@@rG   c                 p   t        t        j                  t        j                  g      j                  d      }|t        j                  u sJ t        t        j                  t        j                  g      j                  dg      }t	        j
                  |t        t        j                  gdg             y )Nr   rX   )r   r"   r   r   r@   rA   )r-   r^   s     r7   test_quantile_natz$TestSeriesQuantile.test_quantile_nat   sw    bffbff%&//4bff}}bffbff%&//6
sFBFF8C5$ABrG   zvalues, dtype)r   r   r   rO   r   rP   zSparse[int])g        Ng      ?g       @Sparse[float]c                     t        ||      }|j                  dg      }t        t        j                  |            j                  dg      j	                  d      }t        j                  ||       y )Nr   r   rk   )r   r   r   asarrayastyper@   rA   )r-   valuesr   r[   r2   rE   s         r7   test_quantile_sparsez'TestSeriesQuantile.test_quantile_sparse   sZ    
 V5)se$"**S/*33SE:AA/R
vx0rG   c                     t        g d      }|j                  d      }t        j                  |      sJ |j                  dg      }t        t        j                  gdg      }t        j                  ||       y )Nr>   r   r   rX   r   r   r   rZ   rY   r@   rA   r-   r[   r^   rd   s       r7   test_quantile_empty_float64z.TestSeriesQuantile.test_quantile_empty_float64   s`    Ry)ll3xx}}llC5!bffXcU+
sC(rG   c                     t        g d      }|j                  d      }t        j                  |      sJ |j                  dg      }t        t        j                  gdg      }t        j                  ||       y )Nint64r   r   rX   rr   rs   s       r7   test_quantile_empty_int64z,TestSeriesQuantile.test_quantile_empty_int64   s`    Rw'll3xx}}llC5!bffXcU+
sC(rG   c                    t        g d      }|j                  d      }|t        j                  u sJ |j                  dg      }t        t        j                  gdg|j                        }t        j                  ||       y )Nzdatetime64[ns]r   r   )r   r   )r   r   r"   r   r   r@   rA   rs   s       r7   test_quantile_empty_dt64z+TestSeriesQuantile.test_quantile_empty_dt64   sg    R/0ll3bff}}llC5!bffXcU#))<
sC(rG   r   Int64c                 0   t        g d|      j                  t        j                  ddd            }t        t        j                  ddd      t        j                  ddd            }|d	k(  r|j	                  d
      }t        j                  ||       y )N)rO   r   rP   r   r   rO   r   rP   r   rX   rz   Float64)r   r   r   arangern   r@   rA   )r-   r   r2   rE   s       r7   test_quantile_dtypesz'TestSeriesQuantile.test_quantile_dtypes   sr    	/881a9NO"))Aq#.bii1d6KLGy1H
vx0rG   c                 \   t        t        j                  t        j                  g|      }t        j                  d       5  |j                  ddg      }d d d        t        t        j                  t        j                  g|ddg      }t        j                  |       y # 1 sw Y   NxY w)Nr   r
   r   r   r   )r   r"   NAr@   assert_produces_warningr   rA   r-   any_int_ea_dtyper[   r2   rE   s        r7   test_quantile_all_naz'TestSeriesQuantile.test_quantile_all_na   s    beeRUU^+;<''- 	.\\3*-F	.255"%%.0@c
S
vx0	. 	.s   B""B+c                     t        t        j                  t        j                  dg|      }|j                  ddg      }t        ddg|ddg      }t	        j
                  ||       y )NrO   r   r
   r   r   )r   r"   r   r   r@   rA   r   s        r7   test_quantile_dtype_sizez+TestSeriesQuantile.test_quantile_dtype_size   sW    beeRUUA&.>?sCj)1a&(8c
K
vx0rG   N)__name__
__module____qualname__r8   rF   rM   rV   r_   r'   markparametrizer   r"   r&   r   re   rh   rj   rp   rt   rw   ry   intrB   r~   r   r    rG   r7   r   r      s   !)F1>

T* [[ ,',',' ,<8,<8,<8
 R\\(#\R\\(%;\R\\(=ST ,',','	 ,<8,<8,<8	 X&X&X&	3	
"F)G"F)A
C [[
m	,/Do.VW1	1	)	)	) [[WsE7&;<1 =111rG   r   typ
datetime64r$   c                 r    t        g |  d| d      }|j                         }|t        j                  u sJ y )N[r=   r   )r   r   r"   r   )r   rC   r[   r2   s       r7    test_quantile_empty_datetimeliker      s8    
cU!D6+
,C\\^FRVVrG   )numpyr   r'   pandas.core.dtypes.commonr   pandasr"   r   r   pandas._testing_testingr@   pandas.core.indexes.datetimesr   r   r   r   r   r   rG   r7   <module>r      sU      0   3h1 h1V } => ?rG   