
    .i                        d dl Zd dlZd dl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mZmZ d dlmZ ej.                  j0                  g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,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d  Z4d! Z5d" Z6d# Z7d$ Z8d% Z9d& Z:ej.                  jw                  d'd(d)d*g dgg      d+        Z<d, Z=y)-    N)	Timestamp)PY312)	DataFrameHDFStoreIndex
MultiIndexSeries_testingbdate_rangeconcat
date_rangeisnaread_hdf)Termc                 p   t        g dg dgg dg dgddg      }t        t        j                  j	                  d      j                  d	      |g d
      }| j                  d|d       |dg   }t        j                  | j                  ddg      |       t        j                  | j                  dd      |       t        t        j                  j	                  d      j                  d      |d      }| j                  d|d       t        j                  | j                  dd      |       y )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_normalputtmassert_frame_equalselectr	   assert_series_equal)temp_hdfstorer&   r(   expectedr0   s        b/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_select.pytest_select_columns_in_wherer=      s    ,.EF-/MN:&E 

		a 009
B dBw/3%yH-..tcU.CXN-..t?.KXV 	ryy$$Q'77;5sSAc1W-=//?/KQO    c                    t        t        j                  j                  d      j	                  d      g d      }t        dddd	      |_        | j                  d
|       | j                  d
      }|}t        j                  ||d       | j                  d
|j                        }|}t        j                  ||d       | j                  d
dg      }|j                  d d dgf   }t        j                  ||       y )Nr   r!      r"   r"   r#   r#   r,   20130101 9:30r!   minnsperiodsfrequnitr(   T	by_blocksr"   )r   r1   r2   r3   r4   r   r&   appendr8   r6   r7   r'   locr:   r(   resultr;   s       r<   test_select_with_dupsrP   9   s    	
		a 009CW
B /2EMBHr"!!$'FH&(d;!!$

!;FH&(d;!!$!6Fvva#hH&(+r>   c           
      @   t        t        t        j                  j	                  d      j                  d      g d      t        t        j                  j	                  d      j                  ddd      j                  dd      d	d
g      gd      }t        dddd      |_	        | j                  d|       | j                  d      }|}t        j                  ||d       | j                  d|j                        }|}t        j                  ||d       |j                  d d d	gf   }| j                  dd	g      }t        j                  ||d       |j                  d d dd	gf   }| j                  ddd	g      }t        j                  ||d       y )Nr   r@   rB   r,   r   r!      sizer"   r$   r   axisrC   rD   rE   rF   r(   TrJ   r#   )r   r   r1   r2   r3   r4   integersreshaper   r&   rL   r8   r6   r7   r'   rM   rN   s       r<   #test_select_with_dups_across_dtypesrY   O   sy   			%%a(88A, 		%%a(11!Rb1AII"aPc
		
 
B /2EMBHr"!!$'FH&(d;!!$

!;FH&(d;vva#hH!!$!6F&(d;vva#sm$H!!$c
!;F&(d;r>   c           
      :   t        t        t        j                  j	                  d      j                  d      g d      t        t        j                  j	                  d      j                  ddd      j                  dd      d	d
g      gd      }t        dddd      |_	        | j                  d|       | j                  d|       |j                  d d dd	gf   }t        ||g      }| j                  ddd	g      }t        j                  ||d       y )Nr   r@   rB   r,   r   r!   rR   rS   r"   r$   r   rU   rC   rD   rE   rF   r(   r#   TrJ   )r   r   r1   r2   r3   r4   rW   rX   r   r&   rL   rM   r8   r6   r7   r:   r(   r;   rO   s       r<   .test_select_with_dups_across_index_and_columnsr\   r   s   			%%a(88A, 		%%a(11!Rb1AII"aPc
		
 
B /2EMBHr"r"vva#sm$Hx*+H!!$c
!;F&(d;r>   c           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }| j                  d
|       | j                  d
ddg      }|j                  ddg      }t        j                  ||       | j                  d
dg      }|j                  ddg      }t        j                  ||       | j                  d
       | j                  d
|dg       | j                  d
dgddg      }||j                  dkD     j                  ddg      }t        j                  ||       | j                  d
       | j                  d
