o
    i4?                     @   s  d Z ddlZddlZddlZddlZddlmZ	 ej
jddZG dd dZG dd dZej
jd	ed
d
geddgeddgeeddgd eedgd eedgd eddgeedd
gd ejddgg	dd ddd Zdd Zdd Zdd Zej
dej ddd d!d fej d"dd#gd d!d$fej d%d d!d fej d&d'd d d!d$fgd(d) Z!d*d+ Z"dS ),z1Tests dealing with the NDFrame.allows_duplicates.    NzNot implemented.reasonc                   @   s\  e Zd Zejdeje	g fejddgfej
i fej
dddgifgdd Zejdedged	ded
ejed
dedejgdd Zejdejdg ddejdddgdgedd Zdd Zdd Zejdd	dgejddejdedgejddejddgddgd d! Zd"d# Zejjd$d%d&d' Zejd(ejdddgdjdd)ejdd*d+gdjdd)gi fejdddgdjdd)ejdddgdjdd)gd,difejdddgdjdd)ejdddgdjdd)gd-difej
dddgiddgdjdd)ej
dddgid*d+gdjdd)gi fej
dddgiddgdjdd)ej
dddgiddgdjdd)gd,difej
dddgiddgdjdd)ej
d.ddgiddgdjdd)gd-difej
dddgiddgdjdd)ejddgddgd.d/jdd)gd-difgd0d1 Zejd2ejej
dddgiddgdjdd)ej
d.ddgidd+gdjdd)ddd3dedejej
dddgiddgdjdd)ej
d.ddgidd+gdddd3dedej
dddgiddgdej
d.ddgidd+gdddd3dfgd4d5 Zed6d7 Zejdddged8d9 Z d:S );TestPreservesz	cls, data      Ac                 C   s<   ||}|j jdu sJ ||jdd}|j jdu sJ d S )NTFallows_duplicate_labels)flagsr	   	set_flags)selfclsdataresult r   e/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/generic/test_duplicate_labels.pytest_construction_ok   s   
z"TestPreserves.test_construction_okfuncaaddrenamenameabsc                 C   s6   t jddgddgdjdd}||jjdu sJ d S Nr   r   r   bindexFr   )pdSeriesr   r
   r	   )r   r   sr   r   r   test_preserved_series!   s   z#TestPreserves.test_preserved_seriesotherr   r   r   cr   r   c                 C   sP   t jddgddgdjdd}||\}}|jjdu sJ |jjdu s&J d S r   )r   r   r   alignr
   r	   )r   r!   r   r   r   r   r   r   
test_align0   s   zTestPreserves.test_alignc                 C   sf   t jddgddgdddgdjd	d
}|jdg jjd	u s J |jd d ddgf jjd	u s1J d S )Nr   r         r   Br   r   r   Fr   r   r)   )r   	DataFramer   locr
   r	   r   dfr   r   r   test_preserved_frame;   s
    &z"TestPreserves.test_preserved_framec                 C   s,   t jtdjdd}| jjdu sJ d S )N)dtypeFr   )r   r   floatr   to_framer
   r	   )r   serr   r   r   test_to_frameB   s   zTestPreserves.test_to_framesubframeFT)marksr   c                 C   sx   t jddgdddgdjdd}|r| }t|t jr"|r"| }t||}|jjdu s0J ||jjdu s:J d S )	Nr   r   r   r   r   )r   r   Fr   )	r   r   r   r1   
