3
Péd|L  ã               @   s  d dl mZ d dlZejejeƒdƒZd dlZd dl	m
Z
mZmZmZ d dlmZ dd„ Zdd	„ Zd
d„ ZejeƒZG dd„ dƒZG dd„ dƒZG dd„ deƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZdd„ Zd d!„ Z dS )"é    )ÚpathNÚdata)Úassert_equalÚassert_array_equalÚassert_Úsuppress_warnings)Úreadsavc              G   s8   t jt| ƒtd}x tt| ƒƒD ]}| | ||< q W |S )z#Constructs a numpy array of objects)Údtype)ÚnpÚemptyÚlenÚobjectÚrange)ÚargsÚarrayÚi© r   úK/var/www/html/virt/lib64/python3.6/site-packages/scipy/io/tests/test_idl.pyÚobject_array   s    r   c             C   sL   t | |ƒ t|ƒtkr*t t| ƒt|ƒƒ nt tj| ƒjjtj|ƒjjƒ dS )z*Assert whether value AND type are the sameN)r   ÚtypeÚstrr
   Zasarrayr	   )ÚaÚbr   r   r   Úassert_identical   s    
r   c             C   s    t | |ƒ t| jj|jjƒ dS )z+Assert whether values AND type are the sameN)r   r   r	   r   )r   r   r   r   r   Úassert_array_identical   s    
r   c               @   s   e Zd Zdd„ ZdS )Ú	TestIdictc             C   sr   dt jdƒi}t|ƒ}ttjtdƒ|dd}t|t|ƒƒ td|kƒ t	|d t jdƒƒ t	|d t j
dƒƒ d S )Nr   iç  zscalar_byte.savF)ZidictÚverboseÚi8uéê   )r
   Úint16Úidr   r   ÚjoinÚ	DATA_PATHr   r   r   Úuint8)ÚselfZcustom_dictZoriginal_idÚsr   r   r   Ú
test_idict)   s    zTestIdict.test_idictN)Ú__name__Ú
__module__Ú__qualname__r&   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d„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS ) ÚTestScalarsc             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_byte.savF)r   r   )r   r   r!   r"   r   r   r
   r#   )r$   r%   r   r   r   Ú	test_byte6   s    zTestScalars.test_bytec             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_int16.savF)r   i [  i`¤ÿÿ)r   r   r!   r"   r   Zi16sr
   r   )r$   r%   r   r   r   Ú
test_int16:   s    zTestScalars.test_int16c             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_int32.savF)r   iÒ–Ii.ýi¶)r   r   r!   r"   r   Zi32sr
   Úint32)r$   r%   r   r   r   Ú
test_int32>   s    zTestScalars.test_int32c             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_float32.savF)r   g•ÐÃ·Gg•ÐÃ·Ç)r   r   r!   r"   r   Úf32r
   Úfloat32)r$   r%   r   r   r   Útest_float32B   s    zTestScalars.test_float32c             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_float64.savF)r   g‰CÌmC±g‰CÌmC±ÿ)r   r   r!   r"   r   Zf64r
   Úfloat64)r$   r%   r   r   r   Útest_float64F   s    zTestScalars.test_float64c             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_complex32.savF)r   g  )Ž¨j¼By        Ì•h~ð=rFy  )Ž¨j¼BÌ•h~ð=rÆ)r   r   r!   r"   r   Zc32r
   Ú	complex64)r$   r%   r   r   r   Útest_complex32J   s    zTestScalars.test_complex32c             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_string.savF)r   z.The quick brown fox jumps over the lazy python)r   r   r!   r"   r   r%   r
   Úbytes_)r$   r%   r   r   r   Ú
test_bytesN   s    zTestScalars.test_bytesc             C   s   d S )Nr   )r$   r   r   r   Útest_structureR   s    zTestScalars.test_structurec             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_complex64.savF)r   g*ÙÃÜð3Wy        ¾o‚Òy*ÙÃÜð3W¾o‚Òÿ)r   r   r!   r"   r   Úc64r
   Ú
