U
    b                    @   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/m0Z0 d dl1m2Z2 G dd deZ3e j4dkZ5zd dl6Z6dZ7W n e8k
rt   dZ7Y nX zd dl9Z9dZ:W n e8k
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Z@G dd de@ZAG d d! d!ZBG d"d# d#e@ZCG d$d% d%ZDd&d' ZEG d(d) d)ZFG d*d+ d+ZGd,d- ZHd.d/ ZId0d1 ZJd2d3 ZKe	jLjMe, d4d5d6d7 ZNdS )9    N)Path)NamedTemporaryFile)BytesIOStringIO)datetime)ProcessValue)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)requires_memoryc                   @   s*   e Zd ZdZd
ddZdd Zdd Zd	S )TextIOzHelper 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%   W/home/fireinfo/NEWAFireInfo/venv/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&   r6   A   s    
r6   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rt|ts|  tj|f|}	|
| _|	| _W 5 t|ts|  dt krt|	tjj	j
st|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kwargsr9   r:   r;   Ztarget_fileZ	load_filer=   rN   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      )rQ   rD   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 )
NrR      r1      y      ?      @y       @      @y      @      @y      @       @dtype)rD   arrayfloatrW   intZcsingleZcdoublerU   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 NrR   rX   r1   rY   )rD   r\   objectrW   rU   r%   r%   r&   test_array_object   s    
zRoundtripTest.test_array_objectc                 C   s"   t ddddgt}| | d S r`   )rD   r\   r^   rQ   rU   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 )	NrR   g      @rY   g333333@T	mmap_moder)r;   r:   )rD   r\   rQ   rS   rU   r%   r%   r&   	test_mmap   s    zRoundtripTest.test_mmapc                 C   s$   t jddgddgd}| | d S )NrR   rX   r1   rY   xi4yrm   rZ   )rD   r\   rW   rU   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 )%dd   r]   r(   ir%   r%   r&   r)      s     z1RoundtripTest.test_format_2_0.<locals>.<listcomp>  i  rZ   Trecordalwaysr   )rangerD   oneswarningscatch_warningsfilterwarningsUserWarningrW   )r#   dtrV   r%   r%   r&   test_format_2_0   s
    zRoundtripTest.test_format_2_0N)r,   r-   r.   rQ   rW   r_   rb   rc   pytestmarkskipifrK   rL   rh   rp   slowr   r%   r%   r%   r&   r8   L   s   0

r8   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   )
r8   rQ   rD   saver   rN   r=   r[   flagsfnc)r#   rO   rP   r%   r%   r&   rQ      s    zTestSaveLoad.roundtripN)r,   r-   r.   rQ   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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)r8   rQ   rD   savezr=   ZfidrB   rG   rH   r@   	enumeraterN   r   r[   r   r   )r#   rO   rP   nrN   Zreloadedr%   r%   r&   rQ      s    
zTestSavezLoad.roundtripzHangs on PyPyrd   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     rZ   Znumpy_test_big_arrays_.npz)prefixsuffixrV   rV   )rD   emptyuint8r   r   rM   rB   )r#   LrV   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 )	NrR   rX   r1   rY         ?       @       @      @      @            @      (@)rD   r\   r]   complexrQ   )r#   rV   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 NrR   rX   r1   rY   r   r   r   r   )file_afile_br   r   r   )	rD   r\   r]   r   r   r   rJ   rM   r   r#   rV   r   clr%   r%   r&   test_named_arrays   s    

zTestSavezLoad.test_named_arraysc                 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   )rD   r\   r]   r   r   r   rJ   rM   r   sorteddirfr   r   r   r%   r%   r&   test_BagObj   s    

zTestSavezLoad.test_BagObjc                    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   rv   )rN   )r   rD   randomZrandnr   OSErrorappend)Z
error_listr   rN   errr%   r%   r&   writer   s    z9TestSavezLoad.test_savez_filename_clashes.<locals>.writerc                    s   g | ]}t j fd qS )targetrO   )	threadingThread)r(   jerrorsr   r%   r&   r)     s   z=TestSavezLoad.test_savez_filename_clashes.<locals>.<listcomp>r1   )rz   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   openrD   r   rJ   r   closedrM   )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rt	  X q6W 5 Q R X W 5 Q R X d S )	Nr   r   r   r   rR   i  r   z#Failed to load data from a file: %s)r   rD   r   r   filterResourceWarningrz   r   gcZcollectrM   	Exceptionr   )r#   r   supru   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   rD   r   rM   zipr   rB   r   r   )r#   r   r   r   r   r%   r%   r&   test_closing_zipfile_after_load6  s    
z-TestSavezLoad.test_closing_zipfile_after_loadN)r,   r-   r.   rQ   r   r   r   r   IS_64BITr   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 )NrR   rX   r1   rY   z%.18er7   r    
ri   rj   rq      1 2
   3 4
)
rD   r\   r]   r   savetxtrJ   r   	readlinesr   r^   )r#   rV   r7   r   r%   r%   r&   r_   E  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 )NrR   rX   r1   rY   rq   r   r   s   1
s   2
s   3
s   4
)rD   r\   r^   r   r   rJ   r   r   r#   rV   r   r+   r%   r%   r&   rc   U  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 )NrR   rX   )r   r   
ValueErrorrD   r   r\   r#   r   r%   r%   r&   
test_0D_3D]  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 )Nri   rj   rk   rn   rZ   rq   r   r   r   r   rD   r\   r   r   rJ   r   r   r#   rV   r   r%   r%   r&   test_structuredb  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rR   rX   r1   rY         )foorm   )barrm   )bazrm   rZ   r   r   rq   r   r   s   1 3
s   4 6
r   r   r%   r%   r&   test_structured_paddedi  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 )
NrR   rk   rn   )zf4rZ   rl   r   .npyr   )rD   r{   r   r   r   rM   r   )r#   rV   vpathr   r%   r%   r&   test_multifield_views  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      ?       @      @      @,rq   )	delimiterr7   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 )Nri   rj   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   )r7   r   c   )	rD   r\   r   r   rJ   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 )Nri   rj   rZ   zTest header / footerz%1d)r7   headerr   z# z	
1 2
3 4
)r7   footerz
1 2
3 4
# r   z% )r7   r   commentsz1 2
3 4
)r7   r   r   )	r   rD   r\   r^   r   rJ   r   readr   )r#   r   rV   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 )Nri   rj   )r   rD   r\   r   loadtxtr   )r#   r@   rV   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 )NrX   rZ                 ?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)

