a
    =Â×_äÙ ã                   @   sš  d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZmZ d dlmZ eZe d¡ d	Zd
ZG dd dejZG dd dejeZG dd deZG dd deZG dd deZG dd deZ G dd deZ!G dd de!Z"G dd deZ#G dd de#Z$G dd  d eZ%G d!d" d"e%Z&G d#d$ d$eZ'G d%d& d&e'Z(G d'd( d(eZ)G d)d* d*e)Z*G d+d, d,eZ+G d-d. d.e+Z,G d/d0 d0eZ-G d1d2 d2e-Z.G d3d4 d4eZ/G d5d6 d6e/Z0G d7d8 d8eZ1G d9d: d:eZ2G d;d< d<eZ3G d=d> d>eZ4G d?d@ d@eZ5G dAdB dBeZ6G dCdD dDeZ7G dEdF dFeZ8G dGdH dHeZ9G dIdJ dJeZ:G dKdL dLeZ;dMZ<dNZ=G dOdP dPZ>G dQdR dRZ?G dSdT dTZ@G dUdV dVZAg dW¢ZBdXdYgZCdZd[ ZDeD D ]6\ZEZFZGeHd\d] eFD ZIeJeEeIeGZKeLd^eE  qG d_d` d`ejeZMG dadb dbeZNdcdd ZOePdekr€d dlQZQe ReQjS¡ e T¡  ejUdddf dS )gé    N)Ú	StringColÚBoolColÚIntColÚFloatCol)Úcalc_chunksize)Úcommon)ÚverboseÚheavy)ÚunittestÚtest_filename)ÚPyTablesTestCaseé   )é   é   é   é   éè  c                   @   s6   e Zd ZedddZeddZeddZe	ddZ
dS )ÚSmallr   ó    )ÚitemsizeÚdfltr   )r   N)Ú__name__Ú
__module__Ú__qualname__r   Úvar1r   Úvar2r   Úvar3r   Úvar4© r   r   ú<lib/python3.9/site-packages/tables/tests/test_indexvalues.pyr      s   

r   c                       s`  e Zd ZdZdZdZdZdZdZdZ	dZ
dZ fddZd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Z d1d2 Z!d3d4 Z"d5d6 Z#d7d8 Z$d9d: Z%d;d< Z&d=d> Z'd?d@ Z(dAdB Z)dCdD Z*dEdF Z+dGdH Z,dIdJ Z-dKdL Z.dMdN Z/dOdP Z0  Z1S )QÚSelectValuesTestCaseé   Úzlibr   é
   NFc                    s4   t t|  ¡  trtd| j | jj| _|  	¡  d S )NzChecking index kind-->)
Úsuperr    ÚsetUpr   ÚprintÚkindÚh5fileÚrootÚ	rootgroupÚpopulateFile©Úself©Ú	__class__r   r   r%   0   s
    
zSelectValuesTestCase.setUpc              	   C   s6  | j rt| drt  | j¡ | j}d}tj| j| j| j| j	d}| j
j|dt||| j| jfd}| j
j|dt||| j| jfd}d}td| j| jD ]ú}t| jD ]ê}| j rºt  | j¡}	n4| jd urêt| j}
||
krÞ||
; }| j| }	n|}	t|	 d¡}||jd	< ||jd	< |	d
 |jd< |	d
 |jd< |	|jd< |	|jd< t| j|	 d |jd< t| j|	 d |jd< |j ¡  |j ¡  |d7 }q¢q| ¡  | ¡  | jrÆ| j|_| j|j| j 8  _|j ¡ D ]}|j| j| jd}qÐt rt!d|j t!d| | j"r2| j#dd | j
j$j%| _%| j
j$j%| _&d S )NÚseedzThis is the IndexArray title)Z	complevelÚcomplibÚshuffleÚ
fletcher32Útable1)Ú
chunkshapeÚtable2r   Úasciir   r   r   r   r!   r   )r'   Z_blocksizeszNumber of written rows:zNumber of indexed rows:Úa)Úmode)'ÚrandomÚhasattrr0   r*   ÚtablesÚFiltersÚcompressr1   r2   r3   r(   Úcreate_tabler   Únrowsr5   ÚrangeÚnrepÚ	randrangeÚvaluesÚlenÚstrÚencodeÚrowÚfloatÚappendÚflushÚ
buffersizeZ
nrowsinbufZcolinstancesÚcreate_indexr'   Ú
blocksizesr   r&   ÚreopenÚ_reopenr)   r4   r6   )r-   ÚgroupÚtitleÚfiltersr4   r6   ÚcountÚiÚjÚkÚ	lenvaluesZbkÚcolZ	indexrowsr   r   r   r+   9   sp    ýþþ







ÿ

z!SelectValuesTestCase.populateFilec                    sp  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}dd | d¡D } fdd|D }| ¡  | ¡  t rŒtd	| td
t| tdt| |  t|t|¡ |  ||¡ |jj}dd | d¡D } fdd|D }| ¡  | ¡  t r>td
t| tdt| |  t|t|¡ |  ||¡ |jj}dd | d¡D } fdd|D }| ¡  | ¡  t rÀtd
t| tdt| |  t|t|¡ |  ||¡ |jj}|  |¡ dd | d¡D } fdd|D }| ¡  | ¡  t rLtd
t| tdt| |  t|t|¡ |  ||¡ dS )ú7Checking selecting values from an Index (string flavor)Ú
ú<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01a...r7   c                 S   s   g | ]}|d  qS ©r   r   ©Ú.0Úpr   r   r   Ú
<listcomp>   r   z0SelectValuesTestCase.test01a.<locals>.<listcomp>ú(il<=t1var1)&(t1var1<=sl)c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   ©ÚilÚslr   r   ra      s   ÿúShould look like:úLength results:ú
Should be:c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra      r   z(il<=t1var1)&(t1var1<sl)c                    s0   g | ](} |d    kr k rn q|d  qS r]   r   r^   rc   r   r   ra      s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   ¥   r   z(il<t1var1)&(t1var1<=sl)c                    s0   g | ](} |d    k r krn q|d  qS r]   r   r^   rc   r   r   ra   §   s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   Ž   r   z(il<t1var1)&(t1var1<sl)c                    s0   g | ](} |d    k r k rn q|d  qS r]   r   r^   rc   r   r   ra   ¶   s   ÿN)r   r&   r/   r   r(   r)   r4   r6   rF   rd   rG   re   Úcolsr   ÚwhereÚsortrE   ÚassertEqualÚassertIsNotNone©r-   r4   r6   Út1var1Úresults1Úresults2r   rc   r   Útest01aw   sr    


ÿ
ÿÿ
ÿzSelectValuesTestCase.test01ac                    sv  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ |jj}dd | d¡D } fdd|D }| ¡  | ¡  t rªtd	  td
t| tdt| |  t|t|¡ |  ||¡ |jj}dd | d¡D } fdd|D }| ¡  | ¡  t r4td	  td
t| tdt| |  t|t|¡ |  ||¡ |jj}dd | d¡D } fdd|D }| ¡  | ¡  t rŸtd	  td
t| tdt| |  t|t|¡ |  ||¡ |jj}|  |¡ dd | d¡D } fdd|D }| ¡  | ¡  t rRtd	  td
t| tdt| |  t|t|¡ |  ||¡ dS )rZ   r[   r\   zRunning %s.test01b...r7   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   Ñ   r   z0SelectValuesTestCase.test01b.<locals>.<listcomp>zt1var1 < slc                    s    g | ]}|d   k r|d  qS r]   r   r^   ©re   r   r   ra   Ò   s   ÿúLimit:rg   rh   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   ß   r   zt1var1 <= slc                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   à   s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   í   r   zt1var1 > slc                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   î   s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   ü   r   zt1var1 >= slc                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   ý   s   ÿN)r   r&   r/   r   r(   r)   r4   r6   rF   re   rG   ri   r   rj   rk   rE   rl   rm   rn   r   rs   r   Útest01bÀ   sf    







zSelectValuesTestCase.test01bc                 C   sª   t rtdd td| jj  | jjj}| jjj}|jj	}|  
|¡ dd | d¡D }dd |D }t rtdt| td	t| |  t|t|¡ |  ||¡ d
S )ú5Checking selecting values from an Index (bool flavor)r[   r\   zRunning %s.test02a...c                 S   s   g | ]}|d  qS ©r   r   r^   r   r   r   ra     r   z0SelectValuesTestCase.test02a.<locals>.<listcomp>út1var2 == Truec                 S   s    g | ]}|d  du r|d  qS ©r   Tr   r^   r   r   r   ra     r   rg   rh   N©r   r&   r/   r   r(   r)   r4   r6   ri   r   rm   rj   rE   rl   ©r-   r4   r6   Út1var2rp   rq   r   r   r   Útest02a  s    



zSelectValuesTestCase.test02ac                 C   sª   t rtdd td| jj  | jjj}| jjj}|jj	}|  
|¡ dd | d¡D }dd |D }t rtdt| td	t| |  t|t|¡ |  ||¡ d
S )rv   r[   r\   zRunning %s.test02b...c                 S   s   g | ]}|d  qS rw   r   r^   r   r   r   ra   *  r   z0SelectValuesTestCase.test02b.<locals>.<listcomp>zt1var2 == Falsec                 S   s    g | ]}|d  du r|d  qS ©r   Fr   r^   r   r   r   ra   +  r   rg   rh   Nrz   r{   r   r   r   Útest02b  s    



zSelectValuesTestCase.test02bc                    sB  t rtdd td| jj  | jjj}| jjj}t| j	 t| j
|jj}|  |¡ dd | d¡D } fdd|D }| ¡  | ¡  t r°tdt| td	t| |  t|t|¡ |  ||¡ d
d | d¡D } fdd|D }| ¡  | ¡  t r*tdt| td	t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r€tdt| td	t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t rtdt| td	t| |  t|t|¡ |  ||¡ dS )ú4Checking selecting values from an Index (int flavor)r[   r\   zRunning %s.test03a...c                 S   s   g | ]}|d  qS ©r   r   r^   r   r   r   ra   E  r   z0SelectValuesTestCase.test03a.<locals>.<listcomp>ú(il<=t1col)&(t1col<=sl)c                    s0   g | ](} |d    kr krn q|d  qS r   r   r^   rc   r   r   ra   F  s   ÿrg   rh   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   S  r   ú(il<=t1col)&(t1col<sl)c                    s0   g | ](} |d    kr k rn q|d  qS r   r   r^   rc   r   r   ra   T  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   a  r   ú(il<t1col)&(t1col<=sl)c                    s0   g | ](} |d    k r krn q|d  qS r   r   r^   rc   r   r   ra   b  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   o  r   ú(il<t1col)&(t1col<sl)c                    s0   g | ](} |d    k r k rn q|d  qS r   r   r^   rc   r   r   ra   p  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   Úintrd   re   ri   r   rm   rj   rk   rE   rl   ©r-   r4   r6   Út1colrp   rq   r   rc   r   Útest03a2  sZ    





zSelectValuesTestCase.test03ac                    sX  t rtdd td| jj  | jjj}| jjj}t| j	 |j
j}|  |¡ dd | d¡D } fdd|D }| ¡  | ¡  t r®td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r0td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r²td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r4td  td	t| td
t| |  t|t|¡ |  ||¡ dS )r   r[   r\   zRunning %s.test03b...c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   z0SelectValuesTestCase.test03b.<locals>.<listcomp>ú
t1col < slc                    s    g | ]}|d   k r|d  qS r   r   r^   rs   r   r   ra     s   ÿrt   rg   rh   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   út1col <= slc                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra     s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ­  r   ú
t1col > slc                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ®  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   Œ  r   út1col >= slc                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   œ  s   ÿN©r   r&   r/   r   r(   r)   r4   r6   r   re   ri   r   rm   rj   rk   rE   rl   r   r   rs   r   Útest03b|  s`    








