U
    NZf_/                     @   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dddgddejdddgddgdd Zejddddg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
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( d)d( gejd*dd+ggd,d- Zejddddgejd.dd ddggejd*dd+d/gd+d/d0ggd1d2 Z ejdddgd3d4 Z!ejd5e
egejd6ddgdfddgdfd+d/gdfgd7d8 Z"ejd5e
egd9d: Z#d;d< Z$ejd.dd ddggd=d> Z%ejddddgd?d@ Z&dAdB Z'dS )C    N)		DataFrameDatetimeIndexIndexPeriodPeriodIndexSeries	TimedeltaTimedeltaIndex	Timestamp)	get_arraydtypeint64c                 C   s  t dddgdd}t || d}tt|t|s6t|rP|jjd j sPt|rd|j	d< |j	d dkspttt|t|rtn4d|j	d< |j	d dksttt|t|stt || d}|rd|j	d< |j	d dkstnd|j	d< |j	d dks
td S )N         namer   r   r   )
r   npshares_memoryr   AssertionError_mgrblocksrefshas_referenceiloc)r   using_copy_on_writeserresult r   L/tmp/pip-unpacked-wheel-nbcvw55c/pandas/tests/copy_view/test_constructors.pytest_series_from_series   s$    



r!   c                 C   s   t dddgdd}|j|j t|j|jdfD ]X}t ||d}t|j|jsXtd|j	d< | rz|j	d dkstq4|j	d dks4tq4t |ddddgd}t|j|jrt| r|j
jd j rtd S )	Nr   r   r   r   r   idx)indexr   )r   r#   copylistrenamer   r   valuesr   r   r   r   r   r   )r   r   r#   r   r   r   r    $test_series_from_series_with_reindex@   s     

r(   fastpathFTr"   r   r   )startstopsteparrr   r   ZInt64c           	      C   s   |d ks|d k	rd}t ||||d}| }t|d|}| rRtt||rftntt||sftd|d< | rt|| n,t dddg|d k	r|n|j	d}t|| d S )	NF)r   r#   r)   _datad   r   r   r   r   )
r   r$   getattrr   r   r   r   tmassert_series_equalr   )	r   r"   r   r)   r-   r   ser_origdataexpectedr   r   r    test_series_from_array]   s     r6   r$   c                 C   s:   t jdddgdd}t|d|d}t t||r6td S )Nr   r   r   r   r   int32)r   r$   )r   arrayr   r   r   r   )r   r$   r-   r   r   r   r    &test_series_from_array_different_dtypev   s    r9   
2019-12-31
2020-12-31z1 daysz2 daysc                 C   sz   t |}|jdd}| rBtt|t|s0t|jdrZtntt|t|rZt|jd |jd< t	
|| d S )NT)deepr   r   )r   r$   r   r   r   r   r   _has_no_referencer   r1   Zassert_index_equal)r   r"   r   r5   r   r   r    test_series_from_index}   s    
r>   c                 C   sN   t dddgdd}t|dd}tt|t|r6t| rJ|jdsJtd S Nr   r   r   r   r   r7   r   )r   r   r   r   r   r   r   r=   )r   r"   r   r   r   r    'test_series_from_index_different_dtypes   s
    r@   c                 C   s   t dddgdd}| }t |j|||d}tt|t|sDt| rX|jdrXtd|jd< | rtt	
|| nt dddg}t	
|| d S )	Nr   r   r   r   r   )r   r)   r#   r   r/   )r   r$   r   r   r   r   r   r=   r   r1   r2   )r   r"   r   r)   r   r3   ser2r5   r   r   r    test_series_from_block_manager   s    
rB   c                 C   sP   t dddgdd}t |jdd}tt|t|r8t| rL|jdsLtd S r?   )r   r   r   r   r   r   r=   )r   r   rA   r   r   r    .test_series_from_block_manager_different_dtype   s
    rC   funcc                 C   s   | S Nr   xr   r   r    <lambda>       rH   c                 C   s   | j S rE   )r   rF   r   r   r    rH      rI   columnsac                 C   s   t ddddgi}| }t ||}tt|dt|dsBtd|jd< | rztt|dt|drltt|| n(tt|dt|dstt|| d S )NrK   r   r   r   r/   r   )	r   r$   r   r   r   r   r   r1   assert_frame_equal)r   rJ   rD   dfdf_origZnew_dfr   r   r    $test_dataframe_constructor_mgr_or_df   s    
