a
    LfO                    @   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	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlZd dlmZmZ d dlmZ d dlZd dlmZ d dlmZ d d	lmZmZ d d
l 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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z: G dd deZ;e j<dkZ=zd dl>Z>dZ?W n e@y   dZ?Y n0 zd dlAZAdZBW n e@y   dZBY n0 d=ddZCG dd dZDG dd deDZEG dd deDZFG dd dZGG dd  d ZHG d!d" d"eHZIG d#d$ d$ZJG d%d& d&eHZKG d'd( d(ZLd)d* ZMG d+d, d,ZNG d-d. d.ZOd/d0 ZPd1d2 ZQd3d4 ZRd5d6 ZSejTjUe1 d7d8d9d: ZVd;d< ZWdS )>    N)Path)NamedTemporaryFile)BytesIOStringIO)datetime)Valueget_context)c_bool)VisibleDeprecationWarning)ConverterErrorConversionWarning)_npyio_impl)
recfromcsv
recfromtxt)assert_equal)assert_warnsassert_assert_raises_regexassert_raisesassert_allcloseassert_array_equaltemppathtempdirIS_PYPYHAS_REFCOUNTsuppress_warningsassert_no_gc_cyclesassert_no_warningsbreak_cyclesIS_WASM)requires_memoryasbytesc                   @   s*   e Zd ZdZd
ddZdd Zdd Zd	S )TextIOzHelper IO class.

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

     c                 C   s   t | t| d S N)r   __init__r"   selfs r*   P/var/www/ai-form-bot/venv/lib/python3.9/site-packages/numpy/lib/tests/test_io.pyr&   ,   s    zTextIO.__init__c                 C   s   t | t| d S r%   )r   writer"   r'   r*   r*   r+   r,   /   s    zTextIO.writec                 C   s   t | dd |D  d S )Nc                 S   s   g | ]}t |qS r*   r!   ).0r)   r*   r*   r+   
<listcomp>3       z%TextIO.writelines.<locals>.<listcomp>)r   
writelines)r(   linesr*   r*   r+   r0   2   s    zTextIO.writelinesN)r$   )__name__
__module____qualname____doc__r&   r,   r0   r*   r*   r*   r+   r#   #   s   
r#   l        TFc                 C   s.   t | tkr| d} tt| |dd  S )zY
    This function is available in the datetime module only from Python >=
    2.5.

    latin1N   )typebytesdecoder   timestrptime)r)   fmtr*   r*   r+   r<   C   s    
r<   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   s0  | di }| dddi}| dd}|r>tdd}|j}n
t }|}z|}	||g|	R i | |  |d tjd	krt|ts|	  t
j|fi |}
|	| _|
| _W t|ts|	  d
t v rt|
t
jjjst|j n@t|ts*|	  d
t v r*t|
t
jjjs*t|j 0 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   win32arr_reloadedN)getr   namer   flushseeksysplatform
isinstanceclosenploadarrrD   localslibZnpyioZNpzFileosremove)r(   Z	save_funcargskwargsr?   r@   rA   Ztarget_fileZ	load_filerO   rD   r*   r*   r+   	roundtripO   s8    



zRoundtripTest.roundtripc                 C   s   |  | | j |dd |  t| | j t|dd |jd dkr~|  t|dd   | j t|dd  dd d S )NT)rA   r      )rV   rM   asfortranarrayshaper(   ar*   r*   r+   check_roundtrips   s    
zRoundtripTest.check_roundtripsc                 C   s   t g t}| | t ddgddggt}| | t ddgddggt}| | t jddgddggt jd	}| | t jddgddggt jd	}| | d S )
NrW      r7      y      ?      @y       @      @y      @      @y      @       @dtype)rM   arrayfloatr\   intZcsingleZcdoublerZ   r*   r*   r+   
test_array   s    



zRoundtripTest.test_arrayc                 C   s<   t g t}| | t ddgddggt}| | d S )NrW   r]   r7   r^   )rM   ra   objectr\   rZ   r*   r*   r+   test_array_object   s    
zRoundtripTest.test_array_objectc                 C   s   t g dt}| | d S )NrW   r]   r7   r^   )rM   ra   rc   rV   rZ   r*   r*   r+   test_1D   s    zRoundtripTest.test_1DrC   zFails on Win32reasonc                 C   sX   t ddgddgg}| j|dddid t ddgddgg}| j|dddid d S )	NrW   g      @r^   g333333@T	mmap_moder)rA   r@   )rM   ra   rV   rX   rZ   r*   r*   r+   	test_mmap   s    zRoundtripTest.test_mmapc                 C   s$   t jddgddgd}| | d S )NrW   r]   r7   r^   xi4yrr   r_   )rM   ra   r\   rZ   r*   r*   r+   test_record   s    zRoundtripTest.test_recordc                 C   sh   dd t dD }tjd|d}tjdd( tdd	t | | W d    n1 sZ0    Y  d S )
Nc                 S   s   g | ]}d | d t fqS )%dd   rb   r-   ir*   r*   r+   r.      r/   z1RoundtripTest.test_format_2_0.<locals>.<listcomp>  i  r_   Trecordalwaysr$   )rangerM   oneswarningscatch_warningsfilterwarningsUserWarningr\   )r(   dtr[   r*   r*   r+   test_format_2_0   s
    zRoundtripTest.test_format_2_0N)r2   r3   r4   rV   r\   rd   rf   rh   pytestmarkskipifrI   rJ   rm   ru   slowr   r*   r*   r*   r+   r>   N   s   0

r>   c                   @   s   e Zd Zdd ZdS )TestSaveLoadc                 O   sb   t j| tjg|R i | t| jd | j t| jd j| jj t| jd jj	| jjj	 d S )Nr   )
r>   rV   rM   saver   rO   rD   r`   flagsfnc)r(   rT   rU   r*   r*   r+   rV      s    zTestSaveLoad.roundtripN)r2   r3   r4   rV   r*   r*   r*   r+   r      s   r   c                   @   s   e Zd Zdd Zejjeddejje ddejj	dd Z
dd	 Zd
d Zdd Zdd Zejjedddd Zdd Zejjdd Zdd Zejdg ddd ZdS )TestSavezLoadc              	   O   s   t j| tjg|R i | ztt| jD ]@\}}| jd|  }t|| t|j|j t|j	j
|j	j
 q(W | jjr| jj  t| jjj n&| jjr| jj  t| jjj 0 d S )Nzarr_%d)r>   rV   rM   savez	enumeraterO   rD   r   r`   r   r   ZfidrL   rR   rS   rF   )r(   rT   rU   nrO   Zreloadedr*   r*   r+   rV      s    
zTestSavezLoad.roundtripzHangs on PyPyri   zNeeds 64bit platformc                 C   sp   d}t j|t jd}tddd<}t j||d ~t |}|d }|  ~W d    n1 sb0    Y  d S )Nl     r_   Znumpy_test_big_arrays_.npz)prefixsuffixr[   r[   )rM   emptyuint8r   r   rN   rL   )r(   Lr[   tmpZnpfiler*   r*   r+   test_big_arrays   s    
zTestSavezLoad.test_big_arraysc                 C   s@   t ddgddggt}t ddgddggt}| || d S )	NrW   r]   r7   r^         ?       @       @      @      @            @      (@)rM   ra   rb   complexrV   )r(   r[   br*   r*   r+   test_multiple_arrays   s    z"TestSavezLoad.test_multiple_arraysc                 C   sz   t ddgddggt}t ddgddggt}t }t j|||d	 |d
 t |}t||d  t||d  d S NrW   r]   r7   r^   r   r   r   r   )file_afile_br   r   r   )	rM   ra   rb   r   r   r   rH   rN   r   r(   r[   r   clr*   r*   r+   test_named_arrays   s    

zTestSavezLoad.test_named_arraysc                 C   sp   t g d}t }t j||d |d t |}tjtdd |d  W d    n1 sb0    Y  d S )NrW   r]   r7   r   r   z(1, 2)matchrn   )	rM   ra   r   r   rH   rN   r   raisesKeyError)r(   r[   fr   r*   r*   r+   test_tuple_getitem_raises   s    

z'TestSavezLoad.test_tuple_getitem_raisesc                 C   s   t ddgddggt}t ddgddggt}t }t j|||d	 |d
 t |}tt	t
|jddg t||jj t||jj d S r   )rM   ra   rb   r   r   r   rH   rN   r   sorteddirr   r   r   r   r*   r*   r+   test_BagObj   s    

zTestSavezLoad.test_BagObjzCannot start threadc                    sX   dd g   fddt dD }|D ]}|  q(|D ]}|  q: rTt d S )Nc                 S   s~   t dd`}tjdd}ztj||d W n. tyZ } z| | W Y d }~n
d }~0 0 W d    n1 sp0    Y  d S )Nr   r   r{   )rO   )r   rM   randomZrandnr   OSErrorappend)Z
error_listr   rO   errr*   r*   r+   writer  s    z9TestSavezLoad.test_savez_filename_clashes.<locals>.writerc                    s   g | ]}t j fd qS )targetrT   )	threadingThread)r-   jerrorsr   r*   r+   r.     s   z=TestSavezLoad.test_savez_filename_clashes.<locals>.<listcomp>r7   )r   startjoinAssertionError)r(   threadstr*   r   r+   test_savez_filename_clashes  s    

z)TestSavezLoad.test_savez_filename_clashesc              	   C   s   t dd}t|d}tj|dd W d    n1 s:0    Y  t|ddV}|d t|j  t|d	  t|j  |d t|j  W d    n1 s0    Y  W d    n1 s0    Y  d S )
Nr   r   wbLOVELY LOADdatarbi'  r   r   )r   openrM   r   rH   r   closedrN   )r(   r   fpr*   r*   r+   test_not_closing_opened_fid  s    ,

z)TestSavezLoad.test_not_closing_opened_fidc                 C   s   t dd}tj|dd t }|t tddD ]l}zXzt|d  W n4 ty } zd| }t	|W Y d }~n
d }~0 0 W t
rt  q6t
rt  0 q6W d    n1 s0    Y  W d    n1 s0    Y  d S )	Nr   r   r   r   rW   i  r   z#Failed to load data from a file: %s)r   rM   r   r   filterResourceWarningr   rN   	Exceptionr   r   gcZcollect)r(   r   suprz   emsgr*   r*   r+   test_closing_fid*  s    
 
zTestSavezLoad.test_closing_fidc                 C   sf   d}t d|dB}tj|dd t|}|jj}|  t|j W d    n1 sX0    Y  d S )NZ&numpy_test_closing_zipfile_after_load_r   )r   r   place holderlab)	r   rM   r   rN   zipr   rL   r   r   )r(   r   r   r   r   r*   r*   r+   test_closing_zipfile_after_loadD  s    
z-TestSavezLoad.test_closing_zipfile_after_loadzcount, expected_repr))rW   z"NpzFile {fname!r} with keys: arr_0)   z>NpzFile {fname!r} with keys: arr_0, arr_1, arr_2, arr_3, arr_4)   zANpzFile {fname!r} with keys: arr_0, arr_1, arr_2, arr_3, arr_4...c                 C   s   t ddgddggt}tddR}t j|g|g| R   t |}t||j|dks^J |  W d    n1 sz0    Y  d S )NrW   r]   r7   r^   r   r   )fname)	rM   ra   rb   r   r   rN   reprformatrL   )r(   countZexpected_reprr[   r   r   r*   r*   r+   test_repr_lists_keysQ  s    
z"TestSavezLoad.test_repr_lists_keysN)r2   r3   r4   rV   r   r   r   r   IS_64BITr   r   r   r   r   r   r   r   r   Z	slow_pypyr   r   parametrizer   r*   r*   r*   r+   r      s"   


r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zejdeegdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zejd$eegd%d& Zejjejd'kd(d)ejje d*d+d,d- Z!d.S )/TestSaveTxtc                 C   s   t ddgddggt}d}t }t j|||d |d t| t|d | d	 d
 t|d | d	 d g t ddgddggt	}t }t j||dd |d t| ddg d S )NrW   r]   r7   r^   z%.18er=   r    
rn   ro   rv      1 2
   3 4
)
rM   ra   rb   r   savetxtrH   r   	readlinesr"   rc   )r(   r[   r=   r   r*   r*   r+   rd   b  s    

zTestSaveTxt.test_arrayc                 C   sJ   t g dt}t }t j||dd |d | }t|g d d S )Nrg   rv   r   r   )s   1
s   2
s   3
s   4
)rM   ra   rc   r   r   rH   r   r   r(   r[   r   r1   r*   r*   r+   rh   r  s    
zTestSaveTxt.test_1Dc                 C   s@   t  }tttj|td tttj|tdgdggg d S )NrW   r]   )r   r   
ValueErrorrM   r   ra   r(   r   r*   r*   r+   
test_0D_3Dz  s    zTestSaveTxt.test_0D_3Dc                 C   sL   t jddgddgd}t }t j||dd |d t| d	d
g d S )Nrn   ro   rp   rs   r_   rv   r   r   r   r   rM   ra   r   r   rH   r   r   r(   r[   r   r*   r*   r+   test_structured  s
    
zTestSaveTxt.test_structuredc                 C   sT   t jddgg dd}t }t j||ddg dd |d	 t| d
dg d S )Nr   r^   r   r   ))foorr   )barrr   )bazrr   r_   r   r   rv   r   r   s   1 3
s   4 6
r   r   r*   r*   r+   test_structured_padded  s
    
z"TestSaveTxt.test_structured_paddedc                 C   st   t jdg dd}|ddg }tdd8}t|}t || t |}t|| W d    n1 sf0    Y  d S )NrW   )rp   rs   )zf4r_   rq   r   .npyr   )rM   r   r   r   r   rN   r   )r(   r[   vpathr   r*   r*   r+   test_multifield_view  s    
z TestSaveTxt.test_multifield_viewc                 C   sN   t ddgddgg}t }t j||ddd |d t| d	d
g d S )N      ?       @      @      @,rv   )	delimiterr=   r   s   1,2
s   3,4
r   r   r*   r*   r+   test_delimiter  s
    
zTestSaveTxt.test_delimiterc                 C   s   t ddg}t }t j||ddgd |d t| ddg t }t j||d	d |d | }t|d
dg t }t j||d	dd |d | }t|d
dg t }ttt j||dd d S )Nrn   ro   z%02dz%3.1fr   r   s   01 2.0
s   03 4.0
z%02d : %3.1fs	   01 : 2.0
s	   03 : 4.0
r  )r=   r  c   )	rM   ra   r   r   rH   r   r   r   r   r   r*   r*   r+   test_format  s"    


zTestSaveTxt.test_formatc                 C   s  t  }tjddgtd}d}tj||d|d |d t| td| d	  t  }tj||d|d
 |d t| td| d  t  }d}tj||d||d |d t| t|| d d  t  }d}tj||d||d |d t| td| | d  d S )Nrn   ro   r_   zTest header / footerz%1d)r=   headerr   z# z	
1 2
3 4
)r=   footerz
1 2
3 4
# r   z% )r=   r	  commentsz1 2
3 4
)r=   r
  r  )	r   rM   ra   rc   r   rH   r   readr"   )r(   r   r[   test_header_footerZ
commentstrr*   r*   r+   r    s@    





zTestSaveTxt.test_header_footerfilename_typec                 C   s`   t  F}tddg}t||| t||}t|| W d    n1 sR0    Y  d S )Nrn   ro   )r   rM   ra   r   loadtxtr   )r(   r  rF   r[   r   r*   r*   r+   test_file_roundtrip  s
    zTestSaveTxt.test_file_roundtripc                 C   s   d}d}t j||ft jd}t j}t j}|d|  |d d < t }t j||dd |d | }t	|ddg t }t j||d| d |d | }t	|d	d	g t }t j||d
