a
    ‡ù»j R  ã                   @   s  d dl mZ d dlZd dlZd dlmZmZmZm	Z	 d dl
Z
d dlmZ d dlmZ e e e¡d¡Zdd„ Zd	d
„ Ze 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!d"„ Z"dS )#é    )ÚpathN)Úassert_equalÚassert_array_equalÚassert_Úsuppress_warnings)Úreadsav)Ú_idlÚdatac                 C   sJ   t | |ƒ t|tƒr(t t| ƒt|ƒƒ nt t | ¡jjt |¡jjƒ dS )z*Assert whether value AND type are the sameN)r   Ú
isinstanceÚstrÚtypeÚnpZasarrayÚdtype©ÚaÚb© r   ú=E:\soccer\ml_env\Lib\site-packages\scipy/io/tests/test_idl.pyÚ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   Úassert_array_identical   s    
r   c                   @   s   e Zd Zdd„ ZdS )Ú	TestIdictc                 C   sr   dt  d¡i}t|ƒ}tt td¡|dd�}t|t|ƒƒ td|v ƒ t	|d t  d¡ƒ t	|d t  
d¡ƒ d S )Nr   iç  ú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 td¡dd�}t|jt d¡ƒ d S )Nr   F©r   r   ©r   r   r   r   r   r   r   r   ©r    r!   r   r   r   Ú	test_byte2   s    zTestScalars.test_bytec                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_int16.savFr'   i`¤ÿÿ)r   r   r   r   r   Zi16sr   r   r)   r   r   r   Ú
test_int166   s    zTestScalars.test_int16c                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_int32.savFr'   i.ýi¶)r   r   r   r   r   Zi32sr   Úint32r)   r   r   r   Ú
test_int32:   s    zTestScalars.test_int32c                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_float32.savFr'   ç•ÐÃ�·Ç)r   r   r   r   r   Úf32r   Úfloat32r)   r   r   r   Útest_float32>   s    zTestScalars.test_float32c                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_float64.savFr'   g‰CÌmC±ÿ)r   r   r   r   r   Zf64r   Úfloat64r)   r   r   r   Útest_float64B   s    zTestScalars.test_float64c                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_complex32.savFr'   y  )Ž¨j¼BÌ•h~ð=rÆ)r   r   r   r   r   Zc32r   Ú	complex64r)   r   r   r   Útest_complex32F   s    zTestScalars.test_complex32c                 C   s.   t t td¡dd�}d}t|jt |¡ƒ d S )Nzscalar_string.savFr'   z.The quick brown fox jumps over the lazy python)r   r   r   r   r   r!   r   Úbytes_)r    r!   Úmsgr   r   r   Ú
test_bytesJ   s    zTestScalars.test_bytesc                 C   s   d S ©Nr   ©r    r   r   r   Útest_structureO   s    zTestScalars.test_structurec                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_complex64.savFr'   ù*ÙÃÜð3W¾o‚Òÿ)r   r   r   r   r   Úc64r   Ú
complex128r)   r   r   r   Útest_complex64R   s
    þzTestScalars.test_complex64c                 C   s   d S r9   r   r:   r   r   r   Útest_heap_pointerY   s    zTestScalars.test_heap_pointerc                 C   s   d S r9   r   r:   r   r   r   Útest_object_reference\   s    z!TestScalars.test_object_referencec                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_uint16.savFr'   içÿ  )r   r   r   r   r   Zi16ur   Zuint16r)   r   r   r   Útest_uint16_   s    zTestScalars.test_uint16c                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_uint32.savFr'   l   Áÿ )r   r   r   r   r   Zi32ur   Zuint32r)   r   r   r   Útest_uint32c   s    zTestScalars.test_uint32c                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_int64.savFr'   lûÿÿÿ'{ÿÿÿ )r   r   r   r   r   Zi64sr   Zint64r)   r   r   r   Ú
