a
    =_=                    @   s  d dl Z d dlZd dlmZ d dlZd dlmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ G d	d
 d
ejZeddddedddgddeddedde
 e	 e e
 edd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#e$ej% d*G d+d, d,eZ&e$ej' d-G d.d/ d/eZ(e$ej) d0G d1d2 d2eZ*G d3d4 d4eZ+G d5d6 d6eZ,G d7d8 d8eZ-G d9d: d:ejeZ.G d;d< d<e.Z/G d=d> d>e.Z0G d?d@ d@e.Z1G dAdB dBejZ2G dCdD dDejeZ3G dEdF dFejeZ4G dGdH dHejZ5G dIdJ dJejeZ6G dKdL dLe6Z7G dMdN dNe6Z8G dOdP dPejeZ9G dQdR dRe9Z:G dSdT dTe9Z;G dUdV dVe9Z<G dWdX dXe9Z=G dYdZ dZejeZ>G d[d\ d\e>Z?G d]d^ d^e>Z@G d_d` d`e>ZAG dadb dbe>ZBdcdd ZCeDdekreEe jF eG  ejHdddf dS )g    N)rec)Col	StringColIntColFloatColInt16Col	UInt16Col
Float32Col)common)allequal)unittest)PyTablesTestCase)descr_from_dtypec                   @   sx   e Zd ZeddddZedddgddZeddd	Zed
dd	Ze	ddZ
eddZeddZeddZedddZdS )Record          itemsizedfltshape   abcd   efghr   r      r   r   r   r   r   r   @@   r      e)r   r   N)__name__
__module____qualname__r   var0var1r   var1_var2r   var3r   var4r	   var5r   var6var7 r0   r0   9lib/python3.9/site-packages/tables/tests/test_tablesMD.pyr      s   



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ejedddZejedddgdZejedddZ	ej
d	d
ddZejedddZejedddZejedddZejedddZejedddZdS )RecordDTZ2S4r   r   )ZS4r   r   r   Z2i4r   i4r   r   )r   r   Zi2r   Z2f8r    Zf4r!   z()u2r"   ZS1r#   N)r$   r%   r&   r   Z
from_dtypenpdtyper'   r(   r)   Zfrom_sctyper*   r+   r,   r-   r.   r/   r0   r0   r0   r1   r3   5   s   r3   c                       s   e Zd ZdZdZdZdZdZdZe	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  ZS )BasicTestCasewThis is the table titled      r   zlib   c                    s.   t t|   | jj| _|   | j  d S N)superr7   setUph5fileroot	rootgrouppopulateFilecloseself	__class__r0   r1   r@   O   s    
zBasicTestCase.setUpc                 C   s~  | j }|d }g }t| jD ]B}g }d| j|  gd }|| d| j|  gd gd }|| |df}|| |dfdf}	||	 || j }
||
 t|d tjr|t|t|| g n|t| t|d tjr|t	t|fd  n|t| ||
d	? d
@ |
d	> d@   |d d d }|| |t
| qtjj	||j| jd| _d S )Nr   %04dr   r   r   r,   r-   r            )r6   r   )recordtemplaterangeexpectedrowsappendmaxshort
isinstancer5   ndarrayfloatarraytupler   r6   record)rG   rY   rowZbuflistiZtmplistr'   r(   r)   r*   r+   r/   r0   r0   r1   initRecArrayW   s8    






zBasicTestCase.initRecArrayc           
   
   C   s  | j }| jr|   tdD ]}tj| j| jd}|dk rDtj	}ndddtj	 }| j
