U
    ¸mœdk¢ ã                   @   s˜  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlZd dlmZmZ d dlmZ d dlZd dlmZ d dlmZmZ d d	lmZ d d
l m!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 d dl2m3Z3 G dd„ deƒZ4e j5dkZ6zd dl7Z7dZ8W n e9k
�rx   dZ8Y nX zd dl:Z:dZ;W n e9k
�r¤   dZ;Y nX d8dd„Z<G dd„ dƒZ=G dd„ de=ƒZ>G dd„ de=ƒZ?G dd„ dƒZ@G dd„ dƒZAG dd„ deAƒZBG d d!„ d!ƒZCG d"d#„ d#eAƒZDG d$d%„ d%ƒZEd&d'„ ZFG d(d)„ d)ƒZGG d*d+„ d+ƒZHd,d-„ ZId.d/„ ZJd0d1„ ZKd2d3„ ZLe	jMjNe, d4d5�d6d7„ ƒZOdS )9é    N)ÚPath)ÚNamedTemporaryFile)ÚBytesIOÚStringIO)Údatetime)ÚValueÚget_context)Úc_bool)ÚConverterErrorÚConversionWarning©Úasbytes)Úassert_equal)Úassert_warnsÚassert_Úassert_raises_regexÚassert_raisesÚassert_allcloseÚassert_array_equalÚtemppathÚtempdirÚIS_PYPYÚHAS_REFCOUNTÚsuppress_warningsÚassert_no_gc_cyclesÚassert_no_warningsÚbreak_cyclesÚIS_WASM)Úrequires_memoryc                   @   s*   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	S )ÚTextIOzõHelper IO class.

    Writes encode strings to bytes if needed, reads return bytes.
    This makes it easier to emulate files opened in binary mode
    without needing to explicitly convert strings to bytes in
    setting up the test data.

    Ú c                 C   s   t  | t|ƒ¡ d S ©N)r   Ú__init__r   ©ÚselfÚs© r&   úP/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numpy/lib/tests/test_io.pyr"   *   s    zTextIO.__init__c                 C   s   t  | t|ƒ¡ d S r!   )r   Úwriter   r#   r&   r&   r'   r(   -   s    zTextIO.writec                 C   s   t  | dd„ |D ƒ¡ d S )Nc                 S   s   g | ]}t |ƒ‘qS r&   r   )Ú.0r%   r&   r&   r'   Ú
<listcomp>1   s     z%TextIO.writelines.<locals>.<listcomp>)r   Ú
writelines)r$   Úlinesr&   r&   r'   r+   0   s    zTextIO.writelinesN)r    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r(   r+   r&   r&   r&   r'   r   !   s   
r   l        TFc                 C   s.   t | ƒtkr|  d¡} tt | |¡dd… Ž S )zY
    This function is available in the datetime module only from Python >=
    2.5.

    Úlatin1Né   )ÚtypeÚbytesÚdecoder   ÚtimeÚstrptime)r%   Úfmtr&   r&   r'   r7   A   s    
r7   c                   @   sj   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	j
ejdkdd�dd„ ƒZdd„ Zej	jdd„ ƒZdS )ÚRoundtripTestc              	   O   sè   |  di ¡}|  dddi¡}|  dd¡}|r>tdd�}|j}n
tƒ }|}z`|}
||f|
ž|Ž | ¡  | d	¡ tjd
krŒt|tƒsŒ| ¡  tj|f|Ž}	|
| _|	| _W 5 t|tƒsâ| ¡  dtƒ krât|	tjj	j
ƒsât |j¡ X dS )až  
        save_func : callable
            Function used to save arrays to file.
        file_on_disk : bool
            If true, store the file on disk, instead of in a
            string buffer.
        save_kwds : dict
            Parameters passed to `save_func`.
        load_kwds : dict
            Parameters passed to `numpy.load`.
        args : tuple of arrays
            Arrays stored to file.

        Ú	save_kwdsÚ	load_kwdsZallow_pickleTÚfile_on_diskF)ÚdeleteÚarr_reloadedr   Úwin32N)Úgetr   Únamer   Ú
isinstanceÚcloseÚlocalsÚnpÚlibÚnpyioZNpzFileÚosÚremoveÚflushÚseekÚsysÚplatformÚloadÚarrr>   )r$   Z	save_funcÚargsÚkwargsr:   r;   r<   Ztarget_fileZ	load_filer>   rO   r&   r&   r'   Ú	roundtripM   s.    




zRoundtripTest.roundtripc                 C   s‚   |   |¡ | j |dd� |   t |¡¡ | j t |¡dd� |jd dkr~|   t |¡dd … ¡ | j t |¡dd … dd� d S )NT)r<   r   é   )rR   rE   ÚasfortranarrayÚshape©r$   Úar&   r&   r'   Úcheck_roundtrips}   s    
zRoundtripTest.check_roundtripsc                 C   sª   t  g t¡}|  |¡ t  ddgddggt¡}|  |¡ t  ddgddggt¡}|  |¡ t jddgddggt jd	�}|  |¡ t jddgddggt jd	�}|  |¡ d S )
NrS   é   r2   é   y      ð?      @y       @      @y      @      @y      @       @©Údtype)rE   ÚarrayÚfloatrX   ÚintZcsingleZcdoublerV   r&   r&   r'   Ú
test_array‡   s    



zRoundtripTest.test_arrayc                 C   s<   t  g t¡}|  |¡ t  ddgddggt¡}|  |¡ d S ©NrS   rY   r2   rZ   )rE   r]   ÚobjectrX   rV   r&   r&   r'   Útest_array_object—   s    
zRoundtripTest.test_array_objectc                 C   s"   t  ddddgt¡}|  |¡ d S ra   )rE   r]   r_   rR   rV   r&   r&   r'   Útest_1Dž   s    zRoundtripTest.test_1Dr?   zFails on Win32©Úreasonc                 C   sX   t  ddgddgg¡}| j|dddid� t  ddgddgg¡}| j|dddid� d S )	NrS   g      @rZ   g333333@TÚ	mmap_modeÚr)r<   r;   )rE   r]   rR   rT   rV   r&   r&   r'   Ú	test_mmap¢   s    zRoundtripTest.test_mmapc                 C   s$   t jddgddgd�}|  |¡ d S )N©rS   rY   ©r2   rZ   ©ÚxÚi4©Úyrn   r[   )rE   r]   rX   rV   r&   r&   r'   Útest_recordª   s    zRoundtripTest.test_recordc              	   C   sT   dd„ t dƒD ƒ}tjd|d�}tjdd�� t dd	t¡ |  |¡ W 5 Q R X d S )
Nc                 S   s   g | ]}d | d t f‘qS )ú%déd   ©r^   ©r)   Úir&   r&   r'   r*   °   s     z1RoundtripTest.test_format_2_0.<locals>.<listcomp>éô  iè  r[   T©ÚrecordÚalwaysr    )ÚrangerE   ÚonesÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningrX   )r$   ÚdtrW   r&   r&   r'   Útest_format_2_0®   s
    zRoundtripTest.test_format_2_0N)r-   r.   r/   rR   rX   r`   rc   rd   ÚpytestÚmarkÚskipifrL   rM   ri   rq   Úslowr‚   r&   r&   r&   r'   r9   L   s   0

r9   c                   @   s   e Zd Zdd„ ZdS )ÚTestSaveLoadc                 O   s\   t j| tjf|ž|Ž t| jd | jƒ t| jd j| jjƒ t| jd jj	| jjj	ƒ d S )Nr   )
r9   rR   rE   Úsaver   rO   r>   r\   ÚflagsÚfnc)r$   rP   rQ   r&   r&   r'   rR   ¸   s    zTestSaveLoad.roundtripN)r-   r.   r/   rR   r&   r&   r&   r'   r‡   ·   s   r‡   c                   @   sž   e Zd Zdd„ Zejjedd�ejje dd�ejj	dd„ ƒƒƒZ
dd	„ Zd
d„ Zdd„ Zdd„ Zejjedd�dd„ ƒZdd„ Zejjdd„ ƒZdd„ ZdS )ÚTestSavezLoadc              	   O   s’   t j| tjf|ž|Ž zPt
| jƒD ]@\}}| jd|  }t||ƒ t|j|jƒ t|jj|jjƒ q"W 5 | jjrŒ| jj ¡  t | jjj	¡ X d S )Nzarr_%d)r9   rR   rE   Úsavezr>   ÚfidrC   rH   rI   rA   Ú	enumeraterO   r   r\   r‰   rŠ   )r$   rP   rQ   ÚnrO   Zreloadedr&   r&   r'   rR   À   s    
zTestSavezLoad.roundtripzHangs on PyPyre   zNeeds 64bit platformc              	   C   s\   d}t j|t jd�}tddd��2}t j||d� ~t  |¡}|d }| ¡  ~W 5 Q R X d S )Nl      r[   Znumpy_test_big_arrays_ú.npz)ÚprefixÚsuffix©rW   rW   )rE   ÚemptyÚuint8r   rŒ   rN   rC   )r$   ÚLrW   ÚtmpZnpfiler&   r&   r'   Útest_big_arraysÎ   s    
zTestSavezLoad.test_big_arraysc                 C   s@   t  ddgddggt¡}t  ddgddggt¡}|  ||¡ d S )	NrS   rY   r2   rZ   ù      ð?       @ù       @      @ù      @      Àù      @      (@)rE   r]   r^   ÚcomplexrR   )r$   rW   Úbr&   r&   r'   Útest_multiple_arraysÜ   s    z"TestSavezLoad.test_multiple_arraysc                 C   sz   t  ddgddggt¡}t  ddgddggt¡}tƒ }t j|||d	� | d
¡ t  |¡}t||d ƒ t||d ƒ d S ©NrS   rY   r2   rZ   r™   rš   r›   rœ   )Úfile_aÚfile_br   r¡   r¢   ©	rE   r]   r^   r�   r   rŒ   rK   rN   r   ©r$   rW   rž   ÚcÚlr&   r&   r'   Útest_named_arraysá   s    

zTestSavezLoad.test_named_arraysc                 C   sz   t  ddgddggt¡}t  ddgddggt¡}tƒ }t j|||d	� | d
¡ t  |¡}t||d ƒ t||d ƒ d S )NrS   rY   r2   rZ   r™   rš   r›   rœ   )r¡   Úliker   r¡   r¨   r£   r¤   r&   r&   r'   Útest_named_arrays_with_likeë   s    

z)TestSavezLoad.test_named_arrays_with_likec                 C   s’   t  ddgddggt¡}t  ddgddggt¡}tƒ }t j|||d	� | d
¡ t  |¡}tt	t
|jƒƒddgƒ t||jjƒ t||jjƒ d S r    )rE   r]   r^   r�   r   rŒ   rK   rN   r   ÚsortedÚdirÚfr¡   r¢   r¤   r&   r&   r'   Útest_BagObjõ   s    

zTestSavezLoad.test_BagObjzCannot start threadc                    sX   dd„ ‰g ‰ ‡ ‡fdd„t dƒD ƒ}|D ]}| ¡  q(|D ]}| ¡  q:ˆ rTtˆ ƒ‚d S )Nc                 S   sh   t dd��T}tj dd¡}ztj||d� W n, tk
rX } z|  |¡ W 5 d }~X Y nX W 5 Q R X d S )Nr�   ©r’   rw   )rO   )r   rE   ÚrandomZrandnrŒ   ÚOSErrorÚappend)Z
error_listr—   rO   Úerrr&   r&   r'   Úwriter  s    z9TestSavezLoad.test_savez_filename_clashes.<locals>.writerc                    s   g | ]}t jˆˆ fd �‘qS )©ÚtargetrP   )Ú	threadingÚThread)r)   Új©Úerrorsr³   r&   r'   r*     s   ÿz=TestSavezLoad.test_savez_filename_clashes.<locals>.<listcomp>r2   )r{   ÚstartÚjoinÚAssertionError)r$   ÚthreadsÚtr&   r¹   r'   Útest_savez_filename_clashes   s    ÿ

z)TestSavezLoad.test_savez_filename_clashesc              
   C   sœ   t dd��ˆ}t|dƒ�}tj|dd� W 5 Q R X t|ddƒ�L}| d¡ t|j ƒ t |¡d	  t|j ƒ | d¡ t|j ƒ W 5 Q R X W 5 Q R X d S )
Nr�   r®   ÚwbúLOVELY LOAD©ÚdataÚrbi'  r   rÄ   )r   ÚopenrE   rŒ   rK   r   ÚclosedrN   )r$   r—   Úfpr&   r&   r'   Útest_not_closing_opened_fid  s    

z)TestSavezLoad.test_not_closing_opened_fidc                 C   s®   t dd��š}tj|dd� tƒ �z}| t¡ tddƒD ]^}zJzt 
|¡d  W n2 tk
r€ } zd| }t|ƒ‚W 5 d }~X Y nX W 5 tr’t 	¡  X q6W 5 Q R X W 5 Q R X d S )	Nr�   r®   rÂ   rÃ   rS   i  rÄ   z#Failed to load data from a file: %s)r   rE   rŒ   r   ÚfilterÚResourceWarningr{   r   ÚgcZcollectrN   Ú	Exceptionr½   )r$   r—   Úsuprv   ÚeÚmsgr&   r&   r'   Útest_closing_fid'  s    
zTestSavezLoad.test_closing_fidc              	   C   sR   d}t d|d��8}tj|dd� t |¡}|jj}| ¡  t|jƒ W 5 Q R X d S )NZ&numpy_test_closing_zipfile_after_load_r�   )r’   r‘   úplace holder©Úlab)	r   rE   rŒ   rN   ÚziprÈ   rC   r   rÇ   )r$   r‘   r—   rÄ   rÈ   r&   r&   r'   Útest_closing_zipfile_after_loadA  s    
z-TestSavezLoad.test_closing_zipfile_after_loadN)r-   r.   r/   rR   rƒ   r„   r…   r   ÚIS_64BITr†   r˜   rŸ   r§   r©   r­   r   rÀ   rÉ   Z	slow_pypyrÑ   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d „ Zd!d"„ Zej d#d$d%g¡ej d&eeg¡d'd(„ ƒƒZejjejd)kd*d+�ejjed,d-�d.d/„ ƒƒƒZd0S )1ÚTestSaveTxtc                 C   sÄ   t  ddgddggt¡}d}tƒ }t j|||d� | d¡ t| ¡ t|d | d	 d
 ƒt|d | d	 d ƒgƒ t  ddgddggt	¡}tƒ }t j||dd� | d¡ t| ¡ ddgƒ d S )NrS   rY   r2   rZ   z%.18e©r8   r   ú Ú
rj   rk   rr   ó   1 2
ó   3 4
)
rE   r]   r^   r   ÚsavetxtrK   r   Ú	readlinesr   r_   )r$   rW   r8   r¥   r&   r&   r'   r`   P  s    
ÿÿ
zTestSaveTxt.test_arrayc                 C   sR   t  ddddgt¡}tƒ }t j||dd� | d¡ | ¡ }t|dd	d
dgƒ d S )NrS   rY   r2   rZ   rr   rÙ   r   s   1
s   2
s   3
s   4
)rE   r]   r_   r   rÞ   rK   rß   r   ©r$   rW   r¥   r,   r&   r&   r'   rd   `  s    
zTestSaveTxt.test_1Dc                 C   s@   t ƒ }tttj|t d¡ƒ tttj|t dgdggg¡ƒ d S )NrS   rY   )r   r   Ú
ValueErrorrE   rÞ   r]   ©r$   r¥   r&   r&   r'   Ú
test_0D_3Dh  s    zTestSaveTxt.test_0D_3Dc                 C   sL   t jddgddgd�}tƒ }t j||dd� | d¡ t| ¡ d	d
gƒ d S )Nrj   rk   rl   ro   r[   rr   rÙ   r   rÜ   rÝ   ©rE   r]   r   rÞ   rK   r   rß   ©r$   rW   r¥   r&   r&   r'   Útest_structuredm  s
    
