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mZmZ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mZ d dlmZ d d	lm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%e&ej' d G d!d" d"eZ(G d#d$ d$eZ)e&ej' d G d%d& d&eZ*G d'd( d(eZ+e&ej' d 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Z0G d3d4 d4eZ1G d5d6 d6eZ2G d7d8 d8eZ3G d9d: d:eZ4G d;d< d<eZ5G d=d> d>eZ6G d?d@ d@eZ7G dAdB dBeZ8G dCdD dDeZ9G dEdF dFeZ:e&ej; dGG dHdI dIeZ<e&ej; dGG dJdK dKeZ=e&ej; dGe&eej>k dLej> G dMdN dNeZ?e&ej; dGG dOdP dPeZ@e&ej; dGG dQdR dReZAe&ej; dGe&dSeB kdTG dUdV dVeZCe&ej; dGe&dSeB kdTG dWdX dXeZDe&ej; dGe&dYeB kdZG d[d\ d\eZEe&ej; dGe&d]eB kd^G d_d` d`eZFe&ej; dGe&daeB kdbG dcdd ddeZGe&ej' d G dedf dfeZHe&ej' d G dgdh dheZIe&ejJ diG djdk dkeZKe&ejJ diG dldm dmeZLG dndo doeZMG dpdq dqeZNG drds dseZOG dtdu dueZPG dvdw dweZQG dxdy dyeZRG dzd{ d{eZSG d|d} d}eZTG d~d deZUG dd deZVeWeXeddG dd deZYG dd deZZG dd deZ[eWeXeddG dd deZ\eWeXeddG dd deZ]G dd deZ^G dd deZ_eWeXeddG dd deZ`eWeXeddG dd deZaG dd deZbG dd dejeZcG dd dejeZdG dd dejeZeG dd dejeZfG dd defZgG dd defZhG dd dejeZiG dd deiZjG dd deiZkG dd deiZlG dd deiZmG dd deiZnG dd deiZoG dd deiZpG dd deiZqG dd deiZrG dd deiZsG ddÄ deiZtG ddń deiZuG ddǄ dejeZvG ddɄ devZwG dd˄ devZxG dd̈́ dejeZyG ddτ dejeZzG ddф dezZ{G ddӄ dezZ|G ddՄ dejeZ}G ddׄ de}Z~G ddل de}ZG ddۄ dejeZG dd݄ dejeZG dd߄ deZG dd deZG dd dejeZG dd deZG dd deZG dd dejeZG dd dejeZdd Zedk	rXeej e  ejdd dS )    )print_function)absolute_importN)	Atom
StringAtomIntAtomInt8Atom	Int16Atom	Int32Atom	Int64Atom	FloatAtomFloat32Atom)common)allequal)unittestblosc_version)PyTablesTestCase)rangec                   s   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZd	ZdZdZdZdZ 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  ZS )BasicTestCaseNnumpyint32)   r   r   
      )   r   zlibc                s4   t t|   | jj| _|   | jr0| j  d S )N)	superr   setUph5fileroot	rootgrouppopulateFilereopenclose)self)	__class__ 7lib/python3.7/site-packages/tables/tests/test_carray.pyr   (   s
    
zBasicTestCase.setUpc          
   C   s   | j }| j}|d kr:| jdkr,t| jd}q>t| j}nd }| jj}t	j
| j| j| j| j| jd}| jj|d|| j||| j|d}| j|_t|j| _| jt|j | _| jdkr| jdkrtjd| j | jd|jj d	}ntj| j|jjd
}|j|_tj rt!dt"| ||d< d S )Nstring)itemsize)	complevelcomplibshuffle
bitshuffle
fletcher32Zcarray1)atomshapetitlefilters
chunkshapeobjr      azS%s)bufferr/   dtype)r6   zObject to append -->.)#r   r3   typer   lengthr   Z	from_typer$   __name__tablesFilterscompressr*   r+   r,   r-   r   create_carrayr/   r2   flavorlistZrowshaper   prodobjsizendarrayr.   r(   aranger6   r   verboseprintrepr)r#   groupr3   r.   r0   r1   carrayobjectr%   r%   r&   r    1   s<    




zBasicTestCase.populateFilec             C   s$   | j d k	r| j }nt| jj }|S )N)r/   r   asarrayr3   )r#   r/   r%   r%   r&   
_get_shapeX   s    
zBasicTestCase._get_shapec             C   s   | j rt| jd| _| jd}|  }| |j| j | |j	| | |j
t| | |j| j | |j|d  | |jj| j d S )Nrz/carray1r   )r!   r:   	open_fileh5fnamer   get_noderK   assertEqualr>   r/   ndimlenr2   nrowsr.   r7   )r#   r3   r/   r%   r%   r&   test00_attributes`   s    zBasicTestCase.test00_attributesc             C   s  t jr tdd td| jj  | jr6t| jd| _	| j	
d}d|_t jrttdt| td|j td	| j |  }| jd
kr| jdkrtjd| j | jd|jj d}ntj| j|jjd}||_| j}| jdkr| jdkr|j}n
| jd }|j|k rt|j}|| j|| j  }y|| j|| j}W nH tk
r   | jd
krltj | j| jd}ntj | j| jd}Y nX t jrt!|drtd|j tdt| tdt| t!|dr| "t#|jt#| n| "t#| jd | "|j$| j$ | %t&||| j dS )z)Checking read() of chunked layout arrays.
z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_readCArray...rL   z/carray1   zCArray descr:zshape of read array ==>zreopening?:r   r'   r4   zS%s)r5   r/   r6   )r6   Nr   )r/   r6   r/   zshape should look as:zObject read ==>zShould look like ==>)'r   rD   rE   r$   r9   r!   r:   rM   rN   r   rO   
nrowsinbufrF   r/   rK   r>   r7   r   rB   rA   r.   r(   rC   r6   stopstartrS   intstepcopyread
IndexErroremptyhasattrrP   rR   r2   
assertTruer   )r#   rH   r/   object_rY   r3   datar%   r%   r&   test01_readCArrayn   sV    






zBasicTestCase.test01_readCArrayc             C   s  | j rt| jd| _| jd}|  }d|_| jdkr| j	dkrft
jd| j | jd|jj d}nt
j| j|jjd	}||_| j}| jd
kr| jdkr|j}n
| jd }|j|k rt|j}|| j|| j  }yBt
j||jjd	}|| j|| j  }|j| j|| j|d W nD tk
r\   | jdkrHt
j|| j	d}nt
j|| j	d}Y nX t|dr| t|jt| n| t|d | |j| j | t ||| j d
S )z)Checking read() of chunked layout arrays.rL   z/carray1rV   r   r'   r4   zS%s)r5   r/   r6   )r6   NrW   r   )out)r/   r6   r/   )!r!   r:   rM   rN   r   rO   rK   rX   r>   r7   r   rB   rA   r/   r.   r(   rC   r6   rY   rZ   rS   r[   r\   r]   r`   r^   r_   ra   rP   rR   r2   rb   r   )r#   rH   r/   rc   rY   r3   rd   r%   r%   r&   test01_readCArray_out_argument   sB    






z,BasicTestCase.test01_readCArray_out_argumentc             C   s  t jr tdd td| jj  t| ds@t| j| j| j	f| _
| jrVt| jd| _| jd}t jrtdt| td|j td	| j |  }| jd
krtjd| j | jd|jj d}ntj| j|jjd}||_|| j
 }y|| j
}W nP tk
rL   td | jdkr6tj | j| jd}ntj | j| jd}Y nX t jrtdt| tdt| t|drtd| j td|j td|j t|ds| !t"| jd | !|j#| j# | $t%||| j dS )z9Checking chunked layout array __getitem__ special method.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=z"Running %s.test02_getitemCArray...slicesrL   z/carray1zCArray descr:zshape of read array ==>zreopening?:r'   r4   zS%s)r5   r/   r6   )r6   zIndexError!r   )r/   r6   zObject read:
zShould look like:
r/   zOriginal object shape:zShape read:zshape should look as:r   N)&r   rD   rE   r$   r9   ra   slicerZ   rY   r\   rh   r!   r:   rM   rN   r   rO   rF   r/   rK   r7   r   rB   rA   r.   r(   rC   r6   __getitem__r]   r_   r>   r`   rP   rR   r2   rb   r   )r#   rH   r/   rc   r3   rd   r%   r%   r&   test02_getitemCArray   sN    


z"BasicTestCase.test02_getitemCArrayc             C   s  t jr tdd td| jj  t| ds@t| j| j| j	f| _
| jrVt| jd| _| jd}t jrtdt| td|j td	| j |  }| jd
krtjd| j | jd|jj d}ntj| j|jjd}||_|| j
 }| jd
krTt| drd|| j< d|| j< n8t || j
 jdkrd|dd< |j!dkr||| j
< nt| dr|| j d d || j< || j d d || j< nLt || j
 jdkr|d d }t"|jdkr|| j
 d d || j
< tj#||jjd}y|| j
}W nP t$k
rP   td | j%dkr:tj&| j| jd}ntj&| j| jd}Y nX t jrtdt| tdt| t|drtd| j td|j td|j t|ds| 't(| jd | '|j)| j) | *t+||| j% dS )z9Checking chunked layout array __setitem__ special method.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=z"Running %s.test03_setitemCArray...rh   az/carray1zCArray descr:zshape of read array ==>zreopening?:r'   r4   zS%s)r5   r/   r6   )r6   wsliceZxXxr   Nr   rV   zIndexError!r   )r/   r6   zObject read:
zShould look like:
r/   zOriginal object shape:zShape read:zshape should look as:r   ),r   rD   rE   r$   r9   ra   ri   rZ   rY   r\   rh   r!   r:   rM   rN   r   rO   rF   r/   rK   r7   r   rB   rA   r.   r(   rC   r6   rj   r]   Zwslizerm   sumsizer@   arrayr_   r>   r`   rP   rR   r2   rb   r   )r#   rH   r/   rc   r3   rd   r%   r%   r&   test03_setitemCArray.  sn    