j|dt| | j| j|| j|d}| js|j}t| jD ]}d	| j|  }|d
|d< |d
|d< |d d
|d< |df|d< |dfdf|d< || j |d< t|d tjr,t|t|| g|d< nt||d< t|d tjrdtt|fd |d< nt||d< |d d? d@ |d d> d@  |d< |  q|  | j
|dt| }	|	}qd S )N   )Z	complevelcomplibr   biglittle)r`   r_   table)titlefiltersrQ   	byteorderrJ   asciir'   r(   rN   r/   r   r)   r   r*   r+   r,   r-   r   rK   rL   rM   r.   group)rC   recarrayinitr\   rP   tablesFilterscompressr^   sysrd   rA   create_tablestrrY   rb   rQ   rZ   encoderS   rT   r5   rU   rV   rW   rR   flushcreate_group)
rG   rf   jrc   rd   ra   rZ   r[   sgroup2r0   r0   r1   rD   z   sP    
zBasicTestCase.populateFilec           	         s  t | j| _| jdjt| jtr4| j nRt| jt	j
rZt| jj\}}|j n,t| jt	jr~t| j\}}|j n| jj g d}| |tj | |tj  fdd|D }| |fdd|D  | |fdd|D   fdd|D }| |fdd|D  | |fd	d|D  |D ]z}tjr~td
 | j tdj|  tdj|  | tj|  | j | tj|  | j qB| |tj |D ]8} | }j| }| |j|j | |j|j qdS )z2Checking table description and descriptive fields./table0r2   c                    s   g | ]} | j qS r0   r6   .0colnamecolumnsr0   r1   
<listcomp>   s   z4BasicTestCase.test00_description.<locals>.<listcomp>c                    s   g | ]} j | qS r0   )Z	coldtypesrw   vtblr0   r1   r{      r   c                    s   g | ]} j | qS r0   )Z	_v_dtypesr|   descr0   r1   r{      r   c                    s   g | ]} | j qS r0   )typerv   ry   r0   r1   r{      s   c                    s   g | ]} j | qS r0   )Zcoltypesr|   r~   r0   r1   r{      r   c                    s   g | ]} j | qS r0   )Z_v_typesr|   r   r0   r1   r{      r   zdflt-->zcoldflts-->zdesc.dflts-->N)rh   	open_fileh5fnamerA   get_nodedescriptionrT   rY   dictr5   rU   r   r6   Z_v_colobjectsrz   assertEquallistZcolnamesZ_v_namesr
   verboseprintr   ZcoldfltsZ_v_dflts
assertTrueZareArraysEqualZ_v_pathnamesr   )	rG   Zdescr_ZexpectedNamesZexpectedTypesr}   ZcolNameZexpectedColcolr0   )rz   r   r   r1   test00_description   sd    



z BasicTestCase.test00_descriptionc                 C   s^  t jr tdd td| jj  t| jd| _| j	d}d|_
dd | D }t jrtd	t| td
|jd|j td| tdt| | jd }dd | D d }| |d d |d d d |d d |d d d |d fdd||df t|d tjr6| t|d t|fd tj n| |d t| | t|d dS )zChecking table read and cuts.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_readTable...rrt   r]   c                 S   s0   g | ](}|d  d d dk r|d  d d qS r*   r   r;   r0   rw   r   r0   r0   r1   r{      s   z2BasicTestCase.test01_readTable.<locals>.<listcomp>zTable:Nrows in:Last record in table ==>$Total selected records in table ==> r   c                 S   s$   g | ]}|d  d d dk r|qS r   r0   r   r0   r0   r1   r{     r   rN   r'   r   r(   r)   r*   r/      0001   1r-   r   r;   N)r
   r   r   rI   r$   rh   r   r   rA   r   
nrowsinbufiterrowsrepr_v_pathnamenrowslenrQ   r   rT   r5   rU   r   r   rW   float32rV   rG   ra   resultr   r   r0   r0   r1   test01_readTable   s:    




zBasicTestCase.test01_readTablec              	   C   sn  t jr tdd td| jj  t| jd| _| j	d}d|_
dd | D }t jrtd	|jd
|j tdt tdt| |j}dd | D d }t|d tjr| t|d ttdfd tj | t|d ttdfd tj | t|d ttdfd tj | t|d ttdfd tj | t|d ttdfd tj | t|d tt|d fd tj n| |d t|d  | t|d dd | D }dd | D d }|d jjdkrJtd| jd  gd gd d}| t|d | td| jd  gd gd d}| t|d | td| jd  gd gd d}| t|d | td| jd  gd gd d}| t|d | td| jd  gd gd d}| t|d | tdd gd gd d}| t|d | n| |d d | t|d dS )z<Checking table read and cuts (multidimensional columns case)r   r   zRunning %s.test01b_readTable...r   rt   r]   c                 S   s(   g | ] }|d  d d dk r|d qS )r*   r   r;   r-   r0   r   r0   r0   r1   r{   %  r   z3BasicTestCase.test01b_readTable.<locals>.<listcomp>r   r   r   r   c                 S   s$   g | ]}|d  d d dk r|qS r   r0   r   r0   r0   r1   r{   +  r   rN   r-   r   r   r   r   
   r;   c                 S   s(   g | ] }|d  d d dk r|d qS )r*   r   r;   r(   r0   r   r0   r0   r1   r{   ?  r   c                 S   s$   g | ]}|d  d d dk r|qS r   r0   r   r0   r0   r1   r{   @  r   r(   SrJ   Z0001N)r
   r   r   rI   r$   rh   r   r   rA   r   r   r   r   r   r   r   rT   r5   rU   r   r   rW   rV   r   r   r6   charrQ   )rG   ra   Zresult1r   Zresult2ar0   r0   r1   test01b_readTable  sj    

"""""zBasicTestCase.test01b_readTablec                 C   s   t jr tdd td| jj  t| jd| _| j	d}t jrjtd|j
jj td|j
jdd j | |j
jj|j
jdd j dS )	z+Checking shape of multidimensional columns.r   r   zRunning %s.test01c_readTable...r   rt   zvar2 col shape:z
Should be:N)r
   r   r   rI   r$   rh   r   r   rA   r   colsr*   r   r   rG   ra   r0   r0   r1   test01c_readTableS  s    
zBasicTestCase.test01c_readTablec                 C   st  t j| jdd| _| jj| _tjr<tdd td| j	j
  | jd}|j}tjrtd|jd|j td	|jj td
|j t| jD ]}d| j|  }|d|d< |d|d< |d d|d< |df|d< |dfdf|d< || j |d< t|d tjr t|t|| g|d< nt||d< t|d tjrXtt|fd |d< nt||d< |  q|  dd | D }dd | D d }| jd }| |d d |d d d |d d |d d d |d fdd||df t|d tjr0| t |d tt|fd tj! n| |d t| | jdkrX| j}nd}| t"|d|  d S )!z4Checking whether appending record rows works or not.r   )moder   r   zRunning %s.test02_AppendRows...z/group0/table1zNrows in oldr   zRecord Format ==>zRecord Size ==>rJ   re   r'   r(   rN   r/   r   r)   r   r*   r+   r,   r-   r   c                 S   s0   g | ](}|d  d d dk r|d  d d qS r   r0   r   r0   r0   r1   r{     s   z3BasicTestCase.test02_AppendRows.<locals>.<listcomp>c                 S   s$   g | ]}|d  d d dk r|qS r   r0   r   r0   r0   r1   r{     r   r   r   r   r;   N)#rh   r   r   rA   rB   rC   r
   r   r   rI   r$   r   rZ   r   r   r   _v_nested_formatsZrowsizerP   
appendrowsrn   rS   rT   r5   rU   rV   rW   rR   ro   r   r   r   r   r   r   )rG   ra   rZ   r[   rr   r   r   addr0   r0   r1   test02_AppendRowsc  s`    





zBasicTestCase.test02_AppendRowsc                 C   s   t jr tdd td| jj  t| jd| _| j	d}dd |
 D }t jrtd|jd	|j td