zSelectValuesTestCase.test03bc                    sX  t rtdd td| jj  | jjj}| jjj}t| j	 |j
j}|  |¡ dd | d¡D } fdd|D }| ¡  | ¡  t r®td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r0td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r²td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r4td  td	t| td
t| |  t|t|¡ |  ||¡ dS )z5Checking selecting values from an Index (long flavor)r[   r\   zRunning %s.test03c...c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   Ý  r   z0SelectValuesTestCase.test03c.<locals>.<listcomp>r   c                    s    g | ]}|d   k r|d  qS r   r   r^   rs   r   r   ra   Þ  s   ÿrt   rg   rh   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ì  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   í  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   û  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ü  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   
  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra     s   ÿNr   r   r   rs   r   Útest03cÊ  s`    








zSelectValuesTestCase.test03cc                    sX  t rtdd td| jj  | jjj}| jjj}t| j	 |j
j}|  |¡ dd | d¡D } fdd|D }| ¡  | ¡  t r®td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r0td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r²td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r4td  td	t| td
t| |  t|t|¡ |  ||¡ dS )z=Checking selecting values from an Index (long and int flavor)r[   r\   zRunning %s.test03d...c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   +  r   z0SelectValuesTestCase.test03d.<locals>.<listcomp>r   c                    s    g | ]}|d   k r|d  qS r   r   r^   rs   r   r   ra   ,  s   ÿrt   rg   rh   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   :  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ;  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   I  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   J  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   X  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   Y  s   ÿNr   r   r   rs   r   Útest03d  s`    








zSelectValuesTestCase.test03dc                    sJ  t rtdd td| jj  | jjj}| jjj}t| j	 t| j
|jj}|  |¡ dd | d¡D } fdd|D }| ¡  | ¡  t r°tdt| td	t| |  t|t|¡ |  | ¡ | ¡ ¡ d
d | d¡D } fdd|D }| ¡  | ¡  t r2tdt| td	t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r¬tdt| td	t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r&tdt| td	t| |  t|t|¡ |  ||¡ dS )ú6Checking selecting values from an Index (float flavor)r[   r\   zRunning %s.test04a...c                 S   s   g | ]}|d  qS ©r   r   r^   r   r   r   ra   y  r   z0SelectValuesTestCase.test04a.<locals>.<listcomp>r   c                    s0   g | ](} |d    kr krn q|d  qS r   r   r^   rc   r   r   ra   z  s   ÿrg   rh   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   r   c                    s0   g | ](} |d    kr k rn q|d  qS r   r   r^   rc   r   r   ra     s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   r   c                    s0   g | ](} |d    k r krn q|d  qS r   r   r^   rc   r   r   ra     s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ¥  r   r   c                    s0   g | ](} |d    k r k rn q|d  qS r   r   r^   rc   r   r   ra   Š  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   rI   rd   re   ri   r   rm   rj   rk   rE   rl   r   r   rc   r   Útest04af  sZ    





