
    d                     ^   d dl mZm Z  d dl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mZ d dlZd dlmZmZmZmZmZmZmZmZmZ d dlmZ d dlm c m!Z" d dl#m$Z$m%Z%m&Z& d dl'm(Z(m)Z)m*Z* d d	l+m,Z,m-Z- ej.        Z/ ej0        e-e*g
          d             Z1ej0        d             Z2d Z3d Z4dZ5dd e-fdZ6d$dZ7d$dZ8ej0        d             Z9 G d d          Z: G d d          Z;d Z< G d d          Z= G d d          Z> G d d          Z? G d d           Z@d! ZAd" ZBd# ZCdS )%    )datedatetimeN)BlockPlacement)IS64)	is_scalar)	Categorical	DataFrameDatetimeIndexIndexIntervalIndexSeries	Timedelta	Timestampperiod_range)DatetimeArraySparseArrayTimedeltaArray)BlockManagerSingleBlockManager
make_block)ensure_block_shape	new_blockparamsc                     | j         S )zS
    Fixture to test both the internal new_block and pseudo-public make_block.
    param)requests    a/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/internals/test_internals.pyblock_makerr    3   s    
 =    c                       t          d          S )Nza: f8; b: object; c: f8; d: object; e: f8;f: bool; g: i8; h: complex; i: datetime-1; j: datetime-2;k: M8[ns, US/Eastern]; l: M8[ns, CET];)
create_mgr r!   r   mgrr%   ;   s    	1  r!   c                 *   t          j        | j        |j                   | j        |j        k    sJ t	          | j        t                    sJ t	          |j        t                    sJ t          j        | j        j        |j        j                   d S N)tmassert_numpy_array_equalvaluesdtype
isinstancemgr_locsr   as_array)leftrights     r   assert_block_equalr1   D   s    U\::::$$$$dm^44444enn55555 68OPPPPPr!   c           	          t          j        | d                   }t           j        j                            || |j        fdt          |           dz
  z  z                                             S )Nr   )r      )xshapestrides)nparangelibstride_tricks
as_strideditemsizelencopy)r5   arrs     r   get_numeric_matr@   L   s_    
)E!H

C6**
US\Odc%jj1n6M$M +  
dffr!   
   c                 ~   t          |          }t          |          }|t          f}|f|z   }t          |          }| dv r|                    |           |z   }nH| dv rd|                    |           |z   z  }n'| dv r6t          j        d |                                |z   D             |          }n| dv r"t          j        |t
          j	                  }n| d	v r|d
z                      d          }n| 
                    d          rt          j        d|           }	|	J d|              |	                                d         }
|dk    s
J d            t          t          j        t                    dz  |
          j        }t#          |t          |                    }n| dv r|dz                      d          }n| dv rt%          g d          }n| dv rt%          g d          }n| dv r|d         dk    rt&          t)          d |dd         D                       sJ |                     d          rt
          j        }nd }t/          ||dd!d"|d#d$|d%g
|&          }|j                                        }||dz
  z  }nt5          d'|  d(           |||t          |          )          S )*a  
    Supported typestr:

        * float, f8, f4, f2
        * int, i8, i4, i2, i1
        * uint, u8, u4, u2, u1
        * complex, c16, c8
        * bool
        * object, string, O
        * datetime, dt, M8[ns], M8[ns, tz]
        * timedelta, td, m8[ns]
        * sparse (SparseArray with fill_value=0.0)
        * sparse_na (SparseArray with fill_value=np.nan)
        * category, category2

    N)floatf8f4f2inti8i4i2i1uintu8u4u2u1)complexc16c8y              ?)objectstringOc                     g | ]}d |d	S )Adr$   ).0is     r   
<listcomp>z create_block.<locals>.<listcomp>   s     III1YYYYIIIr!   )bboolr+   )r   dtM8[ns]g    eAra   zM8[nszM8\[ns,\s*(\w+\/?\w*)\]zincompatible typestr -> r   r3   z)must have only 1 num items for a tz-awarei ʚ;)tzndim)	timedeltatdm8[ns]rg   )category)
r3   r3      ri      rj   rj   rj      rk   )	category2)
arm   rm   rm   r]   r]   crn   rn   rY   )sparse	sparse_narA   c              3   "   K   | ]
}|d k    V  dS )r3   Nr$   )rZ   ss     r   	<genexpr>zcreate_block.<locals>.<genexpr>   s&      ..a16......r!   _na        ri   rj   rk         
fill_valuezUnsupported typestr: ""	placementrd   )r   r=   Nr@   astyper7   reshaperavelonesbool_
startswithresearchgroupsr
   r8   _datar   r   NotImplementedErrorallendswithnanr   	sp_valuesview
ValueError)typestrr}   
item_shape
num_offsetmaker	num_itemsr5   matr*   mrb   rz   r?   s                r   create_blockr   V   s   " y))IIIT
L:%E
%
 
 C     G$$z1	,	,	,G,,z9:	-	-	-II		j0HIII5QQ	M	!	!bh///	0	0	0)##H--			G	$	$ >I0'::}}BBB}}}XXZZ]A~~~J~~~ry||e3;;;A#FU<<<	1	1	1'!!(++	M	!	!;;;<<	N	"	"OOOPP	+	+	+9??%%..5":........E"" 	JJJQ1j!Q
AN!
 
 
 ##%%zA~<'<<<===593u::>>>>r!   c           	          |t           }t          t          | t          d|          d          t	          t          j        |                              S )Nr   r$   )r}   r   )r~   r   r   slicer   r7   r8   )r   num_rowss     r   create_single_mgrr      sP    Wa(:(:rJJJbi!!""  r!   c           	         |t           f}d}g }i }|                     d          D ]}|                                }t          |          s'|                    d          ddd         \  }}|                                }|                                                    d          }|                    |           t          t          j        t          |                    |z             }	 ||                             |           n# t          $ r |||<   Y nw xY w|t          |          z  }t          |          }g }	d}
|                                D ]X\  }}|                    d          d         }|	                    t          ||||
                     |
t          |          z  }
Yt          |	d	 
          }t          t!          |          |gd |D             z             S )aU  
    Construct BlockManager from string description.

    String description syntax looks similar to np.matrix initializer.  It looks
    like this::

        a,b,c: f8; d,e,f: i8

    Rules are rather simple:

    * see list of supported datatypes in `create_block` method
    * components are semicolon-separated
    * each component is `NAME,NAME,NAME: DTYPE_ID`
    * whitespace around colons & semicolons are removed
    * components with same DTYPE_ID are combined into single block
    * to force multiple blocks with same dtype, use '-SUFFIX'::

        'a:f8-1; b:f8-2; c:f8-foobar'

    Nr   ;:ri   ,-)r   r   c                     | j         d         S Nr   )r-   )r]   s    r   <lambda>zcreate_mgr.<locals>.<lambda>   s    1:a= r!   )keyc                 P    g | ]#}t          t          j        |                    $S r$   )r   r7   r8   )rZ   ns     r   r\   zcreate_mgr.<locals>.<listcomp>   s(    ???quRYq\\**???r!   )r~   splitstripr=   	partitionextendlistr7   r8   KeyErrorr   itemsappendr   sortedr   tuple)descrr   offset	mgr_itemsblock_placementsrY   namesblockstrr}   blocksr   r   sblockss                r   r#   r#      s   * T