z"BasicTestCase.test03_setitemCArray)r9   
__module____qualname__r3   r>   r7   r/   rZ   rY   r\   r8   r2   r<   r*   r+   r,   r-   r!   r   r    rK   rT   re   rg   rk   rq   __classcell__r%   r%   )r$   r&   r      s.   	'H;=r   c               @   s    e Zd ZdZdZdZdZdZdS )BasicWriteTestCaser   )r   )r   r   N)r9   rr   rs   r7   r/   r2   r\   rm   r%   r%   r%   r&   ru   ~  s
   ru   c               @   s8   e Zd ZdZdZdZdZeed d ed dZdZ	dS )BasicWrite2TestCaser   )r   )r   r   r   r   N)
r9   rr   rs   r7   r/   r2   r\   ri   rm   r!   r%   r%   r%   r&   rv     s   rv   c               @   s2   e Zd ZddgZeejjZdZ	dZ
dZdZdS )BasicWrite3TestCaser   r   N)r   r   )r9   rr   rs   r3   r   rJ   r6   namer7   r/   r2   r\   r!   r%   r%   r%   r&   rw     s   rw   c               @   s2   e Zd ZeddgZejjZdZ	dZ
dZdZdS )BasicWrite4TestCaser   r   N)r   r   )r9   rr   rs   r   rp   r3   r6   rx   r7   r/   r2   r\   r!   r%   r%   r%   r&   ry     s   ry   c               @   s:   e Zd ZddgddggZeejjZdZ	dZ
dZdZdS )BasicWrite5TestCaser   r   rV      N)r   r   r   )r9   rr   rs   r3   r   rJ   r6   rx   r7   r/   r2   r\   r!   r%   r%   r%   r&   rz     s   rz   c               @   s2   e Zd ZddgZeejjZdZ	dZ
dZdZdS )BasicWrite6TestCaser   r   N)r   )r9   rr   rs   r3   r   rJ   r6   rx   r7   r/   r2   r\   r!   r%   r%   r%   r&   r|     s   r|   c               @   s2   e Zd ZeddgZejjZdZ	dZ
dZdZdS )BasicWrite7TestCaser   r   N)r   )r9   rr   rs   r   rp   r3   r6   rx   r7   r/   r2   r\   r!   r%   r%   r%   r&   r}     s   r}   c               @   s:   e Zd ZddgddggZeejjZdZ	dZ
dZdZdS )BasicWrite8TestCaser   r   rV   r{   N)r   r   )r9   rr   rs   r3   r   rJ   r6   rx   r7   r/   r2   r\   r!   r%   r%   r%   r&   r~     s   r~   c               @   s$   e Zd ZdZdZdZdZdZdZdS )EmptyCArrayTestCaser   )r   r   )r   r   r   r   r   N)	r9   rr   rs   r7   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   c               @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )EmptyCArray2TestCaser   )r   r   )r   r   r   r   r   N)
r9   rr   rs   r7   r/   r2   rZ   rY   r\   r!   r%   r%   r%   r&   r     s   r   z%LZO compression library not availablec               @   s8   e Zd ZdZdZdZdZdZedddedddfZ	dS )	SlicesCArrayTestCaser   lzor   )r   r   )r   r   r   rV   N)
r9   rr   rs   r<   r*   r7   r/   r2   ri   rh   r%   r%   r%   r&   r     s   r   c               @   s(   e Zd ZdZdZdZeedddfZdS )EllipsisCArrayTestCaser   )r   r   )r   r   r   r   N)	r9   rr   rs   r7   r/   r2   Ellipsisri   rh   r%   r%   r%   r&   r     s   r   c               @   sB   e Zd ZdZdZdZdZdZedddedddedddfZ	dS )	Slices2CArrayTestCaser   r   r   )r   r   r{   )r   r   r   r   Nr{   )
r9   rr   rs   r<   r*   r7   r/   r2   ri   rh   r%   r%   r%   r&   r     s   r   c               @   s2   e Zd ZdZdZdZedddeedddfZdS )Ellipsis2CArrayTestCaser   )r   r   r{   )r   r   r   r   r   r{   N)	r9   rr   rs   r7   r/   r2   ri   r   rh   r%   r%   r%   r&   r     s   r   c               @   s   e Zd ZdZdZdZdZdZedddedddedd	dfZ	edddedd	dedd	dfZ	edddedd	dedd	dfZ	dS )
Slices3CArrayTestCaser   r   r   )r   rV   r{   r   )r   r   r   r   r   r   Nr{   )
r9   rr   rs   r<   r*   r7   r/   r2   ri   rh   r%   r%   r%   r&   r     s   "r   c            	   @   sX   e Zd ZdZdZdZedddedddedddeddded	d
dedddfZdS )Slices4CArrayTestCaser   )r   rV   r{   r   r      )r   r   r   r   r   r   r   r   r   Nr{   rV   r      )r9   rr   rs   r7   r/   r2   ri   rh   r%   r%   r%   r&   r     s
   r   c               @   sV   e Zd ZdZdZdZeedddedddfZedddedddedddefZdS )	Ellipsis3CArrayTestCaser   )r   rV   r{   r   )r   r   r   r   r   r{   Nr   r   )	r9   rr   rs   r7   r/   r2   r   ri   rh   r%   r%   r%   r&   r     s
   r   c               @   sL   e Zd ZdZdZdZeedddedddfZedddeedddfZdS )	Ellipsis4CArrayTestCaser   )r   rV   r{   r   )r   r   r   r   r   r{   Nr   r   )	r9   rr   rs   r7   r/   r2   r   ri   rh   r%   r%   r%   r&   r   !  s
   r   c               @   s2   e Zd ZdZdZdZedddedddefZdS )	Ellipsis5CArrayTestCaser   )r   rV   r{   r   )r   r   r   r   r   r   r   r{   N)	r9   rr   rs   r7   r/   r2   ri   r   rh   r%   r%   r%   r&   r   )  s   r   c               @   s4   e Zd ZdZdZdZedddeddddefZdS )	Ellipsis6CArrayTestCaser   )r   rV   r{   r   )r   r   r   r   r   r   r   r{   N)	r9   rr   rs   r7   r/   r2   ri   r   rh   r%   r%   r%   r&   r   0  s   r   c               @   s:   e Zd ZdZdZdZedddedddedd	efZdS )