rD   zeros
complex128pir   r   r   rJ   r   r   r#   ZncolsZnrowsrV   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 )NrX   rZ   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  ri   rj   )listrD   r\   r   r   r   )r#   r  wrV   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-8rZ   test.csv%sr7   encoding)	r4   rD   r\   unicode_r   r   rG   r   r   )r#   utf8rV   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  rZ   r   .gz.bz2.xz.lzmar  r  z	UTF-16-LEr  r  r[   )r4   rD   r\   r  HAS_BZ2r   HAS_LZMAr  r   r   rG   r   r   r   r   )r#   r  rV   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  rZ   r  r  r   r   )	r4   rD   r\   r  r   r   rJ   r   r   r#   r  rV   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%  )	r4   rD   r\   r  r   r   rJ   r   r   r&  r%   r%   r&   test_unicode_stringstream+  s    

z%TestSaveTxt.test_unicode_stringstreamr7   %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
)rD   r\   r   rJ   r   r   r   )r#   r7   r*  rV   r$   r%   r%   r&   test_unicode_and_bytes_fmt3  s    
z&TestSaveTxt.test_unicode_and_bytes_fmtr>   zfiles>4GB may not workrd   g   `A)Z
free_bytesc                 C   sb   dd }t t}t||fd}|  |  |jr<td|jdkrPt	d |jdks^t
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   rr   rY   )rD   r   Zrandrandintrt   r%   r%   r&   r)   I  s
    zGTestSaveTxt.test_large_zip.<locals>.check_large_zip.<locals>.<listcomp>i 5 rZ   ztest.npz)	test_dataT)valuerD   Zasarrayrz   ra   r   r   rG   r   r   MemoryError)memoryerror_raisedr.  r  r%   r%   r&   check_large_zipD  s    
z3TestSaveTxt.test_large_zip.<locals>.check_large_zipr   z,Child process raised a MemoryError exceptionzCsubprocess got a SIGKILL, apparently free memory was not sufficientr   )r   r	   r   r   r   r/  r0  exitcoder   Zxfailr   )r#   r2  r1  pr%   r%   r&   test_large_zip@  s    

zTestSaveTxt.test_large_zipN) r,   r-   r.   r_   rc   r   r   r   r   r   r   r   r   r  r	  r  r  r$  r'  r(  r   r   parametrizer   r   r+  r   rK   rL   r   r   r6  r%   r%   r%   r&   r   D  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   rX   r1   r   z
0 1 23 4 5r   wtz	UTF-32-LE)moder  r  rt)rD   arangereshaper   r'   loadfuncr   )r#   Zfopenr#  wantedlinesepsepr   r   r@   r   resr%   r%   r&   check_compresseda  s    
zLoadTxtBase.check_compressedc                 C   s   |  tjd d S )N)r  )rI  gzipr   r#   r%   r%   r&   test_compressed_gzipq  s    z LoadTxtBase.test_compressed_gzipz	Needs bz2rd   c                 C   s   |  tjd d S )N)r  )rI  bz2r   rK  r%   r%   r&   test_compressed_bz2t  s    zLoadTxtBase.test_compressed_bz2z
Needs lzmac                 C   s   |  tjd d S )N)r  r  )rI  lzmar   rK  r%   r%   r&   test_compressed_lzmax  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-16r@          r   r   )r   r   r'   encoderD  r   )r#   r   r   rl   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   rQ  r   )	r4   r   r   r'   rS  rD  rD   r  r   )r#   Znonasciir   r   rl   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rQ  )r[   r  )rD  r   rD   r  r   r\   r4   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  r4   rl   r%   r%   r&   <lambda>      z4LoadTxtBase.test_converters_decode.<locals>.<lambda>)r[   
convertersr  )	r   r'   rJ   rD  rD   r  r\   r4   r   r#   r   rl   rV   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  r>  r@  r   c                 S   s   | d S )Nr   r%   r[  r%   r%   r&   r\    r]  z6LoadTxtBase.test_converters_nodecode.<locals>.<lambda>r[   r^  r  r   )
r4   r   ior   r'   rD  rD   r  r\   r   )r#   r  r   r   rl   rV   r%   r%   r&   test_converters_nodecode  s    


z$LoadTxtBase.test_converters_nodecodeN)r,   r-   r.   rI  rL  r   r   r   r!  rN  r"  rP  rT  rU  rY  r`  rc  r%   r%   r%   r&   r8  `  s   

	
r8  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e12 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 NrR   )rD   rE   rF   _loadtxt_chunksize
orig_chunkrK  r%   r%   r&   setup  s    zTestLoadTxt.setupc                 C   s   | j tjj_d S r    )rg  rD   rE   rF   rf  rK  r%   r%   r&   teardown  s    zTestLoadTxt.teardownc                 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   rl   ro   rZ   ri   rj   rk   rn   zM 64 75.0
F 25 60.0genderageweightS1rm   r   namesformatsM      P@     R@F      9@      N@)r   r'   rJ   rD   r   int32r\   r   )r#   r   rl   rV   dZmydescriptorr   ro   r%   r%   r&   rp     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 )Nrj  r   rZ   rR   rX   r1   rY   )	r   r'   rJ   rD   r   r^   r\   r   r]   r_  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   rZ   rR   rX   r1   rY   1,2,3,4
r   r[   r   r   r'   rJ   rD   r   r^   r\   r   r_  r%   r%   r&   rc     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   r1   c                 S   s   t | pdS Nr^   r$   r%   r%   r&   r\    r]  z*TestLoadTxt.test_missing.<locals>.<lambda>r[   r   r^  rR   rX   r  r   r  r_  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   r1   c                 S   s   t | pdS r  r  r  r%   r%   r&   r\    r]  z:TestLoadTxt.test_converters_with_usecols.<locals>.<lambda>rR   r1   r[   r   r^  usecolsrX   r     	   r  r_  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   rR   rX   r1   r   r  r_  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  rR   rX   r1   r   r  r_  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  rR   rX   r1   rY   r   r   r  r_  r%   r%   r&   test_comments_multiple  s    


z"TestLoadTxt.test_comments_multiple)r  r1      zPyPy bug in error formattingrd   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  rR   rX   r1   r   z*/ comment
1,2,3,5
)
r   r'   rJ   rD   r   r^   r\   r   r   r   r_  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   rR   )r[   r   skiprowsrX   r1   r   r  r  r_  r%   r%   r&   test_skiprows!  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 )NrR   rX   r1   rY   r   rR   r[   r  r   ri   c                   @   s   e Zd Zdd ZdS )z*TestLoadTxt.test_usecols.<locals>.CrazyIntc                 S   s   dS re  r%   rK  r%   r%   r&   	__index__Q  s    z4TestLoadTxt.test_usecols.<locals>.CrazyInt.__index__N)r,   r-   r.   r  r%   r%   r%   r&   CrazyIntP  s   r  z<JOE 70.1 25.3
                BOB 60.5 27.9
                stidtempS4f8r   rX   r  r[      JOE   BOBL9@fffff;@      ?z^usecols must be.*%sr  )rD   r\   r]   r   r   rJ   r   r   r^   Zint8Zint16r|  int64r   Zuint16Zuint32uint64r   r  r   r   r   	TypeErrorr2   r,   )r#   rV   r   rl   Zint_typeZto_readr  Z	crazy_intr   rr  dtypesrN   Z	bogus_idxr%   r%   r&   test_usecols2  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OverflowErrorrD   r   r   r  rK  r%   r%   r&   test_bad_usecolsw  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   rl   ro   r   r$   r   r  rR   )rX   r   rY   )r         @)
r   r'   rJ   rD   r[   r^   r]   r   r\   r   r#   r   r   rl   rV   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r@   r  rl   ro   blockr9  rZ   aaaar          @rR   rX   r1   rY   r   r   r   rD   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  rl   ro   r  )rX   rX   r1   rZ   r  r   r  rR   rX   r1   rY   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str2rZ   )strrD   bytes_r\   r   r   )r#   r   r   rV   rl   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   rZ   )r   warnsr   r   rD   r   r   rT   r  r   r[   )r#   r   rl   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&   r\    r]  z3TestLoadTxt.test_unused_converter.<locals>.<lambda>r  r^     *   rR   c                 S   s
   t | dS r  r  r  r%   r%   r&   r\    r]  !   B   )r   r*   rJ   rD   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 )N0 1; 2001-01-01
                   2; 2002-01-31 idxcodec                 S   s   t |  dS Nz%Y-%m-%dr6   stripr  r%   r%   r&   r\    r]  z4TestLoadTxt.test_dtype_with_object.<locals>.<lambda>rR   ;r   r[   r^    rX        rZ   )r^   ra   rD   r   r   r\   r   r   r#   r   Zndtypefuncr^  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   rZ   )r   r'   rJ   rD   r   r  r   r#   tgtr   rH  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   rZ   )r   r'   rJ   rD   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 )
Nir  r   r   r   r0   ra  r  )err_msg)rD   ZlogspaceZastypeZfloat32Zhstackr]   r   maphexr   r'   rJ   r   fromhexr   )r#   r  inpr   r   rH  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   rD   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 )NrR   r  r   rZ   )r   r   r'   rJ   rD   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rX   rX   rZ   r   z%.16er   r   s   e+00-s   e00+-)rD   r  r  r  r   r   r   rJ   r   replacer   r'   r   r   r   )r#   rV   r  r  r   txtZtxt_badrH  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rR   r  r1   r  )r   r   r'   rD   r   r   )r#   r@   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   )rl   ro   r   comment)<i4r  <f4|S8rq  	r  s   start s     r]  r  )r   r'   rJ   rD   r   r\   r   r  r%   r%   r&   test_empty_field_after_tab$  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rV   r   r   )|S1r  r  rq  Tr[   unpackr  r  r     M   Fr  #         R@      M@)r   rD   r   r   r[   r  r   r\   r#   r  r   rV   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   r1   ndminr  r   rR   )r[   r   r  rX   rY   r   r   z0,1,2r  )r1   z0
1
2)r1   rR   r  r  r   rR   r  )r   r'   rJ   r   r   rD   r   r^   r\   r   r   rT   r   r  r   )r#   r   rl   rV   r}  r   r   r%   r%   r&   test_ndmin_keyword9  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  rq   )rz   ru   r%   r%   r&   countd  s    z0TestLoadTxt.test_generator_source.<locals>.countr  )rD   r   r   rB  r#   r  rH  r%   r%   r&   test_generator_sourcec  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'   rJ   r   r   rD   r   r   r%   r%   r&   test_bad_linek  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   rl   )rV   ZS10ro   r   )r   r[   r   )r   r'   rJ   rD   r[   r^   r   )r#   r   r   r%   r%   r&   test_none_as_strings  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  r;  r   r   r   r   Ss   5,6,7,Õscarscars   15,2,3,hellos   20,2,3,ÕscarrZ   )r4   r  
splitlinesr   r   r'   rD   r   r  r   r\   )r#   Zbutf8Zsutf8r   r   rl   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   rR   r[   r   max_rowsrX   r1   r   r  r_  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   rR   r[   r   r  r  rX   r1   r   comment
1,2,3,5
4,5,7,8
2,1,4,5rY   r  r  r  r_  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   rX   r  rR   r1   r   rY   r  r  r  r  r_  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   rR   r   r!  rX   r1   r   rY   r  r  r  r_  r%   r%   r&   test_max_rows_larger  s    


 *z TestLoadTxt.test_max_rows_largerskipr   rR   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=r1   r  r   )r[   r  r   r  r  r   rR   rX   rY   error)r   r  r   rD   r   r^   r   rA   r   rJ   r|   r}   simplefilterr  )r#   r&  r   rH  r%   r%   r&   test_max_rows_empty_lines  s    
.


z%TestLoadTxt.test_max_rows_empty_linesN);r,   r-   r.   staticmethodrD   r   rD  rh  ri  rp   r_   rc   r  r  r  r  r  r   r   r   r   rK   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%  r7  r   r)  r%   r%   r%   r&   rd    s|   
	
			
E		
		




*
	


	rd  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-@quxrZ   r   r'   rJ   rD   float64	fromregexr\   r   r  r%   r%   r&   rp     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   r0  r1  z(\d+)\s+(...))   r   )  r   )\  r6  rZ   )r   r'   rJ   rD   r|  r9  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 )	Nr:  r   r0  z(\d+)\s+...)r;  )r<  )r=  rZ   r7  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 quxr0  )r2  ZU4z(?u)([0-9.]+)\s+(\w+)r  r@  r3  r   r4  r5  rZ   z([0-9.]+)\s+(\w+))r   r   r'   rD   r8  r9  r\   r4   r   r  compileUNICODE)
r#   r@  r  Zstr_pathr   r   r   rl   rV   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)   123r0  rR   rX   r1   rZ   )r  rA  r   rD   r8  r\   r9  r   )r#   rC  r   r   rV   rl   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 )NrE  rF  zstructured datatyper  rZ   )	r  rA  r   r   r  r  rD   r9  r8  )r#   rC  r   r%   r%   r&   test_bad_dtype_not_structured  s    
z+Testfromregex.test_bad_dtype_not_structuredN)r,   r-   r.   rp   r>  r?  r   r   r7  r  r   rD  rG  rH  r%   r%   r%   r&   r/    s   

r/  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 ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXeYjZ[ddddge\dddZ]dS )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 )Nrj  rl   ro   rZ   ri   rj   rk   rn   zM 64.0 75.0
F 25.0 60.0rk  ro  rq  rt  rx  )r   rD   
genfromtxtr|  r\   r   )r#   r   r  r  
descriptorr%   r%   r&   rp     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 )Nrj  rR   rX   r1   rY   rZ   r   )	r   rD   r\   r^   rJ  r   rJ   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 )
NrR   rX   r1   rY   r~  rZ   r  r   r  )rD   r\   r^   r   rJ  r   r#   r  r   r  r%   r%   r&   rc   :  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 )
NrR   rX   r1   r   r  r   r  r  z1,2,3,5# comment
)rD   r\   r^   r   rJ  r   rL  r%   r%   r&   test_commentsF  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 )NrR   rX   r1   r   r   r  r  skip_headerr  r  )rD   r\   r^   dictr   rJ  r   r   )r#   r  rP   r   r  r%   r%   r&   r  R  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%   rt   r%   r%   r&   r)   `  s     z0TestFromTxt.test_skip_footer.<locals>.<listcomp>rR   r   zA, B, Cc                 S   s   g | ]}d |||f qS )z%i,%3.1f,%03sr%   rt   r%   r%   r&   r)   b  s     3   z99,99r  r   Tr   r  )r   rr  rN  skip_footerr   c                 S   s"   g | ]}d | d | d | fqS )r)  r%   rt   r%   r%   r&   r)   f  s     )   c                 S   s   g | ]}|t fqS r%   rs   r(   _r%   r%   r&   r)   g  s     ABCrZ   )
rz   r   r  rO  rD   rJ  r   r   r\   r   )r#   r   rP   r  ctrlr%   r%   r&   test_skip_footer_  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  
rR   )rQ  F)rQ  invalid_raiser   r   r   r   r1   z1 1
2  
3 3
4 4
5  
6 6
7 7
r  )
r   r   r   r   r   rD   rJ  r   r   r\   )r#   r   ZbasestrrV   r%   r%   r&   test_skip_footer_with_invalidj  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.0Trw   ry   r   r[   rr  r   r  r  rv  rz  rw  r{  rk  rl  rm  rn  )r   r|   r}   r~   rD   VisibleDeprecationWarningrJ  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|  | qd S )Nz*A 64 75.0 3+4j True
BCD 25 60.0 5+6j FalseTrw   ry   r   rZ   r      As   BCD@      rw  r{  y      @      @y      @      @Ff0f1f2Zf3r   zf%i)r   r|   r}   r~   rD   r[  rJ  r   r\  r\   r   r[   rr  r   )r#   r   r  r  r  ru   rV  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
rZ   rR   rX   r1   rY   r   r   r  r  r   rD   rJ  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  rl   ro   r   r$   r   r  r  r  rZ   )r   rD   r[   r^   r]   rJ  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)grV   r  ro  rq  s   M 64.0 75.0
F 25.0 60.0rk  rZ  rr  rt  rx  rZ   rf  )r#   rK  r   rr  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  rD   rJ  rK  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
        Trw   ry   r   )rr  r[   r   )ru  r  gfffffR@)ry  r	  g
