
    d<                         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mZ ej        Z G d d          Zd Zd	 ZdS )
    )datetime	timedeltaN)PerformanceWarning)Categorical	DataFrameSeries	Timestamp
date_rangeoption_context)NumericBlockObjectBlockc                   t    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S )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 d S )	N20130101   
US/Eastern)periodstz   B)r   r   D)r
   r   _valuesfreqpdNaTiloc)selfdtitsdfs       c/var/www/html/t/fyr/venv311/lib/python3.11/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#+++ x31v||||||    c                 F   t          |j        t                    }t          |j        t                    }t	          j        ||           t          |j        t          j                  }t          |j        t          j                  }t	          j        ||           d S )Ndtype)r   _mgrint_seriestmassert_frame_equalnpint32)r   float_framecastedexpecteds       r"   test_cast_internalsz/TestDataFrameBlockInternals.test_cast_internals7   s    ;+3777[0<<<
fh///;+28<<<[0AAA
fh/////r$   c                    d|d<   |                                 }t          |j        j                  dk    sJ |                                 }||usJ t	          j        ||           d|d<   t          |j        j                  dk    sJ |                                }|J t          |j        j                  dk    sJ d S )N      @Er   g       @Fr   )_consolidatelenr(   blocksr+   r,   _consolidate_inplace)r   r/   consolidatedreconsreturn_values        r"   test_consolidatez,TestDataFrameBlockInternals.test_consolidate@   s    C"//11<$+,,1111 **,,\))))
fl333C;#*++q0000"7799###;#*++q000000r$   c                     |                                 }t          t          d          t          d                    D ]!}t          |          |t          |          <   "d S )NAZ)copyrangeordchr)r   r/   frameletters       r"   test_consolidate_inplacez4TestDataFrameBlockInternals.test_consolidate_inplaceQ   s]      "" CHHc#hh// 	3 	3F'*6{{KF$$	3 	3r$   c                    |rdt          j        t          d          5  d|j        d<   d d d            n# 1 swxY w Y   |j        d         dk                                    sJ d S d|j        d<   |j        d         dk                                    sJ d|d<   |d         }d|j        d<   |j        d         dk                                    rJ |dk                                    sJ d S )Nz	read-onlymatch   r4   r5         )pytestraises
ValueErrorvaluesall)r   r/   using_copy_on_writecols       r"   test_modify_valuesz.TestDataFrameBlockInternals.test_modify_valuesX   sG    	z=== * *()"1%* * * * * * * * * * * * * * *&q)Q.3355555F !1"1%*//11111 C# !1  &q)Q.3355555q~~s   599c                     d|d<   |j                                         }d||dk    <   d||dk    <   t          j        ||j                    d S )Nr4   r5      r   )rR   rB   r+   assert_almost_equal)r   r/   r1   s      r"   test_boolean_set_unconsz3TestDataFrameBlockInternals.test_boolean_set_unconsl   sX    C%**,,!"A'(K!O$
x);<<<<<r$   c                 	   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        ||           d S )Nr@   l    )namel            i  r   Tg      ?rX   y      ?       @r   g      @)       @r   TNr]   i  )r   r   r-   asarrayint64r+   assert_series_equaluint64r   object_nanfloat_complex_)r   r!   resultr1   s       r"   test_constructor_with_convertz9TestDataFrameBlockInternals.test_constructor_with_convertu   sh    i[)**C"*i["(;;#FFF
vx000eW~&&C"*eWbi88sCCC
vx000htQ22D9:;;CJq!,,d3RZ@@s
 
 
 	vx000dAY'((C"*bfa[")<<3GGG
vx000c1X''C"*c1Xry99DDD
vx000j!_-..C"*j!_bkBBMMM
vx000j#./00C"*j#%6DD3OOO
vx000j$/011C"*j$%7DD3OOO
vx000c4[)**C"*c26]BI>>SIII
vx000j$/011C"*j"&%92;GGcRRR
vx000111233C"*%9%9%92:FFSQQQ
vx000c1htQ&:&:DABCCCJQq! 4 4d;RZHHs
 
 
 	vx0000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  t          j        d          t          j        d          t          j        d          gz   t          d          g dz             }t          j        ||           d S )N  r   rL   rX   i  r   zdatetime64[ns]r   )dayssecondsr   M8[ns]zm8[ns]float64   objectztimedelta64[ns]ABCD)foor   r   index)r   r-   rc   r   dtypesr   nowr   r'   listr+   r`   )r   float_string_framedatar!   rf   r1   s         r"   test_construction_with_mixedz8TestDataFrameBlockInternals.test_construction_with_mixed   sy   
 dAq!!268D!Q+?+?@dAq!!8D!Q#7#7$19M9MN
 t__ +Q/00 *2:&*3A*F*F*F;'!*-3x????!+.4@@@@#*Xi  !A%"")***++ v,,!A!A!AA
 
 
 	vx00000r$   c                    t          j        g dd          }t          t          d                    }||d<   t          dt	          j        ddd	          it          d                    }t          j        |d                                         |           t          t          d
          t          d
