U
    sVc                     @   sV   d dl Z d dlZd dlmZmZ d dlmZmZm	Z	m
Z
 d dlmZ G dd dZdS )    N)IS64is_platform_windows)Categorical	DataFrameSeries
date_rangec                   @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )TestIterationc                 C   s   |  |jkstd S N)keyscolumnsAssertionErrorselffloat_frame r   E/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/frame/test_iteration.py	test_keys   s    zTestIteration.test_keysc                 C   sH   t dddgdddggdddgd	}| D ]\}}t|t js*tq*d S )
N                  abr   )r   items
isinstance_constructor_slicedr   )r   dfkvr   r   r   test_iteritems   s    "zTestIteration.test_iteritemsc                 C   st   dddg}t dddgddd	gg|d
}t|| D ]:\}\}}||ksLtt|tsZt|| |k s4tq4d S )Nr   r   cr   r   r   r   r   r   r   )r   zipr   r   r   r   all)r   colsr   r#   r    r!   r   r   r   
test_items   s    
zTestIteration.test_itemsc                 C   s$   |  D ]\}}|j|kstqd S r	   )r   namer   )r   float_string_framer    r!   r   r   r   test_items_names%   s    zTestIteration.test_items_namesc                 C   s   t t||jstd S r	   )tmZequalContentslistr   r   r   r   r   r   	test_iter)   s    zTestIteration.test_iterc                 C   sT   |  D ]\}}|j| }t|| q|  D ]\}}|j| }t|| q0d S r	   )iterrowslocr+   assert_series_equal)r   r   r)   r    r!   expr   r   r   test_iterrows,   s    

zTestIteration.test_iterrowsc                 C   sL   t ddddgtddddd	}| D ]\}}|j| }t|| q(d S )
NZM1701ZM1802ZM1903ZM2004z
2000-01-01r   M)Zperiodsfreq)Znon_iso8601Ziso8601)r   r   r.   r/   r+   r0   )r   sr    r!   r1   r   r   r   test_iterrows_iso86015   s    

z#TestIteration.test_iterrows_iso8601c              	   C   s   t tdddgd gd gdgg gt gi gd}ttdddd d dg t i gtdddd}t| \}}t|| d S )	Ni  r    )r   r   r#   defgZabcdefgr   object)indexr(   Zdtype)	r   datetimesetr   r,   nextr.   r+   r0   )r   r   expected_resultr   r   r   test_iterrows_cornerA   s$    z"TestIteration.test_iterrows_cornerc                 C   sh  t | D ]J\}}t|dd  }|d |_|j|d d f jdd}t|| qtt	j
dtddddgd	}|jd
dD ]}t|d tstqtdddgdddgdd}|ddg }t| dddgkstt strtt|jd ddkstt|jdd}|jdks,t|j|j|jf|ksFtt|jdksZtddg|_t|jdd}|dkst|jdksttdd td D }	t|	 }
t|
tstt|
d!sttd"d td#D g}t|jd
d}t|tstt|d!sttd$d td%D g}t|jd
d}t|tsTtt|d!sdtd S )&Nr   r   T)Zdropr   )floatsintsrE   rF   r   Fr=   r   r   r   r   )r   r   )datar   )r   r   r   )r   r   r   )r   r   r   )r(   z![(0, 1, 4), (1, 2, 5), (2, 3, 6)]ZTestName)Indexr   r   defreturn)r   r   r   )rI   Z_1Z_2c                 S   s   i | ]}d t | |gqS )r:   )str.0ir   r   r   
<dictcomp>{   s     
 z1TestIteration.test_itertuples.<locals>.<dictcomp>i   _fieldsc                 S   s   i | ]}d | d| qS Zfoo_Zbar_r   rM   r   r   r   rP      s         c                 S   s   i | ]}d | d| qS rR   r   rM   r   r   r   rP      s         )	enumerate
itertuplesr   r   r(   ZilocZreset_indexr+   r0   nprandomZrandnranger   intr   r,   r   r   reprr@   rQ   rI   r   r   type__name__r   tuplehasattr)r   r   rO   tupZserrA   r   ZdfaaZtup2Zdf3Ztup3Zdf_254_columnsZresult_254_columnsZdf_255_columnsZresult_255_columnsr   r   r   test_itertuplesW   sN    
 
zTestIteration.test_itertuplesc           	      C   s   t ddddddgdddddd	gd
}t|d |d< t|jj}t|jj }t	|| |j
ddD ]}t| ql| D ]\}}t| q| D ]\}}t| qd S )Nr   r   r   r   r   r   r   r   r9   )id	raw_graderc   gradeFrG   )r   r   r,   rd   valuesrW   arraytolistr+   Zassert_almost_equalrV   rL   r.   r   )	r   r   rC   rA   trowr5   r#   colr   r   r   #test_sequence_like_with_categorical   s     

z1TestIteration.test_sequence_like_with_categoricalN)r]   
__module____qualname__r   r"   r'   r*   r-   r2   r6   rD   ra   rk   r   r   r   r   r      s   		5r   )r>   ZnumpyrW   Zpandas.compatr   r   Zpandasr   r   r   r   Zpandas._testingZ_testingr+   r   r   r   r   r   <module>   s
   