Ellipsis7CArrayTestCaser   )r   rV   r{   r   )r   r   r   r   r   r   r   r{   NrV   )	r9   rr   rs   r7   r/   r2   ri   r   rh   r%   r%   r%   r&   r   :  s   r   c               @   s   e Zd ZdZdZdZdZdS )MD3WriteTestCaser   )r   r   rV   )r{   r{   r{   r   N)r9   rr   rs   r7   r/   r2   r\   r%   r%   r%   r&   r   A  s   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )MD5WriteTestCaser   )r   r   rV   r{   r   )r   r   r   r   r   r   r   N)	r9   rr   rs   r7   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r   H  s   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )MD6WriteTestCaser   )r   rV   rV   r   r   r   )r   r   r   r   r   r   r   r   rV   N)	r9   rr   rs   r7   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r   T  s   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )MD6WriteTestCase__r   )r   r   )r   r   r   rV   N)	r9   rr   rs   r7   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r   ]  s   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )MD7WriteTestCaser   )r   rV   rV   r{   r   r   rV   )r   r   r   r   r   r   r   r   r   r   N)	r9   rr   rs   r7   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r   f  s   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )MD10WriteTestCaser   )
r   r   rV   r{   r   r   r{   rV   r   r   )
r   r   r   r   r   r   r   r   r   r   rW   r   N)	r9   rr   rs   r7   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r   o  s   r   c               @   s    e Zd ZdZdZdZdZdZdS )ZlibComprTestCaser   r   rV   Nr   )r9   rr   rs   r<   r*   rZ   rY   r\   r%   r%   r%   r&   r   x  s
   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )ZlibShuffleTestCaser   r   rV   r   N)	r9   rr   rs   r+   r<   r*   rZ   rY   r\   r%   r%   r%   r&   r     s   r   z'BLOSC compression library not availablec               @   s$   e Zd ZdZdZdZdZdZdZdS )BloscComprTestCaser   blosc)r   r   rV   r   N)	r9   rr   rs   r<   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	BloscShuffleTestCase)      r   r   )d   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   zBLOSC >= %s requiredc               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscBitShuffleTestCase)r   r   r   r   )   r   r      r   N)r9   rr   rs   r/   r<   r,   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   c               @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdS )	BloscFletcherTestCase)r   i,  r   r   )r   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r-   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	BloscBloscLZTestCase)r   r   r   zblosc:blosclz)r   r   r   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   Zlz4zlz4 requiredc               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscLZ4TestCase)r   r   r   z	blosc:lz4)r   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	BloscLZ4HCTestCase)r   r   r   zblosc:lz4hc)r   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   Zsnappyzsnappy requiredc               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscSnappyTestCase)r   r   r   zblosc:snappy)r   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   r   zzlib requiredc               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscZlibTestCase)r   r   r   z
blosc:zlib)r   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   Zzstdzzstd requiredc               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscZstdTestCase)r   r   r   z
blosc:zstd)r   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )LZOComprTestCaser   r   )r   r   rV   r   N)	r9   rr   rs   r<   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	LZOShuffleTestCase)r   r   r   r   )r   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   z'BZIP2 compression library not availablec               @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	Bzip2ComprTestCase)r   r   r   bzip2)r   r   rV   r      N)
r9   rr   rs   r/   r<   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r   *  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S )	Bzip2ShuffleTestCase)r   r   r   r   )r   r   rV   r   r   N)r9   rr   rs   r/   r<   r+   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r   6  s   r   c               @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	Fletcher32TestCase)<   2   r   r   )r   r   r{   r   r   N)
r9   rr   rs   r/   r<   r-   r2   rZ   rY   r\   r%   r%   r%   r&   r   C  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S )AllFiltersTestCaser   r   )r   r   r   c   r   N)r9   rr   rs   r<   r+   r-   r*   r2   rZ   rY   r\   r%   r%   r%   r&   r   M  s   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )FloatTypeTestCasefloat64)r   r   )r   r   rV   r   r   N)	r9   rr   rs   r7   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r   X  s   r   c               @   s$   e Zd ZdZdZdZdZdZdZdS )ComplexTypeTestCase
complex128)r   r   )r   r   rV   r   r   N)	r9   rr   rs   r7   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r   a  s   r   c               @   s<   e Zd ZdZdZdZdZdZdZdZ	e
dde
dd	fZd
S )StringTestCaser'   r   )r   r   )r   r   rV   r   r   r   r   N)r9   rr   rs   r7   r8   r/   r2   rZ   rY   r\   ri   rh   r%   r%   r%   r&   r   j  s   r   c               @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	String2TestCaser'   r   )r   r   )r   r   r   r   r   N)
r9   rr   rs   r7   r8   r/   r2   rZ   rY   r\   r%   r%   r%   r&   r   v  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S )	StringComprTestCaser'   r   )r   r   r   r   )r   r   r   rW   r   N)r9   rr   rs   r7   r8   r/   comprr2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	Int8TestCaseint8)r   r   r   )r   r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )Int16TestCaseint16)r   r   r   )r   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	Int32TestCaser   )r   r   r   )r   r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   ZFloat16AtomzFloat16Atom not availablec               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Float16TestCaseZfloat16)r   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	Float32TestCaseZfloat32)r   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	Float64TestCaser   )r   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   ZFloat96AtomzFloat96Atom not availablec               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Float96TestCaseZfloat96)r   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   ZFloat128AtomzFloat128Atom not availablec               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Float128TestCaseZfloat128)r   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	Complex64TestCaseZ	complex64)r{   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     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S )	Complex128TestCaser   )r   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   ZComplex192AtomzComplex192Atom not availablec               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Complex192TestCaseZ
complex192)r   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   ZComplex256AtomzComplex256Atom not availablec               @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Complex256TestCaseZ
complex256)r   r   )r   rW   r   r   N)r9   rr   rs   r7   r/   r<   r+   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   c               @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdS )	ComprTestCaser   r   )r   )   3   r   r   N)r9   rr   rs   r7   r<   r+   r/   r   r2   rZ   rY   r\   r%   r%   r%   r&   r     s   r   c                   s<   e Zd Z fddZdd Zdd Zdd Zd	d
 Z  ZS )ReadOutArgumentTestsc                s(   t t|   d| _tjddd| _d S )Ni  r   r   )r)   r*   )r   r   r   ro   r:   r;   r1   )r#   )r$   r%   r&   r   +  s    zReadOutArgumentTests.setUpc             C   sB   t j| jdd}| jjddt | jf| jd}||d d < ||fS )Ni8)r6   /rp   )r.   r/   r1   )r   rC   ro   r   r=   r
   r1   )r#   rp   
disk_arrayr%   r%   r&   create_array0  s    
z!ReadOutArgumentTests.create_arrayc             C   s:   |   \}}t| jfd}|j|d tj|| d S )Nr   )rf   )r   r   r`   ro   r^   ZtestingZassert_equal)r#   rp   r   
out_bufferr%   r%   r&   test_read_entire_array8  s    z+ReadOutArgumentTests.test_read_entire_arrayc          
   C   s   |   \}}t| jfd}|d| jd }| t|jd| jd| y|d| jd| W n2 tk
r } z| dt| W d d }~X Y nX d S )Nr   r   r   zoutput array not C contiguous)	r   r   r`   ro   assertRaises
ValueErrorr^   rP   str)r#   rp   r   r   Zout_buffer_sliceexcr%   r%   r&   test_read_non_contiguous_buffer>  s    z4ReadOutArgumentTests.test_read_non_contiguous_bufferc          
   C   s   |   \}}t| jd fd}| t|jd| jd| y|d| jd| W n4 tk
