
    :id?                         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c 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j6                  Z G d d      Zd	 Zd
 Zy)    )datetime	timedeltaN)WARNING_CHECK_DISABLED)PerformanceWarning)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ej$                  j'                  d      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       m/var/www/html/talentspherev1.5.2/venv/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_warningDeprecationWarningr   _mgrint_seriesassert_frame_equalnpint32)r   float_framemsgcastedexpecteds        r"   test_cast_internalsz/TestDataFrameBlockInternals.test_cast_internals5   s    3''cE
 	< {//s;F	< [00<
fh/''cE
 	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*   r0   _consolidate_inplace)r   r3   consolidatedreconsreturn_values        r"   test_consolidatez,TestDataFrameBlockInternals.test_consolidateE   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   r3   letters      r"   test_consolidate_inplacez4TestDataFrameBlockInternals.test_consolidate_inplaceV   s2    CHc#h/ 	3F'*6{KF$	3r$   c                    |rVt        j                  t        d      5  d|j                  d<   d d d        |j                  d   dk7  j	                         sJ y d|j                  d<   |j                  d   dk(  j	                         sJ d|d<   |d   }d|j                  d<   |j                  d   dk(  j	                         rJ |dk(  j	                         sJ y # 1 sw Y   xY w)Nz	read-onlyr&      r9   r:         )pytestraises
ValueErrorvaluesall)r   r3   using_copy_on_writecols       r"   test_modify_valuesz.TestDataFrameBlockInternals.test_modify_values[   s    z= *()""1%*&&q)Q.33555 !1""1%*//111 C# !1  &&q)Q.33555q~~!* *s   CC$c                     d|d<   |j                   j                         }d||dkD  <   d||dkD  <   t        j                  ||j                          y )Nr9   r:      r   )rT   copyr*   assert_almost_equal)r   r3   r6   s      r"   test_boolean_set_unconsz3TestDataFrameBlockInternals.test_boolean_set_unconso   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 )NrE   l    )namel            i  r   Tg      ?rZ   y      ?       @r   g      @)       @r   TNr`   i  )r   r	   r1   asarrayint64r*   assert_series_equaluint64r   object_nanfloat64
complex128)r   r!   resultr6   s       r"   test_constructor_with_convertz9TestDataFrameBlockInternals.test_constructor_with_convertx   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   t        d      g dz         }t        j                  ||       y )Nr   r   )dayssecondsr   zM8[us]zm8[us]rg      object)na_valuezdatetime64[us]ztimedelta64[us]ABCD)foor   r   index)r   nowr   r)   dtypesr	   r1   r   StringDtyperf   listr*   rc   )r   float_string_frameusing_infer_stringri   r6   s        r"   test_construction_with_mixedz8TestDataFrameBlockInternals.test_construction_with_mixed   s    )1:&*3A*F;'!*-33x???!+.44@@@#**XXi !A% * "^^RVV4)**+ v,!AA

 	vx0r$   c                 f   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
      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   rZ   r   ztimedelta64[s]r(   rE   z00:00:01r   s)r   r   rs   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_rangerG   r*   assert_numpy_array_equalto_numpyr
   r   astyperv   
datetime64r0   )r   arrr!   r6   r   r   s         r"   "test_construction_with_conversionsz>TestDataFrameBlockInternals.test_construction_with_conversions   s    hhy(89Sz""$$ZEFeTUh
 	##BsG$4$4$6< ,!*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   	   )rE   r   C)datacolumnsr)   )rx   	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 constructorrM   ))rE   zdatetime64[h])r   str)r   r2   zargument must berb   rg   zD^Unknown datetime string format, unable to parse: aa, at position 0$zM8[ns])rQ   rR   NotImplementedError	TypeErrorrS   )r   r   r4   s      r"    test_constructor_compound_dtypesz<TestDataFrameBlockInternals.test_constructor_compound_dtypes   s    	N Q]].c: 	FDE	F ]]9,>? 	gJ	]]9,>? 	iL	 U]]:S1 	hK	 		F 	F	 		 	
	 	s/   B;	C;	C)	C;CCCC(c                 0   t               }t        j                  |      }t        j                  ||       |j                  j
                   t        j                  |      }t        |       t        j                  |      }t        j                  ||       y N)r   r*   round_trip_pickler0   r-   ndimrepr)r   ry   timezone_frameempty_frame	unpickleds        r"   test_picklez'TestDataFrameBlockInternals.test_pickle  sw    k(();<	
0)< 	$$ ((5	Y ((8	
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   rT   rt   tz_localize
tz_convertr_   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   r3   ry   s      r"   test_is_mixed_typez.TestDataFrameBlockInternals.test_is_mixed_typeF  s     ----!0000r$   c                 P   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                          |rt        j                  |d	   d
         rJ t        j                  |d	   d
         sJ d d d        y # 1 sw Y   |xY w# 1 sw Y   y xY w)Nchained_assignmentrZ   )rn   rn   abcd)er   gh)rt   r   r   ro   r   r   )r   r   r1   randomdefault_rngr   r   r*   raises_chained_assignment_errorrf   sumr   isna)r   rV   warn_copy_on_writeYs       r"    test_stale_cached_series_bug_473z<TestDataFrameBlockInternals.test_stale_cached_series_bug_473J  s    0$7 	,		%%a(//7*,A
 GsV]]8,AcF335 % ff#s%GEEGcFJJL"771S6#;///wwqvc{+++!	, 	,% %	, 	,s%   A1D>DA2DD	DD%z.ignore:Setting a value on a view:FutureWarningc                 `   t        ddg      }t        j                  |d<   i }t        j                  t
        d      5  t        |j                        D ]N  \  }}t        dd      D ]:  }||vrd||<   t        j                  ||<   |r||j                  ||f<   3|||   |<   < P 	 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   rs   F)raise_on_extra_warningsd      )r   r1   rf   r*   r+   r   	enumeratert   rG   locr=   r   r   )