zSelectValuesTestCase.test04ac                    sX  t rtdd td| jj  | jjj}| jjj}t| j	 |j
j}|  |¡ dd | d¡D } fdd|D }| ¡  | ¡  t r®td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r0td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r²td  td	t| td
t| |  t|t|¡ |  ||¡ dd | d¡D } fdd|D }| ¡  | ¡  t r4td  td	t| td
t| |  t|t|¡ |  ||¡ dS )r   r[   r\   zRunning %s.test04b...c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   Å  r   z0SelectValuesTestCase.test04b.<locals>.<listcomp>r   c                    s    g | ]}|d   k r|d  qS r   r   r^   rs   r   r   ra   Æ  s   ÿrt   rg   rh   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   Ô  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   Õ  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ã  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ä  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ò  r   r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ó  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   rI   re   ri   r   rm   rj   rk   rE   rl   r   r   rs   r   Útest04b²  s`    








zSelectValuesTestCase.test04bc                    s  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fd	d|D }| ¡  | ¡  t râtd
t| tdt| |  t|t|¡ |  | ¡ | ¡ ¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rtd
t| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t r>td
t| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rètd
t| tdt| |  t|t|¡ |  ||¡ dS )z>Checking get_where_list & itersequence (string, python flavor)r[   r\   zRunning %s.test05a...r7   r   Úpythonc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra     r   z0SelectValuesTestCase.test05a.<locals>.<listcomp>c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra     s   ÿrg   rh   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   +  r   c                    s0   g | ](} |d    kr k rn q|d  qS r]   r   r^   rc   r   r   ra   ,  s   ÿr   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   ?  r   c                    s0   g | ](} |d    k r krn q|d  qS r]   r   r^   rc   r   r   ra   @  s   ÿr   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   U  r   c                    s0   g | ](} |d    k r k rn q|d  qS r]   r   r^   rc   r   r   ra   V  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   rF   rd   rG   re   ri   r   Ú
assertTrueÚwill_query_use_indexingÚfzsetÚpathnameÚflavorÚget_where_listÚitersequencerk   rE   rl   ©r-   r4   r6   r   Ú	conditionÚrowList1rp   rq   r   rc   r   Útest05a   s    



ÿÿ

ÿÿ

ÿÿ

ÿÿ
zSelectValuesTestCase.test05ac                    sþ  t rtdd td| jj  | jjj}| jjj}t 	| j
¡ |jj}d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÖtd	  td
t| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rtd	  td
t| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t r.td	  td
t| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÚtd	  td
t| tdt| |  t|t|¡ |  ||¡ dS )zRChecking get_where_list & itersequence (numpy string lims & python
        flavor)r[   r\   zRunning %s.test05b...út1col<slr   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   {  r   z0SelectValuesTestCase.test05b.<locals>.<listcomp>c                    s    g | ]}|d   k r|d  qS r]   r   r^   rs   r   r   ra   |  s   ÿrt   rg   rh   ú	t1col<=slc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra     r   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra     s   ÿút1col>slc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   £  r   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   €  s   ÿú	t1col>=slc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   ·  r   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   ž  r   N)r   r&   r/   r   r(   r)   r4   r6   ÚnumpyZstring_re   ri   r   r   r   r   r   r   r   r   rk   rE   rl   r   r   rs   r   Útest05bb  s    



ÿÿ


ÿÿ


ÿÿ


ÿÿ

zSelectValuesTestCase.test05bc                 C   sÐ   t rtdd td| jj  | jjj}| jjj}|jj	}d}|  
| |¡t|jgk¡ d|_| |¡}dd | |¡D }dd |D }t r¬td	t| td
t| |  t|t|¡ |  ||¡ dS )z4Checking get_where_list & itersequence (bool flavor)r[   r\   zRunning %s.test06a...zt1var2==Truer   c                 S   s   g | ]}|d  qS rw   r   r^   r   r   r   ra   Ö  r   z0SelectValuesTestCase.test06a.<locals>.<listcomp>c                 S   s    g | ]}|d  du r|d  qS ry   r   r^   r   r   r   ra   ×  r   rg   rh   N)r   r&   r/   r   r(   r)   r4   r6   ri   r   r   r   r   r   r   r   r   rE   rl   )r-   r4   r6   r|   r   r    rp   rq   r   r   r   Útest06aÄ  s*    



ÿÿ
zSelectValuesTestCase.test06ac           	      C   sä   t rtdd td| jj  | jjj}| jjj}|jj	}t
 d¡}|  |¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D }d	d |D }t rÀtd
t| tdt| |  t|t|¡ |  ||¡ dS )zKChecking get_where_list & itersequence (numpy bool limits &
        flavor)r[   r\   zRunning %s.test06b...Fzt1var2==falser   c                 S   s   g | ]}|d  qS rw   r   r^   r   r   r   ra   ó  r   z0SelectValuesTestCase.test06b.<locals>.<listcomp>c                 S   s    g | ]}|d  du r|d  qS r~   r   r^   r   r   r   ra   ô  r   rg   rh   N)r   r&   r/   r   r(   r)   r4   r6   ri   r   rŠ   Zbool_ÚassertFalser   r   r   r   r   r   r   rE   rl   )	r-   r4   r6   r|   Zfalser   r    rp   rq   r   r   r   Útest06bÞ  s.    





ÿÿ
zSelectValuesTestCase.test06bc                    s   t rtdd td| jj  | jjj}| jjj}t| j	 t| j
|jj}d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÖtd	t| td
t| |  t|t|¡ |  | ¡ | ¡ ¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rtd	t| td
t| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t r2td	t| td
t| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÜtd	t| td
t| |  t|t|¡ |  ||¡ dS )z3Checking get_where_list & itersequence (int flavor)r[   r\   zRunning %s.test07a...r   r   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   z0SelectValuesTestCase.test07a.<locals>.<listcomp>c                    s0   g | ](} |d    kr krn q|d  qS r   r   r^   rc   r   r   ra     s   ÿrg   rh   r   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   &  r   c                    s0   g | ](} |d    kr k rn q|d  qS r   r   r^   rc   r   r   ra   '  s   ÿr   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   :  r   c                    s0   g | ](} |d    k r krn q|d  qS r   r   r^   rc   r   r   ra   ;  s   ÿr   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   P  r   c                    s0   g | ](} |d    k r k rn q|d  qS r   r   r^   rc   r   r   ra   Q  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   r   rd   re   ri   r   r   r   r   r   r   r   r   rk   rE   rl   r   r   rc   r   Útest07aû  s    





ÿÿ

ÿÿ

ÿÿ

ÿÿ
zSelectValuesTestCase.test07ac                    sþ  t rtdd td| jj  | jjj}| jjj}t 	| j
¡ |jj}d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÖtd	  td
t| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rtd	  td
t| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t r.td	  td
t| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÚtd	  td
t| tdt| |  t|t|¡ |  ||¡ dS )zJChecking get_where_list & itersequence (numpy int limits &
        flavor)r[   r\   zRunning %s.test07b...r¢   r   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   v  r   z0SelectValuesTestCase.test07b.<locals>.<listcomp>c                    s    g | ]}|d   k r|d  qS r   r   r^   rs   r   r   ra   w  s   ÿrt   rg   rh   r£   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra     s   ÿr€   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra     s   ÿr¥   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ²  r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ³  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   rŠ   Zuint16re   ri   r   r   r   r   r   r   r   r   rk   rE   rl   r   r   rs   r   Útest07b]  s    



ÿÿ


ÿÿ


ÿÿ


ÿÿ

zSelectValuesTestCase.test07bc                    s   t rtdd td| jj  | jjj}| jjj}t| j	 t| j
|jj}d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÖtd	t| td
t| |  t|t|¡ |  | ¡ | ¡ ¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rtd	t| td
t| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t r2td	t| td
t| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ d|_| |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÜtd	t| td
t| |  t|t|¡ |  ||¡ dS )z5Checking get_where_list & itersequence (float flavor)r[   r\   zRunning %s.test08a...r   r   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   Ø  r   z0SelectValuesTestCase.test08a.<locals>.<listcomp>c                    s0   g | ](} |d    kr krn q|d  qS r   r   r^   rc   r   r   ra   Ù  s   ÿrg   rh   r   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ì  r   c                    s0   g | ](} |d    kr k rn q|d  qS r   r   r^   rc   r   r   ra   í  s   ÿr   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra      r   c                    s0   g | ](} |d    k r krn q|d  qS r   r   r^   rc   r   r   ra     r   r   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   c                    s0   g | ](} |d    k r k rn q|d  qS r   r   r^   rc   r   r   ra     r   N)r   r&   r/   r   r(   r)   r4   r6   rI   rd   re   ri   r   r   r   r   r   r   r   r   rk   rE   rl   r   r   rc   r   Útest08aÀ  s    





ÿÿ

ÿÿ

ÿÿ

ÿÿ
zSelectValuesTestCase.test08ac                    sø  t rtdd td| jj  | jjj}| jjj}t 	| j
¡ |jj}d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÐtd  td	t| td
t| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t r|td  td	t| td
t| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t r(td  td	t| td
t| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ | |¡}dd | |¡D } fdd|D }| ¡  | ¡  t rÔtd  td	t| td
t| |  t|t|¡ |  ||¡ dS )zLChecking get_where_list & itersequence (numpy float limits &
        flavor)r[   r\   zRunning %s.test08b...r¢   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   9  r   z0SelectValuesTestCase.test08b.<locals>.<listcomp>c                    s    g | ]}|d   k r|d  qS r   r   r^   rs   r   r   ra   :  r   rt   rg   rh   r£   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   L  r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   M  r   r€   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   _  r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   `  r   r¥   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   r  r   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   s  r   N)r   r&   r/   r   r(   r)   r4   r6   rŠ   Zfloat64re   ri   r   r   r   r   r   r   r   rk   rE   rl   r   r   rs   r   Útest08b!  s    