|d       | j                  d
dgddg      }||j                  dkD     j                  ddg      }t        j                  ||       | j                  d
       | j                  d
|dg       | j                  d
dgddg      }||j                  dkD     j                  ddg      }t        j                  ||       y )Nr   r@   ABCD
2000-01-01r!   r#   rE   rF   r'   r&   r(   r"   r,   zcolumns=['A', 'B']data_columnszA > 0r   Tr$   D)r   r1   r2   r3   r4   r   listr   rL   r8   reindexr6   r7   remover"   rN   s       r<   test_selectrg      s1   	
		a 009d6l#r$G
B
 r"!!$c
!;Fzz3*z-H(F+ !!$)=(>?Fzz3*z-H(F+ r6!!$	C:!FF"$$(|##S#J#7H(F+ r5!!$	C:!FF"$$(|##S#J#7H(F+ r6!!$	C:!FF"$$(|##S#J#7H(F+r>   c                 B   t        t        ddd      t        j                  j	                  d      j                  d      d      }| j                  d|dd	g
       | j                  dd      }||j                  t        d      k\     }t        j                  ||       y )N
2012-01-01,  rE   rG   rI   r   )tsr"   r(   rl   r"   ra   ts>=Timestamp('2012-02-01')
2012-02-01)r   r   r1   r2   r3   r4   rL   r8   rl   r   r6   r7   rN   s       r<   test_select_dtypes_timestampro      s    	lCdC&&q)99#>	

B rs<!!$(EFF"%%9\223H(F+r>   c                 P   t        t        j                  j                  d      j	                  d      ddg      }d|d<   d|j
                  d	d
df<   |d   dkD  |d<   | j                  d|d       ||j                  dk(     j                  ddg      }dD ]1  }| j                  dd| ddg      }t        j                  ||       3 ||j                  dk(     j                  ddg      }dD ]1  }| j                  dd| ddg      }t        j                  ||       3 y )Nr   )   r   r"   r#   r,   r   objectr   rA   rq   r   boolvr(   Tra   )Ttruer   z	boolv == F)Ffalser   )r   r1   r2   r3   r4   rM   rL   rs   re   r8   r6   r7   )r:   r(   r;   vrO   s        r<   test_select_dtypes_boolsrw      s>   	299((+;;FCcSVZ	XBBxL!BFF1Q3=S'A+BwKr5"((d"#++S'N+CH 0%%disOc7^%T
h/0 "((e#$,,c7^,DH  0%%disOc7^%T
h/0r>   c                    t        t        j                  j                  d      j                  d      t        j                  j                  d      j                  d      d      }| j	                  d|       | j                  dd      }|j                  t        |j                        dd dg	      }t        j                  ||       y )
Nr   rR   )r"   r#   df_intzindex<10 and columns=['A']r   r!   r"   r%   )r   r1   r2   r3   rL   r8   re   rd   r&   r6   r7   rN   s       r<    test_select_dtypes_integer_indexrz      s    	&&q)004&&q)004	

B 2&!!(,HIFzzRXXq 4sezDH(F+r>   c                    t        t        j                  j                  d      j                  d      t        j                  j                  d      j                  d      t        j                  dd      d      }| j                  d|       | j                  dd      }|j                  t        |j                        dd	 d
g      }t        j                  ||       y )Nr   rR   f8dtype)r"   r#   r&   df_floatzindex<10.0 and columns=['A']r   r!   r"   r%   )r   r1   r2   r3   arangerL   r8   re   rd   r&   r6   r7   rN   s       r<   test_select_dtypes_float_indexr      s    	&&q)004&&q)004YYr.	

B R(!!*.LMFzzRXXq 4sezDH(F+r>   c                    t        t        d      t        d      dd      }|d   dz   j                  t              |d<   | j	                  d|d	       | j                  dd
      }||d   dkD     }t        j                  ||       y )N   colsvaluesfloat64r}   r   r!   df1Tra   