FI[[  GGII1vv 	++c**33Q3/x>>####C((3u::..788		3X&--i8888 	3 	3 	3)2X&&&	3#e**i  IFJ/5577 % %)..%%a(zj  	
 	
 	

 	c)nn$

V!8!8999Gg	??J????  s   0DDDc                  &    t          dg d          S )NrC   r   ri   rk   )r   r$   r!   r   fblockr      s    +++r!   c                       e Zd Zd Zej                            ddg dgddggddd	ggd
dggg          d             Zd Zd Z	d Z
d Zd Zd ZdS )	TestBlockc                 V    t          ddg          }|j        t          j        k    sJ d S )NrI   r   )r   r+   r7   int32)self
int32blocks     r   test_constructorzTestBlock.test_constructor   s/    !$,,
28++++++r!   z	typ, datarC   r   rQ      rT   r3   rj   r^   rw   c                 j    t          ||          }t          t          j        |          |           d S r'   )r   r1   r(   round_trip_pickle)r   typdatablks       r   test_picklezTestBlock.test_pickle  s4     3%%2/44c:::::r!   c                     t          |j        t                    sJ t          j        |j        j        t          j        g dt          j                             d S )Nr   r_   )	r,   r-   r   r(   r)   r.   r7   arrayintpr   r   s     r   test_mgr_locszTestBlock.test_mgr_locs  sX    &/>:::::
#O$bhyyy&H&H&H	
 	
 	
 	
 	
r!   c                     |j         |j        j         k    sJ |j        |j        j        k    sJ t          |          t          |j                  k    sJ d S r'   )r5   r*   r+   r=   r   s     r   
test_attrszTestBlock.test_attrs  sY    |v}22222|v}222226{{c&-00000000r!   c                 Z    |                                 }||usJ t          ||           d S r'   )r>   r1   )r   r   cops      r   	test_copyzTestBlock.test_copy  s6    kkmm&    63'''''r!   c                    |                                 }|j        }|                    d          d         }|j        |u sJ ||usJ t          j        |j        j        t          j        ddgt          j                             |j	        d         dk    
                                rJ |j	        d         dk    
                                sJ |                                 }|j        }|                    d          }t          |          dk    sJ |j        |u sJ t          j        |d         j        j        t          j        dgt          j                             t          j        |d         j        j        t          j        dgt          j                             |j	        d         dk    
                                rJ |d         j	        d         dk    
                                sJ |                                 }|                    d          }t          |          dk    sJ t          j        |d         j        j        t          j        ddgt          j                             |d         j	        d         dk    
                                sJ |                                 }t          j        t          d           5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   ri   rk   r_   r3   matchrj   )r>   r-   deleter(   r)   r.   r7   r   r   r*   r   r=   pytestraises
IndexError)r   r   newblocsnbs        r   test_deletezTestBlock.test_delete  s   {{}}}[[^^A}$$$$~~~~
#K "(Aq6"A"A"A	
 	
 	
 KNa',,.....	!!&&((((({{}}}[[^^2ww!||||}$$$$
#qEN#RXqc%A%A%A	
 	
 	
 	#qEN#RXqc%A%A%A	
 	
 	
 KNa',,.....1Q1$))+++++{{}}[[^^2ww!||||
#qEN#RXq!fBG%D%D%D	
 	
 	
 1Q1$))+++++{{}}]:T222 	 	KKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   K99K= K=c                 V   t          j        dd                              dd                              d          }t	          |          }|j        j        d         }t          |j        t                    sJ |
                    d          }t          |          d	k    sJ t          |d         j        t                    sJ t          |d         j        t                    sJ t	          |                    d
                    }|j        j        d         }t          |j        t                    sJ |
                    ddg          }t          |          d	k    sJ t          |d         j        t                    sJ t          |d         j        t                    sJ d S )N   rH   r_   rw   rk   rg   r   r3   ri   ra   rj   )r7   r8   r   r   r	   _mgrr   r,   r*   r   r   r=   r   )r   r?   dfr   r   s        r   test_delete_datetimelikez"TestBlock.test_delete_datetimelikeH  sd   i$'''//155::8DDs^^gnQ#*n55555ZZ]]2ww!||||"Q%,77777"Q%,77777sxx))**gnQ#*m44444ZZA2ww!||||"Q%,66666"Q%,6666666r!   c                    t           j                            dd          }t          |g dd          }|                                }d|d d <   |j        dk                                    sJ t          |          dk    sJ t          |dg         dgd          t          |dg         dgd          t          |dg         d	gd          g}t          ||          D ]\  }}t          ||           d S )
Nrj   rk   )rj   r3   rx   ri   r|   ir   r3   rx   )
r7   randomrandnr   _splitr*   r   r=   zipr1   )r   r*   r   resultexpectedresexps          r   
test_splitzTestBlock.test_split]  s   A&&)))!<<< qqq	
e#((*****6{{afaSkaSq999faSkaSq999faSkaSq999

 FH-- 	) 	)HCsC((((	) 	)r!   N)__name__
__module____qualname__r   r   markparametrizer   r   r   r   r   r   r   r$   r!   r   r   r      s        , , , [iii 1vaSM		
 ; ; ;
 
 
1 1 1
( ( (
( ( (T7 7 7*) ) ) ) )r!   r   c                   H   e Zd Zd Zd Zd Zej                            dddg          d             Z	d Z
d	 Zd
 Zd Zd Zd Zd Zej                            ddej        fdej        fg          d             Zej                            ddej        fdej        fdej        fg          d             Zd Zd Zej                            dg d          d             Zd Zd Zd Zej                            dg d          d              Zd! Z d" Z!d# Z"d$ Z#d% Z$ej                            dd&d'g          d(             Z%ej                            dg d)          d*             Z&d+ Z'ej                            d,d-d.g d/d0g          d1             Z(d2 Z)d3 Z*d4S )5TestBlockManagerc                 h    t          d          }|j        dk    sJ t          |          dk    sJ d S )Nza,b,c: f8-1; d,e,f: f8-2ri   rx   )r#   nblocksr=   r   r%   s     r   r   zTestBlockManager.test_attrsr  s:    344{a3xx1}}}}}}r!   c                    t          d          }|j        |j        }}t          t	          j        dg                    |d         _        t          t	          j        dg                    |d         _        d}t          j        t          |          5  t          ||          }|                                 d d d            n# 1 swxY w Y   t          t	          j        dg                    |d         _        t          t	          j        dg                    |d         _        t          ||          }|                    d           d S )Nza:bool; a: f8r   r3   zGaps in blk ref_locsr   )r#   axesr   r   r7   r   r-   r   r   AssertionErrorr   _rebuild_blknos_and_blklocsiget)r   tmp_mgrr   r   msgr%   s         r   test_duplicate_ref_loc_failurez/TestBlockManager.test_duplicate_ref_loc_failurew  sJ   _--|W^f+BHaSMM::q	+BHaSMM::q	 %]>555 	. 	.vt,,C++---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ,BHaSMM::q	+BHaSMM::q	64((s   %CC
C
c                     t          j        |          }t          j        t          |          t          |                     t	          |d          sJ t	          |d          sJ |j        rJ |j        rJ d S )N_is_consolidated_known_consolidated)r(   r   assert_frame_equalr	   hasattrr  r  )r   r%   mgr2s      r   r   zTestBlockManager.test_pickle  s    #C((
innioo>>> t/00000t233333 ((((++++++r!   
mgr_stringza,a,a:f8za: f8; a: i8c                     t          |          }t          j        |          }t          j        t	          |          t	          |                     d S r'   )r#   r(   r   r  r	   )r   r  r%   r  s       r   test_non_unique_picklez'TestBlockManager.test_non_unique_pickle  sD    $$#C((
innioo>>>>>r!   c                 N   t          d          }t          j        |          }t          j        t	          |          t	          |                     t          d          }t          j        |          }t          j        t          |          t          |                     d S )Na: categoryrh   )r#   r(   r   r  r	   r   assert_series_equalr   )r   r%   r  smgrsmgr2s        r   test_categorical_block_picklez.TestBlockManager.test_categorical_block_pickle  s    ''#C((
innioo>>> ,,$T**
vd||VE]];;;;;r!   c           	         t          t          d                    }t          j                            dd          }t          |                                t          j        dt          j                  |j	                  }t          |f|t          t          j        d                    g          }t          j        |                    d                                          |d                    t          j        |                    d                                          |d                    t          j        |                    d                                          |d                    d S )	Nabcrj   r_   )r*   r}   rd   )r   r   r   r3   ri   )r   r   r7   r   randr   r>   r8   r   rd   r   r(   assert_almost_equalr   internal_values)r   colsr*   blockr%   s        r   	test_igetzTestBlockManager.test_iget  s   T%[[!!1%%;;==i111
 
 

 5($bill8K8K1LMMM
sxx{{::<<fQiHHH
sxx{{::<<fQiHHH
sxx{{::<<fQiHHHHHr!   c                    t          dd          }|                    t          |j                  dt	          j        dgdz                       |                    dt	          j        dgdz                       t          j        |	                    d	          
                                t	          j        d	gdz                       t          j        |	                    d          
                                t	          j        dgdz  t          j        
                     t          j        |	                    d          
                                t	          j        dgdz                       t          j        |	                    d          
                                t	          j        dgdz  t          j        
                     d S )Nz
a,b,c: intrj   r   rY   foorj   r3   barr   r_   ri   )r#   insertr=   r   r7   r   isetr(   r)   r   r  object_r   s     r   test_setzTestBlockManager.test_set  st   $777

3sy>>3%1(=(=>>>BHeWq[))***
#CHHQKK$?$?$A$A28QCRSGCTCTUUU
#HHQKK''))28UGaKrz+R+R+R	
 	
 	
 	#CHHQKK$?$?$A$A28QCRSGCTCTUUU
#HHQKK''))28UGaKrz+R+R+R	
 	
 	
 	
 	
r!   c                 &   |                     t          |j                  dt          j        t
          t                               |                    |j                            d          t          j	        dt
                               |j                            d          }|
                    |          j        t          j        k    sJ |                                }|                    |j                            d          t          j	        dt
                               |j                            d          }|
                    |          j        t          j        k    sJ |                     t          |j                  dt          j                            t
                                        t"                               |j                            d          }|
                    |          j        t          j        k    sJ |                    |j                            d          t          j                            t
                               |
                    |          j        t          j        k    sJ d S )Nbazr_   r  quux)r  r=   r   r7   zerosr~   r^   r  get_locrepeatr   r+   r  consolidater   r   r   rG   int_float_)r   r%   idxr  s       r   test_set_change_dtypez&TestBlockManager.test_set_change_dtype  s   

3sy>>5"(1D*A*A*ABBB""5))29UA+>+>???i&&xx}}"bj0000  		$*$$U++RYua-@-@AAAj  ''yy~~#rz1111C
OOVRY__Q-?-?-F-Fs-K-KLLLj  ((yy~~#rw....		$*$$V,,biooa.@.@AAAyy~~#ry000000r!   c                 V   |                     d          }t          |j        |j                  D ]\  }}t          j        |j        |j                   t          |j        t          j                  r|j        j	        |j        j	        u sJ ^|j        j
        j	        |j        j
        j	        u sJ |                                 |                     d          }t          |j        |j                  D ]\  }}|j        }|j        }t          j        ||           t          |t          j                  r|j	        }|j	        }n|j
        j	        }|j
        j	        }t          |t                    r||||usJ t          |t          j                  s||usJ ||J d S )NF)deepT)r>   r   r   r(   assert_equalr*   r,   r7   ndarraybase_ndarray_consolidate_inplacer   )	r   r%   cpr   cp_blkbvalscpvalslbaserbases	            r   r   zTestBlockManager.test_copy  s   XX5X!!sz2955 	O 	OKCOFM3:666#*bj11 O})SZ_<<<<< }-2cj6I6NNNNNN 	  """XX4X  sz2955 	7 	7KCJE]FOFE***&"*-- ,