rO   r#   bcc           
      C   sF  t dddg}t dddg}| }tdddgdddgd|||d}t||d|||d	d
}	tt|	dt|sxtd|	jd< |rtt|	dt|rtt	|| n|jd dkstt dddg}t dddg}t||d|||d	d
}	d|jd< |r.tt|	dt|r tt
|	| n|	jd dksBtd S )Nr   r   r            rK   rP   )r#   rJ   r   F)r#   rJ   r   r$   rK   
   r   r   r   )r   r$   r   r   r   r   r   r   r1   r2   rL   )
requestr   rJ   r#   r   s1s2Zs1_origr5   r   r   r   r    "test_dataframe_from_dict_of_series   sH    	       
    
r[   c                 C   s~   t dddg}t dddg}t||ddddg| dd	}t|d
}t|t|rVtd|jd< t|d
}t||sztd S )Nr   r   r   rR   rS   rT   rU   Fr#   r   r$   rK   r/   rW   r   r   r   r   r   r   r   )r   rY   rZ   rM   
arr_before	arr_afterr   r   r    /test_dataframe_from_dict_of_series_with_reindex   s    


r`   conszdata, dtypec                 C   sp   |||d}|  }t||d}tt|t|ds:t| rN|jdrNt|d |jd< | rlt	
|| d S )Nr   r   rW   )r$   r   r   r   r   r   r   r=   r   r1   Zassert_equal)r   r4   r   ra   objZobj_origrM   r   r   r    #test_dataframe_from_series_or_index  s    rd   c                 C   sN   |ddgdd}t |dd}tt|t|dr6t| rJ|jdsJtd S )Nr   r   r   r   r7   r   )r   r   r   r   r   r   r=   )r   ra   rc   rM   r   r   r    3test_dataframe_from_series_or_index_different_dtype  s
    re   c                 C   sR   t tdtdgtd}t|}tt|t|dr:t| rN|j	dsNtd S )Nr:   r;   r   r   )
r   r
   objectr   r   r   r   r   r   r=   )r   r   rM   r   r   r    )test_dataframe_from_series_infer_datetime!  s
    rg   c                 C   sx   t dddg}t dddg}t||d| dd	d
}t|d}t|t|rPtd|jd< t|d}t||sttd S )Ng      ?g       @g      @rR   rS   rT   rU   r   Fr\   rK   r/   rW   r]   )r#   rY   rZ   rM   r^   r_   r   r   r    -test_dataframe_from_dict_of_series_with_dtype)  s    


rh   c                 C   st   t ddgddgg}t||d}| r.|dk	sB|dksB|rZ|d krZt t|d|rptnt t|d|sptd S )	Nr   r   r   rR   )r$   FTr   )r   r8   r   r   r   r   )r   r$   Zusing_array_managerr-   rM   r   r   r    test_frame_from_numpy_array:  s    ri   c                 C   s   t ddddgi}| }t |}| r8|jdr8ttt|dt|dsTtd|j	d< | rpt
|| nt
|| d S )NrK   r   r   r   r   r/   rW   )r   r$   Zfrom_recordsr   r=   r   r   r   r   r   r1   rL   )r   rM   rN   Zdf2r   r   r    *test_dataframe_from_records_with_dataframeJ  s    

rj   )(Znumpyr   ZpytestZpandaspdr   r   r   r   r   r   r   r	   r
   Zpandas._testingZ_testingr1   Zpandas.tests.copy_view.utilr   markZparametrizer!   r(   Z
RangeIndexr8   r6   r9   r>   r@   rB   rC   rO   r[   r`   rd   re   rg   rh   ri   rj   r   r   r   r    <module>   sp   ,
( &

	
*
  