g| d |d | }t	|ddg d S )Nr]   r_                 ?z %+.3er   r   s8    ( +3.142e+00+ +2.718e+00j)  ( +3.142e+00+ +2.718e+00j)
z  %+.3e  %+.3es1     +3.142e+00  +2.718e+00  +3.142e+00  +2.718e+00
z(%.3e%+.3ej)s.   (3.142e+00+2.718e+00j) (3.142e+00+2.718e+00j)

rM   zeros
complex128pir   r   r   rH   r   r   r(   ZncolsZnrowsr[   reimr   r1   r*   r*   r+   test_complex_arrays  sH    


zTestSaveTxt.test_complex_arraysc                 C   sv   d}d}t j||ft jd}t j}t j}|d|  |d d < t }t j||dd |d | }t	|ddg d S )Nr]   r_   r  z%.3er   r   s0    (3.142e+00-2.718e+00j)  (3.142e+00-2.718e+00j)
r  r  r*   r*   r+   test_complex_negative_exponent
  s     
z*TestSaveTxt.test_complex_negative_exponentc                 C   sH   G dd dt }| }tddg}t|| t|}t|| d S )Nc                   @   s   e Zd Zdd ZdS )z4TestSaveTxt.test_custom_writer.<locals>.CustomWriterc                 S   s   |  |d d S )N   
)extendsplit)r(   textr*   r*   r+   r,     s    z:TestSaveTxt.test_custom_writer.<locals>.CustomWriter.writeN)r2   r3   r4   r,   r*   r*   r*   r+   CustomWriter  s   r  rn   ro   )listrM   ra   r   r  r   )r(   r  wr[   r   r*   r*   r+   test_custom_writer  s    
zTestSaveTxt.test_custom_writerc                 C   sd   d d}tj|gtjd}t .}tjtj|d|dgdd W d    n1 sV0    Y  d S )N   ϖUTF-8r_   test.csv%sr=   encoding)	r:   rM   ra   str_r   r   rR   r   r   )r(   utf8r[   tmpdirr*   r*   r+   test_unicode(  s    
zTestSaveTxt.test_unicodec                 C   s   d d}tj|gtjd}ddg}tr2|d trD|ddg t f}|D ]P}tj	t
j|d	| |d
gdd tjt
j|d	| dtjd}t|| qPW d    n1 s0    Y  d S )Nr#  r$  r_   r$   .gz.bz2.xz.lzmar%  r&  z	UTF-16-LEr'  r(  r`   )r:   rM   ra   r)  HAS_BZ2r   HAS_LZMAr  r   r   rR   r   r   r  r   )r(   r*  r[   suffixesr+  r   r   r*   r*   r+   test_unicode_roundtrip0  s     

z"TestSaveTxt.test_unicode_roundtripc                 C   s\   d d}tj|gtjd}t }tj||dgdd |d t|  d|d  d S Nr#  r$  r_   r&  r'  r   r   )	r:   rM   ra   r)  r   r   rH   r   r  r(   r*  r[   r)   r*   r*   r+   test_unicode_bytestreamA  s    

z#TestSaveTxt.test_unicode_bytestreamc                 C   sV   d d}tj|gtjd}t }tj||dgdd |d t| |d  d S r6  )	r:   rM   ra   r)  r   r   rH   r   r  r7  r*   r*   r+   test_unicode_stringstreamI  s    

z%TestSaveTxt.test_unicode_stringstreamiotypec                 C   s^   t dg}| }t j||dd |d |tu rHt| dd  nt| dd  d S )Nr   %fr   r   z%f
s   %f
)rM   ra   r   rH   r   r   r  )r(   r:  r[   r)   r*   r*   r+   test_unicode_and_bytes_fmtQ  s    
z&TestSaveTxt.test_unicode_and_bytes_fmtrC   zfiles>4GB may not workri   g   `A)Z
free_bytesc                 C   sl   dd }t t}td}|j||fd}|  |  |jrFtd|jdkrZt	
d |jdkshJ d S )	Nc                 S   s   d| _ z^tjdd tdD td}t (}tjtj	|d|d W d    n1 sX0    Y  W n t
y~   d| _  Y n0 d S )	NFc                 S   s$   g | ]}t jt jd ddqS )2   rw   r^   )rM   r   Zrandrandintry   r*   r*   r+   r.   f  s   zGTestSaveTxt.test_large_zip.<locals>.check_large_zip.<locals>.<listcomp>i 5 r_   ztest.npz)	test_dataT)valuerM   Zasarrayr   re   r   r   rR   r   r   MemoryError)memoryerror_raisedr?  r+  r*   r*   r+   check_large_zipa  s    
(z3TestSaveTxt.test_large_zip.<locals>.check_large_zipforkr   z,Child process raised a MemoryError exceptionzCsubprocess got a SIGKILL, apparently free memory was not sufficientr   )r   r	   r   Processr   r   r@  rA  exitcoder   xfail)r(   rC  rB  ctxpr*   r*   r+   test_large_zip]  s    

zTestSaveTxt.test_large_zipN)"r2   r3   r4   rd   rh   r   r   r   r   r  r  r  r   r   r   r   strr  r  r  r"  r,  r5  r8  r9  r   r   r<  r   rI   rJ   r   r    rK  r*   r*   r*   r+   r   a  s0   
	"
&
r   c                   @   sx   e Zd Zdd Zdd Zejje dddd Z	ejje
 d	dd
d Zdd Zdd Zdd Zdd Zdd ZdS )LoadTxtBasec                 C   s   t dd}d}|D ]}d| d }|D ]}t|d}||ddd	}	|	| W d    n1 sj0    Y  | j|dd
}
t|
| ||ddd
}	| |	}
W d    n1 s0    Y  t|
| W d    q,1 s0    Y  q,qd S )Nr   r]   r7   r   z
0 1 23 4 5r   wtz	UTF-32-LE)moder(  r(  rt)rM   arangereshaper   r,   loadfuncr   )r(   Zfopenr4  wantedlinesepsepr   r   rF   r   resr*   r*   r+   check_compressed  s    (
(zLoadTxtBase.check_compressedc                 C   s   |  tjd d S )N)r-  )r^  gzipr   r(   r*   r*   r+   test_compressed_gzip  s    z LoadTxtBase.test_compressed_gzipz	Needs bz2ri   c                 C   s   |  tjd d S )N)r.  )r^  bz2r   r`  r*   r*   r+   test_compressed_bz2  s    zLoadTxtBase.test_compressed_bz2z
Needs lzmac                 C   s   |  tjd d S )N)r/  r0  )r^  lzmar   r`  r*   r*   r+   test_compressed_lzma  s    z LoadTxtBase.test_compressed_lzmac              	   C   s   t  f}t|d }|dd W d    n1 s80    Y  | j|dd}t|g d W d    n1 sr0    Y  d S )Nr   z0.
1.
2.UTF-16rU  )        r   r  )r   r   r,   encoderY  r   )r(   r   r   rq   r*   r*   r+   test_encoding  s
    .zLoadTxtBase.test_encodingc              	   C   s   d d}t f}t|d }||d W d    n1 sB0    Y  | j|dtjd}t|| W d    n1 s|0    Y  d S )Ns   öüör$  r   rf  r1  )	r:   r   r   r,   rh  rY  rM   r)  r   )r(   Znonasciir   r   rq   r*   r*   r+   test_stringload  s    
.zLoadTxtBase.test_stringloadc                 C   s8   d}| j t|tjdd}t|t|d  d S Ns   h  i  jrf  r`   r(  )rY  r   rM   r)  r   ra   r:   r  r(   utf16r   r*   r*   r+   test_binary_decode  s    zLoadTxtBase.test_binary_decodec                 C   sV   t  }|d |d | j|tjdddd id}tddg}t|| d S )Nr#  r   r9   c                 S   s
   |  dS )Nr$  r:   rq   r*   r*   r+   <lambda>  r/   z4LoadTxtBase.test_converters_decode.<locals>.<lambda>)r`   r(  
convertersr$  )	r#   r,   rH   rY  rM   r)  ra   r:   r   r(   r   rq   r[   r*   r*   r+   test_converters_decode  s    


z"LoadTxtBase.test_converters_decodec              	   C   s   d d}t ~}t|ddd}|| W d    n1 s@0    Y  | j|tjddd idd}t|d	 g}t|| W d    n1 s0    Y  d S )
Nr#  r$  rS  rU  r   c                 S   s   | d S )Nr   r*   rq  r*   r*   r+   rr    r/   z6LoadTxtBase.test_converters_nodecode.<locals>.<lambda>r`   rs  r(  r   )	r:   r   r   r,   rY  rM   r)  ra   r   )r(   r*  r   r   rq   r[   r*   r*   r+   test_converters_nodecode  s    
(

z$LoadTxtBase.test_converters_nodecodeN)r2   r3   r4   r^  ra  r   r   r   r2  rc  r3  re  ri  rj  ro  ru  rw  r*   r*   r*   r+   rM    s   

	
rM  c                   @   s  e Zd ZeejZdd Zdd Zdd Z	dd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zejjeovejjdkdddd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Z d*d+ Z!d,d- Z"d.d/ Z#d0d1 Z$d2d3 Z%ejjeoejjdkddd4d5 Z&ejjeo*ejjdkddd6d7 Z'd8d9 Z(d:d; Z)d<d= Z*d>d? Z+d@dA Z,dBdC Z-dDdE Z.dFdG Z/dHdI Z0ejje12 dJkdKddLdM Z3dNdO Z4dPdQ Z5dRdS Z6dTdU Z7ej8dVdWgdXg dYfdXg dZfdXe9d[fd\g d]fd\g d^fd\e9d_fgd`da Z:dbS )cTestLoadTxtc                 C   s   t j| _dt _d S NrW   )r   _loadtxt_chunksize
orig_chunkr`  r*   r*   r+   setup_method  s    zTestLoadTxt.setup_methodc                 C   s   | j t_d S r%   )r{  r   rz  r`  r*   r*   r+   teardown_method  s    zTestLoadTxt.teardown_methodc                 C   s   t  }|d |d tj|dtjfdtjfgd}tjddgdd	gd}t|| t  }|d
 |d ddd}tjddg|d}tj||d}t|| d S )N1 2