ףp=*M@)ru  r  g=
ףp5@)rl  r  rm  rn  rZ   sO   
# gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        r   r|   r}   r~   rD   r[  rJ  r   r\  r\   r^   r]   r   )r#   r   r  r  rV  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   rr  ri   rj   Zcol1Zcol2rZ   r   rD   rJ  r^   r\   r   rg  r%   r%   r&   test_names_and_comments_none  s    z(TestFromTxt.test_names_and_comments_nonec                 C   s   t  p}tj|d}t|d}|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      ϖr  asciir@  )r   rG   r   r   r   r'   rS  r   r   r  UnicodeDecodeErrorrD   rJ  )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.1Trw   ry   r   ACD)r  rr  r[   r   )r  -   333333"@rx  |S4ry  rz  rZ   rn  r]  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   r1   c                 S   s   t | pdS r  r  r  r%   r%   r&   r\     r]  z:TestFromTxt.test_converters_with_usecols.<locals>.<lambda>r  r  rX   r  r  r  rp  rg  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 )Nrv  Trw   ry   r   rw  ry  c                 S   s   dt |  S )NrX   r  r  r%   r%   r&   r\    r]  zDTestFromTxt.test_converters_with_usecols_and_names.<locals>.<lambda>)r  rr  r[   r^  r   )r  Z   r|  r}  rz  rZ   rn  r]  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)r6   r  r%   r%   r&   r\    r]  z9TestFromTxt.test_converters_cornercases.<locals>.<lambda>2009-02-03 12:00:00Z, 72214.0r   r  r   r[   rr  r^    rX   r1       `@rZ   )r   rD   rJ  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  )rD   Z
datetime64r6   r  r%   r%   r&   r\     r]  z:TestFromTxt.test_converters_cornercases2.<locals>.<lambda>r  r   r  r  r  rX   r1   r  )r  zdatetime64[us]rZ   )r   rD   rJ  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&   r\  ,  r]  z3TestFromTxt.test_unused_converter.<locals>.<lambda>r  r  r  rR   c                 S   s
   t | dS r  r  r  r%   r%   r&   r\  1  r]  r  r  )r   rD   rJ  r   rJ   r#   r   r  r%   r%   r&   r  (  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  rR  r]   lowerr  r  r[  r%   r%   r&   r\  5  s   z4TestFromTxt.test_invalid_converter.<locals>.<lambda>c                 S   s4   t d|  kr|  d p0d|  kr.|  p0dS )N   %r   rR  r  r[  r%   r%   r&   r\  7  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.55r9  r   )r^  r   r[   )r   rO  r   r
   rD   rJ  )r#   Z
