
    .i"              
          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 Zd Zd Zej"                  j%                  ddddgg      d	        Zd
 Zd Zd Zej"                  j/                  d      ej"                  j%                  ddgddgg      d               Zd Zd Zej"                  j%                  deeeg      ej"                  j%                  dg ddddg dddgdg ddgddg      d               Zy)    N)	DataFrameIndex
MultiIndexSeries	Timestamp
date_rangec                 H    | j                  d      }|j                          y )Nfirst)level)groupbydescribe) multiindex_dataframe_random_datagroupeds     h/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/groupby/methods/test_describe.pytest_apply_describe_bugr      s!    .66W6EG    c                     t        t        j                  dt        j                        t	        dd            } | j                  d d g      }|j                         }t        j                  |d   |j                         d	
       t        j                  |d   |j                         d	
       t        j                  |d   |j                         d	
       y )N
   dtype
2020-01-01periodsindexc                     | j                   S Nyearxs    r   <lambda>z/test_series_describe_multikey.<locals>.<lambda>   s
    AFF r   c                     | j                   S r   monthr    s    r   r"   z/test_series_describe_multikey.<locals>.<lambda>   s
    agg r   meanF)check_namesstdmin)r   nparangefloat64r   r   r   tmassert_series_equalr&   r(   r)   )tsr   results      r   test_series_describe_multikeyr1      s    	
		"BJJ'z,PR/S
B jj*,=>?GF6&>7<<>uM6%='++-UK6%='++-UKr   c                  *   t        t        j                  dt        j                        t	        dd            } | j                  d       }|j                  d       }|j                         j                         }t        j                  ||       y )Nr   r   r   r   r   c                     | j                   S r   r$   r    s    r   r"   z-test_series_describe_single.<locals>.<lambda>$   s
    177 r   c                 "    | j                         S r   )r   r    s    r   r"   z-test_series_describe_single.<locals>.<lambda>%   s    QZZ\ r   )r   r*   r+   r,   r   r   applyr   stackr-   r.   )r/   r   r0   expecteds       r   test_series_describe_singler8       so    	
		"BJJ'z,PR/S
B jj*+G]]12F!'')H68,r   keyskey1key2c                    t        g dg dg dd      }|j                  ||       d   }|j                         }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|j                  dd|d          | r|j                  |      }t        j                  ||       y )N)onetwor>   threer>   )         rB      )r:   r;   foo2as_indexrD   )r=   r?   r>   )      ?rG         @)rG         @rI          @)rG   rI   rJ   )rG   rI   rH   )rG   rI         @)rG   rI         @)	r:   countr&   r(   r)   25%50%75%maxrA   r@   r;   r:   )
r   r   r   r*   nanleninsert	set_indexr-   assert_frame_equal)rF   r9   dfgbr0   r7   s         r   test_series_describe_as_indexrY   *   s     
99#	

B 
D8	,V	4B[[]F+$#FFBFFC("""""
	
H 4yA~68F#34%%d+&(+r   c           
      "   | j                  d d g      }|j                         }g }| D ]  }||   j                         }t        t        |g| j                  j
                        |j                  gdgt        |j                        z  t        t        |j                              g      }t        |j                  ||j                        }|j                  |        t        j                  |d      }t        j                  ||       y )	Nc                     | j                   S r   r   r    s    r   r"   z.test_frame_describe_multikey.<locals>.<lambda>K   s
     r   c                     | j                   S r   r$   r    s    r   r"   z.test_frame_describe_multikey.<locals>.<lambda>K   s
    177 r   r   r   levelscodes)columnsr   r@   axis)r   r   r   r   r`   r   rS   ranger   valuesr   appendpdconcatr-   rV   )tsframer   r0   desc_groupscolgroup	group_colr7   s           r   test_frame_describe_multikeyrm   J   s    oo/1BCDGFK "%%'3%w'<'<=u}}M3U]]++U3u}}3E-FG
	 %,,	M5!" yy1-H&(+r   c            	         d} t        dg ddz  | g ddz  i      }|j                  |       j                         }t        g dgdz  t        g dd| 	      t	        j
                  dgd
z  g dg            }t        j                  ||       y )Nkr!   )r@   rA      rB      rp   ))r   r   r@   )r   r@   r   )r@   r   r   rq   )rK   rH   gvhXL?rG   rJ   rH   rI   rK   F)tupleize_colsname   rM   r&   r(   r)   rN   rO   rP   rQ   r   r`   )r   r   r   r   r   from_arraysr-   rV   )rs   rW   r0   r7   s       r   test_frame_describe_tupleindexrx   [   s    D	1$3a7	

B ZZ&&(F	67!;5UQUV&&UQYST
H &(+r   c                     t        dd       dt        dd       dt        dd       di} t        dd       dt        dd       dt        dd       d	i}t        | |d
      }|j                  d      j                  j	                         }||j
                  dk(     j                  j	                         j                  j                         ||j
                  dk(     j                  j	                         j                  j                         g}t        |t        ddgd      g d      }t        j                  ||       y )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VOLUMEr{   rs   ru   rv   )r   r   r   r|   r   r{   rd   tolistr   r-   rV   )pricesvolumesrW   r0   datar7   s         r   $test_frame_describe_unstacked_formatr   o   s'    	'D15'D15'D15F 	'D1:'D1:'D19G
 