complex128)r$   r%   r   r   r   Útest_complex64U   s    zTestScalars.test_complex64c             C   s   d S )Nr   )r$   r   r   r   Útest_heap_pointerY   s    zTestScalars.test_heap_pointerc             C   s   d S )Nr   )r$   r   r   r   Útest_object_reference\   s    z!TestScalars.test_object_referencec             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_uint16.savF)r   içÿ  )r   r   r!   r"   r   Zi16ur
   Zuint16)r$   r%   r   r   r   Útest_uint16_   s    zTestScalars.test_uint16c             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_uint32.savF)r   l   Áÿ )r   r   r!   r"   r   Zi32ur
   Zuint32)r$   r%   r   r   r   Útest_uint32c   s    zTestScalars.test_uint32c             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_int64.savF)r   l   '{ÿÿÿ lûÿÿÿ'{ÿÿÿ )r   r   r!   r"   r   Zi64sr
   Zint64)r$   r%   r   r   r   Ú
test_int64g   s    zTestScalars.test_int64c             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_uint64.savF)r   l   Å(ÿÿÿ )r   r   r!   r"   r   Zi64ur
   Zuint64)r$   r%   r   r   r   Útest_uint64k   s    zTestScalars.test_uint64N)r'   r(   r)   r+   r,   r.   r1   r3   r5   r7   r8   r;   r<   r=   r>   r?   r@   rA   r   r   r   r   r*   3   s   r*   c               @   s   e Zd Zdd„ ZdS )ÚTestCompressedc             C   sð   t tjtdƒdd}t|jtjdƒƒ t|jtj	dƒƒ t|j
tjdƒƒ t|jjdƒ t|jjd tjddd	gtjdƒ t|jjd tjddddgtj	dƒ t|jjd tjtjdƒtjdƒgƒƒ t|jjd tjdddgtdƒ d S )Nzvarious_compressed.savF)r   r   g•ÐÃ·Gg*ÙÃÜð3Wy        ¾o‚Òé   é   é   é   r   é   é   )r	   g      @g      @g      @g      @y               @é   y               @s   cheeses   bacons   spamg•ÐÃ·Çy*ÙÃÜð3W¾o‚Òÿ)rC   rD   rC   rE   rF   y      ð?       @y      @       @)r   r   r!   r"   r   r   r
   r#   r/   r0   r9   r:   r   Úarray5dÚshapeÚarraysr   r   r   r   Úcr4   Údr   )r$   r%   r   r   r   Útest_compresseds   s    $&(zTestCompressed.test_compressedN)r'   r(   r)   rO   r   r   r   r   rB   p   s   rB   c               @   sL   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S )ÚTestArrayDimensionsc             C   s&   t tjtdƒdd}t|jjdƒ d S )Nzarray_float32_1d.savF)r   é{   )rQ   )r   r   r!   r"   r   Úarray1drK   )r$   r%   r   r   r   Útest_1dƒ   s    zTestArrayDimensions.test_1dc             C   s&   t tjtdƒdd}t|jjdƒ d S )Nzarray_float32_2d.savF)r   é   é   )rT   rU   )r   r   r!   r"   r   Úarray2drK   )r$   r%   r   r   r   Útest_2d‡   s    zTestArrayDimensions.test_2dc             C   s&   t tjtdƒdd}t|jjdƒ d S )Nzarray_float32_3d.savF)r   é   rT   rU   )rX   rT   rU   )r   r   r!   r"   r   Úarray3drK   )r$   r%   r   r   r   Útest_3d‹   s    zTestArrayDimensions.test_3dc             C   s&   t tjtdƒdd}t|jjdƒ d S )	Nzarray_float32_4d.savF)r   rC   rF   é   rI   )rC   rF   r[   rI   )r   r   r!   r"   r   Úarray4drK   )r$   r%   r   r   r   Útest_4d   s    zTestArrayDimensions.test_4dc             C   s&   t tjtdƒdd}t|jjdƒ d S )	Nzarray_float32_5d.savF)r   rC   rD   rE   rF   )rC   rD   rC   rE   rF   )r   r   r!   r"   r   rJ   rK   )r$   r%   r   r   r   Útest_5d“   s    zTestArrayDimensions.test_5dc             C   s&   t tjtdƒdd}t|jjdƒ d S )	Nzarray_float32_6d.savF)r   rD   rE   rC   rF   )rD   rE   rC   rF   rD   rC   )r   r   r!   r"   r   Úarray6drK   )r$   r%   r   r   r   Útest_6d—   s    zTestArrayDimensions.test_6dc          	   C   s&   t tjtdƒdd}t|jjdƒ d S )	Nzarray_float32_7d.savF)r   rH   rG   rD   rC   )rH   rG   rH   rD   rC   rD   rH   )r   r   r!   r"   r   Úarray7drK   )r$   r%   r   r   r   Útest_7d›   s    zTestArrayDimensions.test_7dc          
   C   s&   t tjtdƒdd}t|jjd	ƒ d S )