zTestSaveTxt.test_structuredc                 C   sV   t jddgdddgd�}tƒ }t j||ddg d	d
� | d¡ t| ¡ ddgƒ d S )N©rS   rY   r2   ©rZ   é   é   )Úfoorn   )Úbarrn   )Úbazrn   r[   rë   rí   rr   rÙ   r   s   1 3
s   4 6
rä   rå   r&   r&   r'   Útest_structured_paddedt  s    
  ÿ
z"TestSaveTxt.test_structured_paddedc              	   C   sb   t jddddgd�}|ddg }tdd	��.}t|ƒ}t  ||¡ t  |¡}t||ƒ W 5 Q R X d S )
NrS   rl   ro   )ÚzÚf4r[   rm   rï   ú.npyr®   )rE   r|   r   r   rˆ   rN   r   )r$   rW   ÚvÚpathrÄ   r&   r&   r'   Útest_multifield_view~  s    
z TestSaveTxt.test_multifield_viewc                 C   sN   t  ddgddgg¡}tƒ }t j||ddd� | d¡ t| ¡ d	d
gƒ d S )Nç      ð?ç       @ç      @ç      @ú,rr   )Ú	delimiterr8   r   s   1,2
s   3,4
rä   rå   r&   r&   r'   Útest_delimiter‡  s
    
zTestSaveTxt.test_delimiterc                 C   sÐ   t  ddg¡}tƒ }t j||ddgd� | d¡ t| ¡ ddgƒ tƒ }t j||d	d� | d¡ | ¡ }t|d
dgƒ tƒ }t j||d	dd� | d¡ | ¡ }t|d
dgƒ tƒ }ttt j||dd� d S )Nrj   rk   z%02dz%3.1frÙ   r   s   01 2.0
s   03 4.0
z%02d : %3.1fs	   01 : 2.0
s	   03 : 4.0
rù   )r8   rú   éc   )	rE   r]   r   rÞ   rK   r   rß   r   rá   rà   r&   r&   r'   Útest_formatŽ  s"    


zTestSaveTxt.test_formatc                 C   s  t ƒ }tjddgtd�}d}tj||d|d� | d¡ t| ¡ td| d	 ƒƒ t ƒ }tj||d|d
� | d¡ t| ¡ td| d ƒƒ t ƒ }d}tj||d||d� | d¡ t| ¡ t|| d d ƒƒ t ƒ }d}tj||d||d� | d¡ t| ¡ td| | d ƒƒ d S )Nrj   rk   r[   zTest header / footerz%1d)r8   Úheaderr   z# z	
1 2
3 4
)r8   Úfooterz
1 2
3 4
# rÛ   z% )r8   rþ   Úcommentsz1 2
3 4
)r8   rÿ   r   )	r   rE   r]   r_   rÞ   rK   r   Úreadr   )r$   r¥   rW   Útest_header_footerZ
commentstrr&   r&   r'   r  ¨  sD    
ÿ
ÿ
 ÿ
ÿ
 ÿ
ÿzTestSaveTxt.test_header_footerc              	   C   sD   t ƒ �4}t ddg¡}t ||¡ t |¡}t||ƒ W 5 Q R X d S )Nrj   rk   )r   rE   r]   rÞ   Úloadtxtr   )r$   rA   rW   rž   r&   r&   r'   Útest_file_roundtripÊ  s
    
zTestSaveTxt.test_file_roundtripc                 C   sì   d}d}t j||ft jd�}t j}t j}|d|  |d d …< tƒ }t j||dd� | d¡ | ¡ }t	|ddgƒ tƒ }t j||d| d� | d¡ | ¡ }t	|d	d	gƒ tƒ }t j||d
g| d� | d¡ | ¡ }t	|ddgƒ d S )NrY   r[   ù              ð?z %+.3erÙ   r   s8    ( +3.142e+00+ +2.718e+00j)  ( +3.142e+00+ +2.718e+00j)
z  %+.3e  %+.3es1     +3.142e+00  +2.718e+00  +3.142e+00  +2.718e+00
z(%.3e%+.3ej)s.   (3.142e+00+2.718e+00j) (3.142e+00+2.718e+00j)
©
rE   ÚzerosÚ
complex128ÚpirÏ   r   rÞ   rK   rß   r   ©r$   ZncolsZnrowsrW   ÚreÚimr¥   r,   r&   r&   r'   Útest_complex_arraysÑ  sH    
ÿþ
ÿþ
ÿþzTestSaveTxt.test_complex_arraysc                 C   sv   d}d}t j||ft jd�}t j}t j}|d|  |d d …< tƒ }t j||dd� | d¡ | ¡ }t	|ddgƒ d S )NrY   r[   r  z%.3erÙ   r   s0    (3.142e+00-2.718e+00j)  (3.142e+00-2.718e+00j)
r  r
  r&   r&   r'   Útest_complex_negative_exponent÷  s     
ÿþz*TestSaveTxt.test_complex_negative_exponentc                 C   sH   G dd„ dt ƒ}|ƒ }t ddg¡}t ||¡ t |¡}t||ƒ d S )Nc                   @   s   e Zd Zdd„ ZdS )z4TestSaveTxt.test_custom_writer.<locals>.CustomWriterc                 S   s   |   | d¡¡ d S )Nó   
)ÚextendÚsplit)r$   Útextr&   r&   r'   r(     s    z:TestSaveTxt.test_custom_writer.<locals>.CustomWriter.writeN)r-   r.   r/   r(   r&   r&   r&   r'   ÚCustomWriter  s   r  rj   rk   )ÚlistrE   r]   rÞ   r  r   )r$   r  ÚwrW   rž   r&   r&   r'   Útest_custom_writer	  s    
zTestSaveTxt.test_custom_writerc              	   C   sP   d  d¡}tj|gtjd�}tƒ �$}tjtj |d¡|dgdd� W 5 Q R X d S )Nó   Ï–úUTF-8r[   útest.csvú%s©r8   Úencoding)	r5   rE   r]   Úunicode_r   rÞ   rH   ró   r¼   )r$   Úutf8rW   Útmpdirr&   r&   r'   Útest_unicode  s    
ÿzTestSaveTxt.test_unicodec              	   C   s°   d  d¡}tj|gtjd�}ddg}tr2| d¡ trD| ddg¡ tƒ �\}|D ]P}tj	t
j |d	| ¡|d
gdd� tjt
j |d	| ¡dtjd�}t||ƒ qPW 5 Q R X d S )Nr  r  r[   r    ú.gzú.bz2ú.xzú.lzmar  r  z	UTF-16-LEr  ©r  r\   )r5   rE   r]   r  ÚHAS_BZ2r±   ÚHAS_LZMAr  r   rÞ   rH   ró   r¼   r  r   )r$   r  rW   Úsuffixesr  r’   rž   r&   r&   r'   Útest_unicode_roundtrip  s$    

 ÿ ÿz"TestSaveTxt.test_unicode_roundtripc                 C   s\   d  d¡}tj|gtjd�}tƒ }tj||dgdd� | d¡ t| ¡   d¡|d ƒ d S ©Nr  r  r[   r  r  r   rÛ   )	r5   rE   r]   r  r   rÞ   rK   r   r  ©r$   r  rW   r%   r&   r&   r'   Útest_unicode_bytestream.  s    

z#TestSaveTxt.test_unicode_bytestreamc                 C   sV   d  d¡}tj|gtjd�}tƒ }tj||dgdd� | d¡ t| ¡ |d ƒ d S r*  )	r5   rE   r]   r  r   rÞ   rK   r   r  r+  r&   r&   r'   Útest_unicode_stringstream6  s    

z%TestSaveTxt.test_unicode_stringstreamr8   ú%fs   %fÚiotypec                 C   s^   t  dg¡}|ƒ }t j|||d� | d¡ |tkrHt| ¡ dd ƒ nt| ¡ dd ƒ d S )Nrõ   rÙ   r   z%f
s   %f
)rE   r]   rÞ   rK   r   r   r  )r$   r8   r/  rW   r%   r&   r&   r'   Útest_unicode_and_bytes_fmt>  s    
z&TestSaveTxt.test_unicode_and_bytes_fmtr?   zfiles>4GB may not workre   g   `¸úA)Z
free_bytesc                 C   sl   dd„ }t tƒ}tdƒ}|j||fd�}| ¡  | ¡  |jrFtdƒ‚|jdkrZt	 
d¡ |jdksht‚d S )	Nc              	   S   sr   d| _ zJtjdd„ tdƒD ƒtd�}tƒ �}tjtj 	|d¡|d� W 5 Q R X W n t
k
rl   d| _ ‚ Y nX d S )	NFc                 S   s$   g | ]}t j t j d d¡d¡‘qS )é2   rs   rZ   )rE   r¯   ZrandÚrandintru   r&   r&   r'   r*   T  s
   þ ÿzGTestSaveTxt.test_large_zip.<locals>.check_large_zip.<locals>.<listcomp>i 5 r[   ztest.npz)Ú	test_dataT)ÚvaluerE   Zasarrayr{   rb   r   rŒ   rH   ró   r¼   ÚMemoryError)Úmemoryerror_raisedr3  r  r&   r&   r'   Úcheck_large_zipO  s    
þþÿz3TestSaveTxt.test_large_zip.<locals>.check_large_zipÚforkr´   z,Child process raised a MemoryError exceptioné÷ÿÿÿzCsubprocess got a SIGKILL, apparently free memory was not sufficientr   )r   r	   r   ÚProcessr»   r¼   r4  r5  Úexitcoderƒ   Úxfailr½   )r$   r7  r6  ÚctxÚpr&   r&   r'   Útest_large_zipK  s    

zTestSaveTxt.test_large_zipN) r-   r.   r/   r`   rd   rã   ræ   rî   rô   rû   rý   r  r  r  r  r  r   r)  r,  r-  rƒ   r„   Úparametrizer   r   r0  r…   rL   rM   r†   r   r?  r&   r&   r&   r'   rØ   O  s0   
	"&rØ   c                   @   sx   e Zd Zdd„ Zdd„ Zejje dd�dd„ ƒZ	ejje
 d	d�d
d„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚLoadTxtBasec                 C   s¸   t  d¡ d¡}d}|D ]š}d| d }|D ]„}t|d��p}||ddd	��}	|	 |¡ W 5 Q R X | j|dd
�}
t|
|ƒ ||ddd
��}	|  |	¡}
W 5 Q R X t|
|ƒ W 5 Q R X q,qd S )Nrê   ©rY   r2   ©rÛ   z
úú0 1 2ú3 4 5r®   Úwtz	UTF-32-LE)Úmoder  ©r  Úrt)rE   ÚarangeÚreshaper   r(   Úloadfuncr   )r$   Zfopenr(  ÚwantedÚlinesepÚseprÄ   r’   rA   r¬   Úresr&   r&   r'   Úcheck_compressedq  s    
zLoadTxtBase.check_compressedc                 C   s   |   tjd¡ d S )N)r!  )rR  ÚgziprÆ   ©r$   r&   r&   r'   Útest_compressed_gzip�  s    z LoadTxtBase.test_compressed_gzipz	Needs bz2re   c                 C   s   |   tjd¡ d S )N)r"  )rR  Úbz2rÆ   rT  r&   r&   r'   Útest_compressed_bz2„  s    zLoadTxtBase.test_compressed_bz2z
Needs lzmac                 C   s   |   tjd¡ d S )N)r#  r$  )rR  ÚlzmarÆ   rT  r&   r&   r'   Útest_compressed_lzmaˆ  s    z LoadTxtBase.test_compressed_lzmac              
   C   sZ   t ƒ �J}t|dƒ�}| d d¡¡ W 5 Q R X | j|dd�}t|dddgƒ W 5 Q R X d S )NrÁ   z0.
1.
2.úUTF-16rI  ç        rõ   rö   )r   rÆ   r(   ÚencoderM  r   )r$   ró   r¬   rm   r&   r&   r'   Útest_encodingŒ  s
    zLoadTxtBase.test_encodingc              
   C   sb   d  d¡}tƒ �H}t|dƒ�}| | d¡¡ W 5 Q R X | j|dtjd�}t||ƒ W 5 Q R X d S )Ns   Ã¶Ã¼Ã¶r  rÁ   rZ  r%  )	r5   r   rÆ   r(   r\  rM  rE   r  r   )r$   Znonasciiró   r¬   rm   r&   r&   r'   Útest_stringload“  s    
zLoadTxtBase.test_stringloadc                 C   s8   d}| j t|ƒtjdd�}t|t | d¡ ¡ ¡ƒ d S ©Ns   ÿþh  i  jrZ  )r\   r  )rM  r   rE   r  r   r]   r5   r  ©r$   Úutf16rò   r&   r&   r'   Útest_binary_decodeœ  s    zLoadTxtBase.test_binary_decodec                 C   sT   t ƒ }| d¡ | d¡ | j|tjddd„ id�}t d d¡g¡}t||ƒ d S )Nr  r   c                 S   s
   |   d¡S )Nr  ©r5   ©rm   r&   r&   r'   Ú<lambda>§  ó    z4LoadTxtBase.test_converters_decode.<locals>.<lambda>)r\   Ú
convertersr  )	r   r(   rK   rM  rE   r  r]   r5   r   ©r$   r¥   rm   rW   r&   r&   r'   Útest_converters_decode¡  s    



ÿz"LoadTxtBase.test_converters_decodec              
   C   s|   d  d¡}tƒ �b}tj|ddd��}| |¡ W 5 Q R X | j|tjddd„ idd�}t |d	 g¡}t	||ƒ W 5 Q R X d S )
Nr  r  rG  rI  r   c                 S   s   | d S )Nr¿   r&   rd  r&   r&   r'   re  ²  rf  z6LoadTxtBase.test_converters_nodecode.<locals>.<lambda>©r\   rg  r  r¿   )
r5   r   ÚiorÆ   r(   rM  rE   r  r]   r   )r$   r  ró   r¬   rm   rW   r&   r&   r'   Útest_converters_nodecode«  s    


