
    o[we_                     ^   d dl Zd dl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mZmZ d dlmZmZ d dlmZ ej        j        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 Z-ej        .                    ddddg dgg          d             Z/d Z0dS )    N)	Timestamp)	DataFrameHDFStoreIndex
MultiIndexSeries_testingbdate_rangeconcat
date_rangeisnaread_hdf)_maybe_removeensure_clean_store)Termc                 `   t          g dg dgg dg dgddg          }t          t          j                            d                              d	          |g d
          }t          |           5 }|                    d|d           |dg         }t          j	        |
                    ddg          |           t          j	        |
                    dd          |           d d d            n# 1 swxY w Y   t          t          j                            d                              d          |d          }t          |           5 }|                    d|d           t          j        |
                    dd          |           d d d            d S # 1 swxY w Y   d S )N)foobarbazqux)onetwothree)
r   r   r      r      r      r   r   )
r   r   r   r   r   r   r   r   r   r   foo_namebar_name)levelscodesnamesr   )
   r   )ABCindexcolumnsdftableformatr#   r(   zcolumns=['A']wherer"   )r'   names)r   r   nprandomdefault_rngstandard_normalr   puttmassert_frame_equalselectr   assert_series_equal)
setup_pathr'   r)   storeexpectedr1   s         Dlib/python3.11/site-packages/pandas/tests/io/pytables/test_select.pytest_select_columns_in_wherer?      sY    ,,,.E.E.EF---/M/M/MN:&  E 

	a  0099
 
 
B 
J	'	' S5		$7	+++se9
ell4#l??JJJ
ell4lGGRRRS S S S S S S S S S S S S S S 	ry$$Q''77;;5sSSSA	J	'	' L5		#q	)))
u||C|GGKKKL L L L L L L L L L L L L L L L L Ls&   4A7C77C;>C;AF##F'*F'c           
         t          t          j                            d                              d          g d          }t          ddd          |_        t          |           5 }|                    d	|           |	                    d	          }|}t          j        ||d
           |	                    d	|j                  }|}t          j        ||d
           |	                    d	dg          }|j        d d dgf         }t          j        ||           d d d            n# 1 swxY w Y   t          t          t          j                            d                              d          g d          t          t          j                            d                              ddd                              dd          ddg          gd          }t          ddd          |_        t          |           5 }|                    d	|           |	                    d	          }|}t          j        ||d
           |	                    d	|j                  }|}t          j        ||d
           |j        d d dgf         }|	                    d	dg          }t          j        ||d
           |j        d d ddgf         }|	                    d	ddg          }t          j        ||d
           d d d            n# 1 swxY w Y   t          |           5 }|                    d	|           |                    d	|           |j        d d ddgf         }t          ||g          }|	                    d	ddg          }t          j        ||d
           d d d            d S # 1 swxY w Y   d S )Nr   )r"      )r#   r#   r$   r$   r-   z20130101 9:30r"   T)periodsfreqr)   T)	by_blocksr#   r      )sizer%   r   axisr$   )r   r2   r3   r4   r5   r   r'   r   appendr9   r7   r8   r(   locr   integersreshape)r;   r)   r<   resultr=   s        r>   test_select_with_dupsrO   >   s   	
	a  0099CWCWCW
 
 
B /2C@@@BH	J	'	' 05T2d##
fh$????dBJ77
fh$????dSE226!!!cU(#
fh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  
	%%a((88AA,,,   	%%a((11!Rb1AAII"aPPc
  		
 
 
 
B /2C@@@BH	J	'	' @5T2d##
fh$????dBJ77
fh$????6!!!cU(#dSE22
fh$????6!!!c3Z-(dS#J77
fh$????#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @( 
J	'	' @5T2T26!!!c3Z-(8X.//dS#J77
fh$????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s9   *B9D//D36D3C>LLL0BN>>OOc                    t          |           5 }t          j                    }t          |d           |                    d|           |                    dddg          }|                    ddg          }t          j        ||           |                    ddg          }|                    ddg          }t          j        ||           t          |d           |                    d|dg           |                    ddgddg          }||j        dk                                 ddg          }t          j        ||           t          |d           |                    d|d	           |                    ddgddg          }||j        dk                                 ddg          }t          j        ||           t          |d           |                    d|dg           |                    ddgd
dg          }||j        dk                                 d
dg          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr)   r#   r$   r-   zcolumns=['A', 'B']data_columnszA > 0r   Tr%   D)	r   r7   makeTimeDataFramer   rJ   r9   reindexr8   r#   )r;   r<   r)   rN   r=   s        r>   test_selectrV      s   	J	'	' !05!##eT"""T2dS#J77::sCj:11
h/// d&:$<==::sCj:11
h/// 	eT"""T2SE222dWISzBBbdQh<''c
';;
h/// 	eT"""T2D111dWISzBBbdQh<''c
';;
h/// 	eT"""T2SE222dWISzBBbdQh<''c
';;
h///C!0 !0 !0 !0 !0 !0 !0 !0 !0 !0 !0 !0 !0 !0 !0 !0 !0 !0s   II  I$'I$c           	         t          |           5 }t          t          dd          t          j                            d                              d          d          }t          |d           |                    d|ddg	           |	                    dd
          }||j
        t          d          k             }t          j        ||           t          t          j                            d                              d          ddg          }d|d<   d|j        dddf<   |d         dk    |d<   t          |d           |                    d|d	           ||j        dk                                 ddg          }dD ]4}|	                    dd| ddg          }t          j        ||           5||j        dk                                 ddg          }dD ]4}|	                    dd| ddg          }t          j        ||           5t          t          j                            d                              d          t          j                            d                              d          d          }t          |d           |                    d|           |	                    dd          }|                    t#          |j                  dd         dg           }t          j        ||           t          t          j                            d                              d          t          j                            d                              d          t          j        dd!"          d#          }t          |d$           |                    d$|           |	                    d$d%          }|                    t#          |j                  dd         dg           }t          j        ||           d d d            n# 1 swxY w Y   t          |           5 }t          t)          d&          t)          d&          d'd("          }|d)         dz                       t,                    |d)<   |                    d*|d	           |	                    d*d+,          }||d-         d.k             }t          j        ||           t          j        |j        d<   ||d-         d.k             }|                    d/|dd0           |	                    d/d+,          }t          j        ||           t          t)          d&          t)          d&          d'd("          }|d)         dz                       t,                    |d)<   t          j        |j        d1<   ||d-         d.k             }|                    d2|d	           |	                    d2d+,          }t          j        ||           d d d            n# 1 swxY w Y   t          |           5 }t          j                    }||d         dk             }|                    d|d	           t          j        d          }|	                    dd3g,          }t          j        ||           d d d            d S # 1 swxY w Y   d S )4N
2012-01-01,  rC   r   )tsr#   r)   r[   r#   rQ   ts>=Timestamp('2012-02-01')
2012-02-01)   r   r$   r-   r   objectr   rA   r^   r   boolvT)Ttruer   z	boolv == F)Ffalser   rF   )r#   r$   df_intzindex<10 and columns=['A']r"   r&   f8dtype)r#   r$   r'   df_floatzindex<10.0 and columns=['A']   colsvaluesfloat64rj   df1
values>2.0r.   rk   g       @df2rR   r'   r   df4z	A>np_zero)r   r   r
   r2   r3   r4   r5   r   rJ   r9   r[   r   r7   r8   rK   r`   rU   listr'   arangerangeapplystrnanilocmakeDataFramerl   )r;   r<   r)   rN   r=   vnp_zeros          r>   test_select_dtypesr|      s%   	J	'	' <05!,<<<Y**1--==cBB 
 
 	eT"""T2T3K888d$ABBbey6667
h/// I!!!$$44V<<sCj
 
 
 8 %qsH}gk7eT"""T2D111bh$&'//g/GG" 	4 	4A\\$A#w\PPF!(F3333bh%'(00#w0HH$ 	4 	4A\\$A#w\PPF!(F3333 Y**1--44R88Y**1--44R88 
 
 	eX&&&Xr"""h(DEE::DNN1R4$83%:HH
h/// Y**1--44R88Y**1--44R882T222 
 
 	eZ(((Z$$$j*HII::DNN1R4$83%:HH
h///y<0 <0 <0 <0 <0 <0 <0 <0 <0 <0 <0 <0 <0 <0 <0| 
J	'	' "05b		U2YY??yQQQj2o,,S116
UBT222e<88blS()
h/// V
blS()UBT???e<88
h/// b		U2YY??yQQQj2o,,S116
V
blS()UBT222e<88
h///E"0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0L 
J	'	' 05bgk?T2D111*Q--d;-88
h///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s8   PP))P-0P-GX##X'*X'=A?[		[[c                    t          |           5 }t          t          dd          t          j                            d                              d          t          d          dgdz  dgdz  z   dgd	z  z   d
 t          d	          D             z   d          }t          |d           |	                    d|g d           |
                    dd          }||j        t          d          k             }t          j        ||           |
                    dd          }||j        t          d          k    |j                            g d          z           }t          j        ||           g dd t          d          D             z   }|
                    dd          }||j        t          d          k    |j                            |          z           }t          j        ||           t          d	d          }|
                    dd          }||j                            |                   }t          j        ||           t%          |          d	k    sJ t'          |j        dd	         j                  }|
                    dd          }||j                            |j                           }t          j        ||           t%          |          d	k    sJ 	 d d d            d S # 1 swxY w Y   d S )NrX   rY   rZ   r   a2   bcd   c                     g | ]}d |d	S r~   03d .0is     r>   
<listcomp>z0test_select_with_many_inputs.<locals>.<listcomp>!  s     3331;q;;;333    )r[   r#   r$   usersr)   rQ   r\   r]   z1ts>=Timestamp('2012-02-01') & users=['a','b','c'])r~   r   r   c                     g | ]}d |d	S r   r   r   s     r>   r   z0test_select_with_many_inputs.<locals>.<listcomp>4  s     %E%E%Eak!kkk%E%E%Er   <   z.ts>=Timestamp('2012-02-01') and users=selector   z
B=selectorr   zts=selector)r   r   r
   r2   r3   r4   r5   rt   r   rJ   r9   r[   r   r7   r8   r   isinr$   lenr   rk   )r;   r<   r)   rN   r=   selectors         r>   test_select_with_many_inputsr     s)   	J	'	' ,"5!,<<<Y**1--==cBB3ZZ%"*%#+ 43c

3334	 

 

 	eT"""T2,E,E,EFFF d$ABBbey6667
h/// d$WXXUi---1O1OO
 	h/// #??%E%E599%E%E%EEd$TUUru	, 7 7728==;R;RRS
h///c??dL11bdii))*
h///6{{c!!!! qu,--dM22bejj112
h///6{{c!!!!!Y," ," ," ," ," ," ," ," ," ," ," ," ," ," ," ," ," ,"s   KK<<L L c                    t          |          5 }t          j        d          }t          |d           |                    d|           |                    d          }t          |                    dd                    }t          |          }t          j        ||           t          |                    dd                    }t          |          dk    sJ t          |          }t          j        ||           t          |                    dd                    }t          |          }t          j        ||           d d d            n# 1 swxY w Y   | |z  }t          j        d          }|
                    |d	           d
}t          j        t          |          5  t          |d	d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |d	d           d d d            n# 1 swxY w Y   | |z  }t          j        d          }|
                    |dd           t          t          |dd                    }t          |          }t          |          dk    sJ t          j        ||           t          j        |t          |d                     t          |          5 }t          j        d          }	|                    d|	d           t          j        d                              dj                  }