Nzarray_float32_8d.savF)r   rC   rD   rH   rG   rF   )rC   rD   rH   rG   rH   rD   rF   rC   )r   r   r!   r"   r   Úarray8drK   )r$   r%   r   r   r   Útest_8dŸ   s    zTestArrayDimensions.test_8dN)r'   r(   r)   rS   rW   rZ   r]   r^   r`   rb   rd   r   r   r   r   rP   €   s   rP   c               @   sL   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S )ÚTestStructuresc             C   s´   t tjtdƒdd}t|jjtjtj	dƒƒƒ t|jj
tjtjdƒƒƒ t|jjtjtjdƒƒƒ t|jjtjtjdƒƒƒ t|jjtjdgtd	ƒ t|jjtjtjdƒƒƒ d S )Nzstruct_scalars.savF)r   rG   rH   g      @g      @s   spam)r	   g      ð?y              @g      ð¿y      ð¿      @)r   r   r!   r"   r   Zscalarsr   r
   r   r   r   r-   rM   r0   rN   r2   Úer   Úfr4   )r$   r%   r   r   r   Útest_scalars¦   s    zTestStructures.test_scalarsc             C   sÀ   t tjtdƒdd}t|jjtjtj	dƒdƒƒ t|jj
tjtjdƒdƒƒ t|jjtjtjdƒdƒƒ t|jjtjtjdƒdƒƒ t|jjtjd	dƒjtƒƒ t|jjtjtjdƒdƒƒ d S )Nzstruct_scalars_replicated.savF)r   rG   rF   rH   g      @g      @s   spamg      ð?y              @g      ð¿y      ð¿      @)r   r   r!   r"   r   Úscalars_repr   r
   Úrepeatr   r   r-   rM   r0   rN   r2   rf   Úastyper   rg   r4   )r$   r%   r   r   r   Útest_scalars_replicated¯   s    z&TestStructures.test_scalars_replicatedc             C   sü   t tjtdƒdd}t|jjtjtj	dƒdƒj
dddƒƒ t|jjtjtjdƒdƒj
dddƒƒ t|jjtjtjd	ƒdƒj
dddƒƒ t|jjtjtjd
ƒdƒj
dddƒƒ t|jjtjddƒj
dddƒjtƒƒ t|jjtjtjdƒdƒj
dddƒƒ d S )Nz struct_scalars_replicated_3d.savF)r   rG   é   rC   rD   rH   g      @g      @s   spamg      ð?y              @g      ð¿y      ð¿      @)r   r   r!   r"   r   ri   r   r
   rj   r   Úreshaper   r-   rM   r0   rN   r2   rf   rk   r   rg   r4   )r$   r%   r   r   r   Útest_scalars_replicated_3d¸   s    &&&&&z)TestStructures.test_scalars_replicated_3dc             C   s¬   t tjtdƒdd}t|jjd tjdddgtj	dƒ t|jj
d tjd	d
ddgtjdƒ t|jjd tjtjdƒtjdƒgƒƒ t|jjd tjdddgtdƒ d S )Nzstruct_arrays.savF)r   r   rG   rH   rD   )r	   g      @g      @g      @g      @y               @rI   y               @s   cheeses   bacons   spamy      ð?       @y      @       @)r   r   r!   r"   r   rL   r   r
   r   r   r   r0   rM   r4   rN   r   )r$   r%   r   r   r   Útest_arraysÁ   s
    $&(zTestStructures.test_arraysc             C   sV  t tjtdƒdd}t|jjjjt	j
kƒ t|jjjjt	j
kƒ t|jjjjt	j
kƒ t|jjjjt	j
kƒ t|jjjdƒ t|jjjdƒ t|jjjdƒ t|jjjdƒ x¤tdƒD ]˜}t|jj| t	jdddgt	jdƒ t|jj| t	jd	d
ddgt	jdƒ t|jj| t	jt	jdƒt	jdƒgƒƒ t|jj| t	jdddgtdƒ q¶W d S )Nzstruct_arrays_replicated.savF)r   rF   rG   rH   rD   )r	   g      @g      @g      @g      @y               @rI   y               @s   cheeses   bacons   spam)rF   )rF   )rF   )rF   y      ð?       @y      @       @)r   r   r!   r"   r   Ú
arrays_repr   r	   r   r
   Úobject_r   rM   rN   r   rK   r   r   r   r   r0   r4   r   )r$   r%   r   r   r   r   Útest_arrays_replicatedÈ   s(    z%TestStructures.test_arrays_replicatedc          
   C   s’  t tjtdƒdd}t|jjjjt	j