,+ &-00 7%-U%=O=O=O=O
33 7E)))))})	7 	7r!   c                 v    t          d          }|                                j        t          j        k    sJ d S )Nza: sparse-1; b: sparse-2)r#   r.   r+   r7   float64r   s     r   test_sparsezTestBlockManager.test_sparse  s4    344||~~#rz111111r!   c                     t          d          }t          |j                  dk    sJ t          |t                    sJ d S )Nza: sparse-1; b: sparse-2; c: f8rj   )r#   r=   r   r,   r   r   s     r   test_sparse_mixedz"TestBlockManager.test_sparse_mixed  sE    :;;3:!#####|,,,,,,,r!   zmgr_string, dtypezc: f4; d: f2c: f4; d: f2; e: f8c                 b    t          |          }|                                j        |k    sJ d S r'   r#   r.   r+   r   r  r+   r%   s       r   test_as_array_floatz$TestBlockManager.test_as_array_float  s3    
 $$||~~#u,,,,,,r!   za: bool-1; b: bool-2z%a: i8-1; b: i8-2; c: i4; d: i2; e: u1zc: i4; d: i2; e: u1c                 b    t          |          }|                                j        |k    sJ d S r'   r?  r@  s       r   test_as_array_int_boolz'TestBlockManager.test_as_array_int_bool  s3     $$||~~#u,,,,,,r!   c                 b    t          d          }|                                j        dk    sJ d S )Nzh: datetime-1; g: datetime-2ra   r?  r   s     r   test_as_array_datetimez'TestBlockManager.test_as_array_datetime  s2    788||~~#x//////r!   c                     t          d          }|                    d          j        dk    sJ |                    d          j        dk    sJ |                                j        dk    sJ d S )Nz%h: M8[ns, US/Eastern]; g: M8[ns, CET]r   zdatetime64[ns, US/Eastern]r3   zdatetime64[ns, CET]rT   )r#   r   r+   r.   r   s     r   test_as_array_datetime_tzz*TestBlockManager.test_as_array_datetime_tz  sp    @AAxx{{ $@@@@@xx{{ $99999||~~#x//////r!   t)float16float32r9  r   int64c                 x   t          d          }t          j        |          }|                    |          }|                    d          j        j        |k    sJ |                    d          j        j        |k    sJ |                    d          j        j        |k    sJ t          d          }t          j        |          }|                    |d          }|                    d          j        j        |k    sJ |                    d          j        j        |k    sJ |                    d	          j        j        |k    sJ |                    d
          j        j        |k    sJ |                    d          j        j        t          j        k    sJ |                    d          j        j        t          j        k    sJ |t          j        k    r1|                    d          j        j        t          j        k    sJ d S |                    d          j        j        |k    sJ d S )Nr=  r   r3   ri   z6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8ignore)errorsrk   rw   rx   rj   )	r#   r7   r+   r   r   typer  rK  