þz$LoadTxtBase.test_converters_nodecodeN)r-   r.   r/   rR  rU  rƒ   r„   r…   r&  rW  r'  rY  r]  r^  rb  ri  rl  r&   r&   r&   r'   rA  p  s   

	
rA  c                   @   s,  e Zd Zeejƒ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ejjeovejjdkdd�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#d0d1„ Z$d2d3„ Z%ejje�oejjdkdd�d4d5„ ƒZ&ejje�o*ejjdkdd�d6d7„ ƒZ'd8d9„ Z(d:d;„ Z)d<d=„ Z*d>d?„ Z+d@dA„ Z,dBdC„ Z-dDdE„ Z.dFdG„ Z/dHdI„ Z0ejje1 2¡ dJkdKd�dLdM„ ƒZ3dNdO„ Z4dPdQ„ Z5dRdS„ Z6dTdU„ Z7ej 8dVdWgdXdYdZd[d\gfdXd]d^d_d`gfdXe9daƒfdbdcdZd[d\gfdbddd^d_d`gfdbe9deƒfg¡dfdg„ ƒZ:dhS )iÚTestLoadTxtc                 C   s   t jjj| _dt jj_d S ©NrS   )rE   rF   rG   Ú_loadtxt_chunksizeÚ
orig_chunkrT  r&   r&   r'   Úsetup_method»  s    zTestLoadTxt.setup_methodc                 C   s   | j tjj_d S r!   )rp  rE   rF   rG   ro  rT  r&   r&   r'   Úteardown_methodÀ  s    zTestLoadTxt.teardown_methodc                 C   sª   t ƒ }| d¡ | d¡ tj|dtjfdtjfgd�}tjddgdd	gd�}t||ƒ t ƒ }| d
¡ | d¡ dddœ}tjddg|d�}tj||d�}t||ƒ d S )Nú1 2
3 4r   rm   rp   r[   rj   rk   rl   ro   zM 64 75.0
F 25 60.0©ÚgenderÚageÚweight©ÚS1rn   rð   ©ÚnamesÚformats©ÚMç      P@ç     ÀR@©ÚFç      9@ç      N@)r   r(   rK   rE   r  Úint32r]   r   )r$   r¥   rm   rW   ÚdZmydescriptorrž   rp   r&   r&   r'   rq   Ã  s&    




ÿÿÿzTestLoadTxt.test_recordc                 C   sˆ   t ƒ }| d¡ | d¡ tj|td�}t ddgddggt¡}t||ƒ | d¡ tj|td�}t ddgddggt¡}t||ƒ d S )Nrs  r   r[   rS   rY   r2   rZ   )	r   r(   rK   rE   r  r_   r]   r   r^   rh  r&   r&   r'   r`   Õ  s    



zTestLoadTxt.test_arrayc                 C   s’   t ƒ }| d¡ | d¡ tj|td�}t ddddgt¡}t||ƒ t ƒ }| d¡ | d¡ tj|td	d
�}t ddddgt¡}t||ƒ d S )Nú1
2
3
4
r   r[   rS   rY   r2   rZ   ú1,2,3,4
rù   ©r\   rú   ©r   r(   rK   rE   r  r_   r]   r   rh  r&   r&   r'   rd   ã  s    




zTestLoadTxt.test_1Dc                 C   sX   t ƒ }| d¡ | d¡ tj|tdddd„ id�}t dd	dd
dgt¡}t||ƒ d S )Nú	1,2,3,,5
r   rù   r2   c                 S   s   t | pdƒS ©Néüÿÿ©r_   ©r%   r&   r&   r'   re  ÷  rf  z*TestLoadTxt.test_missing.<locals>.<lambda>©r\   rú   rg  rS   rY   r�  ré   rŠ  rh  r&   r&   r'   Útest_missingò  s    



ÿzTestLoadTxt.test_missingc                 C   s\   t ƒ }| d¡ | d¡ tj|tdddd„ idd�}t d	d
gddggt¡}t||ƒ d S )Nú1,2,3,,5
6,7,8,9,10
r   rù   r2   c                 S   s   t | pdƒS rŒ  rŽ  r�  r&   r&   r'   re     rf  z:TestLoadTxt.test_converters_with_usecols.<locals>.<lambda>©rS   r2   ©r\   rú   rg  ÚusecolsrY   r�  é   é	   rŠ  rh  r&   r&   r'   Útest_converters_with_usecolsû  s    



þz(TestLoadTxt.test_converters_with_usecolsc                 C   sN   t ƒ }| d¡ | d¡ tj|tddd�}t dddd	gt¡}t||ƒ d S )
Nú# comment
1,2,3,5
r   rù   ú#©r\   rú   r   rS   rY   r2   ré   rŠ  rh  r&   r&   r'   Útest_comments_unicode  s    


ÿz!TestLoadTxt.test_comments_unicodec                 C   sN   t ƒ }| d¡ | d¡ tj|tddd�}t dddd	gt¡}t||ƒ d S )
Nr™  r   rù   ó   #r›  rS   rY   r2   ré   rŠ  rh  r&   r&   r'   Útest_comments_byte  s    


ÿzTestLoadTxt.test_comments_bytec                 C   s\   t ƒ }| d¡ | d¡ tj|tddddgd�}t dd	d
gdddggt¡}t||ƒ d S )Nz,# comment
1,2,3
@ comment2
4,5,6 // comment3r   rù   rš  ú@z//r›  rS   rY   r2   rZ   ré   rê   rŠ  rh  r&   r&   r'   Útest_comments_multiple  s    


ÿz"TestLoadTxt.test_comments_multiple)r–  r2   é   zPyPy bug in error formattingre   c                 C   s~   t ƒ }| d¡ | d¡ tj|tddd�}t dddd	gt¡}t||ƒ t ƒ }| d
¡ | d¡ tt	tj|tddd� d S )Nz/* comment
1,2,3,5
r   rù   z/*r›  rS   rY   r2   ré   z*/ comment
1,2,3,5
)
r   r(   rK   rE   r  r_   r]   r   r   rá   rh  r&   r&   r'   Útest_comments_multi_chars   s    


ÿ


ÿz%TestLoadTxt.test_comments_multi_charsc                 C   s˜   t ƒ }| d¡ | d¡ tj|tddd�}t ddddgt¡}t||ƒ t ƒ }| d	¡ | d¡ tj|tddd�}t ddddgt¡}t||ƒ d S )
Núcomment
1,2,3,5
r   rù   rS   )r\   rú   ÚskiprowsrY   r2   ré   r™  rŠ  rh  r&   r&   r'   Útest_skiprows2  s     


ÿ



ÿzTestLoadTxt.test_skiprowsc              	   C   s„  t  ddgddggt¡}tƒ }t  ||¡ | d¡ t j|tdd�}t||d d …df ƒ t  dddgdddggt¡}tƒ }t  ||¡ | d¡ t j|td	d�}t||d d …dd …f ƒ | d¡ t j|tt  ddg¡d�}t||d d …dd …f ƒ tt j	t j
t jt jt jt jt jt jf	D ]>}|dƒ}| d¡ t j|t|d�}t||d d …df ƒ �q G d
d„ dƒ}|ƒ }| d¡ t j|t|d�}t||d d …df ƒ | d¡ t j|t|fd�}t||d d …df ƒ d}t|ƒ}ddg}	ddg}
t j|dtt|	|
ƒƒd�}t|d ddgƒ t|d ddgƒ | d¡ d}ttdt|ƒj t j||d� ttdt|ƒj t j|d|dgd� d S )NrS   rY   r2   rZ   r   ©rS   ©r\   r•  ré   rj   c                   @   s   e Zd Zdd„ ZdS )z*TestLoadTxt.test_usecols.<locals>.CrazyIntc                 S   s   dS rn  r&   rT  r&   r&   r'   Ú	__index__b  s    z4TestLoadTxt.test_usecols.<locals>.CrazyInt.__index__N)r-   r.   r/   r¨  r&   r&   r&   r'   ÚCrazyInta  s   r©  z<JOE 70.1 25.3
                BOB 60.5 27.9
                ÚstidÚtempÚS4Úf8©r   rY   ©r•  r\   ó   JOEó   BOBçÍÌÌÌÌL9@çfffffæ;@ç      ø?z^usecols must be.*%s©r•  )rE   r]   r^   r   rÞ   rK   r  r   r_   Zint8Zint16r…  Úint64r•   Zuint16Zuint32Úuint64r   r  rÕ   r   r   Ú	TypeErrorr3   r-   )r$   rW   r¥   rm   Zint_typeZto_readr©  Z	crazy_intrÄ   r{  ÚdtypesrO   Z	bogus_idxr&   r&   r'   Útest_usecolsC  st    



    þ



  ý  ýzTestLoadTxt.test_usecolsc              	   C   sŒ   t  t¡� tjdgdgdd� W 5 Q R X t  ttf¡� tjdgdgdd� W 5 Q R X t jtdd�� tjdgd	d
gdd� W 5 Q R X d S )Nz1
l            rù   )r•  rú   l            zQIf a structured dtype .*. But 1 usecols were given and the number of fields is 3.©Úmatchz1,1
zi,(2)ir   )r\   r•  rú   )rƒ   ÚraisesÚOverflowErrorrE   r  rá   r¸  rT  r&   r&   r'   Útest_bad_usecolsˆ  s    ÿzTestLoadTxt.test_bad_usecolsc                 C   sj   t ƒ }| d¡ | d¡ t dtfddtfdtfgfg¡}tj||dd�}t d	d
g|¡}t	||ƒ d S )Nú1,2,3.0
4,5,6.0
r   rm   rp   r¿   r%   rù   r‰  ©rS   )rY   r÷   ©rZ   )ré   ç      @)
r   r(   rK   rE   r\   r_   r^   r  r]   r   ©r$   r¥   r�   rm   rW   r&   r&   r'   Útest_fancy_dtype“  s    

"zTestLoadTxt.test_fancy_dtypec                 C   sl   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
dddgdddggfg|d�}t||ƒ d S ©Nzaaaa  1.0  8.0  1 2 3 4 5 6©rA   r¬  rm   rp   ÚblockrB  r[   Úaaaarõ   ç       @rS   rY   r2   rZ   ré   rê   ©r   rE   r\   r^   r_   r  r]   r   rÄ  r&   r&   r'   Útest_shaped_dtypeœ  s    ÿ ÿzTestLoadTxt.test_shaped_dtypec              	   C   s€   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
dddgdddggdddgdddgggfg|d�}t||ƒ d S )Nz*aaaa  1.0  8.0  1 2 3 4 5 6 7 8 9 10 11 12rÇ  rm   rp   rÈ  )rY   rY   r2   r[   rÉ  rõ   rÊ  rS   rY   r2   rZ   ré   rê   r–  r¡  r—  é
   é   é   rË  rÄ  r&   r&   r'   Útest_3d_shaped_dtype¥  s    ÿ
&ÿþz TestLoadTxt.test_3d_shaped_dtypec                 C   sF   ddg}t tjfD ].}tjddg|d�}tj||d�}t||ƒ qd S )NZstr1Zstr2r[   )ÚstrrE   Úbytes_r]   r  r   )r$   r¥   r�   rW   rm   r&   r&   r'   Útest_str_dtype¯  s
    zTestLoadTxt.test_str_dtypec              	   C   sf   t jtdd��N tƒ }t |¡}t|jdƒ tj|tjd�}t|jdƒ t	|j
tjkƒ W 5 Q R X d S )Núinput contained no datar»  ©r   r[   )rƒ   Úwarnsr€   r   rE   r  r   rU   r¶  r   r\   )r$   r¥   rm   r&   r&   r'   Útest_empty_file¸  s    
zTestLoadTxt.test_empty_filec                 C   sx   t ƒ }| ddg¡ | d¡ tj|dddd„ id�}t|dd	gƒ | d¡ tj|dd
dd„ id�}t|ddgƒ d S )Nz1 21
z3 42
r   r¦  c                 S   s
   t | dƒS ©Né   rŽ  r�  r&   r&   r'   re  Æ  rf  z3TestLoadTxt.test_unused_converter.<locals>.<lambda>©r•  rg  é   é*   rS   c                 S   s
   t | dƒS rØ  rŽ  r�  r&   r&   r'   re  Ë  rf  é!   éB   )r   r+   rK   rE   r  r   )r$   r¥   rÄ   r&   r&   r'   Útest_unused_converterÁ  s    

ÿ

ÿz!TestLoadTxt.test_unused_converterc                 C   sr   d}dt fdtfg}dd„ }d|i}tjt|ƒd||d�}tjdtd	ddƒfd
tdddƒfg|d�}t||ƒ d S )Nú0 1; 2001-01-01
                   2; 2002-01-31 ÚidxÚcodec                 S   s   t |  ¡ dƒS ©Nz%Y-%m-%d©r7   Ústripr�  r&   r&   r'   re  Ó  rf  z4TestLoadTxt.test_dtype_with_object.<locals>.<lambda>rS   ú;©rú   r\   rg  éÑ  rY   éÒ  é   r[   )r_   rb   rE   r  r   r]   r   r   ©r$   rÄ   ZndtypeÚfuncrg  ÚtestÚcontrolr&   r&   r'   Útest_dtype_with_objectÎ  s    ÿþz"TestLoadTxt.test_dtype_with_objectc                 C   s@   d}t ƒ }| d| ¡ | d¡ tj|tjd�}t||ƒ d S )N)l   +&ì|    l   -(ì|    ú%s %sr   r[   )r   r(   rK   rE   r  r·  r   ©r$   Útgtr¥   rQ  r&   r&   r'   Útest_uint64_typeÜ  s    
zTestLoadTxt.test_uint64_typec                 C   s@   d}t ƒ }| d| ¡ | d¡ tj|tjd�}t||ƒ d S )N)lûÿÿÿÿÿÿÿ l   ÿÿÿÿ rð  r   r[   )r   r(   rK   rE   r  r¶  r   rñ  r&   r&   r'   Útest_int64_typeä  s    
zTestLoadTxt.test_int64_typec                 C   s’   t  ddd¡ t j¡}t  || f¡ t¡}d ttj|ƒ¡}t	ƒ }| 
|¡ tt jfD ]4}| d¡ t j||tjdd�}t||d| d	� qXd S )
NiöÿÿÿrÍ  ré   rÛ   r   r1   rj  r  )Úerr_msg)rE   ZlogspaceZastypeZfloat32Zhstackr^   r¼   ÚmapÚhexr   r(   rK   r  Úfromhexr   )r$   rò  Zinpr¥   r�   rQ  r&   r&   r'   Útest_from_float_hexì  s    

   ÿzTestLoadTxt.test_from_float_hexc              	   C   s0   t dƒ}tjtdd�� t |¡ W 5 Q R X dS )z 
        Ensure that fromhex is only used for values with the correct prefix and
        is not called by default. Regression test related to gh-19598.
        za b cz2.*convert string 'a' to float64 at row 0, column 1r»  N©r   rƒ   r½  rá   rE   r  râ   r&   r&   r'   Ú6test_default_float_converter_no_default_hex_conversionú  s
    ÿzBTestLoadTxt.test_default_float_converter_no_default_hex_conversionc              	   C   s0   t dƒ}tjtdd�� t |¡ W 5 Q R X dS )z›
        Ensure that the exception message raised during failed floating point
        conversion is correct. Regression test related to gh-19598.
        zqrs tuvz)could not convert string 'qrs' to float64r»  Nrú  râ   r&   r&   r'   Ú&test_default_float_converter_exception  s
    ÿz2TestLoadTxt.test_default_float_converter_exceptionc                 C   sN   t ddƒt ddƒf}tƒ }| d| ¡ | d¡ tj|t d�}t||ƒ d S )NrS   éÿÿÿÿrð  r   r[   )r�   r   r(   rK   rE   r  r   rñ  r&   r&   r'   Útest_from_complex  s    
zTestLoadTxt.test_from_complexc                 C   sª   t jdt jd�}t j}t j}|d|  |d d …< tƒ }t j||dd� | d¡ | ¡ }| d¡ | 	dd¡}t
||kƒ | |¡ | d¡ t j|td�}t||ƒ d S )	N©rY   rY   r[   r  z%.16erÙ   r   s   e+00-s   e00+-)rE   r  r  r	  rÏ   r   rÞ   rK   r  Úreplacer   r(   r  r�   r   )r$   rW   r  r  r¥   ÚtxtZtxt_badrQ  r&   r&   r'   Útest_complex_misformatted  s    



z%TestLoadTxt.test_complex_misformattedc              
   C   sV   t ƒ �0}t|dƒ�}| d¡ W 5 Q R X t |¡}W 5 Q R X t|ddgddggƒ d S )Nr  z