kƒ t|jjjjt	j
kƒ t|jjjjt	j
kƒ t|jjjjt	j
kƒ t|jjjdƒ t|jjjdƒ t|jjjdƒ t|jjjdƒ xàtdƒD ]Ô}xÎtdƒD ]Â}x¼tdƒD ]°}t|jj|||f t	jdddgt	jdƒ t|jj|||f t	jd	d
ddgt	jdƒ t|jj|||f t	jt	jdƒt	jdƒgƒƒ t|jj|||f t	jdddgtdƒ qÒW qÄW q¶W d S )Nzstruct_arrays_replicated_3d.savF)r   rC   rD   rH   rG   )r	   g      @g      @g      @g      @y               @rI   y               @s   cheeses   bacons   spam)rC   rD   rH   )rC   rD   rH   )rC   rD   rH   )rC   rD   rH   y      ð?       @y      @       @)r   r   r!   r"   r   rq   r   r	   r   r
   rr   r   rM   rN   r   rK   r   r   r   r   r0   r4   r   )r$   r%   r   ÚjÚkr   r   r   Útest_arrays_replicated_3dä   s.    z(TestStructures.test_arrays_replicated_3dc             C   sˆ   t tjtdƒdd}t|jjtjdgtj	dƒ t|jj
tjdgtj	dƒ t|jjtjdgtj	dƒ t|jjtjdgtj	dƒ d S )Nzstruct_inherit.savF)r   r   )r	   rC   )r   r   r!   r"   r   ZfcÚxr
   r   r   ÚyÚrrM   )r$   r%   r   r   r   Útest_inheritance  s
    zTestStructures.test_inheritancec             C   sX   t ƒ &}|jtdƒ ttjtdƒdd}W d Q R X t|jj	d t
jddgt
jdƒ d S )	Nz.Not able to verify number of bytes from headerzstruct_arrays_byte_idl80.savF)r   r   é7   éB   )r	   )r   ÚfilterÚUserWarningr   r   r!   r"   r   rx   rw   r
   r   r#   )r$   Úsupr%   r   r   r   Útest_arrays_corrupt_idl80
  s
    z(TestStructures.test_arrays_corrupt_idl80N)r'   r(   r)   rh   rl   ro   rp   rs   rv   rz   r€   r   r   r   r   re   ¤   s   			re   c               @   s   e Zd Zdd„ ZdS )ÚTestPointersc             C   sL   t tjtdƒdd}t|jtjdƒƒ t|jtjdƒƒ t	|j|jkƒ d S )Nzscalar_heap_pointer.savF)r   g*ÙÃÜð3Wy        ¾o‚Òy*ÙÃÜð3W¾o‚Òÿy*ÙÃÜð3W¾o‚Òÿ)
r   r   r!   r"   r   Zc64_pointer1r
   r:   Zc64_pointer2r   )r$   r%   r   r   r   Útest_pointers  s    zTestPointers.test_pointersN)r'   r(   r)   r‚   r   r   r   r   r     s   r   c               @   sL   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S )ÚTestPointerArrayc             C   sb   t tjtdƒdd}t|jjdƒ ttj	|jtj
dƒkƒƒ ttj	t|jƒt|jd ƒkƒƒ d S )Nzarray_float32_pointer_1d.savF)r   rQ   g      @r   )rQ   )r   r   r!   r"   r   rR   rK   r   r
   Úallr0   Úvect_idr    )r$   r%   r   r   r   rS   !  s    zTestPointerArray.test_1dc             C   sb   t tjtdƒdd}t|jjdƒ ttj	|jtj
dƒkƒƒ ttj	t|jƒt|jd	 ƒkƒƒ d S )
Nzarray_float32_pointer_2d.savF)r   rT   rU   g      @r   )rT   rU   )r   r   )r   r   r!   r"   r   rV   rK   r   r
   r„   r0   r…   r    )r$   r%   r   r   r   rW   '  s    zTestPointerArray.test_2dc             C   sb   t tjtdƒdd}t|jjd	ƒ ttj	|jtj
dƒkƒƒ ttj	t|jƒt|jd
 ƒkƒƒ d S )Nzarray_float32_pointer_3d.savF)r   rX   rT   rU   g      @r   )rX   rT   rU   )r   r   r   )r   r   r!   r"   r   rY   rK   r   r
   r„   r0   r…   r    )r$   r%   r   r   r   rZ   -  s    zTestPointerArray.test_3dc          	   C   sb   t tjtdƒdd}t|jjd
