
    A>i6                         S SK J r Jr  S SKrS SKrS SKrS SKJr  S SKr	S SKJ
r
JrJrJrJrJr  S SKJr  S SKJr   " S S5      rS rg)	    )datetime	timedeltaN)Pandas4Warning)Categorical	DataFrameSeries	Timestamp
date_rangeoption_context)
NumpyBlockc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rSrg)TestDataFrameBlockInternals   c                 "   [        SSSS9nUS   n[        SU05      nUS   R                  R                  b   e[        R
                  UR                  S'   US   R                  R                  b   eUR                  S:X  d   eUS   U:X  d   eg )	N20130101   
US/Eastern)periodstz   B)r   r   D)r
   r   _valuesfreqpdNaTiloc)selfdtitsdfs       f/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/frame/test_block_internals.py,test_setitem_invalidates_datetime_index_freqHTestDataFrameBlockInternals.test_setitem_invalidates_datetime_index_freq   s     Q<@VSz"#w##+++#w##+++ xx31v||    c                    Sn[         R                  " [        USS9   [        UR                  [
        S9nS S S 5        [        UR                  [
        S9n[         R                  " WU5        [         R                  " [        USS9   [        UR                  [        R                  S9nS S S 5        [        UR                  [        R                  S9n[         R                  " X45        g ! , (       d  f       N= f! , (       d  f       NX= f)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_internals/TestDataFrameBlockInternals.test_cast_internals.   s    3''#
 {//s;F
 [00<
fh/''#
 {//rxx@F
 [00A
f/
 

 
s   C+#C<+
C9<
D
c                    SUS'   UR                  5       n[        UR                  R                  5      S:X  d   eUR                  5       nX2Ld   e[        R
                  " X25        SUS'   [        UR                  R                  5      S:X  d   eUR                  5       nUb   e[        UR                  R                  5      S:X  d   eg )N      @Er   g       @Fr   )_consolidatelenr-   blocksr+   r0   _consolidate_inplace)r   r3   consolidatedreconsreturn_values        r"   test_consolidate,TestDataFrameBlockInternals.test_consolidate>   s    C"//1<$$++,111 **,)))
f3C;##**+q000"779###;##**+q000r%   c                 |    [        [        S5      [        S5      5       H  n[        U5      U[        U5      '   M     g )NAZ)rangeordchr)r   r3   letters      r"   test_consolidate_inplace4TestDataFrameBlockInternals.test_consolidate_inplaceO   s-    CHc#h/F'*6{KF$ 0r%   c                     [         R                  " [        SS9   SUR                  S'   S S S 5        UR                  S   S:g  R	                  5       (       d   eg ! , (       d  f       N6= f)Nz	read-onlyr'      )pytestraises
ValueErrorvaluesall)r   r3   s     r"   test_modify_values.TestDataFrameBlockInternals.test_modify_valuesT   sS    ]]:[9$%Kq! :""1%*//1111 :9s   A
A(c                     SUS'   UR                   R                  5       nSX"S:  '   SXS:  '   [        R                  " X!R                   5        g )Nr:   r;      r   )rU   copyr+   assert_almost_equal)r   r3   r6   s      r"   test_boolean_set_uncons3TestDataFrameBlockInternals.test_boolean_set_unconsY   sL    C%%**,!"A'(!O$
x););<r%   c                 	   [        SS/05      nUS   n[        [        R                  " S/[        R                  5      SS9n[
        R                  " X#5        [        SS/05      nUS   n[        [        R                  " S/[        R                  5      SS9n[
        R                  " X#5        [        S[        SSS5      S/05      nUS   n[        [        R                  " [        SSS5      S/[        R                  5      SS9n[
        R                  " X#5        [        SS S/05      nUS   n[        [        R                  " [        R                  S/[        R                  5      SS9n[
        R                  " X#5        [        SSS	/05      nUS   n[        [        R                  " SS	/[        R                  5      SS9n[
        R                  " X#5        [        SS
S/05      nUS   n[        [        R                  " S
S/[        R                  5      SS9n[
        R                  " X#5        [        SS
S/05      nUS   n[        [        R                  " S
S/[        R                  5      SS9n[
        R                  " X#5        [        SS
S/05      nUS   n[        [        R                  " S
S/[        R                  5      SS9n[
        R                  " X#5        [        SSS /05      nUS   n[        [        R                  " S[        R                  /[        R                  5      SS9n[
        R                  " X#5        [        SS
S /05      nUS   n[        [        R                  " S
[        R                  /[        R                  5      SS9n[
        R                  " X#5        [        S/ SQ05      nUS   n[        [        R                  " / SQ[        R                  5      SS9n[
        R                  " X#5        [        SSS[        SSS5      S /05      nUS   n[        [        R                  " SS[        SSS5      S /[        R                  5      SS9n[
        R                  " X#5        g )NrG   l    )namel            i  r   Tg      ?rZ   y      ?       @r   g      @)       @r   TNra   i  )r   r   r1   asarrayint64r+   assert_series_equaluint64r   object_nanfloat64
complex128)r   r!   resultr6   s       r"   test_constructor_with_convert9TestDataFrameBlockInternals.test_constructor_with_convertb   s    i[)*C"**i["((;#F
v0eW~&C"**eWbii8sC
v0htQ2D9:;CJJq!,d3RZZ@s
 	v0dAY'(C"**bffa["**=CH
v0c1X'C"**c1Xrzz:E
v0j!_-.C"**j!_bmmD3O
v0j#./0C"**j#%6FSQ
v0j$/01C"**j$%7D3O
v0c4[)*C"**c266]BJJ?cJ
v0j$/01C"**j"&&%92==IPST
v0123C"**%92::FSQ
v0c1htQ&:DABCCJJQq! 4d;RZZHs
 	v0r%   c                 "   [         R                  " 5       US'   [        SSS9US'   US   R                  S:X  d   eUS   R                  S:X  d   eUR                  n[        [        R                  " S5      /S-  U(       d  [        R                  " S	5      O![        R                  " [        R                  S
9[        R                  " S5      [        R                  " S5      /-   / [        S5      QSPSPSPS9n[        R                  " X45        g )Nr   r   )dayssecondsr   zM8[us]zm8[us]rh      object)na_valuezdatetime64[us]ztimedelta64[us]ABCDfooindex)r   nowr   r*   dtypesr   r1   r   StringDtyperg   listr+   rd   )r   float_string_frameusing_infer_stringrj   r6   s        r"   test_construction_with_mixed8TestDataFrameBlockInternals.test_construction_with_mixed   s    )1:&*3A*F;'!*-33x???!+.44@@@#**XXi !A% * "^^RVV4)**+ BDLA%AA[A

 	v0r%   c           	      l   [         R                  " / SQSS9n[        SU05      n[        S[        R                  " SSSS90[        S5      S	9n[        R                  " US   R                  5       U5        [        [        S
5      R                  S5      [        S
SS9R                  S5      S.[        S5      S	9nUR                  S   S:X  d   eUR                  S   S:X  d   e[         R                  " S5      n[         R                  " / SQSS9n[        XES.5      n[        R                  " X#5        g )Nr   rZ   r   ztimedelta64[s]r)   rG   z00:00:01r   s)r   r   ru   r   )r   zM8[s])dt1dt2r   r   
2013-01-01)r   z
2013-01-02z
2013-01-03zdatetime64[D])r1   arrayr   r   timedelta_rangerI   r+   assert_numpy_array_equalto_numpyr	   as_unitr
   astyperx   
datetime64r0   )r   arrr!   r6   r   r   s         r"   "test_construction_with_conversions>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
 s/0 	b+r%   c                    S nSn[         R                  " [        US9   U" / SQ5        S S S 5        [         R                  " [        SS9   U" S5        S S S 5        [         R                  " [        SS9   U" S5        S S S 5        Sn[         R                  " [        US9   U" S	5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nv= f! , (       d  f       N]= f! , (       d  f       g = f)
Nc           	      x    [        [        R                  " [        SSS5      SS4S5      5      n[	        U/ SQU S9$ )Ni  r   aa   	   )rG   r   C)datacolumnsr*   )rz   	itertoolsrepeatr   r   )r*   r   s     r"   fGTestDataFrameBlockInternals.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 constructorrP   ))rG   zdatetime64[h])r   str)r   r2   zargument must berc   rh   z5^Unknown datetime string format, unable to parse: aa$zM8[ns])rR   rS   NotImplementedError	TypeErrorrT   )r   r   r4   s      r"    test_constructor_compound_dtypes<TestDataFrameBlockInternals.test_constructor_compound_dtypes   s    	N Q]].c:DE ; ]]9,>?gJ @]]9,>?iL @ F]]:S1hK 21 ;: @???
 21s/   B3	C5	C!	C&3
C
C
C#&
C4c                     [         R                  " X5      n[         R                  " X5        UR                  R                    g N)r+   round_trip_pickler0   r-   ndim)r   r{   	temp_file	unpickleds       r"   test_pickle_float_string_frame:TestDataFrameBlockInternals.test_pickle_float_string_frame   s3    (();G	
0< 	$$r%   c                 Z    [        5       n[        R                  " X!5      n[        U5        g r   )r   r+   r   repr)r   r   empty_framer   s       r"   test_pickle_empty-TestDataFrameBlockInternals.test_pickle_empty   s     k((@	Yr%   c                 \    [         R                  " X5      n[         R                  " X5        g r   )r+   r   r0   )r   timezone_framer   r   s       r"   test_pickle_empty_tz_frame6TestDataFrameBlockInternals.test_pickle_empty_tz_frame   s     ((C	
n8r%   c                    [        [        R                  " / SQ5      [        R                  " / SQ5      / SQS.5      nUR                  nUR                  Ul        UR                  S5      nUR                  S5      nSUR
                  l        UR                  nUR                  Ul        UR                  S5      nUR                  S5      nSUR
                  l        UR
                  Ul        UR
                  Ul	        [        R                  " [        R                  " UR                  5      UR
                  5        [        R                  " [        R                  " UR                  5      UR
                  5        g )	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   rU   rv   tz_localize
tz_convertr`   r   r+   assert_index_equalDatetimeIndex)r   r!   ser_starting
ser_endings       r"   test_consolidate_datetime647TestDataFrameBlockInternals.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                 P    UR                   (       a   eUR                   (       d   eg r   )_is_mixed_type)r   r3   r{   s      r"   test_is_mixed_type.TestDataFrameBlockInternals.test_is_mixed_type/  s     ----!0000r%   c                 0   [        SS 5         [        [        R                  R	                  S5      R                  S5      SSS9n[        U5        US   R                  S5      US'   [        R                  " 5          [        R                  US	   S
'   S S S 5        [        U5        UR                  5         US	   R                  5         [        R                  " US	   S
   5      (       a   e S S S 5        g ! , (       d  f       Ni= f! , (       d  f       g = f)Nchained_assignmentrZ   )rp   rp   abcd)er   gh)rv   r   r   rq   r   r   )r   r   r1   randomdefault_rngr   r   r+   raises_chained_assignment_errorrg   sumr   isna)r   Ys     r"    test_stale_cached_series_bug_473<TestDataFrameBlockInternals.test_stale_cached_series_bug_4733  s    0$7		%%a(//7*,A
 GsV]]8,AcF335 ff#s 6GEEGcFJJLwwqvc{+++++ 87 65 87s%   A/D<C6AD6
D	 D
Dc                 B   [        SS/S9n[        R                  US'   0 n[        R                  " USS9   [        UR                  5       HB  u  pE[        SS5       H-  nXc;  a  SX6'   [        R                  X&'   XBR                  XV4'   M/     MD     S S S 5        Sn[        UR                  [        R                  " X'   5      U/4   5      n[        UR                  [        R                  " X'   5      U/4   5      n	Xs=:X  a  S:X  d   e   eg ! , (       d  f       N= f)Nr   r   ru   F)raise_on_extra_warningsd      )r   r1   rg   r+   r,   	enumeraterv   rI   locr>   r   r   )
r   performance_warningr!   wasColidtcolmyidfirstseconds
             r"   $test_strange_column_corruption_issue@TestDataFrameBlockInternals.test_strange_column_corruption_issueD  s    aV$1''
 #288, c?C(&'"$&&&'FF27O	 + -
 BFF27728,tf456RVVBGGBH-v567#!#####
 
s   AD
Dc                 F   [        / SQ5      R                  n[        SU05      n[        S/ SQ05      n[        R                  " X#5        [        UR                  R                  S   [        5      (       d   eUR                  R                  S   R                  (       d   eg )Nr   rG   r   )
r   r   r   r+   r0   
isinstancer-   r?   r   
is_numeric)r   r   rj   r6   s       r"    test_constructor_no_pandas_array<TestDataFrameBlockInternals.test_constructor_no_pandas_arrayZ  s     Y%%C:&c9-.
f/&++,,Q/<<<<{{!!!$////r%   c                    [        / SQ/ SQS.5      n[        R                  R                  [        R
                  " / SQ[        S95      US'   [        / SQ/ SQ[        R                  R                  [        R
                  " / SQ[        S95      S.5      n[        US   R                  R                  S   5      [        :X  d   eUS   R                  R                  S   R                  (       d   e[        US   R                  R                  S   5      [        :X  d   eUS   R                  R                  S   R                  (       d   e[        R                  " X5        g )	N)r   rZ   r   rp   r   )r   r   )r   rZ   Nr   r)   r   )r   r   r   r   )r   r   arraysNumpyExtensionArrayr1   r   rq   typer-   r?   r   	is_objectr+   r0   )r   r!   df2s      r"   !test_add_column_with_pandas_array=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____firstlineno__r#   r7   rD   rM   rW   r]   rk   r}   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r%   r"   r   r      sf    "0 1"3
2
=A1F1( ,D.%
9+MZ1,"$,0'r%   r   c                  &   [        S[        / SQSS905      n [        R                  " 5          U S   R	                  SSS9  S S S 5        [        U R                  R                  S   R                  [        5      (       d   eg ! , (       d  f       NG= f)	Nr   )r   rZ   Ncategoryr)   r   T)inplacer   )
r   r   r+   r   fillnar   r-   r?   rU   r   )r!   s    r"   +test_update_inplace_sets_valid_block_valuesr  x  sp    	CJ?@	AB 
	+	+	-
3q$' 
. bggnnQ'..<<<<	 
.	-s   B
B)r   r   r   numpyr1   rR   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%   