o
     \id?                     @   s   d dl m Z mZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
m  mZ d dlZd dlmZmZmZmZmZmZ d dlmZ d dlmZ ejZG dd dZd	d
 Zdd ZdS )    )datetime	timedeltaN)WARNING_CHECK_DISABLED)PerformanceWarning)Categorical	DataFrameSeries	Timestamp
date_rangeoption_context)
NumpyBlockc                   @   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dd Zejddd Zd d! Zd"d# Zd$S )%TestDataFrameBlockInternalsc                 C   sx   t dddd}|d }td|i}|d jjd u sJ tj|jd< |d jjd u s+J |jdks2J |d |ks:J d S )	N20130101   
US/Eastern)periodstz   B)r   r   D)r
   r   _valuesfreqpdNaTiloc)selfdtitsdf r   /var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/pandas/tests/frame/test_block_internals.py,test_setitem_invalidates_datetime_index_freq$   s   zHTestDataFrameBlockInternals.test_setitem_invalidates_datetime_index_freqc                 C   s   d}t jt|dd t|jtd}W d    n1 sw   Y  t|jtd}t || t jt|dd t|jtj	d}W d    n1 sIw   Y  t|jtj	d}t || d S )Nz#Passing a BlockManager to DataFrameF)matchcheck_stackleveldtype)
tmassert_produces_warningDeprecationWarningr   _mgrint_seriesassert_frame_equalnpint32)r   float_framemsgcastedexpectedr   r   r    test_cast_internals5   s   z/TestDataFrameBlockInternals.test_cast_internalsc                 C   s   d|d< |  }t|jjdksJ |  }||usJ t|| d|d< t|jjdks0J | }|d u s:J t|jjdksDJ d S )N      @Er   g       @Fr   )_consolidatelenr)   blocksr&   r,   _consolidate_inplace)r   r/   consolidatedreconsreturn_valuer   r   r    test_consolidateE   s   z,TestDataFrameBlockInternals.test_consolidatec                 C   s,   t tdtdD ]
}t||t|< q	d S )NAZ)rangeordchr)r   r/   letterr   r   r    test_consolidate_inplaceV   s   z4TestDataFrameBlockInternals.test_consolidate_inplacec                 C   s   |r+t jtdd d|jd< W d    n1 sw   Y  |jd dk s)J d S d|jd< |jd dk s;J d|d< |d }d|jd< |jd dk rSJ |dk s[J d S )Nz	read-onlyr"      r4   r5         )pytestraises
ValueErrorvaluesall)r   r/   using_copy_on_writecolr   r   r    test_modify_values[   s   

z.TestDataFrameBlockInternals.test_modify_valuesc                 C   s<   d|d< |j  }d||dk< d||dk< t||j  d S )Nr4   r5      r   )rM   copyr&   assert_almost_equal)r   r/   r2   r   r   r    test_boolean_set_unconso   s
   