d                              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        ||           d S )Nr   rX   r   ztimedelta64[s]r&   r   rr   r@   z00:00:01s)r   r   r   )r   zM8[s])dt1dt2r}   rl   r~   
2013-01-01)r   z
2013-01-02z
2013-01-03zdatetime64[D])r-   arrayr   rC   r   timedelta_ranger+   assert_numpy_array_equalto_numpyr	   r
   astypert   
datetime64r,   )r   arrr!   r1   s       r"   "test_construction_with_conversionsz>TestDataFrameBlockInternals.test_construction_with_conversions   s    hyyy(8999U1XX&&&3"$ZEEEFeTUhh
 
 
 	#BsG$4$4$6$6<<< ,,!*a888??HH 
 ((
 
 
 u%1111u%0000U1XX&&&M,//5	H666o
 
 
5	 	b(+++++r$   c                 
   d }d}t          j        t          |          5   |g d           d d d            n# 1 swxY w Y   t          j        t          d          5   |d           d d d            n# 1 swxY w Y   t          j        t          d          5   |d           d d d            n# 1 swxY w Y   d}t          j        t          |          5   |d	           d d d            d S # 1 swxY w Y   d S )
Nc           	          t          t          j        t          ddd          ddfd                    }t	          |g d|           S )Nri   r   aa   	   )r@   r   C)rx   columnsr'   )rv   	itertoolsrepeatr   r   )r'   rx   s     r"   fzGTestDataFrameBlockInternals.test_constructor_compound_dtypes.<locals>.f   sH    	((4A*>*>b)I1MMNND$uMMMMr$   z@compound dtypes are not implemented in the DataFrame constructorrJ   ))r@   zdatetime64[h])r   str)r   r.   zargument must ber_   rm   zD^Unknown datetime string format, unable to parse: aa, at position 0$rl   )rO   rP   NotImplementedError	TypeErrorrQ   )r   r   msgs      r"    test_constructor_compound_dtypesz<TestDataFrameBlockInternals.test_constructor_compound_dtypes   s/   	N 	N 	N Q].c::: 	F 	FADDDEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F ]9,>??? 	 	AgJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9,>??? 	 	AiLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 U]:S111 	 	AhKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sC   ;??!A99A= A=B77B;>B;C88C<?C<c                 $   t                      }t          j        |          }t          j        ||           |j        j         t          j        |          }t          |           t          j        |          }t          j        ||           d S N)r   r+   round_trip_pickler,   r(   ndimrepr)r   rw   timezone_frameempty_frame	unpickleds        r"   test_picklez'TestDataFrameBlockInternals.test_pickle  s    kk();<<	
0)<<< 	$$ (55	Y (88	
ni88888r$   c                    t          t          j        g d          t          j        g d          g dd          }|j        }|j        |_        |                    d          }|                    d          }d|j        _        |j	        }|j        |_        |                    d          }|                    d          }d|j        _        |j        |_        |j        |_	        t          j        t          j        |j                  |j                   t          j        t          j        |j	                  |j                   d S )	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   rR   rs   tz_localize
tz_convertr\   r   r+   assert_index_equalDatetimeIndex)r   r!   ser_starting
ser_endings       r"   test_consolidate_datetime64z7TestDataFrameBlockInternals.test_consolidate_datetime64   sN    N    .    /..' 
 
