U
    /e-                     @   s  d dl Z d dlmZ d dlZd dlZd dlZd dlmZ d dl	m
Z d dlmZmZmZ d dlmZmZmZ zd dlZW n ek
r   dZY nX ejjdd Zdd	 Zejjd
d ZdpddZdqddZdd Zdd Zejjedkdddd Z ej!dddgdd Z"ej!dddgdd  Z#ej!d!ej$d"dd#gd$d%d&gd'd d"d#gd(d ej%g d)d*fej$d"dd#gd$d%d&gd'd d"d#gd(d"ej%g d)d*fe%d"d+d&gddfgej!d,d-d.d/d0d1d2d3d4gd5d6 Z&ej!dddgd7d8 Z'ej!dddgd9d: Z(d;d< Z)d=d> Z*ej!dddgd?d@ Z+ej,dAdBdC Z-dDdE Z.ej!dddgdFdG Z/ej!dHdIdJdKdLdMdNgdOdP Z0dQdR Z1dSdT Z2ej3dUdVdW Z4ej!dXd-dYd2d3dZgd[d\ Z5ej!d]d-d.d/gej!d^d d_gd`da Z6drdcddZ7ejj3e dedej!dfd d"gdgdh Z8ejj3e dedej!dfd d"gej!diddgdjdk Z9ejj3e dedej,dAej!diddgdldm Z:dndo Z;dS )s    Ndatetime)	is_scalar)PANDAS_GT_120PANDAS_VERSIONcheck_numeric_only_deprecation)assert_dask_graph	assert_eq	make_metac                  C   s  t jdddgdddgddddgd	t jdddgdddgdddd
gd	t jdd
dgdddgddddgd	d} tdddt g dt  d}t| d|ddddg}| }t dddddddd
gdddd
ddddgd}t dddd
ddddgddddddddgd}t|d}t|d}t jdddgdd
dgddddgd	t jddd
gdddgdddd
gd	t jdddgdddgddddgd	d}t|d|ddddg}	|	 }
||||f||dddddg||f||||f|ddddg|ddg||f|ddg|dddddg||f||	||
f||	ddg||
f|dddg|	dddg||
f||
||
f||||fg
}|D ]2\}}}}t|j	|j
|j	|j
 t|||| qt jdddddd
dddg	dd
dddddddg	ddddddd
dddg	d	}t|d}t jdddddd
dddg	dd
dddd
dddg	ddddddddddg	d	}t|d}t jdddddddd
gdddd
ddddgdtdd	}t jdddd
ddddgddddddddgdtdd	}t|d}t|d}t jdddddddd
gdddd
ddddgdddd
ddddgdtdd	}t jdddd
ddddgddddddddgddddddddgdtdd	}t|d}t|d}||||f|ddg|||f|dddg|dddg||f||||f|dddg|ddg||f|ddddg|dddg||f||||f|dddg|ddg||f||||f||||f||||fg}|D ]:\}}}}t|j	|j
|j	|j
dd t||||dd q~d S )N                  abr   index      	   )xr   )r   r   )r   r   i8r   Zparent_metar   
   ))yr   )r   r   )r   r   r   Zaaabcdehabcdefghr   r   c)r   r!   dr   r!   hr   eFallow_comparison_ops)pd	DataFramer
   Indexddcomputefrom_pandasrepartitioncheck_series_arithmeticsr   r   check_frame_arithmeticslist)dskmetaddf1pdf1pdf2pdf3ddf2ddf3Zdsk4ddf4pdf4caseslrelerpdf5ddf5pdf6ddf6pdf7pdf8ddf7ddf8pdf9pdf10ddf9ddf10 rL   S/tmp/pip-unpacked-wheel-dbjnr7gq/dask/dataframe/tests/test_arithmetics_reduction.pytest_arithmetics   s    $$$ 
 00$$$

"$
"