strip_randZ	strip_perr$   rP   r%   r%   r&   test_invalid_converter4  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 re  rs   r  r%   r%   r&   r\  D  r]  z;TestFromTxt.test_tricky_converter_bug1666.<locals>.<lambda>r   r   )r   r^  r   r   r   r   rf  )r#   r$   Zcnvr  r  r%   r%   r&   test_tricky_converter_bug1666A  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@.   )rb  r~  rc  rd  rZ   g     d@r  r  )rD   rJ  r   r]   r3   r\   r   )r#   dstrr  r  r%   r%   r&   test_dtype_with_convertersI  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   rR   rX   r1   )z1:1z1:nzm:1zm:n)e1rm   )e2rm   )Ze3i2)r   i1c                    s    |    S r    rZ  )rg   Zdmapr%   r&   r\  Y  r]  zDTestFromTxt.test_dtype_with_converters_and_usecols.<locals>.<lambda>)r   rR   rX   r1   r   )r[   r   rr  r^  )rR   r   r  r   )rX   r  r  rR   )r1   r1   r1   rZ   )r   rR   r1   )r[   r   r  rr  r^  )rR   r   r   )rX   r  rR   )r1   r1   r1   )r^   rD   
recfromcsvr   Zrecr\   r   )r#   r  Zdtypconvr  r  r%   r  r&   &test_dtype_with_converters_and_usecolsU  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&   r\  i  r]  z4TestFromTxt.test_dtype_with_object.<locals>.<lambda>rR   r  r  r  rX   r  r  rZ   nestzNested fields.* not supported.*)
r^   ra   rD   rJ  r   r\   r   r   r   NotImplementedErrorr  r%   r%   r&   r  d  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1rZ   r%      1strings   string)rD   rJ  r   ra   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   r9  rX   )r   rr  r[   r  r^  )
2001-01-01r   )r   |S10r   rZ   )r   rD   rJ  r]   r3   r\   r   rg  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   r9  rX   r  )r   rr  r[   r  r^  r  r  r   )r   z|U11r   rZ   )r   r   r'   rD   rJ  r]   compatunicoder\   r4   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      $@rf  rg  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  4r1   )r   rR   rX   rY   r   C   iz  rl  rD   rJ  r   r\   r   rg  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   r1   c                 S   s   t | pdS r  r  r  r%   r%   r&   r\    r]  z*TestFromTxt.test_missing.<locals>.<lambda>r  rR   rX   r  r   rp  rg  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   rX   rR   r1   r   r   r   rR   r   rR   r   rR   r   rZ   )	rD   rJ  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 )
NrR   rX   r1   rY   r   r  r  r   ri   )rD   r\   r]   r   r   rJ   rJ  r   rL  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)rr  r  r  rY   r   c                 S   s   g | ]}|t fqS r%   rs   rS  r%   r%   r&   r)     s     z3TestFromTxt.test_usecols_as_css.<locals>.<listcomp>acrZ   r  r#   r   r  rV  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   rD   rJ  r  r   r   )r#   r   rr  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   )rD   rJ  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  rV   r   rZ   r  r  )rr  r  r   r  )rV   r   )rD   r\   r]   rO  rJ  r   r   )r#   rV  r   rP   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:)messagerR   )rN  )r   r   r   rD   rJ  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  rl   ro   r   r$   r   T)r[   r   r  r  r  rZ   )	r   rD   r[   r^   r]   rJ  mar\   r   ri  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   rD   r[   r]   r^   rJ  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_valuesrr  r[   r  r  rX   r  FFFTrx  Br  r[   r   r  )r   rO  rD   rJ  r  r\   r^   r   r  rJ   r]   r#   r   rP   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   rr  rx  r  ry  r  r  )r   rR  y                )rR   r  r   )r3  g@            8)r1   y              @r  r  )r   r   rR   r  r[   r3  r  r  r   rR   rX   )r  r  r  )r   r  ry  )
rO  r^   r]   r   rD   rJ  r   r  r\   r   )r#   r   Z
basekwargsZmdtyper  r  r%   r%   r&   test_user_missing_values!  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   r1   )rY   r  rV   r   rZ   zN/A, 2, 3
4, ,???r   za,b,cr  r   z???)r   r   rX   r   r  )r   r[   rr  r  filling_values)r   rX   r1   )rY   r   r  c                 S   s   g | ]}|t fqS r%   r  rS  r%   r%   r&   r)   L  s     z8TestFromTxt.test_user_filling_values.<locals>.<listcomp>abcr  r  c                 S   s   g | ]}|t fqS r%   r  rS  r%   r%   r&   r)   P  s     r  z1,2,*,4
5,*,7,8
*)r   r[   r  r  rR   rX   rY   r   r  r  r  )rD   r\   r^   rO  rJ  r   r   )r#   rV  r   rP   r  Zdata2r%   r%   r&   test_user_filling_valuesA  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  rr  r  )r   r  )rX   g      r  r  rx  r  r  )	r   rD   rJ  r  r\   r^   r]   r   r  rg  r%   r%   r&   test_withmissing_float]  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  rR   rX   r1   rY   r   r   r   )r  )r   rD   rJ  r  r\   r   rg  r%   r%   r&   test_with_masked_column_uniformg  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  rb  rc  rd  r  )r   rD   rJ  r  r\   r  r^   r   rg  r%   r%   r&   test_with_masked_column_variouso  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, 1r,  r   2, 2, 2, 2 2r  r   a, b, c, d, er   r   Tr   r[   rr  c                      s   t jfddi S )NrX  FrD   rJ  r%   rP   mdatar%   r&   r     s    z)TestFromTxt.test_invalid_raise.<locals>.fr{  c                 S   s   g | ]}|t fqS r%   r  rS  r%   r%   r&   r)     s     z2TestFromTxt.test_invalid_raise.<locals>.<listcomp>abcderZ   r   rr  )rz   insertr   r   rO  r   r   r   lenrD   r{   rJ   r   r   rJ  )r#   r   ru   r   mtestr%   r  r&   test_invalid_raisey  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  r,  r   r  r  r   r  r   r   TF)r   r[   rr  rX  c                      s   t jfddi S )Nr  )r   rY   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  rS  r%   r%   r&   r)     s     z?TestFromTxt.test_invalid_raise_with_usecols.<locals>.<listcomp>ZaerZ   r  r  c                 S   s   g | ]}|t fqS r%   r  rS  r%   r%   r&   r)     s     abr  c                 S   s   g | ]}d | qS )r  r%   rS  r%   r%   r&   r)     s     )rz   r  r   r   rO  r   r   r   r  rD   r{   rJ   rJ  )r#   r   ru   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.1r,  r   rY   c                 S   s   d|    S )Nz(%s)rZ  r[  r%   r%   r&   r\    r]  z5TestFromTxt.test_inconsistent_dtype.<locals>.<lambda>r   c                 S   s   g | ]}|t fqS r%   r  rS  r%   r%   r&   r)     s     z7TestFromTxt.test_inconsistent_dtype.<locals>.<listcomp>r  )r   r^  r[   )r   r   rO  r   r   rD   rJ  )r#   r   r  r^  rP   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   rR   ffffff@)rY   r   @Zf00Zf01Zf02rZ   )rD   rJ  r   r\   r^   r]   r   r#   r   r  rV  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  rR  r   r  r   r  r  rZ   rD   rJ  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  rR  r   r  r   r  r  c                 S   s   g | ]}|t fqS r%   rs   rS  r%   r%   r&   r)     s     zBTestFromTxt.test_single_dtype_w_explicit_names.<locals>.<listcomp>r  rZ   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%   rs   rS  r%   r%   r&   r)     s     zBTestFromTxt.test_single_dtype_w_implicit_names.<locals>.<listcomp>r  rZ   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  )rY   r  r  Zf_00Zf_01Zf_02rZ   rD   rJ  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[   Trw   ry   r   r   )z01/01/2003  ?z   abcde)rb  z|S12rc  )rd  r  rZ   Z	autostrip)z
01/01/2003r  r  )rb  r  )rd  z|S5)rO  r|   r}   r~   rD   r[  rJ  r   r   r\  r\   r]   r   )r#   r   rP   r  r  rV  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   rr  r[   AAB_BCC)rR   rX   gQ	@rZ   r   r   rr  r[   Zreplace_spacedeletecharsA.AB (B)C:Cr   rr  r[   r	  B_(B)r   r#   r  r  Z
ctrl_dtyperV  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   rZ   r   r  r
  r  r  r  r  )rD   rJ  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  )r1   rY   r   c                 S   s   g | ]}|t fqS r%   r  rS  r%   r%   r&   r)   "  s     z5TestFromTxt.test_incomplete_names.<locals>.<listcomp>)rx  rb  ry  rZ   r[   c                 S   s   g | ]}|t fqS r%   rs   rS  r%   r%   r&   r)   '  s     )rO  rD   r\   rJ  r   r   r#   r   rP   rV  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 6rV   rZ  r   r   rb  rc  rZ   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)rx  ry  Er   )r   rX   rY   T)r[   r   r  rr  )rD   rJ  r   r^   r   r[   rr  )r#   r   Z