values>2.0r-   r          @)r   rangeapplystrrL   r8   r6   r7   rN   s       r<   %test_select_dtypes_floats_without_nanr      s    	E"Ir;9	MBV*r/((-BvJ6!!%|!<F"X,$%H(F+r>   c                 P   t        t        d      t        d      dd      }|d   dz   j                  t              |d<   t        j
                  |j                  d<   ||d   d	kD     }| j                  d
|dd       | j                  d
d      }t        j                  ||       y )Nr   r   r   r}   r   r!   r   r   r   df2TFrb   r&   r   r-   r   r   r   r   r1   nanilocrL   r8   r6   r7   r[   s       r<   "test_select_dtypes_floats_with_nanr      s    	E"Ir;9	MBV*r/((-BvJBGGAJ"X,$%HUC!!%|!<F(F+r>   c                 N   t        t        d      t        d      dd      }|d   dz   j                  t              |d<   t        j
                  |j                  d<   ||d   d	kD     }| j                  d
|d       | j                  d
d      }t        j                  ||       y )Nr   r   r   r}   r   r!   r   r   r   df4Tra   r   r-   r   r[   s       r<   5test_select_dtypes_floats_with_nan_not_first_positionr     s    	E"Ir;9	MBV*r/((-BvJBGGAJ"X,$%H6!!%|!<F(F+r>   c                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }||d   d	kD     }| j                  d
|d       |j                  t        j                  j                  t        dt                     t        j                  d	      }| j                  d
dg      }t!        j"                  ||       y c c}w )N皙?x   )   rA   r^   r   zi-r`   r"   r   r(   Tra   AST change in PY312reasonraisesz	A>np_zeror-   )r   r1   r   rX   r   rd   r   rL   applymarkerpytestmarkxfailr   
ValueErrorr   r8   r6   r7   )r:   requestir(   r;   np_zerorO   s          r<   /test_select_dtypes_comparison_with_numpy_scalarr     s    	biin$$W--d6l#uRy1!r!X12
B "S'A+Hr5( 	 	
 jjmG!!${m!<F(F+ 2s   Dc                 X   t        t        ddd      t        j                  j	                  d      j                  d      t        d      dgdz  dgdz  z   d	gd
z  z   t        d
      D cg c]  }d|d
 c}z   d      }| j                  d|g d       | j                  dd      }||j                  t        d      k\     }t        j                  ||       | j                  dd      }||j                  t        d      k\  |j                  j                  g d      z     }t        j                  ||       g dt        d      D cg c]  }d|d
 c}z   }| j                  dd      }||j                  t        d      k\  |j                  j                  |      z     }t        j                  ||       t        d
d      }| j                  dd      }||j                  j                  |         }t        j                  ||       t!        |      d
k(  sJ t#        |j                  dd
 j$                        }| j                  dd      }||j                  j                  |j$                           }t        j                  ||       t!        |      d
k(  sJ y c c}w c c}w )Nri   rj   rE   rk   r   a2   bcd   03d)rl   r"   r#   usersr(   ra   rm   rn   z1ts>=Timestamp('2012-02-01') & users=['a','b','c'])r   r   r   <   z.ts>=Timestamp('2012-02-01') and users=selector   z
B=selectorr   zts=selector)r   r   r1   r2   r3   r4   r   rL   r8   rl   r   r6   r7   r   isinr#   lenr   r   )r:   r   r(   rO   r;   selectors         r<   test_select_with_many_inputsr   &  sr   	lCdC&&q)99#>sURZebjeck %*#J/q1S'{/0		


B r0IJ !!$(EFF"%%9\223H(F+ !!AF 255Il33rxx}}_7UUVH(F+ uRy!A!AaW+!AAH!!>F 255Il33rxx}}X7NNOH(F+S#H!!$5F"$$))H%&H(F+v;# RUU1S\(()H!!$6F"%%**X__-.H(F+v;#I 0$ "Bs   *J"J'c           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }| j                  d
|       | j                  d
      }t        | j                  d
d            }t        |      }t        j                  ||       t        | j                  d
d            }t        |      dk(  sJ t        |      }t        j                  ||       t        | j                  d
d            }t        |      }t        j                  ||       y )Nr   r@   r^   r_   r!   r#   rE   rF   r`   r(   Titerator	chunksizerq   )r   r1   r2   r3   r4   r   rd   r   rL   r8   r   r6   r7   r   )r:   r(   r;   resultsrO   s        r<   test_select_iteratorr   V  s   	
		a 009d6l#r$G
