o
    _~#g                     @   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   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/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)M1701M1802M1903M2004z
2000-01-01r   ME)periodsfreq)non_iso8601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gabcdefgr   object)indexr)   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)drop)		enumerate
itertuplesr   r   r)   ilocreset_indexr0   r1   )r   r   itupserrK   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intsrX   rY   r   FrF   r   )	r   nprandomdefault_rngstandard_normalrangerQ   r   intr   r    rU   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,   rQ   r   r   repr)r   r    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   rc   rd   TestNamerf   )Indexr   r   )	r   rJ   rQ   _fieldsrk   r   r   type__name__ra   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returnrd   rj   rf   )r   r   r   )rk   _1_2)r   rJ   rQ   rl   )r   r    tup2r   r   r   %test_itertuples_disallowed_col_labels|   s   z3TestIteration.test_itertuples_disallowed_col_labelslimit)      i   rF   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 )foo_bar_r   ).0rT   r   r   r   
<dictcomp>   s    zNTestIteration.test_itertuples_py2_3_field_limit_namedtuple.<locals>.<dictcomp>rZ   rl   )r   r_   rJ   rQ   r   tuplehasattr)r   rv   rF   r    rM   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   rA   )id	raw_grader   gradeFrZ   )r   r   r,   r   valuesr[   arraytolistr0   assert_almost_equalrQ   strr.   r   )	r   r    rM   rK   trowr=   r$   colr   r   r   #test_sequence_like_with_categorical   s   


z1TestIteration.test_sequence_like_with_categoricalN)rn   
__module____qualname__r   r#   r(   r+   r-   r3   r>   rN   rW   rb   ri   ro   ru   pytestmarkparametrizer   r   r   r   r   r   r      s$    			r   )rH   numpyr[   r   pandas.compatr   r   pandasr   r   r   r   pandas._testing_testingr0   r   r   r   r   r   <module>   s    