|j td| tdt| | jd }t|
 d }| |d d d |d fd|f | t|d dS )z%Checking if table is endianess aware.r   r   zRunning %s.test03_endianess...r   z/group0/group1/table2c                 S   s    g | ]}|d  dk r|d qS )r+   r;   r*   r0   r   r0   r0   r1   r{     r   z2BasicTestCase.test03_endianess.<locals>.<listcomp>r   r   zOn-disk byteorder ==>r   z#Total selected records in table ==>r   rN   r(   r   r+   r   r;   N)r
   r   r   rI   r$   rh   r   r   rA   r   r   r   r   rd   r   rQ   r   r   r   r0   r0   r1   test03_endianess  s    


$zBasicTestCase.test03_endianess)r$   r%   r&   	open_moderb   rQ   r   rj   r^   r   rY   rg   rS   r@   r\   rD   r   r   r   r   r   r   __classcell__r0   r0   rH   r1   r7   C   s$   #5B&<@r7   c                   @   s   e Zd ZdZdS )BasicWriteTestCaseZ
BasicWriteN)r$   r%   r&   rb   r0   r0   r0   r1   r     s   r   c                   @   s(   e Zd ZdZeZdZdZdZdZ	dZ
dS )DictWriteTestCaseZ	DictWrite   r]   r   r   N)r$   r%   r&   rb   RecordDescriptionDictrY   r   r   startstopstepr0   r0   r0   r1   r     s   r   c                   @   s   e Zd Zd ZeZdS )RecordDTWriteTestCaseN)r$   r%   r&   rb   r3   rY   r0   r0   r0   r1   r     s   r   c                   @   s&   e Zd Zd ZedZdde_dS )NumPyDTWriteTestCase-(2,)S4,(2,2)S4,(2,)i4,(2,2)i4,i2,2f8,f4,i2,S1-var0,var1,var1_,var2,var3,var4,var5,var6,var7,N)	r$   r%   r&   rb   r5   r6   rY   splitnamesr0   r0   r0   r1   r     s   
r   c                   @   s$   e Zd ZdZejjdddddZdS )RecArrayOneWriteTestCaseZRecArrayOneWriteNr   r   r   formatsr   r   )r$   r%   r&   rb   r5   r   rW   rY   r0   r0   r0   r1   r     s   r   c                   @   s,   e Zd ZdZdZdZejjdddddZ	dS )RecArrayTwoWriteTestCaseZRecArrayTwoWriter:   r   Nz,(2,)a4,(2,2)a4,(2,)i4,(2,2)i4,i2,f8,f4,i2,a1r   r   
r$   r%   r&   rb   rQ   rg   r5   r   rW   rO   r0   r0   r0   r1   r     s   r   c                   @   s,   e Zd ZdZdZdZejjdddddZ	dS )RecArrayThreeWriteTestCaseRecArrayThreeWriter:   r   N.(2,)a4,(2,2)a4,(2,)i4,(2,2)i4,i2,2f8,4f4,i2,a1r   r   r   r0   r0   r0   r1   r     s   r   c                   @   s.   e Zd ZdZdZdZejjddddddZ	dS )	RecArrayAlignedWriteTestCaser   r:   r   Nr   r   T)r   r   r   Zalignedr   r0   r0   r0   r1   r     s   r   z'BLOSC compression library not availablec                   @   s   e Zd ZdZdZdZdS )CompressBloscTablesTestCaseZCompressBloscTablesr   ZbloscNr$   r%   r&   rb   rj   r^   r0   r0   r0   r1   r      s   r   z%LZO compression library not availablec                   @   s   e Zd ZdZdZdZdS )CompressLZOTablesTestCaseZCompressLZOTablesr   ZlzoNr   r0   r0   r0   r1   r     s   r   z'BZIP2 compression library not availablec                   @   s   e Zd ZdZdZdZdS )CompressBzip2TablesTestCaseZCompressBzip2Tablesr   Zbzip2Nr   r0   r0   r0   r1   r     s   r   c                   @   s   e Zd ZdZdZdZdS )CompressZLIBTablesTestCaseZCompressOneTablesr   r<   Nr   r0   r0   r0   r1   r     s   r   c                   @   s   e Zd ZdZdZeZdS )CompressTwoTablesTestCaseZCompressTwoTablesr   N)r$   r%   r&   rb   rj   r   rY   r0   r0   r0   r1   r     s   r   c                   @   s   e Zd ZdZdZdZdS )BigTablesTestCaseZ	BigTables  r:   N)r$   r%   r&   rb   rQ   r   r0   r0   r0   r1   r   $  s   r   c                       s   e Zd ZdZdZeZdZdZdZ	dZ
dZdZe
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   Z!S )+BasicRangeTestCaser8   r9   r=   r:   r   r;   r]   r   c                    s.   t t|   | jj| _|   | j  d S r>   )r?   r   r@   rA   rB   rC   rD   rE   rF   rH   r0   r1   r@   @  s    
zBasicRangeTestCase.setUpc              	   C   sX  | j }tdD ]B}| jj|dt| | j| jt| j	| j
d}|j}t| j
D ]}d| j
|  |d< |d d d d |d< ||d	< || j |d
< t|d tjrt|t|| g|d< nt||d< t|d tjrtt|fd |d< nt||d< |d
 d? d@ |d
 d> d@  |d< |  qR|  | j|dt| }|}qd S )Nr]   ra   )rb   rc   rQ   rJ   r(   r   rN   r/   r*   r+   r,   r-   r   rK   rL   rM   r.   rf   )rC   rP   rA   rl   rm   rY   rb   rh   ri   rj   rQ   rZ   rS   rT   r5   rU   rV   rW   rR   ro   rp   )rG   rf   rq   ra   rZ   r[   rs   r0   r0   r1   rD   H  s4    

zBasicRangeTestCase.populateFilec                    s  t  jd _ jd} j|_t j j j	
|j}ttt| } jr| j j j	}g }tt|D ]}|d | d d  jk rd j	k r||d | d d  qz|d | d d  jkrzd j	krz||d | d d  qzn jr| j j j	d}g }tt|D ]|}|| d d  jk rpd j	k rp||| d d  n:|| d d  jkr0d j	kr0||| d d  q0n^d j	k r fdd| j j j	D }n.d j	kr fdd| j j j	D } jdk r( j j }n j} jd u r\ jsJ jrT|d }	n j}	n  jdk rv j j }	n j}	 j|	k r j}	tjr(td	|jd
|j |r jrtd|d  n" jrtd|d  n
td|
 tdt| td| tdtt||	 j	 td||	 j	  |tt||	 j	  js js||	k rd j	k r fdd| j j j	D d }
 j jkrȈ |
d d tt j j j	d  n& |
d d tt||	 j	d  n||	krd j	kr fdd| j j j	D d }
 j jk rl |