datetime64)r   rH  r%   tmgrs       r   test_astypezTestBlockManager.test_astype"  s    .//HQKKzz!}}yy||!&!++++yy||!&!++++yy||!&!++++ QRRHQKKzz!Hz--yy||!&!++++yy||!&!++++yy||!&!++++yy||!&!++++yy||!&"*4444yy||!&"*4444==99Q<<%*bm;;;;;;99Q<<%*a//////r!   c                    d }t          d          }|                    d          } |||           t          d          }|                    dt          j        dgt
          z  t          j                             |                    d	t          j        d
gt
          z  t          j                             |                    dt          j        dgt
          z  t          j                             |                    d          }|                    d          j        t          j        k    sJ |                    d	          j        t          j        k    sJ |                    d          j        t          j        k    sJ |                    d          j        t          j	        k    sJ |                    d          j        t          j
        k    sJ t          d          }|                    dt          j        dgt
          z  t          j                             |                    d	t          j        d
gt
          z  t          j                             |                    dt          j        dgt
          z  t          j                             |                    d          }|                    d          j        t          j        k    sJ |                    d	          j        t          j        k    sJ |                    d          j        t          j        k    sJ |                    d          j        t          j        k    sJ |                    d          j        t          j        k    sJ |                    d          j        j        sJ t          j                    |                    d          j        t          j	        k    sJ |                    d          j        t          j
        k    sJ |                    d          j        t          j        k    sJ d S )Nc                 r   t          | j                  }t          |j                  }t          |          t          |          k    sJ |D ]3}d}|D ](}|j        |j        k                                    rd} n)|sJ 4|D ]3}d}|D ](}|j        |j        k                                    rd} n)|sJ 4dS )z4compare the blocks, numeric compare ==, object don'tFTN)setr   r=   r*   r   )old_mgrnew_mgr
old_blocks
new_blocksr]   foundr   obs           r   _comparez/TestBlockManager.test_convert.<locals>._compare?  s   W^,,JW^,,Jz??c*oo5555    $  BBI-2244  $   $  BBI-2244  $  r!   zf: i8; g: f8Tr>   za,b,foo: object; f: i8; g: f8r   1r_   r3   z2.ri   zfoo.rj   rk   zEa,b,foo: object; f: i4; bool: bool; dt: datetime; i: i8; g: f8; h: f2rw   rx   r      )r#   convertr  r7   r   r~   r  r   r+   rK  r9  r   r   rO  rP  rI  )r   r\  r%   rW  s       r   test_convertzTestBlockManager.test_convert>  s]   	 	 	0 ((++4+((g 899BHcUQYbj999:::BHdVaZrz:::;;;BHfX\<<<===++4+((||A$
2222||A$
2222||A$
2222||A$0000||A$
2222S
 
 	BHcUQYbj999:::BHdVaZrz:::;;;BHfX\<<<===++4+((||A$
2222||A$
2222||A$
2222||A$0000||A$0000||A$)882=888||A$0000||A$
2222||A$
222222r!   c                    t          j        t          d          5  t          d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          d           d d d            d S # 1 swxY w Y   d S )Nzneed to splitr   a: category; b: categorya: category2; b: category2)r   r   r   r#   r   s    r   test_invalid_ea_blockz&TestBlockManager.test_invalid_ea_blockx  s   ]:_=== 	3 	31222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 ]:_=== 	5 	53444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   8<<A;;A?A?c                     dD ]g}t          d|           }|                                j        |k    sJ t          d| d|           }|                                j        |k    sJ hd S )N)rD   rH   rT   r^   rQ   ra   rg   za: z; b: r?  )r   r+   r%   s      r   test_interleavez TestBlockManager.test_interleave  s    R 	1 	1E]5]]++C<<>>'500006566u6677C<<>>'500000		1 	1r!   ))r
  rH   )rc  rH   )a: category; b: category2rT   )a: category2rT   )rd  rT   )a: f8rD   )a: f8; b: i8rD   )a: f4; b: i8rD   )a: f4; b: i8; d: objectrT   )a: bool; b: i8rT   )
a: complexrQ   )a: f8; b: categoryrT   )a: M8[ns]; b: categoryrT   )a: M8[ns]; b: boolrT   )a: M8[ns]; b: i8rT   )a: m8[ns]; b: boolrT   )a: m8[ns]; b: i8rT   )a: M8[ns]; b: m8[ns]rT   c                    t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d	          }|                                j        dk    sJ t          d
          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ d S )Nr
  rH   ri  rT   rj  rk  rD   rl  rm  rn  ro  rp  rQ   rq  rr  rs  rt  ru  rv  rw  r?  r@  s       r   test_interleave_dtypez&TestBlockManager.test_interleave_dtype  s   2 ''||~~#t++++455||~~#x////((||~~#x//// !!||~~#t++++((||~~#t++++((||~~#t++++233||~~#x////)**||~~#x////&&||~~#y0000-..||~~#t++++122||~~#x////-..||~~#x////+,,||~~#x////-..||~~#x////+,,||~~#x/////00||~~#x//////r!   c                    |                     |j                            d          t          j                            t                               |                     |j                            d          t          j                            t                               |                     |j                            d          t          j                            t                               |                     |j                            d          t          j                            t                               |                     |j                            d          t          j                            t                               |                                }|j        dk    sJ |                                	                                }|j        dk    sJ t          |j        d         j        t                    sJ t          j        |j        d         j        j        t          j        t%          |j                  t          j        	                     d S )
NfrY   r]   ghrk   r3   r   r_   )r  r   r$  r7   r   r   r~   r&  r   get_numeric_datar,   r   r-   r   r(   r)   r.   r8   r=   r   )r   r%   conss      r    test_consolidate_ordering_issuesz1TestBlockManager.test_consolidate_ordering_issues  s   ""3''););<<<""3''););<<<""3''););<<<""3''););<<<""3''););<<<   |q      1133|q    $+a.1>BBBBB
#KN#,biDJrw.W.W.W	
 	
 	
 	
 	
r!   c                    t          d          }|                    g dd          }|                                rJ t          j        |j        t          g d                     t          j        |                    d          	                                |                    d          	                                           t          j        |                    d          	                                |                    d          	                                           t          j        |                    d          	                                |                    d          	                                           t          j        |                    d          	                                |                    d          	                                           d S )	Nz3a: f8; b: i8; c: f8; d: i8; e: f8; f: bool; g: f8-2)r|  rn   rm   rY   r   axisrx   ri   r3   rj   )
r#   reindex_axisis_consolidatedr(   assert_index_equalr   r   r  r   r  )r   r%   	reindexeds      r   test_reindex_itemsz#TestBlockManager.test_reindex_items  s   NOO$$%9%9%9$BB	 ,,.....
iou5I5I5I/J/JKKK
HHQKK''))9>>!+<+<+L+L+N+N	
 	
 	
 	HHQKK''))9>>!+<+<+L+L+N+N	
 	
 	
 	HHQKK''))9>>!+<+<+L+L+N+N	
 	
 	
 	HHQKK''))9>>!+<+<+L+L+N+N	
 	
 	
 	
 	
