
    ^ei6                         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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  G d d      Zd Zy)	    )datetime	timedeltaN)Pandas4Warning)Categorical	DataFrameSeries	Timestamp
date_rangeoption_context)
NumpyBlockc                   ~    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestDataFrameBlockInternalsc                     t        ddd      }|d   }t        d|i      }|d   j                  j                  J t        j
                  |j                  d<   |d   j                  j                  J |j                  dk(  sJ |d   |k(  sJ y )	N20130101   
US/Eastern)periodstz   B)r   r   D)r
   r   _valuesfreqpdNaTiloc)selfdtitsdfs       ]/var/www/ceduoda/envi/lib/python3.12/site-packages/pandas/tests/frame/test_block_internals.py,test_setitem_invalidates_datetime_index_freqzHTestDataFrameBlockInternals.test_setitem_invalidates_datetime_index_freq   s     Q<@VSz"#w##+++#w##+++ xx31v||    c                 $   d}t        j                  t        |d      5  t        |j                  t
              }d d d        t        |j                  t
              }t        j                  |       t        j                  t        |d      5  t        |j                  t        j                        }d d d        t        |j                  t        j                        }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   QxY w)Nz#Passing a BlockManager to DataFrameF)matchcheck_stackleveldtype)
tmassert_produces_warningr   r   _mgrint_seriesassert_frame_equalnpint32)r   float_framemsgcastedexpecteds        r!   test_cast_internalsz/TestDataFrameBlockInternals.test_cast_internals.   s    3''#
 	< {//s;F	< [00<
fh/''#
 	A {//rxx@F	A [00A
fh/	< 	<	A 	As   C:&D:DDc                    d|d<   |j                         }t        |j                  j                        dk(  sJ |j                         }||usJ t	        j
                  ||       d|d<   t        |j                  j                        dk(  sJ |j                         }|J t        |j                  j                        dk(  sJ y )N      @Er   g       @Fr   )_consolidatelenr+   blocksr)   r.   _consolidate_inplace)r   r1   consolidatedreconsreturn_values        r!   test_consolidatez,TestDataFrameBlockInternals.test_consolidate>   s    C"//1<$$++,111 **,\)))