ƒ ttj	|jtj
dƒkƒƒ ttj	t|jƒt|jd ƒkƒƒ d S )Nzarray_float32_pointer_4d.savF)r   rC   rF   r[   rI   g      @r   )rC   rF   r[   rI   )r   r   r   r   )r   r   r!   r"   r   r\   rK   r   r
   r„   r0   r…   r    )r$   r%   r   r   r   r]   3  s    zTestPointerArray.test_4dc          
   C   sb   t tjtdƒdd}t|jjd
ƒ ttj	|jtj
dƒkƒƒ ttj	t|jƒt|jd ƒkƒƒ d S )Nzarray_float32_pointer_5d.savF)r   rC   rD   rE   rF   g      @r   )rC   rD   rC   rE   rF   )r   r   r   r   r   )r   r   r!   r"   r   rJ   rK   r   r
   r„   r0   r…   r    )r$   r%   r   r   r   r^   9  s    zTestPointerArray.test_5dc             C   sb   t tjtdƒdd}t|jjd
ƒ ttj	|jtj
dƒkƒƒ ttj	t|jƒt|jd ƒkƒƒ d S )Nzarray_float32_pointer_6d.savF)r   rD   rE   rC   rF   g      @r   )rD   rE   rC   rF   rD   rC   )r   r   r   r   r   r   )r   r   r!   r"   r   r_   rK   r   r
   r„   r0   r…   r    )r$   r%   r   r   r   r`   ?  s    zTestPointerArray.test_6dc             C   sb   t tjtdƒdd}t|jjd
ƒ ttj	|jtj
dƒkƒƒ ttj	t|jƒt|jd ƒkƒƒ d S )Nzarray_float32_pointer_7d.savF)r   rH   rG   rD   rC   g      @r   )rH   rG   rH   rD   rC   rD   rH   )r   r   r   r   r   r   r   )r   r   r!   r"   r   ra   rK   r   r
   r„   r0   r…   r    )r$   r%   r   r   r   rb   E  s    zTestPointerArray.test_7dc             C   sb   t tjtdƒdd}t|jjdƒ ttj	|jtj
d	ƒkƒƒ ttj	t|jƒt|jd ƒkƒƒ d S )Nzarray_float32_pointer_8d.savF)r   rC   rD   rH   rG   rF   g      @r   )rC   rD   rH   rG   rH   rD   rF   rC   )r   r   r   r   r   r   r   r   )r   r   r!   r"   r   rc   rK   r   r
   r„   r0   r…   r    )r$   r%   r   r   r   rd   K  s    zTestPointerArray.test_8dN)r'   r(   r)   rS   rW   rZ   r]   r^   r`   rb   rd   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S )ÚTestPointerStructuresc             C   s|   t tjtdƒdd}t|jjtjtj	dƒtj
dƒ t|jjtjtj	dƒtj
dƒ tt|jjd ƒt|jjd ƒkƒ d S )Nzstruct_pointers.savF)r   g      @)r	   r   )r   r   r!   r"   r   ZpointersÚgr
   r   r0   rr   Úhr   r    )r$   r%   r   r   r   rh   U  s      z"TestPointerStructures.test_scalarsc             C   s‚   t tjtdƒdd}t|jjtjtj	dƒdƒj
tjƒƒ t|jjtjtj	dƒdƒj
tjƒƒ ttjt|jjƒt|jjƒkƒƒ d S )Nzstruct_pointers_replicated.savF)r   g      @rF   )r   r   r!   r"   r   Úpointers_repr‡   r
   rj   r0   rk   rr   rˆ   r   r„   r…   )r$   r%   r   r   r   Útest_pointers_replicated[  s    $$z.TestPointerStructures.test_pointers_replicatedc             C   sz   t tjtdƒdd}tjtjdƒdƒjdddƒjtj	ƒ}t
|jj|ƒ t
|jj|ƒ ttjt|jjƒt|jjƒkƒƒ d S )	Nz!struct_pointers_replicated_3d.savF)r   g      @rm   rC   rD   rH   )r   r   r!   r"   r
   rj   r0   rn   rk   rr   r   r‰   r‡   rˆ   r   r„   r…   )r$   r%   Zs_expectr   r   r   Útest_pointers_replicated_3da  s
    $z1TestPointerStructures.test_pointers_replicated_3dc             C   sð   t tjtdƒdd}t|jjd tjtj	dƒdƒj
