o
    d                     @   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u s	J d S N)keyscolumnsselffloat_frame r   U/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/frame/test_iteration.py	test_keys   s   zTestIteration.test_keysc                 C   sB   t g dg dgg dd}| D ]\}}t|t jsJ qd S )N                  )ar   br   )r   items
isinstance_constructor_sliced)r   dfkvr   r   r   test_iteritems   s   zTestIteration.test_iteritemsc                 C   sn   g d}t g dg dg|d}t|| D ]\}\}}||ks#J t|ts*J || |k s4J qd S )N)r   r   cr   r   r   )r   zipr   r   r   all)r   colsr    r$   r!   r"   r   r   r   
test_items   s   zTestIteration.test_itemsc                 C   s$   |  D ]\}}|j|ksJ qd S r	   )r   name)r   float_string_framer!   r"   r   r   r   test_items_names%   s   zTestIteration.test_items_namesc                 C   s   t t||jsJ d S r	   )tmZequalContentslistr   r   r   r   r   	test_iter)   s   zTestIteration.test_iterc                 C   sT   |  D ]\}}|j| }t|| q|  D ]\}}|j| }t|| qd S r	   )iterrowslocr,   assert_series_equal)r   r   r*   r!   r"   expr   r   r   test_iterrows,   s   

zTestIteration.test_iterrowsc                 C   sH   t g dtddddd}| D ]\}}|j| }t|| qd S )N)ZM1701ZM1802ZM1903ZM2004z
2000-01-01r   M)Zperiodsfreq)Znon_iso8601Ziso8601)r   r   r/   r0   r,   r1   )r   sr!   r"   r2   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,   r1   )r   r    expected_resultr   r   r   test_iterrows_cornerA   s$   z"TestIteration.test_iterrows_cornerc                 C   sJ  t | D ]%\}}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sNJ qCtg dg ddd}|ddg }t| g dksmJ t strtt|jd ddksJ t|jdd}|jdksJ |j|j|jf|ksJ t|jdksJ ddg|_t|jdd}|dksJ |jdksJ tdd tdD }	t|	 }
t|
tsJ t|
dsJ tdd tdD g}t|jd
d}t|tsJ t|dsJ td d td!D g}t|jd
d}t|tsJ t|ds#J d S )"Nr   r   T)Zdropr   )floatsintsrF   rG   r   F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   )rJ   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      i | ]}d | d| qS Zfoo_Zbar_r   rN   r   r   r   rQ             c                 S   rS   rT   r   rN   r   r   r   rQ      rU      )	enumerate
itertuplesr   r   r)   ZilocZreset_indexr,   r1   nprandomZrandnranger   intr-   r   r   reprrA   rR   rJ   r   r   type__name__r   tuplehasattr)r   r   rP   tupZserrB   r    ZdfaaZtup2Zdf3Ztup3Zdf_254_columnsZresult_254_columnsZdf_255_columnsZresult_255_columnsr   r   r   test_itertuplesW   sL   


zTestIteration.test_itertuplesc           	      C   s   t g dg dd}t|d |d< t|jj}t|jj }t	|| |j
ddD ]}t| q.| D ]\}}t| q9| D ]\}}t| qFd S )N)r   r   r   r   r   r   )r   r   r   r   r   r:   )id	raw_graderf   gradeFrH   )r   r   r-   rg   valuesrZ   arraytolistr,   Zassert_almost_equalrY   rM   r/   r   )	r   r    rD   rB   trowr6   r$   colr   r   r   #test_sequence_like_with_categorical   s   


z1TestIteration.test_sequence_like_with_categoricalN)r`   
__module____qualname__r   r#   r(   r+   r.   r3   r7   rE   rd   rn   r   r   r   r   r      s    		5r   )r?   numpyrZ   Zpandas.compatr   r   Zpandasr   r   r   r   Zpandas._testingZ_testingr,   r   r   r   r   r   <module>   s    