d d tt j jpZd j	d  n, |
d d tt||	pd j	d   j  d S )Nr   rt   r*   r   c                    s2   g | ]*}|d  d d  j k r|d  d d qS r*   r   r   r   rF   r0   r1   r{     s   z2BasicRangeTestCase.check_range.<locals>.<listcomp>c                    s2   g | ]*}|d  d d  j kr|d  d d qS r   r   r   rF   r0   r1   r{     s   r   r   r   z"Last record *read* in recarray ==>rN   zLast value *read* in getCol ==>z%Last record *read* in table range ==>z$Total number of selected records ==>zSelected records:
z#Selected records should look like:
zstart, stop, step ==>c                    s*   g | ]"}|d  d d  j k r|d  qS r   r   r   rF   r0   r1   r{     s   c                    s*   g | ]"}|d  d d  j kr|d  qS r   r   r   rF   r0   r1   r{     s   )rh   r   r   rA   r   r   slicer   r   r   indicesr   r   r   rP   checkrecarrayreadrR   checkgetColr   rQ   r
   r   r   r   r   rE   )rG   ra   ZresrangeZ	reslengthrecarrayr   Znreccolumnstartrstoprr   r0   rF   r1   check_rangem  s    $ $$







zBasicRangeTestCase.check_rangec                 C   sL   t jr tdd td| jj  d| _d| _d| _| j| _	d| _
|   dS )	*Checking ranges in table iterators (case1)r   r   Running %s.test01_range...r   r]   r   r   Nr
   r   r   rI   r$   r   r   r   rQ   r   r   r   rF   r0   r0   r1   test01_range  s    
zBasicRangeTestCase.test01_rangec                 C   sP   t jr tdd td| jj  d| _d| _| jd | _d| _	d| _
|   dS )	r   r   r   r   r   r]   r   N)r
   r   r   rI   r$   r   r   rQ   r   r   r   r   rF   r0   r0   r1   test01a_range  s    
z BasicRangeTestCase.test01a_rangec                 C   sL   t jr tdd td| jj  d| _d| _d| _| j| _	d| _
|   dS )	z*Checking ranges in table iterators (case2)r   r   zRunning %s.test02_range...r         r]   Nr   rF   r0   r0   r1   test02_range  s    
zBasicRangeTestCase.test02_rangec                 C   sN   t jr tdd td| jj  | j| _d| _d| _| j| _	d| _
|   dS )z*Checking ranges in table iterators (case3)r   r   zRunning %s.test03_range...r   r   r   Nr
   r   r   rI   r$   rQ   r   r   r   r   r   r   rF   r0   r0   r1   test03_range  s    
zBasicRangeTestCase.test03_rangec                 C   sN   t jr tdd td| jj  | j| _d| _d| _| j| _	d| _
|   dS )z*Checking ranges in table iterators (case4)r   r   zRunning %s.test04_range...r   r   Nr   rF   r0   r0   r1   test04_range  s    
zBasicRangeTestCase.test04_rangec                 C   sL   t jr tdd td| jj  d| _d| _d| _| j| _	d| _
|   dS )	z*Checking ranges in table iterators (case5)r   r   zRunning %s.test05_range...r   r   r   r   Nr   rF   r0   r0   r1   test05_range&  s    
zBasicRangeTestCase.test05_rangec                 C   sL   t jr tdd td| jj  d| _d| _d| _| j| _	d| _
|   dS )z*Checking ranges in table iterators (case6)r   r   zRunning %s.test06_range...r]   r   r   Nr   rF   r0   r0   r1   test06_range6  s    
zBasicRangeTestCase.test06_rangec                 C   sN   t jr tdd td| jj  d| _d| _| j| _| j| _d| _	| 
  dS )z*Checking ranges in table iterators (case7)r   r   zRunning %s.test07_range...r   r]   r   Nr
   r   r   rI   r$   r   r   r   r   r   r   rF   r0   r0   r1   test07_rangeF  s    
zBasicRangeTestCase.test07_rangec                 C   sR   t jr tdd td| jj  d| _d| _| jd | _| j| _d| _	| 
  dS )z*Checking ranges in table iterators (case8)r   r   zRunning %s.test08_range...r   r]   r   Nr   rF   r0   r0   r1   test08_rangeV  s    
zBasicRangeTestCase.test08_rangec                 C   sJ   t jr tdd td| jj  d| _d| _d| _d| _d| _	| 
  dS )	z*Checking ranges in table iterators (case9)r   r   zRunning %s.test09_range...r:   r]   r   r   Nr   rF   r0   r0   r1   test09_rangef  s    
zBasicRangeTestCase.test09_rangec                 C   sh   t jr tdd td| jj  | j| _d| _d| _| j| j | _	d| _
| j| j
 | _d| _|   dS )	z+Checking ranges in table iterators (case10)r   r   zRunning %s.test10_range...r"   r   r   Nr
   r   r   rI   r$   rQ   r   r   r   r   r   r   r   r   rF   r0   r0   r1   test10_rangev  s    
zBasicRangeTestCase.test10_rangec                 C   sh   t jr tdd td| jj  | j| _d| _d| _| j| j | _	d| _
| j| j
 | _d| _|   dS )	z+Checking ranges in table iterators (case11)r   r   zRunning %s.test11_range...r"   r   r   r   Nr   rF   r0   r0   r1   test11_range  s    
zBasicRangeTestCase.test11_rangec                 C   sh   t jr tdd td| jj  | j| _d| _d| _| j| j | _	d| _
| j| j
 | _d| _|   dS )	z+Checking ranges in table iterators (case12)r   r   zRunning %s.test12_range...r"   rN   r   r   Nr   rF   r0   r0   r1   test12_range  s    
zBasicRangeTestCase.test12_rangec                 C   s   t jr tdd td| jj  d| _z|   W n8 tyj   t jr\t	 \}}}td | j
  Y n0 d| _z|   W n8 ty   t jrt	 \}}}td | j
  Y n0 dS )z+Checking ranges in table iterators (case13)r   r   zRunning %s.test13_range...iz)
Great!, the next ValueError was catched!r   N)r
   r   r   rI   r$   r   r   
ValueErrorrk   exc_inforA   rE   )rG   r   value	tracebackr0   r0   r1   test13_range  s&    
zBasicRangeTestCase.test13_range)"r$   r%   r&   r   rb   r   rY   rS   rQ   rj   r   r   r   r   r   r   r@   rD   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   r0   rH   r1   r   0  s:   %ir   c                   @   s   e Zd ZdS )IterRangeTestCaseN)r$   r%   r&   r0   r0   r0   r1   r     s   r   c                   @   s   e Zd ZdZdS )RecArrayRangeTestCaser   N)r$   r%   r&   r   r0   r0   r0   r1   r     s   r   c                   @   s   e Zd ZdZdd ZdS )GetColRangeTestCaser   c                 C   s   t jr tdd td| jj  t| jd| _| jj	| _	| j
d}| t |jdd W d   n1 sr0    Y  dS )	z-Checking non-existing Field in getCol method r   r   z%Running %s.test01_nonexistentField...r   rt   znon-existent-column)ZfieldN)r
   r   r   rI   r$   rh   r   r   rA   rB   r   assertRaisesKeyErrorr   r   r0   r0   r1   test01_nonexistentField  s    