B
 r"##D)H=''t'<=GG_F(F+=''':;Gw<1G_F(F+=''':;GG_F&(+r>   c           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }|j                  | d
       d}t        j                  t        |      5  t        | d
d       d d d        t        j                  t        |      5  t        | d
d       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)Nr   r@   r^   r_   r!   r#   rE   rF   r`   df_non_table)keyz0can only use an iterator or chunksize on a tablematchr   Tr   )r   r1   r2   r3   r4   r   rd   r   to_hdfr   r   	TypeErrorr   )temp_h5_pathr(   msgs      r<   test_select_iterator2r   o  s    	
		a 009d6l#r$G
B
 IIlI/
<C	y	, <~;< 
y	, >~=> >< <> >s   
C<C C C)c           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }|j                  | d
d       t        t        | d
d            }t        |      }t        |      dk(  sJ t        j                  ||       t        j                  |t        | d
             y )Nr   r@   r^   r_   r!   r#   rE   rF   r`   r(   r)   )r   r+   r   rq   )r   r1   r2   r3   r4   r   rd   r   r   r   r   r   r6   r7   )r   r(   r   rO   s       r<   test_select_iterator3r     s    	
		a 009d6l#r$G
B
 IIlWI58L$!<=GG_Fw<1&"%&(<">?r>   c           
      
   t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }| j                  d
|d       |j                         j                  dj                        }d|d<   | j                  d|       | j                  d
dgd
      }t        | j                  d
dgd
d            }t        |      }t        j                  ||       y )Nr   r@   r^   r_   r!   r#   rE   rF   r`   r   Tra   {}_2r,   r   r   r   )r   )r   r   )r   r1   r2   r3   r4   r   rd   r   rL   copyrenamer+   select_as_multipler   r6   r7   )r:   r   r   r;   r   rO   s         r<   test_select_iterator_multipler     s    

		a 009d6l#r$GC
 $7
((*

FMM

2CCJ$ ///OH((%%ST(UG G_F(F+r>   c           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }| j                  d
|       |j                  d   }|j                  d   }| j                  d
      }t        j                  ||       d| d}| j                  d