r   rV   r!   wasColidtrW   myidfirstseconds
             r"   $test_strange_column_corruption_issuez@TestDataFrameBlockInternals.test_strange_column_corruption_issue^  s,    aV$1''
 	( #288, (2 c? (C&(&'s"$&&3**+r3w&'3((	( 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 )Nr}   rE   r   )
r	   r   r   r*   r0   
isinstancer-   r>   r   
is_numeric)r   r   ri   r6   s       r"    test_constructor_no_pandas_arrayz<TestDataFrameBlockInternals.test_constructor_no_pandas_arrayx  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   rZ   r   rn   r   )r   r   )r   rZ   Nr   r(   r   )r   r   r   r   )r   r   arraysNumpyExtensionArrayr1   r   ro   typer-   r>   r   	is_objectr*   r0   )r   r!   df2s      r"   !test_add_column_with_pandas_arrayz=TestDataFrameBlockInternals.test_add_column_with_pandas_array  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#   r7   rC   rK   rX   r]   rj   r{   r   r   r   r   r   r   rQ   markfilterwarningsr   r   r    r$   r"   r   r   #   s|    "0 1"3
 (=A1F1( ,D.9"+MZ1,( [[ PQ$ R$20'r$   r   c                 &   t        dt        g dd      i      }| r4t        j                         5  |d   j	                  dd       d d d        nBt        j
                  t        st        nd d	      5  |d   j	                  dd       d d d        t        |j                  j                  d
   j                  t              sJ | s2|j                         j                         j                         d
k(  sJ y y # 1 sw Y   qxY w# 1 sw Y   }xY w)Nr   )r   rZ   Ncategoryr(   r   T)inplacezinplace methodrM   r   )r   r	   r*   r   fillnar+   r   FutureWarningr   r-   r>   rT   r   isnullr   )rV   r!   s     r"   +test_update_inplace_sets_valid_block_valuesr     s    	CJ?@	AB //1 	,sGNN1dN+	, 	, ''!7MT"
 	, sGNN1dN+		, bggnnQ'..<<<yy{ $$&!+++ 	, 	,	, 	,s   C;4D;DDc                  d   t        dt        dgt              i      } t        dgt              | d<   | j                  j	                         rJ | d   dk(   | | d   dk(      d| j
                  d<   t        dgdgdt              }t        j                  | |       | j
                  d   dk(  sJ y )	Ncol1r   r(   r   col2rE   )r   r   )r   r   )r   r	   ro   r-   is_consolidatedatr*   r0   )r!   r6   s     r"   $test_nonconsolidated_item_cache_taker     s     
FC5/	

B
 6*BvJww&&((( vJ# r&zQ BEE)3%!5VDH"h'55s"""r$   ) r   r   r   numpyr1   rQ   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"   <module>r     sZ       0 , ) )    3 //
p' p'f,.#r$   