3
Kd                @   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jZd dlmZmZ d d	lmZ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/m0Z0 d dl1m2Z2 G dd deZ3e j4d9kZ5yd dl6Z6dZ7W n e8k
rr   dZ7Y nX yd dl9Z9dZ:W n e8k
r   dZ:Y nX d:d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/d0 ZId1d2 ZJd3d4 ZKe	jLjMe- d5d6d7d8 ZNdS );    N)Path)NamedTemporaryFile)BytesIOStringIO)datetime)ProcessValue)c_bool)ConverterErrorConversionWarning)asbytesbytes)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)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 j| t| d S )N)r   __init__r   )selfs r"   K/var/www/html/virt/lib64/python3.6/site-packages/numpy/lib/tests/test_io.pyr   )   s    zTextIO.__init__c             C   s   t j| t| d S )N)r   writer   )r    r!   r"   r"   r#   r$   ,   s    zTextIO.writec             C   s   t j| dd |D  d S )Nc             S   s   g | ]}t |qS r"   )r   ).0r!   r"   r"   r#   
<listcomp>0   s    z%TextIO.writelines.<locals>.<listcomp>)r   
writelines)r    linesr"   r"   r#   r'   /   s    zTextIO.writelinesN)r   )__name__
__module____qualname____doc__r   r$   r'   r"   r"   r"   r#   r       s   
r          TFc             C   s.   t | tkr| jd} ttj| |dd  S )zY
    This function is available in the datetime module only from Python >=
    2.5.

    latin1N   )typer   decoder   timestrptime)r!   fmtr"   r"   r#   r4   @   s    
r4   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   |j di }|j dddi}|j dd}|r>tdd}|j}n
t }|}zb|}	||f|	| |j  |jd tjd	krt|t r|j	  t
j|f|}
|	| _|
| _W d
t|ts|j	  dt krt|
t
jjjstj|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)deleter   win32Narr_reloaded)getr   namer   flushseeksysplatform
isinstanceclosenploadarrr<   localslibnpyioZNpzFileosremove)r    Z	save_funcargskwargsr7   r8   r9   Ztarget_fileZ	load_filerG   r<   r"   r"   r#   	roundtripL   s.    




zRoundtripTest.roundtripc             C   s   | j | | j |dd | j tj| | j tj|dd |jd dkr~| j tj|dd   | j tj|dd  dd d S )NT)r9   r      )rO   rE   asfortranarrayshape)r    ar"   r"   r#   check_roundtrips|   s    
zRoundtripTest.check_roundtripsc             C   s   t jg t}| j| t jddgddggt}| j| t jddgddggt}| j| t jd
dgddggt jd	}| j| t jddgddggt jd	}| j| d S )NrP   r-   r0      y              @y              @y              @y               @)dtypey      ?      @y       @      @y      @      @y      @       @y      ?      @y       @      @y      @      @y      @       @)rE   arrayfloatrT   intZcsingleZcdouble)r    rS   r"   r"   r#   
test_array   s    



zRoundtripTest.test_arrayc             C   s<   t jg t}| j| t jddgddggt}| j| d S )NrP   r-   r0   rU   )rE   rW   objectrT   )r    rS   r"   r"   r#   test_array_object   s    
zRoundtripTest.test_array_objectc             C   s"   t jddddgt}| j| d S )NrP   r-   r0   rU   )rE   rW   rY   rO   )r    rS   r"   r"   r#   test_1D   s    zRoundtripTest.test_1Dr;   zFails on Win32)reasonc             C   sX   t jddgddgg}| j|dddid t jddgddgg}| j|dddid d S )	NrP   g      @rU   g333333@T	mmap_moder)r9   r8   )rE   rW   rO   rQ   )r    rS   r"   r"   r#   	test_mmap   s    zRoundtripTest.test_mmapc             C   s$   t jd	d
gddgd}| j| d S )NrP   r-   r0   rU   xi4y)rV   )rP   r-   )r0   rU   )rb   rc   )rd   rc   )rE   rW   rT   )r    rS   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jdd	t | j| W d Q R X d S )
Nc             S   s   g | ]}d | d t fqS )z%dd   )rX   )r%   ir"   r"   r#   r&      s    z1RoundtripTest.test_format_2_0.<locals>.<listcomp>i  i  )rV   T)recordalwaysr   )rangerE   oneswarningscatch_warningsfilterwarningsUserWarningrT   )r    dtrS   r"   r"   r#   test_format_2_0   s
    zRoundtripTest.test_format_2_0N)r)   r*   r+   rO   rT   rZ   r\   r]   pytestmarkskipifrA   rB   ra   re   slowrq   r"   r"   r"   r#   r6   K   s   0
r6   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   )
r6   rO   rE   saver   rG   r<   rV   flagsfnc)r    rM   rN   r"   r"   r#   rO      s    zTestSaveLoad.roundtripN)r)   r*   r+   rO   r"   r"   r"   r#   rv      s   rv   c               @   sv   e Zd Zdd Z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|| zTxNt| jD ]@\}}| jd|  }t|| t|j|j t|j	j
|j	j
 q$W W d | jjr| jjj  tj| jjj X d S )Nzarr_%d)r6   rO   rE   savez	enumeraterG   r<   r   rV   rx   ry   ZfidrD   rK   rL   r>   )r    rM   rN   nrG   Zreloadedr"   r"   r#   rO      s    
zTestSavezLoad.roundtripzNeeds 64bit platform)r^   c             C   s\   d}t j|t jd}tddd2}t j||d ~t j|}|d	 }|j  ~W d Q R X d S )NrP      i )rV   Znumpy_test_big_arrays_z.npz)prefixsuffix)rS   rS   l        l     )rE   emptyuint8r   r{   rF   rD   )r    LrS   tmpZnpfiler"   r"   r#   test_big_arrays   s    
zTestSavezLoad.test_big_arraysc             C   s@   t jddgddggt}t jd	d
gddggt}| j|| d S )NrP   r-   r0   rU   y               @y              @y              @y              (@y      ?       @y       @      @y      @      y      @      (@)rE   rW   rX   complexrO   )r    rS   br"   r"   r#   test_multiple_arrays   s    z"TestSavezLoad.test_multiple_arraysc             C   sz   t jddgddggt}t jddgddggt}t }t j|||d	 |jd
 t j|}t||d  t||d  d S )NrP   r-   r0   rU   y               @y              @y              @y              (@)file_afile_br   r   r   y      ?       @y       @      @y      @      y      @      (@)	rE   rW   rX   r   r   r{   r@   rF   r   )r    rS   r   clr"   r"   r#   test_named_arrays   s    

zTestSavezLoad.test_named_arraysc             C   s   t jddgddggt}t jddgddggt}t }t j|||d	 |jd
 t j|}tt	t
|jddg t||jj t||jj d S )NrP   r-   r0   rU   y               @y              @y              @y              (@)r   r   r   r   r   y      ?       @y       @      @y      @      y      @      (@)rE   rW   rX   r   r   r{   r@   rF   r   sorteddirfr   r   )r    rS   r   r   r   r"   r"   r#   test_BagObj   s    

zTestSavezLoad.test_BagObjc                s`   dd g   fddt dD }x|D ]}|j  q*W x|D ]}|j  q@W  r\t d S )Nc             S   sh   t ddT}tjjdd}ytj||d W n, tk
rX } z| j| W Y d d }~X nX W d Q R X d S )Nz.npz)r   i  )rG   )r   rE   randomZrandnr{   OSErrorappend)Z
error_listr   rG   errr"   r"   r#   writer   s    z9TestSavezLoad.test_savez_filename_clashes.<locals>.writerc                s   g | ]}t j fd qS ))targetrM   )	threadingThread)r%   j)errorsr   r"   r#   r&     s   z=TestSavezLoad.test_savez_filename_clashes.<locals>.<listcomp>r0   )rj   startjoinAssertionError)r    threadstr"   )r   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 d Q R X t|ddL}|jd t|j  tj|d	  t|j  |jd t|j  W d Q R X W d Q R X d S )
Nz.npz)r   wbzLOVELY LOAD)datarbi'  r   r   )r   openrE   r{   r@   r   closedrF   )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 ~}|jt xltddD ]^}zJytj|d  W n2 tk
r } zd| }t	|W Y d d }~X nX W d t
rtj  X q8W W d Q R X W d Q R X d S )	Nz.npz)r   zLOVELY LOAD)r   rP   i  r   z#Failed to load data from a file: %s)r   rE   r{   r   filterResourceWarningrj   rF   	Exceptionr   r   gcZcollect)r    r   suprg   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j}|j  t|j W d Q R X d S )NZ&numpy_test_closing_zipfile_after_load_z.npz)r   r   zplace holder)lab)	r   rE   r{   rF   zipr   rD   r   r   )r    r   r   r   r   r"   r"   r#   test_closing_zipfile_after_load4  s    
z-TestSavezLoad.test_closing_zipfile_after_loadN)r)   r*   r+   rO   rr   rs   rt   IS_64BITru   r   r   r   r   r   r   Z	slow_pypyr   r   r"   r"   r"   r#   rz      s   
rz   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jd#d$d%gej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 jddgddggt}d}t }t j|||d |jd t|j t|d | d	 d t|d | d	 d g t jddgddggt	}t }t j||d
d |jd t|j ddg d S )NrP   r-   r0   rU   z%.18e)r5   r    
z%ds   1 2
s   3 4
)rP   r-   )r0   rU   )
rE   rW   rX   r   savetxtr@   r   	readlinesr   rY   )r    rS   r5   r   r"   r"   r#   rZ   C  s    

zTestSaveTxt.test_arrayc             C   sR   t jddddgt}t }t j||dd |jd |j }t|dd	d
dg d S )NrP   r-   r0   rU   z%d)r5   r   s   1
s   2
s   3
s   4
)rE   rW   rY   r   r   r@   r   r   )r    rS   r   r(   r"   r"   r#   r]   S  s    
zTestSaveTxt.test_1Dc             C   s@   t  }tttj|tjd tttj|tjdgdggg d S )NrP   r-   )r   r   
ValueErrorrE   r   rW   )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
 |jd t|j ddg d S )NrP   r-   r0   rU   rb   rc   rd   )rV   z%d)r5   r   s   1 2
s   3 4
)rP   r-   )r0   rU   )rb   rc   )rd   rc   )rE   rW   r   r   r@   r   r   )r    rS   r   r"   r"   r#   test_structured`  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 |jd t|j ddg d S )NrP   r-   r0   rU         foorc   barbaz)rV   z%d)r5   r   s   1 3
s   4 6
)rP   r-   r0   )rU   r   r   )r   rc   )r   rc   )r   rc   )rE   rW   r   r   r@   r   r   )r    rS   r   r"   r"   r#   test_structured_paddedg  s    

z"TestSaveTxt.test_structured_paddedc          
   C   sb   t jdd