3 4r   rq   rt   r_   rn   ro   rp   rs   zM 64 75.0
F 25 60.0genderageweightS1rr   r   namesformatsM      P@     R@F      9@      N@)r#   r,   rH   rM   r  int32ra   r   )r(   r   rq   r[   dZmydescriptorr   rt   r*   r*   r+   ru     s&    




zTestLoadTxt.test_recordc                 C   s   t  }|d |d tj|td}tddgddggt}t|| |d tj|td}tddgddggt}t|| d S )Nr~  r   r_   rW   r]   r7   r^   )	r#   r,   rH   rM   r  rc   ra   r   rb   rt  r*   r*   r+   rd     s    



zTestLoadTxt.test_arrayc                 C   s   t  }|d |d tj|td}tg dt}t|| t  }|d |d tj|tdd}tg dt}t|| d S )N1
2
3
4
r   r_   rg   1,2,3,4
r  r`   r  r#   r,   rH   rM   r  rc   ra   r   rt  r*   r*   r+   rh     s    




zTestLoadTxt.test_1Dc                 C   sR   t  }|d |d tj|tdddd id}tg dt}t|| d S )	N	1,2,3,,5
r   r  r7   c                 S   s   t | pdS Nrc   r)   r*   r*   r+   rr  	  r/   z*TestLoadTxt.test_missing.<locals>.<lambda>r`   r  rs  rW   r]   r7   r  r   r  rt  r*   r*   r+   test_missing  s    



zTestLoadTxt.test_missingc                 C   s\   t  }|d |d tj|tdddd idd}td	d
gddggt}t|| d S )N1,2,3,,5
6,7,8,9,10
r   r  r7   c                 S   s   t | pdS r  r  r  r*   r*   r+   rr    r/   z:TestLoadTxt.test_converters_with_usecols.<locals>.<lambda>rW   r7   r`   r  rs  usecolsr]   r     	   r  rt  r*   r*   r+   test_converters_with_usecols  s    



z(TestLoadTxt.test_converters_with_usecolsc                 C   sJ   t  }|d |d tj|tddd}tg dt}t|| d S )N# comment
1,2,3,5
r   r  #r`   r  r  rW   r]   r7   r   r  rt  r*   r*   r+   test_comments_unicode  s    


z!TestLoadTxt.test_comments_unicodec                 C   sJ   t  }|d |d tj|tddd}tg dt}t|| d S )Nr  r   r     #r  r  r  rt  r*   r*   r+   test_comments_byte   s    


zTestLoadTxt.test_comments_bytec                 C   sV   t  }|d |d tj|tdg dd}tg dg dgt}t|| d S )Nz,# comment
1,2,3
@ comment2
4,5,6 // comment3r   r  )r  @z//r  r   r   r  rt  r*   r*   r+   test_comments_multiple)  s    


z"TestLoadTxt.test_comments_multiple)r  r7      zPyPy bug in error formattingri   c                 C   sz   t  }|d |d tj|tddd}tg dt}t|| t  }|d |d tt	tj|tddd d S )Nz/* comment
1,2,3,5
r   r  z/*r  r  z*/ comment
1,2,3,5
)
r#   r,   rH   rM   r  rc   ra   r   r   r   rt  r*   r*   r+   test_comments_multi_chars2  s    





z%TestLoadTxt.test_comments_multi_charsc                 C   s   t  }|d |d tj|tddd}tg dt}t|| t  }|d |d tj|tddd}tg dt}t|| d S )Ncomment
1,2,3,5
r   r  rW   )r`   r  skiprowsr  r  r  rt  r*   r*   r+   test_skiprowsD  s     






zTestLoadTxt.test_skiprowsc              	   C   s  t ddgddggt}t }t || |d t j|tdd}t||d d df  t g dg d	gt}t }t || |d t j|td
d}t||d d dd f  |d t j|tt ddgd}t||d d dd f  tt j	t j
t jt jt jt jt jt jf	D ]>}|d}|d t j|t|d}t||d d df  qG dd d}| }|d t j|t|d}t||d d df  |d t j|t|fd}t||d d df  d}t|}ddg}	ddg}
t j|dtt|	|
d}t|d ddg t|d ddg |d d}ttdt|j t j||d ttdt|j t j|d|dgd d S )NrW   r]   r7   r^   r   rW   r`   r  r   r7   r^   r   rn   c                   @   s   e Zd Zdd ZdS )z*TestLoadTxt.test_usecols.<locals>.CrazyIntc                 S   s   dS ry  r*   r`  r*   r*   r+   	__index__t  s    z4TestLoadTxt.test_usecols.<locals>.CrazyInt.__index__N)r2   r3   r4   r  r*   r*   r*   r+   CrazyInts  s   r  z<JOE 70.1 25.3
                BOB 60.5 27.9
                stidtempS4f8r   r]   r  r`      JOE   BOBL9@fffff;@      ?z^usecols must be.*%sr  )rM   ra   rb   r   r   rH   r  r   rc   Zint8Zint16r  int64r   Zuint16Zuint32uint64r#   r   r   r   r   	TypeErrorr8   r2   )r(   r[   r   rq   Zint_typeZto_readr  Z	crazy_intr   r  dtypesrO   Z	bogus_idxr*   r*   r+   test_usecolsU  sd    







zTestLoadTxt.test_usecolsc                 C   s   t t$ tjdgdgdd W d    n1 s40    Y  t ttf$ tjdgdgdd W d    n1 sv0    Y  t jtdd& tjdgd	d
gdd W d    n1 s0    Y  d S )Nz1
l            r  )r  r  l            zQIf a structured dtype .*. But 1 usecols were given and the number of fields is 3.r   z1,1
zi,2ir   )r`   r  r  )r   r   OverflowErrorrM   r  r   r  r`  r*   r*   r+   test_bad_usecols  s    22zTestLoadTxt.test_bad_usecolsc                 C   sj   t  }|d |d tdtfddtfdtfgfg}tj||dd}td	d
g|}t	|| d S )N1,2,3.0
4,5,6.0
r   rq   rt   r   r)   r  r  rW   )r]   r  r^   )r         @)
r#   r,   rH   rM   r`   rc   rb   r  ra   r   r(   r   r   rq   r[   r*   r*   r+   test_fancy_dtype  s    

"zTestLoadTxt.test_fancy_dtypec                 C   sh   t d}tddtfdtfdtdfg}tj||d}tjdd	d
g dg dgfg|d}t|| d S Nzaaaa  1.0  8.0  1 2 3 4 5 6rF   r  rq   rt   blockrN  r_   aaaar          @r   r   r#   rM   r`   rb   rc   r  ra   r   r  r*   r*   r+   test_shaped_dtype  s    zTestLoadTxt.test_shaped_dtypec                 C   sx   t d}tddtfdtfdtdfg}tj||d}tjdd	d
g dg dgg dg d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  rq   rt   r  )r]   r]   r7   r_   r  r   r  r   r   )r  r  r  )
         r  r  r*   r*   r+   test_3d_shaped_dtype  s    
z TestLoadTxt.test_3d_shaped_dtypec                 C   sF   ddg}t tjfD ].}tjddg|d}tj||d}t|| qd S )NZstr1Zstr2r_   )rL  rM   bytes_ra   r  r   )r(   r   r   r[   rq   r*   r*   r+   test_str_dtype  s
    zTestLoadTxt.test_str_dtypec                 C   sz   t jtddX t }t|}t|jd tj|tjd}t|jd t	|j
tjk W d    n1 sl0    Y  d S )Ninput contained no datar   r   r_   )r   warnsr   r#   rM   r  r   rY   r  r   r`   )r(   r   rq   r*   r*   r+   test_empty_file  s    
zTestLoadTxt.test_empty_filec                 C   sx   t  }|ddg |d tj|dddd id}t|dd	g |d tj|dd
dd id}t|ddg d S )Nz1 21
z3 42
r   r  c                 S   s
   t | dS N   r  r  r*   r*   r+   rr    r/   z3TestLoadTxt.test_unused_converter.<locals>.<lambda>r  rs     *   rW   c                 S   s
   t | dS r  r  r  r*   r*   r+   rr    r/   !   B   )r#   r0   rH   rM   r  r   )r(   r   r   r*   r*   r+   test_unused_converter  s    



z!TestLoadTxt.test_unused_converterc                 C   sr   d}dt fdtfg}dd }d|i}tjt|d||d}tjdtd	ddfd
tdddfg|d}t|| d S )N0 1; 2001-01-01
                   2; 2002-01-31 idxcodec                 S   s   t |  dS Nz%Y-%m-%dr<   stripr  r*   r*   r+   rr    r/   z4TestLoadTxt.test_dtype_with_object.<locals>.<lambda>rW   ;r  r`   rs    r]        r_   )rc   re   rM   r  r#   ra   r   r   r(   r   Zndtypefuncrs  testcontrolr*   r*   r+   test_dtype_with_object  s    z"TestLoadTxt.test_dtype_with_objectc                 C   s@   d}t  }|d|  |d tj|tjd}t|| d S )N)l   +&|    l   -(|    %s %sr   r_   )r#   r,   rH   rM   r  r  r   r(   tgtr   r]  r*   r*   r+   test_uint64_type  s    
zTestLoadTxt.test_uint64_typec                 C   s@   d}t  }|d|  |d tj|tjd}t|| d S )N)l l    r  r   r_   )r#   r,   rH   rM   r  r  r   r  r*   r*   r+   test_int64_type  s    
zTestLoadTxt.test_int64_typec                 C   s   t dddt j}t || ft}dttj|}t	 }|
| tt jfD ]4}|d t j||tjdd}t||d| d	 qXd S )
Nir  r   r   r   r6   rv  r&  )err_msg)rM   ZlogspaceZastypeZfloat32Zhstackrb   r   maphexr#   r,   rH   r  fromhexr   )r(   r  inpr   r   r]  r*   r*   r+   test_from_float_hex  s    


zTestLoadTxt.test_from_float_hexc                 C   sD   t d}tjtdd t| W d   n1 s60    Y  dS )z
        Ensure that fromhex is only used for values with the correct prefix and
        is not called by default. Regression test related to gh-19598.
        za b cz2.*convert string 'a' to float64 at row 0, column 1r   Nr#   r   r   r   rM   r  r   r*   r*   r+   6test_default_float_converter_no_default_hex_conversion  s
    zBTestLoadTxt.test_default_float_converter_no_default_hex_conversionc                 C   sD   t d}tjtdd t| W d   n1 s60    Y  dS )z
        Ensure that the exception message raised during failed floating point
        conversion is correct. Regression test related to gh-19598.
        zqrs tuvz)could not convert string 'qrs' to float64r   Nr  r   r*   r*   r+   &test_default_float_converter_exception  s
    z2TestLoadTxt.test_default_float_converter_exceptionc                 C   sN   t ddt ddf}t }|d|  |d tj|t d}t|| d S )NrW   r  r   r_   )r   r#   r,   rH   rM   r  r   r  r*   r*   r+   test_from_complex$  s    
zTestLoadTxt.test_from_complexc                 C   s   t jdt jd}t j}t j}|d|  |d d < t }t j||dd |d | }|d |	dd}t
||k || |d t j|td}t|| d S )	Nr]   r]   r_   r  z%.16er   r   s   e+00-s   e00+-)rM   r  r  r  r   r   r   rH   r  replacer   r,   r  r   r   )r(   r[   r  r  r   txtZtxt_badr]  r*   r*   r+   test_complex_misformatted,  s    



z%TestLoadTxt.test_complex_misformattedc              	   C   s~   t  N}t|d}|d W d    n1 s20    Y  t|}W d    n1 sZ0    Y  t|ddgddgg d S )Nr!  z
1 213 42rW   r  r7   r  )r   r   r,   rM   r  r   )r(   rF   r   r   r*   r*   r+   test_universal_newline@  s
    ((z"TestLoadTxt.test_universal_newlinec                 C   sT   t  }|d |d ddd}tj||dd}tg d}t|d	 | d S )
Nz 1 	2 	3	start 
4	5	6	  
7	8	9.5	r   )rq   rt   r   comment)<i4r  <f4|S8r  	r  )s   start s     r/   r  )r#   r,   rH   rM   r  ra   r   r  r*   r*   r+   test_empty_field_after_tabG  s    

z&TestLoadTxt.test_empty_field_after_tabc                 C   s   t d}ddd}tj||dd\}}}t|jjdk t|jjdk t|jjd	k t|td
dg t|tddg t|tddg d S )NM 21 72
F 35 58r[   r   r   )|S1r  r  r  Tr`   unpackr  r  r     M   Fr  #         R@      M@)r#   rM   r  r   r`   rL  r   ra   r(   r  r   r[   r   r   r*   r*   r+   test_unpack_structuredQ  s    
z"TestLoadTxt.test_unpack_structuredc                 C   s
  t  }|d |d tttj|dd |d tttj|dd |d tj|tddd}tg d	g d