d|
d<   |                    d|
           t          |	|
gd          }|                    ddgd          }t          |                    ddgdd                    }t          |          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Ni  r)   T)iteratorr   	chunksizer^      df_non_tablez0can only use an iterator or chunksize on a tablematchr*   r+   rm   rQ   {}_2r-   r   r   ro   r   rH   )r   )r   r   )r   r7   rT   r   rJ   r9   rr   r   r8   r   to_hdfpytestraises	TypeErrorr   renamer,   select_as_multiple)tmp_pathr;   r<   r)   r=   resultsrN   pathmsgrm   ro   s              r>   test_select_iteratorr   G  s   	J	'	' 05!#&&eT"""T2<<%%u||D4|8899
h///u||DC|88997||q    
h///u||DC|8899
fh///%0 0 0 0 0 0 0 0 0 0 0 0 0 0 0( j D		c	"	"BIIdN###
<C	y	,	,	, 6 6~55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
y	,	,	, 6 6~55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 j D		c	"	"BIIdDI)))8D$#66677GG__Fw<<1&"%%%&(4"6"6777 
J	'	' 05"3''UCd333"3''..v}.EEE
UC   S#JQ''' ++UENU+KK$$eU^es$SS
 
 
h///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0sI   D=EE E0GGG5HHHC,OOOc                    d}t          |           5 }t          j        dd          }t          |d           |                    d|           |j        d         }|j        d         }|                    d          }t          j        ||           d| d}|                    d|	          }t          j        ||           d
| d}|                    d|	          }t          j        ||           d| d| d}|                    d|	          }t          j        ||           d d d            n# 1 swxY w Y   t          |           5 }t          j        dd          }t          |d           |                    d|           |j        d         }|j        d         }t          |                    d|                    }t          |          }t          j        ||           d| d}t          |                    d||                    }t          |          }t          j        ||           d
| d}t          |                    d||                    }t          |          }t          j        ||           d| d| d}t          |                    d||                    }t          |          }t          j        ||           d d d            d S # 1 swxY w Y   d S )N     @ Sr)   r   
index >= ''r.   
index <= '' & index <= 'r   r/   r   )
r   r7   rT   r   rJ   r'   r9   r8   rr   r   )	r;   r   r<   r=   beg_dtend_dtrN   r/   r   s	            r>   "test_select_iterator_complete_8014r     s    I 
J	'	' 05'44eT"""T8$$$"# d##
h/// 'V&&&d%00
h/// 'V&&&d%00
h/// =V<<6<<<d%00
h///90 0 0 0 0 0 0 0 0 0 0 0 0 0 0> 
J	'	' 05'44eT"""T8$$$"# u||DI|>>??
h/// 'V&&&u||D|KKLL
h/// 'V&&&u||D|KKLL
h/// =V<<6<<<u||D|KKLL
h///;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s%   DD77D;>D;FK,,K03K0c                    d}t          |           5 }t          j        dd          }t          |d           |                    d|           |j        d         }|j        d         }d| d}t          |                    d||	                    }t          |          }||j        |k             }	t          j	        |	|           d
| d}t          |                    d||	                    }t          |          }||j        |k             }	t          j	        |	|           d| d| d}t          |                    d||	                    }t          |          }||j        |k    |j        |k    z           }	t          j	        |	|           d d d            n# 1 swxY w Y   t          |           5 }t          j        dd          }t          |d           |                    d|           |j        d         }d| d}t          |                    d||	                    }dt          |          k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r   r   r)   r   r   r   r   r   r   r   z	index > 'r   r   r7   rT   r   rJ   r'   rr   r9   r   r8   r   
r;   r   r<   r=   r   r   r/   r   rN   	rexpecteds
             r>   &test_select_iterator_non_complete_8014r     s    I 