ÿÿ


ÿÿ


ÿÿ


ÿÿ

zSelectValuesTestCase.test08bc                    sê  t rtdd td| jj  | jjj}| jjj}| ¡  t	| j
 d¡ t	| j d¡|jj}|  |¡ d}|  | |¡ ¡ dd |j|dd	d
D }fdd| dd	¡D }t ràtd tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|ddddD } fdd| ddd¡D }t r~td  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|ddd
D } fdd| dd¡D }t r"td  td tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|ddddD }fdd| ddd¡D }t rŸtd  tdt| tdt| |  t|t|¡ |  ||¡ | ¡  dS )z,Checking non-indexed where() (string flavor)r[   r\   zRunning %s.test09a...r7   r£   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra     r   z0SelectValuesTestCase.test09a.<locals>.<listcomp>r   r#   ©ÚstartÚstopc                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra     s   ÿrt   rg   rh   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   €  r   é   ©r°   r±   Ústepc                    s0   g | ](} |d    k r k rn q|d  qS r]   r   r^   rc   r   r   ra   Š  s   ÿúLimits:z(il>t1col)&(t1col>sl)c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   ²  s   éûÿÿÿc                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   µ  s   ÿr¥   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   Ö  r   éÿÿÿÿé   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   Ø  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   Ú_disable_indexing_in_queriesrF   rd   rG   re   ri   r   rm   r   r   rj   ÚiterrowsrE   rl   Ú_enable_indexing_in_queries©r-   r4   r6   r   r   rp   rq   r   rc   r   Útest09a  s|    




ÿ

ÿÿ
ÿ
ÿzSelectValuesTestCase.test09ac                    sÎ  t rtdd td| jj  | jjj}| jjj}| ¡  t	| j
 t	| j|jj}|  |¡ d}|  | |¡ ¡ dd |j|ddd	D }fd
d| dd¡D }t rÔtd tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|ddddD } fdd| ddd¡D }t rptd tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|ddd	D } fdd| dd¡D }t rtd tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|ddddD }fdd| ddd¡D }t r¢td tdt| tdt| |  t|t|¡ |  ||¡ | ¡  dS )z+Checking non-indexed where() (float flavor)r[   r\   zRunning %s.test09b...r¢   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ý  r   z0SelectValuesTestCase.test09b.<locals>.<listcomp>r   é   r¯   c                    s    g | ]}|d   k r|d  qS r   r   r^   rs   r   r   ra   ÿ  s   ÿrt   rg   rh   r   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   r·   r³   c                    s0   g | ](} |d    k r krn q|d  qS r   r   r^   rc   r   r   ra     s   ÿr   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     s   r¶   c                    s0   g | ](} |d    kr krn q|d  qS r   r   r^   rc   r   r   ra     s   ÿr¥   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   *  r   r   rž   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ,  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   r¹   rI   rd   re   ri   r   rm   r   r   rj   rº   rE   rl   r»   rŒ   r   rc   r   Útest09bæ  sz    





ÿ
ÿ
ÿ
ÿ
ÿ
zSelectValuesTestCase.test09bc                    s&  t rtdd td| jj  | jjj}| jjj}| ¡  t	| j
 d¡}t	| j d¡ |jj}|  |¡ d}|  | |¡ ¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rötd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|dd	ddD } fdd| dd	d¡D }| ¡  | ¡  t r¢td|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|ddddD } fdd| ddd¡D }| ¡  | ¡  t rNtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|dd	ddD } fdd| dd	d¡D }| ¡  | ¡  t rútd|  tdt| tdt| |  t|t|¡ |  ||¡ | ¡  dS )zJCheck non-indexed where() w/ ranges, changing step
        (string flavor)r[   r\   zRunning %s.test09c...r7   r¥   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   R  r   z0SelectValuesTestCase.test09c.<locals>.<listcomp>r   r·   rž   r³   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   T  s   ÿrµ   rg   rh   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   d  r   rŸ   r#   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   f  s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   v  r   éýÿÿÿé   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   x  s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra     r   é,  c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra     s   ÿN)r   r&   r/   r   r(   r)   r4   r6   r¹   rF   rd   rG   re   ri   r   rm   r   r   rj   rº   rk   rE   rl   r»   ©r-   r4   r6   rd   r   r   rp   rq   r   rs   r   Útest09c:  s    



ÿÿÿÿzSelectValuesTestCase.test09cc                    s  t rtdd td| jj  | jjj}| jjj}| ¡  t	| j
}t	| j |jj}|  |¡ d}|  | |¡ ¡ dd |j|ddd	d
D } fdd| ddd	¡D }| ¡  | ¡  t rêtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|dddd
D } fdd| ddd¡D }| ¡  | ¡  t rtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|dddd
D } fdd| ddd¡D }| ¡  | ¡  t rBtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡ ¡ dd |j|dddd
D } fdd| ddd¡D }| ¡  | ¡  t rîtd|  tdt| tdt| |  t|t|¡ |  ||¡ | ¡  dS )zJChecking non-indexed where() w/ ranges, changing step
        (int flavor)r[   r\   zRunning %s.test09d...ú	t3col>=slc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   Ž  r   z0SelectValuesTestCase.test09d.<locals>.<listcomp>r   r·   rž   r³   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ¶  s   ÿrµ   rg   rh   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   Æ  r   rŸ   r#   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   È  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   Ø  r   rÀ   rÁ   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   Ú  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ê  r   rÂ   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ì  s   ÿN)r   r&   r/   r   r(   r)   r4   r6   r¹   r   rd   re   ri   r   rm   r   r   rj   rº   rk   rE   rl   r»   ©r-   r4   r6   rd   Út3colr   rp   rq   r   rs   r   Útest09d  s    





ÿÿÿÿzSelectValuesTestCase.test09dc                    sü  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ dd |j|dd	d
D }fdd| dd	¡D }| ¡  | ¡  t rêtd  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddddD } fdd| ddd¡D }| ¡  | ¡  t r¢td  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddddD } fdd| ddd¡D }| ¡  | ¡  t rntd  td| td| tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddd
D } fdd| dd¡D }| ¡  | ¡  t r"td  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddd dD }fd!d| ddd ¡D }| ¡  | ¡  t rØtd  tdt| tdt| |  t|t|¡ |  ||¡ d"S )#z4Checking indexed where() with ranges (string flavor)r[   r\   zRunning %s.test10a...r7   r£   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra     s   z0SelectValuesTestCase.test10a.<locals>.<listcomp>r   r#   r¯   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra     s   rµ   rg   rh   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   )  s   r²   r!   r³   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   -  s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   A  s   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   E  s   ÿzSelection results (indexed):rf   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   [  s   r¶   c                    s0   g | ](} |d    k r k rn q|d  qS r]   r   r^   rc   r   r   ra   ^  s   ÿr¥   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   r  s   r·   rž   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   v  s   ÿN©r   r&   r/   r   r(   r)   r4   r6   rF   rd   rG   re   ri   r   r   r   r   r   rj   rº   rk   rE   rl   rŒ   r   rc   r   Útest10aþ  sè    



