a
    Pf                     @   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   Z/var/www/ai-form-bot/venv/lib/python3.9/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sFJ t|tsTJ || |k s.J 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|| q0d 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 ]J\}}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s4J q4d 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   sf   t g dg ddd}|ddg }t| g dks<J t sbtrbtt|jd ddksbJ 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s6J |j|j|jf|ksNJ t|jdks`J 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s4J |jdksBJ 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s6J t|dsDJ d S )Nc                 S   s   i | ]}d | d| qS )Zfoo_Zbar_r   ).0rG   r   r   r   
<dictcomp>       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| qr| D ]\}}t| qd S )N)r   r   r   r   r   r   )r   r   r   r   r   r9   )id	raw_graderl   gradeFrL   )r   r   r,   rm   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parametrizerj   ru   r   r   r   r   r      s"   			r   )r>   numpyrM   rx   Zpandas.compatr   r   Zpandasr   r   r   r   Zpandas._testingZ_testingr0   r   r   r   r   r   <module>   s   