r } z| dt|k W d d }~X Y nX d S )Nr   r   r   r   zoutput array size invalid, got)	r   r   r`   ro   r   r   r^   rb   r   )r#   rp   r   r   r   r%   r%   r&   test_buffer_too_smallK  s    z*ReadOutArgumentTests.test_buffer_too_small)	r9   rr   rs   r   r   r   r   r   rt   r%   r%   )r$   r&   r   )  s
   r   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 )"SizeOnDiskInMemoryPropertyTestCasec                s$   t t|   d| _d| _d| _d S )N)i'  r   )i  r   ip  )r   r   r   
array_sizer2   hdf_overhead)r#   )r$   r%   r&   r   X  s    z(SizeOnDiskInMemoryPropertyTestCase.setUpc             C   s2   t j|dd}| jjddt | j|| jd| _d S )Nr   )r)   r*   r   Z	somearray)r.   r/   r1   r2   )r:   r;   r   r=   r   r   r2   rp   )r#   r)   r1   r%   r%   r&   r   a  s    
z/SizeOnDiskInMemoryPropertyTestCase.create_arrayc             C   s2   d}|  | | | jjd | | jjd d S )Nr   i@ )r   rP   rp   size_on_disksize_in_memory)r#   r)   r%   r%   r&   test_no_datai  s    
z/SizeOnDiskInMemoryPropertyTestCase.test_no_datac             C   s@   d}|  | d| jd d < | | jjd | | jjd d S )Nr   r   i@ )r   rp   rP   r   r   )r#   r)   r%   r%   r&   test_data_no_compressiono  s
    
z;SizeOnDiskInMemoryPropertyTestCase.test_data_no_compressionc             C   sz   d}|  | d| jd d < | j  t| jj}| t	| jj
| | jk | | jj
| jjk  | | jjd d S )Nr   i@ )r   rp   r   flushosstatrN   st_sizerb   absr   r   r   rP   )r#   r)   	file_sizer%   r%   r&   test_highly_compressible_datav  s    

z@SizeOnDiskInMemoryPropertyTestCase.test_highly_compressible_datac             C   s   d}|  | tjdd| j| jd d < | j  t	| j
j}| t| jj| | jk tdd k	r~| | jjd n| t| jjd dk  d S )Nr   r   g    .Ar   i@ r   )r   r   ZrandomZrandintr   rp   r   r   r   r   rN   r   rb   r   r   r   r:   Zwhich_lib_versionZassertAlmostEqual)r#   r)   r   r%   r%   r&   test_random_data  s    

z3SizeOnDiskInMemoryPropertyTestCase.test_random_data)
r9   rr   rs   r   r   r   r   r   r   rt   r%   r%   )r$   r&   r   V  s   	r   c                   sD   e Zd ZdZdZ fddZdd Zdd Zd	d
 Zdd Z	  Z
S )OffsetStrideTestCaser   r   c                s   t t|   | jj| _d S )N)r   r   r   r   r   r   )r#   )r$   r%   r&   r     s    zOffsetStrideTestCase.setUpc             C   sl  | j }tjr&tdd td| jj  d}| jj|dtdd|dd	d
}t	j
ddgddgddgggdd}|dddf |d< t	
ddgddgddgddggg}|dddf |d< | }tjrtd| td|jd|j td|d   | |jd | |d  ddgddgg | |d  dd gd d!gg | t|d d | t|d d dS )"z4Checking carray with offseted NumPy strings appends.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01a_String...)rV   r   r   stringsrV   )r(   zArray of strings)r   r   r   )r.   r/   r0   r2   rl   b12345S3)r6   r   r   Nsabfabcr   zObject read:zNrows in:zSecond row in carray ==>s   123s   45   ss   abc   f)r   r   rD   rE   r$   r9   r   r=   r   r   rp   r^   _v_pathnamerS   tolistrP   rR   )r#   r   r/   rH   rl   rd   r%   r%   r&   test01a_String  s4    




  z#OffsetStrideTestCase.test01a_Stringc             C   sp  | j }tjr&tdd td| jj  d}| jj|dtdd|dd	d
}t	j
ddgddgddgggdd}|ddddf |d< t	
ddgddgddgddggg}|ddddf |d< | }tjrtd| td|jd|j td|d   | |jd | |d  ddgdd gg | |d  d!dgd!d"gg | t|d d | t|d d dS )#z3Checking carray with strided NumPy strings appends.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01b_String...)rV   r   r   r   rV   )r(   zArray of strings)r   r   r   )r.   r/   r0   r2   rl   r   r   r   r   )r6   r   Nr   r   r   r   r   r   zObject read:zNrows inr   zSecond row in carray ==>r4      bs   45s   123r   s   abc)r   r   rD   rE   r$   r9   r   r=   r   r   rp   r^   r   rS   r   rP   rR   )r#   r   r/   rH   rl   rd   r%   r%   r&   test01b_String  s4    




  z#OffsetStrideTestCase.test01b_Stringc             C   sJ  | j }tjr&tdd td| jj  d}| jj|dt |ddd}t	j
d	d
dd	gdd}|dd |dd< t	j
ddgdd}|dd |dd< | }tjrtd| td|jd|j td|d  | |jd | t|d t	j
dddgdd | t|d t	j
dddgdd | t|d t	j
dddgdd dS )z1Checking carray with offseted NumPy ints appends.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test02a_int...)rV   rV   CAtomzarray of ints)r   rV   )r.   r/   r0   r2   )r   r   r   )r   r   rV   )r   r   r   r   )r6   r   Nr   )rW   r   r   r   rV   zObject read:zNrows inr   zThird row in carray ==>rW   )r   r   rD   rE   r$   r9   r   r=   r	   r   rp   r^   r   rS   rP   rb   r   )r#   r   r/   rH   rl   rd   r%   r%   r&   test02a_int  s4    


z OffsetStrideTestCase.test02a_intc             C   sN  | j }tjr&tdd td| jj  d}| jj|dt |ddd}t	j
d	d
ddgdd}|ddd |dd< t	j
ddgdd}|ddd |dd< | }tjrtd| td|jd|j td|d  | |jd | t|d t	j
dddgdd | t|d t	j
dddgdd | t|d t	j
dddgdd dS )z0Checking carray with strided NumPy ints appends.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test02b_int...)rV   rV   r   zarray of ints)r   rV   )r.   r/   r0   r2   )r   r   r   )r   r   rV   )r   r   r   )rV   rV   rV   r   )r6   NrV   r   r   )rW   r   r   zObject read:zNrows inr   zThird row in carray ==>r   )r   r   rD   rE   r$   r9   r   r=   r	   r   rp   r^   r   rS   rP   rb   r   )r#   r   r/   rH   rl   rd   r%   r%   r&   test02b_int  s4    


z OffsetStrideTestCase.test02b_int)r9   rr   rs   r<   r*   r   r   r   r   r   rt   r%   r%   )r$   r&   r     s   #$$r   c               @   s\   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d Z
dd Zdd ZdS )CopyTestCasec             C   s  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
dd	gd
dggdd|d< | jrt jrxtd | jdd | jjj}|dd}| jrt jrtd |   | jjj}| jjj}t jrtd|  td|  tdt|j tdt|j | t| |  | |j|j | |j|j | |j|j | |j|j | |jj|jj | |jj|jj | |j|j | t|jt|j dS )zChecking CArray.copy() method.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01a_copy...)r   r   array1ztitle array1)r.   r/   r0   r2   i  r   rV   i  r   )r6   .z(closing file version)rl   )moder   array2z	array1-->z	array2-->zattrs array1-->zattrs array2-->N)r   rD   rE   r$   r9   r   r   r=   r   r   rp   r"   _reopenr   r]   r   r^   rF   attrsrb   r   rP   rS   r/   extdimr>   r.   r6   r7   r0   r   )r#   r/   r.   r   r   r%   r%   r&   test01a_copy.  sF    




zCopyTestCase.test01a_copyc             C   s  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
d	d
gddggdd|d< | jrt jrxtd | jdd | jjj}|dd}| jrt jrtd |   | jjj}| jjj}t jrtd|  td|  tdt|j tdt|j | t| |  | |j|j | |j|j | |j|j | |j|j | |jj|jj | |jj|jj | |j|j | t|jt|j | |j|j dS )zChecking CArray.copy() method.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01b_copy...)r   r   r   ztitle array1)r   r   )r.   r/   r0   r2   i  r   rV   i  r   )r6   .z(closing h5fname version)rl   )r   r   r   z	array1-->z	array2-->zattrs array1-->zattrs array2-->N) r   rD   rE   r$   r9   r   r   r=   r   r   rp   r"   r  r   r]   r   r^   rF   r  rb   r   rP   rS   r/   r  r>   r.   r6   r7   r0   r   r2   )r#   r/   r.   r   r   r%   r%   r&   test01b_copye  sH    




zCopyTestCase.test01b_copyc             C   s  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
d	d
gddggdd|dd
dd
f< | jrt jrtd | jdd | jjj}|dd}| jrt jrtd |   | jjj}| jjj}t jrtd|  td|  tdt|j tdt|j | t| |  | |j|j | |j|j | |j|j | |j|j | |jj|jj | |jj|jj | |j|j | t|jt|j dS )zChecking CArray.copy() method.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01c_copy...)r   r   r   ztitle array1)r   r   )r.   r/   r0   r2   i  r   rV   i  r   )r6   Nz(closing file version)rl   )r   r   r   z	array1-->z	array2-->zattrs array1-->zattrs array2-->)r   rD   rE   r$   r9   r   r   r=   r   r   rp   r"   r  r   r]   r   r^   rF   r  rb   r   rP   rS   r/   r  r>   r.   r6   r7   r0   r   )r#   r/   r.   r   r   r%   r%   r&   test01c_copy  sF    

*


zCopyTestCase.test01c_copyc             C   s  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
d	d
gddggdd|dd
dd
f< | jrt jrtd | jdd | jjj}| jdd}||d}| jrt jrtd |   | jjj}| jjjj}t jr*td|  td|  tdt|j tdt|j | t| |  | |j|j | |j|j | |j|j | |j|j | |jj|jj | |jj|jj | |j|j | t |jt |j dS )z/Checking CArray.copy() method (where specified)rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test02_copy...)r   r   r   ztitle array1)r   r   )r.   r/   r0   r2   i  r   rV   i  r   )r6   Nz(closing file version)rl   )r   r   group1r   z	array1-->z	array2-->zattrs array1-->zattrs array2-->)!r   rD   rE   r$   r9   r   r   r=   r   r   rp   r"   r  r   Zcreate_groupr]   r  r   r^   rF   r  rb   r   rP   rS   r/   r  r>   r.   r6   r7   r0   r   )r#   r/   r.   r   r  r   r%   r%   r&   test02_copy  sH    

*

zCopyTestCase.test02_copyc             C   s  t jr tdd td| jj  d}t }| jj| jjd||ddd}d|_	d	d
gddgg|d< | j
rt jrttd | jdd | jjj}|dd}| j
rt jrtd |   | jjj}| jjj}t jrtdt|j tdt|j | | |  | |j|j | |j|j | |j|j | |j	|j	 | |jj|jj | |jj|jj | |j|j | t|jt|j dS )z-Checking CArray.copy() method (python flavor)rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test03c_copy...)r   r   r   ztitle array1)r.   r/   r0   r2   pythoni  r   rV   i  .z(closing file version)rl   )r   r   r   zattrs array1-->zattrs array2-->N)r   rD   rE   r$   r9   r   r   r=   r   r>   r"   r  r   r]   r   rF   r  rP   r^   rS   r/   r  r.   r6   r7   r0   r   )r#   r/   r.   r   r   r%   r%   r&   test03a_copy	  sD    




zCopyTestCase.test03a_copyc             C   s  t jr tdd td| jj  d}tdd}| jj| jjd||ddd	}d
|_	ddgddgg|d< | j
rt jrxtd | jdd | jjj}|dd}| j
rt jrtd |   | jjj}| jjj}t jr"tdt|dd d d  td|dd  tdt|j tdt|j | | |  | |j|j | |j|j | |j|j | |j	|j	 | |jj|jj | |jj|jj | |j|j | t|jt|j dS )z4Checking CArray.copy() method (string python flavor)rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test03d_copy...)r   r   r{   )r(   r   ztitle array1)r.   r/   r0   r2   r	  45623457.z(closing file version)rl   )r   r   r   ztype value-->Nr   zvalue-->zattrs array1-->zattrs array2-->)r   rD   rE   r$   r9   r   r   r=   r   r>   r"   r  r   r]   r   r7   rF   r  rP   r^   rS   r/   r  r.   r6   r0   r   )r#   r/   r.   r   r   r%   r%   r&   test03b_copy<  sH    





zCopyTestCase.test03b_copyc             C   s  t jr tdd td| jj  d}tdd}| jj| jjd||ddd	}t	j
d
dgddggdd|d< | jrt jr|td | jdd | jjj}|dd}| jrt jrtd |   | jjj}| jjj}t jrtdt|j tdt|j | t| |  | |j|j | |j|j | |j|j | |j|j | |jj|jj | |jj|jj | |j|j | t|jt|j dS )z0Checking CArray.copy() method (chararray flavor)rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test03e_copy...)r   r   r{   )r(   r   ztitle array1)r.   r/   r0   r2   r  r  r  r  ZS4)r6   .z(closing file version)rl   )r   r   r   zattrs array1-->zattrs array2-->N)r   rD   rE   r$   r9   r   r   r=   r   r   rp   r"   r  r   r]   r   rF   r  rb   r   r^   rP   rS   r/   r  r>   r.   r6   r7   r0   r   )r#   r/   r.   r   r   r%   r%   r&   test03c_copyr  sB    





zCopyTestCase.test03c_copyc             C   s  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
dd	gd
dggdd|d< d|j_d	|j_| jrt jrtd | jdd | jjj}|jdddd}| jrt jrtd |   | jjj}| jjj}t jrtd|j | |jd dS )z6Checking CArray.copy() method (checking title copying)rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test04_copy...)r   r   r   ztitle array1)r.   r/   r0   r2   i  r   rV   i  r   )r6   .attr1z(closing file version)rl   )r   r   r   ztitle array2)r0   ztitle of destination array-->N)r   rD   rE   r$   r9   r   r   r=   r   r   rp   r  r  attr2r"   r  r   r]   r   r0   rP   )r#   r/   r.   r   r   r%   r%   r&   test04_copy  s4    




zCopyTestCase.test04_copyc             C   s*  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
dd	gd
dggdd|d< d|j_d	|j_| jrt jrtd | jdd | jjj}|jdddd}| jrt jrtd |   | jjj}| jjj}t jrtdt|j tdt|j | |jjd | |jjd	 dS )z6Checking CArray.copy() method (user attributes copied)rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test05_copy...)r   r   r   ztitle array1)r.   r/   r0   r2   i  r   rV   i  r   )r6   .r  z(closing file version)rl   )r   r   r   r   )copyuserattrszattrs array1-->zattrs array2-->N)r   rD   rE   r$   r9   r   r   r=   r   r   rp   r  r  r  r"   r  r   r]   r   rF   rP   )r#   r/   r.   r   r   r%   r%   r&   test05_copy  s8    




zCopyTestCase.test05_copyc             C   s2  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
dd	gd
dggdd|d< d|j_d	|j_| jrt jrtd | jdd | jjj}|jdddd}| jrt jrtd |   | jjj}| jjj}t jrtdt|j tdt|j | t|jdd | t|jdd dS )z:Checking CArray.copy() method (user attributes not copied)rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test05b_copy...)r   r   r   ztitle array1)r.   r/   r0   r2   i  r   rV   i  r   )r6   .r  z(closing file version)rl   )r   r   r   r   )r  zattrs array1-->zattrs array2-->r  N)r   rD   rE   r$   r9   r   r   r=   r   r   rp   r  r  r  r"   r  r   r]   r   rF   rP   ra   )r#   r/   r.   r   r   r%   r%   r&   test05b_copy  s8    




zCopyTestCase.test05b_copyN)r9   rr   rs   r  r  r  r  r
  r  r  r  r  r  r%   r%   r%   r&   r   ,  s   7578362(+r   c               @   s   e Zd ZdZdS )CloseCopyTestCaser   N)r9   rr   rs   r"   r%   r%   r%   r&   r  #  s   r  c               @   s   e Zd ZdZdS )OpenCopyTestCaser   N)r9   rr   rs   r"   r%   r%   r%   r&   r  '  s   r  c               @   s    e Zd ZdZdd Zdd ZdS )CopyIndexTestCaser   c             C   s*  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
d	d
d}||_||d< | j|_|jdd| j| j| jd}t jrtd|  td|  tdt|j tdt|j || j| j| j }| t||  t jrtd|j td|jd  | |jd |j dS )z+Checking CArray.copy() method with indexes.rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_index...)r   r   r   ztitle array1)r   r   )r.   r/   r0   r2   r   r   )r6   .r   r   )rZ   rY   r\   z	array1-->z	array2-->zattrs array1-->zattrs array2-->znrows in array2-->zand it should be-->r   N)r   rD   rE   r$   r9   r	   r   r=   r   r   rC   r/   rX   r]   rZ   rY   r\   r^   rF   r  rb   r   rS   rP   )r#   r/   r.   r   rL   r   r2r%   r%   r&   test01_index.  s6    


zCopyIndexTestCase.test01_indexc             C   sV  t jr tdd td| jj  d}t }| jj| jjd||ddd}t	j
d	d
d}||_||d< | j|_|jdd| j| j| jd}|   | jjj}| jjj}t jrtd|  td|  tdt|j tdt|j || j| j| j }| |j|j | t||  t jr>td|j td|jd  | |jd |j dS )z?Checking CArray.copy() method with indexes (close file version)rU   z<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=z Running %s.test02_indexclosef...)r   r   r   ztitle array1)r   r   )r.   r/   r0   r2   r   r   )r6   .r   r   )rZ   rY   r\   z	array1-->z	array2-->zattrs array1-->zattrs array2-->znrows in array2-->zand it should be-->r   N)r   rD   rE   r$   r9   r	   r   r=   r   r   rC   r/   rX   r]   rZ   rY   r\   r  r   r   r^   rF   r  rP   r2   rb   r   rS   )r#   r/   r.   r   rL   r   r  r%   r%   r&   _test02_indexclosef\  s>    




z%CopyIndexTestCase._test02_indexclosefN)r9   rr   rs   rX   r  r  r%   r%   r%   r&   r  +  s   .r  c               @   s   e Zd ZdZdZdZdZdS )CopyIndex1TestCaser   r   r   N)r9   rr   rs   rX   rZ   rY   r\   r%   r%   r%   r&   r    s   r  c               @   s   e Zd ZdZdZdZdZdS )CopyIndex2TestCaser   r   rW   r   N)r9   rr   rs   rX   rZ   rY   r\   r%   r%   r%   r&   r    s   r  c               @   s   e Zd ZdZdZdZdZdS )CopyIndex3TestCaserV   r   r   N)r9   rr   rs   rX   rZ   rY   r\   r%   r%   r%   r&   r    s   r  c               @   s   e Zd ZdZdZdZdZdS )CopyIndex4TestCaser{   r   r   r   N)r9   rr   rs   rX   rZ   rY   r\   r%   r%   r%   r&   r     s   r   c               @   s   e Zd ZdZdZdZdZdS )CopyIndex5TestCaser   rV   r   r   N)r9   rr   rs   rX   rZ   rY   r\   r%   r%   r%   r&   r!    s   r!  c               @   s   e Zd ZdZdZdZdZdS )CopyIndex6TestCaser   rV   r   N)r9   rr   rs   rX   rZ   rY   r\   r%   r%   r%   r&   r"    s   r"  c               @   s   e Zd ZdZdZdZdS )CopyIndex7TestCaser   r   r   N)r9   rr   rs   rZ   rY   r\   r%   r%   r%   r&   r#    s   r#  c               @   s   e Zd ZdZdZdZdS )CopyIndex8TestCaser   rW   r   N)r9   rr   rs   rZ   rY   r\   r%   r%   r%   r&   r$    s   r$  c               @   s   e Zd ZdZdZdZdS )CopyIndex9TestCaserV   r{   r   N)r9   rr   rs   rZ   rY   r\   r%   r%   r%   r&   r%    s   r%  c               @   s   e Zd ZdZdZdZdZdS )CopyIndex10TestCaser   rV   r{   r   N)r9   rr   rs   rX   rZ   rY   r\   r%   r%   r%   r&   r&    s   r&  c               @   s   e Zd ZdZdZdZdS )CopyIndex11TestCaserW   r   N)r9   rr   rs   rZ   rY   r\   r%   r%   r%   r&   r'    s   r'  c               @   s   e Zd ZdZdZdZdS )CopyIndex12TestCaserW   Nr   )r9   rr   rs   rZ   rY   r\   r%   r%   r%   r&   r)    s   r)  c                   s,   e Zd ZdZdZ fddZdd Z  ZS )Rows64bitsTestCasei@B i  c          	      s   t t|   | j| j f}| jj| jjdt |t	j
dddd}tj| jdd}td| j}|||< t| jd | j | j| j }|||< d S )	Nrp   r   r   )r*   r)   )r.   r/   r1   r   )r6   r   )r   r*  r   narowsnanumberr   r=   r   r   r:   r;   r   rC   ri   )r#   r/   rp   Znar   )r$   r%   r&   r     s    zRows64bitsTestCase.setUpc          	   C   s  | j jj}| jrptjrPtd td|jt|j td|jd d td|j	 | 
  | j jj}tjrptd tjrtd|jt|j td|jd d td|j	 td|dd	  | jd
 }|dkr|d
8 }|d }tdtj||dd | j| j }| |j| | |j	|f | t|d	d tjddd | jd
 }|dkrZ|d
8 }|d }| t|dd	 tj||dd d	S )z2Some basic checks for carrays exceeding 2**31 rowszBefore closingzEntries:i@B ZMillionszShape:zAfter re-openzLast 10 elements-->iN      r   zShould look like:r   )r6   )r   r   rp   r"   r   rD   rE   rS   r7   r/   r  r+  r   rC   r,  rP   rb   r   )r#   rp   rY   rZ   rS   r%   r%   r&   test01_basiccheck  s>    


"

z$Rows64bitsTestCase.test01_basiccheck)r9   rr   rs   r+  r,  r   r/  rt   r%   r%   )r$   r&   r*    s   r*  c               @   s   e Zd ZdZdS )Rows64bitsTestCase1r   N)r9   rr   rs   r"   r%   r%   r%   r&   r0  *  s   r0  c               @   s   e Zd ZdZdS )Rows64bitsTestCase2r   N)r9   rr   rs   r"   r%   r%   r%   r&   r1  .  s   r1  c                   s0   e Zd ZdZ fddZdd Zdd Z  ZS )BigArrayTestCase)l    ^e c                s*   t t|   | jjddt | jd d S )Nr   rp   )r.   r/   )r   r2  r   r   r=   r   r/   )r#   )r$   r%   r&   r   5  s    
zBigArrayTestCase.setUpc          	   C   s   |  | jjjj| j y |  t| jjj| jd  W nD tk
rz   tjdd dkrv| 	| jd t
tjkd Y nX dS )z&Check that the shape doesn't overflow.r   Nr   )r   r{   z3Array length overflowed but ``int`` is wide enough.)rP   r   r   rp   r/   rR   OverflowErrorsysversion_inforb   r   Ziinfor[   max)r#   r%   r%   r&   test00_shape<  s     zBigArrayTestCase.test00_shapec             C   s   |  d |   dS )z6Check that the shape doesn't overflow after reopening.rL   N)r  r7  )r#   r%   r%   r&   test01_shape_reopenL  s    
z$BigArrayTestCase.test01_shape_reopen)r9   rr   rs   r/   r   r7  r8  rt   r%   r%   )r$   r&   r2  2  s   r2  c               @   s$   e Zd Zdd Zdd Zdd ZdS )DfltAtomTestCasec             C   sv   | j jddtddddd | jr*|   | j jjdd }tjrLt	d	| | 
t|td
gd ddd dS )z1Check that Atom.dflt is honored (string version).r   barr   s   abdef)r(   dflt)r   r   )r.   r/   NzRead values:Zabdefr   ZS5r   )r   r=   r   r!   r  r   r:  r   rD   rE   rb   r   r   rp   reshape)r#   valuesr%   r%   r&   test00_dfltU  s    


zDfltAtomTestCase.test00_dfltc             C   sf   | j jddtdddd | jr(|   | j jjdd }tjrJt	d| | 
t|tdd	 dS )
z.Check that Atom.dflt is honored (int version).r   r:  r   )r;  )r   r   )r.   r/   NzRead values:i4)r   r=   r   r!   r  r   r:  r   rD   rE   rb   r   r   ones)r#   r=  r%   r%   r&   test01_dfltg  s    

zDfltAtomTestCase.test01_dfltc             C   sj   | j jddtdddd | jr(|   | j jjdd }tjrJt	d| | 
t|tdd	d  dS )
z0Check that Atom.dflt is honored (float version).r   r:  g/$?)r;  )r   r   )r.   r/   NzRead values:Zf8)r   r=   r   r!   r  r   r:  r   rD   rE   rb   r   r   r@  )r#   r=  r%   r%   r&   test02_dfltw  s    

zDfltAtomTestCase.test02_dfltN)r9   rr   rs   r>  rA  rB  r%   r%   r%   r&   r9  S  s   r9  c               @   s   e Zd ZdZdS )DfltAtomNoReopenFN)r9   rr   rs   r!   r%   r%   r%   r&   rC    s   rC  c               @   s   e Zd ZdZdS )DfltAtomReopenTN)r9   rr   rs   r!   r%   r%   r%   r&   rD    s   rD  c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )AtomDefaultReprTestCasec             C   s   d}t d|dd}| jjdd|dd}| jr@| d	 | jjj}tjrjt	d
t
|d  t	dt
|jj | t|d t|d | t|jjt|d dS )z(Testing default values.  Zeros (scalar).r%   rV       )r(   r/   r;  r   test)r   )r.   r/   rl   zFirst row-->r   zDefaults-->r   N)r   r   r=   r!   r  r   rG  r   rD   rE   rF   r.   r;  rb   r   r   zeros)r#   Nr.   car%   r%   r&   test00a_zeros  s    

z%AtomDefaultReprTestCase.test00a_zerosc             C   s   d}t d|dd}| jjdd|dd}| jr@| d	 | jjj}tjrbt	d
|d  t	d|j
j | t|d t|d | t|j
jt|d dS )z'Testing default values.  Zeros (array).r   rV   rF  )r(   r/   r;  r   rG  )r   )r.   r/   rl   zFirst row-->r   zDefaults-->r   N)r   r   r=   r!   r  r   rG  r   rD   rE   r.   r;  rb   r   r   rH  )r#   rI  r.   rJ  r%   r%   r&   test00b_zeros  s    

z%AtomDefaultReprTestCase.test00b_zerosc             C   s   d}t |dd}| jjdd|dd}| jr>| d | jjj}tjr`t	d	|d
  t	d|j