z+GetColRangeTestCase.test01_nonexistentFieldN)r$   r%   r&   r   r  r0   r0   r0   r1   r     s   r   c                   @   s2   e Zd ZedddZeddddZedddZd	S )
Recr   r   )posr   r]   r   )r]   )r   r  r   )r]   r   N)	r$   r%   r&   r   col1r   col2r   col3r0   r0   r0   r1   r    s   r  c                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )
RecArrayIOc           
      C   s   ddgd gd }t jddgd gd td}dgd gd }dgd gd }dd	gd gd
 }t ddgd gd
 }|||f|||fg}t jj|ddd}| j| jjd| | jjj }	| 	|
 |	
  dS )z!Checking saving a normal recarray     r]   r   ru   dbede333333?ffffff@r         @333333@(2,6)i4,(3,2)a3,(4,6)f8col1,col2,col3r   r   r   Nr5   rW   intr   rA   rl   rB   r   r   r   tostring)
rG   intlist1intlist2arrlist1arrlist2
floatlist1
floatlist2br   r2r0   r0   r1   test00  s    
zRecArrayIO.test00c                 C   s   ddgd gd }t jddgd gd td}dgd gd }dgd gd }dd	gd gd
 }t ddgd gd
 }|||f|||fg}t jj|ddd}|dd }	| j| jjd|	 | jjj }
| 	|	
 |

  dS )z7Checking saving a recarray with an offset in its bufferr
  r  r]   r   ru   r  r  r  r  r   r  r  r  r  r  r   Nr   r  rG   r  r  r  r  r  r  r  r   r1r  r0   r0   r1   test01  s     
zRecArrayIO.test01c                 C   s   g dd gd g}t jg dd gd gtd}dgd gd }dgd gd }d	d
gd gd }t ddgd gd }|||f|||fg}t jj|d ddd}|dd }	| j| jjd|	 | jjj }
| 	|	
 |

  dS )z+Checking saving a slice of a large recarrayr     #      r   r]   r   ru   r  r   r]   r  r  r  r   r  r  ,  (1,6,18)i4,(3,2)a3,(4,6)f8r  r  i"  i$  r   Nr  r!  r0   r0   r1   test02!  s     zRecArrayIO.test02c                 C   s   g dd gd g}t jg dd gd gtd}dgd gd }dgd gd }d	d
gd gd }t ddgd gd }|||f|||fg}t jj|d dddd}|ddd }	|	dd }
| j| jjd|
 | jjj }	| 	|

 |	
  dS )z.Checking saving a slice of an strided recarrayr$  r'  r(  ru   r  r   r]   r  r  r  r   r  r  r)  r*  r  iX  r   N   r   r  )rG   r  r  r  r  r  r  r  r   r  r"  r0   r0   r1   test03;  s"    zRecArrayIO.test03c                 C   s  t jr tdd td| jj  | j| jjdt}dgd dgd dgd d	gd f\}}}}d
gd gd dgd gd dgd gd dgd gd f\}}}}	t	j
ddg||fddg||fgdd}
||
 |ddg||fddg||	fg ddgddgddggg|jjdd< t	j
ddg||fddg||fddg||fddg||	fgddd}| }t jrtdt| tdt| | | |  | |jd dS )z;Checking modifying one column (single column version, list)r   r   zRunning %s.test08a...r   r  r]   deddb1de1r  r   ?ffffff?      ?r
    (2,)i4,(3,)a3,(3,2)f8r     r"   r'  r   r   Nr  r  Original table-->Should look like-->)r
   r   r   rI   r$   rA   rl   rB   r  recordsrW   rR   r   r  r   r   r   r  r   )rG   ra   s0s1s2s3f0f1f2f3r   r"  r  r0   r0   r1   test08aX  s0    
,D
"$zRecArrayIO.test08ac                 C   s  t jr tdd td| jj  | j| jjdt}dgd dgd dgd d	gd f\}}}}d
gd gd dgd gd dgd gd dgd gd f\}}}}	t	j
ddg||fddg||fgdd}
||
 |ddg||fddg||	fg t	jt
ddgddgddgggdd}|jd|dgd t	j
ddg||fddg||fddg||fddg||	fgddd}| }t jrtdt| tdt| | | |  | |jd dS ) z?Checking modifying one column (single column version, recarray)r   r   zRunning %s.test08b...r   r  r]   r.  r/  r0  r  r   r1  r2  r3  r
  r4  r5  r6  r7  r"   r'  r   r4   r   r  )r   rz   r   r  r  r8  r9  N)r
   r   r   rI   r$   rA   rl   rB   r  r:  rW   rR   
fromarraysr5   Zmodify_columnsr   r   r   r  r   rG   ra   r;  r<  r=  r>  r?  r@  rA  rB  r   rz   r"  r  r0   r0   r1   test08b{  s6    
,D
"zRecArrayIO.test08bc                 C   s  t jr tdd td| jj  | j| jjdt}dgd dgd dgd d	gd f\}}}}d
gd gd dgd gd dgd gd dgd gd f\}}}}	t	j
ddg||fddg||fgdd}
||
 |ddg||fddg||	fg t	jt
ddgddgddgggdd}|jd|dd t	j
ddg||fddg||fddg||fddg||	fgddd}| }t jrtdt| tdt| | | |  | |jd dS ) zVChecking modifying one column (single column version, recarray,
        modify_column)r   r   zRunning %s.test08b2...r   r  r]   r.  r/  r0  r  r   r1  r2  r3  r
  r4  r5  r6  r7  r"   r'  r   r4   r   r  )r   r   rx   r  r  r8  r9  N)r
   r   r   rI   r$   rA   rl   rB   r  r:  rW   rR   rD  r5   Zmodify_columnr   r   r   r  r   rE  r0   r0   r1   test08b2  s6    