z3TestDataFrameBlockInternals.test_boolean_set_unconsc              	   C   s  t ddgi}|d }ttdgtjdd}t|| t ddgi}|d }ttdgtjdd}t|| t dtddddgi}|d }tttddddgtj	dd}t|| t dd dgi}|d }tttj
dgtjdd}t|| t ddd	gi}|d }ttdd	gtjdd}t|| t dd
dgi}|d }ttd
dgtjdd}t|| t dd
dgi}|d }ttd
dgtjdd}t|| t dd
dgi}|d }ttd
dgtj	dd}t|| t ddd gi}|d }ttdtj
gtjdd}t|| t dd
d gi}|d }ttd
tj
gtjdd}t|| t dg di}|d }ttg dtj	dd}t|| t dddtdddd gi}|d }ttddtdddd gtj	dd}t|| d S )Nr?   l    )namel            i  r   Tg      ?rR   y      ?       @r   g      @)       @r   TNrW   i  )r   r   r-   asarrayint64r&   assert_series_equaluint64r   object_nanfloat64
complex128)r   r   resultr2   r   r   r    test_constructor_with_convertx   sh   z9TestDataFrameBlockInternals.test_constructor_with_convertc                 C   s   t  |d< tddd|d< |d jdksJ |d jdks J |j}ttdgd |s2td	ntjtj	d
tdtdg t
dg d d}t|| d S )Nr   r   )dayssecondsr   zM8[us]zm8[us]r^      object)na_valuezdatetime64[us]ztimedelta64[us]ABCD)foor   r   index)r   nowr   r%   dtypesr   r-   r   StringDtyper]   listr&   rZ   )r   float_string_frameusing_infer_stringr`   r2   r   r   r    test_construction_with_mixed   s"   z8TestDataFrameBlockInternals.test_construction_with_mixedc                 C   s   t jg ddd}td|i}tdtjdddditdd	}t|d  | tt	d
t
d
ddddtdd	}|jd dksFJ |jd dksOJ t d}t jg ddd}t||d}t|| d S )Nr   rR   r   ztimedelta64[s]r$   r?   z00:00:01r   s)r   r   ri   r   )r   zM8[s])dt1dt2rt   ru   
2013-01-01)rv   z
2013-01-02z
2013-01-03zdatetime64[D])r-   arrayr   r   timedelta_rangerA   r&   assert_numpy_array_equalto_numpyr	   r
   astyperl   
datetime64r,   )r   arrr   r2   rt   ru   r   r   r    "test_construction_with_conversions   s(   	
z>TestDataFrameBlockInternals.test_construction_with_conversionsc                 C   s   dd }d}t jt|d |g d W d    n1 sw   Y  t jtdd |d W d    n1 s9w   Y  t jtdd |d W d    n1 sTw   Y  d	}t jt|d |d
 W d    d S 1 srw   Y  d S )Nc                 S   s0   t ttdddddfd}t|g d| dS )Ni  r   aa   	   )r?   r   C)datacolumnsr%   )rn   	itertoolsrepeatr   r   )r%   r   r   r   r    f   s   zGTestDataFrameBlockInternals.test_constructor_compound_dtypes.<locals>.fz@compound dtypes are not implemented in the DataFrame constructorrF   ))r?   zdatetime64[h])r   str)r   r.   zargument must berY   r^   zD^Unknown datetime string format, unable to parse: aa, at position 0$zM8[ns])rJ   rK   NotImplementedError	TypeErrorrL   )r   r   r0   r   r   r     test_constructor_compound_dtypes   s   


"z<TestDataFrameBlockInternals.test_constructor_compound_dtypesc                 C   sP   t  }t|}t|| |jj t|}t| t|}t|| d S N)r   r&   round_trip_pickler,   r)   ndimrepr)r   ro   timezone_frameempty_frame	unpickledr   r   r    test_pickle  s   


z'TestDataFrameBlockInternals.test_picklec                 C   s   t tg dtg dg dd}|j}|j|_|d}|d}d|j_|j	}|j|_|d}|d}d|j_|j|_|j|_	t
t|j|j t
t|j	|j d S )	N)z2012-06-21 00:002012-06-23 07:002012-06-23 16:302012-06-25 08:002012-06-26 12:00)r   r   r   r   z2012-06-27 08:00)M   A   r   r   r   )startingendingmeasurer   UTCr   r   )r   r   to_datetimer   rM   rj   tz_localize
tz_convertrV   r   r&   assert_index_equalDatetimeIndex)r   r   ser_starting
ser_endingr   r   r    test_consolidate_datetime64  s0   		



z7TestDataFrameBlockInternals.test_consolidate_datetime64c                 C   s   |j rJ |j s
J d S r   )_is_mixed_type)r   r/   ro   r   r   r    test_is_mixed_typeF  s   
z.TestDataFrameBlockInternals.test_is_mixed_typec              	   C   s   t dd n ttjddddd}t| |d d|d< t  tj	|d	 d
< W d    n1 s7w   Y  t| |
  |d	 
  |rXt|d	 d
 rWJ nt|d	 d
 scJ W d    d S W d    d S 1 svw   Y  d S )Nchained_assignmentrR   )rd   rd   abcd)er   gh)rj   r   r   re   r   r   )r   r   r-   randomdefault_rngr   r{   r&   raises_chained_assignment_errorr]   sumr   isna)r   rO   warn_copy_on_writeYr   r   r     test_stale_cached_series_bug_473J  s(   
"z<TestDataFrameBlockInternals.test_stale_cached_series_bug_473z.ignore:Setting a value on a view:FutureWarningc           
      C   s  t ddgd}tj|d< i }tjtdd7 t|jD ])\}}tddD ]}||vr3d||< tj||< |r=||j	||f< q$||| |< q$qW d    n1 sOw   Y  d}t
|j	t|| |gf }t
|j	t|| |gf }	||	  krdksJ  J d S )Nr   r   ri   F)raise_on_extra_warningsd      )r   r-   r]   r&   r'   r   	enumeraterj   rA   locr8   r   r   )
r   rO   r   wasColidtrP   myidfirstsecondr   r   r    $test_strange_column_corruption_issue^  s*   

 z@TestDataFrameBlockInternals.test_strange_column_corruption_issuec                 C   sb   t g dj}td|i}tdg di}t|| t|jjd ts&J |jjd j	s/J d S )Nrr   r?   r   )
r   rw   r   r&   r,   
isinstancer)   r9   r   
is_numeric)r   r}   r`   r2   r   r   r     test_constructor_no_pandas_arrayx  s   z<TestDataFrameBlockInternals.test_constructor_no_pandas_arrayc              	   C   s   t g dg dd}tjtjg dtd|d< t g dg dtjtjg dtdd}t|d jj	d t
ks?J |d jj	d jsJJ t|d jj	d t
ksXJ |d jj	d jscJ t|| d S )	N)r   rR   r   rd   r   )r   r   )r   rR   Nr   r$   r   )r   r   r   r   )r   r   arraysNumpyExtensionArrayr-   rw   re   typer)   r9   r   	is_objectr&   r,   )r   r   df2r   r   r    !test_add_column_with_pandas_array  s   	z=TestDataFrameBlockInternals.test_add_column_with_pandas_arrayN)__name__
__module____qualname__r!   r3   r>   rE   rQ   rU   ra   rq   r~   r   r   r   r   r   rJ   markfilterwarningsr   r   r   r   r   r   r    r   #   s&    	C"-


r   c                 C   s   t dtg dddi}| r,t  |d jddd W d    n1 s&w   Y  n$tjts2tnd dd	 |d jddd W d    n1 sKw   Y  t|j	j
d
 jts\J | sj|   d
kslJ d S d S )Nr   )r   rR   Ncategoryr$   r   T)inplacezinplace methodrF   r   )r   r   r&   r   fillnar'   r   FutureWarningr   r)   r9   rM   r   isnullr   )rO   r   r   r   r    +test_update_inplace_sets_valid_block_values  s"   

r   c                  C   s   t dtdgtdi} tdgtd| d< | j rJ | d dk | | d dk  d| jd< t dgdgdtd}t| | | jd dksHJ d S )	Ncol1r   r$   r   col2r?   )r   r   )r   r   )r   r   re   r)   is_consolidatedatr&   r,   )r   r2   r   r   r    $test_nonconsolidated_item_cache_take  s   
r   ) r   r   r   numpyr-   rJ   pandas.compatr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r	   r
   r   pandas._testing_testingr&   pandas.core.internals.blocksr   skip_array_manager_invalid_test
pytestmarkr   r   r   r   r   r   r    <module>   s"       u