j | t|d
 t|d | t|j
jt|d dS )zTesting default values.  Ones.r   r   )r/   r;  r   rG  )r   )r.   r/   rl   zFirst row-->r   zDefaults-->r?  N)r	   r   r=   r!   r  r   rG  r   rD   rE   r.   r;  rb   r   r   r@  )r#   rI  r.   rJ  r%   r%   r&   test01a_values  s    

z&AtomDefaultReprTestCase.test01a_valuesc             C   s   d}d}t ||d}| jjdd|dd}| jrB| d | jjj}tjrdt	d	|d
  t	d|j
j | t|d
 t|d|  | t|j
jt|d|  dS )z'Testing default values.  Generic value.r   gGz\@)r/   r;  r   rG  )r   )r.   r/   rl   zFirst row-->r   zDefaults-->Zf4N)r   r   r=   r!   r  r   rG  r   rD   rE   r.   r;  rb   r   r   r@  )r#   rI  Zgenericr.   rJ  r%   r%   r&   test01b_values  s    

 z&AtomDefaultReprTestCase.test01b_valuesc             C   s   d}t |dd}| jjdd|dd}| jr>| d | jjj}tjrht	d	t
|d
  t	dt
|jj | t|jjt|d dS )z'Testing default values.  None (scalar).r%   N)r/   r;  r   rG  )r   )r.   r/   rl   zFirst row-->r   zDefaults-->r?  )r	   r   r=   r!   r  r   rG  r   rD   rE   rF   r.   r;  rb   r   r   rH  )r#   rI  r.   rJ  r%   r%   r&   test02a_None  s    

