o
    ŀg~6                     @   s  d dl Zd dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlmZ ejdddgdd Zdd	 Zejd
ddgejdddgejddejd dddgejdejg dddejg dddgdd Zejdg ddd Zejdeddgeededge	ededgeededggd d! Zd"d# Zejd$ejd
ddgejdddgejddejd dddgd%d& Zd'd( Zejd)ddgejd*dd+ggd,d- Z ejdg d.ejd/dg d0gejd*dd+d1gg d2gd3d4 Z!ejdddgd5d6 Z"ejd7e
egejd8ddgdfddgdfd+d1gdfgd9d: Z#ejd7e
egd;d< Z$d=d> Z%ejd/dg d0gd?d@ Z&ejdg dAdBdC Z'dDdE Z(dFdG Z)dS )H    N)		DataFrameDatetimeIndexIndexPeriodPeriodIndexSeries	TimedeltaTimedeltaIndex	Timestamp)	get_arraydtypeint64c                 C   s`  t g ddd}t || d}tt|t|sJ |r'|jjd j s'J |rDd|jd< |jd dks7J tt|t|rCJ n/t	
| d|jd< W d    n1 sYw   Y  |jd dksgJ tt|t|ssJ t || d}|rd|jd< |jd dksJ d S t	
| d|jd< W d    n1 sw   Y  |jd dksJ d S )N         namer   r   r   r   )r   npshares_memoryr   _mgrblocksrefshas_referenceiloctmassert_cow_warning)r   using_copy_on_writewarn_copy_on_writeserresult r"   \/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/copy_view/test_constructors.pytest_series_from_series   s,   

r$   c              	   C   s   t g ddd}|j|j t|j|jdfD ]A}t ||d}t|j|js+J t	| d|j
d< W d    n1 s@w   Y  | rQ|j
d dksPJ q|j
d dksZJ qt |g dd}t|j|jrmJ | rz|jjd j r|J d S d S )	Nr   r   r   idx)indexr   r   )r   r   r   r   )r   r&   copylistrenamer   r   valuesr   r   r   r   r   r   r   )r   r   r    r&   r!   r"   r"   r#   $test_series_from_series_with_reindexB   s(   
r+   fastpathFTr%   r   r   )startstopsteparrr   r   Int64c           
      C   s   |d u s|d ur
d}d}t jt|d t||||d}W d    n1 s&w   Y  | }t|d|}| rBtt||rAJ n
tt||sLJ d|d< | rZt 	|| d S tg d|d urd|n|j
d	}	t 	||	 d S )
NF1The 'fastpath' keyword in pd.Series is deprecatedmatch)r   r&   r,   _datad   r   r6   r   r   r   )r   assert_produces_warningDeprecationWarningr   r'   getattrr   r   r   assert_series_equalr   )
r   r%   r   r,   r0   msgr    ser_origdataexpectedr"   r"   r#   test_series_from_array`   s    r@   r'   )TFNc                 C   s8   t jg ddd}t|d|d}t t||rJ d S )Nr   r   r   int32)r   r'   )r   arrayr   r   r   )r   r'   r0   r    r"   r"   r#   &test_series_from_array_different_dtype{   s   rC   r   
2019-12-31
2020-12-31z1 daysz2 daysc                 C   sz   t |}|jdd}| r!tt|t|sJ |jdr J ntt|t|r-J |jd |jd< t	|| d S )NTdeepr   r   )
r   r'   r   r   r   r   _has_no_referencer   r   assert_index_equal)r   r%   r    r?   r"   r"   r#   test_series_from_index   s   
rJ   c                 C   sP   t g ddd}t|dd}tt|t|rJ | r$|jds&J d S d S )Nr   r   r   rA   r   )r   r   r   r   r   r   rH   )r   r%   r    r"   r"   r#   'test_series_from_index_different_dtypes   s   rK   z.ignore:Setting a value on a view:FutureWarningc           	      C   s   t g ddd}| }d}tjt|d t |j|||d}W d    n1 s)w   Y  tt|t|s:J | rD|j	drDJ d|j
d< | rSt|| d S t g d	}t|| d S )
Nr   r   r   r2   r3   )r   r,   r&   r   r6   r7   )r   r'   r   r8   r9   r   r   r   r   rH   r   r;   )	r   r%   r   r,   r    r=   r<   ser2r?   r"   r"   r#   test_series_from_block_manager   s   
rM   c                 C   s   t g ddd}d}tjt|d t |jdd}W d    n1 s#w   Y  tt|t|r4J | r>|jds@J d S d S )Nr   r   r   z&Passing a SingleBlockManager to Seriesr3   rA   r   )	r   r   r8   r9   r   r   r   r   rH   )r   r    r<   rL   r"   r"   r#   .test_series_from_block_manager_different_dtype   s   rN   use_mgrcolumnsac           
      C   s  t dg di}| }|r|j}t}n|}d }d}tj||dd t |}	W d    n1 s1w   Y  tt|dt|	dsDJ t	|oJ|  d|	j