tjƒƒ t|jjd tjtj	dƒdƒj
tjƒƒ ttjt|jjd ƒt|jjd d ƒkƒƒ ttjt|jjd ƒt|jjd d ƒkƒƒ tt|jjd d ƒt|jjd d ƒkƒ d S )Nzstruct_pointer_arrays.savF)r   r   g      @rH   rD   )r   r   r!   r"   r   rL   r‡   r
   rj   r0   rk   rr   rˆ   r   r„   r…   r    )r$   r%   r   r   r   rp   h  s    ((..z!TestPointerStructures.test_arraysc             C   s"  t tjtdƒdd}t|jjjjt	j
kƒ t|jjjjt	j
kƒ t|jjjd	ƒ t|jjjd
ƒ x¼tdƒD ]°}t|jj| t	jt	jdƒdƒjt	j
ƒƒ t|jj| t	jt	jdƒdƒjt	j
ƒƒ tt	jt|jj| ƒt|jjd d ƒkƒƒ tt	jt|jj| ƒt|jjd d ƒkƒƒ qjW d S )Nz$struct_pointer_arrays_replicated.savF)r   rF   g      @rH   rD   r   )rF   )rF   )r   r   r!   r"   r   rq   r‡   r	   r   r
   rr   rˆ   r   rK   r   r   rj   r0   rk   r„   r…   r    )r$   r%   r   r   r   r   rs   p  s    ((.z,TestPointerStructures.test_arrays_replicatedc             C   sd  t jtdƒ}t|dd}t|jjjjt	j
kƒ t|jjjjt	j
kƒ t|jjjd	ƒ t|jjjd
ƒ  xøtdƒD ]ì}xætdƒD ]Ú}xÔtdƒD ]È}t|jj|||f t	jt	jdƒdƒjt	j
ƒƒ t|jj|||f t	jt	jdƒdƒjt	j
ƒƒ tt	jt|jj|||f ƒt|jjd d ƒkƒƒ tt	jt|jj|||f ƒt|jjd d ƒkƒƒ qŒW q~W qpW d S )Nz'struct_pointer_arrays_replicated_3d.savF)r   rC   rD   rH   g      @r   )rC   rD   rH   )rC   rD   rH   )r   r   r   )r   r   r   )r   r!   r"   r   r   rq   r‡   r	   r   r
   rr   rˆ   r   rK   r   r   rj   r0   rk   r„   r…   r    )r$   Úpthr%   r   rt   ru   r   r   r   rv   ‚  s    4z/TestPointerStructures.test_arrays_replicated_3dN)	r'   r(   r)   rh   rŠ   r‹   rp   rs   rv   r   r   r   r   r†   R  s   r†   c               @   s   e Zd ZdZdd„ ZdS )ÚTestTagsz4Test that sav files with description tag read at allc             C   s*   t tjtdƒdd}t|jtjdƒƒ d S )Nzscalar_byte_descr.savF)r   r   )r   r   r!   r"   r   r   r
   r#   )r$   r%   r   r   r   Útest_description›  s    zTestTags.test_descriptionN)r'   r(   r)   Ú__doc__rŽ   r   r   r   r   r   ˜  s   r   c              C   s6   t tjtdƒdd} t| jd ƒ t| jtjdƒƒ d S )Nznull_pointer.savF)r   rF   )	r   r   r!   r"   r   ZpointÚcheckr
   r   )r%   r   r   r   Útest_null_pointer   s    r‘   c              C   sx   t jdd$} t jdƒ ttjtdƒdd}W d Q R X tt| ƒdkƒ tt	| d j
ƒd	kƒ t|d
 tjd d gƒƒ d S )NT)ÚrecordÚalwayszinvalid_pointer.savF)r   rG   r   zNVariable referenced by pointer not found in heap: variable will be set to Noner   )ÚwarningsÚcatch_warningsÚsimplefilterr   r   r!   r"   r   r   r   Úmessager   r
   r   )Úwr%   r   r   r   Útest_invalid_pointer§  s    
r™   )!Úosr   r”   r!   ÚdirnameÚ__file__r"   Znumpyr
   Znumpy.testingr   r   r   r   Zscipy.io.idlr   r   r   r   Z	vectorizer    r…   r   r*   rB   rP   re   r   rƒ   r†   r   r‘   r™   r   r   r   r   Ú<module>   s(   	
=$p
4F