ddgd}|ddg }tdd	.}t|}t j|| t j|}t|| W d Q R X d S )NrP   rb   rc   rd   zf4)rV   z.npy)r   )rb   rc   )rd   rc   )r   r   )rE   rk   r   r   rw   rF   r   )r    rS   vpathr   r"   r"   r#   test_multifield_viewq  s    
z TestSaveTxt.test_multifield_viewc             C   sN   t jddgddgg}t }t j||ddd |jd t|j d	d
g d S )Ng      ?g       @g      @g      @,z%d)	delimiterr5   r   s   1,2
s   3,4
)rE   rW   r   r   r@   r   r   )r    rS   r   r"   r"   r#   test_delimiterz  s
    
zTestSaveTxt.test_delimiterc             C   s   t jddg}t }t j||ddgd |jd t|j d	d
g t }t j||dd |jd |j }t|ddg t }t j||ddd |jd |j }t|ddg t }ttt j||dd d S )NrP   r-   r0   rU   z%02dz%3.1f)r5   r   s   01 2.0
s   03 4.0
z%02d : %3.1fs	   01 : 2.0
s	   03 : 4.0
r   )r5   r   c   )rP   r-   )r0   rU   )	rE   rW   r   r   r@   r   r   r   r   )r    rS   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 |jd	 t|j td
| d  t  }tj||d|d |jd	 t|j td| d  t  }d}tj||d||d |jd	 t|j t|| d d  t  }d}tj||d||d |jd	 t|j td| | d  d S )NrP   r-   r0   rU   )rV   zTest header / footerz%1d)r5   headerr   z# z	
1 2
3 4
)r5   footerz
1 2
3 4
# r   z% )r5   r   commentsz1 2
3 4
)r5   r   r   )rP   r-   )r0   rU   )	r   rE   rW   rY   r   r@   r   readr   )r    r   rS   test_header_footerZ
commentstrr"   r"   r#   r     s4    







zTestSaveTxt.test_header_footerc             C   sD   t  4}tjddg}tj|| tj|}t|| W d Q R X d S )NrP   r-   r0   rU   )rP   r-   )r0   rU   )r   rE   rW   r   loadtxtr   )r    r>   rS   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 |jd |j }t	|ddg t }t j||d| d |jd |j }t	|d	d	g t }t j||d
g| d |jd |j }t	|ddg d S )Nr-   )rV   y              ?z %+.3e)r5   r   s8    ( +3.142e+00+ +2.718e+00j)  ( +3.142e+00+ +2.718e+00j)
z  %+.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)
z  %+.3e  %+.3e)
rE   zeros
complex128pir   r   r   r@   r   r   )r    ncolsnrowsrS   reimr   r(   r"   r"   r#   test_complex_arrays  s<    


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 |jd |j }t	|ddg d S )Nr-   )rV   y              ?z%.3e)r5   r   s0    (3.142e+00-2.718e+00j)  (3.142e+00-2.718e+00j)
)
rE   r   r   r   r   r   r   r@   r   r   )r    r   r   rS   r   r   r   r(   r"   r"   r#   test_complex_negative_exponent  s    
z*TestSaveTxt.test_complex_negative_exponentc             C   sH   G dd dt }| }tjddg}tj|| tj|}t|| d S )	Nc               @   s   e Zd Zdd ZdS )z4TestSaveTxt.test_custom_writer.<locals>.CustomWriterc             S   s   | j |j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   rP   r-   r0   rU   )rP   r-   )r0   rU   )listrE   rW   r   r   r   )r    r   wrS   r   r"   r"   r#   test_custom_writer  s    
zTestSaveTxt.test_custom_writerc             C   sP   dj d}tj|gtjd}t $}tjtjj|d|dgdd W d Q R X d S )Ns   ϖzUTF-8)rV   ztest.csvz%s)r5   encoding)	r2   rE   rW   unicode_r   r   rK   r   r   )r    utf8rS   tmpdirr"   r"   r#   test_unicode  s
    
zTestSaveTxt.test_unicodec             C   s   dj d}tj|gtjd}ddg}tr2|jd trD|jddg t `}xX|D ]P}tj	t
jj|d	| |d
gdd tjt
jj|d	| dtjd}t|| qRW W d Q R X d S )Ns   ϖzUTF-8)rV   r   z.gzz.bz2z.xzz.lzmaztest.csvz%sz	UTF-16-LE)r5   r   )r   rV   )r2   rE   rW   r   HAS_BZ2r   HAS_LZMAr   r   r   rK   r   r   r   r   )r    r   rS   suffixesr   r   r   r"   r"   r#   test_unicode_roundtrip  s    


z"TestSaveTxt.test_unicode_roundtripc             C   s\   dj d}tj|gtjd}t }tj||dgdd |jd t|j j d|d  d S )Ns   ϖzUTF-8)rV   z%s)r5   r   r   r   )	r2   rE   rW   r   r   r   r@   r   r   )r    r   rS   r!   r"   r"   r#   test_unicode_bytestream!  s    

z#TestSaveTxt.test_unicode_bytestreamc             C   sV   dj d}tj|gtjd}t }tj||dgdd |jd t|j |d  d S )Ns   ϖzUTF-8)rV   z%s)r5   r   r   r   )	r2   rE   rW   r   r   r   r@   r   r   )r    r   rS   r!   r"   r"   r#   test_unicode_stringstream)  s    

z%TestSaveTxt.test_unicode_stringstreamr5   z%fs   %fiotypec             C   s^   t jdg}| }t j|||d |jd |tkrHt|j dd  nt|j dd  d S )Ng      ?)r5   r   z%f
s   %f
)rE   rW   r   r@   r   r   r   )r    r5   r   rS   r!   r"   r"   r#   test_unicode_and_bytes_fmt1  s    
z&TestSaveTxt.test_unicode_and_bytes_fmtr;   zfiles>4GB may not work)r^   g   `A)Z
free_bytesc             C   sN   dd }t t}t||fd}|j  |j  |jr<td|jdksJtd S )Nc             S   sr   d| _ yJtjdd tdD td}t }tjtjj	|d|d W d Q R X W n t
k
rl   d| _  Y nX d S )	NFc             S   s$   g | ]}t jjt jjd ddqS )2   rf   rU   )rE   r   Zrandrandint)r%   rg   r"   r"   r#   r&   G  s   zGTestSaveTxt.test_large_zip.<locals>.check_large_zip.<locals>.<listcomp>i 5 )rV   ztest.npz)	test_dataT)valuerE   Zasarrayrj   r[   r   r{   rK   r   r   MemoryError)memoryerror_raisedr   r   r"   r"   r#   check_large_zipB  s    
z3TestSaveTxt.test_large_zip.<locals>.check_large_zip)r   rM   z,Child process raised a MemoryError exceptionr   )	r   r	   r   r   r   r   r   exitcoder   )r    r   r   pr"   r"   r#   test_large_zip>  s    zTestSaveTxt.test_large_zipN) r)   r*   r+   rZ   r]   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   rs   Zparametrizer   r   r   rt   rA   rB   ru   r   r   r"   r"   r"   r#   r   B  s,   
	"&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 jdjd}d}x|D ]}d| d }x|D ]}t|d	p}||d
dd}	|	j| W d Q R X | j|dd}
t|
| ||ddd}	| j|	}
W d Q R X t|
| W d Q R X q0W qW d S )Nr   r-   r0   r   
z0 1 2z3 4 5)r   wtz	UTF-32-LE)moder   )r   rt)r-   r0   )r   r   r   )rE   arangereshaper   r$   loadfuncr   )r    Zfopenr   wantedlinesepsepr   r   r>   r   resr"   r"   r#   check_compressed\  s    


zLoadTxtBase.check_compressedc             C   s   | j tjd d S )N.gz)r
  )r	  gzipr   )r    r"   r"   r#   test_compressed_gzipl  s    z LoadTxtBase.test_compressed_gzipz	Needs bz2)r^   c             C   s   | j tjd d S )N.bz2)r  )r	  bz2r   )r    r"   r"   r#   test_compressed_bz2o  s    zLoadTxtBase.test_compressed_bz2z
Needs lzmac             C   s   | j tjd d S )N.xz.lzma)r  r  )r	  lzmar   )r    r"   r"   r#   test_compressed_lzmas  s    z LoadTxtBase.test_compressed_lzmac             C   sZ   t  J}t|d}|jdjd W d Q R X | j|dd}t|dddg W d Q R X d S )Nr   z0.
1.
2.zUTF-16)r   g        g      ?g       @)r   r   r$   encoder  r   )r    r   r   rb   r"   r"   r#   test_encodingw  s
    zLoadTxtBase.test_encodingc             C   sb   dj d}t H}t|d}|j|jd W d Q R X | j|dtjd}t|| W d Q R X d S )Ns   öüözUTF-8r   zUTF-16)r   rV   )	r2   r   r   r$   r  r  rE   r   r   )r    Znonasciir   r   rb   r"   r"   r#   test_stringload~  s    
zLoadTxtBase.test_stringloadc             C   s8   d}| j t|tjdd}t|tj|jdj  d S )Ns   h  i  jzUTF-16)rV   r   )r  r   rE   r   r   rW   r2   r   )r    utf16r   r"   r"   r#   test_binary_decode  s    zLoadTxtBase.test_binary_decodec             C   sT   t  }|jd |jd | j|tjddd id}tjdjdg}t|| d S )Ns   ϖr   c             S   s
   | j dS )NzUTF-8)r2   )rb   r"   r"   r#   <lambda>  s    z4LoadTxtBase.test_converters_decode.<locals>.<lambda>)rV   
converterszUTF-8)	r   r$   r@   r  rE   r   rW   r2   r   )r    r   rb   rS   r"   r"   r#   test_converters_decode  s    


z"LoadTxtBase.test_converters_decodec             C   s|   dj d}t b}tj|ddd}|j| W d Q R X | j|tjddd idd}tj|d	 g}t	|| W d Q R X d S )
Ns   ϖzUTF-8r   )r   r   c             S   s   | d S )Nr   r"   )rb   r"   r"   r#   r    s    z6LoadTxtBase.test_converters_nodecode.<locals>.<lambda>)rV   r  r   r   )
r2   r   ior   r$   r  rE   r   rW   r   )r    r   r   r   rb   rS   r"   r"   r#   test_converters_nodecode  s    