1 213 42rS   rÛ  r2   rÜ  )r   rÆ   r(   rE   r  r   )r$   rA   r¬   rÄ   r&   r&   r'   Útest_universal_newline.  s
    z"TestLoadTxt.test_universal_newlinec                 C   sV   t ƒ }| d¡ | d¡ dddœ}tj||dd�}t dd	d
g¡}t|d |ƒ d S )Nz 1 	2 	3	start 
4	5	6	  
7	8	9.5	r   )rm   rp   rï   Úcomment)ú<i4r  ú<f4ú|S8rz  ú	r‰  s   start s     rf  r  )r   r(   rK   rE   r  r]   r   rÄ  r&   r&   r'   Útest_empty_field_after_tab5  s    

ÿz&TestLoadTxt.test_empty_field_after_tabc                 C   s˜   t dƒ}dddœ}tj||dd�\}}}t|jjdkƒ t|jjdkƒ t|jjd	kƒ t|t d
dg¡ƒ t|t ddg¡ƒ t|t ddg¡ƒ d S )NúM 21 72
F 35 58©rW   rž   r¥   )ú|S1r  r  rz  T©r\   Úunpackr  r  r  ó   Mó   FrÛ  é#   ç      R@ç      M@)r   rE   r  r   r\   rÑ  r   r]   ©r$   r  r�   rW   rž   r¥   r&   r&   r'   Útest_unpack_structured?  s    
z"TestLoadTxt.test_unpack_structuredc              	   C   sø  t ƒ }| d¡ | d¡ tttj|dd� | d¡ tttj|dd� | d¡ tj|tddd�}t dd	dgd
ddgg¡}t	||ƒ t ƒ }| d¡ | d¡ tj|tdd	d�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ t ƒ }| d¡ | d¡ tj|tdd	d�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ tjtdd��< t ƒ }t
tj|d	d�jdkƒ t
tj|dd�jdkƒ W 5 Q R X d S )Nz1,2,3
4,5,6r   r2   ©Úndminr´  rù   rS   )r\   rú   r  rY   rZ   ré   rê   z0,1,2r“  )r2   z0
1
2)r2   rS   rÔ  r»  ©r   rS   rÕ  )r   r(   rK   r   rá   rE   r  r_   r]   r   r   rU   rƒ   rÖ  r€   )r$   r¥   rm   rW   r†  rÏ   r¬   r&   r&   r'   Útest_ndmin_keywordJ  sH    












zTestLoadTxt.test_ndmin_keywordc                 C   s(   dd„ }t  |ƒ ¡}t|t  d¡ƒ d S )Nc                  s   s   t dƒD ]} d|  V  qd S ©NrÍ  rr   )r{   ©rv   r&   r&   r'   Úcountu  s    z0TestLoadTxt.test_generator_source.<locals>.countrÍ  )rE   r  r   rK  ©r$   r  rQ  r&   r&   r'   Útest_generator_sourcet  s    z!TestLoadTxt.test_generator_sourcec                 C   s.   t ƒ }| d¡ | d¡ ttdtj|ƒ d S )Nz1 2 3
4 5 6
2 3r   Ú3)r   r(   rK   r   rá   rE   r  râ   r&   r&   r'   Útest_bad_line|  s    

zTestLoadTxt.test_bad_linec                 C   sH   t ƒ }| d¡ | d¡ t dtfddtfg¡}tj|d|d d� d S )Nz100,foo,200
300,None,400r   rm   )rW   ZS10rp   rù   )rú   r\   r   )r   r(   rK   rE   r\   r_   r  )r$   r¥   r�   r&   r&   r'   Útest_none_as_string„  s
    

zTestLoadTxt.test_none_as_stringzANSI_X3.4-1968zWrong preferred encodingc              
   C   sÆ   d}|  d¡ dd¡ ¡ }tƒ �œ}t|dƒ�}| |¡ W 5 Q R X t|dƒ�}tj|dtjd�}W 5 Q R X t	||ƒ t|dƒ�}tj|ddd�}W 5 Q R X d	d
dg}t	|tj
|dd�ƒ W 5 Q R X d S )Ns/   5,6,7,Ã•scarscar
15,2,3,hello
20,2,3,Ã•scar
r  rD  r    rÁ   rÅ   r%  ÚSs   5,6,7,Ã•scarscars   15,2,3,hellos   20,2,3,Ã•scarr[   )r5   r   Ú
splitlinesr   rÆ   r(   rE   r  r  r   r]   )r$   Zbutf8Zsutf8ró   r¬   rm   r&   r&   r'   Útest_binary_loadŒ  s    

zTestLoadTxt.test_binary_loadc                 C   sN   t ƒ }| d¡ | d¡ tj|tddd�}t ddddgt¡}t||ƒ d S )	Nú1,2,3,5
4,5,7,8
2,1,4,5r   rù   rS   ©r\   rú   Úmax_rowsrY   r2   ré   rŠ  rh  r&   r&   r'   Útest_max_rowsž  s    


ÿzTestLoadTxt.test_max_rowsc                 C   s¨   t ƒ }| d¡ | d¡ tj|tdddd�}t ddddgt¡}t||ƒ t ƒ }| d	¡ | d¡ tj|tdddd�}t ddddgd
dddggt¡}t||ƒ d S )Nz comments
1,2,3,5
4,5,7,8
2,1,4,5r   rù   rS   ©r\   rú   r¤  r'  rY   r2   ré   úcomment
1,2,3,5
4,5,7,8
2,1,4,5rZ   r–  r¡  rŠ  rh  r&   r&   r'   Útest_max_rows_with_skiprows§  s$    


 ÿ



 ÿ z'TestLoadTxt.test_max_rows_with_skiprowsc                 C   sˆ   t ƒ }| d¡ | d¡ tj|tddd�}t ddddgd	dd
dggt¡}t||ƒ tj|tdd�}t ddd	dgt¡}t||ƒ d S )Nr%  r   rù   rY   r&  rS   r2   ré   rZ   r–  r¡  r‰  rŠ  rh  r&   r&   r'   Ú$test_max_rows_with_read_continuation¸  s    


ÿ 
z0TestLoadTxt.test_max_rows_with_read_continuationc                 C   sf   t ƒ }| d¡ | d¡ tj|tdddd�}t dddd	gd
d	ddgddd
d	ggt¡}t||ƒ d S )Nr*  r   rù   rS   rê   r)  rY   r2   ré   rZ   r–  r¡  rŠ  rh  r&   r&   r'   Útest_max_rows_largerÅ  s    


 ÿ*z TestLoadTxt.test_max_rows_largerÚskiprÄ   rS   zignored
z1,2
rÛ   z3,4
Zignoredz1,2r    z3,4zignored
1,2

3,4r   z-1,0
z-1,0z-1,0
1,2

3,4c              
   C   sÆ   t jtdd| › �d��B tj|t|dd| d�}t|ddgdd	gdd
gg|d … ƒ W 5 Q R X t|tƒrt| 	d¡ t
 ¡ �@ t
 dt¡ t  t¡� tj|t|dd| d� W 5 Q R X W 5 Q R X d S )NzInput line 3.*max_rows=r2   r»  rù   )r\   r¤  rú   r'  rý  r   rS   rY   rZ   Úerror)rƒ   rÖ  r€   rE   r  r_   r   rB   r   rK   r}   r~   Úsimplefilterr½  )r$   r.  rÄ   rQ  r&   r&   r'   Útest_max_rows_empty_linesÏ  s    
ÿÿ.


ÿz%TestLoadTxt.test_max_rows_empty_linesN);r-   r.   r/   ÚstaticmethodrE   r  rM  rq  rr  rq   r`   rd   r‘  r˜  rœ  rž  r   rƒ   r„   r…   r   rL   ÚimplementationÚversionr¢  r¥  rº  r¿  rÅ  rÌ  rÐ  rÓ  r×  rß  rï  ró  rô  rù  rû  rü  rþ  r  r  r	  r  r  r  r   r!  ÚlocaleÚgetpreferredencodingr$  r(  r+  r,  r-  r@  r   r1  r&   r&   r&   r'   rm  ¸  s|   
	
			ÿ
E		
		ÿ

ÿ


*ÿ
	


ø	rm  c                   @   sN   e Zd Zdd„ Zdd„ Zdd„ Zej de	e
g¡dd	„ ƒZd
d„ Zdd„ ZdS )ÚTestfromregexc                 C   sX   t ƒ }| d¡ | d¡ dtjfdg}t |d|¡}tjdddg|d	�}t||ƒ d S )
Nz1.312 foo
1.534 bar
4.444 quxr   Únum©ÚvalZS3z([0-9.]+)\s+(...))çË¡E¶óýô?rë   ©g%�•C‹ø?rì   ©g-²�ï§Æ@Úquxr[   ©r   r(   rK   rE   Úfloat64Ú	fromregexr]   r   rÄ  r&   r&   r'   rq   é  s    

ÿzTestfromregex.test_recordc                 C   sX   t ƒ }| d¡ | d¡ dtjfdg}t |d|¡}tjdddg|d	�}t||ƒ d S )
Nú1312 foo
1534 bar
4444 quxr   r8  r9  z(\d+)\s+(...))é   rë   )éþ  rì   )é\  r>  r[   )r   r(   rK   rE   r…  rA  r]   r   rÄ  r&   r&   r'   Útest_record_2ô  s    

ÿzTestfromregex.test_record_2c                 C   sV   t ƒ }| d¡ | d¡ dtjfg}t |d|¡}tjdddg|d�}t||ƒ d S )	NrB  r   r8  z(\d+)\s+...)rC  )rD  )rE  r[   r?  rÄ  r&   r&   r'   Útest_record_3ÿ  s    

zTestfromregex.test_record_3Ú	path_typec           
   
   C   sÀ   d}t ƒ �¬}||ƒ}t|dƒ�}| d| d ¡ W 5 Q R X dtjfdg}tj|d|dd	�}tjd
d| d¡ fddg|d�}t||ƒ t	 
dt	j¡}	tj||	|dd	�}t||ƒ W 5 Q R X d S )Nr  rÁ   s	   1.312 foos    
1.534 bar
4.444 quxr8  )r:  ZU4z(?u)([0-9.]+)\s+(\w+)r  rI  r;  rë   r<  r=  r[   z([0-9.]+)\s+(\w+))r   rÆ   r(   rE   r@  rA  r]   r5   r   r  ÚcompileÚUNICODE)
r$   rH  r  Zstr_pathró   r¬   r�   rm   rW   Úregexpr&   r&   r'   Útest_record_unicode	  s     ÿÿ
z!Testfromregex.test_record_unicodec                 C   sN   t  d¡}tdƒ}dtjfg}tjdddg|d�}t |||¡}t||ƒ d S )Nó   (\d)ó   123r8  rS   rY   r2   r[   )r  rI  r   rE   r@  r]   rA  r   )r$   rK  r¥   r�   rW   rm   r&   r&   r'   Útest_compiled_bytes  s    
z!Testfromregex.test_compiled_bytesc              	   C   sB   t  d¡}tdƒ}tjtdd�� tj||tjd� W 5 Q R X d S )NrM  rN  zstructured datatyper»  r[   )	r  rI  r   rƒ   r½  r¸  rE   rA  r@  )r$   rK  r¥   r&   r&   r'   Útest_bad_dtype_not_structured#  s    
z+Testfromregex.test_bad_dtype_not_structuredN)r-   r.   r/   rq   rF  rG  rƒ   r„   r@  rÑ  r   rL  rO  rP  r&   r&   r&   r'   r7  è  s   

r7  c                   @   sÈ  e Zd ZeejƒZdd„ Zdd„ Zdd„ Z	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Z d5d6„ Z!d7d8„ Z"d9d:„ Z#d;d<„ Z$d=d>„ Z%d?d@„ Z&dAdB„ Z'dCdD„ Z(dEdF„ Z)dGdH„ Z*dIdJ„ Z+dKdL„ Z,dMdN„ Z-dOdP„ Z.dQdR„ Z/dSdT„ Z0dUdV„ Z1dWdX„ Z2dYdZ„ Z3d[d\„ Z4d]d^„ Z5d_d`„ Z6dadb„ Z7dcdd„ Z8dedf„ Z9dgdh„ Z:didj„ Z;dkdl„ Z<dmdn„ Z=dodp„ Z>dqdr„ Z?dsdt„ Z@dudv„ ZAdwdx„ ZBdydz„ ZCd{d|„ ZDd}d~„ ZEdd€„ ZFd�d‚„ ZGdƒd„„ ZHd…d†„ ZId‡dˆ„ ZJd‰dŠ„ ZKd‹dŒ„ ZLd�dŽ„ ZMd�d�„ ZNd‘d’„ ZOd“d”„ ZPd•d–„ ZQd—d˜„ ZRd™dš„ ZSd›dœ„ ZTd�dž„ ZUdŸd „ ZVd¡d¢„ ZWd£d¤„ ZXeYjZ [d¥d¦d§d¨g¡e\d©œdªd«„ƒZ]d¬S )­ÚTestFromTxtc                 C   s†   t dƒ}tj|dtjfdtjfgd�}tjddgddgd�}t||ƒ t d	ƒ}d
ddœ}tjddg|d�}tj||d�}t||ƒ d S )Nrs  rm   rp   r[   rj   rk   rl   ro   zM 64.0 75.0
F 25.0 60.0rt  rx  rz  r}  r�  )r   rE   Ú
genfromtxtr…  r]   r   )r$   rÄ   rí  rî  Ú
descriptorr&   r&   r'   rq   0  s    
ÿ
ÿzTestFromTxt.test_recordc                 C   sz   t dƒ}tjddgddggtd�}tj|td�}t||ƒ | d¡ tjddgddggtd�}tj|td�}t||ƒ d S )Nrs  rS   rY   r2   rZ   r[   r   )	r   rE   r]   r_   rR  r   rK   r^   r  )r$   rÄ   rî  rí  r&   r&   r'   r`   ?  s    

