a
    Pf%                  
   @   sB  d dl Zd dlZd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZ dd Zdd Zdd Zejd	d
d
dggdd Zdd Zdd Zdd Zejdejdddgejd	dgddggdd Zdd ZG dd dZejd eeegejd!g d"d#dd$g d"dd%gd$g d"d%gdd$gd&d' ZdS )(    N)	DataFrameIndex
MultiIndexSeries	Timestamp
date_rangec                 C   s   | j dd}|  d S )Nfirst)level)groupbydescribe)Z multiindex_dataframe_random_datagrouped r   c/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/groupby/methods/test_describe.pytest_apply_describe_bug   s    r   c                  C   s   t tjdtjdtdddd} | dd dd g}| }tj|d	 |	 d
d tj|d |
 d
d tj|d | d
d d S )N
   dtype
2020-01-01Zperiodsindexc                 S   s   | j S Nyearxr   r   r   <lambda>       z/test_series_describe_multikey.<locals>.<lambda>c                 S   s   | j S r   monthr   r   r   r   r      r   meanF)Zcheck_namesstdmin)r   nparangefloat64r   r
   r   tmassert_series_equalr    r!   r"   )tsr   resultr   r   r   test_series_describe_multikey   s    r*   c                  C   s\   t tjdtjdtdddd} | dd }|dd }| jd	d
}t	
|| d S )Nr   r   r   r   r   c                 S   s   | j S r   r   r   r   r   r   r   $   r   z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   S r   )r   r   r   r   r   r   %   r   T)Zfuture_stack)r   r#   r$   r%   r   r
   applyr   stackr&   r'   )r(   r   r)   expectedr   r   r   test_series_describe_single    s    r.   keyskey1key2c                 C   s   t g dg dg dd}|j|| dd }| }t g dg dg dtjtjd	gg d
g dg dg dg dd	}t|dkr|dd|d  | r||}t	|| d S )N)onetwor3   threer3   )         r7      )r0   r1   foo2as_indexr9   )r2   r4   r3   )      ?r<         @)r<         @r>          @)r<   r>   r?   )r<   r>   r=   )r<   r>         @)r<   r>         @)	r0   countr    r!   r"   25%50%75%maxr6   r5   r1   r0   )
r   r
   r   r#   nanleninsert	set_indexr&   assert_frame_equal)r;   r/   dfgbr)   r-   r   r   r   test_series_describe_as_index*   s2    
rN   c           
      C   s2  |  dd dd g}| }g }| D ]Z}||  }t|g|jgdgt|j tt|jgd}t|j||jd}|	| q&t
j|dd}t|| d	}tjt|d
( | j ddddddd}	W d    n1 s0    Y  |	 }|  j}tddg|jgg dtt|jgd|_t|| d S )Nc                 S   s   | j S r   r   r   r   r   r   r   K   r   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   s   | j S r   r   r   r   r   r   r   K   r   r   levelscodes)columnsr   r5   Zaxisz+DataFrame.groupby with axis=1 is deprecatedmatch)ABCD)r   r   r5   r5   )r
   r   r   rR   rH   ranger   valuesr   appendpdconcatr&   rK   Zassert_produces_warningFutureWarningT)
Ztsframer   r)   Zdesc_groupscolgroupZ	group_colr-   msgZgroupedTr   r   r   test_frame_describe_multikeyJ   s.    
6
rd   c                  C   s   t g dd g dd g dd d} g dd | d< | jdd	id
}d}tjt|d | d  W d    n1 s~0    Y  tjt|d |d	  W d    n1 s0    Y  d S )N)r5   r6      r7      re   )r         (   2   )d      i,  i  i  )r   yz))r   r   r5   )r   r5   r   )r5   r   r   rf   kkeyrR   z*Names should be list-like for a MultiIndexrT   )r   renamepytestZraises
ValueErrorr
   r   )Zdf1Zdf2rc   r   r   r   test_frame_describe_tupleindexg   s    