z$LoadTxtBase.test_converters_nodecodeN)r)   r*   r+   r	  r  rr   rs   rt   r   r  r   r  r  r  r  r  r  r"   r"   r"   r#   r   [  s   	
r   c               @   sV  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&e'j(j)e*j+ dAkdBdCdDdE Z,dFdG Z-dHdI Z.dJdK Z/dLdM Z0dNS )OTestLoadTxtc             C   s   t jjj| _dt jj_d S )NrP   )rE   rI   rJ   _loadtxt_chunksize
orig_chunk)r    r"   r"   r#   setup  s    zTestLoadTxt.setupc             C   s   | j tjj_d S )N)r   rE   rI   rJ   r  )r    r"   r"   r#   teardown  s    zTestLoadTxt.teardownc             C   s   t  }|jd |jd tj|dtjfdtjfgd}tjddgddgd}t|| t  }|jd |jd ddd}tjddg|d}tj||d}t|| d S ) Nz1 2
3 4r   rb   rd   )rV   rP   r-   r0   rU   rc   zM 64.0 75.0
F 25.0 60.0genderageweightS1r   )namesformatsM      P@     R@F      9@      N@)rP   r-   )r0   rU   )rb   rc   )rd   rc   )r#  r$  r%  )r&  rc   r   )r)  r*  r+  )r,  r-  r.  )r   r$   r@   rE   r   int32rW   r   )r    r   rb   rS   dZmydescriptorr   rd   r"   r"   r#   re     s    




zTestLoadTxt.test_recordc             C   s   t  }|jd |jd tj|td}tjddgddggt}t|| |jd tj|td}tjddgddggt}t|| d S )Nz1 2
3 4r   )rV   rP   r-   r0   rU   )	r   r$   r@   rE   r   rY   rW   r   rX   )r    r   rb   rS   r"   r"   r#   rZ     s    



zTestLoadTxt.test_arrayc             C   s   t  }|jd |jd tj|td}tjddddgt}t|| t  }|jd |jd tj|td	d
}tjddddgt}t|| d S )Nz1
2
3
4
r   )rV   rP   r-   r0   rU   z1,2,3,4
r   )rV   r   )r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   r]     s    




zTestLoadTxt.test_1Dc             C   sX   t  }|jd |jd tj|tdddd id}tjdd	dddgt}t|| d S )Nz	1,2,3,,5
r   r   r0   c             S   s   t | pdS )Ni  i)rY   )r!   r"   r"   r#   r    s    z*TestLoadTxt.test_missing.<locals>.<lambda>)rV   r   r  rP   r-   i  r   i)r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_missing  s    


zTestLoadTxt.test_missingc             C   s\   t  }|jd |jd tj|tdddd idd}tjd	dgddggt}t|| d S )Nz1,2,3,,5
6,7,8,9,10
r   r   r0   c             S   s   t | pdS )Ni  i)rY   )r!   r"   r"   r#   r    s    z:TestLoadTxt.test_converters_with_usecols.<locals>.<lambda>rP   )rV   r   r  usecolsr-   i     	   )rP   r0   i)r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_converters_with_usecols  s    



z(TestLoadTxt.test_converters_with_usecolsc             C   sN   t  }|jd |jd tj|tddd}tjdddd	gt}t|| d S )
Nz# comment
1,2,3,5
r   r   #)rV   r   r   rP   r-   r0   r   )r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_comments_unicode  s    


z!TestLoadTxt.test_comments_unicodec             C   sN   t  }|jd |jd tj|tddd}tjdddd	gt}t|| d S )
Nz# comment
1,2,3,5
r   r      #)rV   r   r   rP   r-   r0   r   )r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_comments_byte  s    


zTestLoadTxt.test_comments_bytec             C   s\   t  }|jd |jd tj|tddddgd}tjdd	d
gdddggt}t|| d S )Nz,# comment
1,2,3
@ comment2
4,5,6 // comment3r   r   r6  @z//)rV   r   r   rP   r-   r0   rU   r   r   )r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_comments_multiple  s    


z"TestLoadTxt.test_comments_multiplec             C   s~   t  }|jd |jd tj|tddd}tjdddd	gt}t|| t  }|jd
 |jd tt	tj|tddd d S )Nz/* comment
1,2,3,5
r   r   z/*)rV   r   r   rP   r-   r0   r   z*/ comment
1,2,3,5
)
r   r$   r@   rE   r   rY   rW   r   r   r   )r    r   rb   rS   r"   r"   r#   test_comments_multi_chars
  s    





z%TestLoadTxt.test_comments_multi_charsc             C   s   t  }|jd |jd tj|tddd}tjddddgt}t|| t  }|jd	 |jd tj|tddd}tjddddgt}t|| d S )
Nzcomment
1,2,3,5
r   r   rP   )rV   r   skiprowsr-   r0   r   z# comment
1,2,3,5
)r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_skiprows  s    






zTestLoadTxt.test_skiprowsc          	   C   s  t jddgddggt}t }t j|| |jd t j|tdd}t||d d df  t jdddgdddggt}t }t j|| |jd t j|tdd}t||d d dd f  |jd t j|tt jddgd}t||d d dd f  xhtt j	t j
t jt jt jt jt jt jg	D ]>}|d}|jd t j|t|d}t||d d df  q"W G dd	 d	}| }|jd t j|t|d}t||d d df  |j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 |jd d}ttdt| t j||d ttdt| t j|d|dgd d S )NrP   r-   r0   rU   r   )rV   r2  r   c               @   s   e Zd Zdd ZdS )z*TestLoadTxt.test_usecols.<locals>.CrazyIntc             S   s   dS )NrP   r"   )r    r"   r"   r#   	__index__J  s    z4TestLoadTxt.test_usecols.<locals>.CrazyInt.__index__N)r)   r*   r+   r?  r"   r"   r"   r#   CrazyIntI  s   r@  z<JOE 70.1 25.3
                BOB 60.5 27.9
                stidtempS4f8)r2  rV   s   JOEs   BOBgL9@gfffff;@g      ?z^usecols must be.*%s)r2  )rP   )rP   r-   )r   r-   )rE   rW   rX   r   r   r@   r   r   rY   Zint8Zint16r/  int64r   Zuint16Zuint32uint64r   r   r   r   r   	TypeErrorr1   )r    rS   r   rb   Zint_typeZto_readr@  Z	crazy_intr   r'  dtypesrG   Z	bogus_idxr"   r"   r#   test_usecols+  s^    








zTestLoadTxt.test_usecolsc             C   sj   t  }|jd |jd tjdtfddtfdtfgfg}tj||dd}tjddg|}t	|| d S )Nz1,2,3.0
4,5,6.0
r   rb   rd   r   r!   r   )rV   r   rP   r-         @rU   r         @r-   rJ  )rP   rL  r   rK  )rU   rM  )
r   r$   r@   rE   rV   rY   rX   r   rW   r   )r    r   rp   rb   rS   r"   r"   r#   test_fancy_dtypep  s    

"zTestLoadTxt.test_fancy_dtypec             C   sl   t d}tj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 6r>   rC  rb   rd   blockr-   r0   )rV   aaaag      ?g       @rP   rU   r   r   )r>   rC  )r-   r0   )r   rE   rV   rX   rY   r   rW   r   )r    r   rp   rb   rS   r"   r"   r#   test_shaped_dtypey  s     zTestLoadTxt.test_shaped_dtypec          	   C   s   t d}tj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>   rC  rb   rd   rO  r-   r0   )rV   rP  g      ?g       @rP   rU   r   r   r3     r4  
         )r>   rC  )r-   r-   r0   )r   rE   rV   rX   rY   r   rW   r   )r    r   rp   rb   rS   r"   r"   r#   test_3d_shaped_dtype  s    
*z TestLoadTxt.test_3d_shaped_dtypec             C   sJ   ddg}x<t tjfD ].}tjddg|d}tj||d}t|| qW d S )NZstr1Zstr2)rV   )strrE   bytes_rW   r   r   )r    r   rp   rS   rb   r"   r"   r#   test_str_dtype  s
    zTestLoadTxt.test_str_dtypec             C   sj   t  Z}|jdd t }tj|}t|jd tj|tjd}t|jd t|j	tjk W d Q R X d S )Nzloadtxt: Empty input file:)messager   )rV   )r   )r   )
r   r   r   rE   r   r   rR   rE  r   rV   )r    r   r   rb   r"   r"   r#   test_empty_file  s    
zTestLoadTxt.test_empty_filec             C   sx   t  }|jddg |jd tj|dddd id}t|dd	g |jd tj|ddd
d id}t|ddg d S )Nz1 21
z3 42
r   rP   c             S   s
   t | dS )N   )rY   )r!   r"   r"   r#   r    s    z3TestLoadTxt.test_unused_converter.<locals>.<lambda>)r2  r     *   c             S   s
   t | dS )Nr\  )rY   )r!   r"   r"   r#   r    s    !   B   )rP   )rP   )r   r'   r@   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 )Nz0 1; 2001-01-01
                   2; 2002-01-31 idxcodec             S   s   t | j dS )Nz%Y-%m-%d)r4   strip)r!   r"   r"   r#   r    s    z4TestLoadTxt.test_dtype_with_object.<locals>.<lambda>rP   ;)r   rV   r  i  r-   i  r~   )rV   )rY   r[   rE   r   r   rW   r   r   )r    r   ndtypefuncr  testcontrolr"   r"   r#   test_dtype_with_object  s    z"TestLoadTxt.test_dtype_with_objectc             C   s@   d}t  }|jd|  |jd tj|tjd}t|| d S )N   +&|       -(|    z%s %sr   )rV   )rk  rl  )r   r$   r@   rE   r   rF  r   )r    tgtr   r  r"   r"   r#   test_uint64_type  s    
zTestLoadTxt.test_uint64_typec             C   s@   d}t  }|jd|  |jd tj|tjd}t|| d S )N    z%s %sr   )rV    )rp  ro  )r   r$   r@   rE   r   rE  r   )r    rm  r   r  r"   r"   r#   test_int64_type  s    
zTestLoadTxt.test_int64_typec             C   s   t jdddjt j}t j|| fjt}djttj|}t	 }|j
| x<tt jgD ].}|jd t j||d}t||d| d qZW d S )	NrS  r   r   r   )rV   z%s)err_msgi)rE   ZlogspaceZastypeZfloat32ZhstackrX   r   maphexr   r$   r@   r   r   )r    rm  inpr   rp   r  r"   r"   r#   test_from_float_hex  s    

zTestLoadTxt.test_from_float_hexc             C   sN   t ddt ddf}t }|jd|  |jd tj|t d}t|| d S )NrP   z%s %sr   )rV   )r   r   r$   r@   rE   r   r   )r    rm  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 |jd |j }|jd |j	dd}t
||k |j| |jd t j|td}t|| d S )
Nr-   )rV   y              ?z%.16e)r5   r   s   e+00-s   e00+-)r-   r-   )rE   r   r   r   r   r   r   r@   r   replacer   r$   r   r   r   )r    rS   r   r   r   txtZtxt_badr  r"   r"   r#   test_complex_misformatted  s    