,,((
"
 
 


rN   c                  C   s   t ddddgddddgd	} tj| dd
}t|j|jd  jt|j|jd  jks^tt|j|jd  jt|j|jd  jkstt|j|jd  jt|j|jd  jkstd S )Nr   r   r   r   r   r   r   r   r   r   Znpartitions)	r'   r(   r*   r,   sortedr   r   daskAssertionError)dfr   rL   rL   rM   #test_deterministic_arithmetic_names   s
     00rU   c                  C   sj  t jdddddgdddddgddddddgd} t| d}t jddd	dd
gdddd	dgddddd	dgd}t|d}t jdddddgdddddgddddddgd}t|d}t jddd	dd
gdddd	dgddddddgd}t|d}t jdddddgdddddgddddddgd}t|d}	t jddd	dd
gdddd	dgdddddd	gd}
t|
d}||| |f|||| f|dddg|dddg| |f|ddddg|ddddg|| f||||f||||f|dddddg|dddddg||f|ddg|ddddg||f|	|||
f||	|
|f|	ddd
dg|dddd	g||
f|dd	g|	ddddg|
|f||| |f|| || f||||f||||f|	|
||
f|||
|fg}|D ]:\}}}}t|j|j|j|jdd t||||dd qt jdddddd	dd
gdd	dd
ddddgddddd
ddddgd}t jdd	dd
ddddgddddddddgddddd
ddddgd}t|d}t|d}t jdddddd	dd
gdd	dd
ddddgddddd
ddddgd}t jdd	dd
ddddgddddddddgddddd
ddddgd}t|d}t|d}||||f||||f|jdddgdd|jddddgdd||f|dd
ddg|jddd
ddgdd||f|jddddgdd|jddddgdd||f||||f||||f||||f||||f||||f||||fg}|D ]:\}}}}t|j|j|j|jdd t||||dd q*d S )Nr   r   r   r   r   r   r   r   r   r   r   r               Fr%   r      T)force   )	r'   r(   r*   r,   r-   r.   r   r   r/   )r4   r3   r5   r7   r6   r8   r:   r9   r@   rA   rB   rC   r;   r<   r=   r>   r?   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rL   rM    test_arithmetics_different_index   s          

"&

"

&"





((((







!r_   Tc                 C   s  t | tjstt |tjtjfs&tt |tjs6tt |tjsFtt| | t|| t| | ||  t| | ||  t| | ||  t| | ||  t| | ||  t| | ||  t| | ||  |rt| |@ ||@  t| |B ||B  t| |A ||A  t| |k||k t| |k ||k  t| |k||k t| |k||k t| |k||k t| |k||k t| ||| t| ||| t| ||| t| 	||	| t| 
||
| t| ||| t| d |d  t| d |d  t| d |d  t| d |d  t| d@ |d@  t| dB |dB  t| dA |dA  t| d |d  t| d |d  t| d |d  t| dk|dk t| dk |dk  t| dk|dk t| dk|dk t| dk|dk t| dk|dk td| d|  td| d|  td| d|  td| d|  td|@ d|@  td|B d|B  td|A d|A  td| d|  td| d|  td| d|  td|kd|k td|k d|k  td|kd|k td|kd|k td|kd|k td|kd|k t| d|d t| d|d t| d|d t| 	d|	d t| 
d|
d t| d|d t|  |  tt| t| |rt| |k ||k  d S Nr   T)
isinstancer*   SeriesrS   r'   r	   ltgtlegeneeqabsr<   r=   r>   r?   r&   rL   rL   rM   r.     s    

r.   c                 C   s  t | tjstt |tjtjfs&tt |tjs6tt |tjsFtt| | t|| t| | ||  t| | ||  t| | ||  t| | ||  t| | ||  t| | ||  t| | ||  |rt| |@ ||@  t| |B ||B  t| |A ||A  t| |k||k t| |k ||k  t| |k||k t| |k||k t| |k||k t| |k||k t| ||| t| ||| t| ||| t| 	||	| t| 
||
| t| ||| t| d |d  t| d |d  t| d |d  t| d |d  t| d@ |d@  t| dB |dB  t| dA |dA  t| d |d  t| d |d  t| d |d  t| dk|dk t| dk |dk  t| dk|dk t| dk|dk t| dk|dk t| dk|dk td|  d|  td|  d|  td|  d|  td|  d|  td| @ d|@  td| B d|B  td| A d|A  td|  d|  td|  d|  td|  d|  td| kd|k td| k d|k  td| kd|k td| kd|k td| kd|k td| kd|k t| d|d t| d|d t| d|d t| 	d|	d t| 
d|
d t| d|d t|  |  tt| t| |rt| |k ||k  d S r`   )ra   r*   r(   rS   r'   r	   rc   rd   re   rf   rg   rh   ri   rj   rL   rL   rM   r/   c  s    

r/   c                  C   s  t d} t d}tjd| idd}tjd|idd}t|tjjsNtt|tjjs`tt||  t|| t|| | |  t|| | |  t|| | |  t|| | |  t|| | |  t|| | |  t|| | |  t||@ | |@  t||B | |B  t||A | |A  t||k| |k t||k | |k  t||k| |k t||k| |k t||k| |k t||k| |k t|d | d  t|d | d  t|d | d  t|d | d  t|d	@ | d	@  t|d	B | d	B  t|d	A | d	A  t|d | d  t|d | d  t|d | d  t|dk| dk t|dk | dk  t|dk| dk t|dk| dk t|dk| dk t|dk| dk td| d|  td| d|  td| d|  td| d|  td	|@ d	|@  td	|B d	|B  td	|A d	|A  td| d|  td| d|  td| d|  td|kd|k td|k d|k  td|kd|k td|kd|k td|kd|k td|kd|k t| |   tt|t|  t||k | |k  d S )
Nr   r   )r<   r   r<   r   )r=   r   r=   r   T)	npZint64r*   coreScalarra   rS   r	   ri   )r>   r?   r<   r=   rL   rL   rM   test_scalar_arithmetics  sv    