|      }t        j                  ||       d| d}| j                  d
|      }t        j                  ||       d| d| d}| j                  d
|      }t        j                  ||       y )Nr    rA   r^   r_   r   r0   rE   rF   r`   r(   r   
index >= ''r-   
index <= '' & index <= ')r   r1   r2   r3   r4   r   rd   r   rL   r&   r8   r6   r7   )r:   r;   beg_dtend_dtrO   r.   s         r<   "test_select_iterator_complete_8014r     s:    
		a 00=d6l#vCdKH
 x(^^AF^^BF !!$'F(F+ "E!!$e!4F(F+ "E!!$e!4F(F+ vha8E!!$e!4F(F+r>   c           
      2   d}t        t        j                  j                  d      j	                  d      t        t        d            t        dddd	      
      }| j                  d|       |j                  d   }|j                  d   }t        | j                  d|            }t        |      }t        j                  ||       d| d}t        | j                  d||            }t        |      }t        j                  ||       d| d}t        | j                  d||            }t        |      }t        j                  ||       d| d| d}t        | j                  d||            }t        |      }t        j                  ||       y )N     @r   r   r^   r_   r   r0   rE   rF   r`   r(   r   r   r   r   r   r.   r   r   r   r   r1   r2   r3   r4   r   rd   r   rL   r&   r8   r   r6   r7   )r:   r   r;   r   r   r   rO   r.   s           r<   -test_select_iterator_complete_8014_full_ranger     s   I
		a 00=d6l#vCdKH
 x(^^AF^^BF =''	'BCGG_F(F+ "E=''EY'OPGG_F(F+ "E=''EY'OPGG_F(F+ vha8E=''EY'OPGG_F(F+r>   c           
      D   d}t        t        j                  j                  d      j	                  d      t        t        d            t        dddd	      
      }| j                  d|       |j                  d   }|j                  d   }d| d}t        | j                  d||            }t        |      }||j                  |k\     }t        j                  ||       d| d}t        | j                  d||            }t        |      }||j                  |k     }t        j                  ||       d| d| d}t        | j                  d||            }t        |      }||j                  |k\  |j                  |k  z     }t        j                  ||       y )Nr   r   r   r^   r_   r   r0   rE   rF   r`   r(   r   r   r   r   r   r   r   	r:   r   r;   r   r   r.   r   rO   	rexpecteds	            r<   &test_select_iterator_non_complete_8014r     s    I 
		a 00=d6l#vCdKH
 x(^^AF^^BF "E=''EY'OPGG_F612I)V, "E=''EY'OPGG_F612I)V, vha8E=''EY'OPGG_F(..F2x~~7OPQI)V,r>   c           
      b   d}t        t        j                  j                  d      j	                  d      t        t        d            t        dddd	      
      }| j                  d|       |j                  d   }d| d}t        | j                  d||            }dt        |      k(  sJ y )Nr   r   r   r^   r_   r   r0   rE   rF   r`   r(   r   z	index > 'r   r   r   )r   r1   r2   r3   r4   r   rd   r   rL   r&   r8   r   )r:   r   r;   r   r.   r   s         r<   2test_select_iterator_non_complete_8014_empty_wherer     s    I
		a 00=d6l#vCdKH
 x(^^BF xq!E=''EY'OPGGr>   c           
         d}t        t        j                  j                  d      j	                  d      t        t        d            t        dddd	      
      }| j                  d|       |j                  d   }|j                  |dz
     }d| d}t        | j                  d||            }t        |      }||j                  |k\     }t        j                  ||       d| d}t        | j                  d||            }t        |      dk(  sJ t        |      }||j                  |k     }t        j                  ||       d| d| d}t        | j                  d||            }t        |      dk(  sJ t        |      }||j                  |k\  |j                  |k  z     }t        j                  ||       d| d| d}t        | j                  d||            }t        |      dk(  sJ y )Ni'  r   r   r^   r_   r   r0   rE   rF   r`   r(   r   r   r   r   r   r   r   z' & index >= ')r   r1   r2   r3   r4   r   rd   r   rL   r&   r8   r   r6   r7   r   r   s	            r<   &test_select_iterator_many_empty_framesr   $  s    I 
		a 00=d6l#vCdKH
 x(^^AF^^IM*F "E=''EY'OPGG_F612I)V, "E=''EY'OPGw<1G_F612I)V, vha8E=''EY'OPG w<1G_F(..F2x~~7OPQI)V, vha8E=''EY'OPG w<1r>   c           
      6   t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }| j                  d
|d       |j                  t        |      dz     }t        d      }|j                  j                  d   |k(  sJ d}d}|j                  t        j                   j#                  t$        dt&                     | j)                  d
||g      }|j*                  |d ddgf   }t-        j.                  ||       | j)                  d
|g      }|j*                  d d dgf   }t-        j.                  ||       t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }| j1                  d|       d}	t        j2                  t4        |	      5  | j)                  dd       d d d        y # 1 sw Y   y xY w)Nr   r@   r^   r_   r!   r#   rE   rF   r`   framer)   r*   zindex>=datedatezcolumns=['A', 'D']z	columns=Ar   r   r"   rc   df_timez day is out of range for month: 0r   zindex>0)r   r1   r2   r3   r4   r   rd   r   r5   r&   r   r   envscoper   r   r   r   r   r   r8   rM   r6   r7   rL   r   r   )
r:   r   r(   r   crit1crit2crit3rO   r;   r   s
             r<   test_frame_selectr   ]  s   	
		a 009d6l#r$G