g}t	|| t  }|d |d tj|tddd}t
|jdk |d tj|tddd}t
|jdk |d tj|tddd}t
|jdk t  }|d |d tj|tddd}t
|jdk |d tj|tddd}t
|jdk |d tj|tddd}t
|jdk tjtddF t  }t
tj|ddjdk t
tj|ddjdk W d    n1 s0    Y  d S )Nz1,2,3
4,5,6r   r7   ndminr  r  rW   )r`   r  r"  r   r   z0,1,2r]   r  )r7   z0
1
2)r7   rW   r  r   r   rW   r  )r#   r,   rH   r   r   rM   r  rc   ra   r   r   rY   r   r  r   )r(   r   rq   r[   r  r   r   r*   r*   r+   test_ndmin_keyword\  sH    












zTestLoadTxt.test_ndmin_keywordc                 C   s(   dd }t | }t|t d d S )Nc                  s   s   t dD ]} d|  V  qd S Nr  rv   )r   rz   r*   r*   r+   r     s    z0TestLoadTxt.test_generator_source.<locals>.countr  )rM   r  r   rW  r(   r   r]  r*   r*   r+   test_generator_source  s    z!TestLoadTxt.test_generator_sourcec                 C   s.   t  }|d |d ttdtj| d S )Nz1 2 3
4 5 6
2 3r   3)r#   r,   rH   r   r   rM   r  r   r*   r*   r+   test_bad_line  s    

zTestLoadTxt.test_bad_linec                 C   sH   t  }|d |d tdtfddtfg}tj|d|d d d S )Nz100,foo,200
300,None,400r   rq   )r[   ZS10rt   r  )r  r`   r  )r#   r,   rH   rM   r`   rc   r  )r(   r   r   r*   r*   r+   test_none_as_string  s
    

zTestLoadTxt.test_none_as_stringzANSI_X3.4-1968zWrong preferred encodingc              	   C   s  d}| ddd }t }t|d}|| W d    n1 sL0    Y  t|d"}tj|dtjd}W d    n1 s0    Y  t	|| t|d }tj|ddd}W d    n1 s0    Y  g d	}t	|tj
|dd
 W d    n1 s0    Y  d S )Ns/   5,6,7,Õscarscar
15,2,3,hello
20,2,3,Õscar
r$  rP  r$   r   r   r1  S)s   5,6,7,Õscarscars   15,2,3,hellos   20,2,3,Õscarr_   )r:   r  
splitlinesr   r   r,   rM   r  r)  r   ra   )r(   Zbutf8Zsutf8r   r   rq   r*   r*   r+   test_binary_load  s    (0
.zTestLoadTxt.test_binary_loadc                 C   sJ   t  }|d |d tj|tddd}tg dt}t|| d S )N1,2,3,5
4,5,7,8
2,1,4,5r   r  rW   r`   r  max_rowsr  r  rt  r*   r*   r+   test_max_rows  s    


zTestLoadTxt.test_max_rowsc                 C   s   t  }|d |d tj|tdddd}tg dt}t|| t  }|d |d tj|tdddd}tg dg d	gt}t|| d S )
Nz comments
1,2,3,5
4,5,7,8
2,1,4,5r   r  rW   r`   r  r  r1  r  comment
1,2,3,5
4,5,7,8
2,1,4,5r]   r^   r   r  r  r  rt  r*   r*   r+   test_max_rows_with_skiprows  s     






z'TestLoadTxt.test_max_rows_with_skiprowsc                 C   s|   t  }|d |d tj|tddd}tg dg dgt}t|| tj|tdd}tg d	t}t|| d S )
Nr/  r   r  r]   r0  r  r5  r  r]   rW   r^   r   r  rt  r*   r*   r+   $test_max_rows_with_read_continuation  s    



z0TestLoadTxt.test_max_rows_with_read_continuationc                 C   sZ   t  }|d |d tj|tdddd}tg dg dg d	gt}t|| d S )
Nr4  r   r  rW   r   r3  r  r5  r7  r  rt  r*   r*   r+   test_max_rows_larger  s    


z TestLoadTxt.test_max_rows_largerskipr   rW   )zignored
1,2
r   3,4
)Zignored1,2r$   3,4zignored
1,2

3,4r   )z-1,0
r;  r   r<  )z-1,0r=  r$   r>  z-1,0
1,2

3,4c              	   C   s  t jtdd|  dL tj|t|dd| d}t|ddgdd	gdd
gg|d   W d    n1 sj0    Y  t|tr|	d t
 ^ t
dt t t( tj|t|dd| d W d    n1 s0    Y  W d    n1 s0    Y  d S )NzInput line 3.*max_rows=r7   r   r  )r`   r  r  r1  r  r   rW   r]   r^   error)r   r  r   rM   r  rc   r   rK   r   rH   r   r   simplefilterr   )r(   r:  r   r]  r*   r*   r+   test_max_rows_empty_lines  s    
B


z%TestLoadTxt.test_max_rows_empty_linesN);r2   r3   r4   staticmethodrM   r  rY  r|  r}  ru   rd   rh   r  r  r  r  r  r   r   r   r   rI   implementationversionr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r   r$  r(  r*  r+  localegetpreferredencodingr.  r2  r6  r8  r9  r   r   rA  r*   r*   r*   r+   rx    s|   
	
			
E		
		




*
	






	rx  c                   @   sN   e Zd Zdd Zdd Zdd Zejde	e
gdd	 Zd
d Zdd ZdS )Testfromregexc                 C   sV   t  }|d |d dtjfdg}t|d|}tjg d|d}t|| d S )Nz1.312 foo
1.534 bar
4.444 quxr   numvalZS3z([0-9.]+)\s+(...)))ˡE?r   g%C?r   g-@quxr_   r#   r,   rH   rM   float64	fromregexra   r   r  r*   r*   r+   ru     s    


zTestfromregex.test_recordc                 C   sV   t  }|d |d dtjfdg}t|d|}tjg d|d}t|| d S )N1312 foo
1534 bar
4444 quxr   rH  rI  z(\d+)\s+(...)))   r   )  r   )\  rN  r_   )r#   r,   rH   rM   r  rQ  ra   r   r  r*   r*   r+   test_record_2  s    


zTestfromregex.test_record_2c                 C   sT   t  }|d |d dtjfg}t|d|}tjg d|d}t|| d S )NrR  r   rH  z(\d+)\s+...))rS  )rT  )rU  r_   rO  r  r*   r*   r+   test_record_3  s    

zTestfromregex.test_record_3	path_typec           
   	   C   s   d}t  }||}t|d"}|d| d  W d    n1 sF0    Y  dtjfdg}tj|d|dd	}tjd
d|d fddg|d}t|| t	
dt	j}	tj||	|dd	}t|| W d    n1 s0    Y  d S )Nr#  r   s	   1.312 foos    
1.534 bar
4.444 quxrH  )rJ  ZU4z(?u)([0-9.]+)\s+(\w+)r$  rU  rK  r   rL  rM  r_   z([0-9.]+)\s+(\w+))r   r   r,   rM   rP  rQ  ra   r:   r   r  compileUNICODE)
r(   rX  r*  Zstr_pathr   r   r   rq   r[   regexpr*   r*   r+   test_record_unicode  s     0
z!Testfromregex.test_record_unicodec                 C   sL   t d}td}dtjfg}tjg d|d}t|||}t|| d S )N   (\d)   123rH  r   r_   )r  rY  r   rM   rP  ra   rQ  r   )r(   r[  r   r   r[   rq   r*   r*   r+   test_compiled_bytes-  s    
z!Testfromregex.test_compiled_bytesc                 C   sV   t d}td}tjtdd" tj||tjd W d    n1 sH0    Y  d S )Nr]  r^  zstructured datatyper   r_   )	r  rY  r   r   r   r  rM   rQ  rP  )r(   r[  r   r*   r*   r+   test_bad_dtype_not_structured5  s    
z+Testfromregex.test_bad_dtype_not_structuredN)r2   r3   r4   ru   rV  rW  r   r   r   rL  r   r\  r_  r`  r*   r*   r*   r+   rG    s   

rG  c                   @   s  e Zd ZeejZdd Zdd Zdd Z	dd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Ze j!"d3d4d5 Z#d6d7 Z$d8d9 Z%d:d; Z&d<d= Z'd>d? Z(d@dA Z)dBdC Z*dDdE Z+dFdG Z,dHdI Z-dJdK Z.dLdM Z/dNdO Z0dPdQ Z1dRdS Z2dTdU Z3dVdW Z4dXdY Z5dZd[ Z6d\d] Z7d^d_ Z8d`da Z9dbdc Z:ddde Z;dfdg Z<dhdi Z=djdk Z>dldm Z?dndo Z@dpdq ZAdrds ZBdtdu ZCdvdw ZDdxdy ZEdzd{ ZFd|d} ZGd~d ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOe j!"ddd ZPe j!"d3dd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[e j!\dg de]dddZ^dS )TestFromTxtc                 C   s   t d}tj|dtjfdtjfgd}tjddgddgd}t|| t d	}d
dd}tjddg|d}tj||d}t|| d S )Nr~  rq   rt   r_   rn   ro   rp   rs   zM 64.0 75.0
F 25.0 60.0r  r  r  r  r  )r#   rM   
genfromtxtr  ra   r   )r(   r   r  r  
descriptorr*   r*   r+   ru   B  s    

zTestFromTxt.test_recordc                 C   sz   t d}tjddgddggtd}tj|td}t|| |d tjddgddggtd}tj|td}t|| d S )Nr~  rW   r]   r7   r^   r_   r   )	r#   rM   ra   rc   rb  r   rH   rb   r  )r(   r   r  r  r*   r*   r+   rd   Q  s    

