B
    x\                 @   s   d Z ddlZddlZddlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ G dd deZG dd deZdd	 ZdS )
z5
Testing that functions from compat work as expected
    N)PY2builtinsfilterget_range_parameters	iteritemsiterkeys
itervalueslfilterlmaplrangelzipmapnextrangere_typezipc               @   s@   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dS )TestBuiltinIteratorsc             C   s   xzt |||D ]j\\}}}}t|tr*tt|ts8tt|}t||ksPtt||ks`t||kslt||kstqW d S )N)r   
isinstancelistAssertionErrorlen)clsactualexpectedlengthsZiter_resZlist_resZexplength r   7lib/python3.7/site-packages/pandas/tests/test_compat.pycheck_result   s    z!TestBuiltinIterators.check_resultc             C   s   t d}td}||gf}tt df}d}t ddd}tddd}|||gf7 }|d7 }|tt dddf7 }| ||| d S )N
   )r         )   )r   r   r   r   r   )selfactual1actual2r   r   r   r   r   r   
test_range   s    
zTestBuiltinIterators.test_rangec             C   sv   dd }t dt dt dg}t|f| }t|f| }||gf}tt j|f| f}d}| ||| d S )Nc             S   s   | | | S )Nr   )xyzr   r   r   <lambda>.   s    z/TestBuiltinIterators.test_map.<locals>.<lambda>r   )r   )r   r   r   r
   r   r   )r#   funclstr$   r%   r   r   r   r   r   r   test_map-   s    
zTestBuiltinIterators.test_mapc             C   s\   dd }t td}t||}t||}||gf}d}t t||f}| ||| d S )Nc             S   s   | S )Nr   )r'   r   r   r   r*   8   s    z2TestBuiltinIterators.test_filter.<locals>.<lambda>r   )	   )r   r   r   r   r	   r   )r#   r+   r,   r$   r%   r   r   r   r   r   r   test_filter7   s    


z TestBuiltinIterators.test_filterc             C   sT   t dt dt dg}t| t| gf}tt j| f}d}| ||| d S )Nr   )r   )r   r   r   r   r   r   )r#   r,   r   r   r   r   r   r   test_zipA   s
    zTestBuiltinIterators.test_zipc             C   sL   t tddidkstt tddidks0tt tddidksHtd S )Nr    r!   )r    r!   )r   r   r   r   r   )r#   r   r   r   test_dict_iteratorsH   s    z(TestBuiltinIterators.test_dict_iteratorsN)
__name__
__module____qualname__classmethodr   r&   r-   r/   r0   r1   r   r   r   r   r      s   

r   c               @   s*   e Zd Zejdddddgdd ZdS )	TestCompatFunctionszstart,stop,step)r   r   r!   )   )r   r    )r!         c             C   s   t |||}tr(t|dkr(d\}}}n6trNt|dkrN||d d  }}}n|||  }}}t|\}}	}
||ksxt|	|kst|
|kstd S )Nr   )r   r   r    r    )r   r   r   r   r   )r#   startstopsteprngZstart_expectedZstop_expectedZstep_expectedZstart_resultZstop_resultZstep_resultr   r   r   test_get_range_parametersP   s    z-TestCompatFunctions.test_get_range_parametersN)r2   r3   r4   pytestZmarkZparametrizerA   r   r   r   r   r6   N   s   r6   c               C   s   t tdtstd S )N )r   recompiler   r   r   r   r   r   test_re_typea   s    rF   )__doc__rD   rB   Zpandas.compatr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   objectr   r6   rF   r   r   r   r   <module>   s   H?