J	'	' 15'44eT"""T8$$$"# 'V&&&u||D|KKLLX^v56	
i000 'V&&&u||D|KKLLX^v56	
i000 =V<<6<<<u||D|KKLLhn68>V;STU	
i00071 1 1 1 1 1 1 1 1 1 1 1 1 1 1< 
J	'	' 
!5'44eT"""T8$$$# &F%%%u||D|KKLLCLL     
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
!s%   FF##F'*F'=B	IIIc                 D   d}t          |           5 }t          j        dd          }t          |d           |                    d|           |j        d         }|j        |dz
           }d| d}t          |                    d||	                    }t          |          }||j        |k             }	t          j	        |	|           d
| d}t          |                    d||	                    }t          |          dk    sJ t          |          }||j        |k             }	t          j	        |	|           d| d| d}t          |                    d||	                    }t          |          dk    sJ t          |          }||j        |k    |j        |k    z           }	t          j	        |	|           d
| d| d}t          |                    d||	                    }t          |          dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Ni'  i r   r)   r   r   r   r   r   r   r   z' & index >= 'r   r   s
             r>   &test_select_iterator_many_empty_framesr     s    I 
J	'	' -!5'44eT"""T8$$$"	A. 'V&&&u||D|KKLLX^v56	
i000 'V&&&u||D|KKLL7||q    X^v56	
i000 =V<<6<<<u||D|KKLL 7||q    hn68>V;STU	
i000 =V<<6<<<u||D|KKLL 7||q     [-! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!s   G5HHHc                     t          j                    }t          |           5 }|                    d|d           |j        t          |          dz           }t          d          }|j        j        d         |k    sJ d}d}|	                    d||g          }|j
        |d d	d