zTestFromTxt.test_arrayc                 C   sV   t g dt}td}t j|td}t|| td}t j|tdd}t|| d S )Nrg   r  r_   r  r  r  )rM   ra   rc   r#   rb  r   r(   r  r   r  r*   r*   r+   rh   ]  s    
zTestFromTxt.test_1Dc                 C   s\   t g dt}td}t j|tddd}t|| td}t j|tddd}t|| d S )Nr  r  r  r  r  z1,2,3,5# comment
)rM   ra   rc   r#   rb  r   rd  r*   r*   r+   test_commentsi  s    
zTestFromTxt.test_commentsc                 C   sp   t g d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 )	Nr  r  r  r  skip_headerrW   r  r  )rM   ra   rc   dictr#   rb  r   r  )r(   r  rU   r   r  r*   r*   r+   r  u  s    
zTestFromTxt.test_skiprowsc                 C   s   dd t ddD }|d |dd t dD  d|d	< td
dddd}tjtd|fi |}tjdd t dD dd dD d}t	|| d S )Nc                 S   s   g | ]}d | qS )z# %ir*   ry   r*   r*   r+   r.     r/   z0TestFromTxt.test_skip_footer.<locals>.<listcomp>rW   r   zA, B, Cc                 S   s   g | ]}d |||f qS )z%i,%3.1f,%03sr*   ry   r*   r*   r+   r.     r/   3   z99,99r  r  Tr   r  )r  r  rf  skip_footerr   c                 S   s"   g | ]}d | d | d | fqS )r;  r*   ry   r*   r*   r+   r.     r/   )   c                 S   s   g | ]}|t fqS r*   rx   r-   _r*   r*   r+   r.     r/   ABCr_   )
r   r   r  rg  rM   rb  r#   r   ra   r   )r(   r   rU   r  ctrlr*   r*   r+   test_skip_footer  s    
zTestFromTxt.test_skip_footerc              
   C   s>  t   }|t d}tttjt|dd tjt|ddd}t|t	ddgddgddgd	d	gg tjt|d
d}t|t	ddgddgddgd	d	gg d}tjt|ddd}t|t	ddgddgd	d	gddgg tjt|d
dd}t|t	ddgddgd	d	gg W d    n1 s00    Y  d S )Nz1 1
2 2
3 3
4 4
5  
6  
7  
rW   )ri  F)ri  invalid_raiser   r  r  r  r7   z1 1
2  
3 3
4 4
5  
6 6
7 7
r  )
r   r   r   r   r   rM   rb  r#   r   ra   )r(   r   Zbasestrr[   r*   r*   r+   test_skip_footer_with_invalid  s*    


((
(
z)TestFromTxt.test_skip_footer_with_invalidc                 C   s   t d}tjddB}tddt tj|d ddd}t|d jtu  W d    n1 s\0    Y  t	d	d
gt	ddgt	ddgd}t
|d |d  t
|d |d  t
|d |d  d S )Nz)gender age weight
M 64.0 75.0
F 25.0 60.0Tr|   r~   r$   r9   )r`   r  r(  r   r  r  r  r  r  r  r  r  r  r  )r#   r   r   r   r
   rM   rb  r   categoryra   r   r(   r   r!  r  r  r*   r*   r+   test_header  s    
0zTestFromTxt.test_headerc                 C   s   t d}tjdd@}tddt tj|d dd}t|d jtu  W d    n1 sZ0    Y  t	d	d
gt	ddgt	ddgt	ddgt	ddgg}t
|jjg d t|D ]\}}t
|d|  | qd S )Nz*A 64 75.0 3+4j True
BCD 25 60.0 5+6j FalseTr|   r~   r$   r9   rl  r      As   BCD@      r  r  y      @      @y      @      @F)f0f1f2Zf3r   zf%i)r#   r   r   r   r
   rM   rb  r   rr  ra   r   r`   r  r   )r(   r   r!  r  r  rz   rn  r*   r*   r+   test_auto_dtype  s    0zTestFromTxt.test_auto_dtypec                 C   s:   t d}tj|d d}tg dg dg}t|| d S )Nz1 2 3 4
5 6 7 8
r_   rg   )r   r   r  r  r#   rM   rb  ra   r   r(   r   r  r  r*   r*   r+   test_auto_dtype_uniform  s    z#TestFromTxt.test_auto_dtype_uniformc                 C   sZ   t d}tdtfddtfdtfgfg}tj||dd}tjdd	g|d
}t|| d S )Nr  rq   rt   r   r)   r  r  r  r  r_   )r#   rM   r`   rc   rb   rb  ra   r   r(   r   Z
fancydtyper  r  r*   r*   r+   r    s
    "zTestFromTxt.test_fancy_dtypec                 C   sN   ddd}t d}d}tj|||d}||d< tjdd	g|d
}t|| d S )N)gr[   r!  r  r  s   M 64.0 75.0
F 25.0 60.0r  r`   r  r  r  r  r_   r|  )r(   rc  r   r  r  r  r*   r*   r+   test_names_overwrite  s    z TestFromTxt.test_names_overwritec                 C   s<   t jtdd td W d    n1 s.0    Y  d S )Nzfname must be a string,r   {   )r   r   r  rM   rb  r`  r*   r*   r+   test_bad_fname  s    zTestFromTxt.test_bad_fnamec                 C   s  t d}tjddB}tddt tj|dd dd}t|d jtu  W d    n1 s\0    Y  tj	g d	d
dt
fdtfgd}t|| t d}tjddB}tddt tj|dd dd}t|d jtu  W d    n1 s0    Y  t|| d S )NzN
#gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        Tr|   r~   r$   r9   )r  r`   r(  r   ))r  r  gfffffR@)r  r  g
ףp=*M@)r  r  g=
ףp5@)r  r  r  r  r_   sO   
# gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        r#   r   r   r   r
   rM   rb  r   rr  ra   rc   rb   r   )r(   r   r!  r  rn  r*   r*   r+   test_commented_header  s&    
0


0z!TestFromTxt.test_commented_headerc                 C   sJ   t d}tj|ttfd dd}tjddgdtfdtfgd}t|| d S )	Nzcol1 col2
 1 2
 3 4T)r`   r  r  rn   ro   Zcol1Zcol2r_   r#   rM   rb  rc   ra   r   r}  r*   r*   r+   test_names_and_comments_none  s    z(TestFromTxt.test_names_and_comments_nonec              
   C   s   t  }tj|d}t|d}|d  W d    n1 sD0    Y  t H t	t
 tj|dd W d    n1 s0    Y  W d    n1 s0    Y  W d    n1 s0    Y  d S )Nr%  r      ϖasciirU  )r   rR   r   r   r   r,   rh  r   r   r   UnicodeDecodeErrorrM   rb  )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D}tddt tj|ddd dd}t|d	 jtu  W d    n1 s^0    Y  tj	d
ddt
fdtfgd}t|| d S )NA B C D
 aaaa 121 45 9.1Tr|   r~   r$   ACDr9   )r  r  r`   r(  r   )r  -   333333"@r  |S4r  r  r_   r  rs  r*   r*   r+   test_autonames_and_usecols  s    0z&TestFromTxt.test_autonames_and_usecolsc                 C   sJ   t d}tj|tdddd idd}tdd	gd
dggt}t|| d S )Nr  r  r7   c                 S   s   t | pdS r  r  r  r*   r*   r+   rr  &  r/   z:TestFromTxt.test_converters_with_usecols.<locals>.<lambda>r  r  r]   r  r  r  r  r}  r*   r*   r+   r  "  s    

z(TestFromTxt.test_converters_with_usecolsc              
   C   s   t d}tjddN}tddt tj|ddd ddd	d
 id}t|d jtu  W d    n1 sh0    Y  tj	dddt
fdtfgd}t|| d S )Nr  Tr|   r~   r$   r  r9   r  c                 S   s   dt |  S )Nr]   r  r  r*   r*   r+   rr  2  r/   zDTestFromTxt.test_converters_with_usecols_and_names.<locals>.<lambda>)r  r  r`   r(  rs  r   )r  Z   r  r  r  r_   r  rs  r*   r*   r+   &test_converters_with_usecols_and_names+  s    

0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)r<   r  r*   r*   r+   rr  ;  r/   z9TestFromTxt.test_converters_cornercases.<locals>.<lambda>2009-02-03 12:00:00Z, 72214.0r  r  r  r`   r  rs    r]   r7       `@r_   )r#   rM   rb  ra   r   Zobject_rb   r   r(   	converterr   r  r  r*   r*   r+   test_converters_cornercases8  s    
z'TestFromTxt.test_converters_cornercasesc                 C   s\   ddd i}t d}tj|dd ddg|d}tjtdd	d
dfddtfgd}t|| d S )Nr  c                 S   s   t t| dS r  )rM   Z
datetime64r<   r  r*   r*   r+   rr  F  r/   z:TestFromTxt.test_converters_cornercases2.<locals>.<lambda>r  r  r  r  r  r]   r7   r  )r  zdatetime64[us]r_   )r#   rM   rb  ra   r   rb   r   r  r*   r*   r+   test_converters_cornercases2C  s    

z(TestFromTxt.test_converters_cornercases2c                 C   sb   t d}tj|dddd id}t|ddg |d tj|dd	d
d id}t|ddg d S )Nz1 21
  3 42
r  r   c                 S   s
   t | dS r  r  r  r*   r*   r+   rr  R  r/   z3TestFromTxt.test_unused_converter.<locals>.<lambda>r  r  r  rW   c                 S   s
   t | dS r  r  r  r*   r*   r+   rr  W  r/   r  r  )r#   rM   rb  r   rH   r(   r   r  r*   r*   r+   r  N  s    


z!TestFromTxt.test_unused_converterc                 C   sH   dd }dd }t d}t||ddd dd}tttj|fi | d S )	Nc                 S   s4   t d|  v r|  d p0d|  vr.|  p0dS )N   rr  rg  rb   lowerr  r  rq  r*   r*   r+   rr  [  s   z4TestFromTxt.test_invalid_converter.<locals>.<lambda>c                 S   s4   t d|  v r|  d p0d|  vr.|  p0dS )N   %r   rg  r  rq  r*   r*   r+   rr  ]  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.55rN  r  r9   )rs  r  r`   r(  )r#   rg  r   r   rM   rb  )r(   Z
strip_randZ	strip_perr)   rU   r*   r*   r+   test_invalid_converterZ  s    
z"TestFromTxt.test_invalid_converterc                 C   sH   t d}dd }tj|dd|id}tddgd	d
gg}t|| d S )Nz	q1,2
q3,4c                 S   s   t | dd  S ry  rx   r  r*   r*   r+   rr  j  r/   z;TestFromTxt.test_tricky_converter_bug1666.<locals>.<lambda>r  r   )r  rs  r   r  r  r  r|  )r(   r)   Zcnvr  r  r*   r*   r+   test_tricky_converter_bug1666g  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 g d
}t|| d S )Nz2009; 23; 46r  r   r  )Z2009      7@.   )rx  r  ry  rz  r_   )g     d@r  r  )rM   rb  r#   rb   r9   ra   r   )r(   dstrr  r  r*   r*   r+   test_dtype_with_converterso  s    