zTestFromTxt.test_arrayc                 C   sZ   t  ddddgt¡}tdƒ}t j|td�}t||ƒ tdƒ}t j|tdd	�}t||ƒ d S )
NrS   rY   r2   rZ   r‡  r[   rˆ  rù   r‰  )rE   r]   r_   r   rR  r   ©r$   rî  rÄ   rí  r&   r&   r'   rd   K  s    
zTestFromTxt.test_1Dc                 C   s`   t  ddddgt¡}tdƒ}t j|tddd�}t||ƒ td	ƒ}t j|tddd�}t||ƒ d S )
NrS   rY   r2   ré   r™  rù   rš  r›  z1,2,3,5# comment
)rE   r]   r_   r   rR  r   rT  r&   r&   r'   Útest_commentsW  s    
zTestFromTxt.test_commentsc                 C   st   t  ddddgt¡}ttdd�}tdƒ}t j|fddi|—Ž}t||ƒ td	ƒ}t j|fd
di|—Ž}t||ƒ d S )NrS   rY   r2   ré   rù   r‰  r£  Úskip_headerr™  r¤  )rE   r]   r_   Údictr   rR  r   r  )r$   rî  rQ   rÄ   rí  r&   r&   r'   r¥  c  s    
zTestFromTxt.test_skiprowsc                 C   sš   dd„ t ddƒD ƒ}| d¡ | dd„ t dƒD ƒ¡ d|d	< td
dddd�}tjtd |¡ƒf|Ž}tjdd„ t dƒD ƒdd„ dD ƒd�}t	||ƒ d S )Nc                 S   s   g | ]}d | ‘qS )z# %ir&   ru   r&   r&   r'   r*   q  s     z0TestFromTxt.test_skip_footer.<locals>.<listcomp>rS   rê   zA, B, Cc                 S   s   g | ]}d |||f ‘qS )z%i,%3.1f,%03sr&   ru   r&   r&   r'   r*   s  s     é3   z99,99rý  rù   Tré   rÍ  )rú   r{  rV  Úskip_footerrÛ   c                 S   s"   g | ]}d | d | d | f‘qS )r.  r&   ru   r&   r&   r'   r*   w  s     é)   c                 S   s   g | ]}|t f‘qS r&   rt   ©r)   Ú_r&   r&   r'   r*   x  s     ÚABCr[   )
r{   r±   r  rW  rE   rR  r   r¼   r]   r   )r$   rÄ   rQ   rí  Úctrlr&   r&   r'   Útest_skip_footerp  s    
ÿzTestFromTxt.test_skip_footerc              
   C   s(  t ƒ ��}| t¡ d}tttjt|ƒdd� tjt|ƒddd�}t|t 	ddgddgddgd	d	gg¡ƒ tjt|ƒd
d�}t|t 	ddgddgddgd	d	gg¡ƒ d}tjt|ƒddd�}t|t 	ddgddgd	d	gddgg¡ƒ tjt|ƒd
dd�}t|t 	ddgddgd	d	gg¡ƒ W 5 Q R X d S )Nz1 1
2 2
3 3
4 4
5  
6  
7  
rS   )rY  F)rY  Úinvalid_raiserõ   rö   r÷   rø   r2   z1 1
2  
3 3
4 4
5  
6 6
7 7
rÃ  )
r   rÊ   r   r   rá   rE   rR  r   r   r]   )r$   rÎ   ZbasestrrW   r&   r&   r'   Útest_skip_footer_with_invalid{  s8    

 ÿ  ÿ((  ÿ(  ÿz)TestFromTxt.test_skip_footer_with_invalidc              	   C   s¸   t dƒ}tjdd��:}t ddtj¡ tj|d dd�}t|d jtjkƒ W 5 Q R X t 	dd	g¡t 	d
dg¡t 	ddg¡dœ}t
|d |d ƒ t
|d |d ƒ t
|d |d ƒ d S )Nz)gender age weight
M 64.0 75.0
F 25.0 60.0Trx   rz   r    ©r\   r{  r   r  r  r  rƒ  r€  r„  rt  ru  rv  rw  )r   r}   r~   r   rE   ÚVisibleDeprecationWarningrR  r   Úcategoryr]   r   ©r$   rÄ   r  rí  rî  r&   r&   r'   Útest_header“  s    þzTestFromTxt.test_headerc              	   C   sÒ   t dƒ}tjdd��8}t ddtj¡ tj|d d�}t|d jtjkƒ W 5 Q R X t 	dd	g¡t 	d
dg¡t 	ddg¡t 	ddg¡t 	ddg¡g}t
|jjdddddgƒ t|ƒD ]\}}t
|d|  |ƒ q²d S )Nz*A 64 75.0 3+4j True
BCD 25 60.0 5+6j FalseTrx   rz   r    r[   r   ó   As   BCDé@   é   r€  r„  y      @      @y      @      @FÚf0Úf1Úf2Zf3rð   zf%i)r   r}   r~   r   rE   rc  rR  r   rd  r]   r   r\   r{  rŽ   )r$   rÄ   r  rí  rî  rv   r^  r&   r&   r'   Útest_auto_dtype¡  s    üzTestFromTxt.test_auto_dtypec                 C   sB   t dƒ}tj|d d�}t ddddgddd	d
gg¡}t||ƒ d S )Nz1 2 3 4
5 6 7 8
r[   rS   rY   r2   rZ   ré   rê   r–  r¡  ©r   rE   rR  r]   r   ©r$   rÄ   rí  rî  r&   r&   r'   Útest_auto_dtype_uniform±  s    z#TestFromTxt.test_auto_dtype_uniformc                 C   sZ   t dƒ}t dtfddtfdtfgfg¡}tj||dd�}tjdd	g|d
�}t||ƒ d S )NrÀ  rm   rp   r¿   r%   rù   r‰  rÁ  rÂ  r[   )r   rE   r\   r_   r^   rR  r]   r   ©r$   rÄ   Z
fancydtyperí  rî  r&   r&   r'   rÅ  ¸  s
    "zTestFromTxt.test_fancy_dtypec                 C   sN   dddœ}t dƒ}d}tj|||d�}||d< tjdd	g|d
�}t||ƒ d S )N)ÚgrW   r  rx  rz  s   M 64.0 75.0
F 25.0 60.0rt  rb  r{  r}  r�  r[   rn  )r$   rS  rÄ   r{  rí  rî  r&   r&   r'   Útest_names_overwriteÀ  s    ÿÿÿz TestFromTxt.test_names_overwritec              	   C   s(   t jtdd�� t d¡ W 5 Q R X d S )Nzfname must be a string,r»  é{   )rƒ   r½  r¸  rE   rR  rT  r&   r&   r'   Útest_bad_fnameÌ  s    zTestFromTxt.test_bad_fnamec              	   C   sâ   t dƒ}tjdd��:}t ddtj¡ tj|dd d�}t|d jtjkƒ W 5 Q R X tj	dd	d
gddt
fdtfgd�}t||ƒ t dƒ}tjdd��:}t ddtj¡ tj|dd d�}t|d jtjkƒ W 5 Q R X t||ƒ d S )NzN
#gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        Trx   rz   r    )r{  r\   r   )r~  rÛ  gfffffR@)r‚  r  g
×£p=*M@)r~  rÝ  g=
×£pý5@)ru  r  rv  rw  r[   sO   
# gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        ©r   r}   r~   r   rE   rc  rR  r   rd  r]   r_   r^   r   )r$   rÄ   r  rí  r^  r&   r&   r'   Útest_commented_headerÐ  s    ÿ
z!TestFromTxt.test_commented_headerc                 C   sJ   t dƒ}tj|ttfd dd�}tjddgdtfdtfgd�}t||ƒ d S )	Nzcol1 col2
 1 2
 3 4T)r\   r   r{  rj   rk   Zcol1Zcol2r[   ©r   rE   rR  r_   r]   r   ro  r&   r&   r'   Útest_names_and_comments_noneí  s    z(TestFromTxt.test_names_and_comments_nonec                 C   s~   t ƒ �n}tj |d¡}t|dƒ�}| d ¡ ¡ W 5 Q R X tƒ �* t 	t
¡� tj|dd� W 5 Q R X W 5 Q R X W 5 Q R X d S )Nr  rÁ   õ   Ï–ÚasciirI  )r   rH   ró   r¼   rÆ   r(   r\  r   rƒ   r½  ÚUnicodeDecodeErrorrE   rR  )r$   r  Zfpathr¬   r&   r&   r'   Útest_file_is_closed_on_errorô  s    z(TestFromTxt.test_file_is_closed_on_errorc              	   C   s€   t dƒ}tjdd��<}t ddtj¡ tj|ddd d�}t|d jtjkƒ W 5 Q R X tj	d	d
dt
fdtfgd�}t||ƒ d S )NúA B C D
 aaaa 121 45 9.1Trx   rz   r    ©ÚAÚCÚD)r•  r{  r\   r   )rÉ  é-   ç333333"@©r€  ú|S4r�  r‚  r[   rv  re  r&   r&   r'   Útest_autonames_and_usecols  s     ÿÿz&TestFromTxt.test_autonames_and_usecolsc                 C   sJ   t dƒ}tj|tdddd„ idd�}t dd	gd
dggt¡}t||ƒ d S )Nr’  rù   r2   c                 S   s   t | pdƒS rŒ  rŽ  r�  r&   r&   r'   re    rf  z:TestFromTxt.test_converters_with_usecols.<locals>.<lambda>r“  r”  rY   r�  r–  r—  rx  ro  r&   r&   r'   r˜    s    

þz(TestFromTxt.test_converters_with_usecolsc              	   C   sŠ   t dƒ}tjdd��F}t ddtj¡ tj|ddd ddd	„ id
�}t|d jtjkƒ W 5 Q R X tj	dddt
fdtfgd�}t||ƒ d S )Nr~  Trx   rz   r    r  r�  c                 S   s   dt | ƒ S )NrY   rŽ  r�  r&   r&   r'   re    rf  zDTestFromTxt.test_converters_with_usecols_and_names.<locals>.<lambda>)r•  r{  r\   rg  r   )rÉ  éZ   r„  r…  r‚  r[   rv  re  r&   r&   r'   Ú&test_converters_with_usecols_and_names  s    

þÿz2TestFromTxt.test_converters_with_usecols_and_namesc                 C   sb   ddd„ i}t dƒ}tj|dd ddg|d�}tjtdd	d
ƒdfdtjfdtfgd�}t||ƒ d S )NÚdatec                 S   s
   t | dƒS ©Nz%Y-%m-%d %H:%M:%SZ)r7   r�  r&   r&   r'   re  &  rf  z9TestFromTxt.test_converters_cornercases.<locals>.<lambda>ú2009-02-03 12:00:00Z, 72214.0rù   rª  ©rú   r\   r{  rg  éÙ  rY   r2   ç    `¡ñ@r[   )r   rE   rR  r]   r   Zobject_r^   r   ©r$   Ú	converterrÄ   rí  rî  r&   r&   r'   Útest_converters_cornercases#  s     ÿ
 ÿÿz'TestFromTxt.test_converters_cornercasesc                 C   s\   ddd„ i}t dƒ}tj|dd ddg|d�}tjtdd	d
ƒdfddtfgd�}t||ƒ d S )NrŠ  c                 S   s   t  t| dƒ¡S r‹  )rE   Z
datetime64r7   r�  r&   r&   r'   re  1  rf  z:TestFromTxt.test_converters_cornercases2.<locals>.<lambda>rŒ  rù   rª  r�  rŽ  rY   r2   r�  )rŠ  zdatetime64[us]r[   )r   rE   rR  r]   r   r^   r   r�  r&   r&   r'   Útest_converters_cornercases2.  s     ÿ
 ÿ
ÿz(TestFromTxt.test_converters_cornercases2c                 C   sb   t dƒ}tj|dddd„ id�}t|ddgƒ | d¡ tj|dd	d
d„ id�}t|ddgƒ d S )Nz1 21
  3 42
r¦  r   c                 S   s
   t | dƒS rØ  rŽ  r�  r&   r&   r'   re  =  rf  z3TestFromTxt.test_unused_converter.<locals>.<lambda>rÚ  rÛ  rÜ  rS   c                 S   s
   t | dƒS rØ  rŽ  r�  r&   r&   r'   re  B  rf  rÝ  rÞ  )r   rE   rR  r   rK   ©r$   rÄ   rí  r&   r&   r'   rß  9  s    
ÿ

ÿz!TestFromTxt.test_unused_converterc                 C   sB   dd„ }dd„ }t dƒ}t||dœdd d�}tttj|f|Ž d S )Nc                 S   s4   t d|  ¡ kr|  ¡ d p0d|  ¡ kr.|  ¡ p0dƒS )Nó   rrý  r[  ©r^   Úlowerr  rå  rd  r&   r&   r'   re  F  s   ÿz4TestFromTxt.test_invalid_converter.<locals>.<lambda>c                 S   s4   t d|  ¡ kr|  ¡ d p0d|  ¡ kr.|  ¡ p0dƒS )Nó   %r   r[  r–  rd  r&   r&   r'   re  H  s   ÿzgD01N01,10/1/2003 ,1 %,R 75,400,600
L24U05,12/5/2003, 2 %,1,300, 150.5
D02N03,10/10/2004,R 1,,7,145.55rB  rù   )rg  rú   r\   )r   rW  r   r
   rE   rR  )r$   Z
strip_randZ	strip_perr%   rQ   r&   r&   r'   Útest_invalid_converterE  s     þz"TestFromTxt.test_invalid_converterc                 C   sH   t dƒ}dd„ }tj|dd|id�}t ddgd	d
gg¡}t||ƒ d S )Nz	q1,2
q3,4c                 S   s   t | dd … ƒS rn  rt   r�  r&   r&   r'   re  U  rf  z;TestFromTxt.test_tricky_converter_bug1666.<locals>.<lambda>rù   r   )rú   rg  rõ   rö   r÷   rø   rn  )r$   r%   Zcnvrí  rî  r&   r&   r'   Útest_tricky_converter_bug1666R  s
    z)TestFromTxt.test_tricky_converter_bug1666c                 C   s~   d}t jt|ƒdtdtid�}t jdgddtfdtfgd	�}t||ƒ t jt|ƒdtdtid�}t  d
ddg¡}t||ƒ d S )Nz2009; 23; 46ræ  r   rç  )Z2009ç      7@é.   )rj  r†  rk  rl  r[   g     dŸ@r›  rœ  )rE   rR  r   r^   r4   r]   r   )r$   Údstrrí  rî  r&   r&   r'   Útest_dtype_with_convertersZ  s"    
  ÿÿ

  ÿz&TestFromTxt.test_dtype_with_convertersc                    s´   d}dddddœ‰ ddd	d
g}t t t ‡ fdd„dœ}tjt|ƒ|dd |d�}tjjdddg|d�}t||ƒ ddd
g}tjt|ƒ|ddd |d�}tjjdddg|d�}t||ƒ d S )Nz!1,5,-1,1:1
2,8,-1,1:n
3,3,-2,m:n
r   rS   rY   r2   )z1:1z1:nzm:1zm:n)Úe1rn   )Úe2rn   )Ze3Úi2)r�   Úi1c                    s   ˆ |   ¡  S r!   rc  )rh   ©Zdmapr&   r'   re  j  rf  zDTestFromTxt.test_dtype_with_converters_and_usecols.<locals>.<lambda>)r   rS   rY   r2   rù   )r\   rú   r{  rg  )rS   ré   rý  r   )rY   r¡  rý  rS   )r2   r2   éþÿÿÿr2   r[   )r   rS   r2   )r\   rú   r•  r{  rg  )rS   ré   r   )rY   r¡  rS   )r2   r2   r2   )r_   rE   Ú
recfromcsvr   Zrecr]   r   )r$   r�  ZdtypÚconvrí  rî  r&   r£  r'   Ú&test_dtype_with_converters_and_usecolsf  s$     ÿ

  ÿz2TestFromTxt.test_dtype_with_converters_and_usecolsc              	   C   sö   d}dt fdtfg}dd„ }d|i}tjt|ƒd||d�}tjdtd	ddƒfd