rn   c               
   C   s  t jddidd} d}tddddd	d
dg}t |d}tddddd	d
dgdd
d	ddddgd}t |d}||  }t|tjstt	|||  | | }t|t jstt	|||  ||  }t|t jstt	|||  | | }t|t jstt	|||  ||  }t|tjs&tt	|||  | | }t|t jsNtt	|||  ||  }t|t jsvtt	|||  | | }t|t jstt	|||  d S )Nsr   r   rp   r   r   r   r   r   r   r   r   r   )
r*   rl   rm   r'   rb   r,   r(   ra   rS   r	   )rp   r$   pdsddspdfddfresultrL   rL   rM   +test_scalar_arithmetics_with_dask_instances  s<    ,rv   z1.0.2z1https://github.com/pandas-dev/pandas/issues/32685)reasonc                  C   s  t jtdtjddddgd tjgd tddtdtdd	} t jtjddtd
tdd	}| j}|j}t j	tjdtdd}t
| d}t
|d}|j}|j}t
jddidd}	||| |f||||f|dddg|| |f|ddddg|||f||ddg| |f||dddddg||f|d| df|d|df||	| df||	|dff
D ]\}
}}}t|
| t|| t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd qb||| |f||j | |j ffD ]\}
}}}t|
| t|| t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t|
j|dd|j|dd t!"t#|
|fdd q||| |f||| |ffD ]\}
}}}t|
| t|| dD ]}t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d t|
j||d|j||d qސqd S )Nr   r   r   r   r   )ABCDZ
abcdefghijABCD)r   columnsZ
abcdefghjkZABCXZ
ABCDXabcder   ro   rp   r   r   fjr   kr"   r#   r   
fill_valueaxisc                 S   s   | j |ddS )Nr   r   )add)r<   r=   rL   rL   rM   <lambda>      z6test_frame_series_arithmetic_methods.<locals>.<lambda>r   r   r   r}   )$r'   r(   rk   Zarangenanr0   randomZrandnrx   rb   r*   r,   rl   rm   r-   r	   r   submuldivdividetruedivfloordivpowmodZraddZrsubZrmulZrdivZrtruedivZrpowZrmodXpytestraises
ValueError)r4   r5   Zps1Zps2Zps3r3   r7   Zds1Zds2rp   r<   r=   r>   r?   r   rL   rL   rM   $test_frame_series_arithmetic_methods,  s    

  







"*

&


r   split_everyFr   c              
   C   s  t jdddgdddgdddgd	d