r!   c                    t          dd          }|                    dt          j        g dt          j                             |                                }t          j        |j        t          g d                     t          j
        |                    |j                            d                                                    |                    |j                            d                                                               |                    |j                            d          t          j        g d	          d
           |rgt          j
        |                    |j                            d                                                    t          j        g d                     nft          j
        |                    |j                            d                                                    t          j        g d	                     |                    d
          }t          j        |j        t          g d                     |                    |j                            d          t          j        g d          d
           |rht          j
        |                    |j                            d                                                    t          j        g d                     d S t          j
        |                    |j                            d                                                    t          j        g d	                     d S )N[int: int; float: float; complex: complex;str: object; bool: bool; obj: object; dt: datetimer  r  rw   r3   ri   rj   r_   )rG   rC   rQ   r^   rC   )      Y@g      i@g     r@Tinplace)      ?r  r  r]  )g     @@g     @@g     p@)r#   r  r7   r   r  r~  r(   r  r   r   r  r   r$  r  )r   using_copy_on_writer%   numericnumeric2s        r   test_get_numeric_dataz&TestBlockManager.test_get_numeric_data  s-   A
 
 

 	BHYYYbj999:::&&((
gmU3V3V3V-W-WXXX
HHSY&&w//00@@BBLL..w7788HHJJ	
 	
 	
 	M!!'**H***++ 	 	
 	
 	

  		"**73344DDFF))   
 "**73344DDFF...//  
 ''T'22
gmU3V3V3V-W-WXXXN""7++H---.. 	 	
 	
 	

  		"**73344DDFF))    
 "**73344DDFF...//    r!   c                 @   t          dd          }|                    dt          j        g dt          j                             |                                }t          j        |j        t          dg                     t          j
        |                    |j                            d                                                    |                    |j                            d                                                               |                    dt          j        g d          d	
           |rgt          j        |                    |j                            d                                                    t          j        g d                     nft          j        |                    |j                            d                                                    t          j        g d                     |                    d	          }|                    dt          j        g d                     |rht          j        |                    |j                            d                                                    t          j        g d                     d S t          j        |                    |j                            d                                                    t          j        g d                     d S )Nr  r  r  rx   )TFTr_   r^   r   Tr  )TTTr]  )FTF)r#   r  r7   r   r  get_bool_datar(   r  r   r   r  r   r$  r  r)   )r   r  r%   boolsbools2s        r   test_get_bool_dataz#TestBlockManager.test_get_bool_data  s   A
 
 

 	BH000
CCCDDD!!##
ek5&??;;;
HHSY&&v..//??AAJJu{**62233CCEE	
 	
 	

 	

1bh22233T
BBB 		'**62233CCEE+++,,   
 '**62233CCEE,,,--   """--Arx 4 4 455666 		'**62233CCEE+++,,    
 '**62233CCEE,,,--    r!   c                 >    t          t          d                     d S )Nu   b,א: object)reprr#   re  s    r   test_unicode_repr_doesnt_raisez/TestBlockManager.test_unicode_repr_doesnt_raiseF  s    Z*++,,,,,r!   a,b,c: i8-1; d,e,f: i8-2za,a,a: i8-1; b,b,b: i8-2c                     t          |          }t          |j        d d d         |j                  }|                    |          sJ d S )Nrq   )r#   r   r   r   equals)r   r  bm1bm2s       r   test_equalszTestBlockManager.test_equalsI  sK    
 $$3:ddd+SX66zz#r!   )z	a:i8;b:f8za:i8;b:f8;c:c8;d:bza:i8;e:dt;f:td;g:stringza:i8;b:category;c:category2zc:sparse;d:sparse_na;b:f8c                     t          |          }t          j        |j                  }|D ]R}t	          t          |          |j                  }|                    |          sJ |                    |          sJ Sd S r'   )r#   	itertoolspermutationsr   r   r   r   r  )r   r  bmblock_permsbm_permbm_thiss         r   (test_equals_block_order_different_dtypesz9TestBlockManager.test_equals_block_order_different_dtypesR  s     
##,RY77" 	& 	&G"5>>27;;G99W%%%%%>>"%%%%%%	& 	&r!   c                     t          dd          }|                                                                g dk    sJ d S )NrD   rw   )r   )rv   r         @g      @g      @)r   external_valuestolistr   s     r   test_single_mgr_ctorz%TestBlockManager.test_single_mgr_ctore  sJ    q111""$$++--1J1J1JJJJJJJr!   valuer3   Truer  g      @c                     t          d          }dt          |          j         d}t          j        t
          |          5  |                    dgdg|           d d d            d S # 1 swxY w Y   d S )Nr  z9For argument "inplace" expected type bool, received type .r   r3   ri   r  )r#   rO  r   r   r   r   replace_list)r   r  r  r   s       r   test_validate_bool_argsz(TestBlockManager.test_validate_bool_argsi  s    3445!%[[15 5 5 	 ]:S111 	6 	6aS1#u555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   A++A/2A/c                    t          d          }|                    dt          j        dg                     t	          j        |j        t          j        g dt          rdnd                     t	          j        |j        t          j        g dt          rdnd                     t          |j
                  dk    sJ d S )	Na,b,c: i8; d: f8r   r   r   r3   r   rK  r   r_   )r   r   r   r3   ri   )r#   _iset_split_blockr7   r   r(   r)   blklocsr   blknosr=   r   r   r  s     r   test_iset_split_blockz&TestBlockManager.test_iset_split_blockt  s    *++
Q!...
#J5QWW'RRR	
 	
 	
 	#Irxt4PGGQQQ	
 	
 	
 29~~""""""r!   c                    t          d          }|                    dt          j        dg          t          j        t	          t          d                    g                     t          j        |j        t          j        g dt          rdnd                     t          j        |j
        t          j        g dt          rdnd                     t          |j                  d	k    sJ d S )
Nr  r   rA   r  rK  r   r_   )r   ri   ri   r3   rj   )r#   r  r7   r   r   ranger(   r)   r  r   r  r=   r   r  s     r   test_iset_split_block_valuesz-TestBlockManager.test_iset_split_block_values  s    *++
Q!rxeBii8I/J/JKKK
#J5QWW'RRR	
 	
 	
 	#Irxt4PGGQQQ	
 	
 	
 29~~""""""r!   N)+r   r   r   r   r   r   r   r   r   r  r  r  r  r*  r   r:  r<  r7   rJ  r9  rA  r   rK  r   rC  rE  rG  rR  ra  rf  rh  ry  r  r  r  r  r  r  r  r  r  r  r  r$   r!   r   r   r   q  s~         
  *
, 
, 
, [\J+GHH? ? IH?
< < <I I I
 
 
1 1 1&#7 #7 #7J2 2 2- - -
 [
"*	%(=rz'JK - -	 - [#RX.4bh?"BH-	
 - - -0 0 00 0 0 [S"U"U"UVV0 0 WV0683 83 83t5 5 51 1 1 [	
 	
 	
 .#0 #0/ .#0J
 
 
"
 
 
.0 0 0d' ' 'R- - - [13MN    [	
 	
 	
	 	& &	 	&K K K [Wq&)))S&ABB6 6 CB6
# 
# 
#
# 
# 
# 
# 
#r!   r   c                 r    | j         dk    r|                                 S |                                 j        S )Nr3   )rd   r  r.   T)r%   s    r   	_as_arrayr    s0    
x1}}""$$$<<>>r!   c            	       j   e Zd Z ede           ede           edef           edef           edef           edef          gZej        	                    de          d	             Z
ej        	                    de          d
             Zej        	                    de          ej        	                    ddej        dg          d                         Zej        	                    de          ej        	                    ddej        dg          d                         ZdS )TestIndexingrD   rH   za,b,c,d,e,f: f8r  za,b,c,d,e,f: i8za,b: f8; c,d: i8; e,f: stringza,b: f8; c,d: i8; e,f: f8r%   c                 |   d }|j         dk    sJ |j                     t          |j                   D ]} |||t          d                       |||t          d                      |||t          d                      |||t          dd                      |||t          ddd                     |j         dk     rt |||t          j        g t          j        	                      |||t          j        |j        |         t          j        	                      |||t          j        |j        |         t          j        	                     |j        |         dk    r^ |||t          j	        |j        |                   dz  dk                |||t          j        g d