tdddƒfg|d�}t||ƒ ddt fdtfgfg}tt	dƒ� tjt|ƒd||d�}W 5 Q R X dt fdtfdg fg}tt	dƒ� tjt|ƒd||d�}W 5 Q R X d S )Nrà  rá  râ  c                 S   s   t |  ¡ dƒS rã  rä  r�  r&   r&   r'   re  z  rf  z4TestFromTxt.test_dtype_with_object.<locals>.<lambda>rS   ræ  rç  rè  rY   ré  rê  r[   ÚnestzNested fields.* not supported.*)
r_   rb   rE   rR  r   r]   r   r   r   ÚNotImplementedErrorrë  r&   r&   r'   rï  u  s8    ÿþ
ÿ ÿÿ ÿz"TestFromTxt.test_dtype_with_objectc                 C   sH   t jtdƒtd�}|d dks"t‚t jtdƒtd�}|d dksDt‚d S )NÚ1r[   r&   ó   1Ústrings   string)rE   rR  r   rb   r½   )r$   Úparsedr&   r&   r'   Ú#test_dtype_with_object_no_converter�  s    z/TestFromTxt.test_dtype_with_object_no_converterc                 C   sH   t dƒ}tj|dd tddtid�}tjdgddtfgd	�}t||ƒ d S )
Nzskip,skip,2001-01-01,1.0,skiprù   rB  rY   )rú   r{  r\   r•  rg  )ú
2001-01-01rõ   )r    ú|S10r    r[   )r   rE   rR  r^   r4   r]   r   ro  r&   r&   r'   Ú'test_userconverters_with_explicit_dtype—  s     ÿ
ÿz3TestFromTxt.test_userconverters_with_explicit_dtypec              
   C   s’   d}t ƒ �N}t|dƒ�}| d| d ¡ W 5 Q R X tj|dd tddtjjidd	�}W 5 Q R X tjd
| 	d¡ dfgddtfgd�}t
||ƒ d S )Nr  rÁ   s   skip,skip,2001-01-01s	   ,1.0,skiprù   rB  rY   r  )rú   r{  r\   r•  rg  r  r¯  rõ   )r    z|U11r    r[   )r   rÆ   r(   rE   rR  r^   ÚcompatÚunicoder]   r5   r   )r$   r  ró   r¬   rí  rî  r&   r&   r'   Ú,test_utf8_userconverters_with_explicit_dtype   s     
þ
ÿz8TestFromTxt.test_utf8_userconverters_with_explicit_dtypec                 C   sB   t dƒ}t |¡}t dddddgddd	d
dgg¡}t||ƒ d S )Nz1  2  3  4   5
6  7  8  9  10rõ   rö   r÷   rø   ç      @rÃ  ç      @rÊ  ç      "@g      $@rn  ro  r&   r&   r'   Útest_spacedelimiter¬  s    
ÿzTestFromTxt.test_spacedelimiterc                 C   sF   d}t jt|ƒdd�}t  dddgdddgd	d
dgg¡}t||ƒ d S )Nz  1  2  3
  4  5 67
890123  4r2   )rú   rS   rY   rZ   ré   éC   iz  rt  ©rE   rR  r   r]   r   ro  r&   r&   r'   Útest_integer_delimiter´  s    "z"TestFromTxt.test_integer_delimiterc                 C   sF   t dƒ}tj|tdddd„ id�}t dddd	d
gt¡}t||ƒ d S )Nr‹  rù   r2   c                 S   s   t | pdƒS rŒ  rŽ  r�  r&   r&   r'   re  ¾  rf  z*TestFromTxt.test_missing.<locals>.<lambda>r�  rS   rY   r�  ré   rx  ro  r&   r&   r'   r‘  »  s    

ÿzTestFromTxt.test_missingc                 C   sj   d}t jt|ƒddd�}t  dt jdt jfdt jdfg¡}t jd	d
dgtd�}t|j|ƒ t|j|ƒ d S )Nz1	2	3
	2	
1		3r  T)rú   Úusemaskrç   rY   rS   r2   ©r   r   r   ©rS   r   rS   ©r   rS   r   r[   )	rE   rR  r   r]   ÚnanÚboolr   rÄ   Úmask)r$   r  rí  Zctrl_dZctrl_mr&   r&   r'   Útest_missing_with_tabsÂ  s    ÿ"z"TestFromTxt.test_missing_with_tabsc                 C   sþ   t  ddgddggt¡}tƒ }t  ||¡ | d¡ t j|tdd�}t||d d …df ƒ t  dddgdddggt¡}tƒ }t  ||¡ | d¡ t j|td	d�}t||d d …dd …f ƒ | d¡ t j|tt  ddg¡d�}t||d d …dd …f ƒ d S )
NrS   rY   r2   rZ   r   r¦  r§  ré   rj   )rE   r]   r^   r   rÞ   rK   rR  r   rT  r&   r&   r'   rº  Ì  s    


zTestFromTxt.test_usecolsc                 C   sB   d}t jt|ƒddd�}t jddgdd„ d	D ƒd
�}t||ƒ d S )Nú1 2 3
4 5 6úa, b, cza, c)r{  r•  r“  ©rZ   rê   c                 S   s   g | ]}|t f‘qS r&   rt   r[  r&   r&   r'   r*   æ  s     z3TestFromTxt.test_usecols_as_css.<locals>.<listcomp>Úacr[   rº  ©r$   rÄ   rí  r^  r&   r&   r'   Útest_usecols_as_cssá  s    
 ÿzTestFromTxt.test_usecols_as_cssc                 C   sZ   t dƒ}ddg}ddg}tj|dtt||ƒƒd�}t|d dd	gƒ t|d d
dgƒ d S )NzJOE 70.1 25.3
BOB 60.5 27.9rª  r«  r¬  r­  r®  r¯  r°  r±  r²  r³  )r   rE   rR  r  rÕ   r   )r$   rÄ   r{  r¹  rí  r&   r&   r'   Ú"test_usecols_with_structured_dtypeé  s      ÿz.TestFromTxt.test_usecols_with_structured_dtypec                 C   s*   t jtdƒdd�}t|t  ddg¡ƒ d S )Ns   1 2 3
4 5 6r   rµ  rõ   rø   )rE   rR  r   r   r]   )r$   rí  r&   r&   r'   Útest_usecols_with_integeró  s    z%TestFromTxt.test_usecols_with_integerc                 C   sx   t jddgdtfdtfgd�}d}tdd�}t jt|ƒfd	d
i|—Ž}t||ƒ t jt|ƒfd	di|—Ž}t||ƒ d S )Nr“  rÆ  rW   r¥   r[   rÄ  rÅ  )r{  r•  ©r   rý  )rW   r¥   )rE   r]   r^   rW  rR  r   r   )r$   r^  rÄ   rQ   rí  r&   r&   r'   Útest_usecols_with_named_columnsø  s    

ÿÿz+TestFromTxt.test_usecols_with_named_columnsc              	   C   s`   t ƒ �P}|jdd� tƒ }t |¡}t|t g ¡ƒ tj|dd�}t|t g ¡ƒ W 5 Q R X d S )Nzgenfromtxt: Empty input file:)ÚmessagerS   )rV  )r   rÊ   r   rE   rR  r   r]   )r$   rÎ   rÄ   rí  r&   r&   r'   r×    s    
zTestFromTxt.test_empty_filec                 C   s\   t dƒ}t dtfddtfdtfgfg¡}tj||ddd�}tjd	d
g|d�}t||ƒ d S )NrÀ  rm   rp   r¿   r%   rù   T)r\   rú   r¼  rÁ  rÂ  r[   )	r   rE   r\   r_   r^   rR  Úmar]   r   rq  r&   r&   r'   Útest_fancy_dtype_alt  s
    "z TestFromTxt.test_fancy_dtype_altc                 C   sl   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
dddgdddggfg|d�}t||ƒ d S rÆ  )r   rE   r\   r^   r_   rR  r]   r   rÄ  r&   r&   r'   rÌ    s    ÿ ÿzTestFromTxt.test_shaped_dtypec                 C   sÊ   t dƒ}tdddd�}tj|fd ddœ|—Ž}tjddgd	d
gdtfdtfgd�}t||ƒ t|j|jƒ | 	d¡ tj|fddi|—Ž}tjddgd	d
gdt
fdt
fgd�}t||ƒ t|j|jƒ d S )NúA,B
0,1
2,N/Arù   úN/AT©rú   Úmissing_valuesr{  ©r\   r¼  r  ©rY   rý  ©FF©FTr€  ÚB©rÂ  r\   r   r¼  )r   rW  rE   rR  rÏ  r]   r_   r   rÂ  rK   r^   ©r$   rÄ   rQ   rí  rî  r&   r&   r'   Útest_withmissing   s"    
þ


þ
zTestFromTxt.test_withmissingc                 C   s  d}t d ddd�}dtfdtfdtfg}tjt|ƒfdd	i|—Ž}tjd
dddgddddg|d�}t	||ƒ ||d< tjt|ƒfddddœddœ|—Ž}tjd
dddgddddg|d�}t	||ƒ tjt|ƒfddddœddœ|—Ž}tjd
dddgddddg|d�}t	||ƒ d S )Nz4A, B, C
0, 0., 0j
1, N/A, 1j
-9, 2.2, N/A
3, -99, 3jrù   T)r\   rú   r{  r€  rÙ  r�  rÔ  rÒ  )r   r[  y                )rS   r�  r  )r9  gš™™™™™@ù       €     8�À)r2   é�ÿÿÿy              @r½  r¿  )r   r   rS   rÚ  r\   r9  rÞ  rÝ  ©r   rS   rY   )rÔ  r¼  r¾  )r   rÙ  r�  )
rW  r_   r^   r�   rE   rR  r   rÏ  r]   r   )r$   rÄ   Z
basekwargsZmdtyperí  rî  r&   r&   r'   Útest_user_missing_values2  sV    ÿ ÿ
ý

 ÿÿ ÿ
ý

þý ÿ
ýz$TestFromTxt.test_user_missing_valuesc              	   C   sD  t jddgdtfdtfgd�}d}tdtdd	d
ddœddddœd�}t jt|ƒf|Ž}t jddgdd„ dD ƒd�}t||ƒ t jt|ƒfddi|—Ž}t jddgdd„ dD ƒd�}t||ƒ d}t jt|ƒdtddd�}t  ddddgddd d!gg¡}t||ƒ t jt|ƒdtdd"d�}t  ddd"dgdd"d d!gg¡}t||ƒ d S )#N)r   r2   )rZ   r�  rW   rž   r[   zN/A, 2, 3
4, ,???rù   za,b,crÒ  rÚ   z???)r   rž   rY   r   r�  )rú   r\   r{  rÔ  Úfilling_values)r   rY   r2   )rZ   r   r�  c                 S   s   g | ]}|t f‘qS r&   rŽ  r[  r&   r&   r'   r*   ]  s     z8TestFromTxt.test_user_filling_values.<locals>.<listcomp>Úabcr•  rÌ  c                 S   s   g | ]}|t f‘qS r&   rŽ  r[  r&   r&   r'   r*   a  s     rÇ  z1,2,*,4
5,*,7,8
Ú*)rú   r\   rÔ  rá  rS   rY   rZ   ré   r–  r¡  rý  )rE   r]   r_   rW  rR  r   r   )r$   r^  rÄ   rQ   rí  Zdata2r&   r&   r'   Útest_user_filling_valuesR  s:    

ü
ÿ

 ÿ
 ÿz$TestFromTxt.test_user_filling_valuesc                 C   s^   t dƒ}tj|d ddddd�}tjddgdd	gd
tfdtfgd�}t||ƒ t|j|jƒ d S )NzA,B
0,1.5
2,-999.00rù   z-999.0T)r\   rú   rÔ  r{  r¼  )r   r´  )rY   g      ð¿r×  rØ  r€  rÙ  rÚ  )	r   rE   rR  rÏ  r]   r_   r^   r   rÂ  ro  r&   r&   r'   Útest_withmissing_floatn  s    
  ÿ
þ
z"TestFromTxt.test_withmissing_floatc                 C   sV   t dƒ}tj|d ddd�}tjdddgdd	d
ggdddgdddggd�}t||ƒ d S )Nz1 2 3
4 5 6
ú2,5T©r\   rÔ  r¼  rS   rY   r2   rZ   ré   rê   r   )rÂ  )r   rE   rR  rÏ  r]   r   ro  r&   r&   r'   Útest_with_masked_column_uniformx  s     ÿ.z+TestFromTxt.test_with_masked_column_uniformc                 C   sR   t dƒ}tj|d ddd�}tjddgddgdtfd	tfd
tfgd�}t||ƒ d S )NzTrue 2 3
False 5 6
ræ  Trç  rç   )r   ré   rê   r¿  rj  rk  rl  rÚ  )r   rE   rR  rÏ  r]   rÁ  r_   r   ro  r&   r&   r'   Útest_with_masked_column_various€  s     ÿ
þz+TestFromTxt.test_with_masked_column_variousc                    s²   dgd }t dƒD ]}d|d| < q| dd¡ td |¡ƒ‰td	d d
d�‰ ‡ ‡fdd„}tt|ƒ}tt|ƒdƒ t|t	j
ddd„ dD ƒd�ƒ ˆ d¡ ttt	jˆd	d
d� d S )Nú1, 1, 1, 1, 1r1  ré   ú2, 2, 2, 2 2rÍ  r   úa, b, c, d, erÛ   rù   T©rú   r\   r{  c                      s   t jˆfddiˆ —ŽS )Nr`  F©rE   rR  r&   ©rQ   Úmdatar&   r'   r¬   “  s    z)TestFromTxt.test_invalid_raise.<locals>.frƒ  c                 S   s   g | ]}|t f‘qS r&   rŽ  r[  r&   r&   r'   r*   —  s     z2TestFromTxt.test_invalid_raise.<locals>.<listcomp>Úabcder[   ©rú   r{  )r{   Úinsertr   r¼   rW  r   r   r   ÚlenrE   r|   rK   r   rá   rR  )r$   rÄ   rv   r¬   Úmtestr&   rï  r'   Útest_invalid_raiseŠ  s    



 ÿzTestFromTxt.test_invalid_raisec                    sü   dgd }t dƒD ]}d|d| < q| dd¡ td |¡ƒ‰td	d d