z%TestLoadTxt.test_complex_misformattedc             C   sV   t  0}t|d}|jd W d Q R X tj|}W d Q R X t|ddgddgg d S )Nr   z
1 213 42rP   r]  r0   r^  )r   r   r$   rE   r   r   )r    r>   r   r   r"   r"   r#   test_universal_newline  s
    z"TestLoadTxt.test_universal_newlinec             C   sV   t  }|jd |jd ddd
}tj||dd}tjdddg}t|d | d S )Nz 1 	2 	3	start 
4	5	6	  
7	8	9.5	r   rb   rd   r   comment<i4<f4|S8)r'  r(  	)rV   r   s   start s         )rb   rd   r   r}  )r~  r~  r  r  )r   r$   r@   rE   r   rW   r   )r    r   rp   rb   rS   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jddg t|tjddg t|tjddg d S )NzM 21 72
F 35 58rS   r   r   |S1<i4<f4)r'  r(  T)rV   unpack   M   Fr]  #   g      R@g      M@)rS   r   r   )r  r  r  )r   rE   r   r   rV   rW  r   rW   )r    rz  rp   rS   r   r   r"   r"   r#   test_structure_unpack  s    
z!TestLoadTxt.test_structure_unpackc             C   s  t  }|jd |jd tttj|dd |jd tttj|dd |jd tj|tddd}tjdd	dgd
ddgg}t	|| t  }|jd |jd tj|tdd	d}t
|jdk |jd tj|tddd}t
|jdk |jd tj|tddd}t
|jdk t  }|jd |jd tj|tdd	d}t
|jdk |jd tj|tddd}t
|jdk |jd tj|tddd}t
|jdk t H}|jdd t  }t
tj|d	djdk t
tj|ddjdk W d Q R X d S )Nz1,2,3
4,5,6r   r0   )ndming      ?r   rP   )rV   r   r  r-   rU   r   r   z0,1,2z0
1
2zloadtxt: Empty input file:)rZ  )rP   r0   )r0   )r0   )r0   rP   )r0   )r0   )r   rP   )r   )r   r$   r@   r   r   rE   r   rY   rW   r   r   rR   r   r   )r    r   rb   rS   r0  r   r   r   r"   r"   r#   test_ndmin_keyword  sJ    












zTestLoadTxt.test_ndmin_keywordc             C   s(   dd }t j| }t|t jd d S )Nc              s   s    xt dD ]} d|  V  q
W d S )NrS  z%d)rj   )rg   r"   r"   r#   count;  s    z0TestLoadTxt.test_generator_source.<locals>.countrS  )rE   r   r   r  )r    r  r  r"   r"   r#   test_generator_source:  s    z!TestLoadTxt.test_generator_sourcec             C   s.   t  }|jd |jd ttdtj| d S )Nz1 2 3
4 5 6
2 3r   3)r   r$   r@   r   r   rE   r   )r    r   r"   r"   r#   test_bad_lineB  s    

zTestLoadTxt.test_bad_linec             C   sH   t  }|jd |jd tjdtfd	dtfg}tj|d|d d d S )
Nz100,foo,200
300,None,400r   rb   rS   S10rd   r   )r   rV   r   )rS   r  )r   r$   r@   rE   rV   rY   r   )r    r   rp   r"   r"   r#   test_none_as_stringJ  s
    

zTestLoadTxt.test_none_as_stringzANSI_X3.4-1968zWrong preferred encoding)r^   c          "   C   s   d}|j djddj }t }t|d}|j| W d Q R X t|d}tj|dtjd}W d Q R X t	|| t|d}tj|ddd}W d Q R X d	d
dg}t	|tj
|dd W d Q R X d S )Ns/   5,6,7,Õscarscar
15,2,3,hello
20,2,3,Õscar
zUTF-8r   r   r   r   )r   rV   Ss   5,6,7,Õscarscars   15,2,3,hellos   20,2,3,Õscar)rV   )r2   ry  
splitlinesr   r   r$   rE   r   r   r   rW   )r    Zbutf8Zsutf8r   r   rb   r"   r"   r#   test_binary_loadR  s    

zTestLoadTxt.test_binary_loadc             C   sN   t  }|jd |jd tj|tddd}tjddddgt}t|| d S )	Nz1,2,3,5
4,5,7,8
2,1,4,5r   r   rP   )rV   r   max_rowsr-   r0   r   )r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_max_rowsd  s    


zTestLoadTxt.test_max_rowsc             C   s   t  }|jd |jd tj|tdddd}tjddddgt}t|| t  }|jd	 |jd tj|tdddd}tj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   rP   )rV   r   r=  r  r-   r0   r   zcomment
1,2,3,5
4,5,7,8
2,1,4,5rU   r3  rR  )r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_max_rows_with_skiprowsm  s    








 z'TestLoadTxt.test_max_rows_with_skiprowsc             C   s   t  }|jd |jd tj|tddd}tjddddgd	dd
dggt}t|| tj|tdd}tjddd	dgt}t|| d S )Nz1,2,3,5
4,5,7,8
2,1,4,5r   r   r-   )rV   r   r  rP   r0   r   rU   r3  rR  )rV   r   )r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   $test_max_rows_with_read_continuation~  s    


 
z0TestLoadTxt.test_max_rows_with_read_continuationc             C   sf   t  }|jd |jd tj|tdddd}tjdddd	gd
d	ddgddd
d	ggt}t|| d S )Nzcomment
1,2,3,5
4,5,7,8
2,1,4,5r   r   rP   r   )rV   r   r=  r  r-   r0   r   rU   r3  rR  )r   r$   r@   rE   r   rY   rW   r   )r    r   rb   rS   r"   r"   r#   test_max_rows_larger  s    



*z TestLoadTxt.test_max_rows_largerN)1r)   r*   r+   staticmethodrE   r   r  r!  r"  re   rZ   r]   r1  r5  r7  r9  r;  r<  r>  rI  rN  rQ  rV  rY  r[  ra  rj  rn  rq  rv  rx  r{  r|  r  r  r  r  r  r  rr   rs   rt   localegetpreferredencodingr  r  r  r  r  r"   r"   r"   r#   r    sN   
	
			E		
	

+	r  c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Testfromregexc             C   sX   t  }|jd |jd dtjfdg}tj|d|}tjdddg|d}t|| d S )Nz1.312 foo
1.534 bar
4.444 quxr   numvalS3z([0-9.]+)\s+(...)ˡE?r   %C?r   -@qux)rV   )r  r  )r  r   )r  r   )r  r  )r   r$   r@   rE   float64	fromregexrW   r   )r    r   rp   rb   rS   r"   r"   r#   re     s    

zTestfromregex.test_recordc             C   sX   t  }|jd |jd dtjfdg}tj|d|}tjdddg|d}t|| d S )Nz1312 foo
1534 bar
4444 quxr   r  r  r  z(\d+)\s+(...)   r     r   \  r  )rV   )r  r  )r  r   )r  r   )r  r  )r   r$   r@   rE   r/  r  rW   r   )r    r   rp   rb   rS   r"   r"   r#   test_record_2  s    

zTestfromregex.test_record_2c             C   sV   t  }|jd |jd dtjfg}tj|d|}tjd	d
dg|d}t|| d S )Nz1312 foo
1534 bar
4444 quxr   r  z(\d+)\s+...     \  )rV   )r  )r  )r  )r   r$   r@   rE   r  r  rW   r   )r    r   rp   rb   rS   r"   r"   r#   test_record_3  s    

zTestfromregex.test_record_3c             C   s   d}t  }t|d}|jd| d  W d Q R X dtjfdg}tj|d|d	d
}tjdd|jd	 fddg|d}t|| t	j
dt	j}tj|||d	d
}t|| W d Q R X d S )Ns   ϖr   s	   1.312 foos    
1.534 bar
4.444 quxr  r  U4z(?u)([0-9.]+)\s+(\w+)zUTF-8)r   gˡE?r   %C?r   -@r  )rV   z([0-9.]+)\s+(\w+))r  r  )r  r   )r  r  )r   r   r$   rE   r  r  rW   r2   r   r   compileUNICODE)r    r   r   r   rp   rb   rS   regexpr"   r"   r#   test_record_unicode  s    
z!Testfromregex.test_record_unicodec             C   sN   t jd}td}dtjfg}tjdddg|d}tj|||}t|| d S )Ns   (\d)s   123r  rP   r-   r0   )rV   )r   r  r   rE   r  rW   r  r   )r    r  r   rp   rS   rb   r"   r"   r#   test_compiled_bytes  s    
z!Testfromregex.test_compiled_bytesN)r)   r*   r+   re   r  r  r  r  r"   r"   r"   r#   r    s
   
r  c               @   sv  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 ZRdS )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 )Nz1 2
3 4rb   rd   )rV   rP   r-   r0   rU   rc   zM 64.0 75.0
F 25.0 60.0r#  r$  r%  r&  r   )r'  r(  r)        P@     R@r,        9@      N@)rP   r-   )r0   rU   )rb   rc   )rd   rc   )r#  r$  r%  )r&  rc   r   )r)  r  r  )r,  r  r  )r   rE   
genfromtxtr/  rW   r   )r    r   rh  ri  
descriptorr"   r"   r#   re     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|| |jd tjddgddggtd}tj|td}t|| d S )Nz1 2
3 4rP   r-   r0   rU   )rV   r   )	r   rE   rW   rY   r  r   r@   rX   r   )r    r   ri  rh  r"   r"   r#   rZ     s    