z$AtomDefaultReprTestCase.test02a_Nonec             C   s   d}t |dd}| jjdd|dd}| jr>| d | jjj}tjr`t	d	|d
  t	d|j
j | t|j
jt|d dS )z&Testing default values.  None (array).r   N)r/   r;  r   rG  )r   )r.   r/   rl   zFirst row-->r   zDefaults-->r?  )r	   r   r=   r!   r  r   rG  r   rD   rE   r.   r;  rb   r   r   rH  )r#   rI  r.   rJ  r%   r%   r&   test02b_None  s    

z$AtomDefaultReprTestCase.test02b_NoneN)	r9   rr   rs   rK  rL  rM  rN  rO  rP  r%   r%   r%   r&   rE    s   rE  c               @   s   e Zd ZdZdS )AtomDefaultReprNoReopenFN)r9   rr   rs   r!   r%   r%   r%   r&   rQ    s   rQ  c               @   s   e Zd ZdZdS )AtomDefaultReprReopenTN)r9   rr   rs   r!   r%   r%   r%   r&   rR    s   rR  c               @   s   e Zd Zdd ZdS )TruncateTestCasec             C   s,   | j ddt ddg}| t|jd dS )z-Test for unability to truncate Array objects.r   r   r   r   N)r   r=   r   r   	TypeErrortruncate)r#   r   r%   r%   r&   rG    s    zTruncateTestCase.testN)r9   rr   rs   rG  r%   r%   r%   r&   rS    s   rS  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 )MDAtomTestCasec          	   C   s   | j jddtddd}| jr2| d | j jj}ddgd	d
gg|d< | |jd t	j
rhtd|d  | t|d tddgd	d
ggd dS )z9Assign a row to a (unidimensional) CArray with a MD atom.r   rG  )r   r   )r   )r.   r/   rl   r   rV   r{   r   r   zFirst row-->r?  N)r   r=   r	   r!   r  r   rG  rP   rS   r   rD   rE   rb   r   r   rp   )r#   rJ  r%   r%   r&   test01a_assign	  s    


zMDAtomTestCase.test01a_assignc          	   C   s   | j jddtddd}| jr2| d | j jj}dggdggd	ggg|d
d
< | |jd	 t	j
rrtd|d  | t|d td	d	gd	d	ggd d
S )z@Assign several rows to a (unidimensional) CArray with a MD atom.r   rG  )r   r   )rV   )r.   r/   rl   r   r   rV   NzThird row-->r?  )r   r=   r	   r!   r  r   rG  rP   rS   r   rD   rE   rb   r   r   rp   )r#   rJ  r%   r%   r&   test01b_assign	  s    


zMDAtomTestCase.test01b_assignc          
   C   s   | j jddtddd}| jr2| d | j jj}ddgd	d
gddggg|dd< | |jd t	j
rttd|d  | t|d tddgd	d
gddggd dS )z;Assign a row to a (multidimensional) CArray with a MD atom.r   rG  )r   )r   rV   )r.   r/   rl   r   rV   r{   r   r   	   NzFirst row-->r   r?  )r   r=   r	   r!   r  r   rG  rP   rS   r   rD   rE   rb   r   r   rp   )r#   rJ  r%   r%   r&   test02a_assign&	  s    


 zMDAtomTestCase.test02a_assignc          
   C   s   | j jddtddd}| jr2| d | j jj}ddgd	d
gddggddgddgddggddgd
dgddggg|dd< | |jd t	j
rtd|d  | t|d tddgd
dgddggd dS )zJAssign several rows to a (multidimensional) CArray with
        a MD atom.r   rG  )r   )rV   rV   )r.   r/   rl   r   r(  r{   irY  rW   rV   r   r   iiNzThird row-->r   r?  )r   r=   r	   r!   r  r   rG  rP   rS   r   rD   rE   rb   r   r   rp   )r#   rJ  r%   r%   r&   test02b_assign7	  s    


 zMDAtomTestCase.test02b_assignc             C   s   | j jddtddd}| jr2| d | j jj}tjddd		d
}|d |d |d g|dd< | 
|jd tjrtd|d  | t|d |d  dS )z;Complex assign of a MD array in a MD CArray with a MD atom.r   rG  )r   r{   )rV   r   rV   )r.   r/   rl   0   r?  )r6   )r   rV   r   r{   r   r   rV   NzThird row-->)r   r=   r	   r!   r  r   rG  r   rC   r<  rP   rS   r   rD   rE   rb   r   )r#   rJ  rl   r%   r%   r&   test03a_MDMDMDK	  s    


zMDAtomTestCase.test03a_MDMDMDc             C   s   | j jddtddd}| jr2| d | j jj}tjddd		d
}||dd< | 
|jd tjr~td|ddddf  | t|ddddf |ddddf  dS )z@Complex assign of a MD array in a MD CArray with a MD atom (II).r   rG  )r   r{   )r   rV   rV   )r.   r/   rl      r?  )r6   )r   rV   rV   r   r{   Nr   zThird row-->.)r   r=   r	   r!   r  r   rG  r   rC   r<  rP   rS   r   rD   rE   rb   r   )r#   rJ  rl   r%   r%   r&   test03b_MDMDMD^	  s    

zMDAtomTestCase.test03b_MDMDMDc          	   C   s   | j jddtddd}| jr2| d | j jj}tjddd		d
}||dd< | 
|jd tjrtd|ddddddf  | t|ddddddf |ddddddf  dS )zAComplex assign of a MD array in a MD CArray with a MD atom (III).r   rG  )r   r{   )rV   r   r   )r.   r/   rl   r_  r?  )r6   )rV   r   r   r   r{   NrV   zSecond row-->r   .)r   r=   r	   r!   r  r   rG  r   rC   r<  rP   rS   r   rD   rE   rb   r   )r#   rJ  rl   r%   r%   r&   test03c_MDMDMDq	  s    


zMDAtomTestCase.test03c_MDMDMDN)
r9   rr   rs   rW  rX  rZ  r^  r`  rb  rc  r%   r%   r%   r&   rV  	  s   rV  c               @   s   e Zd ZdZdS )MDAtomNoReopenFN)r9   rr   rs   r!   r%   r%   r%   r&   rd  	  s   rd  c               @   s   e Zd ZdZdS )MDAtomReopenTN)r9   rr   rs   r!   r%   r%   r%   r&   re  	  s   re  c               @   s   e Zd Zdd ZdS )MDLargeAtomTestCasec             C   sl   d}| j jddt|ddd}| jr8| d | j jj}tjrLt	d|d	  | 
t|d	 t|d
 dS )z*Create a CArray with a very large MD atom.i   r   rG  )r/   )r   )r.   r/   rl   zFirst row-->r   r?  N)r   r=   r	   r!   r  r   rG  r   rD   rE   rb   r   r   rH  )r#   rI  rJ  r%   r%   r&   test01_create	  s    