dd�‰ ‡ ‡fdd„}tt|ƒ}tt|ƒdƒ t|t	j
ddd„ dD ƒd�ƒ ˆ d¡ t	jˆfddiˆ —Ž}tt|ƒdƒ t	j
ddd„ dD ƒd�}d|dd„ t dƒD ƒ< t||ƒ d S )Nrê  r1  ré   rë  rÍ  r   rì  rÛ   rù   TF)rú   r\   r{  r`  c                      s   t jˆfddiˆ —ŽS )Nr•  )r   rZ   rî  r&   rï  r&   r'   r¬   §  s    z6TestFromTxt.test_invalid_raise_with_usecols.<locals>.frƒ  c                 S   s   g | ]}|t f‘qS r&   rŽ  r[  r&   r&   r'   r*   «  s     z?TestFromTxt.test_invalid_raise_with_usecols.<locals>.<listcomp>Zaer[   r•  r  c                 S   s   g | ]}|t f‘qS r&   rŽ  r[  r&   r&   r'   r*   °  s     Úabrÿ  c                 S   s   g | ]}d | ‘qS )rÍ  r&   r[  r&   r&   r'   r*   ±  s     )r{   ró  r   r¼   rW  r   r   r   rô  rE   r|   rK   rR  )r$   rÄ   rv   r¬   rõ  rî  r&   rï  r'   Útest_invalid_raise_with_usecols�  s$    
ÿ

z+TestFromTxt.test_invalid_raise_with_usecolsc                 C   sR   dgd }t d |¡ƒ}ddd„ i}td|dd	„ d
D ƒd�}tttj|f|Ž d S )Nz1, 1, 1, 1, -1.1r1  rÛ   rZ   c                 S   s   d|   ¡  S )Nz(%s)rc  rd  r&   r&   r'   re  ¹  rf  z5TestFromTxt.test_inconsistent_dtype.<locals>.<lambda>rù   c                 S   s   g | ]}|t f‘qS r&   rŽ  r[  r&   r&   r'   r*   »  s     z7TestFromTxt.test_inconsistent_dtype.<locals>.<listcomp>rñ  )rú   rg  r\   )r   r¼   rW  r   rá   rE   rR  )r$   rÄ   rð  rg  rQ   r&   r&   r'   Útest_inconsistent_dtype´  s    
ÿz#TestFromTxt.test_inconsistent_dtypec                 C   sL   d}t jt|ƒdd dd�}t jddgdtfdtfd	tfgd
�}t||ƒ d S )Nú0, 1, 2.3
4, 5, 6.7rù   úf%02i©rú   r\   Z
defaultfmt©r   rS   çffffff@)rZ   ré   çÍÌÌÌÌÌ@Zf00Zf01Zf02r[   )rE   rR  r   r]   r_   r^   r   ©r$   rÄ   rõ  r^  r&   r&   r'   Útest_default_field_format¾  s    
  ÿ
ÿz%TestFromTxt.test_default_field_formatc                 C   sF   d}t jt|ƒdtdd�}t jdddgdd	d
ggtd�}t||ƒ d S )Nrú  rù   rû  rü  r[  rõ   rþ  rø   rµ  rÿ  r[   ©rE   rR  r   r^   r]   r   r   r&   r&   r'   Útest_single_dtype_wo_namesÇ  s    
  ÿz&TestFromTxt.test_single_dtype_wo_namesc                 C   sD   d}t jt|ƒdtdd�}t jddgdd„ d	D ƒd
�}t||ƒ d S )Nrú  rù   rÅ  rí  ©r[  rõ   rþ  ©rø   rµ  rÿ  c                 S   s   g | ]}|t f‘qS r&   rt   r[  r&   r&   r'   r*   Õ  s     zBTestFromTxt.test_single_dtype_w_explicit_names.<locals>.<listcomp>râ  r[   r  r   r&   r&   r'   Ú"test_single_dtype_w_explicit_namesÏ  s    
  ÿ
ÿz.TestFromTxt.test_single_dtype_w_explicit_namesc                 C   sD   d}t jt|ƒdtdd�}t jddgdd„ d	D ƒd
�}t||ƒ d S )Nza, b, c
0, 1, 2.3
4, 5, 6.7rù   Trí  r  r  c                 S   s   g | ]}|t f‘qS r&   rt   r[  r&   r&   r'   r*   Þ  s     zBTestFromTxt.test_single_dtype_w_implicit_names.<locals>.<listcomp>râ  r[   r  r   r&   r&   r'   Ú"test_single_dtype_w_implicit_namesØ  s    
  ÿ
ÿz.TestFromTxt.test_single_dtype_w_implicit_namesc                 C   sR   d}t jt|ƒdtttfdd�}t jddgdtfdtfd	tfgd
�}t||ƒ d S )Nrú  rù   zf_%02irü  )r   rõ   rþ  )rZ   rµ  rÿ  Zf_00Zf_01Zf_02r[   ©rE   rR  r   r_   r^   r]   r   r   r&   r&   r'   Útest_easy_structured_dtypeá  s     ÿ
ÿz&TestFromTxt.test_easy_structured_dtypec              	   C   s   d}t dd d�}tjdd��<}t ddtj¡ tjt|ƒf|Ž}t|d j	tjkƒ W 5 Q R X tj
d	gd
dtfdgd�}t||ƒ tjdd��D}t ddtj¡ tjt|ƒfddi|—Ž}t|d j	tjkƒ W 5 Q R X tj
dgddtfdgd�}t||ƒ d S )Nz01/01/2003  , 1.3,   abcderù   )rú   r\   Trx   rz   r    r   )z01/01/2003  çÍÌÌÌÌÌô?z   abcde)rj  z|S12rk  )rl  r  r[   Z	autostrip)z
01/01/2003r
  rñ  )rj  r°  )rl  z|S5)rW  r}   r~   r   rE   rc  rR  r   r   rd  r]   r^   r   )r$   rÄ   rQ   r  rõ  r^  r&   r&   r'   Útest_autostripê  s$    ÿ
ÿzTestFromTxt.test_autostripc                 C   sÚ   d}t jt|ƒddd d�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddd d
d
d�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddd d
d�}dtfdtfdtfg}t jd|d	�}t||ƒ d S )NzA.A, B (B), C:C
1, 2, 3.14rù   T©rú   r{  r\   ÚAAÚB_BÚCC)rS   rY   g…ëQ¸	@r[   r    ©rú   r{  r\   Zreplace_spaceÚdeletecharsúA.AúB (B)úC:C©rú   r{  r\   r  úB_(B)r  ©r$   r  rí  Z
ctrl_dtyper^  r&   r&   r'   Útest_replace_spaceý  s8    
  ÿ

   þ

  þzTestFromTxt.test_replace_spacec                 C   sÚ   d}t jt|ƒddtd�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddtd
d
d�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddtd
d�}dtfdtfdtfg}t jd|d	�}t||ƒ d S )NzA.A, B (B), C:C
1, 2, 3rù   Tr  r  r  r  rç   r[   r    r  r  r  r  r  r  )rE   rR  r   r_   r]   r   r  r&   r&   r'   Útest_replace_space_known_dtype  s8    
  ÿ

   þ

  þz*TestFromTxt.test_replace_space_known_dtypec                 C   s‚   d}t ddd�}tjddgdd„ d	D ƒd
�}tjt|ƒfdd i|—Ž}t||ƒ tjddgdd„ d	D ƒd
�}tjt|ƒf|Ž}d S )NzA,,C
0,1,2
3,4,5rù   Trò  rß  )r2   rZ   ré   c                 S   s   g | ]}|t f‘qS r&   rŽ  r[  r&   r&   r'   r*   3  s     z5TestFromTxt.test_incomplete_names.<locals>.<listcomp>)r€  rj  r�  r[   r\   c                 S   s   g | ]}|t f‘qS r&   rt   r[  r&   r&   r'   r*   8  s     )rW  rE   r]   rR  r   r   ©r$   rÄ   rQ   r^  rí  r&   r&   r'   Útest_incomplete_names-  s    
ÿ

ÿz!TestFromTxt.test_incomplete_namesc                 C   sP   d}t jt|ƒtttfdd�}t jddgdtfdtfdtfgd�}t||ƒ d S )	Nz1 2 3
 4 5 6rW   rb  rç   rè   rj  rk  r[   r  rÈ  r&   r&   r'   Útest_names_auto_completion;  s    
 ÿ
ÿz&TestFromTxt.test_names_auto_completionc                 C   sŠ   d}d}t jt|ƒtttfdddd�}t|jj|ƒ t jt|ƒtttfdddd�}t|jj|ƒ t jt|ƒtdddd�}t|jj|ƒ d S )Nz'A,B,C,D,E
0,1,2,3,4
0,1,2,3,4
0,1,2,3,4)r€  r�  ÚErù   )r   rY   rZ   T)r\   rú   r•  r{  )rE   rR  r   r_   r   r\   r{  )r$   rÄ   Z
ctrl_namesrí  r&   r&   r'   Útest_names_with_usecols_bug1636D  s.    
  þ
  þ
  þz+TestFromTxt.test_names_with_usecols_bug1636c                 C   s¤   d}t ddd d�}tjddgdtfdtfd	tfgd
�}tjt|ƒf|Ž}t||ƒ t ddd d�}tjddgdtfdtfd	tfgd
�}tjt|ƒf|Ž}t||ƒ d S )Nz-    A    B   C
    0    1 2.3
   45   67   9.)ré   ré   rZ   Tr  rý  )rƒ  r¹  r·  r€  rÙ  r�  r[   ré   )rW  rE   r]   r_   r^   rR  r   r   r  r&   r&   r'   Útest_fixed_width_namesW  s    
ÿ

ÿz"TestFromTxt.test_fixed_width_namesc                 C   sX   d}t dd dd�}tjdddgdddgd	d
dggtd�}tjt|ƒf|Ž}t||ƒ d S )Ns   1, 2, 3
1, , 5
0, 6, 
rù   r�  )rú   r\   rá  rS   rY   r2   ré   r   rê   r[   )rW  rE   r]   r_   rR  r   r   r  r&   r&   r'   Útest_filling_valuesf  s
    &zTestFromTxt.test_filling_valuesc              	   C   sÄ   t jdd��@}t  ddtj¡ tjtdƒd d dd�}t|d jtjkƒ W 5 Q R X t	|d	 d
ƒ t jdd��@}t  ddtj¡ tjtdƒd d dd�}t|d jtjkƒ W 5 Q R X t	|d	 dƒ d S )NTrx   rz   r    ztest1,testNonetherestofthedatarù   ©r\   r   rú   r   rS   s   testNonetherestofthedataztest1, testNonetherestofthedatas    testNonetherestofthedata)
r}   r~   r   rE   rc  rR  r   r   rd  r   )r$   r  rí  r&   r&   r'   Útest_comments_is_nonen  s$    
  ÿ
  ÿz!TestFromTxt.test_comments_is_nonec              	   C   sf  d}d}d| d }|| | }t jdd��@}t  ddtj¡ tjt|ƒd d d	d
�}t|d jtjkƒ W 5 Q R X t	|d dƒ t	|d d| ƒ t	|d dƒ tjt|ƒd d d	dd�}t	|d dƒ t	|d d| 
d¡ ƒ t	|d dƒ t jdd��D}t  ddtj¡ tjtd| ƒd d d	d
�}t|d jtjkƒ W 5 Q R X t	|d dƒ t	|d d| ƒ d S )Ns   öüöó   norm1,norm2,norm3
ó   test1,testNonetheó   ,test3
Trx   rz   r    rù   r!  r   )rS   r   ó   test1)rS   rS   ó   testNonetherj   ó   test3r1   ©r\   r   rú   r  Útest1ÚtestNonetheÚtest3ó   0,testNonetherj  rk  )r}   r~   r   rE   rc  rR  r   r   rd  r   r5   )r$   r1   ÚnormÚencr%   r  rí  r&   r&   r'   Útest_latin1}  sD    
  ÿ
  þ  ÿzTestFromTxt.test_latin1c                 C   s6   d}| j t|ƒd dd�}t|t | d¡ ¡ ¡ƒ d S r_  )rM  r   r   rE   r]   r5   r  r`  r&   r&   r'   Útest_binary_decode_autodtype™  s    z(TestFromTxt.test_binary_decode_autodtypec              	   C   s¦   d}d}d| d }|| | }t jdd��@}t  ddtj¡ tjt|ƒd d d	d
�}t|d jtjkƒ W 5 Q R X t 	dddgdd| dgdddgg¡}t
||ƒ d S )Nr  r#  r$  r%  Trx   rz   r    rù   r!  r   s   norm1s   norm2s   norm3r&  r'  r(  )r}   r~   r   rE   rc  rR  r   r   rd  r]   r   )r$   r  r.  r/  r%   r  rí  Úctlr&   r&   r'   Útest_utf8_byte_encodingž  s$    
  ÿýz#TestFromTxt.test_utf8_byte_encodingc              
   C   sö   d}t ƒ �â}t|dƒ�}| d| d d ¡ W 5 Q R X tj|d d ddd�}tjd	d
| d¡ dgd	d
| d¡ dggtjd�}t||ƒ t|dƒ�}| d| ¡ W 5 Q R X tj|d d ddd�}t	|d dƒ t	|d d
| d¡ ƒ W 5 Q R X d S )Nr  rÁ   r$  r%  rY   rù   r  r)  r*  r+  r,  r[   r-  rj  r   rk  )
r   rÆ   r(   rE   rR  r]   r5   r  r   r   )r$   r  ró   r¬   rí  r2  r&   r&   r'   Útest_utf8_file®  s.     
 ÿþý

 ÿzTestFromTxt.test_utf8_filec           	   
   C   s"  d}d}zt  ¡ }| |¡ W n" ttfk
r@   t d¡ Y nX tƒ �Ð}t 	|d¡�4}| 
d¡ | 
d| d ¡ | 
d| d	 ¡ W 5 Q R X tjd
d��<}t ddtj¡ tj|d d dd�}t|d jtjkƒ W 5 Q R X tjdddgd|dgdd| dggtjd�}t||ƒ W 5 Q R X d S )Nrz  u   Ã¶Ã¼Ã¶zTSkipping test_utf8_file_nodtype_unicode, unable to encode utf8 in preferred encodingrG  znorm1,norm2,norm3
znorm1,z,norm3
ztest1,testNonethez,test3
Trx   rz   r    rù   r!  r   Znorm1Znorm2Znorm3r*  r+  r,  r[   )r5  r6  r\  ÚUnicodeErrorÚImportErrorrƒ   r.  r   rk  rÆ   r(   r}   r~   r   rE   rc  rR  r   rd  r]   r  r   )	r$   r  r1   r  ró   r¬   r  rí  r2  r&   r&   r'   Útest_utf8_file_nodtype_unicodeÃ  s8    
ÿ
ÿýüz*TestFromTxt.test_utf8_file_nodtype_unicodec                 C   sÌ   t dƒ}tdddd�}tj|f|Ž}tjddgdtfd	tfgd
�}tt|tjƒƒ t	||ƒ t dƒ}tj|fd ddœ|—Ž}t
jddgddgdtfd	tfgd�}t	||ƒ t	|j|jƒ t	|jddgƒ d S )NúA,B
0,1
2,3rù   rÒ  TrÓ  r  rB  r€  rÙ  r[   rÑ  rÕ  rÖ  r×  rØ  rÚ  r   rY   )r   rW  rE   Ú
recfromtxtr]   r_   r   rB   Úrecarrayr   rÏ  rÂ  r€  rÛ  r&   r&   r'   Útest_recfromtxtæ  s"    
ÿ

þ
zTestFromTxt.test_recfromtxtc                 C   sÈ  t dƒ}tdddd�}tj|fdd i|—Ž}tjddgdtfd	tfgd
�}tt|tjƒƒ t	||ƒ t dƒ}tj|fd ddœ|—Ž}t
jddgddgdtfd	tfgd�}t	||ƒ t	|j|jƒ t	|jddgƒ t dƒ}tj|dd�}tjddgdtfdtfgd
�}tt|tjƒƒ t	||ƒ t dƒ}dtfdtfg}tj|d|d�}tjddg|d
�}tt|tjƒƒ t	||ƒ t dƒ}tj|ddd„ id�}tjddgdtdffgd
�}t	|j|jƒ t	||ƒ d S )Nr8  rÒ  T©rÔ  r{  Úcase_sensitiver\   r  rB  r€  rÙ  r[   rÑ  rÕ  rÖ  r×  rØ  rÚ  r   rY   )rÔ  rW   rž   )rÔ  r\   zcolor
"red"
"blue"c                 S   s
   |   d¡S )Nó   ")rå  rd  r&   r&   r'   re  	  rf  z-TestFromTxt.test_recfromcsv.<locals>.<lambda>)rg  )Úred)ÚblueÚcolorrZ   )r   rW  rE   r¥  r]   r_   r   rB   r:  r   rÏ  rÂ  r€  r^   r4   r\   )r$   rÄ   rQ   rí  rî  r\   r&   r&   r'   Útest_recfromcsvù  sJ    
ÿ

þ

ÿ