ddgdt jdddgdddgdddgd	dddgdt jdddgd
d
d
gdddgd	dddgdd}tdddd	t g dt  d}t|d|d
dddg}| }t dgtjgd  dg tjgd  }t	|d}t dgtjgd  }t	|d}t tjgd }	t	|	d}
t jdddddgt
d}t	|d}|j|jf|j|jf|j|jf|d |d f|d |d f||f||f|
|	f||ff	D ]\}}t|tjstt|t jstt|j| d|  t|j| d|  t|j| d|  t|j| d|  t|j| d|  t|j| d|  tr|jd
 }||d  d |d  }t| | |  tr|jd
 }|d |d  |d |d   }d|d  |d |d   }t||  | |  t T tdt t|j| d|  t|j | d|   t|j!| d|!  W 5 Q R X t f tdt t|jd
| d|jd
d t|j d
| d|j d
d t|j!d
| d|j!d
d W 5 Q R X t|j"| d|"  t|j#| d|#  t|jd| d|jdd t|jd| d|jdd t|jd| d|jdd t|jd| d|jdd t|jd| d|jdd t|jd| d|jdd t|j d| d|j dd t|j!d| d|j!dd t|jdd
| d |jdd
d! t|j dd
| d |j dd
d! t|j!dd
| d |j!dd
d! t|j"d| d|j"dd qt$|jj| dd" t$|jj| dd# t$|jj| dd$ t$|jj| dd% t$|jj| dd& t$|jj| dd' t$|jj | dd( t$|jj!| dd) t$|jjd
| dd' t$|jj d
| dd( t$|jj!d
| dd) t$|jj"| dd* t$|jj#| dd+ t|j%j| d|j%  t|j%j| d|j%  t|j%j| dt &|j%  d S ),Nr   r   r   r   r   r   TFr    r   r   r   l   "9 l   M ivr   r   r   boolr   r   dtyper   r   r   g      ?ignoreddofr   r   skipnar   r   r   r   r   r   r   z
series-sumzseries-prodz
series-minz
series-maxzseries-countz
series-stdz
series-varz
series-semzseries-meanzdrop-duplicates)'r'   r(   r
   r)   r*   r+   rb   rk   r   r,   r   r   r   r!   ra   rS   r	   sumprodproductminmaxcountscipyshapeskewkurtosiswarningscatch_warningssimplefilterRuntimeWarningstdvarsemmeannuniquer   r   Znotnull)r   r1   r2   r3   r4   Znans1Znands1Znans2Znands2Znans3Znands3ZboolsZbooldsrr   rq   nZbias_factorZfactoroffsetrL   rL   rM   test_reductions  s     

*




 
 
& 

 
r   c              	   C   s   t t dddtjdg}t|d}t|j| d|  t|j	| d|	  t|j
| d|
  t|j| d|  d S )Nr   r   r   r   r   )r'   rb   to_timedeltark   r   r*   r,   r	   r   r   r   r   )r   dsrr   rL   rL   rM   test_reductions_timedelta&  s    r   zframe,axis,outr   r   r   r   r   r   r   Zfloat64r   g      @redfuncr   r   r   r   r   r   r   r   c           	      C   s   t | d}t tdgd }|d k	r8t |d}tt|}t| j|}t|j|}|dkrt|||d|d n||||d t||| |d |||d|d	 t||| |d |||d
|d	 t||| |d d S )Nr   r   r   )r   r   )r   r   out)r   r   r   Fr   r   r   r   )	r*   r,   r'   rb   r   getattrrk   	__class__r	   )	framer   r   r   Zdsk_inZdsk_outZ
np_redfuncZ
pd_redfuncZdsk_redfuncrL   rL   rM   test_reductions_out1  s    
r   c              	   C   s"  t jtjjddgddddddgd	}td
d |d< t|d}t|j	| d|	  t|j	d| d|j	dd t|j	d| d|j	dd t|j
| d|
  t|j
d| d|j
dd t|j
d| d|j
dd t|jj	| d|j	  t|jj
| d|j
  tt jdddddgdddddgdd}tt tjjddgddd}|j	| |d t||	  |j	d| |d t||j	dd |j	| d|d t||j	dd |j