,D
"zRecArrayIO.test08b2N)
r$   r%   r&   r   r#  r+  r-  rC  rF  rG  r0   r0   r0   r1   r	    s   #%r	  c                   @   s   e Zd Zdd ZdS )DefaultValuesc              	   C   s   | j | j jdt}d}t|D ](}|dks4|dkr>d|jd< |j  q |  dgd d	d
ggd dddddddf	g}tj	j
|| dg dd}d|d d< d|d d< | }tjrtd t| td t| | | |  dS )z.Checking saving a Table MD with default valuesra   r"   r]   r   )r   r   r*    r   ZabcdZefghr   r   r    r!   ez,(2,)a4,(2,2)a4,(2,)i4,(2,2)i4,i2,f8,f4,u2,a1r2   r  r   zTable values:zRecord values:N)rA   rl   rB   r   rP   rZ   rR   ro   r5   r   rW   r   r
   r   r   r   r  )rG   ra   r   r[   bufferr   r  r0   r0   r1   r     s6    

zDefaultValues.test00N)r$   r%   r&   r   r0   r0   r0   r1   rH    s   rH  c                   @   s^   e Zd ZedddZedgddZeddgddZeddgddZeddgddggddZd	S )
RecordTr   r0   r   )r   r   r  r   r   N)	r$   r%   r&   r   r'   r(   var2_sr*   r+   r0   r0   r0   r1   rL    s
   rL  c                       sD   e Zd Z fddZdd Zdd Zdd Zd	d
 Zdd Z  Z	S )ShapeTestCasec                    s   t t|   |   d S r>   )r?   rN  r@   rD   rF   rH   r0   r1   r@     s    zShapeTestCase.setUpc                 C   s<   | j | j jdt}|j}tdD ]}|  q"|  d S )Nra   r   )rA   rl   rB   rL  rZ   rP   rR   ro   )rG   ra   rZ   r[   r0   r0   r1   rD     s
    
zShapeTestCase.populateFilec                 C   sb   | j r|   | jjj}tjr@td|jj	dd  tddg | 
|jj	dd  dg dS )zChecking scalar shapesThe values look like:NThey should look like:r   )reopen_reopenrA   rB   ra   r
   r   r   r   r'   r   tolistr   r0   r0   r1   r     s    
zShapeTestCase.test00c                 C   sf   | j r|   | jjj}tjrBtd|jj	dd  tddgg | 
|jj	dd  dgg dS )z+Checking undimensional (one element) shapesrO  NrP  r   )rQ  rR  rA   rB   ra   r
   r   r   r   r(   r   rS  r   r0   r0   r1   r#  $  s    
zShapeTestCase.test01c                 C   s   | j r|   | jjj}tjrDtd|jj	dd  tdddgg | 
|jj	dd  ddgg | 
|jjdd  ddgg dS )z,Checking undimensional (two elements) shapesrO  NrP  r   )rQ  rR  rA   rB   ra   r
   r   r   r   r*   r   rS  rM  r   r0   r0   r1   r+  2  s    
"zShapeTestCase.test02c                 C   sz   | j r|   | jjj}tjrLtd|jj	dd  tdddgddggg | 
|jj	dd  ddgddggg dS )zChecking bidimensional shapesrO  NrP  r   r   )rQ  rR  rA   rB   ra   r
   r   r   r   r+   r   rS  r   r0   r0   r1   r-  A  s    
zShapeTestCase.test03)
r$   r%   r&   r@   rD   r   r#  r+  r-  r   r0   r0   rH   r1   rN    s   
rN  c                   @   s   e Zd ZdZdS )ShapeTestCase1r   Nr$   r%   r&   rQ  r0   r0   r0   r1   rT  P  s   rT  c                   @   s   e Zd ZdZdS )ShapeTestCase2r   NrU  r0   r0   r0   r1   rV  T  s   rV  c                       st   e 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  ZS )SetItemTestCasec                    s2   t t|   | j| jjdt| _| j| j_	d S Nr   )
r?   rW  r@   rA   rl   rB   r  ra   
buffersizer   rF   rH   r0   r1   r@   Z  s
    zSetItemTestCase.setUpc                 C   s   | j }|jj}tjddg|d}|| |ddg d|d< tjg d|d	d
}| jrt|   | jj	j
}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z1Checking modifying one table row with __setitem__r
  r  r  r   r.  r1  r6  r4  r/  r  r"   r0  r1  r
  Zdb2r  r   rZ  r[  r^  r]  r  r  r8  r9  r   Nra   r   r   r:  rW   rR   rQ  rR  rA   rB   r   rY  r   r   r
   r   r   r   r   r  r   rG   ra   r   r   r"  r  r0   r0   r1   r#  b  s,    



zSetItemTestCase.test01c                 C   s   | j }|jj}tjddg|d}|| |ddg d|d< tjg d|d	d
}| jrt|   | jj	j
}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z>Checking modifying one table row with __setitem__ (long index)rZ  r[  r6  r\  r]  r^  r   r_  r  r  r8  r9  r   Nr`  ra  r0   r0   r1   test01b  s,    



zSetItemTestCase.test01bc                 C   s   | j }|jj}tjddg|d}|| |ddg tjdg|d}||ddd< tjg d	|d
d}| jr|   | jj	j
}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z,Modifying one row, with a step (__setitem__)rZ  r[  r6  r\  r]  r   r]   r   rZ  r\  r\  r]  r  r  r8  r9  r   Nr`  rG   ra   r   r   Zrowsr"  r  r0   r0   r1   r+    s2    



zSetItemTestCase.test02c                 C   s   | j }|jj}tjddg|d}|| |ddg tjddg|d}||dd< tjg d|d	d
}| jr|   | jj	j
}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z5Checking modifying several rows at once (__setitem__)rZ  r[  r6  r\  r]  r   r]   rZ  r\  r]  r]  r  r  r8  r9  r   Nr`  rd  r0   r0   r1   r-    s2    




zSetItemTestCase.test03c                 C   s   | j }|jj}tjddg|d}|| |ddg tjddg|d}||ddd	< tjg d
|dd}| jr|   | jj	j
}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z9Modifying several rows at once, with a step (__setitem__)rZ  r[  r6  r\  r]  r'  Zde2r1  r   Nr   rZ  r\  r\  rf  r  r  r8  r9  r   r`  rd  r0   r0   r1   test04  s2    




