B
    i\(!                 @   s  d dl mZ d dl mZ d dlZ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
 d dlmZ d dlmZ d dlmZmZ d dlmZ d d	lm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 d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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jeZ!G dd  d ejeZ"G d!d" d"eZ#G d#d$ d$eZ$d%d& Z%e&d'krd dl'Z'e(e'j) e*  ej+d&d( dS ))    )print_function)absolute_importN)FlavorWarning)common)allequal)unittesttest_filename)PyTablesTestCase)rangec               @   s   e Zd Zdd ZdS )BackCompatTablesTestCasec          	   C   s   t jr tdd td| jj  t & tjdtd t	
t| jd}W dQ R X z\|d}d	d
 |D }t jrtd|jd|j tdt tdt| | t|d W d|  X dS )z9Checking backward compatibility of old formats of tables.
z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_readTable...ignore)categoryrNz/tuple0c             S   s   g | ]}|d  qS )Zvar2 ).0recr   r   ;lib/python3.7/site-packages/tables/tests/test_backcompat.py
<listcomp>'   s    z=BackCompatTablesTestCase.test01_readTable.<locals>.<listcomp>zNrows in:zLast record in table ==>z$Total selected records in table ==> d   )r   verboseprint	__class____name__warningscatch_warningsfilterwarningsUserWarningtables	open_filer   h5fnameget_nodeZ_v_pathnameZnrowsr   lenassertEqualclose)selfh5filetableresultr   r   r   test01_readTable   s    



z)BackCompatTablesTestCase.test01_readTableN)r   
__module____qualname__r*   r   r   r   r   r      s   r   zlzo not availablec               @   s   e Zd ZdZdS )Table2_1LZOzTable2_1_lzo_nrv2e_shuffle.h5N)r   r+   r,   r!   r   r   r   r   r-   2   s   r-   c               @   s   e Zd ZdZdS )Tables_LZO1zTables_lzo1.h5N)r   r+   r,   r!   r   r   r   r   r.   8   s   r.   c               @   s   e Zd ZdZdS )Tables_LZO1_shufflezTables_lzo1_shuffle.h5N)r   r+   r,   r!   r   r   r   r   r/   =   s   r/   c               @   s   e Zd ZdZdS )Tables_LZO2zTables_lzo2.h5N)r   r+   r,   r!   r   r   r   r   r0   C   s   r0   c               @   s   e Zd ZdZdS )Tables_LZO2_shufflezTables_lzo2_shuffle.h5N)r   r+   r,   r!   r   r   r   r   r1   H   s   r1   c                   s(   e Zd ZdZ fddZdd Z  ZS )BackCompatAttrsTestCasezzerodim-attrs-%s.h5c                s$   t | j| j | _tt|   d S )N)r   FILENAMEformatr!   superr2   setUp)r&   )r   r   r   r6   R   s    zBackCompatAttrsTestCase.setUpc             C   s   t jr tdd td| jj  | jd}tjddd}tjdgdd}| j	dkr| 
t|jj| | 
t|jj| | |jjd nF| j	d	kr| 
t|jj| | 
t|jj| | 
t|jj| d
S )z>Checking backward compatibility of old formats for attributes.r   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_readAttr...z/a   Zint32)Zdtypez1.3z1.4N)r   r   r   r   r   r'   r"   numpyZarrayr4   Z
assertTruer   ZattrsZarrdim1Z	arrscalarr$   Zpythonscalar)r&   aZscalarZvectorr   r   r   test01_readAttrV   s    