B gr'288CGqL!DE99??6"d*** EE( 	 	
 !!'E5>:Fvvdec3Z'(H&(+!!'E73Fvva#hH&(+ 

		a 009d6l#r$G
B
 B'
,C	z	- 3Y	23 3 3s   3HHc           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }d
|d<   d|j                  |j                  dd df<   | j                  d|ddg       | j                  dd      }|j                  |j                  |j                  d   kD  |j                  dk(  z     }t        j                  ||       | j                  dd      }|j                  |j                  |j                  d   kD  |j                  d
k(  z     }t        j                  ||       | j                  dd      }|j                  |j                  |j                  d   kD  |j                  dk(  z     }t        j                  ||       | j                  dd      }|j                  |j                  |j                  d   kD  |j                  |j                  d   k  z  |j                  dk(  z     }t        j                  ||       | j                  dd      }|j                  |j                  dk7     }t        j                  ||       d}t        j                   t"        |      5  | j                  dd       d d d        | j                  dd      }|j                  d d |j$                  j'                  ddg      f   }t        j                  ||       | j                  dd      }|j                  |j                  |j                  d   kD     j)                  ddg      }t        j                  ||       y # 1 sw Y   xY w) Nr   r@   r^   r_   r!   r#   rE   rF   r`   r   stringr   r   rA   r(   r)   r+   rb   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"   z(index>df.index[3] & columns in ['A','B']r,   )r   r1   r2   r3   r4   r   rd   r   rM   r&   r5   r8   r   r6   r7   r   r   NotImplementedErrorr'   
differencere   )r:   r(   rO   r;   r   s        r<   test_frame_select_complexr     s    

		a 009d6l#r$G
B
 BxL&+BFF288Aa=("#dBwhZH !!$(JKFvvrxx"((1+-"))u2DEFH&(+!!$(JKFvvrxx"((1+-"))u2DEFH&(+ !!$(JKFvvrxx"((1+-"))u2DEFH&(+!!GF vv
((RXXa[
 RXX!%<	="))uBTUH &(+ !!$8Fvvbii5()H&(+ CC	*#	6 6T#456 !!$(>?Fvva..Sz::;H&(+ !!$(RSFvvbhh!,-55sCj5IH&(+6 6s   M**M3c                    | dz  }| dz  }t        dg di      }|j                  |ddddg       t        |dd	
      }t        t        j                  j                  d      j                  d      dgt        j                  t        d      D cg c]  }t        d      D ]  }||f  c}}ddg            }|j                  |ddd       t        |dd
      }|j                  j                         }	t        |      5 }
|
j                  dd
      }t        j                  ||       d d d        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 }
|
j                  dd
      }t        j                  ||       |
j                  dd
      }t        j                  ||       |
j                  dd
      }t        j                  ||       |
j                  dd
      }t        j                  ||       d d d        y c c}}w # 1 sw Y   xY w# 1 sw Y   y xY w)Nz
params.hdfzhist.hdfr"   )r   r   r   r   r   r(   wr)   )r   moder+   rb   zA=[2,3]r-   r   )   r   datarq   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   r1   r2   r3   r4   r   from_tuplesr   r&   tolistr   r8   r6   r7   )tmp_pathpphhparams	selectionr   jhistr;   l0storerO   r&   s                r<   test_frame_select_complex2r    s   	L	 B	J	B _-.F
MM"$SuMMT3I
		a 009$$"1X8uQx8!aV8V8t
D 	KK3wK7D7H 
			!B	" 0d'2