ctrl_namesr  r%   r%   r&   test_names_with_usecols_bug16363  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   rY   Tr  r  )r{  r  r  rx  r  ry  rZ   r   )rO  rD   r\   r^   r]   rJ  r   r   r  r%   r%   r&   test_fixed_width_namesF  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  rR   rX   r1   r   r   r   rZ   )rO  rD   r\   r^   rJ  r   r   r  r%   r%   r&   test_filling_valuesU  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 )NTrw   ry   r   ztest1,testNonetherestofthedatar   r[   r   r   r   rR   s   testNonetherestofthedataztest1, testNonetherestofthedatas    testNonetherestofthedata)
r|   r}   r~   rD   r[  rJ  r   r   r\  r   )r#   r  r  r%   r%   r&   test_comments_is_none]  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
Trw   ry   r   r   r  r   )rR   r      test1)rR   rR      testNonetheri      test3r0   r[   r   r   r  test1testNonethetest3   0,testNonetherb  rc  )r|   r}   r~   rD   r[  rJ  r   r   r\  r   r4   )r#   r0   normencr$   r  r  r%   r%   r&   test_latin1l  sD    
  
    zTestFromTxt.test_latin1c                 C   s6   d}| j t|d dd}t|t|d  d S rV  )rD  r   r   rD   r\   r4   r  rW  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  Trw   ry   r   r   r  r   s   norm1s   norm2s   norm3r  r  r   )r|   r}   r~   rD   r[  rJ  r   r   r\  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  rX   r   r  r!  r"  r#  r$  rZ   r%  rb  r   rc  )
r   r   r'   rD   rJ  r\   r4   r  r   r   )r#   r  r   r   r  r*  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 )Nrr  u   öüözTSkipping test_utf8_file_nodtype_unicode, unable to encode utf8 in preferred encodingr>  znorm1,norm2,norm3
znorm1,z,norm3
ztest1,testNonethez,test3
Trw   ry   r   r   r  r   Znorm1Znorm2Znorm3r"  r#  r$  rZ   )r-  r.  rS  UnicodeErrorImportErrorr   r&  r   rb  r   r'   r|   r}   r~   rD   r[  rJ  r   r\  r\   r  r   )	r#   r  r0   r  r   r   r  r  r*  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  r9  rx  r  rZ   r  r  r  r  r  r  r   rX   )r   rO  rD   
recfromtxtr\   r^   r   rA   recarrayr   r  r  rx  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 )Nr0  r  Tr  rr  Zcase_sensitiver[   r  r9  rx  r  rZ   r  r  r  r  r  r  r   rX   )r  rV   r   )r  r[   zcolor
"red"
"blue"c                 S   s
   |  dS )N   ")r  r[  r%   r%   r&   r\  	  r]  z-TestFromTxt.test_recfromcsv.<locals>.<lambda>)r^  )Zred)ZbluecolorrY   )r   rO  rD   r  r\   r^   r   rA   r2  r   r  r  rx  r]   r3   r[   )r#   r   rP   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