z'BackCompatAttrsTestCase.test01_readAttr)r   r+   r,   r3   r6   r:   __classcell__r   r   )r   r   r2   O   s   r2   c               @   s   e Zd ZdZdS )	Attrs_1_3z1.3N)r   r+   r,   r4   r   r   r   r   r<   k   s   r<   c               @   s   e Zd ZdZdS )	Attrs_1_4z1.4N)r   r+   r,   r4   r   r   r   r   r=   o   s   r=   c               @   s   e Zd ZedZdd ZdS )VLArrayTestCasezflavored_vlarrays-format1.6.h5c             C   sJ   | j jj}| |jd | j jj}| |jd | |d dddg dS )z<Checking backward compatibility with old flavors of VLArray.numericpythonr7      5   6s   77N)r'   rootvlarray1r$   flavorvlarray2)r&   rD   rF   r   r   r   test01_backCompatv   s
    

z!VLArrayTestCase.test01_backCompatN)r   r+   r,   r   r!   rG   r   r   r   r   r>   s   s   r>   c               @   s$   e Zd ZedZdd Zdd ZdS )TimeTestCaseztime-table-vlarray-1_x.h5c             C   s   | j jj}| |jd dS )z?Checking backward compatibility with old TimeXX types (tables).littleN)r'   rC   r(   r$   	byteorder)r&   r(   r   r   r   test00_table   s    
zTimeTestCase.test00_tablec             C   s4   | j jj}| |jd | j jj}| |jd dS )zAChecking backward compatibility with old TimeXX types (vlarrays).rI   N)r'   rC   vlarray4r$   rJ   )r&   rL   Zvlarray8r   r   r   test01_vlarray   s    

zTimeTestCase.test01_vlarrayN)r   r+   r,   r   r!   rK   rM   r   r   r   r   rH      s   rH   c               @   s    e Zd ZdZdd Zdd ZdS )OldFlavorsTestCase01Fc          	   C   s   t d}t|r}| |jjjd | |jjjd | |jjjd | |jj	jd | |jj
jd | |jjjd W dQ R X dS )z3Checking opening of (X)Array (old 'numeric' flavor)zoldflavor_numeric.h5r?   r@   N)r   r   r    r$   rC   array1rE   array2carray1carray2rD   rF   )r&   r!   r'   r   r   r   test01_open   s    z OldFlavorsTestCase01.test01_openc          	   C   sB  t d}td}t|| zt|d}| t|j	j
jdd |j	jdd |j	jdd |j	jdd |j	jdd	 |j	jdd
 | jr|  t|}n|  | |j	jjd | |j	jjd | |j	jjd | |j	jjd | |j	jjd | |j	jjd W dQ R X W dt| X dS )z2Checking (X)Array.copy() method ('numetic' flavor)zoldflavor_numeric.h5z.h5zr+/
array1copy
array2copycarray1copycarray2copyvlarray1copyvlarray2copyr?   r@   N)r   tempfileZmktempshutilcopyr   r    ZassertWarnsr   rC   rO   rP   rQ   rR   rD   rF   r%   flushr$   rU   rE   rV   rW   rX   rY   rZ   osremove)r&   ZsrcfileZtmpfiler'   r   r   r   test02_copy   s.    
 z OldFlavorsTestCase01.test02_copyN)r   r+   r,   r%   rS   ra   r   r   r   r   rN      s   rN   c               @   s   e Zd ZdZdS )OldFlavorsTestCase02TN)r   r+   r,   r%   r   r   r   r   rb      s   rb   c              C   s   t  } d}xt|D ]}| t t | t t | t t | t t | t t	 | t t
 | t t | t t | t t qW | S )Nr7   )r   Z	TestSuiter
   ZaddTestZ	makeSuiter>   rH   rN   rb   r-   r.   r/   r0   r1   )ZtheSuiteZniternr   r   r   suite   s    rd   __main__)ZdefaultTest),Z
__future__r   r   r_   r\   r[   r   r8   r   Ztables.exceptionsr   Ztables.testsr   Ztables.tests.commonr   r   r   r	   ZTestCaseZ	six.movesr
   r   ZskipIfZ	lzo_availr-   r.   r/   r0   r1   ZTestFileMixinr2   r<   r=   r>   rH   rN   rb   rd   r   sysZ
parse_argvargvZprint_versionsmainr   r   r   r   <module>   sJ   6