,ru   c                  C   s   t dd ddt dd ddt dd ddi} t dd ddt dd ddt dd dd	i}t| |d
}|dj }||jdk j j ||jdk j j g}t|tddgddg dd}t	
|| d S )Nz2011-01-06 10:59:05)tzia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMErw   namerB   r    r!   r"   rC   rD   rE   rF   r   rR   )r   r   r
   rx   r   rw   r[   tolistr   r&   rK   )ZpricesZvolumesrL   r)   datar-   r   r   r   $test_frame_describe_unstacked_formaty   s&    r   zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarningr;   TFa1a2c                 C   s   t g dg dg dg ddg ddd}|dgkrB|jd	d
}t g dddgj}d d g|j_t|dkrtddgddggddgddggdd	gd|_	nt
ddgdd|_	| s| }|j|| d }t|| d S )N)c   r   r   X   r   r   )r5   r6   re   r7   rf   r8   )r   rg   rh   ri   rj   <   )r   r   bc)r   r   r   r   F)rR   copyr   r   rq   )r   rB   r=   r=   r   r    r@   r?   r   r!   r<   r<   r   r"   r>   r<   r   rC   g      @g      ?r   rD   r@   r?   r   rE   g      @g      @r   rF   rA   r=   r   r   r   r   r   r   r   r   r   r5   r6   r   r   )rP   rQ   namesry   r:   )r   dropZfrom_recordsrJ   r`   rR   r   rH   r   r   r   reset_indexr
   r   r&   rK   )r;   r/   rL   r-   r)   r   r   r   0test_describe_with_duplicate_output_column_names   s6    	

"
r   c                     s   t g dg} g d| _| | d }|jg d}g d  fdddD }tj|dd	}td
dg gdd
g ddg  dd
g  dttd gd|_dg|j	_
t|| d S )N)r   r5   r6   re   )r   r5   r6   r   r5   )percentiles)rB   r    r!   r"   rD   rF   c              	      s,   g | ]$}t d |tj|||ggdg dqS )r<   r5   r|   r   r#   rG   ).0valrq   r   r   
<listcomp>   s   z3test_describe_duplicate_columns.<locals>.<listcomp>)        r?   r=   rS   r   r6   r8   re   rO   )r   rR   r
   r   r]   r^   r   listrZ   r   r   r&   rK   )rL   rM   r)   framesr-   r   rq   r   test_describe_duplicate_columns   s    


,
r   c                   @   s>   e Zd Zejdd Zejdd Zejdd Zdd Zd	S )
TestGroupByNonCythonPathsc                 C   s.   t g ddtjdgdtjdggg dd}|S )N)r5   r6   Zfoor5   barre   ZbazrV   rW   rX   rq   r   )selfrL   r   r   r   rL      s
    zTestGroupByNonCythonPaths.dfc                 C   s   | d}|S )NrV   r
   )r   rL   rM   r   r   r   rM      s    
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd}|S )NrV   Fr:   r   )r   rL   gnir   r   r   r      s    zTestGroupByNonCythonPaths.gnic              
   C   s   t ddgdd}tdgg dgdgd ttdgd	}td
dtjdddddgdtjtjtjtjtjtjtjgg||d}| }t	|| |
 }| }t	|| d S )Nr5   re   rV   ry   rW   r{   r      rO   r<   r?   r   r|   )r   r   r   rZ   r   r#   rG   r   r&   rK   r   )r   rL   rM   r   Zexpected_indexZexpected_colr-   r)   r   r   r   test_describe   s"     z'TestGroupByNonCythonPaths.test_describeN)	__name__
__module____qualname__rs   ZfixturerL   rM   r   r   r   r   r   r   r      s   


r   r   kwargs)g?g?g333333?all)r   includeexcludeintc                 C   s   t g dgg d| d}|d t|d< |d t|d< |jd d djf i |}|djf i |jdd	jd d }t	|| |jd d dj
jf i |}|dj
jf i |jdd	jd d }tg |_t	|| d S )
N)r5   r6   re   r   )rR   r   rW   rX   r   rV   T)r   )r   Zastyper   floatZilocr
   r   r   r&   rK   rW   r   r   )r   r   rL   r)   r-   r   r   r   test_groupby_empty_dataset  s     ("*
r   )numpyr#   rs   Zpandasr]   r   r   r   r   r   r   Zpandas._testingZ_testingr&   r   r*   r.   markZparametrizerN   rd   ru   r   filterwarningsr   r   r   r   r   objectr   r   r   r   r   <module>   s:    

7-