zTestFromTxt.test_arrayc             C   sZ   t jddddgt}td}t j|td}t|| td}t j|tdd	}t|| d S )
NrP   r-   r0   rU   z1
2
3
4
)rV   z1,2,3,4
r   )rV   r   )rE   rW   rY   r   r  r   )r    ri  r   rh  r"   r"   r#   r]     s    
zTestFromTxt.test_1Dc             C   s`   t j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 )
NrP   r-   r0   r   z# comment
1,2,3,5
r   r6  )rV   r   r   z1,2,3,5# comment
)rE   rW   rY   r   r  r   )r    ri  r   rh  r"   r"   r#   test_comments  s    
zTestFromTxt.test_commentsc             C   st   t j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 )NrP   r-   r0   r   r   )rV   r   zcomment
1,2,3,5
skip_headerz# comment
1,2,3,5
r=  )rE   rW   rY   dictr   r  r   r   )r    ri  rN   r   rh  r"   r"   r#   r>    s    
zTestFromTxt.test_skiprowsc             C   s   dd t ddD }|jd |jdd t dD  d|d< td	d
ddd}tjtdj|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"   )r%   rg   r"   r"   r#   r&     s    z0TestFromTxt.test_skip_footer.<locals>.<listcomp>rP   r   zA, B, Cc             S   s   g | ]}d |||f qS )z%i,%3.1f,%03sr"   )r%   rg   r"   r"   r#   r&     s    3   z99,99r   Tr   rS  )r   r'  r  skip_footerr   c             S   s"   g | ]}d | d | d | fqS )z%fr"   )r%   rg   r"   r"   r#   r&     s    )   c             S   s   g | ]}|t fqS r"   )rX   )r%   _r"   r"   r#   r&     s    ABC)rV   rw  )
rj   r   r   r  rE   r  r   r   rW   r   )r    r   rN   rh  ctrlr"   r"   r#   test_skip_footer  s    
zTestFromTxt.test_skip_footerc             C   s(  t  }|jt d}tttjt|dd tjt|ddd}t|tj	ddgddgddgd	d	gg tjt|d
d}t|tj	ddgddgddgd	d	gg d}tjt|ddd}t|tj	ddgddgd	d	gddgg tjt|d
dd}t|tj	ddgddgd	d	gg W d Q R X d S )Nz1 1
2 2
3 3
4 4
5  
6  
7  
rP   )r  F)r  invalid_raiseg      ?g       @g      @g      @r0   z1 1
2  
3 3
4 4
5  
6 6
7 7
g      @)
r   r   r   r   r   rE   r  r   r   rW   )r    r   ZbasestrrS   r"   r"   r#   test_skip_footer_with_invalid  s"    

(((z)TestFromTxt.test_skip_footer_with_invalidc             C   s   t d}tjdd:}tjddtj tj|d dd}t|d jtjk W d Q R X tj	dd	gtj	d
dgtj	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.0T)rh   ri   r   )rV   r'  r   r  r  g      P@g      9@g     R@g      N@)r#  r$  r%  r#  r$  r%  )r   rl   rm   rn   rE   VisibleDeprecationWarningr  r   categoryrW   r   )r    r   r   rh  ri  r"   r"   r#   test_header7  s    zTestFromTxt.test_headerc             C   s   t d}tjdd8}tjddtj tj|d d}t|d jtjk W d Q R X tj	dd	gtj	d
dgtj	ddgtj	ddgtj	ddgg}t
|jjdddddg x&t|D ]\}}t
|d|  | qW d S )Nz*A 64 75.0 3+4j True
BCD 25 60.0 5+6j FalseT)rh   ri   r   )rV   r      As   BCD@      g     R@g      N@r0   y              @r   y              @Ff0f1f2Zf3r   zf%iy      @      @y      @      @)r   rl   rm   rn   rE   r  r  r   r  rW   r   rV   r'  r|   )r    r   r   rh  ri  rg   r  r"   r"   r#   test_auto_dtypeE  s    zTestFromTxt.test_auto_dtypec             C   sB   t d}tj|d d}tjddddgddd	d
gg}t|| d S )Nz1 2 3 4
5 6 7 8
)rV   rP   r-   r0   rU   r   r   r3  rR  )r   rE   r  rW   r   )r    r   rh  ri  r"   r"   r#   test_auto_dtype_uniformU  s    z#TestFromTxt.test_auto_dtype_uniformc             C   sZ   t d}tj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 )Nz1,2,3.0
4,5,6.0
rb   rd   r   r!   r   )rV   r   rP   r-         @rU   r         @)rV   r-   r  )rP   r  r   r  )rU   r  )r   rE   rV   rY   rX   r  rW   r   )r    r   
fancydtyperh  ri  r"   r"   r#   rN  \  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grS   r   r&  rc   r   )r'  r(  s   M 64.0 75.0
F 25.0 60.0r#  r$  r%  )rV   r'  r'  r)        P@     R@r,        9@      N@)rV   )r  rS   r   )r&  rc   r   )r#  r$  r%  )r)  r  r  )r,  r  r  )r   rE   r  rW   r   )r    r  r   r'  rh  ri  r"   r"   r#   test_names_overwrited  s    z TestFromTxt.test_names_overwritec             C   s   t d}tjdd:}tjddtj tj|dd d}t|d jtjk W d 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jddtj tj|dd d}t|d jtjk W d Q R X t|| d S )NzN
#gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        T)rh   ri   r   )r'  rV   r   r)  r]  fffffR@r,  r  
ףp=*M@r_  =
ףp5@r#  |S1r$  r%  )rV   sO   
# gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        )r)  r]  r  )r,  r  r  )r)  r_  r  )r#  r  )r   rl   rm   rn   rE   r  r  r   r  rW   rY   rX   r   )r    r   r   rh  r  r"   r"   r#   test_commented_headerp  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)rV   r   r'  rP   r-   r0   rU   Zcol1Zcol2)rV   )rP   r-   )r0   rU   )r   rE   r  rY   rW   r   )r    r   rh  ri  r"   r"   r#   test_names_and_comments_none  s    z(TestFromTxt.test_names_and_comments_nonec              C   s   t  p}tjj|d}t|d}|jdjd W d Q R X t * tj	t
 tj|dd W d Q R X W d Q R X W d Q R X d S )Nztest.csvr   u   ϖr   ascii)r   )r   rK   r   r   r   r$   r  r   rr   ZraisesUnicodeDecodeErrorrE   r  )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jddtj tj|ddd d	}t|d
 jtjk W d Q R X tj	dddt
fdtfgd}t|| d S )NzA B C D
 aaaa 121 45 9.1T)rh   ri   r   ACD)r2  r'  rV   r   rP  -   333333"@|S4)rV   )r  r  r  )rP  r  r  )r  r  )r   rl   rm   rn   rE   r  r  r   r  rW   rY   rX   r   )r    r   r   rh  ri  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jddgd
dggt}t|| d S )Nz1,2,3,,5
6,7,8,9,10
r   r0   c             S   s   t | pdS )Ni  i)rY   )r!   r"   r"   r#   r    s    z:TestFromTxt.test_converters_with_usecols.<locals>.<lambda>rP   )rV   r   r  r2  r-   i  r3  r4  )rP   r0   i)r   rE   r  rY   rW   r   )r    r   rh  ri  r"   r"   r#   r5    s    

z(TestFromTxt.test_converters_with_usecolsc             C   s   t d}tjddF}tjddtj tj|ddd dd	d
 id}t|d jtjk W d Q R X tj	dddt
fdtfgd}t|| d S )NzA B C D
 aaaa 121 45 9.1T)rh   ri   r   r  r  r  c             S   s   dt |  S )Nr-   )rY   )r!   r"   r"   r#   r    s    zDTestFromTxt.test_converters_with_usecols_and_names.<locals>.<lambda>)r2  r'  rV   r  r   rP  Z   333333"@|S4)rV   )r  r  r  )rP  r  r  )r  r  )r   rl   rm   rn   rE   r  r  r   r  rW   rY   rX   r   )r    r   r   rh  ri  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)r4   )r!   r"   r"   r#   r    s    z9TestFromTxt.test_converters_cornercases.<locals>.<lambda>z2009-02-03 12:00:00Z, 72214.0r   rA  )r   rV   r'  r  i  r-   r0   g    `@)rV   )r   rE   r  rW   r   Zobject_rX   r   )r    	converterr   rh  ri  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 jt| dS )Nz%Y-%m-%d %H:%M:%SZ)rE   Z
datetime64r4   )r!   r"   r"   r#   r    s    z:TestFromTxt.test_converters_cornercases2.<locals>.<lambda>z2009-02-03 12:00:00Z, 72214.0r   rA  )r   rV   r'  r  i  r-   r0   g    `@datetime64[us])rV   )r  r  )r   rE   r  rW   r   rX   r   )r    r  r   rh  ri  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 |jd tj|ddd	d id}t|d
dg d S )Nz1 21
  3 42
rP   r   c             S   s
   t | dS )Nr\  )rY   )r!   r"   r"   r#   r    s    z3TestFromTxt.test_unused_converter.<locals>.<lambda>)r2  r  r]  r^  c             S   s
   t | dS )Nr\  )rY   )r!   r"   r"   r#   r    s    r_  r`  )rP   )rP   )r   rE   r  r   r@   )r    r   rh  r"   r"   r#   ra    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| j kr| j d p0d| j kr.| j p0dS )N   rrP   g        rw  )rX   lowerr   rd  )rb   r"   r"   r#   r    s   z4TestFromTxt.test_invalid_converter.<locals>.<lambda>c             S   s4   t d| j kr| j d p0d| j kr.| j p0dS )N   %r   g        )rX   r  r   rd  )rb   r"   r"   r#   r    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.55)r-   r0   r   )r  r   rV   )r   r  r   r
   rE   r  )r    Z
strip_randZ	strip_perr!   rN   r"   r"   r#   test_invalid_converter  s    
z"TestFromTxt.test_invalid_converterc             C   sH   t d}dd }tj|dd|id}tjddgd	d
gg}t|| d S )Nz	q1,2
q3,4c             S   s   t | dd  S )NrP   )rX   )r!   r"   r"   r#   r    s    z;TestFromTxt.test_tricky_converter_bug1666.<locals>.<lambda>r   r   )r   r  g      ?g       @g      @g      @)r   rE   r  rW   r   )r    r!   Zcnvrh  ri  r"   r"   r#   test_tricky_converter_bug1666  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 jdddg}t|| d S )Nz2009; 23; 46re  r   )r   rV   r  2009      7@.   r  |S4r  r  )rV   g     d@)r   r  r  )r  r  )rE   r  r   rX   r   rW   r   )r    dstrrh  ri  r"   r"   r#   test_dtype_with_converters  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   rP   r-   r0   )z1:1z1:nzm:1zm:ne1rc   e2e3i2r}   i1c                s    | j   S )N)r2   )r`   )dmapr"   r#   r  
  s    zDTestFromTxt.test_dtype_with_converters_and_usecols.<locals>.<lambda>)r   rP   r-   r0   r   )rV   r   r'  r  r   rR  )rV   )rV   r   r2  r'  r  )r  rc   )r  rc   )r  r	  )r}   r
  rw  )rP   r   rw  r   rw  )r-   rR  rw  rP   )r0   r0   r  r0   )r  rc   )r  rc   )r}   r
  )r   rP   r0   )rP   r   r   )r-   rR  rP   )r0   r0   r0   )rY   rE   
recfromcsvr   ZrecrW   r   )r    r  Zdtypconvrh  ri  r"   )r  r#   &test_dtype_with_converters_and_usecols  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 d Q R X dt fdtfdg fg}tt	d tjt|d||d}W d Q R X d S )Nz0 1; 2001-01-01
                   2; 2002-01-31 rb  rc  c             S   s   t | j dS )Nz%Y-%m-%d)r4   rd  )r!   r"   r"   r#   r    s    z4TestFromTxt.test_dtype_with_object.<locals>.<lambda>rP   re  )r   rV   r  i  r-   i  r~   )rV   nestzNested fields.* not supported.*)