gf         }t          j        ||           |	                    d|g          }|j
        d d d	gf         }t          j        ||           t          j                    }|                    d|           d}	t          j        t          |	          5  |	                    dd           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nframer*   r+   r   zindex>=datedatezcolumns=['A', 'D']z	columns=Ar#   rS   df_timez day is out of range for month: 0r   zindex>0)r7   rT   r   r6   r'   r   r   envscoper9   rK   r8   rJ   r   r   
ValueError)
r;   r)   r<   r   crit1crit2crit3rN   r=   r   s
             r>   test_frame_selectr   6  s   				B	J	'	' /5		'2g	...xB1%]##yv&$....$gu~666$%%#s+,
fh///gw//6!!!cU(#
fh/// !##Y###0]:S111 	/ 	/LLI...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/-/ / / / / / / / / / / / / / / / / /s6   D%FE+F+E/	/F2E/	3FF
Fc                 b   t          j                    }d|d<   d|j        |j        dd         df<   t	          |           5 }|                    d|ddg           |                    dd	          }|j        |j        |j        d
         k    |j        dk    z           }t          j        ||           |                    dd          }|j        |j        |j        d
         k    |j        dk    z           }t          j        ||           |                    dd          }|j        |j        |j        d
         k    |j        dk    z           }t          j        ||           |                    dd          }|j        |j        |j        d
         k    |j        |j        d         k    z  |j        dk    z           }t          j        ||           |                    dd          }|j        |j        dk             }t          j        ||           d}t          j
        t          |          5  |                    dd           d d d            n# 1 swxY w Y   |                    dd          }|j        d d |j                            ddg          f         }t          j        ||           |                    dd          }|j        |j        |j        d
         k                                 ddg          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr   stringr   r   rA   r)   r*   r,   rR   z index>df.index[3] & string="bar"r   z index>df.index[3] & string="foo"z index>df.index[3] | string="bar"z7(index>df.index[3] & index<=df.index[6]) | string="bar"   zstring!="bar"z6cannot use an invert condition when passing to numexprr   z~(string="bar")z~(columns=['A','B'])r#   r$   z(index>df.index[3] & columns in ['A','B']r-   )r7   rT   rK   r'   r   r6   r9   r   r8   r   r   NotImplementedErrorr(   
