o
    թZh                     @   s^   d dl Z 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d Zdd Zdd Zejdg dejdddgd d! Zd"d# Zd$S )%TestIterationc                 C   s   |  |ju s	J d S N)keyscolumnsselffloat_frame r   X/var/www/html/lang_env/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ksJ d S r	   )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loctm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   ZME)Zperiodsfreq)Znon_iso8601Ziso8601)r   r   r.   r/   r0   r1   )r   sr!   r"   r2   r   r   r   test_iterrows_iso86016   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.   r0   r1   )r   r    expected_resultr   r   r   test_iterrows_cornerB   s$   z"TestIteration.test_iterrows_cornerc                 C   s\   t | D ]%\}}t|dd  }|d |_|j|d d f jdd}t|| qd S )Nr   r   T)Zdrop)		enumerate
itertuplesr   r   r)   ZilocZreset_indexr0   r1   )r   r   itupZserrA   r   r   r   test_itertuplesX   s   
zTestIteration.test_itertuplesc                 C   sP   t tjddtddddgd}|jddD ]}t|d	 ts%J qd S )
Nr   r   )floatsintsrJ   rK   r   Fr=   r   )	r   nprandomZdefault_rngZstandard_normalrangerF   r   intr   r    rH   r   r   r   test_itertuples_index_false_   s   z)TestIteration.test_itertuples_index_falsec                 C   sn   t g dg ddd}|ddg }t| g dksJ t s1tr3tt|jd ddks5J d S d S d S )	Nr   r   r   r   datar   ))r   r   r   )r   r   r   )r   r   r   r)   z![(0, 1, 4), (1, 2, 5), (2, 3, 6)])r   r,   rF   r   r   repr)r   r    Zdfaar   r   r   test_itertuples_duplicate_colsh   s   
z,TestIteration.test_itertuples_duplicate_colsc                 C   sd   t g dg ddd}t|jdd}|jdksJ |j|j|jf|ks'J t|jdks0J d S )Nr   r   rS   rT   TestNamerV   )Indexr   r   )	r   r@   rF   _fieldsrZ   r   r   type__name__rQ   r   r   r   test_itertuples_tuple_nameu   s
   z(TestIteration.test_itertuples_tuple_namec                 C   sF   t g dg ddd}t|jdd}|dksJ |jdks!J d S )	Nr   r   )defreturnrT   rY   rV   )r   r   r   )rZ   Z_1Z_2)r   r@   rF   r[   )r   r    Ztup2r   r   r   %test_itertuples_disallowed_col_labels|   s   z3TestIteration.test_itertuples_disallowed_col_labelslimit)      i   r=   TFc                 C   sH   t dd t|D g}t|j|d}t|tsJ t|ds"J d S )Nc                 S   s   i | ]}d | d| qS )Zfoo_Zbar_r   ).0rG   r   r   r   
<dictcomp>   s    zNTestIteration.test_itertuples_py2_3_field_limit_namedtuple.<locals>.<dictcomp>rL   r[   )r   rO   r@   rF   r   tuplehasattr)r   rb   r=   r    rC   r   r   r   ,test_itertuples_py2_3_field_limit_namedtuple   s   z:TestIteration.test_itertuples_py2_3_field_limit_namedtuplec           	      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   r9   )id	raw_graderk   gradeFrL   )r   r   r,   rl   valuesrM   arraytolistr0   Zassert_almost_equalrF   strr.   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-   r3   r6   rD   rI   rR   rX   r^   ra   pytestmarkZparametrizeri   rt   r   r   r   r   r      s$    			r   )r>   numpyrM   rw   Zpandas.compatr   r   Zpandasr   r   r   r   Zpandas._testingZ_testingr0   r   r   r   r   r   <module>   s    