rY   r[   rE   r  r   rW   r   r   r   NotImplementedError)r    r   rf  rg  r  rh  ri  r"   r"   r#   rj    s(    
z"TestFromTxt.test_dtype_with_objectc             C   sH   t jtdtd}|f  dks"tt jtdtd}|f  dksDtd S )N1)rV      1strings   string)rE   r  r   r[   r   )r    parsedr"   r"   r#   #test_dtype_with_object_no_converter0  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   r-   r0   )r   r'  rV   r2  r  
2001-01-01      ?r   |S10)rV   )r-   r0   )r  r  )r   r  )r   rE   r  rX   r   rW   r   )r    r   rh  ri  r"   r"   r#   'test_userconverters_with_explicit_dtype7  s    z3TestFromTxt.test_userconverters_with_explicit_dtypec             C   s   d}t  N}t|d}|jd| d  W d Q R X tj|dd tddtjjidd	}W d Q R X tjd
|j	d dfgddtfgd}t
|| d S )Ns   ϖr   s   skip,skip,2001-01-01s	   ,1.0,skipr   r-   r0   zUTF-8)r   r'  rV   r2  r  r   z
2001-01-01g      ?r   |U11)rV   )r-   r0   )r   r  )r   r   r$   rE   r  rX   compatunicoderW   r2   r   )r    r   r   r   rh  ri  r"   r"   r#   ,test_utf8_userconverters_with_explicit_dtype@  s    z8TestFromTxt.test_utf8_userconverters_with_explicit_dtypec             C   sB   t d}tj|}tj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  10g      ?g       @g      @g      @g      @g      @g      @g       @g      "@g      $@)r   rE   r  rW   r   )r    r   rh  ri  r"   r"   r#   test_spacedelimiterL  s
    
zTestFromTxt.test_spacedelimiterc             C   sF   d}t jt|dd}t jdddgdddgd	d
dgg}t|| d S )Nz  1  2  3
  4  5 67
890123  4r0   )r   rP   r-   rU   r   C   iz  {   )rE   r  r   rW   r   )r    r   rh  ri  r"   r"   r#   test_integer_delimiterT  s    "z"TestFromTxt.test_integer_delimiterc             C   sF   t d}tj|tdddd id}tjddddd
gt}t|| d S )Nz	1,2,3,,5
r   r0   c             S   s   t | pdS )Ni  i)rY   )r!   r"   r"   r#   r  ^  s    z*TestFromTxt.test_missing.<locals>.<lambda>)rV   r   r  rP   r-   i  r   i)r   rE   r  rY   rW   r   )r    r   rh  ri  r"   r"   r#   r1  [  s
    
zTestFromTxt.test_missingc             C   sj   d}t jt|ddd}t j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   usemaskrP   r-   r0   r   )rV   )rP   r-   r0   )r   r   r   )rP   r   rP   )r   rP   r   )	rE   r  r   rW   nanboolr   r   mask)r    rz  rh  Zctrl_dZctrl_mr"   r"   r#   test_missing_with_tabsb  s    "z"TestFromTxt.test_missing_with_tabsc             C   s   t jddgddggt}t }t j|| |jd t j|tdd}t||d d df  t jdddgdddggt}t }t j|| |jd t j|td	d}t||d d dd f  |jd t j|tt jddgd}t||d d dd f  d S )
NrP   r-   r0   rU   r   )rV   r2  r   )rP   )rP   r-   )rE   rW   rX   r   r   r@   r  r   )r    ri  r   rh  r"   r"   r#   rI  l  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 )Nz1 2 3
4 5 6za, b, cza, c)r'  r2  rP   r0   rU   r   c             S   s   g | ]}|t fqS r"   )rX   )r%   r  r"   r"   r#   r&     s    z3TestFromTxt.test_usecols_as_css.<locals>.<listcomp>ac)rV   )rP   r0   )rU   r   )rE   r  r   rW   r   )r    r   rh  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.9rA  rB  rC  rD  r   r-   )r2  rV   s   JOEs   BOBgL9@gfffff;@)r   r-   )r   rE   r  r   r   r   )r    r   r'  rH  rh  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 jddg d S )Ns   1 2 3
4 5 6r   )r2  g      ?g      @)rE   r  r   r   rW   )r    rh  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 )NrP   r0   rU   r   rS   r   )rV   z1 2 3
4 5 6za, b, c)r'  r2  r   )rP   r0   )rU   r   rw  )r   rw  )rS   r   )rE   rW   rX   r  r  r   r   )r    r  r   rN   rh  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j|}t|tjg  tj|dd}t|tjg  W d Q R X d S )Nzgenfromtxt: Empty input file:)rZ  rP   )r  )r   r   r   rE   r  r   rW   )r    r   r   rh  r"   r"   r#   r[    s    
zTestFromTxt.test_empty_filec             C   s\   t d}tj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 )Nz1,2,3.0
4,5,6.0
rb   rd   r   r!   r   T)rV   r   r#  rP   r-         @rU   r         @)rV   r-   r-  )rP   r/  r   r.  )rU   r0  )	r   rE   rV   rY   rX   r  marW   r   )r    r   r  rh  ri  r"   r"   r#   test_fancy_dtype_alt  s
    "z TestFromTxt.test_fancy_dtype_altc             C   sl   t d}tj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 6r>   rC  rb   rd   rO  r-   r0   )rV   rP  g      ?g       @rP   rU   r   r   )r>   rC  )r-   r0   )r   rE   rV   rX   rY   r  rW   r   )r    r   rp   rb   rS   r"   r"   r#   rQ    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 |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 )NzA,B
0,1
2,N/Ar   zN/AT)r   missing_valuesr'  )rV   r#  r   rP   r-   Fr  B)r&  rV   r#  )r   rP   rw  )r-   rw  )FF)FT)r   rP   rw  )r-   rw  )FF)FT)r   r  rE   r  r1  rW   rY   r   r&  r@   rX   )r    r   rN   rh  ri  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/d1gd2d3d4d5g|d}t	|| tjt|fd6d7d8ddd|}tjd9d;d>d@gdAdBdCdDg|d}t	|| d S )ENz4A, B, C
0, 0., 0j
1, N/A, 1j
-9, 2.2, N/A
3, -99, 3jr   T)rV   r   r'  r  r4  r  r3  zN/Ar                           rP   i                ?r4  皙@y             8@r0   r                 @)r&  rV   rV   )r   rP   r-   )r3  r#  )r   r4  r  )r   r6  r7  )rP   r;  r8              8)r<  r9  r=  )r0   r>  r:  )r   r   r   )r   rP   r   )r   r   rP   )r   r   r   iiy            8)r   r6  r7  )rP   r?  r8              8)r@  r9  rA  )r0   rB  r:  )r   r   r   )r   rP   r   )rP   r   rP   )r   rP   r   iiy            8)r   r6  r7  )rP   rC  r8              8)rD  r9  rE  )r0   rF  r:  )r   r   r   )r   rP   r   )rP   r   rP   )r   rP   r   )
r  rY   rX   r   rE   r  r   r1  rW   r   )r    r   Z
basekwargsZmdtyperh  ri  r"   r"   r#   test_user_missing_values  s6    





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 jddddgddddgg}t|| t jt|d	tdd*d}t jddd+dgdd,ddgg}t|| d S )-Nr   r0   rU   i  rS   r   )rV   zN/A, 2, 3
4, ,???r   za,b,czN/Ar   z???)r   r   r-   )r   rV   r'  r3  filling_valuesr-   c             S   s   g | ]}|t fqS r"   )rY   )r%   r  r"   r"   r#   r&     s    z8TestFromTxt.test_user_filling_values.<locals>.<listcomp>abcr2  rP   c             S   s   g | ]}|t fqS r"   )rY   )r%   r  r"   r"   r#   r&     s    r(  z1,2,*,4
5,*,7,8
*)r   rV   r3  rH  r   r3  rR  )r   r0   )rU   rK  i)r   r-   r0   )rU   r   rL  rw  )r   rw  )r   r0   )rU   rM  rw  rw  rw  )rE   rW   rY   r  r  r   r   )r    r  r   rN   rh  Zdata2r"   r"   r#   test_user_filling_values  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)rV   r   r3  r'  r#  r         ?r-   g      ?Fr  r4  )r&  rV   )r   rO        )r-   rP  )FF)FT)	r   rE   r  r1  rW   rY   rX   r   r&  )r    r   rh  ri  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
z2,5T)rV   r3  r#  rP   r-   r0   rU   r   r   r   )r&  )r   rE   r  r1  rW   r   )r    r   rh  ri  r"   r"   r#   test_with_masked_column_uniform  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
z2,5T)rV   r3  r#  rP   r-   r0   r   r   r   r  r  r  )r&  rV   )rP   r-   r0   )r   r   r   )r   rP   r   )r   rP   r   )r   rE   r  r1  rW   r%  rY   r   )r    r   rh  ri  r"   r"   r#   test_with_masked_column_various   s    

z+TestFromTxt.test_with_masked_column_variousc                s   dgd }xt dD ]}d|d| < qW |jdd tdj|td	d d
d i }i f fdd	}tt||d |d }tt|d t|t	j
ddd dD d jd ttt	jd	d
d d S )Nz1, 1, 1, 1, 1r   r   z2, 2, 2, 2 2rS  r   za, b, c, d, er   r   T)r   rV   r'  c                s   t jfddi | d< d S )Nr  Fmtest)rE   r  )_ret)rN   mdatar"   r#   r   7  s    z)TestFromTxt.test_invalid_raise.<locals>.f)rU  rT  r  c             S   s   g | ]}|t fqS r"   )rY   )r%   r  r"   r"   r#   r&   <  s    z2TestFromTxt.test_invalid_raise.<locals>.<listcomp>abcde)rV   )r   r'  )rj   insertr   r   r  r   r   r   lenrE   rk   r@   r   r   r  )r    r   rg   retr   rT  r"   )rN   rV  r#   test_invalid_raise*  s    


zTestFromTxt.test_invalid_raisec                s  dgd }xt dD ]}d|d| < qW |jdd tdj|td	d d
dd i }i f fdd	}tt||d |d }tt|d t|t	j
ddd dD d j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 )Nz1, 1, 1, 1, 1r   r   z2, 2, 2, 2 2rS  r   za, b, c, d, er   r   TF)r   rV   r'  r  c                s   t jfddi | d< d S )Nr2  r   rU   rT  )r   rU   )rE   r  )rU  )rN   rV  r"   r#   r   O  s    z6TestFromTxt.test_invalid_raise_with_usecols.<locals>.f)rU  rT  r  c             S   s   g | ]}|t fqS r"   )rY   )r%   r  r"   r"   r#   r&   T  s    z?TestFromTxt.test_invalid_raise_with_usecols.<locals>.<listcomp>Zae)rV   r2  rP   c             S   s   g | ]}|t fqS r"   )rY   )r%   r  r"   r"   r#   r&   Y  s    abr-   c             S   s   g | ]}d | qS )rS  r"   )r%   r  r"   r"   r#   r&   Z  s    )r   rP   )r-   r-   )rj   rX  r   r   r  r   r   r   rY  rE   rk   r@   r  )r    r   rg   rZ  r   rT  ri  r"   )rN   rV  r#   test_invalid_raise_with_usecolsB  s&    