differencerU   )r;   r)   r<   rN   r=   r   s         r>   test_frame_select_complexr   X  s    
			BBxL&+BF28AaC=("#	J	'	' ,05		$7(	DDD d$FGG628bhqk1bi56HIJ
fh///d$FGG628bhqk1bi56HIJ
fh/// d$FGG628bhqk1bi56HIJ
fh///K
 
 6h!$RXa[)@AyE!#
 	fh/// dO446")u,-
fh/// G].c::: 	2 	2LL0111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 d$:;;6!!!RZ22C:>>>?
fh/// d$NOO6"(RXa[01993*9MM
fh///Y,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0s8   G0L$1IL$I	L$I	B;L$$L(+L(c           
         | dz  }| dz  }t          dg di          }|                    |ddddg           t          |dd	
          }t          t          j                            d                              d          dgt          j        d t          d          D             ddg                    }|                    |ddd           t          |dd
          }|j
                                        }t          |          5 }|                    dd
          }	t          j        |	|           d d d            n# 1 swxY w Y   t          |dd
          }	t          j        |	|           |j
        }
t          |dd
          }	t          j        |	|           t          |dd
          }	t          j        |	|           t          |dd
          }	t          j        |	|           t          |dd
          }	t          j        |	|           t          |          5 }|                    dd
          }	t          j        |	|           |                    dd
          }	t          j        |	|           |                    dd
          }	t          j        |	|           |                    dd
          }	t          j        |	|           d d d            d S # 1 swxY w Y   d S )Nz