r1   )r  rR   rX   rY   r   r   r  r  r  r  r   z1 1
2 2
0 
3 3
4 4
5  
6  
7  
r   r   )rQ  r  F)r  rX  r   r   z"a b
#c d
1 1
2 2
#0 
3 3
4 4
5  5
T)rN  r  rr  )r   r   )r   r   )r   r   )r   <f8)r}  r8  rZ   )r  r[   )r   r   )r  r  )r   rD   rJ  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   r9  r:  r<  r=  r  )rD   rB  rC  r   r   r'   rJ  r   )r#   r  rF  rG  r   r@   r   rH  r%   r%   r&   test_gft_using_filenameG	  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   r9  r:  r<  r=  r  fileobjr?  z.gz2r   )rD   rB  rC  r   rJ  GzipFiler'   r   r   r   r   rJ  )	r#   rE  rF  rG  r   r$   rj  r@   r   r%   r%   r&   test_gft_from_gzipU	  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  )rz   r   r  r%   r%   r&   r  g	  s    z3TestFromTxt.test_gft_using_generator.<locals>.countr  )rD   rJ  r   rB  r  r%   r%   r&   test_gft_using_generatore	  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 1024rZ   rb  rc  rd  g      Dl        i   )r   rD   rJ  r   r[   rr  r   r]   r  int_r   r  r%   r%   r&   test_auto_dtype_largeintn	  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  rR  r   r  r  r   r  r  )r   rD   r   r   r\   )r#   r  rV   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  ro  rq  Tr  rp  rm   r   r  r  r  r	  r
  r  )r   rD   rJ  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.ru  ry  r  r	  r
  r  Tzutf-8)r[   r  r  )r   rD   r\   rJ  r   r   r   r[   )r#   r  expectedr  rN   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   rm   rq  r  r	  rZ   Tr  )r   rD   r\   r|  rJ  r   r   r[   r#   r  r   rB  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   rE  rq  r  rZ   Tr  r%   )	r   rD   r\   r|  rJ  r   r   rT   r[   rF  r%   r%   r&   test_squeeze_scalar	  s    