ÿÿÿ

ÿ
ÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ


ÿÿÿ
ÿ
ÿÿ
ÿÿ
ÿzSelectValuesTestCase.test10ac                    s$  t rtdd td| jj  | jjj}| jjj}t| j	 t| j
|jj}d}|  | |¡t|jgk¡ dd |j|ddd	D }fd
d| dd¡D }| ¡  | ¡  t rÞtd  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddddD } fdd| ddd¡D }| ¡  | ¡  t rtd  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddd	D } fdd| dd¡D }| ¡  | ¡  t rJtd  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddddD }fdd| ddd¡D }| ¡  | ¡  t r td  tdt| tdt| |  t|t|¡ |  ||¡ dS )z1Checking indexed where() with ranges (int flavor)r[   r\   zRunning %s.test10b...z	t3col<=slc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     s   z0SelectValuesTestCase.test10b.<locals>.<listcomp>r   r#   r¯   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra     s   ÿrµ   rg   rh   z(il<=t3col)&(t3col<=sl)c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   ±  s   r²   r³   c                    s0   g | ](} |d    kr krn q|d  qS r   r   r^   rc   r   r   ra   µ  s   ÿz(il<t3col)&(t3col<sl)c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   É  s   r¶   c                    s0   g | ](} |d    k r k rn q|d  qS r   r   r^   rc   r   r   ra   Ì  s   ÿrÅ   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   à  r   r!   r·   rž   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   â  s   ÿN©r   r&   r/   r   r(   r)   r4   r6   r   rd   re   ri   r   r   r   r   r   rj   rº   rk   rE   rl   )r-   r4   r6   rÇ   r   rp   rq   r   rc   r   Útest10b  s°    





ÿÿÿ

ÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿ
ÿÿÿzSelectValuesTestCase.test10bc                    s4  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡}t| j 
d¡ |jj}d}|  | |¡t|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rîtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dd	ddD } fdd| dd	d¡D }| ¡  | ¡  t r€td|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddddD } fdd| ddd¡D }| ¡  | ¡  t rZtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dd	ddD } fdd| dd	d¡D }| ¡  | ¡  t rtd|  tdt| tdt| |  t|t|¡ |  ||¡ dS )zKChecking indexed where() with ranges, changing step (string
        flavor)r[   r\   zRunning %s.test10c...r7   r¥   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra     r   z0SelectValuesTestCase.test10c.<locals>.<listcomp>r   r·   rž   r³   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra     s   ÿrµ   rg   rh   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra     r   rŸ   r#   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra     s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   .  r   rÀ   rÁ   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   0  s   ÿc                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   B  r   rÂ   c                    s    g | ]}|d   kr|d  qS r]   r   r^   rs   r   r   ra   D  s   ÿNrÉ   rÃ   r   rs   r   Útest10cï  s     



ÿÿÿ
ÿÿÿ
ÿÿÿ
ÿÿÿzSelectValuesTestCase.test10cc                    s(  t rtdd td| jj  | jjj}| jjj}t| j	}t| j
 |jj}d}|  | |¡t|jgk¡ dd |j|ddd	d
D } fdd| ddd	¡D }| ¡  | ¡  t râtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dddd
D } fdd| ddd¡D }| ¡  | ¡  t rtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dddd
D } fdd| ddd¡D }| ¡  | ¡  t rNtd|  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dddd
D } fdd| ddd¡D }| ¡  | ¡  t rtd|  tdt| tdt| |  t|t|¡ |  ||¡ dS )z@Checking indexed where() with ranges, changing step (int flavor)r[   r\   zRunning %s.test10d...rÅ   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   g  r   z0SelectValuesTestCase.test10d.<locals>.<listcomp>r   r·   rž   r³   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   i  s   ÿrµ   rg   rh   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   {  r   rŸ   r#   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   }  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra     r   rÀ   rÁ   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra     s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   £  r   rÂ   c                    s    g | ]}|d   kr|d  qS r   r   r^   rs   r   r   ra   ¥  s   ÿNrË   rÆ   r   rs   r   Útest10dQ  s     





ÿÿÿ
ÿÿÿ
ÿÿÿ
ÿÿÿzSelectValuesTestCase.test10dc                    s   t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ | |¡}d|_|j|dd} fd	d
|D }| ¡  | ¡  t rÜtdt| tdt| |  t|t|¡ |  ||¡ dS )z>Checking selecting values from an Index via read_coordinates()r[   r\   zRunning %s.test11a...r7   rb   r   r   )Zfieldc                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   Ê  s   ÿz0SelectValuesTestCase.test11a.<locals>.<listcomp>rg   rh   N)r   r&   r/   r   r(   r)   r4   r6   rF   rd   rG   re   ri   r   r   r   r   r   r   r   Zread_coordinatesrk   rE   rl   )r-   r4   r6   ro   r   Zcoords1rp   rq   r   rc   r   Útest11a²  s2    



ÿÿ
zSelectValuesTestCase.test11ac                    sà  t rtdd td| jj  | jjj}| jjj}d}td| j	d | j
D ]ô}t| j
D ]ä}| jrpt | j	¡}n4| jdur t| j}||kr||; }| j| }n|}t||jd< t||jd< |d |jd< |d |jd< ||jd	< ||jd	< t| j	| d
 |jd< t| j	| d
 |jd< |j ¡  |j ¡  |d
7 }qXqJ| ¡  | ¡  |jj}|jj}	|jj}
|jj}|  |jj¡ |  |	jj¡ |  |
jj¡ |  |jj¡ t| j d¡ t| j d¡dd | d¡D } fdd|D }|  ¡  |  ¡  t r,td| tdt| tdt| |  !t|t|¡ |  !||¡ dd | d¡D }dd |D }t rtdt| tdt| |  !t|t|¡ |  !||¡ t"| j t"| j|jj}
dd | d¡D } fdd|D }|  ¡  |  ¡  t r&tdt| tdt| |  !t|t|¡ |  !||¡ t| j t| jdd | d¡D } fdd|D }|  ¡  |  ¡  t rŽtdt| tdt| |  !t|t|¡ |  !|  ¡ |  ¡ ¡ dS )z;Checking selecting values after a Table.append() operation.r[   r\   zRunning %s.test12a...r   r   Nr   r   r   r!   r   r7   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   	  r   z0SelectValuesTestCase.test12a.<locals>.<listcomp>rb   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   
	  s   ÿrf   rg   rh   c                 S   s   g | ]}|d  qS rw   r   r^   r   r   r   ra   	  r   rx   c                 S   s    g | ]}|d  du r|d  qS ry   r   r^   r   r   r   ra   	  r   c                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   $	  r   z(il<=t1var3)&(t1var3<=sl)c                    s0   g | ](} |d    kr krn q|d  qS r   r   r^   rc   r   r   ra   &	  s   ÿc                 S   s   g | ]}|d  qS r   r   r^   r   r   r   ra   8	  r   z(il<=t1var4)&(t1var4<=sl)c                    s0   g | ](} |d    kr krn q|d  qS r   r   r^   rc   r   r   ra   :	  s   ÿ)#r   r&   r/   r   r(   r)   r4   r6   rA   r@   rB   r:   rC   rD   rE   rF   rH   rI   rJ   rK   ri   r   r   r   r   r©   ÚindexZdirtyrd   rG   re   rj   rk   rl   r   )r-   r4   r6   rT   rU   rV   rW   rX   ro   r|   Zt1var3Zt1var4rp   rq   r   rc   r   Útest12aÔ  sª    








ÿ



ÿ