params.hdfzhist.hdfr#   )r   r   r   r   r   r)   wr*   )moder,   rR   zA=[2,3]r.   r   )   r   datac                 :    g | ]}t          d           D ]}||fS )r^   )rt   )r   r   js      r>   r   z.test_frame_select_complex2.<locals>.<listcomp>  s/    888uQxx88!aV8888r   r^   l1l2)r!   )r(   r'   )r   r,   zl1=[2, 3, 4]zl1=l0zl1=indexzl1=selection.indexzl1=selection.index.tolist()zl1=list(selection.index))r   r   r   r2   r3   r4   r5   r   from_tuplesrt   r'   tolistr   r9   r7   r8   )r   pphhparams	selectionhistr=   l0r<   rN   r'   s              r>   test_frame_select_complex2r     sz   	L	 B	J	B ___-..F
MM"dWC5MIIIT333I
	a  0099$88U1XX888t
 
 
  D 	KKDs7K333D777H 
			!	!B	" 0d'22
fh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b$g...F&(+++ OEb$j111F&(+++b$&:;;;F&(+++b$&CDDDF&(+++b$&@AAAF&(+++ 
" 0d*55
fh///d*>??
fh///d*GHH
fh///d*DEE
fh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s%   -EEE+B1K))K-0K-c                    t          j                    }t          |           5 }|                    d|d           d}t	          j        t          |          5  |                    dd           d d d            n# 1 swxY w Y   t	          j        t          |          5  |                    dd           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr)   r*   r+   z unable to collapse Joint Filtersr   zcolumns=['A'] | columns=['B']z!columns=['A','B'] & columns=['C'])r7   rT   r   r6   r   r   r   r9   )r;   r)   r<   r   s       r>   test_invalid_filteringr     s    
			B	J	'	' 
D5		$7	+++0].c::: 	@ 	@LL>???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ ].c::: 	D 	DLLBCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
DsY   6CA<0C<B 	 CB 	C"C9CC			CC		CC!$C!c                 Z   t          |           5 }t          j                    }d|d<   d|j        |j        dd         df<   |                    d|dg           |                    dd          }||j        dk             }t          j        ||           |                    dd	          }||j        dk             }t          j        ||           |	                                }t          j        |j        |j        dk    df<   |                    d
|dg           |                    d
d	          }|t          |j                           }t          j        ||           d|d<   d|j        |j        dd         df<   |                    d|dg           |                    dd          }||j        dk             }t          j        ||           |                    dd          }||j        dk             }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nnonex r      r)   rQ   zx=nonezx!=nonero   r   intdf3zint=2zint!=2)r   r7   rT   rK   r'   rJ   r9   r   r8   copyr2   rw   r   r   )r;   r<   r)   rN   r=   ro   s         r>   test_string_selectr     sN   	J	'	' %05!## 3%'rx!}c!"T2SE222dH--bdfn%
fh///dI..bdfn%
fh///ggii$&FS !UCse444eY//tCE{{#
fh/// 5	'(rx!}e#$UBeW555eW--bfk?
fh///eX..bfk?
fh///K%0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0s   HH  H$'H$c                 .   t          j                    }t          j                                        dj                  }d|d<   t	          |           5 }d}t          j        t          |          5  |                    d ddgd	
           d d d            n# 1 swxY w Y   |	                    d	|ddg           |	                    d|           t          j        t          |          5  |                    d ddgd	
           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d gddgd	
           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    d	dgddgd	
           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    dgddgd	
           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d	dgddgd
           d d d            n# 1 swxY w Y   |                    d	ddg          }|                    d	gddgd	
          }t          j        ||           |                    d	ddgd	
          }t          j        ||           |                    d	dgddgd	
          }t          ||gd          }||j        dk    |j        dk    z           }t          j        ||d           |                    d	dgdd
          }t          ||gd          }|dd          }t          j        ||           |	                    dt          j        d                     d}t          j        t           |          5  |                    d	dgddgd	
           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r-   r   r   zkeys must be a list/tupler   zA>0zB>0rm   )r/   r   r#   r$   rQ   ro   z!'No object named df3 in the file'r   z!'No object named df4 in the file'rq   r   rH   r   F)