d< W d    n1 s\w   Y  | rytt|dt|	drqJ t|| d S tt|dt|	dsJ t||	 d S )NrQ   r   z#Passing a BlockManager to DataFrameF)r4   check_stacklevelr6   r   )r   r'   r   r9   r   r8   r   r   r   r   r   assert_frame_equal)
r   r   rP   rO   dfdf_origr>   warnr<   new_dfr"   r"   r#   $test_dataframe_constructor_mgr_or_df   s(   
rX   )Nr   r1   r&   )r   r   r   b)rQ   rY   cc                 C   s  t g d}t g d}| }tg dg dd|||d}	t||d|||dd}
tt|
dt|s8J t| d|
jd	< W d    n1 sMw   Y  |rhtt|
dt|raJ t	|| n	|jd
 dksqJ t g d}t g d}t||d|||dd}
t| d|jd
< W d    n1 sw   Y  |rtt|
dt|rJ t
|
|	 d S |
jd	 dksJ d S )Nr            rQ   rY   )r&   rP   r   F)r&   rP   r   r'   rQ   
   r   r   r   )r   r'   r   r   r   r   r   r   r   r;   rS   )requestr   r   rP   r&   r   s1s2s1_origr?   r!   r"   r"   r#   "test_dataframe_from_dict_of_series   s:   	rf   c                 C   sx   t g d}t g d}t||dg d| dd}t|d}t|t|r(J d|jd< t|d}t||s:J d S )	Nr   r[   r_   Fr&   r   r'   rQ   r6   ra   r   r   r   r   r   r   )r   rc   rd   rT   
arr_before	arr_afterr"   r"   r#   /test_dataframe_from_dict_of_series_with_reindex  s   


rk   conszdata, dtypec                 C   s   |||d}|  }t||d}tt|t|dsJ | r'|jdr'J t| |d |j	d< W d    n1 s>w   Y  | rMt
|| d S d S )Nr   r   ra   )r'   r   r   r   r   r   rH   r   r   r   assert_equal)r   r   r>   r   rl   objobj_origrT   r"   r"   r#   #test_dataframe_from_series_or_index  s   rq   c                 C   sR   |ddgdd}t |dd}tt|t|drJ | r%|jds'J d S d S )Nr   r   r   r   rA   r   )r   r   r   r   r   rH   )r   rl   ro   rT   r"   r"   r#   3test_dataframe_from_series_or_index_different_dtype2  s   rr   c                 C   s   t tdtdgtd}tjtdd t|}W d    n1 s"w   Y  tt	|t	|dr4J | r>|j
ds@J d S d S )NrD   rE   r   zDtype inferencer3   r   )r   r
   objectr   r8   FutureWarningr   r   r   r   r   rH   )r   r    rT   r"   r"   r#   )test_dataframe_from_series_infer_datetime;  s   
ru   c                 C   st   t g d}t g d}t||d| ddd}t|d}t|t|r&J d|jd	< t|d}t||s8J d S )
N)g      ?g       @g      @r[   r_   r   Frg   rQ   r6   ra   rh   )r&   rc   rd   rT   ri   rj   r"   r"   r#   -test_dataframe_from_dict_of_series_with_dtypeD  s   


rv   )FNTc                 C   sv   t ddgddgg}t||d}| r|dus!|du s!|r.|d u r.t t|d|r,J d S t t|d|s9J d S )	Nr   r   r   r\   r'   FTr   )r   rB   r   r   r   )r   r'   using_array_managerr0   rT   r"   r"   r#   test_frame_from_numpy_arrayU  s   ry   c                 C   s   t dg di}| }tt t |}W d    n1 s!w   Y  | r0|jdr0J t	t
|dt
|ds>J t| d|jd< W d    n1 sSw   Y  | rbt|| d S t|| d S )NrQ   r   r   r6   ra   )r   r'   r   r8   rt   from_recordsr   rH   r   r   r   r   r   rS   )r   r   rT   rU   df2r"   r"   r#   *test_dataframe_from_records_with_dataframee  s   r|   c                 C   sr   t g d}|jdd}td|idd}tt|d|js J | r7|jdr*J d|j	d	< t
|| d S d S )
Nr   TrF   rQ   Frw   r   r6   ra   )r   r'   r   r   r   r   _valuesr   rH   r   r   rI   )r   r%   r?   rT   r"   r"   r#   test_frame_from_dict_of_indexu  s   
r~   )*numpyr   pytestpandaspdr   r   r   r   r   r   r   r	   r
   pandas._testing_testingr   pandas.tests.copy_view.utilr   markparametrizer$   r+   
RangeIndexrB   r@   rC   rJ   rK   filterwarningsrM   rN   rX   rf   rk   rq   rr   ru   rv   ry   r|   r~   r"   r"   r"   r#   <module>   sr    ,
*$


	

,
"
	