t          j        	                      |||g             |||t          t          |j        |                                        |j        |         dk    r |||g d            |||g d           
d S )Nc           	         t          |           }t          |t          j                  r| j        |         }t          |          r{t          |          rlt          |          t          |          k    rLt          j        |t          j        t          |          t          |          z
  t                    g          }t          |t                    r| 
                    ||          }n)| j        dk    r|dk    r|                     |          }nd S t          d           f|z  |fz   }t          j        ||         t          |          d           t          j        | j        |         |         |j        |                    d S )Nr_   r  r3   r   Fcheck_dtype)r  r,   r7   r.  r   r=   concatenater#  r^   r   	get_slicerd   getitem_mgrr(   r)   r  )r%   r  slobjr   axsliced	mat_slobjs          r   assert_slice_okz4TestIndexing.test_get_slice.<locals>.assert_slice_ok  sc   C..C %,, Xd^r77 s5zz c%jjCGG.C.CNR3u::)=T J J JK E %'' u488Q4199// t-8I'I	& 1 1u    !#(4."7T9JKKKKKr!   ri   rj   d   r3   rk   r   r_   )TTFr   r3   ri   rq   r  )rd   r  r   r7   r   r   r   r5   r#  r8   r   )r   r%   r  r  s       r   test_get_slicezTestIndexing.test_get_slice  sR   	L 	L 	L6 x1}}}ch}}}// 	; 	;BOCU4[[111OCU1XX...OCU3ZZ000OCU1a[[111OCU1a__555x!||  R"BH)E)E)EFFFR2bh)O)O)OPPPR#)B-rx)P)P)PQQQ9R=A%%#OCRYsy}-E-E-IQ-NOOO#OR*=*=*=RX!N!N!N  
  R,,,ReCIbM.B.B)C)CDDD9R=A%%#OCYYY777#OC\\\:::9	; 	;r!   c                 >   d }t          |j                  D ]} |||g             |||g d            |||t          t          |j        |                                        |j        |         dk    r  |||g d            |||g d           d S )Nc                 <   t          |           }|                     ||          }t          j        t	          j        |||          t          |          d           t          j        | j        |                             |          |j        |                    d S )NFr  )r  taker(   r)   r7   r  r   )r%   r  indexerr   takens        r   assert_take_okz.TestIndexing.test_take.<locals>.assert_take_ok  s    C..CHHWd++E'Wd++Yu-=-=5    !#(4."5"5g">">
4@PQQQQQr!   )r  r   r   r   rj   r  r  )r  rd   r   r5   )r   r%   r  r  s       r   	test_takezTestIndexing.test_take  s    	R 	R 	R // 	> 	>BN3B////N3III6666N3Dsy}1E1E,F,FGGGGy}!!sB			::::sB====	> 	>r!   rz   Nr  c           
      j   d }t          |j                  D ]} |||t          g           |            ||||j        |         |            ||||j        |         g d         |            |||t          g d          |            |||t          d|j        |         d         dg          |           |j        |         dk    rd ||||j        |         d d         |            ||||j        |         dd d	         |            ||||j        |         g d
         |           d S )Nc                 H   t          |           }| j        |                             |          }|                     |||          }t	          j        t          j        ||||          t          |          d           t	          j        |j        |         |           d S Nry   Fr  )	r  r   get_indexer_forr  r(   r)   algostake_ndr  )r%   r  
new_labelsrz   r   r  r  s          r   assert_reindex_axis_is_okzATestIndexing.test_reindex_axis.<locals>.assert_reindex_axis_is_ok  s    C..Chtn44Z@@G((Tj(QQI'c7DZHHH)$$!   
 !)."6
CCCCCr!   r  r  r  r!  r  r   r!  rj   r  rq   )r   r3   ri   r   r3   ri   )r  rd   r   r   r5   )r   rz   r%   r  r  s        r   test_reindex_axiszTestIndexing.test_reindex_axis  s   
	D 
	D 
	D // 	 	B%%c2uRyy*EEE%%c2sx|ZHHH%%c2sx|III/F
SSS%%c2u5J5J5J/K/KZXXX%%Rsx|A>??   y}!!))#r38B<3DjQQQ))#r38B<B3GTTT))SXb\*<*<*<=z  	 	r!   c           
         d }t          |j                  D ]'} |||t          g           t          j        g t          j                  |            ||||j        |         t          j        |j        |                   |            |||t          dg|j        |         z            t          j        |j        |                   |            ||||j        |         d d d         t          j        |j        |                   |            ||||j        |         t          j        |j        |                   d d d         |            |||t          g d          t          j        g d          |            |||t          g d          t          j        g d          |            |||t          d|j        |         d         d	g          t          j        g d
          |           |j        |         dk    r2 |||t          g d          t          j        g d          |           )d S )Nc                    t          |           }t          j        ||||          }|                     ||||          }t	          j        |t          |          d           t	          j        |j        |         |           d S r  )r  r  r  reindex_indexerr(   r)   r  r   )r%   r  r  r  rz   r   reindexed_matr  s           r   assert_reindex_indexer_is_okzGTestIndexing.test_reindex_indexer.<locals>.assert_reindex_indexer_is_ok  s    C..C!M#wTTTM++GTj ,  I 'y33    !)."6