check_freqzindex>df2.index[4]r^   r   )nperz,all tables must have exactly the same nrows!)r7   rT   r   r,   r   r   r   r   r   rJ   KeyErrorr9   r8   r   r#   r$   r   )r;   rm   ro   r<   r   rN   r=   s          r>   test_select_as_multipler     s   


 
 C


 
 
'
'
'
>
>CCJ	J	'	' >5)]9C000 	Q 	Q$$T%%$PPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	UCsCj999UC    ]9C000 	Q 	Q$$T%%$PPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q ]9C000 	S 	S$$dVE5>E$RRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 2]83/// 	 	$$uenu %   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ]83/// 	T 	T$$eWUENU$SSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T ]8+NOOO 	 	$$uenu %   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 eeU^44++GE5>E , 
 
 	fh///++E%RW+XX
fh/// ))EN5%.5 * 
 
 3*1---XZ!^
Q?@
fh5AAAA ))EN"6 * 
 
 3*1---ABB<
fh/// 	UB0b999:::<]:S111 	 	$$uenu %   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	w> > > > > > > > > > > > > > > > > >s  P
2BP
B	P
 B	!AP
/D
P
D	P
D	P
<E$P
$E(	(P
+E(	, P
F5)P
5F9	9P
<F9	=P
H7P
H	P

H	P
)IP
I	P
I	E/P
	O2&P
2O6	6P
9O6	:P

PPc                    t          |           5 }t          t          d          t          d          dd          }|d         dz                       t                    |d<   t
          j        |j        d<   t          g dg d	dg d
          }|                    d|ddg           |	                    dd          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr   ri   rl   re   rj   r"   r   )z13.0z14.0z15.0)g      @g      @g      @)r   rA   r^   )r'   r)   Trp   rn   r.   )r   r   rt   ru   rv   r2   rw   rx   rJ   r9   r7   r8   )r;   r<   r)   r=   rN   s        r>   test_nan_selection_bug_4858r   K  s9   	J	'	' 05aE!HH==YOOOj2o,,S116
V
---II))
 
 
 	T2DAAAd,77
fh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   C	C&&C*-C*c                 *   t          g dg dd          }||j        dk             }t          |           5 }|                    d|dd           |                    dd	          }d d d            n# 1 swxY w Y   t          j        ||           d S )
N)r~   r~   r   r   test & testr   r   e)r   r   r   rA   r^   r   r      )r~   r   r   testr*   Tr   za = "test & test")r   r~   r   rJ   r9   r7   r8   )r;   r)   r=   r<   rN   s        r>   (test_query_with_nested_special_characterr   \  s    	CCC)))	
 	

 
B "$-'(H	J	'	' ;5VRdCCCf&9::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; (F+++++s   0A33A7:A7c                    t          dg di          }t          |           5 }|                    d|dd           d}|                    dd|d	          }|j        sJ d
}|                    dd|d	          }|j        ddgd d f         }t          j        ||           d}|                    dd|d	          }|j        dgd d f         }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr#   )g~  eA$  eAg'1  eAr   r*   Tr   g  eAzA < z.4fg   eAzA > r   r   r   zA == )r   r   rJ   r9   emptyrK   r7   r8   )r;   r)   r<   cutoffrN   r=   exacts          r>   test_query_long_float_literalr   j  sq   	CLLLM	N	NB	J	'	' 05VRdCCC f&9V&9&9&9::| f&9V&9&9&9::61a&!!!)$
h///f&9e&9&9&9::61#qqq&>
h///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   CC66C:=C:c           	         t          ddgt          dd          ddgddgdg d	          }t          |           5 }|                    d
|dd           t	          d          }|                    d
d          }|j        dgd d f         }t          j        ||           dD ]}ddt	          d          t          j
        dd          fD ]h}d| d}d| dt          |           d}	t          j        t          |	          5  |                    d