fh/0 b$g.F&(+ OOEb$j1F&(+b$&:;F&(+b$&CDF&(+b$&@AF&(+ 
" 0d*5
fh/d*>?
fh/d*GH
fh/d*DE
fh/0 0A 90 0,0 0s   J/*J5B%K5J?Kc           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }| j                  d
|d       d}t        j                  t        |      5  | j                  d
d       d d d        t        j                  t        |      5  | j                  d
d       d d d        y # 1 sw Y   @xY w# 1 sw Y   y xY w)Nr   r@   r^   r_   r!   r#   rE   rF   r`   r(   r)   r*   z unable to collapse Joint Filtersr   zcolumns=['A'] | columns=['B']z!columns=['A','B'] & columns=['C'])r   r1   r2   r3   r4   r   rd   r   r5   r   r   r   r8   )r:   r(   r   s      r<   test_invalid_filteringr     s     

		a 009d6l#r$G
B dBw/
,C	*#	6 DT#BCD 
*#	6 HT#FGH H	D DH Hs   CC)C&)C2c           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }d
|d<   d|j                  |j                  dd df<   | j                  d|dg       | j                  dd      }||j                  d
k(     }t        j                  ||       | j                  dd      }||j                  d
k7     }t        j                  ||       |j                         }t        j                   |j                  |j                  dk(  df<   | j                  d|dg       | j                  dd      }|t#        |j                           }t        j                  ||       d|d<   d|j                  |j                  dd df<   | j                  d|dg       | j                  dd      }||j$                  dk(     }t        j                  ||       | j                  dd      }||j$                  dk7     }t        j                  ||       y )Nr   r@   r^   r_   r!   r#   rE   rF   r`   nonex    r(   ra   zx=nonezx!=noner   r   intdf3zint=2zint!=2)r   r1   r2   r3   r4   r   rd   r   rM   r&   rL   r8   r  r6   r7   r   r   r   r  )r:   r(   rO   r;   r   s        r<   test_string_selectr    s   	
		a 009d6l#r$G
B BsG!#BFF288Aa=#r6!!$1F"$$&.!H&(+!!$	2F"$$&.!H&(+
'')C "CGGCEERK3%8!!%3F4;H&(+ BuI#$BFF288Aa=% %9!!%1F"&&A+H&(+!!%2F"&&A+H&(+r>   c           
         t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }|j                         j                  d
j                        }d|d<   d}t        j                  t        |      5  | j                  d ddgd       d d d        | j                  d|ddg       | j                  d|       t        j                  t        |      5  | j                  d ddgd       d d d        t        j                  t        |      5  | j                  d gddgd       d d d        d}t        j                  t         |      5  | j                  ddgddgd       d d d        t        j                  t         |      5  | j                  dgddgd       d d d        t        j                  t         d      5  | j                  ddgddgd       d d d        | j#                  dddg      }| j                  dgddgd      }t%        j&                  ||       | j                  dddgd      }t%        j&                  ||       | j                  ddgddgd      }t)        ||gd      }||j*                  dkD  |j,                  dkD  z     }t%        j&                  ||d       | j                  ddgd d      }t)        ||gd      }|d!d  }t%        j&                  ||       |j                         j/                  d      }| j                  d|       d"}t        j                  t0        |      5  | j                  ddgddgd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)#Nr   r@   r^   r_   r!   r#   rE   rF   r`   r   r,   r   r   zkeys must be a list/tupler   zA>0zB>0r   )r.   r   r"   ra   r   z!'No object named df3 in the file'r  z!'No object named df4 in the file'r   r   rU   r   F)
check_freqzindex>df2.index[4]rq   z,all tables must have exactly the same nrows!)r   r1   r2   r3   r4   r   rd   r   r   r   r+   r   r   r   r   rL   KeyErrorr8   r6   r7   r   r"   r#   headr   )r:   r   r   r   rO   r;   r  s          r<   test_select_as_multipler  B  s   

		a 009d6l#r$GC
 ((*

FMM

2CCJ
%C	y	, U((eU^e(TU 3*=$ 
y	, U((eU^e(TU 
y	, W(($u~PU(VW .C	xs	+ 
((EN5%.5 	) 	


 
xs	+ X((%QV(WX 
x'J	K 
((EN5%.5 	) 	

 !!%%8F//	u~ 0 H &(+//eU^e 0 H &(+ --	uenu . F sCjq)HaHJJN;<H&(u= --	2U . F sCjq)H|H&(+ ((*//!
C$
8C	z	- 
((EN5%.5 	) 	

 
wU UU UW W
 

X X
 
J
 
sT   &NN"N/?N<;O	6O3O#N"N,/N9<O	OO #O,c                 h   t        t        d      t        d      dd      }|d   dz   j                  t              |d<   t        j
                  |j                  d<   t        g dg d	dg d
      }| j                  d|ddg       | j                  dd      }t        j                  ||       y )Nr   r   r   r}   r   r!   r   )z13.0z14.0z15.0)g      @g      @g      @)r   rA   rq   )r&   r(   Tr   r   r-   r   r[   s       r<   test_nan_selection_bug_4858r    s    	E!Ha9	KBV*r/((-BvJBGGAJ)_EH rVHE!!$l!;F&(+r>   c                     t        g dg dd      }||j                  dk(     }| j                  d|dd       | j                  dd	      }t	        j
                  ||       y )
N)r   r   r   r   test & testr   r   e)r   r   r   rA   rq   r   r     )r   r   r   testr)   Tr   za = "test & test")r   r   rL   r8   r6   r7   r[   s       r<   (test_query_with_nested_special_characterr$    sf    	C)	

B "$$-'(HG$G!!&*=>F(F+r>   c                    t        dg di      }| j                  d|dd       d}| j                  dd|d	      }|j                  sJ d
}| j                  dd|d	      }|j                  ddgd d f   }t        j                  ||       d}| j                  dd|d	      }|j                  dgd d f   }t        j                  ||       y )Nr"   )g~  eA$  eAg'1  eAr#  r)   Tr   g  eAzA < z.4fg   eAzA > r   r   r&  zA == )r   rL   r8   emptyrM   r6   r7   )r:   r(   cutoffrO   r;   exacts         r<   test_query_long_float_literalr*    s    	CLM	NBG$GF!!&D*=>F<<<F!!&D*=>Fvvq!fai H(F+E!!&E%*=>Fvvqc1f~H(F+r>   c                     t        ddgt        ddd      ddgddgd	g d	
      }| j                  d|dd       t        d      }| j	                  dd      }|j
                  dgd d f   }t        j                  ||       dD ]\  }ddt        d      t        j                  dd      fD ]Q  }d| d}d| dt        |       d}t        j                  t        |      5  | j	                  d|       d d d        S d}dD ]K  }	|	 d| d}|	dk(  rd}nd}t        j                  t        |      5  | j	                  d|       d d d        M t        g d g d      D ]}  \  }}	|	 d| d}| j	                  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                  ||        _ y # 1 sw Y   DxY w# 1 sw Y   xY w)$N