Vw7	8BZZ ''002F
288u$$--/66==?
288u$$--/66==?D UEN1KH
 &(+r   zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarninga1a2c                    t        g dg dg dg ddg dd      }|dgk(  r|j                  d	
      }t        j                  g d      j                  ddg      j                  }d d g|j
                  _        t        |      dk(  r"t        ddgddggddgddggdd	g      |_	        nt        ddgd      |_	        | s|j                         }|j                  ||       j                         }t        j                  ||       y )N)c   r   r   X   r   r   )r@   rA   rp   rB   rq   rC   )r         (   2   <   )r   r   bc)r   r   r   r   F)r`   copyr   r   r`   )r   rM   rH   rH   r   r&   rK   rJ   r   r(   rG   rG   r   r)   rI   rG   r   rN   g      @g      ?r   rO   rK   rJ   r   rP   g      @g      @r   rQ   rL   rH   r   r   r   r   r   r   r   r   r   r@   rA   r   r   )r^   r_   namesr}   rE   )r   dropfrom_recordsrU   Tr`   r   rS   r   r   r   reset_indexr   r   r-   rV   )rF   r9   rW   r7   r0   s        r   0test_describe_with_duplicate_output_column_namesr      s    
**#)		
 '	
B v~WWTW" 		
( 
Aq6		
- 0 #D\H
4yA~#Hr2h'AA/?d|
 Bxd3'')ZZxZ099;F&(+r   c            
         t        g dg      } g d| _        | j                  | d         }|j                  g       }g d}dD cg c]%  }t        d|t        j
                  ||ggdg|      ' }}t        j                  |d	      }t        d
dg|gdd
gz  ddgz  z   dd
gz  z   dt        t        d            z  g      |_        dg|j                  _        t        j                  ||       y c c}w )N)r   r@   rA   rp   )r   r@   rA   r   r@   )percentiles)rM   r&   r(   r)   rQ   )        rJ   rH   rG   rv   ra   r   rA   rq   rp   r]   )r   r`   r   r   r*   rR   rf   rg   r   listrc   r   r   r-   rV   )rW   rX   r0   r`   valframesr7   s          r   test_describe_duplicate_columnsr      s    	L>	"BBJ	BqE	B[[R[(F4G # 	Cbffc3/0WMF  yya(H!A A3waS 1s7*AU1X,>?H 3HNN&(+s   *C1c                     t        g ddt        j                  dgdt        j                  dggg d      } | j                  d      }t	        ddgd	      }t        d
gg dgdgdz  t        t        d            g      }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||      }|j                         }t        j                  ||       | j                  dd      }|j                         }|j                         }t        j                  ||       y )N)r@   rA   foor@   barrp   bazABCr   r   r}   r   ru   r   rt   r]   rG   rJ   r   rv   FrE   )r   r*   rR   r   r   r   r   rc   r   r-   rV   r   )rW   rX   expected_indexexpected_colr7   r0   gnis          r   test_describe_non_cython_pathsr      s4    
	BFFE*Q,>?
B 
CBAq6,NRSsQwU1X'L #rvvsCc37"&&"&&"&&"&&"&&"&&"&&I	
 H [[]F&(+
**S5*
)C##%H\\^F&(+r   r   kwargs)g?g?g333333?all)r   includeexcludeintc                    t        g dgg d|       }|d   j                  t              |d<   |d   j                  t              |d<    |j                  d d j                  d      j                  di |} |j                  d      j                  di |j                  d	      j                  d d }t        j                  ||        |j                  d d j                  d      j                  j                  di |} |j                  d      j                  j                  di |j                  d	      j                  d d }t        g |j                  j                  
      |_        t        j                  ||       y )N)r@   rA   rp   r   )r`   r   r   r   r   r   T)r   r    )r   astyper   floatilocr   r   r   r-   rV   r   r   r`   r   r   )r   r   rW   r0   r7   s        r   test_groupby_empty_datasetr      sJ    
I;u	EBgnnS!BsGgnnU#BsG.RWWRa[  %..88F'rzz#''1&1==4=HMMbqQH&(+0RWWRa[  %''00:6:F)rzz#  ))3F3??T?JOOPRQRSH2RZZ%5%56HN&(+r   )numpyr*   pytestpandasrf   r   r   r   r   r   r   pandas._testing_testingr-   r   r1   r8   markparametrizerY   rm   rx   r   filterwarningsr   r   r   r   r   objectr   r   r   r   <module>r      s1       
L- &66*:!;<, =,>,",(,4 '
 4&4,!784, 94,n,*,< 3v"67*uN*tP*w4P, 8,r   