
    Owg0@                         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	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j2                  Z G d d      Zd Zd	 Zy)
    )datetime	timedeltaN)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       ^/var/www/horilla/myenv/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_internals4   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)   r/   _consolidate_inplace)r   r2   consolidatedreconsreturn_values        r!   test_consolidatez,TestDataFrameBlockInternals.test_consolidateD   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   r2   letters      r!   test_consolidate_inplacez4TestDataFrameBlockInternals.test_consolidate_inplaceU   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%      r8   r9         )pytestraises
ValueErrorvaluesall)r   r2   using_copy_on_writecols       r!   test_modify_valuesz.TestDataFrameBlockInternals.test_modify_valuesZ   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 )Nr8   r9      r   )rS   copyr)   assert_almost_equal)r   r2   r5   s      r!   test_boolean_set_unconsz3TestDataFrameBlockInternals.test_boolean_set_unconsn   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 )NrD   l    )namel            i  r   Tg      ?rY   y      ?       @r   g      @)       @r   TNr_   i  )r   r   r0   asarrayint64r)   assert_series_equaluint64r   object_nanfloat64
complex128)r   r    resultr5   s       r!   test_constructor_with_convertz9TestDataFrameBlockInternals.test_constructor_with_convertw   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        ddd      t        j                  t        ddd      gt        ddd      t        ddd      t        ddd      gg}t        |      }|j                  }t        ddi      }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dt        j                  d      t        j                  d      gz   t        d      g dz         }t        j                  ||       y )N  r   rM   rY   i  r   zdatetime64[us]r   )dayssecondsr   zM8[us]zm8[us]rf      objectstringztimedelta64[us]ABCD)foor   r   index)r   r0   re   r   dtypesr   nowr   r(   listr)   rb   )r   float_string_frameusing_infer_stringdatar    rh   r5   s          r!   test_construction_with_mixedz8TestDataFrameBlockInternals.test_construction_with_mixed   sK   
 dAq!2668D!Q+?@dAq!8D!Q#7$19MN
 t_ +Q/0 *2:&*3A*F;'!*-33x???!+.44@@@#**XXi !A%*<"()**+ v,!AA
 	vx0r#   c                    t        j                  g dd      }t        t        d            }||d<   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        t        d            }t        j                  d      |d<   t        j                  g dd      |d<   t        j                  ||       y )Nr   rY   r   ztimedelta64[s]r'   r   rs   rD   z00:00:01s)r   r   r   )r   zM8[s])dt1dt2r   r   
2013-01-01)r   z
2013-01-02z
2013-01-03zdatetime64[D])r0   arrayr   rF   r   timedelta_ranger)   assert_numpy_array_equalto_numpyr	   r
   astyperu   
datetime64r/   )r   arrr    r5   s       r!   "test_construction_with_conversionsz>TestDataFrameBlockInternals.test_construction_with_conversions   s!    hhy(89U1X&3"$$ZEFeTUh
 	##BsG$4$4$6< ,!*a8??H (
 u%000u%000U1X&MM,/5	HH6o
5	 	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 )Nrk   r   aa   	   )rD   r   C)rz   columnsr(   )rw   	itertoolsrepeatr   r   )r(   rz   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 constructorrL   ))rD   zdatetime64[h])r   str)r   r1   zargument must bera   rf   zD^Unknown datetime string format, unable to parse: aa, at position 0$zM8[ns])rP   rQ   NotImplementedError	TypeErrorrR   )r   r   r3   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_pickler/   r,   ndimrepr)r   rx   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   rS   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   r2   rx   s      r!   test_is_mixed_typez.TestDataFrameBlockInternals.test_is_mixed_typeQ  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_assignmentrY   )rn   rn   abcd)er   gh)rt   r   r   ro   r   r   )r   r   r0   randomdefault_rngr   r   r)   raises_chained_assignment_errorre   sumr   isna)r   rU   warn_copy_on_writeYs       r!    test_stale_cached_series_bug_473z<TestDataFrameBlockInternals.test_stale_cached_series_bug_473U  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   r0   re   r)   r*   r   	enumeratert   rF   locr<   r   r   )
r   rU   r    wasColidtrV   myidfirstseconds
             r!   $test_strange_column_corruption_issuez@TestDataFrameBlockInternals.test_strange_column_corruption_issuei  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}   rD   r   )
r   r   r   r)   r/   
isinstancer,   r=   r   
is_numeric)r   r   rh   r5   s       r!    test_constructor_no_pandas_arrayz<TestDataFrameBlockInternals.test_constructor_no_pandas_array  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   rY   r   rn   r   )r   r   )r   rY   Nr   r'   r   )r   r   r   r   )r   r   arraysNumpyExtensionArrayr0   r   ro   typer,   r=   r   	is_objectr)   r/   )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"   r6   rB   rJ   rW   r\   ri   r{   r   r   r   r   r   r   rP   markfilterwarningsr   r   r    r#   r!   r   r   "   s|    "0 1"3
 (=A1F1>!,F.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        n:t        j
                  t        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   rY   Ncategoryr'   r   T)inplacezinplace methodrL   r   )r   r   r)   r   fillnar*   FutureWarningr   r,   r=   rS   r   isnullr   )rU   r    s     r!   +test_update_inplace_sets_valid_block_valuesr     s    	CJ?@	AB //1 	,sGNN1dN+	, 	, ''=MN 	,sGNN1dN+	, bggnnQ'..<<<yy{ $$&!+++ 	, 	,	, 	,s   C3,C?3C<?Dc                  0   t               } t        dgt              | d<   t        dgt              | d<   | 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 )	Nr   r'   col1r   col2rD   )r   r   )r   r   )r   r   ro   atr)   r/   )r    r5   s     r!   $test_nonconsolidated_item_cache_taker     s     
BV,BvJ6*BvJ vJ# r&zQ BEE)3%!5VDH"h'55s"""r#   )r   r   r   numpyr0   rP   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      sW       , ) )    3 //
|' |'~,(#r#   