2014-01-01z
2014-01-02r   rE   rk   r   g333333?r   )r   	real_datefloatr  r,   r#  r)   Tr   zreal_date > tsr-   )<>==g @r0   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,  r1  r   r0  )r   r   rL   r   r8   rM   r6   r7   pd	Timedeltatyper   r   r   r   zip)
r:   r(   rl   rO   r;   oprv   queryr   cols
             r<   test_query_compare_column_typer;    s9   	!<0#L!$G3Zq6		
 6
B G$G	<	 B!!&0@!AFvvqc1f~H(F+ 4tY|4bll1c6JK 	:AB4rNE#A3iQy8IJCy4 :$$V5$9: :	: 0 	:Ce1RDOEk!C3z5 :$$V5$9: :	: 46ST 
	4FAse1RDOE"))&)>FTz661#q&>s661#q&>66"a%=!!(F3
	4'4
: :: :s   #G'5G4'G14G=r.   r   )Nc                     t        g d      }| j                  d|d       t        | d|      }t        j                  ||       y )N)r   r   r   r(   tr-   )r   r5   r   r6   r7   )r:   r.   r(   rO   s       r<   test_select_empty_wherer?    s>     
9	BdB$mT7F&"%r>   c                     t        t        g dg d      ddg      }| j                  d|dd	       | j                  dd
      j	                  d      j	                  d      }|d   d   }||k(  sJ y )N)r   r   r   d)l l l {   r  yr,   r   TFr   zy==-9223372036854775801r-   r   )r   r7  rL   r8   getrN   s       r<   test_select_large_integerrE    s    	 S	
 c

B $eDV+DEII#NRRSTU  #wqzHvr>   )>numpyr1   r   pandas._libs.tslibsr   pandas.compatr   pandasr4  r   r   r   r   r	   r
   r6   r   r   r   r   r   pandas.io.pytablesr   r   
single_cpu
pytestmarkr=   rP   rY   r\   rg   ro   rw   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r$  r*  r;  parametrizer?  rE  r<  r>   r<   <module>rN     s-     )      $kk$$%
P<,, <F<0$,N,0&
,,,,	,,.-`,2> @ ,(",J",J#-L"6r(3`5,p80vH**,ZI
X, 
,,*04f 2r7B"?@& A&r>   