isinstanceoperatormethodcallerr
   r	   )r   r   r!   r5   r-   r   r   r   test_binopsF   s   zTestPreserves.test_binopsc                 C   s   t dddgijdd}|dg jjdu sJ |d jjdu s"J |jd jjdu s-J |jdg jjdu s9J |jddgf jjdu sGJ d S )Nr   r   r   Fr   r   )r   r*   r   r
   r	   r+   r,   r   r   r   test_preserve_getitemW   s    z#TestPreserves.test_preserve_getitemzUnclear behavior.r   c                 C   sL   t ddgijdd}|d jjdu sJ d|j_|d jjdu s$J d S )Nr   r   Fr   T)r   r*   r   r
   r	   r,   r   r   r   "test_ndframe_getitem_caching_issue_   s   z0TestPreserves.test_ndframe_getitem_caching_issueobjs, kwargsr   r#   dignore_indexaxisr)   r   r   c                 C   s&   t j|fi |}|jjdu sJ d S )NF)r   concatr
   r	   )r   objskwargsr   r   r   r   test_concath   s   VzTestPreserves.test_concatzleft, right, kwargs, expected
left_indexright_indexc                 C   s(   t j||fi |}|jj|u sJ d S N)r   merger
   r	   )r   leftrightrE   expectedr   r   r   r   
test_merge   s   #zTestPreserves.test_mergec                 C   sB   t dg dijdd}|g dd}|jjdu sJ d S )Nr   )r   r   r&   Fr   )r   r   r   count)r   r*   r   groupbyaggr
   r	   )r   r-   r   r   r   r   test_groupby   s   zTestPreserves.test_groupbyc                 C   sz   t jdt jdddddd}|r| }|d jjdu s!J |d jjdu s.J |	d jjdu s;J d S )	Nr   2000   )periodsr   F)r   r   r	   r&   )
r   r   
date_ranger1   rollingmeanr
   r	   ewm	expanding)r   r5   r-   r   r   r   test_window   s   zTestPreserves.test_windowN)!__name__
__module____qualname__pytestmarkparametrizer   r   nparrayr*   r   r9   
itemgetterr:   strupperr   r    not_implementedr%   r.   r3   paramr;   r<   xfailr=   r   rF   rO   rS   r\   r   r   r   r   r      s   
	



$

U
"

r   c                   @   s  e Zd Zejdejddgedfej	dddgifej	ddgddgdfej	dddgifgdd	 Z
ejd
ejddgedej	ddgdej	ddgdgdd Zdd Zejdeddgdfeddgdfeedddgfdeddgdfdfeddgdfeedddgfdeeddgdfdgdd Zejdejdddgddjddejdddgddjddgddifgd d! Zed"d# ZdS )$
TestRaisesz	cls, axesr   )r   r/   r   r   )r   columnsrl   c                 C   sp   |di |}|j jdu sJ d}tjtjj|d |di |jdd W d    d S 1 s1w   Y  d S )NTIndex has duplicates.matchFr   r   )r
   r	   r`   raisesr   errorsDuplicateLabelErrorr   )r   r   axesr   msgr   r   r   test_set_flags_with_duplicates  s   
"z)TestRaises.test_set_flags_with_duplicatesr   r   r   rl   c                 C   sR   d}t jtjj|d d|j_W d    n1 sw   Y  |jjdu s'J d S )Nrm   rn   FT)r`   rp   r   rq   rr   r
   r	   )r   r   rt   r   r   r   +test_setting_allows_duplicate_labels_raises  s
   	