test_int64g   s    zTestScalars.test_int64c                 C   s*   t t td¡dd�}t|jt d¡ƒ d S )Nzscalar_uint64.savFr'   l   Å(ÿÿÿ )r   r   r   r   r   Zi64ur   Zuint64r)   r   r   r   Útest_uint64k   s    zTestScalars.test_uint64N)r#   r$   r%   r*   r+   r-   r1   r3   r5   r8   r;   r?   r@   rA   rB   rC   rD   rE   r   r   r   r   r&   /   s   r&   c                   @   s   e Zd Zdd„ ZdS )ÚTestCompressedc                 C   sè   t t td¡dd�}t|jt d¡ƒ t|jt 	d¡ƒ t|j
t d¡ƒ t|jjdƒ t|jjd tjg d	¢tjd
�ƒ t|jjd tjg d¢tj	d
�ƒ t|jjd t t d¡t d¡g¡ƒ t|jjd tjg d¢td
�ƒ d S )Nzvarious_compressed.savFr'   r   r.   r<   ©é   é   rH   é   é   r   ©é   é   rI   ©r   ©ç      @g      @g      @g      @ù      ð?       @ù      @       @©s   cheeses   baconó   spam)r   r   r   r   r   r   r   r   r/   r0   r=   r>   r   Úarray5dÚshapeÚarraysr   Úarrayr   r   Úcr4   ÚdÚobjectr)   r   r   r   Útest_compresseds   s     þ""ÿÿzTestCompressed.test_compressedN)r#   r$   r%   r]   r   r   r   r   rF   p   s   rF   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 td¡dd�}t|jjdƒ d S )Nzarray_float32_1d.savFr'   ©é{   )r   r   r   r   r   Úarray1drW   r)   r   r   r   Útest_1dˆ   s    zTestArrayDimensions.test_1dc                 C   s&   t t td¡dd�}t|jjdƒ d S )Nzarray_float32_2d.savFr'   ©é   é   )r   r   r   r   r   Úarray2drW   r)   r   r   r   Útest_2dŒ   s    zTestArrayDimensions.test_2dc                 C   s&   t t td¡dd�}t|jjdƒ d S )Nzarray_float32_3d.savFr'   ©é   rd   re   )r   r   r   r   r   Úarray3drW   r)   r   r   r   Útest_3d�   s    zTestArrayDimensions.test_3dc                 C   s&   t t td¡dd�}t|jjdƒ d S )Nzarray_float32_4d.savFr'   ©rH   rK   é   é   )r   r   r   r   r   Úarray4drW   r)   r   r   r   Útest_4d”   s    zTestArrayDimensions.test_4dc                 C   s&   t t td¡dd�}t|jjdƒ d S )Nzarray_float32_5d.savFr'   rG   )r   r   r   r   r   rV   rW   r)   r   r   r   Útest_5d˜   s    zTestArrayDimensions.test_5dc                 C   s&   t t td¡dd�}t|jjdƒ d S )Nzarray_float32_6d.savFr'   ©rI   rJ   rH   rK   rI   rH   )r   r   r   r   r   Úarray6drW   r)   r   r   r   Útest_6dœ   s    zTestArrayDimensions.test_6dc                 C   s&   t t td¡dd�}t|jjdƒ d S )Nzarray_float32_7d.savFr'   ©rN   rM   rN   rI   rH   rI   rN   )r   r   r   r   r   Úarray7drW   r)   r   r   r   Útest_7d    s    zTestArrayDimensions.test_7dc                 C   s&   t t td¡dd�}t|jjdƒ d S )Nzarray_float32_8d.savFr'   ©rH   rI   rN   rM   rN   rI   rK   rH   )r   r   r   r   r   Úarray8drW   r)   r   r   r   Útest_8d¤   s    zTestArrayDimensions.test_8dN©r#   r$   r%   rb   rg   rk   rp   rq   rt   rw   rz   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 )ÚTestStructuresc                 C   s´   t t td¡dd�}t|jjt t 	d¡¡ƒ t|jj
t t d¡¡ƒ t|jjt t d¡¡ƒ t|jjt t d¡¡ƒ t|jjtjdgtd	�ƒ t|jjt t d
¡¡ƒ d S )Nzstruct_scalars.savFr'   rM   rN   ç      @rQ   rU   rO   ù      ð¿      @)r   r   r   r   r   Zscalarsr   r   rY   r   r   r,   rZ   r0   r[   r2   Úer\   Úfr4   r)   r   r   r   Útest_scalars«   s    zTestStructures.test_scalarsc                 C   sÀ   t t td¡dd�}t|jjt t 	d¡d¡ƒ t|jj
t t d¡d¡ƒ t|jjt t d¡d¡ƒ t|jjt t d¡d¡ƒ t|jjt d	d¡ t¡ƒ t|jjt t d
¡d¡ƒ d S )Nzstruct_scalars_replicated.savFr'   rM   rK   rN   r}   rQ   rU   r~   )r   r   r   r   r   Úscalars_repr   r   Úrepeatr   r   r,   rZ   r0   r[   r2   r   Úastyper\   r€   r4   r)   r   r   r   Útest_scalars_replicated´   s    ÿz&TestStructures.test_scalars_replicatedc                 C   sü   t t td¡dd�}t|jjt t 	d¡d¡ 
ddd¡ƒ t|jjt t d¡d¡ 
ddd¡ƒ t|jjt t d	¡d¡ 
ddd¡ƒ t|jjt t d
¡d¡ 
ddd¡ƒ t|jjt dd¡ 
ddd¡ t¡ƒ t|jjt t d¡d¡ 
ddd¡ƒ d S )Nz struct_scalars_replicated_3d.savFr'   rM   é   rH   rI   rN   r}   rQ   rU   r~   )r   r   r   r   r   r‚   r   r   rƒ   r   Úreshaper   r,   rZ   r0   r[   r2   r   r„   r\   r€   r4   r)   r   r   r   Útest_scalars_replicated_3d¾   s"    ÿ&&ÿÿÿÿz)TestStructures.test_scalars_replicated_3dc                 C   s¤   t t td¡dd�}t|jjd tjg d¢tj	d�ƒ t|jj
d tjg d¢tjd�ƒ t|jjd t t d¡t d	¡g¡ƒ t|jjd tjg d
¢td�ƒ d S )Nzstruct_arrays.savFr'   r   rL   rO   rP   rR   rS   rT   )r   r   r   r   r   rX   r   r   rY   r   r   r0   rZ   r4   r[   r\   r)   r   r   r   Útest_arraysÌ   s    "ÿÿÿzTestStructures.test_arraysc              	   C   sJ  t t td¡dd�}t|jjjjt	j
u ƒ t|jjjjt	j
u ƒ t|jjjjt	j
u ƒ t|jjjjt	j
u ƒ t|jjjdƒ t|jjjdƒ t|jjjdƒ t|jjjdƒ tdƒD ]�}t|jj| t	jg d¢t	jd�ƒ t|jj| t	jg d¢t	jd�ƒ t|jj| t	 t	 d	¡t	 d
¡g¡ƒ t|jj| t	jg d¢td�ƒ q´d S )Nzstruct_arrays_replicated.savFr'   ©rK   rK   rL   rO   rP   rR   rS   rT   ©r   r   r   r   r   Ú
arrays_repr   r   r   r   Úobject_r   rZ   r[   r   rW   Úranger   rY   r   r0   r4   r\   ©r    r!   Úir   r   r   Útest_arrays_replicatedÖ   s4    ÿÿÿÿ
ÿÿz%TestStructures.test_arrays_replicatedc                 C   s~  t t td¡dd�}t|jjjjt	j
u ƒ t|jjjjt	j
u ƒ t|jjjjt	j
u ƒ t|jjjjt	j
u ƒ t|jjjdƒ t|jjjdƒ t|jjjdƒ t|jjjdƒ tdƒD ]Ä}tdƒD ]¶}tdƒD ]¨}t|jj|||f t	jg d¢t	jd	�ƒ t|jj|||f t	jg d
¢t	jd	�ƒ t|jj|||f t	 t	 d¡t	 d¡g¡ƒ t|jj|||f t	jg d¢td	�ƒ qÌqÀq´d S )Nzstruct_arrays_replicated_3d.savFr'   ©rH   rI   rN   rH   rI   rN   rL   rO   rP   rR   rS   rT   r‹   )r    r!   r�   ÚjÚkr   r   r   Útest_arrays_replicated_3dò   s@    ÿÿ
ÿÿÿÿ
ÿÿz(TestStructures.test_arrays_replicated_3dc                 C   sˆ   t t 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.savFr'   r   rO   rH   )r   r   r   r   r   ÚfcÚxr   rY   r   ÚyÚrrZ   r)   r   r   r   Útest_inheritance  s
    zTestStructures.test_inheritancec                 C   sl   t ƒ �0}| td¡ tt td¡dd�}W d   ƒ n1 s<0    Y  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.savFr'   r   é7   éB   rO   )r   ÚfilterÚUserWarningr   r   r   r   r   r˜   r—   r   rY   r   )r    Úsupr!   r   r   r   Útest_arrays_corrupt_idl80  s    ÿ$z(TestStructures.test_arrays_corrupt_idl80N)r#   r$   r%   r�   r…   rˆ   r‰   r‘   r•   rš   r    r   r   r   r   r|   ©   s   	

 r|   c                   @   s   e Zd Zdd„ ZdS )ÚTestPointersc                 C   sL   t t td¡dd�}t|jt d¡ƒ t|jt d¡ƒ t	|j|ju ƒ d S )Nzscalar_heap_pointer.savFr'   r<   )
