
    2Цi@                        S SK J r Jr  S SKJr  S SKrS SKJr  S SKrS SK	r	S SK
Jr  S SKJs  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S r\R@                  \	RB                  RD                  S 5       5       r#g)    )datetime	timedelta)StringION)dedent)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/ai-image-ml/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_internals1   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-   r2   _consolidate_inplace)r    r5   consolidatedreconsreturn_values        r$   test_consolidate,TestDataFrameBlockInternals.test_consolidateA   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    r5   letters      r$   test_consolidate_inplace4TestDataFrameBlockInternals.test_consolidate_inplaceR   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    r5   s     r$   test_modify_values.TestDataFrameBlockInternals.test_modify_valuesW   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   )rW   copyr-   assert_almost_equal)r    r5   r8   s      r$   test_boolean_set_uncons3TestDataFrameBlockInternals.test_boolean_set_uncons\   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 )NrI   l    )namel            i  r   Tg      ?r\   y      ?       @r   g      @)       @r   TNrc   i  )r	   r
   r3   asarrayint64r-   assert_series_equaluint64r   object_nanfloat64
complex128)r    r#   resultr8   s       r$   test_constructor_with_convert9TestDataFrameBlockInternals.test_constructor_with_converte   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]rj      object)na_valuezdatetime64[us]ztimedelta64[us]ABCDfooindex)r   nowr   r,   dtypesr
   r3   r   StringDtyperi   listr-   rf   )r    float_string_frameusing_infer_stringrl   r8   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   r\   r   ztimedelta64[s]r+   rI   z00:00:01r   s)r   r   rw   r   )r   zM8[s])dt1dt2r   r   
2013-01-01)r   z
2013-01-02z
2013-01-03zdatetime64[D])r3   arrayr	   r   timedelta_rangerK   r-   assert_numpy_array_equalto_numpyr   as_unitr   astyperz   
datetime64r2   )r    arrr#   r8   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   	   )rI   r   C)datacolumnsr,   )r|   	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 constructorrR   ))rI   zdatetime64[h])r   str)r   r4   zargument must bere   rj   z5^Unknown datetime string format, unable to parse: aa$zM8[ns])rT   rU   NotImplementedError	TypeErrorrV   )r    r   r6   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_pickler2   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   r2   )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   rW   rx   tz_localize
tz_convertrb   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    r5   r}   s      r$   test_is_mixed_type.TestDataFrameBlockInternals.test_is_mixed_type2  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_assignmentr\   )rr   rr   abcd)er   ghrx   r   r   rs   r   r   )r   r	   r3   randomdefault_rngr   r   r-   raises_chained_assignment_errorri   sumr   isna)r    Ys     r$    test_stale_cached_series_bug_473<TestDataFrameBlockInternals.test_stale_cached_series_bug_4736  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   rw   F)raise_on_extra_warningsd      )r	   r3   ri   r-   r.   	enumeraterx   rK   locr@   r   r   )
r    performance_warningr#   wasColidtcolmyidfirstseconds
             r$   $test_strange_column_corruption_issue@TestDataFrameBlockInternals.test_strange_column_corruption_issueG  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   rI   r   )
r
   r   r	   r-   r2   
isinstancer/   rA   r   
is_numeric)r    r   rl   r8   s       r$    test_constructor_no_pandas_array<TestDataFrameBlockInternals.test_constructor_no_pandas_array]  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   r\   r   rr   r   )r   r   )r   r\   Nr   r+   r   )r   r   r   r   )r	   r   arraysNumpyExtensionArrayr3   r   rs   typer/   rA   r   	is_objectr-   r2   )r    r#   df2s      r$   !test_add_column_with_pandas_array=TestDataFrameBlockInternals.test_add_column_with_pandas_arrayg  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%   r9   rF   rO   rY   r_   rm   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   r\   Ncategoryr+   r   T)inplacer   )
r	   r
   r-   r   fillnar   r/   rA   rW   r   )r#   s    r$   +test_update_inplace_sets_valid_block_valuesr  {  sp    	CJ?@	AB 
	+	+	-
3q$' 
. bggnnQ'..<<<<	 
.	-s   B
Bc                      [        [        S5      5      n [        R                  " U 5      R                  S S 2/ SQ4   R                  [        5      $ )NaI  "Obs","GNPDEFL","GNP","UNEMP","ARMED","POP","YEAR"
            1,83,234289,2356,1590,107608,1947
            2,88.5,259426,2325,1456,108632,1948
            3,88.2,258054,3682,1616,109773,1949
            4,89.5,284599,3351,1650,110929,1950
            5,96.2,328975,2099,3099,112075,1951
            6,98.1,346999,1932,3594,113270,1952
            7,99,365385,1870,3547,115094,1953
            8,100,363112,3578,3350,116219,1954
            9,101.2,397469,2904,3048,117388,1955
            10,104.6,419180,2822,2857,118734,1956
            11,108.4,442769,2936,2798,120445,1957
            12,110.8,444546,4681,2637,121950,1958
            13,112.6,482704,3813,2552,123366,1959
            14,114.2,502601,3931,2514,125368,1960
            15,115.7,518173,4806,2572,127852,1961
            16,116.9,554894,4007,2827,130081,1962
            )r   r\   r   rr   rS      )r   r   r   read_csvr   r   float)longley_csvs    r$   get_longley_datar    sH     	
K. ;;{#((,>)>?FFuMMr'   c                     ^ S n [         R                  " U S[        5       4SS9  S mU4S jn[         R                  " US[        5       4SS9  g )Nc                 z    UR                  5         [        R                  " U S-   S-
  U R                  5       5        g )Nr   )waitr-   r^   r]   )r   r   s     r$   numpy_assert0test_multithreaded_reading.<locals>.numpy_assert  s)    	
qA~tyy{;r'      T)max_workers	argumentspass_barrierc                      [         R                  " U 5      S:H  =(       a    [         R                  " U S:g  5      $ ! [         a     gf = f)Ng        F)r3   ptpany	Exception)r   s    r$   safe_is_const1test_multithreaded_reading.<locals>.safe_is_const  s>    	66!9#8qCx(88 		s   8; 
AAc           
        > UR                  5         U R                  5       n[        U5      n[        R                  " [        R
                  " [        R                  " SUS-   [        R                  S9S5      5      nUR                  TS5        [        XBR                  S/S9nXB/n[        R                  " US S S2   SS9n[        R                  " X"5        g )Nr   r+   r   constr   )axis)r  r]   r@   r3   fliplrvanderarangerj   applyr	   rx   r   concatr-   r2   )r   r   xnobstrendarrr  s        r$   r"  *test_multithreaded_reading.<locals>.concat  s    	IIK1v99RYYryyD1HBJJ'OQRST	q!XWWwiHMIIa!f1%
a#r'   )r-   run_multithreadedr  )r  r"  r  s     @r$   test_multithreaded_readingr(    sS    < !0@0B/DSW	$ A*:*<)>Tr'   )$r   r   ior   r   textwrapr   numpyr3   rT   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r	   r
   r   r   r   pandas._testing_testingr-   pandas.core.internals.blocksr   r   r  r  skip_if_thread_unsafe_warningsmark
single_cpur(  r   r'   r$   <module>r8     s~         ( ) )    3Y' Y'x
	=ND ""  #r'   