| |d t||
  |j
d| |d t||j
dd |j
| d|d t||j
dd d S )NTF)d   r   )sizerx   ry   rz   r{   r}   abcder^   Er   r   r   r   r   r   r   r   )r   )r   r   r   )r   r   r   )r'   r(   rk   r   choicer0   r*   r,   r	   allanyrx   rb   )r   rT   rt   Zddf_out_axis_defaultZddf_out_axis1rL   rL   rM   test_allany`  sD     
  r   c                 C   s  t ddddgddddgd	}tj|dd
}||jfD ]J}|j| dj|j| djks^t|j| dj|j| djks~t|j	| dj|j	| djkst|j
| dj|j
| djkst|j| dj|j| djkst|j| dj|j| djkst|j| dj|j| djks t|j| dj|j| djksBt|j| dj|j| djksdt|j| dj|j| djks8tq8|jj| dj|jj| djkstd S )Nr   r   r   r   r   r   r   r   rO   rP   r   )r'   r(   r*   r,   r   r   _namerS   r   r   r   r   r   r   r   r   r   r   )r   rT   rt   r   rL   rL   rM   "test_deterministic_reduction_names  sF     r   c               	   C   s  t jdddgdddgddddgd	t jdddgdddgdddd
gd	t jdd
dgdddgddddgd	d} tdddt g dt  d}t| d|ddddg}| }dD ]}|j|jfD ]}tt	||fdd tt	||fdd tt	||fdd tt	||fdd tt	||fdd tt
||fdd tt	||fdd tt	||fdd tt	||fdd tt	||fdd qqd S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r}   c                 S   s   | j |dS Nr   )r   rp   r   rL   rL   rM   r     r   z4test_reduction_series_invalid_axis.<locals>.<lambda>c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   c                 S   s   | j |dS r   )r   r   rL   rL   rM   r     r   )r'   r(   r
   r)   r*   r+   r   r   r   r   	TypeError)r1   r2   r3   r4   r   rp   rL   rL   rM   "test_reduction_series_invalid_axis  s.    $$$ 
 r   c               	   C   s  dd } t dddddg}t|d}t| |  | ||d	 | ||d
 t| |  t| |  t| |  | ||d | ||d | ||d | ||d | ||d t|	 |	  t t j
dddddgddt t j
tdddt t jddddfD ]}t|d}| ||d | ||d	 | ||d
 t| |  t| |  t| |  tr|jdkrn| ||d | ||d | ||d | ||d | ||d t|	 |	  q t t jdddd}t|d}t| |  t| |  t| |  t| |  | ||d | ||d t|	 |	  d S )Nc                    s8   t ttf fdd t ttffdd d S )Nc                      s   t    S N)r   r+   rL   )r"   funcrL   rM   r     r   zJtest_reductions_non_numeric_dtypes.<locals>.check_raises.<locals>.<lambda>c                      s   t   S r   )r   rL   )r   prL   rM   r     r   )r   r   r   r   )r"   r   r   rL   )r"   r   r   rM   check_raises  s    z8test_reductions_non_numeric_dtypes.<locals>.check_raisesr   r   r!   r"   r$   r   r   r   r   r   r   r   r   r   r   r   r   T)Zorderedr   z
2011-01-01r{   )freqperiodsr   zdatetime64[ns]z1 days)r'   rb   r*   r,   r	   r   r   r   r   r   ZCategoricalr0   
date_ranger   r   Ztimedelta_range)r   rq   rr   rL   rL   rM   "test_reductions_non_numeric_dtypes  sV    	r   c              	      sx  t jdddgdddgddddgd	t jdddgdddgdddd
gd	t jdd
dgdddgddddgd	d}tdddt g dt  d}t|d|ddddg   }t j| d|  t j| d|  t j	| d|	  t j
| d|
  t j| d|  t j| d|  t j| d|  t j| d|  t j| d|  t jd| d|jdd t jd| d|jdd t jd| d|jdd t j| d|  dD ]~}t j|| d|j|d t j|| d|j|d t j	|| d|j	|d t j