r   r   r   r   r   Zc64_pointer1r   r>   Zc64_pointer2r   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 td¡dd�}t|jjdƒ tt 	|jt 
d¡k¡ƒ tt 	t|jƒt|jd ƒk¡ƒ d S )Nzarray_float32_pointer_1d.savFr'   r_   rQ   r   )r   r   r   r   r   ra   rW   r   r   Úallr0   Úvect_idr   r)   r   r   r   rb   6  s    zTestPointerArray.test_1dc                 C   sb   t t td¡dd�}t|jjdƒ tt 	|jt 
d¡k¡ƒ tt 	t|jƒt|jd ƒk¡ƒ d S )Nzarray_float32_pointer_2d.savFr'   rc   rQ   )r   r   )r   r   r   r   r   rf   rW   r   r   r¤   r0   r¥   r   r)   r   r   r   rg   <  s    zTestPointerArray.test_2dc                 C   sb   t t td¡dd�}t|jjdƒ tt 	|jt 
d¡k¡ƒ tt 	t|jƒt|jd ƒk¡ƒ d S )Nzarray_float32_pointer_3d.savFr'   rh   rQ   ©r   r   r   )r   r   r   r   r   rj   rW   r   r   r¤   r0   r¥   r   r)   r   r   r   rk   B  s    zTestPointerArray.test_3dc                 C   sb   t t td¡dd�}t|jjdƒ tt 	|jt 
d¡k¡ƒ tt 	t|jƒt|jd ƒk¡ƒ d S )Nzarray_float32_pointer_4d.savFr'   rl   rQ   )r   r   r   r   )r   r   r   r   r   ro   rW   r   r   r¤   r0   r¥   r   r)   r   r   r   rp   H  s    zTestPointerArray.test_4dc                 C   sb   t t td¡dd�}t|jjdƒ tt 	|jt 
d¡k¡ƒ tt 	t|jƒt|jd ƒk¡ƒ d S )Nzarray_float32_pointer_5d.savFr'   rG   rQ   )r   r   r   r   r   )r   r   r   r   r   rV   rW   r   r   r¤   r0   r¥   r   r)   r   r   r   rq   N  s    zTestPointerArray.test_5dc                 C   sb   t t td¡dd�}t|jjdƒ tt 	|jt 
d¡k¡ƒ tt 	t|jƒt|jd ƒk¡ƒ d S )Nzarray_float32_pointer_6d.savFr'   rr   rQ   )r   r   r   r   r   r   )r   r   r   r   r   rs   rW   r   r   r¤   r0   r¥   r   r)   r   r   r   rt   T  s    zTestPointerArray.test_6dc                 C   sb   t t td¡dd�}t|jjdƒ tt 	|jt 
d¡k¡ƒ tt 	t|jƒt|jd ƒk¡ƒ d S )Nzarray_float32_pointer_7d.savFr'   ru   rQ   )r   r   r   r   r   r   r   )r   r   r   r   r   rv   rW   r   r   r¤   r0   r¥   r   r)   r   r   r   rw   Z  s    zTestPointerArray.test_7dc                 C   sb   t t td¡dd�}t|jjdƒ tt 	|jt 
d¡k¡ƒ tt 	t|jƒt|jd ƒk¡ƒ d S )Nzarray_float32_pointer_8d.savFr'   rx   rQ   )r   r   r   r   r   r   r   r   )r   r   r   r   r   ry   rW   r   r   r¤   r0   r¥   r   r)   r   r   r   rz   `  s    zTestPointerArray.test_8dNr{   r   r   r   r   r£   3  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 td¡dd�}t|jjtjt 	d¡tj
d�ƒ t|jjtjt 	d¡tj
d�ƒ tt|jjd ƒt|jjd ƒkƒ d S )Nzstruct_pointers.savFr'   rQ   rO   r   )r   r   r   r   r   ZpointersÚgr   rY   r0   r�   Úhr   r   r)   r   r   r   r�   j  s      z"TestPointerStructures.test_scalarsc                 C   s‚   t t td¡dd�}t|jjt t 	d¡d¡ 
tj¡ƒ t|jjt t 	d¡d¡ 
tj¡ƒ tt t|jjƒt|jjƒk¡ƒ d S )Nzstruct_pointers_replicated.savFr'   rQ   rK   )r   r   r   r   r   Úpointers_repr¨   r   rƒ   r0   r„   r�   r©   r   r¤   r¥   r)   r   r   r   Útest_pointers_replicatedp  s    ÿÿÿz.TestPointerStructures.test_pointers_replicatedc                 C   sz   t t td¡dd�}t t d¡d¡ ddd¡ tj	¡}t
|jj|ƒ t
|jj|ƒ tt t|jjƒt|jjƒk¡ƒ d S )	Nz!struct_pointers_replicated_3d.savFr'   rQ   r†   rH   rI   rN   )r   r   r   r   r   rƒ   r0   r‡   r„   r�   r   rª   r¨   r©   r   r¤   r¥   )r    r!   Zs_expectr   r   r   Útest_pointers_replicated_3dy  s    ÿ$z1TestPointerStructures.test_pointers_replicated_3dc                 C   sð   t t td¡dd�}t|jjd t t 	d¡d¡ 
tj¡ƒ t|jjd t t 	d¡d¡ 
tj¡ƒ tt t|jjd ƒt|jjd d ƒk¡ƒ tt 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.savFr'   r   rQ   rN   rI   )r   r   r   r   r   rX   r¨   r   rƒ   r0   r„   r�   r©   r   r¤   r¥   r   r)   r   r   r   r‰   �  s    ÿÿ..z!TestPointerStructures.test_arraysc                 C   s  t t td¡dd�}t|jjjjt	j
u ƒ t|jjjjt	j
u ƒ t|jjjdƒ t|jjjdƒ tdƒD ]°}t|jj| t	 t	 d¡d¡ t	j
¡ƒ t|jj| t	 t	 d¡d¡ t	j
¡ƒ tt	 t|jj| ƒt|jjd	 d	 ƒk¡ƒ tt	 t|jj| ƒt|jjd	 d	 ƒk¡ƒ qhd S )
Nz$struct_pointer_arrays_replicated.savFr'   rŠ   rK   rQ   rN   rI   r   )r   r   r   r   r   rŒ   r¨   r   r   r   r�   r©   r   rW   rŽ   r   rƒ   r0   r„   r¤   r¥   r   r�   r   r   r   r‘   ‹  s     ÿÿÿ.z,TestPointerStructures.test_arrays_replicatedc           
   
   C   sh  t  td¡}t|dd�}t|jjjjt	j