fl3C;##**+q000"779###;##**+q000r#   c                 x    t        t        d      t        d            D ]  }t        |      |t        |      <    y )NAZ)rangeordchr)r   r1   letters      r!   test_consolidate_inplacez4TestDataFrameBlockInternals.test_consolidate_inplaceO   s2    CHc#h/ 	3F'*6{KF$	3r#   c                     t        j                  t        d      5  d|j                  d<   d d d        |j                  d   dk7  j	                         sJ y # 1 sw Y   ,xY w)Nz	read-onlyr%      )pytestraises
ValueErrorvaluesall)r   r1   s     r!   test_modify_valuesz.TestDataFrameBlockInternals.test_modify_valuesT   sW    ]]:[9 	&$%Kq!	&""1%*//111	& 	&s   AA c                     d|d<   |j                   j                         }d||dkD  <   d||dkD  <   t        j                  ||j                          y )Nr7   r8      r   )rP   copyr)   assert_almost_equal)r   r1   r4   s      r!   test_boolean_set_unconsz3TestDataFrameBlockInternals.test_boolean_set_unconsY   sR    C%%**,!"A'(K!O$
x););<r#   c                 8	   t        ddgi      }|d   }t        t        j                  dgt        j                        d      }t        j                  ||       t        ddgi      }|d   }t        t        j                  dgt        j                        d      }t        j                  ||       t        dt        ddd      dgi      }|d   }t        t        j                  t        ddd      dgt        j                        d      }t        j                  ||       t        dd dgi      }|d   }t        t        j                  t        j                  dgt        j                        d      }t        j                  ||       t        ddd	gi      }|d   }t        t        j                  dd	gt        j                        d      }t        j                  ||       t        dd
dgi      }|d   }t        t        j                  d
dgt        j                        d      }t        j                  ||       t        dd
dgi      }|d   }t        t        j                  d
dgt        j                        d      }t        j                  ||       t        dd
dgi      }|d   }t        t        j                  d
dgt        j                        d      }t        j                  ||       t        ddd gi      }|d   }t        t        j                  dt        j                  gt        j                        d      }t        j                  ||       t        dd
d gi      }|d   }t        t        j                  d
t        j                  gt        j                        d      }t        j                  ||       t        dg di      }|d   }t        t        j                  g dt        j                        d      }t        j                  ||       t        dddt        ddd      d gi      }|d   }t        t        j                  ddt        ddd      d gt        j                        d      }t        j                  ||       y )NrC   l    )namel            i  r   Tg      ?rT   y      ?       @r   g      @)       @r   TNrZ   i  )r   r   r/   asarrayint64r)   assert_series_equaluint64r   object_nanfloat64
complex128)r   r    resultr4   s       r!   test_constructor_with_convertz9TestDataFrameBlockInternals.test_constructor_with_convertb   s    i[)*C"**i["((;#F
vx0eW~&C"**eWbii8sC
vx0htQ2D9:;CJJq!,d3RZZ@s
 	vx0dAY'(C"**bffa["**=CH
vx0c1X'C"**c1Xrzz:E
vx0j!_-.C"**j!_bmmD3O
vx0j#./0C"**j#%6FSQ
vx0j$/01C"**j$%7D3O
vx0c4[)*C"**c266]BJJ?cJ
vx0j$/01C"**j"&&%92==IPST
vx0123C"**%92::FSQ
vx0c1htQ&:DABCCJJQq! 4d;RZZHs
 	vx0r#   c                    t        j                         |d<   t        dd      |d<   |d   j                  dk(  sJ |d   j                  dk(  sJ |j                  }t        t        j                  d      gdz  |st        j                  d	      n#t        j                  t        j                  
      t        j                  d      t        j                  d      gz   g t        d      ddd      }t        j                  ||       y )Nr   r   )dayssecondsr   zM8[us]zm8[us]ra      object)na_valuezdatetime64[us]ztimedelta64[us]ABCDfooindex)r   nowr   r(   dtypesr   r/   r   StringDtyper`   listr)   r]   )r   float_string_frameusing_infer_stringrc   r4   s        r!   test_construction_with_mixedz8TestDataFrameBlockInternals.test_construction_with_mixed   s    )1:&*3A*F;'!*-33x???!+.44@@@#**XXi !A% * "^^RVV4)**+ BDLA%AA[A

 	vx0r#   c                    t        j                  g dd      }t        d|i      }t        dt        j                  ddd      it        d      	      }t        j                  |d   j                         |       t        t        d
      j                  d      t        d
d      j                  d      dt        d      	      }|j                  d   dk(  sJ |j                  d   dk(  sJ t        j                  d      }t        j                  g dd      }t        ||d      }t        j                  ||       y )Nr   rT   r   ztimedelta64[s]r'   rC   z00:00:01r   s)r   r   rm   r   )r   zM8[s])dt1dt2ry   rz   
2013-01-01)r{   z
2013-01-02z
2013-01-03zdatetime64[D])r/   arrayr   r   timedelta_rangerE   r)   assert_numpy_array_equalto_numpyr	   as_unitr
   astyperp   
datetime64r.   )r   arrr    r4   ry   rz   s         r!   "test_construction_with_conversionsz>TestDataFrameBlockInternals.test_construction_with_conversions   s    hhy(89Sz""$$ZEFeTUh
 	##BsG$4$4$6< ,44S9!*a8??H (
 u%000u%000mmL)hh6o
 s3/0 	b(+r#   c                    d }d}t        j                  t        |      5   |g d       d d d        t        j                  t        d      5   |d       d d d        t        j                  t        d      5   |d       d d d        d}t        j                  t        |      5   |d	       d d d        y # 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   PxY w# 1 sw Y   y xY w)
Nc           	      |    t        t        j                  t        ddd      ddfd            }t	        |g d|       S )Ni  r   aa   	   )rC   r   C)datacolumnsr(   )rr   	itertoolsrepeatr   r   )r(   r   s     r!   fzGTestDataFrameBlockInternals.test_constructor_compound_dtypes.<locals>.f   s8    	(((4A*>b)I1MND$uMMr#   z@compound dtypes are not implemented in the DataFrame constructorrK   ))rC   zdatetime64[h])r   str)r   r0   zargument must ber\   ra   z5^Unknown datetime string format, unable to parse: aa$zM8[ns])rM   rN   NotImplementedError	TypeErrorrO   )r   r   r2   s      r!    test_constructor_compound_dtypesz<TestDataFrameBlockInternals.test_constructor_compound_dtypes   s    	N Q]].c: 	FDE	F ]]9,>? 	gJ	]]9,>? 	iL	 F]]:S1 	hK	 		F 	F	 		 	
	 	s/   B;	C;	C)	C;CCCC(c                     t        j                  ||      }t        j                  ||       |j                  j                   y N)r)   round_trip_pickler.   r+   ndim)r   rs   	temp_file	unpickleds       r!   test_pickle_float_string_framez:TestDataFrameBlockInternals.test_pickle_float_string_frame   s7    (();YG	
0)< 	$$r#   c                 Z    t               }t        j                  ||      }t        |       y r   )r   r)   r   repr)r   r   empty_framer   s       r!   test_pickle_emptyz-TestDataFrameBlockInternals.test_pickle_empty   s"    k((i@	Yr#   c                 \    t        j                  ||      }t        j                  ||       y r   )r)   r   r.   )r   timezone_framer   r   s       r!   test_pickle_empty_tz_framez6TestDataFrameBlockInternals.test_pickle_empty_tz_frame   s$    ((C	
ni8r#   c                    t        t        j                  g d      t        j                  g d      g dd      }|j                  }|j                  |_        |j                  d      }|j                  d      }d|j
                  _        |j                  }|j                  |_        |j                  d      }|j                  d      }d|j
                  _        |j
                  |_        |j
                  |_	        t        j                  t        j                  |j                        |j
                         t        j                  t        j                  |j                        |j
                         y )	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   rP   rn   tz_localize
tz_convertrY   r   r)   assert_index_equalDatetimeIndex)r   r    ser_starting
ser_endings       r!   test_consolidate_datetime64z7TestDataFrameBlockInternals.test_consolidate_datetime64  s,    NN .. /'
0 {{)00#//=#..u5",YY
%,,
++L9
**51
 (
"(($$	
b..r{{;\=O=OP
b..ryy9:;K;KLr#   c                 <    |j                   rJ |j                   sJ y r   )_is_mixed_type)r   r1   rs   s      r!   test_is_mixed_typez.TestDataFrameBlockInternals.test_is_mixed_type/  s     ----!0000r#   c                    t        dd       5  t        t        j                  j	                  d      j                  d      dd      }t        |       |d   j                  d      |d<   t        j                         5  t        j                  |d	   d
<   d d d        t        |       |j                          |d	   j                          t        j                  |d	   d
         rJ 	 d d d        y # 1 sw Y   ^xY w# 1 sw Y   y xY w)Nchained_assignmentrT   )rh   rh   abcd)er   gh)rn   r   r   ri   r   r   )r   r   r/   randomdefault_rngr   r   r)   raises_chained_assignment_errorr`   sumr   isna)r   Ys     r!    test_stale_cached_series_bug_473z<TestDataFrameBlockInternals.test_stale_cached_series_bug_4733  s    0$7 	,		%%a(//7*,A
 GsV]]8,AcF335 % ff#s%GEEGcFJJLwwqvc{++++	, 	,% %	, 	,s%   A1C>>C2AC>2C;	7C>>Dc                 B   t        ddg      }t        j                  |d<   i }t        j                  |d      5  t        |j                        D ]C  \  }}t        dd      D ]/  }||vrd||<   t        j                  ||<   ||j                  ||f<   1 E 	 d d d        d}t        |j                  t        j                  ||         |gf         }t        |j                  t        j                  ||         |gf         }	||	cxk(  rdk(  sJ  J y # 1 sw Y   ~xY w)Nr   r   rm   F)raise_on_extra_warningsd      )r   r/   r`   r)   r*   	enumeratern   rE   locr;   r   r   )