|           d d d            n# 1 swxY w Y   id}dD ]_}
|
 d| d}|
dk    rd}	nd}	t          j        t          |	          5  |                    d
|           d d d            n# 1 swxY w Y   `t!          g dg d          D ]|\  }}
|
 d| d}|                    d
|          }|d k    r|j        d!gd d f         }n*|d"k    r|j        dgd d f         }n|j        g d d f         }t          j        ||           }	 d d d            d S # 1 swxY w Y   d S )#N
2014-01-01z
2014-01-02r   rZ   g?g333333?r   )r   	real_datefloatr   r-   r   r*   Tr   zreal_date > tsr.   )<>==g @r1   zdate z vzCannot compare z	 of type z to string columnr   r~   )r   r  r   r  z+Given date string "a" not likely a datetimezcould not convert string to)1z1.1r   r  r   r  )r   r   r   rJ   r   r9   rK   r7   r8   pd	Timedeltatyper   r   r   r   zip)r;   r)   r<   r[   rN   r=   oprz   queryr   cols              r>   test_query_compare_column_typer    s   	!<0#L!<<<3Zq6		
 	
 655
 
 
B 
J	'	' '85VRdCCC|$$f,<==61#qqq&>
h///" 	8 	8B4<!8!8",q#:N:NO 6 6&NNNDGGNNN]9C888 6 6LLuL5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 A4 6 6+%%GCC7C]:S999 6 6LLuL5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 ***,I,I,I  8 83 fE::::!vqc111f~HH3YY!vqc111f~HH!vb!!!e}H%h77778'	8'8 '8 '8 '8 '8 '8 '8 '8 '8 '8 '8 '8 '8 '8 '8 '8 '8 '8s[   CH=D,	 H=,D00H=3D048H=,F	H=FH=FBH==IIr/   r   r   )Nc                     t          g d          }| dz  }t          |          5 }|                    d|d           t          |d|          }t	          j        ||           d d d            d S # 1 swxY w Y   d S )N)r   r   r   zempty_where.h5r)   tr.   )r   r   r6   r   r7   r8   )r   r/   r)   r   r<   rN   s         r>   test_select_empty_wherer    s     
999		B&&D	$ *5		$C   %U333
fb)))* * * * * * * * * * * * * * * * * *s   ?A22A69A6c                    | dz  }t          t          g dg d          ddg          }d }t          |          5 }|                    d|dd	
           |                    dd                              d                              d          }d d d            n# 1 swxY w Y   |d         d         }||k    sJ d S )Nzlarge_int.h5)r~   r   r   d)l l l {   r   yr-   r   TFrp   zy==-9223372036854775801r.   r   )r   r  r   rJ   r9   get)r   r   r)   rN   r1   r=   s         r>   test_select_large_integerr    s0   n$D	   SSS	
 	
 c

 
 
B F	$ S1	$e<<<&(ABBFFsKKOOPQRRS S S S S S S S S S S S S S S #wqzHvs   ABB#&B#)1numpyr2   r   pandas._libs.tslibsr   pandasr  r   r   r   r   r   r	   r7   r
   r   r   r   r   pandas.tests.io.pytables.commonr   r   pandas.io.pytablesr   mark
single_cpu
pytestmarkr?   rO   rV   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  parametrizer  r  r   r   r>   <module>r"     s        ) ) ) ) ) )                                    
 $ # # # # #[#
L L L@A@ A@ A@H"0 "0 "0Jm0 m0 m0`-" -" -"`?0 ?0 ?0DB0 B0 B0J.! .! .!b4! 4! 4!n/ / /D30 30 30l80 80 80vD D D$'0 '0 '0TC C CL0 0 0", , ,0 0 0,38 38 38l 2r7B"?@@* * A@*    r   