zSetItemTestCase.test04c                 C   s   | j }|jj}tjddg|d}|| |ddg d|jjd< tjg d|d	d
}| jrx| 	  | j
jj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z;Checking modifying one column (single element, __setitem__)rZ  r[  r6  r\  r]  rN   r   rZ  )rN   r.  r1  r\  r]  r  r  r8  r9  r   Nra   r   r   r:  rW   rR   r   r  rQ  rR  rA   rB   r   rY  r   r   r
   r   r   r   r   r  r   ra  r0   r0   r1   test05  s,    



zSetItemTestCase.test05c                 C   s   | j }|jj}tjddg|d}|| |ddg g d|jjdd< tjg d	|d
d}| jr| 	  | j
jj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z=Checking modifying one column (several elements, __setitem__)rZ  r[  r6  r\  r]  )r   r]   r]   )r   r   r   r   rZ  r[  )r]   r/  r  )r   r0  r1  r  r  r8  r9  Nrj  ra  r0   r0   r1   test06a0  s,    



zSetItemTestCase.test06ac                 C   s   | j }|jj}tjddg|d}|| |ddg | t< | D ]}|j	d |d< |  qL|
  W d   n1 s0    Y  dS )	z5Checking modifying one column (iterator, __setitem__)rZ  r[  r6  r\  r]  r   r  N)ra   r   r   r:  rW   rR   r   NotImplementedErrorr   nrowro   )rG   ra   r   r   rZ   r0   r0   r1   test06bP  s    


zSetItemTestCase.test06bc                 C   s   | j }|jj}tjddg|d}|| |ddg ddg|jjdd	d
< tjg d|dd}| jr| 	  | j
jj}| j|_| }tjrtdt| tdt| | | |  | |jd	 dS )z:Modifying one column (several elements, __setitem__, step)rZ  r   r.  r1  r6  r\  r]  r   rl  r   r   r   )rZ  r[  r\  )r]   r0  r1  r  r  r8  r9  Nrj  ra  r0   r0   r1   test07c  s,    



zSetItemTestCase.test07c                 C   s   | j }|jj}tjddg|d}|| |ddg dg|jjddd	< tjg d
|dd}| jr| 	  | j
jj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z5Modifying one column (one element, __setitem__, step)rZ  r[  r6  r\  r]  r   r   r   r]   )rZ  r[  r\  r]  r  r  r8  r9  Nrj  ra  r0   r0   r1   test08  s,    