zTestFromTxt.test_squeeze_scalarndimr   rR   rX   )rI  c                 C   s6   d}t jt||d}t jt||d}t|| d S )NZ42r  )rD   r   r   rJ  r   )r#   rI  r  rV   r   r%   r%   r&   r  	  s    zTestFromTxt.test_ndmin_keywordN)^r,   r-   r.   r*  rD   rJ  rD  rp   r_   rc   rM  r  rW  rY  r^  re  rh  r  rk  rm  ro  rq  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r)  r+  r,  r/  r3  r7  r   r9  r=  r>  r@  rA  r  rD  rG  rH  r   r   r7  r^   r  r%   r%   r%   r&   rI    s   
		

	 


					#)6	

rI  c                   @   sT   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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?rX   r1   rY   )r   r   rD   r\   r   r   r   )r#   r   rV   rl   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   rR   rX   r1   rY   )r   r   rD   r\   r^   r   rM   r   r#   r   rV   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   rR   rX   r1   rY   rg   rf   )
r   r   rD   r\   r^   r   rM   r   r   r   rM  r%   r%   r&   test_save_load_memmap	  s    
z#TestPathUsage.test_save_load_memmapc              	   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   rR   rX   r1   rY   zr+rO  r   r   )
r   r   rD   r\   r^   r   rM   r   r   r   )r#   r   rV   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   rD   r   rM   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 rR  )r   r   rD   Zsavez_compressedrM   r   rB   rS  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 )NrK  r   ri   rj   )r   r   rD   r\   r   rJ  r   rM  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 )NrK  r   r  r0  r   r  Tr  r  r9  rx  r  rZ   )r   r   r   r'   rO  rD   r1  r\   r^   r   rA   r2  r   r#   r   r   rP   r  r  r%   r%   r&   r3  
  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 )NrK  r   r  r0  r  Tr4  r[   r  r9  rx  r  rZ   )r   r   r   r'   rO  rD   r  r\   r^   r   rA   r2  r   rW  r%   r%   r&   r7  
  s    