z&TestFromTxt.test_dtype_with_converters(ignore:.*recfromcsv.*:DeprecationWarningc              	      s   d}ddddd g d}t t t  fdd	d
}tt||dd |dd}tjjg d|d}t|| g d}tt||ddd |dd}tjjg d|d}t|| d S )Nz!1,5,-1,1:1
2,8,-1,1:n
3,3,-2,m:n
r   rW   r]   r7   )z1:1z1:nzm:1zm:n)e1rr   e2rr   )Ze3i2r   i1c                    s    |    S r%   rp  )rl   Zdmapr*   r+   rr    r/   zDTestFromTxt.test_dtype_with_converters_and_usecols.<locals>.<lambda>)r   rW   r]   r7   r  r9   )r`   r  r  rs  r(  ))rW   r   r  r   )r]   r  r  rW   )r7   r7   r7   r_   )r  r  r  )r   rW   r7   )r`   r  r  r  rs  r(  ))rW   r   r   )r]   r  rW   )r7   r7   r7   )rc   r   r#   rM   Zrecra   r   )r(   r  Zdtypconvr  r  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    n1 s0    Y  dt fdtfdg fg}tt	d& tjt|d||d}W d    n1 s0    Y  d S )Nr  r  r  c                 S   s   t |  dS r  r  r  r*   r*   r+   rr    r/   z4TestFromTxt.test_dtype_with_object.<locals>.<lambda>rW   r  r  r  r]   r  r  r_   nestzNested fields.* not supported.*)
rc   re   rM   rb  r#   ra   r   r   r   NotImplementedErrorr  r*   r*   r+   r    s4    
$z"TestFromTxt.test_dtype_with_objectc                 C   sH   t jtdtd}|d dks"J t jtdtd}|d dksDJ d S )N1r_   r*      1strings   string)rM   rb  r#   re   )r(   parsedr*   r*   r+   #test_dtype_with_object_no_converter  s    z/TestFromTxt.test_dtype_with_object_no_converterc                 C   sH   t d}tj|dd tddtid}tjdgddtfgd	}t|| d S )
Nzskip,skip,2001-01-01,1.0,skipr  rN  r]   )r  r  r`   r  rs  )
2001-01-01r   )r$   |S10r$   r_   )r#   rM   rb  rb   r9   ra   r   r}  r*   r*   r+   'test_userconverters_with_explicit_dtype  s    
z3TestFromTxt.test_userconverters_with_explicit_dtypec              
   C   s   d}t  h}t|d"}|d| d  W d    n1 s>0    Y  tj|dd tddtidd	}W d    n1 sx0    Y  tjd
|d dfgddtfgd}t	|| d S )Nr#  r   s   skip,skip,2001-01-01s	   ,1.0,skipr  rN  r]   r$  )r  r  r`   r  rs  r(  r  r   )r$   z|U11r$   r_   )
r   r   r,   rM   rb  rb   rL  ra   r:   r   )r(   r*  r   r   r  r  r*   r*   r+   ,test_utf8_userconverters_with_explicit_dtype  s    0$
z8TestFromTxt.test_utf8_userconverters_with_explicit_dtypec                 C   s6   t d}t|}tg dg dg}t|| d S )Nz1  2  3  4   5
6  7  8  9  10)r   r  r  r        @)r        @r        "@g      $@r|  r}  r*   r*   r+   test_spacedelimiter  s    

zTestFromTxt.test_spacedelimiterc                 C   s@   d}t jt|dd}t g dg dg dg}t|| d S )Nz  1  2  3
  4  5 67
890123  4r7   )r  r   )r^   r   C   )iz  r  r^   rM   rb  r#   ra   r   r}  r*   r*   r+   test_integer_delimiter  s    z"TestFromTxt.test_integer_delimiterc                 C   s@   t d}tj|tdddd id}tg dt}t|| d S )Nr  r  r7   c                 S   s   t | pdS r  r  r  r*   r*   r+   rr    r/   z*TestFromTxt.test_missing.<locals>.<lambda>r  r  r  r}  r*   r*   r+   r    s    

zTestFromTxt.test_missingc                 C   sh   d}t jt|ddd}t dt jdt jfdt jdfg}t jg d	td
}t|j| t|j| d S )Nz1	2	3
	2	
1		3r  T)r  usemaskr   r]   rW   r7   )r   r   r   rW   r   rW   r   rW   r   r_   )	rM   rb  r#   ra   nanboolr   r   mask)r(   r  r  Zctrl_dZctrl_mr*   r*   r+   test_missing_with_tabs  s    "z"TestFromTxt.test_missing_with_tabsc                 C   s   t ddgddggt}t }t || |d t j|tdd}t||d d df  t g dg d	gt}t }t || |d t j|td
d}t||d d dd f  |d t j|tt ddgd}t||d d dd f  d S )NrW   r]   r7   r^   r   r  r  r   r  rn   )rM   ra   rb   r#   r   rH   rb  r   rd  r*   r*   r+   r    s    


zTestFromTxt.test_usecolsc                 C   sB   d}t jt|ddd}t jddgdd d	D d
}t|| d S )N1 2 3
4 5 6a, b, cza, c)r  r  r  r^   r   c                 S   s   g | ]}|t fqS r*   rx   rk  r*   r*   r+   r.     r/   z3TestFromTxt.test_usecols_as_css.<locals>.<listcomp>acr_   r  r(   r   r  rn  r*   r*   r+   test_usecols_as_css  s    
zTestFromTxt.test_usecols_as_cssc                 C   sZ   t d}ddg}ddg}tj|dtt||d}t|d dd	g t|d d
dg d S )NzJOE 70.1 25.3
BOB 60.5 27.9r  r  r  r  r  r  r  r  r  r  )r#   rM   rb  r   r   r   )r(   r   r  r  r  r*   r*   r+   "test_usecols_with_structured_dtype   s    z.TestFromTxt.test_usecols_with_structured_dtypec                 C   s*   t jtddd}t|t ddg d S )Ns   1 2 3
4 5 6r   r  r   r  )rM   rb  r#   r   ra   )r(   r  r*   r*   r+   test_usecols_with_integer
  s    z%TestFromTxt.test_usecols_with_integerc                 C   sx   t jddgdtfdtfgd}d}tdd}t jt|fd	d
i|}t|| t jt|fd	di|}t|| d S )Nr  r  r[   r   r_   r  r  )r  r  r   r  )r[   r   )rM   ra   rb   rg  rb  r#   r   )r(   rn  r   rU   r  r*   r*   r+   test_usecols_with_named_columns  s    

z+TestFromTxt.test_usecols_with_named_columnsc                 C   st   t  Z}|jdd t }t|}t|tg  tj|dd}t|tg  W d    n1 sf0    Y  d S )Nzgenfromtxt: Empty input file:)messagerW   )rf  )r   r   r#   rM   rb  r   ra   )r(   r   r   r  r*   r*   r+   r    s    
zTestFromTxt.test_empty_filec                 C   s\   t d}tdtfddtfdtfgfg}tj||ddd}tjd	d
g|d}t|| d S )Nr  rq   rt   r   r)   r  T)r`   r  r  r  r  r_   )	r#   rM   r`   rc   rb   rb  mara   r   r  r*   r*   r+   test_fancy_dtype_alt&  s
    "z TestFromTxt.test_fancy_dtype_altc                 C   sh   t d}tddtfdtfdtdfg}tj||d}tjdd	d
g dg dgfg|d}t|| d S r  )r#   rM   r`   rb   rc   rb  ra   r   r  r*   r*   r+   r  .  s    zTestFromTxt.test_shaped_dtypec                 C   s   t d}tdddd}tj|fd dd|}tjddgd	d
gdtfdtfgd}t|| t|j|j |	d tj|fddi|}tjddgd	d
gdt
fdt
fgd}t|| t|j|j d S )NA,B
0,1
2,N/Ar  N/ATr  missing_valuesr  r`   r  r#  r]   r  FFFTr  Br  r`   r   r  )r#   rg  rM   rb  r  ra   rc   r   r  rH   rb   r(   r   rU   r  r  r*   r*   r+   test_withmissing7  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g d
g d|d}t	|| ||d< tjt|fdddddd|}tjg d
g d|d}t	|| tjt|fdddddd|}tjg d
g d|d}t	|| d S )Nz4A, B, C
0, 0., 0j
1, N/A, 1j
-9, 2.2, N/A
3, -99, 3jr  T)r`   r  r  r  r  r  r  r  ))r   rg  y                )rW   r  r  )rE  g@            8)r7   y              @)r  r  )r   r   rW   r  r  r`   rE  r  r  r   rW   r]   )r  r  )r  r  r  r  )r   r  r  )
rg  rc   rb   r   rM   rb  r#   r  ra   r   )r(   r   Z
basekwargsZmdtyper  r  r*   r*   r+   test_user_missing_valuesI  sB    





z$TestFromTxt.test_user_missing_valuesc              	   C   s8  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i |}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 g dg dg}t|| t jt|dtddd}t g dg d g}t|| d S )!N)r   r7   )r^   r  r[   r   r_   zN/A, 2, 3
4, ,???r  za,b,cr  r   z???)r   r   r]   r   r  )r  r`   r  r  filling_values)r   r]   r7   )r^   r   r  c                 S   s   g | ]}|t fqS r*   r  rk  r*   r*   r+   r.   t  r/   z8TestFromTxt.test_user_filling_values.<locals>.<listcomp>abcr  r  c                 S   s   g | ]}|t fqS r*   r  rk  r*   r*   r+   r.   x  r/   r  z1,2,*,4
5,*,7,8
*)r  r`   r  r  )rW   r]   r   r^   )r   r   r  r  r  )rW   r]   r  r^   )r   r  r  r  )rM   ra   rc   rg  rb  r#   r   )r(   rn  r   rU   r  Zdata2r*   r*   r+   test_user_filling_valuesi  s6    





z$TestFromTxt.test_user_filling_valuesc                 C   s^   t d}tj|d ddddd}tjddgdd	gd
tfdtfgd}t|| t|j|j d S )NzA,B
0,1.5
2,-999.00r  z-999.0T)r`   r  r  r  r  )r   r  )r]   g      r  r  r  r  r  )	r#   rM   rb  r  ra   rc   rb   r   r  r}  r*   r*   r+   test_withmissing_float  s    


z"TestFromTxt.test_withmissing_floatc                 C   sN   t d}tj|d ddd}tjg dg dgg dg dgd}t|| d S )	Nz1 2 3
4 5 6
2,5Tr`   r  r  r   r   r  )r  )r#   rM   rb  r  ra   r   r}  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
r  Tr  r   )r   r   r   r  rx  ry  rz  r  )r#   rM   rb  r  ra   r  rc   r   r}  r*   r*   r+   test_with_masked_column_various  s    
z+TestFromTxt.test_with_masked_column_variousc                    s   dgd }t dD ]}d|d| < q|dd td|td	d d
d  fdd}tt|}tt|d t|t	j
ddd dD d d ttt	jd	d
d d S )N1, 1, 1, 1, 1r=  r   2, 2, 2, 2 2r  r   a, b, c, d, er   r  Tr  r`   r  c                      s   t jfddi S )Nrp  FrM   rb  r*   rU   mdatar*   r+   r     s    z)TestFromTxt.test_invalid_raise.<locals>.fr  c                 S   s   g | ]}|t fqS r*   r  rk  r*   r*   r+   r.     r/   z2TestFromTxt.test_invalid_raise.<locals>.<listcomp>abcder_   r  r  )r   insertr#   r   rg  r   r   r   lenrM   r   rH   r   r   rb  )r(   r   rz   r   mtestr*   r  r+   test_invalid_raise  s    



zTestFromTxt.test_invalid_raisec                    s   dgd }t dD ]}d|d| < q|dd td|td	d d
dd  fdd}tt|}tt|d t|t	j
ddd dD d d t	jfddi }tt|d t	j
ddd dD d}d|dd t dD < t|| d S )Nr  r=  r   r  r  r   r  r   r  TF)r  r`   r  rp  c                      s   t jfddi S )Nr  )r   r^   r  r*   r  r*   r+   r     s    z6TestFromTxt.test_invalid_raise_with_usecols.<locals>.fr  c                 S   s   g | ]}|t fqS r*   r  rk  r*   r*   r+   r.     r/   z?TestFromTxt.test_invalid_raise_with_usecols.<locals>.<listcomp>Zaer_   r  r#  c                 S   s   g | ]}|t fqS r*   r  rk  r*   r*   r+   r.     r/   abr
  c                 S   s   g | ]}d | qS )r  r*   rk  r*   r*   r+   r.     r/   )r   r  r#   r   rg  r   r   r   r  rM   r   rH   rb  )r(   r   rz   r   r  r  r*   r  r+   test_invalid_raise_with_usecols  s$    


z+TestFromTxt.test_invalid_raise_with_usecolsc                 C   sX   dgd }t d|}ddd i}td|dd	 d
D dd}tttj|fi | d S )Nz1, 1, 1, 1, -1.1r=  r   r^   c                 S   s   d|    S )Nz(%s)rp  rq  r*   r*   r+   rr    r/   z5TestFromTxt.test_inconsistent_dtype.<locals>.<lambda>r  c                 S   s   g | ]}|t fqS r*   r  rk  r*   r*   r+   r.     r/   z7TestFromTxt.test_inconsistent_dtype.<locals>.<listcomp>r  r9   )r  rs  r`   r(  )r#   r   rg  r   r   rM   rb  )r(   r   r   rs  rU   r*   r*   r+   test_inconsistent_dtype  s    
z#TestFromTxt.test_inconsistent_dtypec                 C   sL   d}t jt|dd dd}t jddgdtfdtfd	tfgd
}t|| d S )N0, 1, 2.3
4, 5, 6.7r  f%02ir  r`   Z
defaultfmtr   rW   ffffff@)r^   r   @Zf00Zf01Zf02r_   )rM   rb  r#   ra   rc   rb   r   r(   r   r  rn  r*   r*   r+   test_default_field_format  s    