z+TestFromTxt.test_invalid_raise_with_usecolsc             C   sR   dgd }t dj|}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   rU   c             S   s   d| j   S )Nz(%s))r2   )rb   r"   r"   r#   r  b  s    z5TestFromTxt.test_inconsistent_dtype.<locals>.<lambda>r   c             S   s   g | ]}|t fqS r"   )rY   )r%   r  r"   r"   r#   r&   d  s    z7TestFromTxt.test_inconsistent_dtype.<locals>.<listcomp>rW  )r   r  rV   )r   r   r  r   r   rE   r  )r    r   rV  r  rN   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 )Nz0, 1, 2.3
4, 5, 6.7r   zf%02i)r   rV   
defaultfmtr   rP   ffffff@rU   r   @Zf00Zf01Zf02)rV   )r   rP   r`  )rU   r   ra  )rE   r  r   rW   rY   rX   r   )r    r   rT  r  r"   r"   r#   test_default_field_formatg  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 )Nz0, 1, 2.3
4, 5, 6.7r   zf%02i)r   rV   r_  g        g      ?gffffff@g      @g      @g@)rV   )rE   r  r   rX   rW   r   )r    r   rT  r  r"   r"   r#   test_single_dtype_wo_namesp  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 )Nz0, 1, 2.3
4, 5, 6.7r   za, b, c)r   rV   r'                ?ffffff@      @      @@c             S   s   g | ]}|t fqS r"   )rX   )r%   r  r"   r"   r#   r&   ~  s    zBTestFromTxt.test_single_dtype_w_explicit_names.<locals>.<listcomp>rI  )rV   )rd  re  rf  )rg  rh  ri  )rE   r  r   rX   rW   r   )r    r   rT  r  r"   r"   r#   "test_single_dtype_w_explicit_namesx  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   T)r   rV   r'                ?ffffff@      @      @@c             S   s   g | ]}|t fqS r"   )rX   )r%   r  r"   r"   r#   r&     s    zBTestFromTxt.test_single_dtype_w_implicit_names.<locals>.<listcomp>rI  )rV   )rk  rl  rm  )rn  ro  rp  )rE   r  r   rX   rW   r   )r    r   rT  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 )Nz0, 1, 2.3
4, 5, 6.7r   zf_%02i)r   rV   r_  r         ?ffffff@rU         @@Zf_00Zf_01Zf_02)rV   )r   rr  rs  )rU   rt  ru  )rE   r  r   rY   rX   rW   r   )r    r   rT  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jddtj tjt|f|}t|d j	tjk W d Q R X tj
dgddtfdgd}t|| tjddD}tjddtj tjt|fddi|}t|d j	tjk W d 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   rV   T)rh   ri   r   r   01/01/2003  ?   abcder  |S12r  r  |S8)rV   Z	autostrip
01/01/2003rW  |S10|S5)rw  rx  ry  )r  rz  )r  r{  )r|  rx  rW  )r  r}  )r  r~  )r  rl   rm   rn   rE   r  r  r   r   r  rW   rX   r   )r    r   rN   r   rT  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'  rV   AAB_BCCrP   r-   Q	@)rV   r   )r   r'  rV   replace_spacedeletecharszA.AzB (B)zC:C)r   r'  rV   r  zB_(B))rP   r-   r  )rP   r-   r  )rP   r-   r  )rE   r  r   rY   rX   rW   r   )r    rz  rh  
ctrl_dtyper  r"   r"   r#   test_replace_space  s$    





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   T)r   r'  rV   r  r  r  rP   r-   r0   )rV   r   )r   r'  rV   r  r  zA.AzB (B)zC:C)r   r'  rV   r  zB_(B))rP   r-   r0   )rP   r-   r0   )rP   r-   r0   )rE   r  r   rY   rW   r   )r    rz  rh  r  r  r"   r"   r#   test_replace_space_known_dtype  s$    





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   T)r   r'  r   rP   r-   r0   rU   r   c             S   s   g | ]}|t fqS r"   )rY   )r%   r  r"   r"   r#   r&     s    z5TestFromTxt.test_incomplete_names.<locals>.<listcomp>r  r  r  )rV   rV   c             S   s   g | ]}|t fqS r"   )rX   )r%   r  r"   r"   r#   r&     s    )r   rP   r-   )r0   rU   r   )r  r  r  )r   rP   r-   )r0   rU   r   )r  r  r  )r  rE   rW   r  r   r   )r    r   rN   r  rh  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 6rS   )rV   r'  rP   r-   r0   rU   r   r   r  r  )rV   )rP   r-   r0   )rU   r   r   )rE   r  r   rY   rX   rW   r   )r    r   rh  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,4r  r  Er   r   r-   rU   T)rV   r   r2  r'  )r  r  r  )r   r-   rU   )r  r  r  )r  r  r  )rE   r  r   rY   r   rV   r'  )r    r   Z
ctrl_namesrh  r"   r"   r#   test_names_with_usecols_bug1636  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   rU   T)r   r'  rV   r   rP   ffffff@r  r         "@r  r4  r  )rV   )r   r   rU   )r   rP   r  )r  r   r  )r   rP   r  )r  r   r  )r  rE   rW   rY   rX   r  r   r   )r    r   rN   r  rh  r"   r"   r#   test_fixed_width_names   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   i  )r   rV   rH  rP   r-   r0   r   r   r   )rV   iii)r  rE   rW   rY   r  r   r   )r    r   rN   r  rh  r"   r"   r#   test_filling_values  s
    &zTestFromTxt.test_filling_valuesc             C   s   t jdd@}t jddtj tjtdd d dd}t|d jtjk W d Q R X t	|d	 d
 t jdd@}t jddtj tjtdd d dd}t|d jtjk W d Q R X t	|d	 d d S )NT)rh   ri   r   ztest1,testNonetherestofthedatar   )rV   r   r   r   rP   s   testNonetherestofthedataztest1, testNonetherestofthedatas    testNonetherestofthedata)
rl   rm   rn   rE   r  r  r   r   r  r   )r    r   rh  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 jddtj tjt|d d d	d
}t|d jtjk W d 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|j
d  t	|d d t jddD}t jddtj tjtd| d d d	d
}t|d jtjk W d Q R X t	|d d t	|d d|  d S )Ns   s   norm1,norm2,norm3
s   test1,testNonethes   ,test3
T)rh   ri   r   r   )rV   r   r   r   rP   s   test1s   testNonether-   s   test3r/   )rV   r   r   r   test1testNonethetest3s   0,testNonether  r  )rP   r   )rP   rP   )rP   r-   )rP   r   )rP   rP   )rP   r-   )rl   rm   rn   rE   r  r  r   r   r  r   r2   )r    r/   normencr!   r   rh  r"   r"   r#   test_latin1&  s2    

zTestFromTxt.test_latin1c             C   s6   d}| j t|d dd}t|tj|jdj  d S )Ns   h  i  jzUTF-16)rV   r   )r  r   r   rE   rW   r2   r   )r    r  r   r"   r"   r#   test_binary_decode_autodtypeB  s    z(TestFromTxt.test_binary_decode_autodtypec             C   s   d}d}d| d }|| | }t jdd@}t jddtj tjt|d d d	d
}t|d jtjk W d Q R X tj	dddgdd| dgdddgg}t
|| d S )Ns   ϖs   norm1,norm2,norm3
s   test1,testNonethes   ,test3
T)rh   ri   r   r   )rV   r   r   r   s   norm1s   norm2s   norm3s   test1s   testNonethes   test3)rl   rm   rn   rE   r  r  r   r   r  rW   r   )r    r   r  r  r!   r   rh  ctlr"   r"   r#   test_utf8_byte_encodingG  s    
z#TestFromTxt.test_utf8_byte_encodingc             C   s   d}t  }t|d}|jd| d d  W d Q R X tj|d d ddd}tjd	d
|jd dgd	d
|jd dggtjd}t|| t|d}|jd|  W d Q R X tj|d d ddd}t	|d d t	|d d
|jd  W d Q R X d S )Ns   ϖr   s   test1,testNonethes   ,test3
r-   r   zUTF-8)rV   r   r   r   r  r  r  )rV   s   0,testNonether  r   r  )
r   r   r$   rE   r  rW   r2   r   r   r   )r    r   r   r   rh  r  r"   r"   r#   test_utf8_fileW  s"     





zTestFromTxt.test_utf8_filec       	   #   C   s"  d}d}yt j }|j| W n" ttfk
r@   tjd Y nX t }tj	|d4}|j
d |j
d| d  |j
d| d	  W d Q R X tjd
d<}tjddtj tj|d d dd}t|d jtjk W d Q R X tjdddgd|dgdd| dggtjd}t|| W d Q R X d S )Nu   ϖ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
T)rh   ri   r   r   )rV   r   r   r   Znorm1Znorm2Znorm3r  r  r  )rV   )r  r  r  UnicodeErrorImportErrorrr   skipr   r  r   r$   rl   rm   rn   rE   r  r  r   r  rW   r   r   )	r    r   r/   r   r   r   r   rh  r  r"   r"   r#   test_utf8_file_nodtype_unicodel  s0    


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 )NzA,B
0,1
2,3r   zN/AT)r   r3  r'  r   rP   r-   r0   r  r4  )rV   zA,B
0,1
2,N/A)rV   r#  F)r&  rV   )r   rP   )r-   r0   )r   rP   rw  )r-   rw  )FF)FT)r   r  rE   
recfromtxtrW   rY   r   rC   recarrayr   r1  r&  r  )r    r   rN   rh  ri  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 )*NzA,B
0,1
2,3zN/AT)r3  r'  case_sensitiverV   r   rP   r-   r0   r  r4  )rV   zA,B
0,1
2,N/A)rV   r#  F)r&  rV   )r3  rS   r   )r3  rV   zcolor
"red"
"blue"c             S   s
   | j dS )N   ")rd  )rb   r"   r"   r#   r    s    z-TestFromTxt.test_recfromcsv.<locals>.<lambda>)r  redbluecolorrU   )r   rP   )r-   r0   )r   rP   rw  )r-   rw  )FF)FT)r   rP   )r-   r0   )r   rP   )r-   r0   )r  )r  )r   r  rE   r  rW   rY   r   rC   r  r   r1  r&  r  rX   r   rV   )r    r   rN   rh  ri  rV   r"   r"   r#   test_recfromcsv  sB    







zTestFromTxt.test_recfromcsvc             C   s  d}t |}tj|dd}tj|}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jddgddgg}t|| tttjt |ddd tttjt |dd t }|jt	 tjt |ddd}tjddgddgddgddgg}t|| tjt |ddd}tjddgddgddgddgg}t|| W d 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
r0   )r  rP   r-   rU   r   r   r3  rR  r4  rS  r   z1 1
2 2
0 
3 3
4 4
5  
6  
7  
      ?       @)r  r  F)r  r        @      @z"a b
#c d
1 1
2 2
#0 
3 3
4 4
5  5
T)r  r  r'  r   <f8r0  )rV   )r  rV         @)r  r  )r  r  )r  r  )r   r  )r0  r  )r  r  )r  r  )r   r  )r0  r  )r   rE   r  r   r   r   rW   r   r   r   rV   )r    r   rz  Za1Za2rh  ri  r   r"   r"   r#   r    s@    


"
"

zTestFromTxt.test_max_rowsc             C   sx   t jdjd
}d}x^|D ]V}d| d }t 0}t|d	}|j| W d Q R X t j|}W d Q R X t|| qW d S )Nr   r-   r0   r   
r   z0 1 2z3 4 5r   )r-   r0   )r   r  r   )rE   r  r  r   r   r$   r  r   )r    rm  r  r  r   r>   r   r  r"   r"   r#   test_gft_using_filename	  s    
z#TestFromTxt.test_gft_using_filenamec       	      C   s   t jdjd}d}x|D ]}d| d }t }tj|d	d
}|jt| W d Q R X tdd6}t	|d	}|j| W d Q R X t
t j|| W d Q R X qW d S )Nr   r-   r0   r   
r   z0 1 2z3 4 5r   )fileobjr   z.gz2)r   )r-   r0   )r   r  r   )rE   r  r  r   r  GzipFiler$   r   r   r   r   r  )	r    r  r  r  r   r!   r  r>   r   r"   r"   r#   test_gft_from_gzip	  s    
zTestFromTxt.test_gft_from_gzipc             C   s(   dd }t j| }t|t jd d S )Nc              s   s$   xt dD ]} td|  V  q
W d S )NrS  z%d)rj   r   )rg   r"   r"   r#   r  !	  s    z3TestFromTxt.test_gft_using_generator.<locals>.countrS  )rE   r  r   r  )r    r  r  r"   r"   r#   test_gft_using_generator	  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 1024)rV   r  r  r  g      Dl        i   )r   rE   r  r   rV   r'  r   rX   rE  int_r   )r    r   rh  r"   r"   r#   test_auto_dtype_largeint(	  s    z$TestFromTxt.test_auto_dtype_largeintN)Sr)   r*   r+   r  rE   r  r  re   rZ   r]   r  r>  r  r  r  r  r  rN  r  r  r  r  r  r5  r  r  r  ra  r  r  r  r  rj  r  r  r  r  r"  r1  r'  rI  r)  r*  r+  r,  r[  r2  rQ  r5  rG  rN  rQ  rR  rS  r[  r]  r^  rb  rc  rj  rq  rv  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    s   
		

	 


					#)6	r  c               @   sd   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )TestPathUsagec             C   sX   t ddD}t|}tjddgddgg}tj|| tj|}t|| W d Q R X d S )Nz.txt)r   g?r-   r0   rU   )r   r   rE   rW   r   r   r   )r    r   rS   rb   r"   r"   r#   test_loadtxtD	  s    
zTestPathUsage.test_loadtxtc             C   sZ   t ddF}t|}tjddgddggt}tj|| tj|}t|| W d Q R X d S )Nz.npy)r   rP   r-   r0   rU   )r   r   rE   rW   rY   rw   rF   r   )r    r   rS   r   r"   r"   r#   test_save_loadL	  s    
zTestPathUsage.test_save_loadc             C   s`   t ddL}t|}tjddgddggt}tj|| tj|dd}t|| ~W d Q R X d S )	Nz.npy)r   rP   r-   r0   rU   r`   )r_   )r   r   rE   rW   rY   rw   rF   r   )r    r   rS   r   r"   r"   r#   test_save_load_memmapU	  s    
z#TestPathUsage.test_save_load_memmapc             C   s   t ddn}t|}tjddgddggt}tj|| tj|dd}d	|d
 d
< d	|d
 d
< ~tj|}t|| W d Q R X d S )Nz.npy)r   rP   r-   r0   rU   zr+)r_   r   r   )r   r   rE   rW   rY   rw   rF   r   )r    r   rS   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j|}t|d d W d Q R X W d Q R X d S )Nz.npz)r   zplace holder)r   r   )r   r   rE   r{   rF   r   )r    r   r   r"   r"   r#   test_savez_loadm	  s
    zTestPathUsage.test_savez_loadc             C   sP   t dd<}t|}tj|dd tj|}t|d d |j  W d Q R X d S )Nz.npz)r   zplace holder)r   r   )r   r   rE   Zsavez_compressedrF   r   rD   )r    r   r   r"   r"   r#   test_savez_compressed_loadu	  s    
z(TestPathUsage.test_savez_compressed_loadc             C   sP   t dd<}t|}tjddg}tj|| tj|}t|| W d Q R X d S )	Nz.txt)r   rP   r-   r0   rU   )rP   r-   )r0   rU   )r   r   rE   rW   r   r  r   )r    r   rS   r   r"   r"   r#   test_genfromtxt~	  s    
zTestPathUsage.test_genfromtxtc             C   st   t dd`}t|}|jd}|jd W d Q R X tjddgddggtd	}tj|td	}t|| W d Q R X d S )
Nz.txt)r   r   z1 2
3 4rP   r-   r0   rU   )rV   )	r   r   r   r$   rE   rW   rY   r  r   )r    r   r   ri  rh  r"   r"   r#   test_ndfromtxt	  s    zTestPathUsage.test_ndfromtxtc             C   sj   t ddV}t|}|jd}|jd W d Q R X tj|ddd}tjddg}t|| W d Q R X d S )Nz.txt)r   r   z1,2,3.0
4,5,6.0
r   T)r   r#        ?       @      @      @      @      @)r  r  r  )r  r  r  )	r   r   r   r$   rE   r  r1  rW   r   )r    r   r   rh  ri  r"   r"   r#   test_mafromtxt	  s    zTestPathUsage.test_mafromtxtc             C   s   t dd}t|}|jd}|jd W d 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 d Q R X d S )Nz.txt)r   r   zA,B
0,1
2,3r   zN/AT)r   r3  r'  r   rP   r-   r0   r  r4  )rV   )r   rP   )r-   r0   )r   r   r   r$   r  rE   r  rW   rY   r   rC   r  r   )r    r   r   rN   rh  ri  r"   r"   r#   r  	  s    
zTestPathUsage.test_recfromtxtc             C   s   t dd}t|}|jd}|jd W d 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 d Q R X d S )Nz.txt)r   r   zA,B
0,1
2,3zN/AT)r3  r'  r  rV   r   rP   r-   r0   r  r4  )rV   )r   rP   )r-   r0   )r   r   r   r$   r  rE   r  rW   rY   r   rC   r  r   )r    r   r   rN   rh  ri  r"   r"   r#   r  	  s    
zTestPathUsage.test_recfromcsvN)r)   r*   r+   r  r  r  r  r  r  r  r  r  r  r  r"   r"   r"   r#   r  B	  s   		r  c              C   s`   t jjd} t }tj|dd}t j||  |j  |jd tj|dd}tt j	||  d S )Nr   r   )r  r   r   r`   )r   r   )
rE   r   r   r  r  rw   rD   r@   r   rF   )rS   r!   r   r"   r"   r#   test_gzip_load	  s    
r  c               @   s$   e Zd Zdd Zdd Zdd ZdS )
JustWriterc             C   s
   || _ d S )N)base)r    r  r"   r"   r#   r   	  s    zJustWriter.__init__c             C   s   | j j|S )N)r  r$   )r    r!   r"   r"   r#   r$   	  s    zJustWriter.writec             C   s
   | j j S )N)r  r?   )r    r"   r"   r#   r?   	  s    zJustWriter.flushN)r)   r*   r+   r   r$   r?   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 )N)r  )r    r  r"   r"   r#   r   	  s    zJustReader.__init__c             C   s   | j j|S )N)r  r   )r    r}   r"   r"   r#   r   	  s    zJustReader.readr   c             C   s   | j j||S )N)r  r@   )r    offwhencer"   r"   r#   r@   	  s    zJustReader.seekN)r   )r)   r*   r+   r   r   r@   r"   r"   r"   r#   r  	  s   r  c              C   sT   t jjd} t }t|}t j||  |j  |jd t|}tt j	||  d S )Nr   r   )r   r   )