zTestPathUsage.test_recfromcsvN)r,   r-   r.   rL  rN  rP  rQ  rT  rU  rV  r3  r7  r%   r%   r%   r&   rJ  	  s   		rJ  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  r:  r   rg   )
rD   r   r   rJ  r<  r   rB   rJ   r   rM   rV   r$   r   r%   r%   r&   test_gzip_load,
  s    
rZ  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#   r]  r%   r%   r&   r!   =
  s    zJustWriter.__init__c                 C   s   | j |S r    )r]  r'   r"   r%   r%   r&   r'   @
  s    zJustWriter.writec                 C   s
   | j  S r    )r]  rI   rK  r%   r%   r&   rI   C
  s    zJustWriter.flushN)r,   r-   r.   r!   r'   rI   r%   r%   r%   r&   r[  <
  s   r[  c                   @   s&   e Zd Zdd Zdd Zd	ddZdS )

JustReaderc                 C   s
   || _ d S r    r\  r^  r%   r%   r&   r!   G
  s    zJustReader.__init__c                 C   s   | j |S r    )r]  r   )r#   r   r%   r%   r&   r   J
  s    zJustReader.readr   c                 C   s   | j ||S r    )r]  rJ   )r#   offwhencer%   r%   r&   rJ   M
  s    zJustReader.seekN)r   )r,   r-   r.   r!   r   rJ   r%   r%   r%   r&   r_  F
  s   r_  c                  C   sT   t jd} t }t|}t ||  |  |d t|}tt 	||  d S )NrX  r   )
rD   r   r   r[  r   rI   rJ   r_  r   rM   rY  r%   r%   r&   test_ducktypingQ
  s    
rb  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  r:     1 2 3
r   r  r   r   rR   rX   r1   )r   rJ  r<  r'   rB   rJ   r   r   r   rD   r   r   )r$   rj  r@   r   rH  r%   r%   r&   test_gzip_loadtxt`
  s    

rd  c                  C   sX   t  } tj| dd}|d |  | d tj| dd}tt|dddg d S )	Nr  r:  rc  r   rg   rR   rX   r1   )	r   rJ  r<  r'   rB   rJ   r   rD   r   )r$   r   r%   r%   r&   test_gzip_loadtxt_from_stringu
  s    

re  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 qtd| k d S )N)r1   r1   )rl   ro   r   rl   ro   rX   )r   rD   r  r   rJ   rM   r   keysitemsr   rT   r  )r$   rl   ro   r   r   rV   r%   r%   r&   test_npzfile_dict
  s"    



rh  zPython lacks refcountsrd   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 )
NrR   rX   r1   r   )rV   u1rX   )r   ri  rX   z0 1 2 3rZ   )r  r9  )
r   rD   r   rJ   r   rM   r   r   r   r\   )r   r   rl   r%   r%   r&   test_load_refcount
  s    

rj  )N)OrK   r   rJ  rG   r   r5   r|   rb  r  r   pathlibr   tempfiler   r   r   r   r-  multiprocessingr   r   ctypesr	   ZnumpyrD   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   Znumpy.testing._private.utilsr   r   maxsizer   rM  r!  r.  rO  r"  r6   r8   r   r   r   r8  rd  r/  rI  rJ  rZ  r[  r_  rb  rd  re  rh  r   r   rj  r%   r%   r%   r&   <module>   s   @



k   H    3E         4e