ÿzSelectValuesTestCase.test12ac                    sÌ  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rðtd  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dd	ddD } fdd| dd	d¡D }| ¡  | ¡  t rštd  tdt| tdt| |  t|t|¡ |  ||¡ dS )z+Checking repeated queries (checking caches)r[   r\   zRunning %s.test13a...r7   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   Z	  s   z0SelectValuesTestCase.test13a.<locals>.<listcomp>r   r²   r!   r³   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   ^	  s   ÿrµ   rg   rh   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   r	  s   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   v	  s   ÿNrÉ   rŒ   r   rc   r   Útest13aF	  sh    



ÿÿ
ÿÿÿ
ÿÿ
ÿÿÿzSelectValuesTestCase.test13ac                    sÌ  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rðtd  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dd	ddD } fdd| dd	d¡D }| ¡  | ¡  t rštd  tdt| tdt| |  t|t|¡ |  ||¡ dS )z9Checking repeated queries, varying step (checking caches)r[   r\   zRunning %s.test13b...r7   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   	  s   z0SelectValuesTestCase.test13b.<locals>.<listcomp>r   r²   r!   r³   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   	  s   ÿrµ   rg   rh   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   ±	  s   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   µ	  s   ÿNrÉ   rŒ   r   rc   r   Útest13b	  sh    



ÿÿ
ÿÿÿ
ÿÿ
ÿÿÿzSelectValuesTestCase.test13bc                    sÌ  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rðtd  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|ddd	dD } fdd| ddd	¡D }| ¡  | ¡  t rštd  tdt| tdt| |  t|t|¡ |  ||¡ dS )z5Checking repeated queries, varying start, stop, step.r[   r\   zRunning %s.test13c...r7   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   Ø	  s   z0SelectValuesTestCase.test13c.<locals>.<listcomp>r   r!   r   r³   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   Û	  s   ÿrµ   rg   rh   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   ï	  s   rŸ   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   ò	  s   ÿNrÉ   rŒ   r   rc   r   Útest13cÄ	  s`    



ÿÿÿÿ
ÿÿÿÿzSelectValuesTestCase.test13cc                    sÌ  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ dd |j|dd	d	d
D } fdd| dd	d	¡D }| ¡  | ¡  t rðtd  tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dd	d	d
D } fdd| dd	d	¡D }| ¡  | ¡  t rštd  tdt| tdt| |  t|t|¡ |  ||¡ dS )zLChecking repeated queries, varying start, stop, step (another
        twist)r[   r\   zRunning %s.test13d...r7   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   
  s   z0SelectValuesTestCase.test13d.<locals>.<listcomp>r   r!   r³   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   
  s   ÿrµ   rg   rh   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   .
  s   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   1
  s   ÿNrÉ   rŒ   r   rc   r   Útest13d
  s`    



ÿÿÿÿ
ÿÿÿÿzSelectValuesTestCase.test13dc                    sØ  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rðtd  tdt| tdt| |  t|t|¡ |  ||¡ |jj}d}|  | |¡t|j|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rŽtd  tdt| tdt| |  t|t|¡ |  ||¡ dS )ú2Checking repeated queries, with varying condition.r[   r\   zRunning %s.test13e...r7   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   T
  s   z0SelectValuesTestCase.test13e.<locals>.<listcomp>r   r#   r!   r³   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   X
  s   ÿrµ   rg   rh   ú%(il<=t1col)&(t1col<=sl)&(t2col==True)c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   m
  s   c                    s<   g | ]4} |d    kr krn q|d du r|d  qS ©r   r   Tr   r^   rc   r   r   ra   q
  s   (ÿN)r   r&   r/   r   r(   r)   r4   r6   rF   rd   rG   re   ri   r   r   r   r   r   rj   rº   rk   rE   rl   r   ©r-   r4   r6   r   r   rp   rq   Út2colr   rc   r   Útest13e@
  sf    



ÿÿ
ÿÿÿÿÿþÿzSelectValuesTestCase.test13ec                    s¶  t rtdd td| jj  | jjj}| jjj}|jj	 
¡  |jj	 
¡  t| j d¡t| j d¡|jj}|jj	}|  |¡ d}|  | |¡t|jgk¡ dd |j|dd	d
dD }fdd| dd	d
¡D }| ¡  | ¡  t rtd tdt| tdt| |  t|t|¡ |  ||¡ d}|  | |¡t|jgk¡ dd |j|dd	d
dD }fdd| dd	d
¡D }| ¡  | ¡  t rÔtd tdt| tdt| |  t|t|¡ |  ||¡ d d}|  | |¡t|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rtd tdt| tdt| |  t|t|¡ |  ||¡ dS )rÖ   r[   r\   zRunning %s.test13f...r7   r×   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   
  r   z0SelectValuesTestCase.test13f.<locals>.<listcomp>r   r#   r!   r³   c                    s<   g | ]4} |d    kr krn q|d du r|d  qS rØ   r   r^   rc   r   r   ra   
  s   (ÿrµ   rg   rh   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   °
  r   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   ²
  s   ÿTz)(il<=t1col)&(t1col<=sl)&(t2col==constant)c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   Å
  r   c                    s<   g | ]4}|d    kr krn q|d  kr|d  qS )r   r   r   r^   ©Zconstantrd   re   r   r   ra   Ç
  s   (ÿN)r   r&   r/   r   r(   r)   r4   r6   ri   r   Zremove_indexrF   rd   rG   re   r   rm   r   r   r   r   rj   rº   rk   rE   rl   )r-   r4   r6   r   rÚ   r   rp   rq   r   rÜ   r   Útest13f
  s    




ÿÿÿÿ
ÿÿÿ
ÿÿÿ zSelectValuesTestCase.test13fc                    s  t rtdd td| jj  | jjj}| jjj}t| j	 
d¡ t| j 
d¡|jj}d}|  | |¡t|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rðtd  tdt| tdt| |  t|t|¡ |  ||¡ t| j	d
  
d¡t| jd  
d¡  |jj}|  |¡ d}|  | |¡t|jgk¡ dd |j|dd	d
dD } fdd| dd	d
¡D }| ¡  | ¡  t rätd  tdt| tdt| |  t|t|¡ |  ||¡ dS )z1Checking repeated queries, with different limits.r[   r\   zRunning %s.test13g...r7   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra   è
  r   z0SelectValuesTestCase.test13g.<locals>.<listcomp>r   r#   r!   r³   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra   ê
  s   ÿrµ   rg   rh   r   c                 S   s   g | ]}|d  qS r]   r   r^   r   r   r   ra      r   c                    s0   g | ](} |d    kr krn q|d  qS r]   r   r^   rc   r   r   ra     s   ÿN)r   r&   r/   r   r(   r)   r4   r6   rF   rd   rG   re   ri   r   r   r   r   r   rj   rº   rk   rE   rl   r   rm   rÙ   r   rc   r   Útest13gÔ
  sf    



ÿÿÿÿÿ