CCCCCr!   r_   r  rq   r  r  )rq   r   rq   r   r!  )rq   rq   rq   rj   r  )	r  rd   r   r7   r   r   r   r8   r5   )r   rz   r%   r  r  s        r   test_reindex_indexerz!TestIndexing.test_reindex_indexer  s   		D 		D 		D // )	 )	B((RrBHRrw$?$?$?   )(R"ry2'?'?   )(ug	"-..	#)B-((   )(R"ddd+RYsy}-E-Ez   )(R"ry2'?'?"'Ez   )(R44455rx			7J7JJ   )(R44455rx7L7Lj   )(uchrl1ou566&&   y}!!,,///00HYYY''  G)	 )	r!   )r   r   r   r   r~   r#   MANAGERSr   r   r   r  r  r7   r   r  r  r$   r!   r   r  r    s        	$""$""
$!666
$!666
2tDDD
.A4@@@H [UH--9; 9; .-9;v [UH--> > .->& [UH--[\D"&%+@AA  BA .-: [UH--[\D"&%+@AA5 5 BA .-5 5 5r!   r  c                      e Zd Zej                            d edd          df eddd          df eddd          df eddd          df eddd          dfg          d             Zej                            d	 eddd           eddd          g          d
             Zd Z	ej                            d	 edd           edd           eddd           eddd           edd           edd           edd           eddd           eddd           eddd          g
          d             Z
ej                            d	 edd           edd           edd           eddd           eddd          g          d             Zej                            ddg eddd          fdg eddd          fg d eddd          fg d eddd          fddg eddd          fddg eddd          fg          d             Zej                            dg dgg ddgdgg dg dg dg dg	          d              Zej                            d edd          g df edd          g f edd          g fg          d!             Zej                            d" edd          g df edd          g f edd          g f eddd          g d#fg          d$             Zd% Zej                            d& edd          dg f edd          dg d'f eddd          dg d#fg d(dg d(f edd          dg f edd          dg d)f eddd          dg d*fg d(dg d+f edd          dg f edd          dg dfg d(dg d,fg          d-             Zej                            d. edd          g d(g          d/             ZdS )0TestBlockPlacementzslc, expectedr   rk   ri   rj   r3   rq   c                 J    t          t          |                    |k    sJ d S r'   )r=   r   r   slcr   s      r   test_slice_lenz!TestBlockPlacement.test_slice_lenP  s+     >#&&''8333333r!   r  c                     d}t          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nzslice step cannot be zeror   r   r   r   r   r   r  r   s      r   test_zero_step_raisesz(TestBlockPlacement.test_zero_step_raises]  s    )]:S111 	  	 3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	    ;??c                 ~    t          ddd          }t          |          }|j        t          dd d          k    sJ d S )Nrj   rq   r  )r   r   r  )r   r  bps      r   !test_slice_canonize_negative_stopz4TestBlockPlacement.test_slice_canonize_negative_stopc  sE    Ar2C  zU1dB////////r!   NrA   c                     d}t          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nzunbounded slicer   r  r  s      r   test_unbounded_slice_raisesz.TestBlockPlacement.test_unbounded_slice_raisesj  s    $  ]:S111 	  	 3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 r  r  c                 2    t          |          j        rJ d S r'   r   is_slice_like)r   r  s     r   test_not_slice_like_slicesz-TestBlockPlacement.test_not_slice_like_slices  s!     "#&&444444r!   zarr, slce   r  )r   rw   rA      rw      c                 :    t          |          j        |k    sJ d S r'   )r   as_slice)r   r?   r  s      r   test_array_to_slice_conversionz1TestBlockPlacement.test_array_to_slice_conversion  s&     c""+s222222r!   r?   r  )rq   r   r3   ri   )r  r   ri   rk   )r3   r   rq   )r3   r3   r3   c                 2    t          |          j        rJ d S r'   r  )r   r?   s     r   test_not_slice_like_arraysz-TestBlockPlacement.test_not_slice_like_arrays  s!     "#&&444444r!   c                 J    t          t          |                    |k    sJ d S r'   )r   r   r  s      r   test_slice_iterz"TestBlockPlacement.test_slice_iter  s+    
 N3''((H444444r!   zslc, arr)rj   ri   r3   c                     t          j        t          |          j        t	          j        |t          j                             d S )Nr_   )r(   r)   r   r.   r7   asarrayr   )r   r  r?   s      r   test_slice_to_array_conversionz1TestBlockPlacement.test_slice_to_array_conversion  sD     	#3("*S*H*H*H	
 	
 	
 	
 	
r!   c           	         t          t          dd                    }|                    d          j        t          ddd          k    sJ |                    t	          j        d                    j        t          ddd          k    sJ t          |                    t	          j        ddd                              g dk    sJ d S )	Nr   rw   r3   rx   rA   ri   rq   )rw   rw   rw   rw   rw   )r   r   addr  r7   r8   r   )r   bpls     r   test_blockplacement_addz*TestBlockPlacement.test_blockplacement_add  s    U1a[[))wwqzz"eAq!nn4444wwry||$$-q"a@@@@CGGBIaB//0011___DDDDDDr!   zval, inc, expectedr  )r3   ri   rk   )         )r  r  r  )r  r     )r   r3   rj   c                 p    t          t          |                              |                    |k    sJ d S r'   )r   r   r  )r   valincr   s       r   test_blockplacement_add_intz.TestBlockPlacement.test_blockplacement_add_int  s9    " N3''++C0011X======r!   r  c                     d}t          j        t          |          5  t          |                              d           d d d            d S # 1 swxY w Y   d S )Nziadd causes length changer   r
  )r   r   r   r   r  )r   r  r   s      r   "test_blockplacement_add_int_raisesz5TestBlockPlacement.test_blockplacement_add_int_raises  s    )]:S111 	) 	)3##C(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   #AAA)r   r   r   r   r   r   r   r  r  r  r  r  r	  r  r  r  r  r  r  r$   r!   r   r  r  O  s        [U1a[[!U1a^^QU1a^^QU1a^^QU1a__a 	
	 	4 4	 	4 [UUU1a^^UU1a^^$DEE    FE 
0 0 0 [E$E"dOOE$b!!E$B E"dOOE$OOE"bMME"dBE$BE"b"	
 "   # " 
 [E!QKKE#qMME#sOOE#sBE!S"	
	 	5 5	 	5 [S%%1a..!UEE#sA&&'YYaA'ZZq"a)XuuQS))*VUU1a__%	

 
3 3
 
3 [DLLEDMMMMJJII
	
 5 5 5 [
%1++yyy	!EE!QKK#4uuQ{{B6GH 5 5	 5 [U1a[[)))$U1a[["U1a[["U1a__iii(		
 
 
 

E E E [U1a[[!R U1a[[!YYY'U1a__a+YY999%U1a[["b!U1a[["lll+U1a__b,,,/YYLLL)U1a[["b!U1a[["iii(YYIII&	
  > >!  > [UUU1a[[)))$<==) ) >=) ) )r!   r  c            
       h   e Zd Z ej        d d d d d d d d g	          d
             Zd Zej                            de	j
        e	j        e	j        g          d             Zej                            de	j
        e	j        e	j        g          d             Zd Zd ZdefdZdedefdZdS )TestCanHoldElementc                     | S r'   r$   r4   s    r   r   zTestCanHoldElement.<lambda>  s    a r!   c                 *    |                                  S r'   )	to_seriesr#  s    r   r   zTestCanHoldElement.<lambda>  s    akkmm r!   c                     | j         S r'   )r   r#  s    r   r   zTestCanHoldElement.<lambda>  s    ag r!   c                      t          |           S r'   )r   r#  s    r   r   zTestCanHoldElement.<lambda>  s    d1gg r!   c                 6    |                      t                    S r'   )r   rT   r#  s    r   r   zTestCanHoldElement.<lambda>  s    ahhv&& r!   c                 *    t          j        |           S r'   )r7   r  r#  s    r   r   zTestCanHoldElement.<lambda>  s    bjmm r!   c                     | d         S r   r$   r#  s    r   r   zTestCanHoldElement.<lambda>  s
    ad r!   c                     | d d         S r   r$   r#  s    r   r   zTestCanHoldElement.<lambda>  s    ae r!   r   c                     |j         S )z
        Functions that take an Index and return an element that should have
        blk._can_hold_element(element) for a Block with this index's dtype.
        r   )r   r   s     r   elementzTestCanHoldElement.element  s    " }r!   c                 b   t          ddg          }|                    g           sJ t          j        |j                                                  }|                    d           sJ d |d<   |d         t          j        u sJ t          j        d          t          ddd          g}|D ]}|                    |          sJ ||d<   t          ddd          }|                    |          rJ d}t          j        t          |          5  ||d<   d d d            d S # 1 swxY w Y   d S )Nr   r   z
2010-10-10i  rA   zLvalue should be a 'Timestamp', 'NaT', or array of those. Got 'date' instead.r   )r   _can_hold_elementpdr   r*   r   NaTr7   rP  r   r   r   r   	TypeError)r   r  r?   valsr  r   s         r   $test_datetime_block_can_hold_elementz7TestCanHoldElement.test_datetime_block_can_hold_element  s   Z!--&&r***** hu|))++,, &&t,,,,,A1v l++XdB-C-CD 	 	C**3/////CFF4R  **3/////5 	 ]9C000 	 	CF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   D$$D(+D(r+   c                     t          j        g d|          }t          j        |          }t	          |j        dgd          }|                    g           sJ d S )N)r3   rj   rk   r_   r3   ri   rc   )r7   r   r   from_breaksr   r   r/  )r   r+   r-  r?   iir   s         r   (test_interval_can_hold_element_emptylistz;TestCanHoldElement.test_interval_can_hold_element_emptylist  sb    hyyy...&s++1#A...$$R(((((((r!   c                    t          j        g d|          }t          j        |          }t	          |j        dgd          } ||          }|                     ||d           |                    |          sJ t          j        |d d         d	          } ||          }|                     ||d
           |                    |          rJ t          j        t          d          t          d          t          d          g          } ||          }|                     ||d
           |                    |          rJ t          j        t          d          t          d          t          d          g          }	 ||	          }|                     ||d
           |                    |          rJ d S )N)r3   rj   rk   	   r_   r3   ri   rc   Trq   neither)closedFrj   rk   )