z%TestFromTxt.test_default_field_formatc                 C   sB   d}t jt|dtdd}t jg dg dgtd}t|| d S )Nr
  r  r  r  rg  r   r  r  r  r  r_   rM   rb  r#   rb   ra   r   r  r*   r*   r+   test_single_dtype_wo_names  s    
z&TestFromTxt.test_single_dtype_wo_namesc                 C   sD   d}t jt|dtdd}t jddgdd d	D d
}t|| d S )Nr
  r  r  r  r  r  c                 S   s   g | ]}|t fqS r*   rx   rk  r*   r*   r+   r.     r/   zBTestFromTxt.test_single_dtype_w_explicit_names.<locals>.<listcomp>r  r_   r  r  r*   r*   r+   "test_single_dtype_w_explicit_names  s    

z.TestFromTxt.test_single_dtype_w_explicit_namesc                 C   sD   d}t jt|dtdd}t jddgdd d	D d
}t|| d S )Nza, b, c
0, 1, 2.3
4, 5, 6.7r  Tr  r  r  c                 S   s   g | ]}|t fqS r*   rx   rk  r*   r*   r+   r.     r/   zBTestFromTxt.test_single_dtype_w_implicit_names.<locals>.<listcomp>r  r_   r  r  r*   r*   r+   "test_single_dtype_w_implicit_names  s    

z.TestFromTxt.test_single_dtype_w_implicit_namesc                 C   sR   d}t jt|dtttfdd}t jddgdtfdtfd	tfgd
}t|| d S )Nr
  r  zf_%02ir  )r   r   r  )r^   r  r  Zf_00Zf_01Zf_02r_   rM   rb  r#   rc   rb   ra   r   r  r*   r*   r+   test_easy_structured_dtype  s    

z&TestFromTxt.test_easy_structured_dtypec                 C   s&  d}t dd dd}tjddF}tddt tjt|fi |}t|d	 j	tu  W d    n1 sj0    Y  tj
d
gddtfdgd}t|| tjddJ}tddt tjt|fddi|}t|d	 j	tu  W d    n1 s0    Y  tj
dgddtfdgd}t|| d S )Nz01/01/2003  , 1.3,   abcder  r9   )r  r`   r(  Tr|   r~   r$   r   )z01/01/2003  ?z   abcde)rx  z|S12ry  )rz  r  r_   Z	autostrip)z
01/01/2003r  r  )rx  r  )rz  z|S5)rg  r   r   r   r
   rM   rb  r#   r   rr  ra   rb   r   )r(   r   rU   r!  r  rn  r*   r*   r+   test_autostrip  s$    0
0zTestFromTxt.test_autostripc                 C   s   d}t jt|ddd d}dtfdtfdtfg}t jd|d	}t|| t jt|ddd d
d
d}dtfdtfdtfg}t jd|d	}t|| t jt|ddd d
d}dtfdtfdtfg}t jd|d	}t|| d S )NzA.A, B (B), C:C
1, 2, 3.14r  Tr  r  r`   AAB_BCC)rW   r]   gQ	@r_   r$   r  r  r`   Zreplace_spacedeletecharsA.AB (B)C:Cr  r  r`   r!  B_(B)r  r(   r  r  Z
ctrl_dtypern  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  Tr  r  r  r  r   r_   r$   r   r"  r#  r$  r%  r&  )rM   rb  r#   rc   ra   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i |}d S )NzA,,C
0,1,2
3,4,5r  Tr  r  r  c                 S   s   g | ]}|t fqS r*   r  rk  r*   r*   r+   r.   J  r/   z5TestFromTxt.test_incomplete_names.<locals>.<listcomp>)r  rx  r  r_   r`   c                 S   s   g | ]}|t fqS r*   rx   rk  r*   r*   r+   r.   O  r/   )rg  rM   ra   rb  r#   r   r(   r   rU   rn  r  r*   r*   r+   test_incomplete_namesD  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 6r[   r  r   r   rx  ry  r_   r  r  r*   r*   r+   test_names_auto_completionR  s    


z&TestFromTxt.test_names_auto_completionc                 C   s   d}d}t jt|tttfdddd}t|jj| t jt|tttfdddd}t|jj| t jt|tdddd}t|jj| d S )Nz'A,B,C,D,E
0,1,2,3,4
0,1,2,3,4
0,1,2,3,4)r  r  Er  )r   r]   r^   T)r`   r  r  r  )rM   rb  r#   rc   r   r`   r  )r(   r   Z
ctrl_namesr  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i |}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i |}t|| d S )Nz-    A    B   C
    0    1 2.3
   45   67   9.)r   r   r^   Tr  r  )r  r  r  r  r  r  r_   r   )rg  rM   ra   rc   rb   rb  r#   r   r*  r*   r*   r+   test_fixed_width_namesn  s    


z"TestFromTxt.test_fixed_width_namesc                 C   sV   d}t dd dd}tjg dg dg dgtd}tjt|fi |}t|| d S )	Ns   1, 2, 3
1, , 5
0, 6, 
r  r  )r  r`   r  r   )rW   r  r   )r   r   r  r_   )rg  rM   ra   rc   rb  r#   r   r*  r*   r*   r+   test_filling_values}  s
     zTestFromTxt.test_filling_valuesc                 C   s   t jddH}t ddt tjtdd d ddd}t|d	 jtu  W d    n1 sZ0    Y  t	|d
 d t jddH}t ddt tjtdd d ddd}t|d	 jtu  W d    n1 s0    Y  t	|d
 d d S )NTr|   r~   r$   ztest1,testNonetherestofthedatar  r9   r`   r  r  r(  r   rW   s   testNonetherestofthedataztest1, testNonetherestofthedatas    testNonetherestofthedata)
r   r   r   r
   rM   rb  r#   r   rr  r   )r(   r!  r  r*   r*   r+   test_comments_is_none  s     
0
0z!TestFromTxt.test_comments_is_nonec                 C   s  d}d}d| d }|| | }t jddH}t ddt tjt|d d d	d
d}t|d jtu  W d    n1 sz0    Y  t	|d d t	|d d|  t	|d d tjt|d d d	dd}t	|d d t	|d d|
d  t	|d d t jddL}t ddt tjtd| d d d	d
d}t|d jtu  W d    n1 s^0    Y  t	|d d t	|d d|  d S )Ns      norm1,norm2,norm3
   test1,testNonethe   ,test3
Tr|   r~   r$   r  r9   r1  r   )rW   r      test1)rW   rW      testNonethern      test3r6   test1testNonethetest3   0,testNonetherx  ry  )r   r   r   r
   rM   rb  r#   r   rr  r   r:   )r(   r6   normencr)   r!  r  r*   r*   r+   test_latin1  s<    
0
2zTestFromTxt.test_latin1c                 C   s6   d}| j t|d dd}t|t|d  d S rk  )rY  r   r   rM   ra   r:   r  rm  r*   r*   r+   test_binary_decode_autodtype  s    z(TestFromTxt.test_binary_decode_autodtypec                 C   s   d}d}d| d }|| | }t jddH}t ddt tjt|d d d	d
d}t|d jtu  W d    n1 sz0    Y  t	g ddd| dgg dg}t
|| d S )Nr#  r3  r4  r5  Tr|   r~   r$   r  r9   r1  r   )s   norm1s   norm2s   norm3r6  r7  r8  )r   r   r   r
   rM   rb  r#   r   rr  ra   r   )r(   r*  r=  r>  r)   r!  r  ctlr*   r*   r+   test_utf8_byte_encoding  s"    
0z#TestFromTxt.test_utf8_byte_encodingc              	   C   s6  d}t  }t|d&}|d| d d  W d    n1 sD0    Y  tj|d d ddd}tjd	d
|d dgd	d
|d dggtjd}t|| t|d}|d|  W d    n1 s0    Y  tj|d d ddd}t	|d d t	|d d
|d  W d    n1 s(0    Y  d S )Nr#  r   r4  r5  r]   r  r$  r1  r9  r:  r;  r_   r<  rx  r   ry  )
r   r   r,   rM   rb  ra   r:   r)  r   r   )r(   r*  r   r   r  rA  r*   r*   r+   test_utf8_file  s*    
4

,
zTestFromTxt.test_utf8_filec           	   	   C   sX  d}d}zt  }|| W n  ttfy>   td Y n0 t }t|d>}|	d |	d| d  |	d| d	  W d    n1 s0    Y  t
jd
dD}t
ddt tj|d d ddd}t|d jtu  W d    n1 s0    Y  tjg dd|dgdd| dggtjd}t|| W d    n1 sJ0    Y  d S )Nr  u   öüözTSkipping test_utf8_file_nodtype_unicode, unable to encode utf8 in preferred encodingrS  znorm1,norm2,norm3
znorm1,z,norm3
ztest1,testNonethez,test3
Tr|   r~   r$   r  r9   r1  r   )norm1Znorm2norm3rD  rE  r9  r:  r;  r_   )rE  rF  rh  UnicodeErrorImportErrorr   r:  r   r   r,   r   r   r   r
   rM   rb  r   rr  ra   r)  r   )	r(   r*  r6   r(  r   r   r!  r  rA  r*   r*   r+   test_utf8_file_nodtype_unicode  s8    
0
0z*TestFromTxt.test_utf8_file_nodtype_unicode(ignore:.*recfromtxt.*:DeprecationWarningc                 C   s   t d}tdddd}t|fi |}tjddgdtfd	tfgd
}tt|tj t	|| t d}t|fd dd|}t
jddgddgdtfd	tfgd}t	|| t	|j|j t	|jddg d S )NA,B
0,1
2,3r  r  Tr  r#  rN  r  r  r_   r  r  r  r  r  r  r   r]   )r#   rg  r   rM   ra   rc   r   rK   recarrayr   r  r  r  r  r*   r*   r+   test_recfromtxt	  s"    



zTestFromTxt.test_recfromtxtc                 C   s  t d}tddddd}t|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|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|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|d|d}tjddg|d}tt|tj t	|| t d}t|ddd id}tjddgdtdffgd}t	|j|j t	|| d S ) NrJ  r  Tr9   )r  r  case_sensitiver(  r`   r#  rN  r  r  r_   r  r  r  r  r  r  r   r]   )r  r[   r   )r  r`   zcolor
"red"
"blue"c                 S   s
   |  dS )N")r  rq  r*   r*   r+   rr  <	  r/   z-TestFromTxt.test_recfromcsv.<locals>.<lambda>)rs  )red)bluecolorr^   )r#   rg  r   rM   ra   rc   r   rK   rK  r   r  r  r  rb   rL  r`   )r(   r   rU   r  r  r`   r*   r*   r+   test_recfromcsv	  sN    