z!MDLargeAtomTestCase.test01_createN)r9   rr   rs   rg  r%   r%   r%   r&   rf  	  s   rf  c               @   s   e Zd ZdZdS )MDLargeAtomNoReopenFN)r9   rr   rs   r!   r%   r%   r%   r&   rh  	  s   rh  c               @   s   e Zd ZdZdS )MDLargeAtomReopenTN)r9   rr   rs   r!   r%   r%   r%   r&   ri  	  s   ri  c                   s4   e Zd Z fddZdd Zdd Zdd Z  ZS )	AccessClosedTestCasec                s>   t t|   | jj| jjdt dd| _t	d| jd< d S )Nrp   )r   r   )r.   r/   .)
r   rj  r   r   r=   r   r	   rp   r   rH  )r#   )r$   r%   r&   r   	  s
    
zAccessClosedTestCase.setUpc             C   s    | j   | tj| jj d S )N)r   r"   r   r:   ClosedNodeErrorrp   r^   )r#   r%   r%   r&   	test_read	  s    
zAccessClosedTestCase.test_readc             C   s"   | j   | tj| jjd d S )Nr   )r   r"   r   r:   rk  rp   rj   )r#   r%   r%   r&   test_getitem	  s    
z!AccessClosedTestCase.test_getitemc             C   s$   | j   | tj| jjdd d S )Nr   )r   r"   r   r:   rk  rp   __setitem__)r#   r%   r%   r&   test_setitem	  s    
z!AccessClosedTestCase.test_setitem)r9   rr   rs   r   rl  rm  ro  rt   r%   r%   )r$   r&   rj  	  s   rj  c               @   s   e Zd Zedddgdddgddd	ggZd
ZdZe	ej
ZejZdZdZdZd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d Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ ZdS ),TestCreateCArrayArgsr   r   rV   r{   r   r   r   r   rY  r   rH   r0   N)r   r   Fc          	   C   s   | j | j| j| j| j| j| j| j | j 	  t
| j| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | tt| j| d S )N)r   r=   whererx   r.   r/   r0   r1   r2   r"   r:   rM   rN   rO   r^   rP   r6   rb   r   r   
zeros_liker3   )r#   ptarrnparrr%   r%   r&   test_positional_args_01	  s    
z,TestCreateCArrayArgs.test_positional_args_01c          	   C   s   | j | j| j| j| j| j| j| j}| j	|d< | j 
  t| j| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | t| j	| d S )N.)r   r=   rq  rx   r.   r/   r0   r1   r2   r3   r"   r:   rM   rN   rO   r^   rP   r6   rb   r   )r#   rs  rt  r%   r%   r&   test_positional_args_02	  s    