u ƒ t|jjjjt	j
u ƒ t|jjjdƒ t|jjjdƒ tdƒD ]ö}tdƒD ]è}tdƒD ]Ú}t|jj|||f t	 t	 d¡d¡ t	j
¡ƒ t|jj|||f t	 t	 d¡d¡ t	j
¡ƒ t|jj|||f ƒ}t|jjd	 d
 ƒ}t	 ||k¡�s"J ‚t|jj|||f ƒ}t|jjd	 d
 ƒ}	t	 ||	k¡s„J ‚q„qxqld S )Nz'struct_pointer_arrays_replicated_3d.savFr'   r’   rH   rI   rN   rQ   r¦   r   )r   r   r   r   r   rŒ   r¨   r   r   r   r�   r©   r   rW   rŽ   r   rƒ   r0   r„   r¥   r   r¤   )
r    Úpthr!   r�   r“   r”   Zg0Úg1Zh0Zh1r   r   r   r•      s*    ÿÿz/TestPointerStructures.test_arrays_replicated_3dN)	r#   r$   r%   r�   r«   r¬   r‰   r‘   r•   r   r   r   r   r§   g  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 td¡dd�}t|jt d¡ƒ d S )Nzscalar_byte_descr.savFr'   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 td¡dd�} t| jd ƒ t| jt d¡ƒ d S )Nznull_pointer.savFr'   rK   )	r   r   r   r   r   ÚpointÚcheckr   r   )r!   r   r   r   Útest_null_pointerÂ  s    r´   c                  C   sŒ   t jdd��.} t  d¡ tt td¡dd�}W d   ƒ n1 s@0    Y  tt| ƒdkƒ tt	| d j
ƒd	kƒ t|d
 t d d g¡ƒ d S )NT)ÚrecordÚalwayszinvalid_pointer.savFr'   rM   r   zNVariable referenced by pointer not found in heap: variable will be set to Noner   )ÚwarningsÚcatch_warningsÚsimplefilterr   r   r   r   r   Úlenr   Úmessager   r   rY   )Úwr!   r   r   r   Útest_invalid_pointerÉ  s    
2r½   c                  C   s–   t  ddi¡} | d dksJ ‚| jdks,J ‚t t¡� | d  W d   ƒ n1 sT0    Y  tjtdd�� | j W d   ƒ n1 sˆ0    Y  d S )NÚonerM   Útwozhas no attribute)Úmatch)r   ZAttrDictr¾   ÚpytestZraisesÚKeyErrorÚAttributeErrorr¿   )r[   r   r   r   Útest_attrdictÚ  s    &rÄ   )#Úosr   r·   Únumpyr   Znumpy.testingr   r   r   r   rÁ   Zscipy.ior   r   r   ÚdirnameÚ__file__r   r   r   Z	vectorizer   r¥   r   r&   rF   r^   r|   r¡   r£   r§   r¯   r´   r½   rÄ   r   r   r   r   Ú<module>   s,   	
A$z4S