|| d|j
|d t j|| d|j|d t j|| d|j|d t j|| d|j|d t j|| d|j|d t j|| d|j|d t j|d| d|j|dd t j|d| d|j|dd t j|d| d|j|dd t j|| d|j|d qtt fdd t j| dd t j| dd t j
| dd t j| dd t j| dd t j| dd  t j| dd! t j| dd" t j| dd# t j| dd! t j| dd" t j| dd# t j| dd  t j| dd! t j| dd" t j| dd# t j| dd t j| dd t jd| dd t jd| dd t j
d| dd t jd| dd t jd| dd t jd| dd$ t jd| dd  t jd| dd% t jd| dd& d S )'Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   )r   r   c                      s    j dd S )NZ	incorrectr   )r   r+   rL   r3   rL   rM   r   S  r   z'test_reductions_frame.<locals>.<lambda>zdataframe-sumzdataframe-prodzdataframe-minzdataframe-maxzdataframe-countzdataframe-varZmoment_chunkZ
moment_aggvalueszdataframe-stdzdataframe-semzdataframe-mean)r'   r(   r
   r)   r*   r+   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r1   r2   r4   r   rL   r   rM   test_reductions_frame  s    $$$ 
 
 
 r   z1ignore:Dropping of nuisance columns:FutureWarningc            
      C   s  t ddddddddgd	d
ddtjdddgt jgdd tddD  tdt dddddddtjgddgd d} t	| d}| j
dddd}t	|d}t| j
dd |j
dd  t  |j
dd }W 5 Q R X t||j
dd  t  |  }W 5 Q R X t||  t  |  }W 5 Q R X t||  t|  |  t|  |  t|  |  t  |  }W 5 Q R X t||  t  | jdd}W 5 Q R X t||jdd t  | }W 5 Q R X t||  t  |jdd}W 5 Q R X t||jdd t  |jdd}W 5 Q R X t||jdd t  | }W 5 Q R X t||  t  |jdd}W 5 Q R X t||jdd t  |jdd}W 5 Q R X t||jdd t  |jddd}W 5 Q R X t||jddd t|  |  |ddg }| j|jksNt| dg }t	|d}t  |jdd}W 5 Q R X t||jdd t  | }W 5 Q R X t||  | ddd g }t	|d}	t| |	  d S )!Nr   r   r   r   r   r   r   r         ?       @      @      @      @      @       @c                 S   s   g | ]}t d |dqS i  r   r   .0irL   rL   rM   
<listcomp>  s     z0test_reductions_frame_dtypes.<locals>.<listcomp>r   TFintfloatdtstr	timedeltar   r   )r   Zinplacer   r   r   r   r   )r   r   r   r   r   )r'   r(   rk   r   NaTranger0   r   r*   r,   Zdropr	   r   r   r   r   r   r   r   r   r   r   r   _get_numeric_datarR   rS   )
rT   rt   Zdf_no_timedeltaZddf_no_timedeltaexpectedZnumericsZdf_tdZddf_tddf_numericsddf_numericsrL   rL   rM   test_reductions_frame_dtypesz  s    
"
r   c                  C   sd  t ddddddddgd	d
ddtjdddgt jgdd tddD  tdt dddddddtjgddgd d} t	| d}ddi}dddddddddd g
}|D ]\}t
t| |f |t||f ||d!kotd" tjtd#d$ t||dd% W 5 Q R X qt
| jf d&d'i||jf d&d'i| t
| jf d&d'i||jf d&d'i| t
| jf d&d'i||jf d&d'i| t
| jf d(di||jf d(di| t
| jf dd'd)||jf dd'd)| t
|  |  | d*d+d,g }|d*d+d,g }t
||  | j|jks,t|D ].}t
t|| t|| |d!koVtd" q0d S )-Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                 S   s   g | ]}t d |dqS r   r   r   rL   rL   rM   r     s     z=test_reductions_frame_dtypes_numeric_only.<locals>.<listcomp>r   TFr   numeric_onlyr   r   r   r   r   r   r   r   r   r   )r   r   )Zcheck_dtypez'numeric_only=Falsematch)r   r   r   r   r   r   r   r   )r'   r(   rk   r   r   r   r0   r   r*   r,   r	   r   r   r   r   NotImplementedErrorr   r   r   r   rR   rS   )rT   rt   kwargsfuncsr   r   r   rL   rL   rM   )test_reductions_frame_dtypes_numeric_only  sb    