r   performance_warningr    wasColidtcolmyidfirstseconds
             r!   $test_strange_column_corruption_issuez@TestDataFrameBlockInternals.test_strange_column_corruption_issueD  s   aV$1''
 	( #288, (2 c? (C&(&'s"$&&3&'BFF2s7O	((	( BFF2772d8,tf456RVVBGGBtH-v567#!#####	( 	(s   ADDc                 2   t        g d      j                  }t        d|i      }t        dg di      }t        j                  ||       t        |j                  j                  d   t              sJ |j                  j                  d   j                  sJ y )Nrw   rC   r   )
r   r|   r   r)   r.   
isinstancer+   r<   r   
is_numeric)r   r   rc   r4   s       r!    test_constructor_no_pandas_arrayz<TestDataFrameBlockInternals.test_constructor_no_pandas_arrayZ  s~     Y%%C:&c9-.
fh/&++,,Q/<<<{{!!!$////r#   c           
         t        g dg dd      }t        j                  j                  t	        j
                  g dt                    |d<   t        g dg dt        j                  j                  t	        j
                  g dt                    d      }t        |d   j                  j                  d         t        k(  sJ |d   j                  j                  d   j                  sJ t        |d   j                  j                  d         t        k(  sJ |d   j                  j                  d   j                  sJ t        j                  ||       y )	N)r   rT   r   rh   r   )r   r   )r   rT   Nr   r'   r   )r   r   r   r   )r   r   arraysNumpyExtensionArrayr/   r|   ri   typer+   r<   r   	is_objectr)   r.   )r   r    df2s      r!   !test_add_column_with_pandas_arrayz=TestDataFrameBlockInternals.test_add_column_with_pandas_arrayd  s   \0DEF))//PV0WX3!)YY22HH_F;
 BsGLL''*+z999#w||""1%////CHMM((+,
:::3x}}##A&0000
b#&r#   N)__name__
__module____qualname__r"   r5   rA   rI   rR   rW   rd   ru   r   r   r   r   r   r   r   r   r   r   r    r#   r!   r   r      sf    "0 1"3
2
=A1F1( ,D.%
9+MZ1,"$,0'r#   r   c                     t        dt        g dd      i      } t        j                         5  | d   j	                  dd       d d d        t        | j                  j                  d   j                  t              sJ y # 1 sw Y   =xY w)	Nr   )r   rT   Ncategoryr'   r   T)inplacer   )
r   r   r)   r   fillnar   r+   r<   rP   r   )r    s    r!   +test_update_inplace_sets_valid_block_valuesr   x  st    	CJ?@	AB 
	+	+	- (
3q$'( bggnnQ'..<<<	( (s   BB)r   r   r   numpyr/   rM   pandas.errorsr   pandasr   r   r   r   r	   r
   r   pandas._testing_testingr)   pandas.core.internals.blocksr   r   r   r   r#   r!   <module>r      s?       (    3Y' Y'x
	=r#   