ÿÿÿzSelectValuesTestCase.test13g)2r   r   r   r>   r1   r2   r3   r5   rL   r:   rD   rO   r%   r+   rr   ru   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Ï   rÑ   rÒ   rÓ   rÔ   rÕ   rÛ   rÝ   rÞ   Ú__classcell__r   r   r.   r   r    %   s^   	>IHJNNNLNbbbca^gTbb jba"r??=?@Tr    c                   @   s4   e Zd ZeZdZdZed ZeZdZ	eZ
dZeZdS )ÚSV1aTestCaser!   r   r   N©r   r   r   Úsmall_blocksizesrN   r5   rL   Ússr@   rO   rB   rd   re   r   r   r   r   rà     s   rà   c                   @   s,   e Zd ZeeddZed d Zed ZdS )ÚSV1bTestCaser!   ©Zmemlevelr   i   rŸ   N©r   r   r   r   ÚminRowIndexrN   r5   rL   r   r   r   r   rä     s   rä   c                   @   s<   e Zd ZeZdZdZed Zed d ZdZ	dZ
dZdZdS )ÚSV2aTestCaser   r!   r   Nrá   r   r   r   r   rè   "  s   rè   c                   @   s,   e Zd ZeeddZed d Zed ZdS )ÚSV2bTestCaser!   rå   r   é   é   Nræ   r   r   r   r   ré   .  s   ré   c                   @   s<   e Zd ZeZdZdZed Zed d ZdZ	dZ
dZdZdS )ÚSV3aTestCaser   rž   rŸ   r!   r   Nrá   r   r   r   r   rì   4  s   rì   c                   @   s    e Zd ZeeddZdZdZdS )ÚSV3bTestCaser!   rå   rž   é	   Nræ   r   r   r   r   rí   @  s   rí   c                   @   s4   e Zd ZeZdZed Zed ZdZdZ	dZ
eZdS )ÚSV4aTestCaser#   r   rž   r   r!   N)r   r   r   râ   rN   rL   rã   r@   rO   rB   rd   re   r   r   r   r   rï   H  s   rï   c                   @   s    e Zd ZeeddZdZdZdS )ÚSV4bTestCaser!   rå   éô  r   Nræ   r   r   r   r   rð   T  s   rð   c                   @   s0   e Zd ZeZed Zed ZdZdZdZ	eZ
dS )ÚSV5aTestCaser   rŸ   r   r!   N)r   r   r   râ   rN   rã   r@   rO   rB   rd   re   r   r   r   r   rò   Z  s   rò   c                   @   s   e Zd ZeeddZdS )ÚSV5bTestCaser!   rå   N©r   r   r   r   rç   rN   r   r   r   r   ró   d  s   ró   c                   @   s@   e Zd ZeZed Zed d ZdZed Zed Z	dZ
eZdS )ÚSV6aTestCaser   rŸ   r!   r   rž   r·   N)r   r   r   râ   rN   rã   r@   rO   ÚcsrB   rd   re   r   r   r   r   rõ   h  s   rõ   c                   @   s   e Zd ZeeddZdS )ÚSV6bTestCaser!   rå   Nrô   r   r   r   r   r÷   s  s   r÷   c                   @   sD   e Zd ZdZeZed Zed d ZdZed Z	e	d Z
dZeZdS )ÚSV7aTestCaser!   r   rŸ   rž   r   éöÿÿÿN©r   r   r   r:   râ   rN   rã   r@   rO   rö   rB   rd   re   r   r   r   r   rø   w  s   rø   c                   @   s   e Zd ZeeddZdS )ÚSV7bTestCaser!   rå   Nrô   r   r   r   r   rû     s   rû   c                   @   sL   e Zd ZdZdZeZed Zed d ZdZ	ed Z
e
d ZdZed ZdS )ÚSV8aTestCaser   r!   r   rŸ   rž   r#   N)r   r   r   r:   r5   râ   rN   rã   r@   rO   rö   rB   rd   re   r   r   r   r   rü     s   rü   c                   @   s   e Zd ZdZeeddZdS )ÚSV8bTestCaser   r!   rå   N)r   r   r   r:   r   rç   rN   r   r   r   r   rý     s   rý   c                   @   sH   e Zd ZdZeZed Zed d ZdZed Z	e	d Z
dZed ZdS )	ÚSV9aTestCaser!   r   rŸ   rÁ   r   rž   r#   Nrú   r   r   r   r   rþ     s   rþ   c                   @   s   e Zd ZeeddZdS )ÚSV9bTestCaser!   rå   Nrô   r   r   r   r   rÿ   ¥  s   rÿ   c                   @   s8   e Zd ZdZeZdZdZed ZeZ	dZ
eZdZeZdS )ÚSV10aTestCaser!   r   r   N)r   r   r   r:   râ   rN   r5   rL   rã   r@   rO   rB   rd   re   r   r   r   r   r   ©  s   r   c                   @   s    e Zd ZeeddZdZdZdS )ÚSV10bTestCaser!   rå   rŸ   é   Nræ   r   r   r   r   r  ¶  s   r  c                   @   s<   e Zd Zg d¢ZeZdZdZed ZeZ	dZ
eZdZeZdS )ÚSV11aTestCase©
r!   é   r  r  r   r  r   r   rî   rŸ   r!   r   r   N©r   r   r   rD   râ   rN   r5   rL   rã   r@   rO   rB   rd   re   r   r   r   r   r  Œ  s   r  c                   @   sD   e Zd Zg d¢ZdZdZeeddZed Z	e	Z
dZe	ZdZe	ZdS )ÚSV11bTestCaser  r   r!   rå   r   N)r   r   r   rD   r5   rL   r   rç   rN   rã   r@   rO   rB   rd   re   r   r   r   r   r  Ì  s   r  c                   @   s<   e Zd Zg d¢ZeZdZdZed ZeZ	dZ
eZdZeZdS )ÚSV12aTestCase©
r   r   r!   rŸ   r   r   r!   r   rž   rî   r!   r   r   Nr  r   r   r   r   r  Ü  s   r  c                   @   sD   e Zd Zg d¢ZeeddZdZdZed Z	e	Z
dZe	ZdZe	ZdS )ÚSV12bTestCaser	  r!   rå   r   r   N©r   r   r   rD   r   rç   rN   r5   rL   rã   r@   rO   rB   rd   re   r   r   r   r   r
  í  s   r
  c                   @   s<   e Zd Zg d¢ZeZdZdZed ZeZ	dZ
eZdZeZdS )ÚSV13aTestCase©
r   r  r   r  rŸ   r!   r  r  r   r   rž   rŸ   r   r   Nr  r   r   r   r   r  þ  s   r  c                   @   sD   e Zd Zg d¢ZeeddZdZdZed Z	e	Z
dZe	ZdZe	ZdS )	ÚSV13bTestCaser  r!   rå   rŸ   r#   r   r   Nr  r   r   r   r   r    s   r  c                   @   sD   e Zd Zg d¢ZeZdZdZed ZeZ	dZ
ed ZeZdZdZdS )	ÚSV14aTestCaser  r   rŸ   r   rž   r¶   rñ   N)r   r   r   rD   râ   rN   r5   rL   rã   r@   rO   rö   rB   rd   re   r   r   r   r   r    s   r  c                   @   sT   e Zd Zg d¢ZeeddZdZdZed Z	e	Z
dZdZdZed Ze	e d Zd	S )
ÚSV14bTestCaser  r!   rå   rî   r#   r   r   rž   N)r   r   r   rD   r   rç   rN   r5   rL   rã   r@   rO   rB   rd   rö   re   r   r   r   r   r  &  s   r  c                   @   sH   e Zd ZdZdZeZed Zed d ZdZ	ed Z
e
d ZdZeZdS )	ÚSV15aTestCaser!   é·   r   rŸ   r   rž   rù   N)r   r   r   r:   r0   râ   rN   rã   r@   rO   rö   rB   rd   re   r   r   r   r   r  4  s   r  c                   @   sP   e Zd ZdZdZeeddZed Zed d Z	dZ
ed Zed ZdZe	ZdS )	ÚSV15bTestCaser!   i]  rå   r   rŸ   rž   rù   N)r   r   r   r:   r0   r   rç   rN   rã   r@   rO   rö   rB   rd   re   r   r   r   r   r  F  s   r  c                       sl   e Zd ZdZej d¡ e d¡ G dd dejZ	 fddZ
 fddZd	d
 Zdd Zdd Z  ZS )ÚLastRowReuseBuffersiÅ  r!   c                   @   s   e Zd Ze ¡ ZdS )zLastRowReuseBuffers.RecordN)r   r   r   r<   ZInt16ColÚid1r   r   r   r   ÚRecord_  s   r  c                    s$   t t|  ¡  t d¡| _d | _d S )Nú.h5)r$   r  r%   ÚtempfileÚmktempÚh5fnamer(   r,   r.   r   r   r%   b  s    zLastRowReuseBuffers.setUpc                    s@   | j d ur| j  ¡  tj | j¡r.t | j¡ tt|  	¡  d S ©N)