r7   r   r   r6  r   r   check_series_setitemr/  r   r   )
r   r+   r-  r?   r7  r   elemii2ii3ii4s
             r   test_interval_can_hold_elementz1TestCanHoldElement.test_interval_can_hold_element  s   h|||5111&s++1#A...wr{{!!$D111$$T***** 'CRCCCCws||!!$E222((.....'1y||Yq\\(RSSws||!!$E222((.....'1y||Yq\\(RSSws||!!$E222((.......r!   c                     t          ddd          }t          |j                            dd          dgd          }|                    g           sJ d S )N2016rj   rX   periodsfreqr3   ri   rc   )r   r   r   r   r/  )r   pir   s      r   &test_period_can_hold_element_emptylistz9TestCanHoldElement.test_period_can_hold_element_emptylist6  s^    &!#666((A..!<<<$$R(((((((r!   c                 j   t          ddd          } ||          }|                     ||d           |                    d          d d         } ||          }|                     ||d           |                    d	          d d         } ||          }|                     ||d           d S )
NrD  rj   rX   rE  TDrq   FS)r   r=  asfreqto_timestamp)r   r-  rH  r>  pi2dtis         r   test_period_can_hold_elementz/TestCanHoldElement.test_period_can_hold_element<  s    &!#666wr{{!!$D111 iinnSbS!ws||!!$E222ooc""3B3'ws||!!$E22222r!   r  c                     |j         j        d         }|r|                    |          sJ d S |                    |          rJ d S r   )r   r   r/  )r   objr>  r  r   s        r   check_can_hold_elementz)TestCanHoldElement.check_can_hold_elementL  sX    hoa  	3((.......,,T2222222r!   indexc                    |j                                         }t          |d          }|                     |||           t	          |          r||d<   n||d t          |          <   |r|j        |u sJ d S |j        t          k    sJ d S )NFr]  r   )	r   r>   r   rT  r   r=   r   r+   rT   )r   r>  rU  r  r?   sers         r   r=  z'TestCanHoldElement.check_series_setitemS  s    k  Su%%%##Cw777T?? 	$CFF#C#d)) 	'9######9&&&&&&r!   N)r   r   r   r   fixturer-  r4  r   r   r7   rK  uint64r9  r8  rB  rI  rQ  r^   rT  r   r=  r$   r!   r   r!  r!    sW       V^K##&&##NO	
      : [WrxBJ&GHH) ) IH) [WrxBJ&GHH/ / IH/4) ) )3 3 3 3 3 3 3 3' ' ' ' ' ' ' 'r!   r!  c                       e Zd Zd ZdS )TestShouldStorec                 z   t          g d          }t          |          }|j        j        d         }|                    |          sJ |                    |d d                   sJ |                    |                                          rJ |                    t          j        |                    rJ d S )N)rX   BCr   rq   )r   r	   r   r   should_store
as_orderedr7   r  )r   catr   r   s       r   test_should_store_categoricalz-TestShouldStore.test_should_store_categoricale  s    ///**s^^gnQ $$$$$CRC))))) ##CNN$4$455555 ##BJsOO4444444r!   N)r   r   r   rb  r$   r!   r   r[  r[  d  s#        5 5 5 5 5r!   r[  c                     t          j        ddg          }t          d          }d}t          j        t
          |          5   | ||d           d d d            d S # 1 swxY w Y   d S )Nr  r  ri   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]r   rc   )r7   r   r   r   r   r   )r    r*   r}   r   s       r   test_validate_ndimrd  u  s    XsCj!!FaI
GC	z	-	-	- / /FIA..../ / / / / / / / / / / / / / / / / /s   AA#&A#c                  J   t          g d          } t          g d                              |           }t          t          g d                                        |           }|j        j        d         j        j        |j        j        d         j        j        k    sJ d S )N)r   r3   ri   rj   rk   r  r   )r   r   reindexr   r   r   r-   r  )r)  rm   r]   s      r   test_block_shaperg  ~  s    

 
 Cyyy!!#&&A{999%%&&..s33A6=$,a0@0I0QQQQQQQr!   c                 n   t           j                            t          j        ddg                    } | |t          t          |                    |j                  }|j        j	        dv sJ | t          u r|j        du sJ  | |t          t          |                    |j        |j                  }|j        j	        dv sJ |j        du sJ  | |                                t          t          |                    |j        |j                  }|j        j	        dv sJ |j        du sJ d S d S )Nr3   ri   rc   )r[   uF)r+   rd   )r0  arraysPandasArrayr7   r   r   r=   rd   r+   kindr   is_extensionto_numpy)r    r?   r   s      r   test_make_block_no_pandas_arrayro    sI   
)

!Q 0 0
1
1C [eCHHooCH===F<
****j  "e++++ S%C//RRR| J...."e++++ LLNNE#c((OO3938
 
 
 | J...."e++++ !  ,+r!   r'   )Dr   r   r  r   numpyr7   r   pandas._libs.internalsr   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorsrf   pandas.core.dtypes.commonr   pandasr0  r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr(   pandas.core.algorithmscore
algorithmsr  pandas.core.arraysr   r   r   pandas.core.internalsr   r   r   pandas.core.internals.blocksr   r   skip_array_manager_invalid_test
pytestmarkrX  r    r%   r1   r@   r~   r   r   r#   r   r   r   r  r  r  r!  r[  rd  rg  ro  r$   r!   r   <module>r     s,              				      1 1 1 1 1 1       ) ) ) ) ) ) ) ) ) / / / / / /    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       & & & & & & & & &         
         
        /
 	:.///  0/   Q Q Q    15) U? U? U? U?p   < < < <~ , , ,r) r) r) r) r) r) r) r)jY# Y# Y# Y# Y# Y# Y# Y#x  y y y y y y y yxO) O) O) O) O) O) O) O)d@' @' @' @' @' @' @' @'F5 5 5 5 5 5 5 5"/ / /R R R, , , , ,r!   