0 {)0#//==#..u55",Y
%,
++L99
**511
 (
"($	
b.r{;;\=OPPP
b.ry99:;KLLLLLr$   c                 *    |j         rJ |j         sJ d S r   )_is_mixed_type)r   r/   rw   s      r"   test_is_mixed_typez.TestDataFrameBlockInternals.test_is_mixed_typeM  s&    ----!000000r$   c                    t          dd           5  t          t          j                            d          dd          }t	          |           |d                             d          |d<   |rAt          j                    5  t          j        |d         d	<   d d d            n# 1 swxY w Y   nt          j        |d         d	<   t	          |           |	                                }|d         	                                }|r#t          j        |d         d	                   rJ n"t          j        |d         d	                   sJ d d d            d S # 1 swxY w Y   d S )
Nchained_assignment)rn   rn   abcd)er   gh)rs   r   r   ro   r   r   )r   r   r-   randomr   r   r+   raises_chained_assignment_errorNaNsumr   isna)r   rT   Yrf   exps        r"    test_stale_cached_series_bug_473z<TestDataFrameBlockInternals.test_stale_cached_series_bug_473Q  s   0$77 	, 	,	  ((*,  A
 GGGsV]]8,,AcF" %799 ) )"$&AcF3K) ) ) ) ) ) ) ) ) ) ) ) ) ) ) !f#sGGGUUWWFC&**,,C" ,71S6#;//////wqvc{+++++'	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s7   A2EB%E%B)	)E,B)	-BEEEc                 h   t          ddg          }t          j        |d<   i }t          j        t
                    5  t          |j                  D ]J\  }}t          dd          D ]4}||vrd||<   t          j        ||<   |r||j	        ||f<   )|||         |<   5K	 d d d            n# 1 swxY w Y   d}t          |j	        t          j        ||                   |gf                   }t          |j	        t          j        ||                   |gf                   }	||	cxk    rdk    sn J d S )Nr   r   rr   d      )r   r-   rc   r+   assert_produces_warningr   	enumeraters   rC   locr8   r   r   )
r   rT   r!   wasColidtrU   myidfirstseconds
             r"   $test_strange_column_corruption_issuez@TestDataFrameBlockInternals.test_strange_column_corruption_issueh  s   aV$$$1'(:;; 		( 		("28,, ( (2 c?? ( (C&((&'s"$&3* (*+r3w&'3((		( 		( 		( 		( 		( 		( 		( 		( 		( 		( 		( 		( 		( 		( 		( BF272d8,,tf4566RVBGBtH--v5677####!########s   A B**B.1B.c                     t          g d          j        }t          d|i          }t          dg di          }t          j        ||           t          |j        j        d         t                    sJ d S )Nr{   r@   r   )	r   r   r   r+   r,   
isinstancer(   r9   r   )r   r   rf   r1   s       r"    test_constructor_no_pandas_arrayz<TestDataFrameBlockInternals.test_constructor_no_pandas_array  sx     YYY%C:&&c999-..
fh///&+,Q/>>>>>>>r$   c           
      4   t          g dg dd          }t          j                            t	          j        g dt                              |d<   t          g dg dt          j                            t	          j        g dt                              d          }t          |d         j        j	        d                   t          k    sJ t          |d         j        j	        d                   t          k    sJ t          j        ||           d S )	N)r   rX   r   rn   r   )r   r   )r   rX   Nr   r&   r   )r   r   r   r   )r   r   arraysPandasArrayr-   r   ro   typer(   r9   r   r+   r,   )r   r!   df2s      r"   !test_add_column_with_pandas_arrayz=TestDataFrameBlockInternals.test_add_column_with_pandas_array  s   \\\0D0D0DEEFF)''(O(O(OPP3!\\)))Y**28OOO6+R+R+RSS 
 
 BsGL'*++{::::CHM(+,,;;;;
b#&&&&&r$   N)__name__
__module____qualname__r#   r2   r>   rH   rV   rZ   rg   ry   r   r   r   r   r   r   r   r   r    r$   r"   r   r   %   s         "0 0 01 1 1"3 3 3     (= = =A1 A1 A1F1 1 1>, , ,B  .9 9 9"+M +M +MZ1 1 1, , ,.$ $ $.? ? ?' ' ' ' 'r$   r   c                 `   t          dt          g dd          i          }|d                             dd           t          |j        j        d         j        t                    sJ | s>|                                	                                	                                dk    sJ d S d S )	Nr   )r   rX   Ncategoryr&   r   T)inplacer   )
r   r   fillnar   r(   r9   rR   r   isnullr   )rT   r!   s     r"   +test_update_inplace_sets_valid_block_valuesr     s    	CJ???@	A	AB sGNN1dN### bgnQ'.<<<<< ,yy{{  $$&&!++++, ,++r$   c                  `   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 d S )	Nr   r&   col1r   col2r@   )r   r   )r   r   )r   r   ro   atr+   r,   )r!   r1   s     r"   $test_nonconsolidated_item_cache_taker     s     
BV,,,BvJ6***BvJ vJ# r&zQ BE)3%!55VDDDH"h'''5s""""""r$   )r   r   r   numpyr-   rO   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r	   r
   r   pandas._testing_testingr+   pandas.core.internalsr   r   skip_array_manager_invalid_test
pytestmarkr   r   r   r   r$   r"   <module>r      sx                   , , , , , , ) ) ) ) ) ) ) ) )                                 /
p' p' p' p' p' p' p' p'f, , ,# # # # #r$   