r(   ÚcloseÚosÚpathÚexistsr  Úremover$   r  ÚtearDownr,   r.   r   r   r!  g  s
    

zLastRowReuseBuffers.tearDownc              
   C   sÎ   t j| jddd| _| jjdd| jt  d¡d}tj 	dd	| j
¡}| |g¡ |jj ¡  t| j
D ]d}t 	d| j
d ¡}|| }| d
| ¡}|  t|dd||||f ¡ |  ||v d|||f ¡ qdd S )NÚwé@   ©Znode_cache_slotsú/Útabler!   ©rS   r   é   ú	id1 == %súidx--> %s %s %s %súnrow not found: %s != %s, %s©r<   Ú	open_filer  r(   r?   r  r=   rŠ   r:   ÚrandintÚnelemrJ   ri   r  rM   rA   r   ZassertGreaterrE   r   ©r-   Ztar  rU   ÚnrowÚvalueÚidxr   r   r   Útest00_lrucachen  s$    ÿÿþz#LastRowReuseBuffers.test00_lrucachec              
   C   sÎ   t j| jddd| _| jjdd| jt  d¡d}tj 	dd| j
¡}| |g¡ |jj ¡  t| j
D ]d}t 	d| j
d ¡}|| }| d	| ¡}|  t|dd
||||f ¡ |  ||v d|||f ¡ qdd S )Nr"  r   r$  r%  r&  r!   r'  r(  r)  r*  r+  r,  r0  r   r   r   Útest01_nocache  s$    ÿÿþz"LastRowReuseBuffers.test01_nocachec              
   C   sÎ   t j| jddd| _| jjdd| jt  d¡d}tj 	dd	| j
¡}| |g¡ |jj ¡  t| j
D ]d}t 	d| j
d ¡}|| }| d
| ¡}|  t|dd||||f ¡ |  ||v d|||f ¡ qdd S )Nr"  iÀÿÿÿr$  r%  r&  r!   r'  r   r(  r)  r*  r+  r,  r0  r   r   r   Útest02_dictcache  s$    ÿÿþz$LastRowReuseBuffers.test02_dictcache)r   r   r   r/  rŠ   r:   r0   r<   ÚIsDescriptionr  r%   r!  r4  r5  r6  rß   r   r   r.   r   r  X  s   
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ÿ   r  r  r
  r  r  r  c                   @   s   e Zd ZdZdS )ÚUltraLightITableMixinZ
ultralightN©r   r   r   r'   r   r   r   r   r8  Œ  s   r8  c                   @   s   e Zd ZdZdS )ÚLightITableMixinZlightNr9  r   r   r   r   r:  À  s   r:  c                   @   s   e Zd ZdZdS )ÚMediumITableMixinZmediumNr9  r   r   r   r   r;  Ä  s   r;  c                   @   s   e Zd ZdZdS )ÚFullITableMixinZfullNr9  r   r   r   r   r<  È  s   r<  )Z
UltraLightZLightZMediumZFullZNormalZHeavyc                  c   s`   t D ]V} tt D ]H}d| d tt d |f }d|  |f}tt|tv d}|||fV  qqd S )Nz%sI%s%sr   z%sITableMixin)r	   )ÚckindsÚnormal_testsÚheavy_testsÚ
testlevelsr	   ÚdictÚbool)ZckindZctestZ	classnameÚ
cbasenamesÚ	classdictr   r   r   Ú
iclassdataÕ  s    rE  c                 c   s   | ]}t |V  qd S r  )Úeval)r_   Zcbaser   r   r   Ú	<genexpr>ã  r   rG  z%s = class_c                   @   s   e Zd ZdZdd ZdS )ÚBuffersizeMultipleChunksizer"  c              	   C   sà  t j d¡ d}d}|| }t j|fg d¢d}t  |¡|d< t jjdd|d	|d
< t j |¡|d< | j dd¡}| jj	|dt
t ¡ t ¡ tjddddd}| |¡ |  d¡ t  |d
 ¡d }t  |d
 ¡d }t  ||g¡}	d||f }
trtd|
  | jjjj}t  | |
¡d
 ¡}t j ||	¡ trPtd td||	f  tr^td |jj ¡  trxtd t|D ]Z}|j|
|| |d | d}t  |d
 ¡}t j t  |¡|	¡ trtd||	f  qd S )Nr   i`®
 iPÃ  ))rÐ   Úi8)ÚorI  )r2  Zf8)ZdtyperÐ   ià±ÿÿihÅÿÿ)ÚsizerJ  r2  r%  Úfoor&  r   )Úshape)rÐ   rJ  r2  i )Zexpectedrowsr8   r   r!   z((o == %s) | (o == %s))zselecting values: %szselect entire table:zresult: %s	expected: %szindex the column ozselect via chunksr¯   )rŠ   r:   r0   ZzerosZaranger.  Zrandnr(   Zcreate_groupr?   rA  r<   ZInt64Colr   rJ   rP   ÚuniqueZarrayr   r&   r)   rL  r&  Z
read_whereZtestingZassert_almost_equalri   rJ  rM   rA   )r-   Únrö   ZnchunksZarrZnoder&  Zv1Zv2ÚresZselectorÚresultrU   r   r   r   Útest01ì  sV    
ÿ
ýý

z"BuffersizeMultipleChunksize.test01N)r   r   r   Z	open_moderR  r   r   r   r   rH  é  s   rH  c                   @   s   e Zd Zdd ZdS )ÚSideEffectNumPyQuicksortc           
      C   sà   t d}t d¡}t ||¡ t |d¡}|jj}|jj	d d  }t
t |dk¡d }|jddd}|jj	 ¡  t
d	d
 | d¡D }trªt|| }	tdt|	|	 |  t|t|¡ | ¡  tj	 |¡rÜt |¡ d S )Nz
bug-idx.h5r  r8   r  r   r6   iª
  )Znewnamer5   c                 s   s   | ]}|j V  qd S r  )r1  )r_   Úrr   r   r   rG  .  r   z2SideEffectNumPyQuicksort.test01.<locals>.<genexpr>z	path == 6zndiff:)r   r  r  r<   Z	copy_filer-  r)   r&  ri   r  ÚsetrŠ   rj   ÚcopyrM   r   Úsortedr&   rE   rl   r  r  r  r   )
r-   Zbug_fileZtmp_fileZh5rJ  ZvalsZnpvalsÚtZindexedZdiffsr   r   r   rR  "  s"    
zSideEffectNumPyQuicksort.test01N)r   r   r   rR  r   r   r   r   rS     s   rS  c                  C   s   t  ¡ } d}t|D ]}t D ]D}t|d }|jsJt  |¡}|  |¡ qtrt  |¡}|  |¡ q|  t  t¡¡ |  t  t	¡¡ |  t  t
¡¡ q| S )Nr!   r   )r
   Z	TestSuiterA   rE  rF  r	   Z	makeSuiteZaddTestr  rH  rS  )ZtheSuiteZniterrO  ZcdataÚclass_Zsuite_r   r   r   Úsuite=  s    


rZ  Ú__main__)ZdefaultTest)Vr  r:   r  rŠ   r<   r   r   r   r   Ztables.idxutilsr   Ztables.testsr   Ztables.tests.commonr   r	   r
   r   r   ZTestCaseÚ	frozensetr   r0   râ   rç   r7  r   ZTempFileMixinr    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  r  r  r  r  r  r  r>  r?  r8  r:  r;  r<  r=  r@  rE  ZcnamerC  ZcdictÚtupleZcbasesÚtyperY  ÚexecrH  rS  rZ  r   ÚsysZ
parse_argvÚargvZprint_versionsÚmainr   r   r   r   Ú<module>   sŽ   
                      
P7