z,TestCreateCArrayArgs.test_positional_args_02c             C   s   | j | j| jd d | j| j| j| j| j| j	
 | j 
  t| j| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | t| j	| d S )N)r   r=   rq  rx   r0   r1   r2   	byteordercreateparentsr3   r"   r:   rM   rN   rO   r^   rP   r/   r.   r6   rb   r   )r#   rs  rt  r%   r%   r&   test_positional_args_obj	  s     
z-TestCreateCArrayArgs.test_positional_args_objc             C   s   | j j| j| j| j| j| jd | j   t	| j
| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | t| j| d S )N)r0   r2   r3   )r   r=   rq  rx   r0   r2   r3   r"   r:   rM   rN   rO   r^   rP   r/   r.   r6   rb   r   )r#   rs  rt  r%   r%   r&   test_kwargs_obj
  s    

z$TestCreateCArrayArgs.test_kwargs_objc             C   s   | j j| j| j| j| j| j| jd}| j|d< | j 	  t
| j| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | t| j| d S )N)r0   r2   r.   r/   .)r   r=   rq  rx   r0   r2   r.   r/   r3   r"   r:   rM   rN   rO   r^   rP   r6   rb   r   )r#   rs  rt  r%   r%   r&   test_kwargs_atom_shape_01
  s    

z.TestCreateCArrayArgs.test_kwargs_atom_shape_01c             C   s   | j j| j| j| j| j| j| jd}| j   t	
| j| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | tt| j| d S )N)r0   r2   r.   r/   )r   r=   rq  rx   r0   r2   r.   r/   r"   r:   rM   rN   rO   r^   rP   r6   rb   r   r   rr  r3   )r#   rs  rt  r%   r%   r&   test_kwargs_atom_shape_02&
  s    
z.TestCreateCArrayArgs.test_kwargs_atom_shape_02c             C   s   | j j| j| j| j| j| j| jd}| j   t	
| j| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | t| j| d S )N)r0   r2   r3   r.   )r   r=   rq  rx   r0   r2   r3   r.   r"   r:   rM   rN   rO   r^   rP   r/   r6   rb   r   )r#   rs  rt  r%   r%   r&   test_kwargs_obj_atom9
  s    

z)TestCreateCArrayArgs.test_kwargs_obj_atomc             C   s   | j j| j| j| j| j| j| jd}| j   t	
| j| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | t| j| d S )N)r0   r2   r3   r/   )r   r=   rq  rx   r0   r2   r3   r/   r"   r:   rM   rN   rO   r^   rP   r.   r6   rb   r   )r#   rs  rt  r%   r%   r&   test_kwargs_obj_shapeL
  s    

z*TestCreateCArrayArgs.test_kwargs_obj_shapec          	   C   s   | j j| j| j| j| j| j| j| jd}| j 	  t
| j| _ | j | j| j}| }| |j| j | |j| j | |j| j | |jj| jj | |j| j | t| j| d S )N)r0   r2   r3   r.   r/   )r   r=   rq  rx   r0   r2   r3   r.   r/   r"   r:   rM   rN   rO   r^   rP   r6   rb   r   )r#   rs  rt  r%   r%   r&   test_kwargs_obj_atom_shape_
  s     

z/TestCreateCArrayArgs.test_kwargs_obj_atom_shapec          	   C   s8   t td}| jt| jj| j| j	| j
| j|d d S )Ncomplex)r0   r3   r.   )r   
from_dtyper   r6   r   rT  r   r=   rq  rx   r0   r3   )r#   r.   r%   r%   r&   test_kwargs_obj_atom_errors
  s    z/TestCreateCArrayArgs.test_kwargs_obj_atom_errorc          	   C   s4   | j | j  }| jt| jj| j| j| j| j|d d S )N)r0   r3   r/   )	r/   r   rT  r   r=   rq  rx   r0   r3   )r#   r/   r%   r%   r&   test_kwargs_obj_shape_error~
  s    z0TestCreateCArrayArgs.test_kwargs_obj_shape_errorc          
   C   s<   t td}| jt| jj| j| j	| j
| j|| jd d S )Nr  )r0   r3   r.   r/   )r   r  r   r6   r   rT  r   r=   rq  rx   r0   r3   r/   )r#   r.   r%   r%   r&   #test_kwargs_obj_atom_shape_error_01
  s    z8TestCreateCArrayArgs.test_kwargs_obj_atom_shape_error_01c          
   C   s8   | j | j  }| jt| jj| j| j| j| j| j	|d d S )N)r0   r3   r.   r/   )
r/   r   rT  r   r=   rq  rx   r0   r3   r.   )r#   r/   r%   r%   r&   #test_kwargs_obj_atom_shape_error_02
  s    z8TestCreateCArrayArgs.test_kwargs_obj_atom_shape_error_02c          
   C   sF   t td}| j| j }| jt| jj| j	| j
| j| j||d d S )Nr  )r0   r3   r.   r/   )r   r  r   r6   r/   r   rT  r   r=   rq  rx   r0   r3   )r#   r.   r/   r%   r%   r&   #test_kwargs_obj_atom_shape_error_03
  s    z8TestCreateCArrayArgs.test_kwargs_obj_atom_shape_error_03) r9   rr   rs   r   rp   r3   rq  rx   r   r  r6   r.   r/   r0   r1   r2   rw  rx  ru  rv  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r%   r%   r%   r&   rp  	  s0   "rp  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 | 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( | t t) | t t* | t t+ | t t, | t t- | t t. | t t/ | t t0 | t t1 | t t2 | t t3 | t t4 | t t5 | t t6 | t t7 | t t8 | t t9 | t t: | t t; | t t< | t t= | t t> | t t? | t t@ | t tA | t tB | t tC | t tD | t tE | t tF | t tG | t tH | t tI | t tJ | t tK | t tL | t tM qW tNjOr| t tP | t tQ | t tR | t tS | t tT | t tU | t tV | t tW | t tX | t tY | t tZ | t t[ | t t\ | t t] | t t^ | t t_ | t t` | t ta | t tb | t tc | S )Nr   )dr   Z	TestSuiter   ZaddTestZ	makeSuiteru   rv   rw   ry   rz   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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!  r2  rC  rD  rQ  rR  rS  rd  re  rh  ri  rj  rp  r   Zheavyr   r   r   r   r   r   r   r   r   r   r   r"  r#  r$  r%  r&  r'  r)  r0  r1  )ZtheSuiteZniternr%   r%   r&   suite
  s    r  __main__)ZdefaultTest)Z
__future__r   r   r   r4  r   r:   r   r   r   r   r   r	   r
   r   r   Ztables.testsr   Ztables.tests.commonr   r   r   r   ZTestCaseZ	six.movesr   ZTempFileMixinr   ru   rv   rw   ry   rz   r|   r}   r~   r   r   ZskipIfZ	lzo_availr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zblosc_availr   r   Zmin_blosc_bitshuffle_versionr   r   r   Zblosc_compressor_listr   r   r   r   r   r   r   Zbzip2_availr   r   r   r   r   r   r   r   r   r   r   r   Z
skipUnlessra   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*  r0  r1  r2  r9  rC  rD  rE  rQ  rR  rS  rV  rd  re  rf  rh  ri  rj  rp  r  r9   Z
parse_argvargvZprint_versionsmainr%   r%   r%   r&   <module>   sZ  ,  j								
		
					

	















	



		
-=    zbM!5b	  qj