**** 

r   c                 C   s  t ddtjdddddgddtjtjtjdtjtjgtjgd d}t|d	}t| |j| d
 t| |j| d
 t|	 |j	| d
 t|
 |j
| d
 t| |j| d
 t| |j| d
 t  tdt t| |j| d
 t| |j| d
 t| |j| d
 t|jdd|jd| d t|jdd|jd| d t|jdd|jd| d W 5 Q R X t| |j| d
 tjdd t|jdd|jd| d t|jdd|jd| d t|j	dd|j	d| d t|j
dd|j
d| d t|jdd|jd| d t|jdd|jd| d t|jdd|jd| d t|jdd|jd| d t|jddd|jdd| d t|jddd|jdd| d t|jddd|jdd| d t|jdd|jd| d t|jddd|jdd| d t|jddd|jdd| d t|j	ddd|j	dd| d t|j
ddd|j
dd| d t|jddd|jdd| d t|jddd|jdd| d t|jddd|jdd| d t|jddd|jdd| d t|jdddd|jddd| d t|jdddd|jddd| d t|jdddd|jddd| d t|jddd|jdd| d W 5 Q R X d S )Nr   r   r   r   r   r   r   r    r   r   r   r   r   r   T)recordFr   r   r   r   r   r   )r   r   r   )r   r   r   )r   r   r   r   )r'   r(   rk   r   r*   r,   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   rT   rt   rL   rL   rM   test_reductions_frame_nan  s    

&
 
 
 r  
comparisonrc   rd   re   rf   rg   rh   c              	   C   s   t dddddddg}t ddd	tjddd
g}t|d}t|d}d}t|| }t|| }t|||d|||d d S )Nr   r   r   r   r   r   r   r]   r   g333333@r   )r'   rb   rk   r   r*   r,   r   r	   )r  rp   Zs_nanr   Zds_nanr   Zcomparison_pdZcomparison_ddrL   rL   rM   test_series_comparison_nan  s    



r  c                  C   s:   t jdd dgt  d} t| d}t|  |  d S )Nr   r   r   )r'   rb   Z
Int32Dtyper*   r,   r	   r   r   rL   rL   rM   test_sum_intna  s    r  c                  C   s   t tjd} t tjd}tj| dd}tj|dd}t|d}t| d}t|d |d  t|d |d  t||}t| |}t|d |d  t|d |d  d S )Nr   r   rP   r   r   r   )	r'   rb   rk   r   Zrandr*   r,   divmodr	   )Zdf1Zdf2r3   r7   ru   r   rL   rL   rM   test_divmod  s    



r  z	not scipyc                  C   s\   ddl m}  ddlm} tttd}tj	|dd}|| 
|ddtj
|dd d S )Nr   )stats)r	   r   r   rP   )Z
dask.arrayr	  Zdask.array.utilsr	   r'   rb   r0   r   r*   r,   Zmomentr   )r	  r	   rT   rt   rL   rL   rM   test_moment  s
    r
  r   r   r   c                 C   s~   t  }tj|dd}t|j| }t|j| }t|||| t jddd}t j|d}tj|dd}t|||| d S )Nr   rP   2000r   )r   r   )r'   r(   r*   r,   r   r   r	   r   )r   rs   rt   Zdsk_funcZpd_funcidxrL   rL   rM   test_empty_df_reductions  s    r  method	min_countr   c                 C   sf   t jdggdgd}tj|dd}t|d | }||d }|dkrT|dksbtn|tjksbtd S )Nr   r   r   rP   )r  r   )	r'   r(   r*   r,   r   r+   rS   rk   r   )r  r  rT   rt   r   ru   rL   rL   rM   test_series_agg_with_min_count  s    r    c                 C   sV   t | rt| g} t |r(t|g}| j|jks8ttt| t||d d S )N)atol)r   r'   rb   r   rS   r	   Z