z6TestRaises.test_setting_allows_duplicate_labels_raisesc                 C   sz   t jdddgd}t jddgddgdjdd}d}tjt jj|d	 t ||g W d    d S 1 s6w   Y  d S )
Nr   r   r   r   r   Fr   rm   rn   )r   r   r   r`   rp   rq   rr   rC   r   r   r   rt   r   r   r   test_series_raises'  s   "zTestRaises.test_series_raiseszgetter, targetr   Nr+   ilocc                 C   s   t jddgddgdddgdjd	d
}|rt||}n|}d}tjt jj|d || W d    d S 1 s9w   Y  d S )Nr   r   r&   r'   r(   r   r   r   Fr   rm   rn   )r   r*   r   getattrr`   rp   rq   rr   )r   gettertargetr-   rt   r   r   r   test_getitem_raises.  s    
"zTestRaises.test_getitem_raisesr>   r   rB   Fr   r   rA   c                 C   sN   d}t jtjj|d tj|fi | W d    d S 1 s w   Y  d S )Nrm   rn   )r`   rp   r   rq   rr   rC   )r   rD   rE   rt   r   r   r   test_concat_raisesJ  s   "zTestRaises.test_concat_raisesc                 C   s   t jdg dig ddjdd}t jdg dig dd}d	}tjt jj|d
 t j||ddd W d    d S 1 s>w   Y  d S )Nr   )r   r   r   r"   r   Fr   r)   )r   r   r   rm   rn   TrG   )r   r*   r   r`   rp   rq   rr   rK   rx   r   r   r   test_merge_raises_  s   "zTestRaises.test_merge_raises)r]   r^   r_   r`   ra   rb   r   r   r0   r*   ru   rw   ry   r9   re   ri   r~   r   r   rh   r   r   r   r   r   rk     s^    
	


rk   idxr   r   g?rT   Dr   1D)r   r   c                 C   s
   t | jS rJ   )typer]   xr   r   r   <lambda>w  s   
 r   )idsc                 C   s   d}t jtjj|d tjd| djdd W d    n1 s!w   Y  t jtjj|d tjdddgi| djdd W d    n1 sIw   Y  t jtjj|d tjddgg| d	jdd W d    d S 1 sqw   Y  d S )
Nrm   rn   r   r   Fr   r   r   rv   )r`   rp   r   rq   rr   r   r   r*   )r   rt   r   r   r   test_raises_basicj  s    "r   c                  C   sR   t g d} |  }t jdddgddggit jddgd	d
d}t|| d S )Nr   r   r   r   r#   	positionsr   r   r   r&   r   r   labelr7   r   )r   Index_format_duplicate_messager*   tmassert_frame_equalr   r   rN   r   r   r   $test_format_duplicate_labels_message  s   "r   c                  C   s^   t jdgg dg} |  }t jdddgddggit jdgdd	ggd
}t|| d S )Nr   r   r   r   r   r   r&   r   r   r   )r   
MultiIndexfrom_productr   r*   r   r   r   r   r   r   *test_format_duplicate_labels_message_multi  s   r   c                  C   sh   t dddgijdd} d}tjt|d | jddd	d
gdd W d    d S 1 s-w   Y  d S )Nr   r   r   Fr   Cannot specifyrn   r   r&   r'   T)allow_duplicates)r   r*   r   r`   rp   
ValueErrorinsert)r-   rt   r   r   r   test_dataframe_insert_raises  s
   "r   zmethod, frame_only	set_indexr   T)inplaceset_axisr)   Freset_indexr   c                 C   s   | S rJ   r   r   r   r   r   r     s    c              	   C   s4  t ddgddgdjdd}|d }d|j_d}d	}d
t| v r%t}nd }tjt	|d# t
j||d | | W d    n1 sEw   Y  W d    n1 sTw   Y  |stjt	|d, t
j||d | | W d    n1 syw   Y  W d    d S W d    d S 1 sw   Y  d S d S )Nr   r   r   r(   Fr   r   r   z!Series.set_axis 'inplace' keywordr   rn   )r   r*   r   r
   r	   rf   FutureWarningr`   rp   r   r   assert_produces_warning)method
frame_onlyr-   r   rt   warn_msgwarnr   r   r   test_inplace_raises  s2   


"r   c                  C   s\   t ddgjdd} t| }t| | t dg ijdd} t| }t| | d S )Nr   r   Fr   r   )r   r   r   r   round_trip_pickleassert_series_equalr*   r   )r   r   r   r   r   test_pickle  s   

r   )#__doc__r9   numpyrc   r`   pandasr   pandas._testing_testingr   ra   rj   rh   r   rk   rb   r   PeriodIndexPeriodDatetimeIndex	TimestampTimedeltaIndex	TimedeltaCategoricalIndexIntervalIndexIntervalr   from_tuplesr   r   r   r   r:   r   r   r   r   r   r   <module>   sL     wd
	

	