rE   r   r   r  rw   r?   r@   r  r   rF   )rS   r!   r   r"   r"   r#   test_ducktyping	  s    
r  c              C   s   t  } tj| dd}|jd |j  | jd tdd4}t|d}|j| j  W d Q R X t	j
|}W d Q R X | j  t|dd	d
g d S )Nr   )r  r   s   1 2 3
r   z.gz)r   r   rP   r-   r0   )r   r  r  r$   rD   r@   r   r   r   rE   r   r   )r!   r  r>   r   r  r"   r"   r#   test_gzip_loadtxt	  s    

r  c              C   sX   t  } tj| dd}|jd |j  | jd tj| dd}ttj|dddg d S )	Nr   )r  r   s   1 2 3
r   r`   rP   r-   r0   )	r   r  r  r$   rD   r@   r   rE   r   )r!   r   r"   r"   r#   test_gzip_loadtxt_from_string 
  s    

r  c              C   s   t  } tjd}tjd}tj| ||d | jd tj| }td|k td|k td|j k td|j k x,|j D ] \}}t|d	k t	|j
d
 qW tt|j dk x|D ]}t|dk qW td|j k d S )Nr0   )rb   rd   r   rb   rd   r-   )r0   r0   )r0   r0   )rb   rd   )r0   r0   )rb   rd   )r   rE   r   r{   r@   rF   r   keysitemsr   rR   rY  )r!   rb   rd   r   r   rS   r"   r"   r#   test_npzfile_dict
  s"    




r  zPython lacks refcounts)r^   c              C   s   t  } tj| dddg | jd t  tj|  W d Q R X | jd d
dg}t . tjtd|d	}t|tj	dg|d	 W d Q R X d S )NrP   r-   r0   r   rS   u1r   z0 1 2 3)rV   )rS   r  r-   )r   r  r-   r   rP   r-   r0   )r  r  )
r   rE   r{   r@   r   rF   r   r   r   rW   )r   rp   rb   r"   r"   r#   test_load_refcount&
  s    

r  l        )N)OrA   r   r  rK   r   r3   rl   r  r   rr   pathlibr   tempfiler   r   r   r   r  multiprocessingr   r   ctypesr	   ZnumpyrE   Znumpy.mar1  Znumpy.lib._iotoolsr
   r   Znumpy.compatr   r   Znumpy.ma.testutilsr   Znumpy.testingr   r   r   r   r   r   r   r   r   r   r   r   r   Znumpy.testing._private.utilsr   r   maxsizer   r  r   r  r  r   r4   r6   rv   rz   r   r   r  r  r  r  r  r  r  r  r  r  r  rs   rt   r  r"   r"   r"   r#   <module>   s   
<



k   H   u<        yu