to_numeric)t1t2r  rL   rL   rM   assert_near_timedeltas  s    r  z,std() for datetime only added in pandas>=1.2r   c                 C   s   t dd tdD dd tdD d}t|d}t|d  |d   t|d  |d   t|j| d |j| d t|j| d |j| d d S )	Nc                 S   s   g | ]}t d |d  qS )a r   fromtimestampr   rL   rL   rM   r     s    z7test_datetime_std_creates_copy_cols.<locals>.<listcomp>r   c                 S   s   g | ]}t d |d  qS )r  i r  r   rL   rL   rM   r     s    dt1dt2r   r  r   )	r'   r(   r   r*   r,   r	   r   r  r+   )r   rs   rt   rL   rL   rM   #test_datetime_std_creates_copy_cols  s    r  r   c              	      sH  d}t jt jt jgd tddt t jdd t|d D tdddgdd}dd t|D }t j|t t |d	tdd}td
dD ], t t  fdd|D |d  < qt|d}t	|dg j
| |d |dg j
| |d t	|d j
|d |d j
|d t	|j
| |d |j
| |d d S )N   r[   r   c                 S   s   g | ]}t d |d  qS ar  r  r   rL   rL   rM   r     s   z9test_datetime_std_with_larger_dataset.<locals>.<listcomp>F)Zignore_indexc                 S   s   g | ]}d |d  qS )l   TVr 5 l   Iw| rL   r   rL   rL   rM   r     s    r  r   r   c                    s   g | ]}t |d    qS )gQ?)r   )r   r   r   rL   rM   r     s     r   r  r  r   )r'   concatrb   r   r   Zto_datetimer(   r*   r,   r  r   r+   )r   r   Znum_rowsr  Zbase_numbersrs   rt   rL   r!  rM   %test_datetime_std_with_larger_dataset  sL    
   r#  c                 C   s
  t dd tdD dd tdD dd tdD d}t|d}t|dg jd	| d
|dg jd	| d
 t|jd	| d
|jd	| d
 t t jgdd tdD  t jg dd tdD dd tdD d}t|d}t|jd	| d
|jd	| d
 d S )Nc                 S   s   g | ]}t d |d  qS r  r  r   rL   rL   rM   r   7  s    z?test_datetime_std_across_axis1_null_results.<locals>.<listcomp>r   c                 S   s   g | ]}t d |d  qS )r   iR r  r   rL   rL   rM   r   :  s    c                 S   s   g | ]}|qS rL   rL   r   rL   rL   rM   r   =  s     )r  r  numsr   r  r   r  c                 S   s   g | ]}t d |d  qS r  r  r   rL   rL   rM   r   O  s     c                 S   s   g | ]}t d |d  qS r  r  r   rL   rL   rM   r   Q  s    rW   c                 S   s   g | ]}t d |d  qS )r   iO r  r   rL   rL   rM   r   T  s    )r  r  Zdt3)r'   r(   r   r*   r,   r	   r   r   )r   rs   rt   r5   r7   rL   rL   rM   +test_datetime_std_across_axis1_null_results-  s@     r%  c                	   C   s@   t jtdd( tjtdddgiddj  W 5 Q R X d S )NzB`std` is only supported with objects that are Dataframes or Seriesr   testr   r   rP   )	r   r   r   r*   r,   r'   r(   r   r   rL   rL   rL   rM   test_std_raises_on_index_  s
    r'  )T)T)r  )<r   r   Znumpyrk   Zpandasr'   r   Zpandas.api.typesr   Zdask.dataframeZ	dataframer*   Zdask.dataframe._compatr   r   r   Zdask.dataframe.utilsr   r	   r
   r   ImportErrormarkZslowrN   rU   r_   r.   r/   rn   rv   Zxfailr   Zparametrizer   r   r(   rb   r   r   r   r   r   r   filterwarningsr   r   r  r  r  r  Zskipifr
  r  r  r  r  r#  r%  r'  rL   rL   rL   rM   <module>   s   

r	
z
U
TF/
l
 


$$ 
0
.C
[
Z=
j






  2 +