zSetItemTestCase.test08c                 C   s   | j }|jj}tjddg|d}|| |ddg tjddg|d}||ddd	< tjg d
|d}| jr|   | jj	j
}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z5Modifying beyond the table extend (__setitem__, step)rZ  r[  r6  r\  r]  rf  r   Nr   rg  r8  r9  r   r`  rd  r0   r0   r1   test09  s0    




zSetItemTestCase.test09)r$   r%   r&   r@   r#  rb  r+  r-  rh  rk  rn  rq  rs  rt  ru  r   r0   r0   rH   r1   rW  X  s    !#%$! !!rW  c                   @   s   e Zd ZdZdZdS )SetItemTestCase1r   r   Nr$   r%   r&   rQ  rY  r0   r0   r0   r1   rv    s   rv  c                   @   s   e Zd ZdZdZdS )SetItemTestCase2r   r   Nrw  r0   r0   r0   r1   rx    s   rx  c                   @   s   e Zd ZdZdZdS )SetItemTestCase3r   r   Nrw  r0   r0   r0   r1   ry    s   ry  c                   @   s   e Zd ZdZdZdS )SetItemTestCase4r   r   Nrw  r0   r0   r0   r1   rz    s   rz  c                       st   e 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  ZS )UpdateRowTestCasec                    s2   t t|   | j| jjdt| _| j| j_	d S rX  )
r?   r{  r@   rA   rl   rB   r  ra   rY  r   rF   rH   r0   r1   r@     s
    zUpdateRowTestCase.setUpc                 C   s   | j }|jj}tjddg|d}|| |ddg |ddD ]&}g d\|d	< |d
< |d< |  qDtjg d|dd}| jr| 	  | j
jj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z0Checking modifying one table row with Row.updaterZ  r[  r6  r\  r]  r   r]   r^  r  r  r  r_  r  r  r8  r9  r   Nra   r   r   r:  rW   rR   r   updaterQ  rR  rA   rB   r   rY  r   r   r
   r   r   r   r   r  r   rG   ra   r   r   rZ   r"  r  r0   r0   r1   r#    s0    




zUpdateRowTestCase.test01c                 C   s  | j }|jj}tjddg|d}|| |ddg |dddD ]N}|jdkrld\|d	< |d
< |d< n |jdkrd\|d	< |d
< |d< |  qFtjg d|dd}| j	r| 
  | jjj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z+Modifying one row, with a step (Row.update)rZ  r[  r6  r\  r]  r   r]   r   r  r  r  rf  rc  r  r  r8  r9  r   Nra   r   r   r:  rW   rR   r   rp  r}  rQ  rR  rA   rB   r   rY  r   r   r
   r   r   r   r   r  r   r~  r0   r0   r1   r+  
  s6    






zUpdateRowTestCase.test02c                 C   s  | j }|jj}tjddg|d}|| |ddg |ddD ]N}|jdkrjd\|d< |d	< |d
< n |jdkrd\|d< |d	< |d
< |  qDtjg d|dd}| j	r| 
  | jjj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z4Checking modifying several rows at once (Row.update)rZ  r[  r6  r\  r]  r   r]   r  r  r  r   re  r  r  r8  r9  r   Nr  r~  r0   r0   r1   r-  0  s6    






zUpdateRowTestCase.test03c                 C   s  | j }|jj}tjddg|d}|| |ddg |jdddd	D ]N}|jdkrnd\|d
< |d< |d< n |jdkrd\|d
< |d< |d< |  qHtjg d|dd}| j	r| 
  | jjj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z8Modifying several rows at once, with a step (Row.update)rZ  r[  r6  r\  r]  r   r   r   )r   r   r  r  r  r]   rf  rg  r  r  r8  r9  Nr  r~  r0   r0   r1   rh  V  s6    






zUpdateRowTestCase.test04c                 C   s   | j }|jj}tjddg|d}|| |ddg |ddD ]}d|d	< |  qDtjg d
|dd}| jr| 	  | j
jj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z:Checking modifying one column (single element, Row.update)rZ  r[  r6  r\  r]  r   r   rN   r  ri  r  r  r8  r9  r   Nr|  r~  r0   r0   r1   rk  |  s0    




zUpdateRowTestCase.test05c                 C   s   | j }|jj}tjddg|d}|| |ddg |ddD ]}|jd |d< |  qDtjg d	|d
d}| j	r| 
  | jjj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z<Checking modifying one column (several elements, Row.update)rZ  r[  r6  r\  r]  r   r   r  rm  r  r  r8  r9  Nr  r~  r0   r0   r1   test06  s0    




zUpdateRowTestCase.test06c                 C   s   | j }|jj}tjddg|d}|| |ddg | D ],}|d d dk r@d	|d< d
|d< |  q@tjg d|dd}| jr| 	  | j
jj}| j|_| }tjrtdt| tdt| | | |  | |jd dS )z!Modifying values from a selectionrZ  rr  r6  r\  r]  r  r   r
  r   adar  )rZ  r   r  r1  r\  r  r  r  r8  r9  r   Nr|  r~  r0   r0   r1   rs    s4    




zUpdateRowTestCase.test07c                 C   sX  | j }|jj}d}|j}t|D ]4}|d |d< dt|d  |d< d|d< |  q |  | D ]0}|j	|d< dt|j	 |d< d	|d< |
  qftjd
||dd}t|D ]0}||d |< dt| |d |< d	|d |< q| jr|   | jjj}| j|_| }tjr2tdt| tdt| | | |  | |j| d
S )z$Modifying a large table (Row.update)r:   r   r  r   r        r  r          Nr  r   r   r   r8  r9  ra   r   r   rZ   rP   rm   rR   ro   r   rp  r}  r:  rW   rQ  rR  rA   rB   r   rY  r   r   r
   r   r   r   r   r  r   rG   ra   r   r   rZ   r[   r"  r  r0   r0   r1   rt    sB    



zUpdateRowTestCase.test08c                 C   sX  | j }|jj}d}|j}t|D ]4}|d |d< dt|d  |d< d|d< |  q |  | D ](}|j	|d< dt|j	 |d< d	|d< qft
jd
||dd}t|D ]8}|d |d |< dt|d  |d |< d|d |< q| jr|   | jjj}| j|_| }tjr2tdt| tdt| | | |  | |j| d
S )z:Setting values on a large table without calling Row.updater:   r   r  r   r  r  r  r  r  Nr  r  r8  r9  )ra   r   r   rZ   rP   rm   rR   ro   r   rp  r:  rW   rQ  rR  rA   rB   r   rY  r   r   r
   r   r   r   r   r  r   r  r0   r0   r1   rF    s@    



zUpdateRowTestCase.test08bc                 C   s  | j }|jj}d}|j}t|D ]4}|d |d< dt|d  |d< d|d< |  q |  | D ]D}|d d |d	 krf|j	|d< d
t|j	 |d< d|d< |
  qftjd||dd}t|D ]8}|d |d |< dt|d  |d |< d|d |< q||d |< d
t| |d |< d|d |< | jrN|   | jjj}| j|_| }tjrztdt| tdt| | | |  | |j| dS )z*Modifying selected values on a large tabler:   r   r  r   r  r  r  r   r]   r  r  Nr  r  r8  r9  r  r  r0   r0   r1   ru  A  sJ    



zUpdateRowTestCase.test09c                 C   s  | j }|jj}d}|j}t|D ]4}|d |d< dt|d  |d< d|d< |  q |  |jdd	D ]0}|j	|d< d
t|j	 |d< d|d< |
  qjtjd||dd}t|D ]r}|d dkr|d |d |< dt|d  |d |< d|d |< q||d |< d
t| |d |< d|d |< q| jrL|   | jjj}| j|_| }tjrxtdt| tdt| | | |  | |j| dS )z=Modifying selected values on a large table (alternate values)r:   r   r  r   r  r  r  r   )r   r  r  Nr  r  r   r8  r9  r  r  r0   r0   r1   test09bt  sJ    



zUpdateRowTestCase.test09b)r$   r%   r&   r@   r#  r+  r-  rh  rk  r  rs  rt  rF  ru  r  r   r0   r0   rH   r1   r{    s   #&&&##%--3r{  c                   @   s   e Zd ZdZdZdS )UpdateRowTestCase1r   r   Nrw  r0   r0   r0   r1   r    s   r  c                   @   s   e Zd ZdZdZdS )UpdateRowTestCase2r   r   Nrw  r0   r0   r0   r1   r    s   r  c                   @   s   e Zd ZdZdZdS )UpdateRowTestCase3r   r   Nrw  r0   r0   r0   r1   r    s   r  c                   @   s   e Zd ZdZdZdS )UpdateRowTestCase4r   r   Nrw  r0   r0   r0   r1   r    s   r  c                  C   s  t  } d}t|D ]}| t t | t t | t t | t t | t t	 | t t
 | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t | t t qt j!r| t t" | t t# | S )Nr   )$r   Z	TestSuiterP   ZaddTestZ	makeSuiter   r   r   r   r   r   r   r   r   r   r   r   r   rH  r	  rT  rV  rv  rx  ry  rz  r  r  r  r  r   r   r
   Zheavyr   r   )ZtheSuiteZniternr0   r0   r1   suite  sD    r  __main__)ZdefaultTest)Irk   Znumpyr5   r   r:  rh   r   r   r   r   r   r   r	   Ztables.testsr
   Ztables.tests.commonr   r   r   ZTestCaseZtables.descriptionr   ZIsDescriptionr   r   r3   ZTempFileMixinr7   r   r   r   r   r   r   r   r   ZskipIfZblosc_availr   Z	lzo_availr   Zbzip2_availr   r   r   r   r   r   r   r   r  r	  rH  rL  rN  rT  rV  rW  rv  rx  ry  rz  r{  r  r  r  r  r  r$   Z
parse_argvargvZprint_versionsmainr0   r0   r0   r1   <module>   s   $  z	

    Z7J  s   M(