zTestFromTxt.test_recfromcsvc                 C   s  d}t |}tj|dd}t|}t|ddgddgddgg t|d	d
gddgg tttjt |dd d}tjt |dd}tddgddgg}t|| tttjt |ddd tttjt |dd t }|t	 tjt |ddd}tddgddgddgddgg}t|| tjt |ddd}tddgddgddgddgg}t|| W d    n1 sx0    Y  d}t |}tj|dddd}tjg d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
r7   )r1  rW   r]   r^   r   r   r  r  r  r  r   z1 1
2 2
0 
3 3
4 4
5  
6  
7  
r   r  )ri  r1  F)r1  rp  r  r  z"a b
#c d
1 1
2 2
#0 
3 3
4 4
5  5
T)rf  r1  r  ))r   r   )r  r  )r  r  )r   <f8)r  rS  r_   )r1  r`   )r  r  )r  r  )r#   rM   rb  r   r   r   ra   r   r   r   r`   )r(   r   r  Za1Za2r  r  r   r*   r*   r+   r2  A	  sF    


"
"*


zTestFromTxt.test_max_rowsc              
   C   s   t dd}d}|D ]~}d| d }t N}t|d}|| W d    n1 sZ0    Y  t |}W d    n1 s0    Y  t|| qd S )Nr   rN  rO  rQ  rR  r!  )rM   rW  rX  r   r   r,   rb  r   )r(   r  r[  r\  r   rF   r   r]  r*   r*   r+   test_gft_using_filenamew	  s    ((z#TestFromTxt.test_gft_using_filenamec           	   
   C   s   t dd}d}|D ]}d| d }t }tj|dd}|t| W d    n1 s`0    Y  tdd	T}t	|d}|| W d    n1 s0    Y  t
t || W d    q1 s0    Y  qd S )
Nr   rN  rO  rQ  rR  r!  fileobjrT  z.gz2r   )rM   rW  rX  r   r_  GzipFiler,   r"   r   r   r   rb  )	r(   rZ  r[  r\  r   r)   r  rF   r   r*   r*   r+   test_gft_from_gzip	  s    ,(zTestFromTxt.test_gft_from_gzipc                 C   s(   dd }t | }t|t d d S )Nc                  s   s    t dD ]} td|  V  qd S r%  )r   r"   r&  r*   r*   r+   r   	  s    z3TestFromTxt.test_gft_using_generator.<locals>.countr  )rM   rb  r   rW  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g d t|jd tk t|jd tjk t|jd tj	k t
|d d t|d d t|d d	 d S )
Nz%73786976294838206464 17179869184 1024r_   )rx  ry  rz  rx  ry  rz  g      Dl        i   )r#   rM   rb  r   r`   r  r   rb   r  int_r   r  r*   r*   r+   test_auto_dtype_largeint	  s    z$TestFromTxt.test_auto_dtype_largeintc                 C   s^   t d}tj|ddd\}}}t|tg d t|tg d t|tg d d S )Nz1,2,3
4,5,6
7,8,9
0.0,1.0,2.0r  T)r  r  )r   r  r  rg  )r  r  r  r   )r  r  r  r  )r#   rM   r  r   ra   )r(   r  r[   r   r   r*   r*   r+   test_unpack_float_data	  s
    z"TestFromTxt.test_unpack_float_datac                 C   s   t d}ddd}tj||dd\}}}t|jtd t|jtd t|jtd	 t|td
dg t|tddg t|tddg d S )Nr  r  r  r  Tr  r  rr   r   r  r  r  r  r  r  )r#   rM   rb  r   r`   r   ra   r  r*   r*   r+   r   	  s    
z"TestFromTxt.test_unpack_structuredc                 C   sr   t d}tddgtddgtddgf}tj|d dd	d
}t||D ] \}}t|| t|j|j qLd S )NzM 21 72.
F 35 58.r  r  r  r  r  r  Tzutf-8)r`   r  r(  )r#   rM   ra   rb  r   r   r   r`   )r(   r  expectedr  rO   resultr*   r*   r+   test_unpack_auto_dtype	  s    (
z"TestFromTxt.test_unpack_auto_dtypec                 C   sR   t d}ddd}tjddgtjd}tj||dd	}t|| t|j|j d S )
Nz21
35r   rr   r  r  r  r_   Tr  )r#   rM   ra   r  rb  r   r   r`   r(   r  r   r]  r  r*   r*   r+   test_unpack_single_name	  s    

z#TestFromTxt.test_unpack_single_namec                 C   sZ   t d}ddd}tjdtjd}tj||dd}t|| td	|j t|j|j d S )
Nr  r   r`  r  r  r_   Tr  r*   )	r#   rM   ra   r  rb  r   r   rY   r`   ra  r*   r*   r+   test_squeeze_scalar	  s    

zTestFromTxt.test_squeeze_scalarndimr  )rd  c                 C   s6   d}t jt||d}t jt||d}t|| d S )NZ42r!  )rM   r  r   rb  r   )r(   rd  r  r[   r   r*   r*   r+   r$  	  s    zTestFromTxt.test_ndmin_keywordN)_r2   r3   r4   rB  rM   rb  rY  ru   rd   rh   re  r  ro  rq  rt  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r(  r)  r+  r,  r.  r/  r0  r2  r?  r@  rB  rC  rH  rL  rR  r2  rT  rX  rY  r[  r\  r   r_  rb  rc  r   rc   r$  r*   r*   r*   r+   ra  ?  s   
	

	

	 


					#



*6	

ra  c                   @   s   e Zd Zdd Zdd Zdd Zejje	ddej
d	eegd
d Zej
d	eegdd Zej
d	eegdd Zej
d	eegdd Zej
d	eegejddd Zej
d	eegejddd ZdS )TestPathUsagec                 C   sl   t ddN}t|}tddgddgg}t|| t|}t|| W d    n1 s^0    Y  d S )N.txtr   g?r]   r7   r^   )r   r   rM   ra   r   r  r   )r(   r   r[   rq   r*   r*   r+   test_loadtxt	  s    
zTestPathUsage.test_loadtxtc                 C   sn   t ddP}t|}tddgddggt}t|| t|}t|| W d    n1 s`0    Y  d S )Nr   r   rW   r]   r7   r^   )r   r   rM   ra   rc   r   rN   r   r(   r   r[   r   r*   r*   r+   test_save_load
  s    
zTestPathUsage.test_save_loadc                 C   s   t ddf}t|}tddgddggt}t|| tj|dd}t|| ~trbt	  t	  W d    n1 sv0    Y  d S )	Nr   r   rW   r]   r7   r^   rl   rk   )
r   r   rM   ra   rc   r   rN   r   r   r   rh  r*   r*   r+   test_save_load_memmap

  s    
z#TestPathUsage.test_save_load_memmapzmemmap doesn't work correctlyri   r  c                 C   s   t dd}||}tddgddggt}t|| tj|dd}d	|d
 d
< d	|d
 d
< ~trpt  t  t|}t|| W d    n1 s0    Y  d S )Nr   r   rW   r]   r7   r^   zr+rj  r   r   )	r   rM   ra   rc   r   rN   r   r   r   )r(   r  r   r[   r   r   r*   r*   r+   test_save_load_memmap_readwrite
  s    
z-TestPathUsage.test_save_load_memmap_readwritec              	   C   s|   t dd^}||}tj|dd t|}t|d d W d    n1 sP0    Y  W d    n1 sn0    Y  d S Nr   r   r   r   r   )r   rM   r   rN   r   r(   r  r   r   r*   r*   r+   test_savez_load)
  s
    zTestPathUsage.test_savez_loadc                 C   sd   t ddF}||}tj|dd t|}t|d d |  W d    n1 sV0    Y  d S rm  )r   rM   Zsavez_compressedrN   r   rL   rn  r*   r*   r+   test_savez_compressed_load1
  s    
z(TestPathUsage.test_savez_compressed_loadc                 C   sd   t ddF}||}tddg}t|| t|}t|| W d    n1 sV0    Y  d S )Nrf  r   rn   ro   )r   rM   ra   r   rb  r   )r(   r  r   r[   r   r*   r*   r+   test_genfromtxt:
  s    
zTestPathUsage.test_genfromtxtrI  c              	   C   s   t dd}||}t|d}|d W d    n1 s>0    Y  tdddd}t|fi |}tjd	d
gdtfdtfgd}tt	|tj
 t|| W d    n1 s0    Y  d S )Nrf  r   r!  rJ  r  r  Tr  r#  rN  r  r  r_   )r   r   r,   rg  r   rM   ra   rc   r   rK   rK  r   r(   r  r   r   rU   r  r  r*   r*   r+   rL  C
  s    (
zTestPathUsage.test_recfromtxtr  c              	   C   s   t dd}||}t|d}|d W d    n1 s>0    Y  tdddd}t|fdd i|}tjd	d
gdtfdtfgd}tt	|tj
 t|| W d    n1 s0    Y  d S )Nrf  r   r!  rJ  r  T)r  r  rM  r`   r#  rN  r  r  r_   )r   r   r,   rg  r   rM   ra   rc   r   rK   rK  r   rr  r*   r*   r+   rR  R
  s    (
zTestPathUsage.test_recfromcsvN)r2   r3   r4   rg  ri  rk  r   r   rH  r   r   r   rL  rl  ro  rp  rq  r   rL  rR  r*   r*   r*   r+   re  	  s$   	




re  c                  C   s`   t jd} t }tj|dd}t ||  |  |d tj|dd}tt 	||  d S )Nr   r   r!  rU  r   rl   )
rM   r   r   r_  rW  r   rL   rH   r   rN   r[   r)   r   r*   r*   r+   test_gzip_loadd
  s    
ru  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )
JustWriterc                 C   s
   || _ d S r%   baser(   rx  r*   r*   r+   r&   u
  s    zJustWriter.__init__c                 C   s   | j |S r%   )rx  r,   r'   r*   r*   r+   r,   x
  s    zJustWriter.writec                 C   s
   | j  S r%   )rx  rG   r`  r*   r*   r+   rG   {
  s    zJustWriter.flushN)r2   r3   r4   r&   r,   rG   r*   r*   r*   r+   rv  t
  s   rv  c                   @   s&   e Zd Zdd Zdd Zd	ddZdS )

JustReaderc                 C   s
   || _ d S r%   rw  ry  r*   r*   r+   r&   
  s    zJustReader.__init__c                 C   s   | j |S r%   )rx  r  )r(   r   r*   r*   r+   r  
  s    zJustReader.readr   c                 C   s   | j ||S r%   )rx  rH   )r(   offwhencer*   r*   r+   rH   
  s    zJustReader.seekN)r   )r2   r3   r4   r&   r  rH   r*   r*   r*   r+   rz  ~
  s   rz  c                  C   sT   t jd} t }t|}t ||  |  |d t|}tt 	||  d S )Nrs  r   )
rM   r   r   rv  r   rG   rH   rz  r   rN   rt  r*   r*   r+   test_ducktyping
  s    
r}  c               	   C   s   t  } tj| dd}|d |  | d tddR}t|d}||   W d    n1 sj0    Y  t	
|}W d    n1 s0    Y  |   t|g d d S )	Nr!  rU     1 2 3
r   r-  r   r   r   )r   r_  rW  r,   rL   rH   r   r   r  rM   r  r   )r)   r  rF   r   r]  r*   r*   r+   test_gzip_loadtxt
  s    

,(r  c                  C   sV   t  } tj| dd}|d |  | d tj| dd}tt|g d d S )Nr!  rU  r~  r   rl   r   )	r   r_  rW  r,   rL   rH   r   rM   r  )r)   r   r*   r*   r+   test_gzip_loadtxt_from_string
  s    

r  c                  C   s  t  } td}td}tj| ||d | d t| }td|v  td|v  td| v  td| v  | D ] \}}t|dv  t	|j
d q~| D ]}t	|j
d qtt| dk |D ]}t|dv  qtd| v  |d|d k sJ d S )N)r7   r7   )rq   rt   r   rq   rt   r]   )r   rM   r  r   rH   rN   r   keysitemsr   rY   valuesr  rE   all)r)   rq   rt   r   r   r[   r*   r*   r+   test_npzfile_dict
  s(    



r  zPython lacks refcountsri   c                  C   s   t  } t| g d | d t  t|  W d    n1 sF0    Y  | d ddg}t 8 tjtd|d}t|tj	dg|d W d    n1 s0    Y  d S )Nr   r   )r[   u1r]   )r   r  r]   z0 1 2 3r_   )r#  rN  )
r   rM   r   rH   r   rN   r  r#   r   ra   )r   r   rq   r*   r*   r+   test_load_refcount
  s    
(
r  c                  C   s   t  } t| d t| d | d t| dks:J t| dksLJ tt t|  W d    n1 sv0    Y  d S )NrW   r]   r   )r   rM   r   rH   rN   r   r   EOFError)r   r*   r*   r+   #test_load_multiple_arrays_until_eof
  s    
r  )N)XrI   r   r_  rR   r   r;   r   r  r   pathlibr   tempfiler   ior   r   r   rE  multiprocessingr   r   ctypesr	   numpyrM   Znumpy.mar  Znumpy.exceptionsr
   Znumpy.lib._iotoolsr   r   Z	numpy.libr   Znumpy.lib._npyio_implr   r   Znumpy.ma.testutilsr   Znumpy.testingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Znumpy.testing._private.utilsr    Znumpy._utilsr"   r#   maxsizer   rb  r2  rG  rd  r3  r<   r>   r   r   r   rM  rx  rG  ra  re  ru  rv  rz  r}  r  r  r  r   r   r  r  r*   r*   r*   r+   <module>   s   D



k !  #H    4E         Am