ÿ
zTestFromTxt.test_recfromcsvc              	   C   sâ  d}t |ƒ}tj|dd�}t |¡}t|ddgddgddggƒ t|d	d
gddggƒ tttjt |ƒdd� d}tjt |ƒdd�}t ddgddgg¡}t||ƒ tttjt |ƒddd� tttjt |ƒdd� tƒ ��}| t	¡ tjt |ƒddd�}t ddgddgddgddgg¡}t||ƒ tjt |ƒddd�}t ddgddgddgddgg¡}t||ƒ W 5 Q R X d}t |ƒ}tj|dddd�}tjdddgddgd�}t||ƒ tj|d |j
d�}tjd d!gddgd�}t||ƒ d S )"Nz1 2
3 4
5 6
7 8
9 10
r2   )r'  rS   rY   rZ   ré   rê   r–  r¡  r—  rÍ  r   z1 1
2 2
0 
3 3
4 4
5  
6  
7  
rõ   rö   )rY  r'  F)r'  r`  r÷   rø   z"a b
#c d
1 1
2 2
#0 
3 3
4 4
5  5
T)rV  r'  r{  )rõ   rõ   )rö   rö   )r÷   r÷   )r¥   ú<f8)r†  rC  r[   )r'  r\   )rø   rø   )rµ  rµ  )r   rE   rR  r   r   rá   r]   r   rÊ   r   r\   )r$   rÄ   r  Za1Za2rí  rî  rÎ   r&   r&   r'   r(  "	  sF    

ÿ
"
"ÿ

ÿzTestFromTxt.test_max_rowsc                 C   st   t  d¡ d¡}d}|D ]V}d| d }tƒ �0}t|dƒ�}| |¡ W 5 Q R X t  |¡}W 5 Q R X t||ƒ qd S )Nrê   rB  rC  rE  rF  r  )rE   rK  rL  r   rÆ   r(   rR  r   )r$   rò  rO  rP  rÄ   rA   r¬   rQ  r&   r&   r'   Útest_gft_using_filenameX	  s    z#TestFromTxt.test_gft_using_filenamec           	      C   s¢   t  d¡ d¡}d}|D ]„}d| d }tƒ }tj|dd��}| t|ƒ¡ W 5 Q R X tdd	��6}t	|dƒ�}| |¡ W 5 Q R X t
t  |¡|ƒ W 5 Q R X qd S )
Nrê   rB  rC  rE  rF  r  ©ÚfileobjrH  z.gz2r®   )rE   rK  rL  r   rS  ÚGzipFiler(   r   r   rÆ   r   rR  )	r$   rN  rO  rP  rÄ   r%   rr  rA   r¬   r&   r&   r'   Útest_gft_from_gzipf	  s    zTestFromTxt.test_gft_from_gzipc                 C   s(   dd„ }t  |ƒ ¡}t|t  d¡ƒ d S )Nc                  s   s    t dƒD ]} td|  ƒV  qd S r  )r{   r   r  r&   r&   r'   r  x	  s    z3TestFromTxt.test_gft_using_generator.<locals>.countrÍ  )rE   rR  r   rK  r  r&   r&   r'   Útest_gft_using_generatorv	  s    z$TestFromTxt.test_gft_using_generatorc                 C   s’   t dƒ}tj|d d�}t|jjdddgƒ t|jd tkƒ t|jd tjkƒ t|jd tj	kƒ t
|d dƒ t|d dƒ t|d dƒ d S )	Nz%73786976294838206464 17179869184 1024r[   rj  rk  rl  g      Dl        i   )r   rE   rR  r   r\   r{  r   r^   r¶  Úint_r   r”  r&   r&   r'   Útest_auto_dtype_largeint	  s    z$TestFromTxt.test_auto_dtype_largeintc                 C   sj   t dƒ}tj|ddd�\}}}t|t ddddg¡ƒ t|t d	d
ddg¡ƒ t|t dddd	g¡ƒ d S )Nz1,2,3
4,5,6
7,8,9
0.0,1.0,2.0rù   T)rú   r  rõ   rø   r¶  r[  rö   rµ  rÊ  r÷   rÃ  r·  )r   rE   r  r   r]   )r$   r  rW   rž   r¥   r&   r&   r'   Útest_unpack_float_data˜	  s
    z"TestFromTxt.test_unpack_float_datac                 C   sž   t dƒ}dddœ}tj||dd�\}}}t|jt d¡ƒ t|jt d¡ƒ t|jt d	¡ƒ t|t d
dg¡ƒ t|t ddg¡ƒ t|t ddg¡ƒ d S )Nr
  r  rx  rz  Tr  ry  rn   rð   r  r  rÛ  r  r  r  )r   rE   rR  r   r\   r   r]   r  r&   r&   r'   r  Ÿ	  s    
z"TestFromTxt.test_unpack_structuredc                 C   sr   t dƒ}t ddg¡t ddg¡t ddg¡f}tj|d dd	d
�}t||ƒD ] \}}t||ƒ t|j|jƒ qLd S )NzM 21 72.
F 35 58.r~  r‚  rÛ  r  r  r  Tzutf-8)r\   r  r  )r   rE   r]   rR  rÕ   r   r   r\   )r$   r  Úexpectedrí  rO   Úresultr&   r&   r'   Útest_unpack_auto_dtype¬	  s    (
z"TestFromTxt.test_unpack_auto_dtypec                 C   sR   t dƒ}dddœ}tjddgtjd�}tj||dd	�}t||ƒ t|j|jƒ d S )
Nz21
35r“   ©rn   rz  rÛ  r  r[   Tr  )r   rE   r]   r…  rR  r   r   r\   ©r$   r  r�   rM  rí  r&   r&   r'   Útest_unpack_single_name¶	  s    

z#TestFromTxt.test_unpack_single_namec                 C   sZ   t dƒ}dddœ}tjdtjd�}tj||dd�}t||ƒ td	|jƒ t|j|jƒ d S )
Nrª  r“   rP  rz  r¦  r[   Tr  r&   )	r   rE   r]   r…  rR  r   r   rU   r\   rQ  r&   r&   r'   Útest_squeeze_scalarÀ	  s    

zTestFromTxt.test_squeeze_scalarÚndimr   rS   rY   )rT  c                 C   s6   d}t jt|ƒ|d�}t jt|ƒ|d�}t||ƒ d S )NZ42r  )rE   r  r   rR  r   )r$   rT  r  rW   rž   r&   r&   r'   r  Ì	  s    zTestFromTxt.test_ndmin_keywordN)^r-   r.   r/   r2  rE   rR  rM  rq   r`   rd   rU  r¥  r_  ra  rf  rm  rp  rÅ  rs  ru  rw  ry  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"  r0  r1  r3  r4  r7  r;  rB  r(  rD  rH  rI  rK  rL  r  rO  rR  rS  rƒ   r„   r@  r_   r  r&   r&   r&   r'   rQ  -  sª   
		

	 


					#)6	

rQ  c                   @   sd   e Zd Zdd„ Zdd„ Zdd„ Zejje	dd�d	d
„ ƒZ
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestPathUsagec              	   C   sX   t dd��D}t|ƒ}t ddgddgg¡}t ||¡ t |¡}t||ƒ W 5 Q R X d S )Nú.txtr®   gš™™™™™ñ?rY   r2   rZ   )r   r   rE   r]   rÞ   r  r   )r$   ró   rW   rm   r&   r&   r'   Útest_loadtxtÚ	  s    
zTestPathUsage.test_loadtxtc              	   C   sZ   t dd��F}t|ƒ}t ddgddggt¡}t ||¡ t |¡}t||ƒ W 5 Q R X d S )Nrñ   r®   rS   rY   r2   rZ   )r   r   rE   r]   r_   rˆ   rN   r   ©r$   ró   rW   rÄ   r&   r&   r'   Útest_save_loadâ	  s    
zTestPathUsage.test_save_loadc              	   C   sp   t dd��\}t|ƒ}t ddgddggt¡}t ||¡ tj|dd�}t||ƒ ~trbt	ƒ  t	ƒ  W 5 Q R X d S )	Nrñ   r®   rS   rY   r2   rZ   rh   ©rg   )
r   r   rE   r]   r_   rˆ   rN   r   r   r   rX  r&   r&   r'   Útest_save_load_memmapë	  s    
z#TestPathUsage.test_save_load_memmapzmemmap doesn't work correctlyre   c              	   C   s’   t dd��~}t|ƒ}t ddgddggt¡}t ||¡ tj|dd�}d	|d
 d
< d	|d
 d
< ~trptƒ  tƒ  t |¡}t	||ƒ W 5 Q R X d S )Nrñ   r®   rS   rY   r2   rZ   zr+rZ  ré   r   )
r   r   rE   r]   r_   rˆ   rN   r   r   r   )r$   ró   rW   rž   rÄ   r&   r&   r'   Útest_save_load_memmap_readwriteù	  s    
z-TestPathUsage.test_save_load_memmap_readwritec              
   C   sT   t dd��@}t|ƒ}tj|dd� t |¡�}t|d dƒ W 5 Q R X W 5 Q R X d S ©Nr�   r®   rÒ   rÓ   rÔ   )r   r   rE   rŒ   rN   r   ©r$   ró   rÄ   r&   r&   r'   Útest_savez_load

  s
    zTestPathUsage.test_savez_loadc              	   C   sP   t dd��<}t|ƒ}tj|dd� t |¡}t|d dƒ | ¡  W 5 Q R X d S r]  )r   r   rE   Zsavez_compressedrN   r   rC   r^  r&   r&   r'   Útest_savez_compressed_load
  s    
z(TestPathUsage.test_savez_compressed_loadc              	   C   sP   t dd��<}t|ƒ}t ddg¡}t ||¡ t |¡}t||ƒ W 5 Q R X d S )NrV  r®   rj   rk   )r   r   rE   r]   rÞ   rR  r   rX  r&   r&   r'   Útest_genfromtxt
  s    
zTestPathUsage.test_genfromtxtc              
   C   s–   t dd��‚}t|ƒ}| d¡�}| d¡ W 5 Q R X tdddd�}tj|f|Ž}tjd	d
gdtfdtfgd�}t	t
|tjƒƒ t||ƒ W 5 Q R X d S )NrV  r®   r  r8  rù   rÒ  TrÓ  r  rB  r€  rÙ  r[   )r   r   rÆ   r(   rW  rE   r9  r]   r_   r   rB   r:  r   ©r$   ró   r¬   rQ   rí  rî  r&   r&   r'   r;  #
  s    
ÿzTestPathUsage.test_recfromtxtc              
   C   sž   t dd��Š}t|ƒ}| d¡�}| d¡ W 5 Q R X tdddd�}tj|fdd i|—Ž}tjd	d
gdtfdtfgd�}t	t
|tjƒƒ t||ƒ W 5 Q R X d S )NrV  r®   r  r8  rÒ  Tr<  r\   r  rB  r€  rÙ  r[   )r   r   rÆ   r(   rW  rE   r¥  r]   r_   r   rB   r:  r   rb  r&   r&   r'   rB  0
  s    
ÿzTestPathUsage.test_recfromcsvN)r-   r.   r/   rW  rY  r[  rƒ   r„   r<  r   r\  r_  r`  ra  r;  rB  r&   r&   r&   r'   rU  Ø	  s   	
	rU  c                  C   s`   t j d¡} tƒ }tj|dd�}t  || ¡ | ¡  | d¡ tj|dd�}tt  	|¡| ƒ d S )N©ré   ré   r  rE  r   rh   )
rE   r¯   r   rS  rG  rˆ   rC   rK   r   rN   ©rW   r%   r¬   r&   r&   r'   Útest_gzip_load>
  s    
re  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú
JustWriterc                 C   s
   || _ d S r!   ©Úbase©r$   rh  r&   r&   r'   r"   O
  s    zJustWriter.__init__c                 C   s   | j  |¡S r!   )rh  r(   r#   r&   r&   r'   r(   R
  s    zJustWriter.writec                 C   s
   | j  ¡ S r!   )rh  rJ   rT  r&   r&   r'   rJ   U
  s    zJustWriter.flushN)r-   r.   r/   r"   r(   rJ   r&   r&   r&   r'   rf  N
  s   rf  c                   @   s&   e Zd Zdd„ Zdd„ Zd	dd„ZdS )
Ú
JustReaderc                 C   s
   || _ d S r!   rg  ri  r&   r&   r'   r"   Y
  s    zJustReader.__init__c                 C   s   | j  |¡S r!   )rh  r  )r$   r�   r&   r&   r'   r  \
  s    zJustReader.readr   c                 C   s   | j  ||¡S r!   )rh  rK   )r$   ÚoffÚwhencer&   r&   r'   rK   _
  s    zJustReader.seekN)r   )r-   r.   r/   r"   r  rK   r&   r&   r&   r'   rj  X
  s   rj  c                  C   sT   t j d¡} tƒ }t|ƒ}t  || ¡ | ¡  | d¡ t|ƒ}tt  	|¡| ƒ d S )Nrc  r   )
rE   r¯   r   rf  rˆ   rJ   rK   rj  r   rN   rd  r&   r&   r'   Útest_ducktypingc
  s    
rm  c               
   C   s�   t ƒ } tj| dd�}| d¡ | ¡  |  d¡ tdd��4}t|dƒ�}| |  ¡ ¡ W 5 Q R X t	 
|¡}W 5 Q R X |  ¡  t|dd	d
gƒ d S )Nr  rE  ó   1 2 3
r   r!  r®   rÁ   rS   rY   r2   )r   rS  rG  r(   rC   rK   r   rÆ   r  rE   r  r   )r%   rr  rA   r¬   rQ  r&   r&   r'   Útest_gzip_loadtxtr
  s    

ro  c                  C   sX   t ƒ } tj| dd�}| d¡ | ¡  |  d¡ tj| dd�}tt |¡dddgƒ d S )	Nr  rE  rn  r   rh   rS   rY   r2   )	r   rS  rG  r(   rC   rK   r   rE   r  )r%   r¬   r&   r&   r'   Útest_gzip_loadtxt_from_string‡
  s    

rp  c                  C   sÞ   t ƒ } t d¡}t d¡}tj| ||d� |  d¡ t | ¡}td|kƒ td|kƒ td| ¡ kƒ td| ¡ kƒ | ¡ D ] \}}t|dkƒ t	|j
dƒ q~tt| ¡ ƒdkƒ |D ]}t|dkƒ q¸td| ¡ kƒ d S )N)r2   r2   )rm   rp   r   rm   rp   rY   )r   rE   r  rŒ   rK   rN   r   ÚkeysÚitemsr   rU   rô  )r%   rm   rp   rï   r¬   rW   r&   r&   r'   Útest_npzfile_dict’
  s"    



rs  zPython lacks refcountsre   c               	   C   sŽ   t ƒ } t | dddg¡ |  d¡ tƒ � t | ¡ W 5 Q R X |  d¡ ddg}tƒ �. tjtdƒ|d�}t|tj	d	g|d�ƒ W 5 Q R X d S )
NrS   rY   r2   r   )rW   Úu1rY   )rž   rt  rY   z0 1 2 3r[   )r  rB  )
r   rE   rŒ   rK   r   rN   r  r   r   r]   )r¬   r�   rm   r&   r&   r'   Útest_load_refcount­
  s    

ru  )N)PrL   rÌ   rS  rH   r¶   r6   r}   rk  r  rƒ   Úpathlibr   Útempfiler   r   r   r   r5  Úmultiprocessingr   r   Úctypesr	   ÚnumpyrE   Znumpy.marÏ  Znumpy.lib._iotoolsr
   r   Znumpy.compatr   Znumpy.ma.testutilsr   Znumpy.testingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Znumpy.testing._private.utilsr   r   Úmaxsizer×   rV  r&  r6  rX  r'  r7   r9   r‡   r‹   rØ   rA  rm  r7  rQ  rU  re  rf  rj  rm  ro  rp  rs  r„   r…   ru  r&   r&   r&   r'   Ú<module>   sŒ   D



k   #H    4E         4f
