HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/numpy/lib/tests/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/numpy/lib/tests/__pycache__/test_io.cpython-36.pyc
3

���h��@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZmZddlmZddlZddlmZmZddlmZddlZddljZddlmZmZdd	lmZm Z dd
l!m"Z"ddl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0ddl1m2Z2Gd
d�de�Z3ej4d9kZ5yddl6Z6dZ7Wne8k
�rrdZ7YnXyddl9Z9dZ:Wne8k
�r�dZ:YnXd:dd�Z;Gdd�d�Z<Gdd�de<�Z=Gdd�de<�Z>Gdd�d�Z?Gdd�d�Z@Gdd �d e@�ZAGd!d"�d"�ZBGd#d$�d$e@�ZCGd%d&�d&�ZDd'd(�ZEGd)d*�d*�ZFGd+d,�d,�ZGd-d.�ZHd/d0�ZId1d2�ZJd3d4�ZKe	jLjMe-d5d6�d7d8��ZNdS);�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*eZdZdZd
dd�Zdd�Zdd�Zd	S)�TextIOz�Helper IO class.

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

    �cCstj|t|��dS)N)r�__init__r)�self�s�r"�8/tmp/pip-build-5_djhm0z/numpy/numpy/lib/tests/test_io.pyr)szTextIO.__init__cCstj|t|��dS)N)r�writer)r r!r"r"r#r$,szTextIO.writecCstj|dd�|D��dS)NcSsg|]}t|��qSr")r)�.0r!r"r"r#�
<listcomp>0sz%TextIO.writelines.<locals>.<listcomp>)r�
writelines)r �linesr"r"r#r'/szTextIO.writelinesN)r)�__name__�
__module__�__qualname__�__doc__rr$r'r"r"r"r#r s
r�� TFcCs.t|�tkr|jd�}ttj||�dd��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
r4c@sjeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	j
ejdkdd
�dd��Z
dd�Zej	jdd��ZdS)�
RoundtripTestcOs�|jdi�}|jdddi�}|jdd�}|r>tdd�}|j}n
t�}|}zb|}	||f|	�|�|j�|jd�tjd	kr�t|t�r�|j	�t
j|f|�}
|	|_|
|_
Wd
t|t�s�|j	�dt�kr�t|
t
jjj�s�tj|j�Xd
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�npyioZNpzFile�os�remove)r Z	save_func�args�kwargsr7r8r9Ztarget_fileZ	load_filerGr<r"r"r#�	roundtripLs.




zRoundtripTest.roundtripcCs�|j|�|j|dd�|jtj|��|jtj|�dd�|jddkr~|jtj|�dd��|jtj|�dd�dd�dS)NT)r9r�)rOrE�asfortranarray�shape)r �ar"r"r#�check_roundtrips|s
zRoundtripTest.check_roundtripscCs�tjgt�}|j|�tjddgddggt�}|j|�tjddgddggt�}|j|�tjd
dgdd
ggtjd	�}|j|�tjddgddggtjd	�}|j|�dS)NrPr-r0�y@y@y@y @)�dtypey�?@y@@y@@y@ @y�?@y@@y@@y@ @)rE�array�floatrT�intZcsingleZcdouble)r rSr"r"r#�
test_array�s



zRoundtripTest.test_arraycCs<tjgt�}|j|�tjddgddggt�}|j|�dS)NrPr-r0rU)rErW�objectrT)r rSr"r"r#�test_array_object�s
zRoundtripTest.test_array_objectcCs"tjddddgt�}|j|�dS)NrPr-r0rU)rErWrYrO)r rSr"r"r#�test_1D�szRoundtripTest.test_1Dr;zFails on Win32)�reasoncCsXtjddgddgg�}|j|dddid�tjddgddgg�}|j|dddid�dS)	NrPg@rUg333333@T�	mmap_mode�r)r9r8)rErWrOrQ)r rSr"r"r#�	test_mmap�szRoundtripTest.test_mmapcCs$tjd	d
gddgd�}|j|�dS)
NrPr-r0rU�x�i4�y)rV)rPr-)r0rU)rbrc)rdrc)rErWrT)r rSr"r"r#�test_record�szRoundtripTest.test_recordcCsTdd�td�D�}tjd|d�}tjdd��tjdd	t�|j|�WdQRXdS)
NcSsg|]}d|dtf�qS)z%d�d)rX)r%�ir"r"r#r&�sz1RoundtripTest.test_format_2_0.<locals>.<listcomp>i�i�)rVT)�record�alwaysr)�rangerE�ones�warnings�catch_warnings�filterwarnings�UserWarningrT)r �dtrSr"r"r#�test_format_2_0�s
zRoundtripTest.test_format_2_0N)r)r*r+rOrTrZr\r]�pytest�mark�skipifrArBrare�slowrqr"r"r"r#r6Ks0
r6c@seZdZdd�ZdS)�TestSaveLoadcOs\tj|tjf|�|�t|jd|j�t|jdj|jj�t|jdjj	|jjj	�dS)Nr)
r6rOrE�saverrGr<rV�flags�fnc)r rMrNr"r"r#rO�szTestSaveLoad.roundtripN)r)r*r+rOr"r"r"r#rv�srvc@sveZdZdd�Zejjedd�ejjdd���Z	dd�Z
d	d
�Zdd�Zd
d�Z
dd�Zejjdd��Zdd�ZdS)�
TestSavezLoadcOs�tj|tjf|�|�zTxNt|j�D]@\}}|jd|}t||�t|j|j�t|j	j
|j	j
�q$WWd|jjr�|jjj�t
j|jjj�XdS)Nzarr_%d)r6rOrE�savez�	enumeraterGr<rrVrxryZfidrDrKrLr>)r rMrN�nrGZreloadedr"r"r#rO�s
zTestSavezLoad.roundtripzNeeds 64bit platform)r^cCs\d}tj|tjd�}tddd��2}tj||d�~tj|�}|d	}|j�~WdQRXdS)NrP�i��)rVZnumpy_test_big_arrays_z.npz)�prefix�suffix)rSrSll�)rE�empty�uint8rr{rFrD)r �LrS�tmpZnpfiler"r"r#�test_big_arrays�s
zTestSavezLoad.test_big_arrayscCs@tjddgddggt�}tjd	d
gddggt�}|j||�dS)
NrPr-r0rUy@y@y@y(@y�?@y@@y@�y@(@)rErWrX�complexrO)r rS�br"r"r#�test_multiple_arrays�sz"TestSavezLoad.test_multiple_arrayscCsztjddgddggt�}tjd
dgddggt�}t�}tj|||d	�|jd
�tj|�}t||d�t||d�dS)NrPr-r0rUy@y@y@y(@)�file_a�file_brr�r�y�?@y@@y@�y@(@)	rErWrXr�rr{r@rFr)r rSr��c�lr"r"r#�test_named_arrays�s

zTestSavezLoad.test_named_arrayscCs�tjddgddggt�}tjd
dgddggt�}t�}tj|||d	�|jd
�tj|�}tt	t
|j��ddg�t||jj�t||jj
�dS)NrPr-r0rUy@y@y@y(@)r�r�rr�r�y�?@y@@y@�y@(@)rErWrXr�rr{r@rFr�sorted�dir�fr�r�)r rSr�r�r�r"r"r#�test_BagObj�s

zTestSavezLoad.test_BagObjcs`dd��g���fdd�td�D�}x|D]}|j�q*Wx|D]}|j�q@W�r\t���dS)NcSshtdd��T}tjjdd�}ytj||d�Wn,tk
rX}z|j|�WYdd}~XnXWdQRXdS)Nz.npz)r�i�)rG)rrE�randomZrandnr{�OSError�append)Z
error_listr�rG�errr"r"r#�writer�sz9TestSavezLoad.test_savez_filename_clashes.<locals>.writercsg|]}tj��fd��qS))�targetrM)�	threading�Thread)r%�j)�errorsr�r"r#r&sz=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_clashescCs�tdd���}t|d��}tj|dd�WdQRXt|dd��L}|jd�t|j�tj|�d	t|j�|jd�t|j�WdQRXWdQRXdS)
Nz.npz)r��wbzLOVELY LOAD)�data�rbi'rr�)r�openrEr{r@r�closedrF)r r��fpr"r"r#�test_not_closing_opened_fids

z)TestSavezLoad.test_not_closing_opened_fidc%Cs�tdd���}tj|dd�t��~}|jt�xltdd�D]^}zJytj|�dWn2tk
r�}zd|}t	|��WYdd}~XnXWdt
r�tj�Xq8WWdQRXWdQRXdS)	Nz.npz)r�zLOVELY LOAD)r�rPir�z#Failed to load data from a file: %s)
rrEr{r�filter�ResourceWarningrjrF�	Exceptionr�r�gcZcollect)r r��suprg�e�msgr"r"r#�test_closing_fids
zTestSavezLoad.test_closing_fidcCsRd}td|d��8}tj|dd�tj|�}|jj}|j�t|j�WdQRXdS)NZ&numpy_test_closing_zipfile_after_load_z.npz)r�rzplace holder)�lab)	rrEr{rF�zipr�rDrr�)r rr�r�r�r"r"r#�test_closing_zipfile_after_load4s
z-TestSavezLoad.test_closing_zipfile_after_loadN)r)r*r+rOrrrsrt�IS_64BITrur�r�r�r�r�r�Z	slow_pypyr�r�r"r"r"r#rz�s
rzc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zejjd#d$d%g�ejjd&eeg�d'd(���Zejjejd)kd*d+�ejjed,d-�d.d/����Zd0S)1�TestSaveTxtcCs�tjddgddggt�}d}t�}tj|||d�|jd�t|j�t|d|d	d
�t|d|d	d�g�tjddgddggt	�}t�}tj||d
d�|jd�t|j�ddg�dS)NrPr-r0rUz%.18e)r5r� �
z%ds1 2
s3 4
)rPr-)r0rU)
rErWrXr�savetxtr@r�	readlinesrrY)r rSr5r�r"r"r#rZCs

zTestSaveTxt.test_arraycCsRtjddddgt�}t�}tj||dd�|jd�|j�}t|dd	d
dg�dS)NrPr-r0rUz%d)r5rs1
s2
s3
s4
)rErWrYrr�r@r�r)r rSr�r(r"r"r#r]Ss
zTestSaveTxt.test_1DcCs@t�}tttj|tjd��tttj|tjdgdggg��dS)NrPr-)rr�
ValueErrorrEr�rW)r r�r"r"r#�
test_0D_3D[szTestSaveTxt.test_0D_3DcCsLtjddgddgd�}t�}tj||d	d
�|jd�t|j�dd
g�dS)NrPr-r0rUrbrcrd)rVz%d)r5rs1 2
s3 4
)rPr-)r0rU)rbrc)rdrc)rErWrr�r@rr�)r rSr�r"r"r#�test_structured`s

zTestSaveTxt.test_structuredcCsVtjddgdddgd�}t�}tj||dd
gdd
�|jd�t|j�ddg�dS)NrPr-r0rU���foorc�bar�baz)rVz%d)r5rs1 3
s4 6
)rPr-r0)rUr�r�)r�rc)r�rc)r�rc)rErWrr�r@rr�)r rSr�r"r"r#�test_structured_paddedgs

z"TestSaveTxt.test_structured_paddedc
Csbtjdd
ddgd�}|ddg}tdd	��.}t|�}tj||�tj|�}t||�WdQRXdS)
NrPrbrcrd�z�f4)rVz.npy)r�)rbrc)rdrc)r�r�)rErkrrrwrFr)r rS�v�pathr�r"r"r#�test_multifield_viewqs
z TestSaveTxt.test_multifield_viewcCsNtjddgddgg�}t�}tj||ddd�|jd�t|j�d	d
g�dS)Ng�?g@g@g@�,z%d)�	delimiterr5rs1,2
s3,4
)rErWrr�r@rr�)r rSr�r"r"r#�test_delimiterzs

zTestSaveTxt.test_delimitercCs�tjddg�}t�}tj||ddgd�|jd�t|j�d	d
g�t�}tj||dd�|jd�|j�}t|dd
g�t�}tj||ddd�|jd�|j�}t|dd
g�t�}tttj||dd�dS)NrPr-r0rUz%02dz%3.1f)r5rs01 2.0
s03 4.0
z%02d : %3.1fs	01 : 2.0
s	03 : 4.0
r�)r5r��c)rPr-)r0rU)	rErWrr�r@rr�rr�)r rSr�r(r"r"r#�test_format�s"


zTestSaveTxt.test_formatcCst�}tjddgtd�}d}tj||d|d�|jd	�t|j�td
|d��t�}tj||d|d�|jd	�t|j�td
|d��t�}d}tj||d||d�|jd	�t|j�t||dd��t�}d}tj||d||d�|jd	�t|j�td||d��dS)NrPr-r0rU)rVzTest header / footerz%1d)r5�headerrz# z	
1 2
3 4
)r5�footerz
1 2
3 4
# r�z% )r5r��commentsz1 2
3 4
)r5r�r�)rPr-)r0rU)	rrErWrYr�r@r�readr)r r�rS�test_header_footerZ
commentstrr"r"r#r��s4







zTestSaveTxt.test_header_footercCsDt��4}tjddg�}tj||�tj|�}t||�WdQRXdS)NrPr-r0rU)rPr-)r0rU)rrErWr��loadtxtr)r r>rSr�r"r"r#�test_file_roundtrip�s

zTestSaveTxt.test_file_roundtripcCs�d}d}tj||ftjd�}tj}tj}|d||dd�<t�}tj||dd�|jd�|j�}t	|ddg�t�}tj||d|d�|jd�|j�}t	|d	d	g�t�}tj||d
g|d�|jd�|j�}t	|ddg�dS)
Nr-)rVy�?z %+.3e)r5rs8 ( +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�rr�r@r�r)r �ncols�nrowsrS�re�imr�r(r"r"r#�test_complex_arrays�s<


zTestSaveTxt.test_complex_arrayscCsvd}d}tj||ftjd�}tj}tj}|d||dd�<t�}tj||dd�|jd�|j�}t	|ddg�dS)Nr-)rVy�?z%.3e)r5rs0 (3.142e+00-2.718e+00j)  (3.142e+00-2.718e+00j)
)
rEr�r�r�r�rr�r@r�r)r r�r�rSr�r�r�r(r"r"r#�test_complex_negative_exponent�s
z*TestSaveTxt.test_complex_negative_exponentcCsHGdd�dt�}|�}tjddg�}tj||�tj|�}t||�dS)	Nc@seZdZdd�ZdS)z4TestSaveTxt.test_custom_writer.<locals>.CustomWritercSs|j|jd��dS)N�
)�extend�split)r �textr"r"r#r$�sz:TestSaveTxt.test_custom_writer.<locals>.CustomWriter.writeN)r)r*r+r$r"r"r"r#�CustomWriter�sr�rPr-r0rU)rPr-)r0rU)�listrErWr�r�r)r r��wrSr�r"r"r#�test_custom_writer�s
zTestSaveTxt.test_custom_writerc
CsPdjd�}tj|gtjd�}t��$}tjtjj|d�|dgdd�WdQRXdS)NsϖzUTF-8)rVztest.csvz%s)r5�encoding)	r2rErW�unicode_rr�rKr�r�)r �utf8rS�tmpdirr"r"r#�test_unicodes

zTestSaveTxt.test_unicodecCs�djd�}tj|gtjd�}ddg}tr2|jd�trD|jddg�t��`}xX|D]P}tj	t
jj|d	|�|d
gdd�tj
t
jj|d	|�dtjd
�}t||�qRWWdQRXdS)NsϖzUTF-8)rVrz.gzz.bz2z.xzz.lzmaztest.csvz%sz	UTF-16-LE)r5r�)r�rV)r2rErWr��HAS_BZ2r��HAS_LZMAr�rr�rKr�r�r�r)r r�rS�suffixesr�r�r�r"r"r#�test_unicode_roundtrips


z"TestSaveTxt.test_unicode_roundtripcCs\djd�}tj|gtjd�}t�}tj||dgdd�|jd�t|j�jd�|d�dS)NsϖzUTF-8)rVz%s)r5r�rr�)	r2rErWr�rr�r@rr�)r r�rSr!r"r"r#�test_unicode_bytestream!s

z#TestSaveTxt.test_unicode_bytestreamcCsVdjd�}tj|gtjd�}t�}tj||dgdd�|jd�t|j�|d�dS)NsϖzUTF-8)rVz%s)r5r�rr�)	r2rErWr�rr�r@rr�)r r�rSr!r"r"r#�test_unicode_stringstream)s

z%TestSaveTxt.test_unicode_stringstreamr5z%fs%f�iotypecCs^tjdg�}|�}tj|||d�|jd�|tkrHt|j�dd�nt|j�dd�dS)Ng�?)r5rz%f
s%f
)rErWr�r@rrr�)r r5r�rSr!r"r"r#�test_unicode_and_bytes_fmt1s
z&TestSaveTxt.test_unicode_and_bytes_fmtr;zfiles>4GB may not work)r^g`��A)Z
free_bytescCsNdd�}tt�}t||fd�}|j�|j�|jr<td��|jdksJt�dS)NcSsrd|_yJtjdd�td�D�td�}t��}tjtjj	|d�|d�WdQRXWnt
k
rld|_�YnXdS)	NFcSs$g|]}tjjtjjdd�d��qS)�2rfrU)rEr�Zrand�randint)r%rgr"r"r#r&GszGTestSaveTxt.test_large_zip.<locals>.check_large_zip.<locals>.<listcomp>i5)rVztest.npz)�	test_dataT)�valuerEZasarrayrjr[rr{rKr�r��MemoryError)�memoryerror_raisedr�r�r"r"r#�check_large_zipBs
z3TestSaveTxt.test_large_zip.<locals>.check_large_zip)r�rMz,Child process raised a MemoryError exceptionr)	rr	rr�r�r�r��exitcoder�)r r�r��pr"r"r#�test_large_zip>szTestSaveTxt.test_large_zipN) r)r*r+rZr]r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrsZparametrizerrr�rtrArBrurr�r"r"r"r#r�Bs,
	"&r�c@sxeZdZdd�Zdd�Zejjedd�dd��Z	ejje
d	d�d
d��Zdd
�Zdd�Z
dd�Zdd�Zdd�ZdS)�LoadTxtBasecCs�tjd�jd�}d}x�|D]�}d|d}x�|D]�}t|d	��p}||d
dd��}	|	j|�WdQRX|j|dd
�}
t|
|�||ddd
��}	|j|	�}
WdQRXt|
|�WdQRXq0WqWdS)Nr�r-r0r��
�
z0 1 2z3 4 5)r��wtz	UTF-32-LE)�moder�)r��rt)r-r0)r�r�r�)rE�arange�reshaperr$�loadfuncr)r Zfopenr��wanted�linesep�sepr�r�r>r��resr"r"r#�check_compressed\s


zLoadTxtBase.check_compressedcCs|jtjd�dS)N�.gz)r
)r	�gzipr�)r r"r"r#�test_compressed_gziplsz LoadTxtBase.test_compressed_gzipz	Needs bz2)r^cCs|jtjd�dS)N�.bz2)r
)r	�bz2r�)r r"r"r#�test_compressed_bz2oszLoadTxtBase.test_compressed_bz2z
Needs lzmacCs|jtjd�dS)N�.xz�.lzma)rr)r	�lzmar�)r r"r"r#�test_compressed_lzmassz LoadTxtBase.test_compressed_lzmacCsZt��J}t|d��}|jdjd��WdQRX|j|dd�}t|dddg�WdQRXdS)Nr�z0.
1.
2.zUTF-16)r�gg�?g@)rr�r$�encoderr)r r�r�rbr"r"r#�
test_encodingws
zLoadTxtBase.test_encodingcCsbdjd�}t��H}t|d��}|j|jd��WdQRX|j|dtjd�}t||�WdQRXdS)NsöüözUTF-8r�zUTF-16)r�rV)	r2rr�r$rrrEr�r)r Znonasciir�r�rbr"r"r#�test_stringload~s
zLoadTxtBase.test_stringloadcCs8d}|jt|�tjdd�}t|tj|jd�j���dS)Ns��h i jzUTF-16)rVr�)rrrEr�rrWr2r�)r �utf16r�r"r"r#�test_binary_decode�szLoadTxtBase.test_binary_decodecCsTt�}|jd�|jd�|j|tjddd�id�}tjdjd�g�}t||�dS)NsϖrcSs
|jd�S)NzUTF-8)r2)rbr"r"r#�<lambda>�sz4LoadTxtBase.test_converters_decode.<locals>.<lambda>)rV�
converterszUTF-8)	rr$r@rrEr�rWr2r)r r�rbrSr"r"r#�test_converters_decode�s


z"LoadTxtBase.test_converters_decodecCs|djd�}t��b}tj|ddd��}|j|�WdQRX|j|tjddd�idd�}tj|d	g�}t	||�WdQRXdS)
NsϖzUTF-8r�)r�rcSs|dS)Nr�r")rbr"r"r#r�sz6LoadTxtBase.test_converters_nodecode.<locals>.<lambda>)rVrr�r�)
r2r�ior�r$rrEr�rWr)r r�r�r�rbrSr"r"r#�test_converters_nodecode�s


z$LoadTxtBase.test_converters_nodecodeN)r)r*r+r	rrrrsrtr�rr�rrrrrrr"r"r"r#r�[s	
r�c@sVeZdZeej�Zdd�Zdd�Zdd�Z	dd�Z
d	d
�Zdd�Zd
d�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Z d5d6�Z!d7d8�Z"d9d:�Z#d;d<�Z$d=d>�Z%d?d@�Z&e'j(j)e*j+�dAkdBdC�dDdE��Z,dFdG�Z-dHdI�Z.dJdK�Z/dLdM�Z0dNS)O�TestLoadTxtcCstjjj|_dtjj_dS)NrP)rErIrJ�_loadtxt_chunksize�
orig_chunk)r r"r"r#�setup�szTestLoadTxt.setupcCs|jtjj_dS)N)r rErIrJr)r r"r"r#�teardown�szTestLoadTxt.teardowncCs�t�}|jd�|jd�tj|dtjfdtjfgd�}tjddgddgd�}t||�t�}|jd�|jd�ddd�}tjddg|d�}tj||d�}t||�dS) Nz1 2
3 4rrbrd)rVrPr-r0rUrczM 64.0 75.0
F 25.0 60.0�gender�age�weight�S1r�)�names�formats�M�P@��R@�F�9@�N@)rPr-)r0rU)rbrc)rdrc)r#r$r%)r&rcr�)r)r*r+)r,r-r.)rr$r@rEr��int32rWr)r r�rbrS�dZmydescriptorr�rdr"r"r#re�s




zTestLoadTxt.test_recordcCs�t�}|jd�|jd�tj|td�}tjddgddggt�}t||�|jd�tj|td�}tjddgddggt�}t||�dS)Nz1 2
3 4r)rVrPr-r0rU)	rr$r@rEr�rYrWrrX)r r�rbrSr"r"r#rZ�s



zTestLoadTxt.test_arraycCs�t�}|jd�|jd�tj|td�}tjddddgt�}t||�t�}|jd�|jd�tj|td	d
�}tjddddgt�}t||�dS)Nz1
2
3
4
r)rVrPr-r0rUz1,2,3,4
r�)rVr�)rr$r@rEr�rYrWr)r r�rbrSr"r"r#r]�s




zTestLoadTxt.test_1DcCsXt�}|jd�|jd�tj|tdddd�id�}tjdd	dddgt�}t||�dS)
Nz	1,2,3,,5
rr�r0cSst|pd�S)Ni�i���)rY)r!r"r"r#r�sz*TestLoadTxt.test_missing.<locals>.<lambda>)rVr�rrPr-i�r�i���)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�test_missing�s


zTestLoadTxt.test_missingcCs\t�}|jd�|jd�tj|tdddd�id
d�}tjd	dgddggt�}t||�dS)Nz1,2,3,,5
6,7,8,9,10
rr�r0cSst|pd�S)Ni�i���)rY)r!r"r"r#r�sz:TestLoadTxt.test_converters_with_usecols.<locals>.<lambda>rP)rVr�r�usecolsr-i���	)rPr0i���)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�test_converters_with_usecols�s



z(TestLoadTxt.test_converters_with_usecolscCsNt�}|jd�|jd�tj|tddd�}tjdddd	gt�}t||�dS)
Nz# comment
1,2,3,5
rr��#)rVr�r�rPr-r0r�)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�test_comments_unicode�s


z!TestLoadTxt.test_comments_unicodecCsNt�}|jd�|jd�tj|tddd�}tjdddd	gt�}t||�dS)
Nz# comment
1,2,3,5
rr��#)rVr�r�rPr-r0r�)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�test_comments_byte�s


zTestLoadTxt.test_comments_bytecCs\t�}|jd�|jd�tj|tddddgd�}tjdd	d
gddd
ggt�}t||�dS)Nz,# comment
1,2,3
@ comment2
4,5,6 // comment3rr�r6�@z//)rVr�r�rPr-r0rUr�r�)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�test_comments_multiples


z"TestLoadTxt.test_comments_multiplecCs~t�}|jd�|jd�tj|tddd�}tjdddd	gt�}t||�t�}|jd
�|jd�tt	tj|tddd�dS)Nz/* comment
1,2,3,5
rr�z/*)rVr�r�rPr-r0r�z*/ comment
1,2,3,5
)
rr$r@rEr�rYrWrrr�)r r�rbrSr"r"r#�test_comments_multi_chars
s





z%TestLoadTxt.test_comments_multi_charscCs�t�}|jd�|jd�tj|tddd�}tjddddgt�}t||�t�}|jd	�|jd�tj|tddd�}tjddddgt�}t||�dS)
Nzcomment
1,2,3,5
rr�rP)rVr��skiprowsr-r0r�z# comment
1,2,3,5
)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�
test_skiprowss






zTestLoadTxt.test_skiprowsc
	Cs�tjddgddggt�}t�}tj||�|jd�tj|tdd�}t||dd�df�tjdddgdddggt�}t�}tj||�|jd�tj|tdd�}t||dd�dd�f�|jd�tj|ttjddg�d�}t||dd�dd�f�xhttj	tj
tjtjtj
tjtjtjg	D]>}|d�}|jd�tj|t|d�}t||dd�df��q"WGdd	�d	�}|�}|jd�tj|t|d�}t||dd�df�|jd�tj|t|fd�}t||dd�df�d
}t|�}ddg}	d
dg}
tj|dtt|	|
��d�}t|dddg�t|dddg�|jd�d}ttdt|�tj||d�ttdt|�tj|d|dgd�dS)NrPr-r0rUr)rVr2r�c@seZdZdd�ZdS)z*TestLoadTxt.test_usecols.<locals>.CrazyIntcSsdS)NrPr")r r"r"r#�	__index__Jsz4TestLoadTxt.test_usecols.<locals>.CrazyInt.__index__N)r)r*r+r?r"r"r"r#�CrazyIntIsr@z<JOE 70.1 25.3
                BOB 60.5 27.9
                �stid�temp�S4�f8)r2rVsJOEsBOBg�����L9@gfffff�;@g�?z^usecols must be.*%s)r2)rP)rPr-)rr-)rErWrXrr�r@r�rrYZint8Zint16r/�int64r�Zuint16Zuint32�uint64rr�r�rr�	TypeErrorr1)
r rSr�rbZint_typeZto_readr@Z	crazy_intr�r'�dtypesrGZ	bogus_idxr"r"r#�test_usecols+s^








zTestLoadTxt.test_usecolscCsjt�}|jd�|jd�tjdtfddtfdtfgfg�}tj||dd�}tjddg|�}t	||�dS)Nz1,2,3.0
4,5,6.0
rrbrdr�r!r�)rVr�rPr-�@rUr��@�r-rJ)rPrL�r�rK)rUrM)
rr$r@rErVrYrXr�rWr)r r�rprbrSr"r"r#�test_fancy_dtypeps

"zTestLoadTxt.test_fancy_dtypecCsltd�}tjddtfdtfdtdfg�}tj||d	�}tjd
ddd
ddgdddggfg|d	�}t||�dS)Nzaaaa  1.0  8.0  1 2 3 4 5 6r>rCrbrd�blockr-r0)rV�aaaag�?g @rPrUr�r�)r>rC)r-r0)rrErVrXrYr�rWr)r r�rprbrSr"r"r#�test_shaped_dtypeys zTestLoadTxt.test_shaped_dtypec	Cs�td�}tjddtfdtfdtdfg�}tj||d	�}tjd
ddd
ddgdddggdddgdddgggfg|d	�}t||�dS)Nz*aaaa  1.0  8.0  1 2 3 4 5 6 7 8 9 10 11 12r>rCrbrdrOr-r0)rVrPg�?g @rPrUr�r�r3�r4�
��)r>rC)r-r-r0)rrErVrXrYr�rWr)r r�rprbrSr"r"r#�test_3d_shaped_dtype�s
*z TestLoadTxt.test_3d_shaped_dtypecCsJddg}x<ttjfD].}tjddg|d�}tj||d�}t||�qWdS)NZstr1Zstr2)rV)�strrE�bytes_rWr�r)r r�rprSrbr"r"r#�test_str_dtype�s
zTestLoadTxt.test_str_dtypecCsjt��Z}|jdd�t�}tj|�}t|jd�tj|tjd�}t|jd�t|j	tjk�WdQRXdS)Nzloadtxt: Empty input file:)�messager)rV)r)r)
rr�rrEr�rrRrErrV)r r�r�rbr"r"r#�test_empty_file�s
zTestLoadTxt.test_empty_filecCsxt�}|jddg�|jd�tj|d
ddd�id�}t|dd	g�|jd�tj|ddd
d�id�}t|ddg�dS)Nz1 21
z3 42
rrPcSs
t|d�S)N�)rY)r!r"r"r#r�sz3TestLoadTxt.test_unused_converter.<locals>.<lambda>)r2r��*cSs
t|d�S)Nr\)rY)r!r"r"r#r�s�!�B)rP)rP)rr'r@rEr�r)r r�r�r"r"r#�test_unused_converter�s

z!TestLoadTxt.test_unused_convertercCsrd}dtfdtfg}dd�}d|i}tjt|�d||d�}tjdtd	dd�fd
tddd�fg|d
�}t||�dS)Nz0 1; 2001-01-01
                   2; 2002-01-31 �idx�codecSst|j�d�S)Nz%Y-%m-%d)r4�strip)r!r"r"r#r�sz4TestLoadTxt.test_dtype_with_object.<locals>.<lambda>rP�;)r�rVri�r-i�r~)rV)rYr[rEr�rrWrr)r r��ndtype�funcr�test�controlr"r"r#�test_dtype_with_object�sz"TestLoadTxt.test_dtype_with_objectcCs@d}t�}|jd|�|jd�tj|tjd�}t||�dS)N�+&�|�-(�|z%s %sr)rV)rkrl)rr$r@rEr�rFr)r �tgtr�rr"r"r#�test_uint64_type�s
zTestLoadTxt.test_uint64_typecCs@d}t�}|jd|�|jd�tj|tjd�}t||�dS)N�����z%s %sr)rV�������)rpro)rr$r@rEr�rEr)r rmr�rr"r"r#�test_int64_type�s
zTestLoadTxt.test_int64_typecCs�tjddd�jtj�}tj||f�jt�}djttj|��}t	�}|j
|�x<ttjgD].}|jd�tj||d�}t
||d|d�qZWdS)	NrSr�r�r)rVz%s)�err_msgi����)rEZlogspaceZastypeZfloat32ZhstackrXr��map�hexrr$r@r�r)r rm�inpr�rprr"r"r#�test_from_float_hex�s

zTestLoadTxt.test_from_float_hexcCsNtdd�tdd�f}t�}|jd|�|jd�tj|td�}t||�dS)NrPz%s %sr)rV���)r�rr$r@rEr�r)r rmr�rr"r"r#�test_from_complex�s
zTestLoadTxt.test_from_complexcCs�tjd	tjd�}tj}tj}|d||dd�<t�}tj||dd�|jd�|j�}|jd�|j	dd�}t
||k�|j|�|jd�tj|t
d�}t||�dS)
Nr-)rVy�?z%.16e)r5rse+00-se00+-)r-r-)rEr�r�r�r�rr�r@r��replacerr$r�r�r)r rSr�r�r��txtZtxt_badrr"r"r#�test_complex_misformatted�s



z%TestLoadTxt.test_complex_misformattedcCsVt��0}t|d��}|jd�WdQRXtj|�}WdQRXt|ddgddgg�dS)Nr�z
1 21
3 42
rPr]r0r^)rr�r$rEr�r)r r>r�r�r"r"r#�test_universal_newline�s
z"TestLoadTxt.test_universal_newlinecCsVt�}|jd�|jd�ddd
�}tj||dd�}tjd
ddg�}t|d|�dS)Nz 1 	2 	3	start 
4	5	6	  
7	8	9.5	rrbrdr��comment�<i4�<f4�|S8)r'r(�	)rVr�sstart s  �)rbrdr�r})r~r~rr�)rr$r@rEr�rWr)r r�rprbrSr"r"r#�test_empty_field_after_tab�s

z&TestLoadTxt.test_empty_field_after_tabcCs�td�}ddd�}tj||d	d
�\}}}t|jjdk�t|jjdk�t|jjdk�t|tjddg��t|tjd
dg��t|tjddg��dS)NzM 21 72
F 35 58rSr�r��|S1�<i4�<f4)r'r(T)rV�unpack�M�Fr]�#gR@gM@)rSr�r�)r�r�r�)rrEr�rrVrWrrW)r rzrprSr�r�r"r"r#�test_structure_unpacks
z!TestLoadTxt.test_structure_unpackcCs�t�}|jd�|jd�tttj|dd�|jd�tttj|dd�|jd�tj|tddd�}tjdd	dgd
ddgg�}t	||�t�}|jd
�|jd�tj|tdd	d�}t
|jdk�|jd�tj|tddd�}t
|jdk�|jd�tj|tddd�}t
|jdk�t�}|jd�|jd�tj|tdd	d�}t
|jdk�|jd�tj|tddd�}t
|jdk�|jd�tj|tddd�}t
|jdk�t��H}|j
dd�t�}t
tj|d	d�jdk�t
tj|dd�jdk�WdQRXdS)Nz1,2,3
4,5,6rr0)�ndming�?r�rP)rVr�r�r-rUr�r�z0,1,2z0
1
2zloadtxt: Empty input file:)rZ)rPr0)r0)r0)r0rP)r0)r0)rrP)r)rr$r@rr�rEr�rYrWrrrRrr�)r r�rbrSr0r�r�r�r"r"r#�test_ndmin_keywordsJ












zTestLoadTxt.test_ndmin_keywordcCs(dd�}tj|��}t|tjd��dS)Ncss xtd�D]}d|Vq
WdS)NrSz%d)rj)rgr"r"r#�count;sz0TestLoadTxt.test_generator_source.<locals>.countrS)rEr�rr)r r�rr"r"r#�test_generator_source:sz!TestLoadTxt.test_generator_sourcecCs.t�}|jd�|jd�ttdtj|�dS)Nz1 2 3
4 5 6
2 3r�3)rr$r@rr�rEr�)r r�r"r"r#�
test_bad_lineBs

zTestLoadTxt.test_bad_linecCsHt�}|jd�|jd�tjdtfd	dtfg�}tj|d|dd�dS)
Nz100,foo,200
300,None,400rrbrS�S10rdr�)r�rVr�)rSr�)rr$r@rErVrYr�)r r�rpr"r"r#�test_none_as_stringJs


zTestLoadTxt.test_none_as_stringzANSI_X3.4-1968zWrong preferred encoding)r^c"Cs�d}|jd�jdd�j�}t���}t|d��}|j|�WdQRXt|d��}tj|dtjd�}WdQRXt	||�t|d��}tj|ddd�}WdQRXd	d
dg}t	|tj
|dd��WdQRXdS)
Ns/5,6,7,Õscarscar

15,2,3,hello

20,2,3,Õscar

zUTF-8r�rr�r�)r�rV�Ss5,6,7,Õscarscars15,2,3,hellos
20,2,3,Õscar)rV)r2ry�
splitlinesrr�r$rEr�r�rrW)r Zbutf8Zsutf8r�r�rbr"r"r#�test_binary_loadRs

zTestLoadTxt.test_binary_loadcCsNt�}|jd�|jd�tj|tddd�}tjddddgt�}t||�dS)	Nz1,2,3,5
4,5,7,8
2,1,4,5rr�rP)rVr��max_rowsr-r0r�)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�
test_max_rowsds


zTestLoadTxt.test_max_rowscCs�t�}|jd�|jd�tj|tdddd�}tjddddgt�}t||�t�}|jd	�|jd�tj|tdddd�}tjddddgd
dddggt�}t||�dS)
Nz comments
1,2,3,5
4,5,7,8
2,1,4,5rr�rP)rVr�r=r�r-r0r�zcomment
1,2,3,5
4,5,7,8
2,1,4,5rUr3rR)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�test_max_rows_with_skiprowsms








 z'TestLoadTxt.test_max_rows_with_skiprowscCs�t�}|jd�|jd�tj|tddd�}tjddddgd	dd
dggt�}t||�tj|tdd�}tjddd	dgt�}t||�dS)
Nz1,2,3,5
4,5,7,8
2,1,4,5rr�r-)rVr�r�rPr0r�rUr3rR)rVr�)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�$test_max_rows_with_read_continuation~s


 
z0TestLoadTxt.test_max_rows_with_read_continuationcCsft�}|jd�|jd�tj|tdddd�}tjdddd	gd
d	ddgddd
d	ggt�}t||�dS)
Nzcomment
1,2,3,5
4,5,7,8
2,1,4,5rr�rPr�)rVr�r=r�r-r0r�rUr3rR)rr$r@rEr�rYrWr)r r�rbrSr"r"r#�test_max_rows_larger�s



*z TestLoadTxt.test_max_rows_largerN)1r)r*r+�staticmethodrEr�rr!r"rerZr]r1r5r7r9r;r<r>rIrNrQrVrYr[rarjrnrqrvrxr{r|r�r�r�r�r�r�rrrsrt�locale�getpreferredencodingr�r�r�r�r�r"r"r"r#r�sN
	
			E		
	



+	
rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
TestfromregexcCsXt�}|jd�|jd�dtjfdg}tj|d|�}tjdddg|d
�}t||�dS)Nz1.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�)rr$r@rE�float64�	fromregexrWr)r r�rprbrSr"r"r#re�s

zTestfromregex.test_recordcCsXt�}|jd�|jd�dtjfdg}tj|d|�}tjdddg|d
�}t||�dS)Nz1312 foo
1534 bar
4444 quxrr�r�r�z
(\d+)\s+(...)� r��r��\r�)rV)r�r�)r�r�)r�r�)r�r�)rr$r@rEr/r�rWr)r r�rprbrSr"r"r#�
test_record_2�s

zTestfromregex.test_record_2cCsVt�}|jd�|jd�dtjfg}tj|d|�}tjd	d
dg|d�}t||�dS)Nz1312 foo
1534 bar
4444 quxrr�z(\d+)\s+...� ��\)rV)r�)r�)r�)rr$r@rEr�r�rWr)r r�rprbrSr"r"r#�
test_record_3�s

zTestfromregex.test_record_3cCs�d}t���}t|d��}|jd|d�WdQRXdtjfdg}tj|d|d	d
�}tjdd|jd	�fddg|d�}t||�t	j
dt	j�}tj|||d	d
�}t||�WdQRXdS)Nsϖr�s	1.312 foos 
1.534 bar
4.444 quxr�r��U4z(?u)([0-9.]+)\s+(\w+)zUTF-8)r�gˡE���?r��%��C��?r��-����@r�)rVz([0-9.]+)\s+(\w+))r�r�)r�r�)r�r�)rr�r$rEr�r�rWr2rr��compile�UNICODE)r r�r�r�rprbrS�regexpr"r"r#�test_record_unicode�s
z!Testfromregex.test_record_unicodecCsNtjd�}td�}dtjfg}tjdddg|d�}tj|||�}t||�dS)Ns(\d)s123r�rPr-r0)rV)r�r�rrEr�rWr�r)r r�r�rprSrbr"r"r#�test_compiled_bytes�s
z!Testfromregex.test_compiled_bytesN)r)r*r+rer�r�r�r�r"r"r"r#r��s

r�c@sveZdZeej�Zdd�Zdd�Zdd�Z	dd�Z
d	d
�Zdd�Zd
d�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�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~�ZEdd��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�S)��TestFromTxtcCs�td�}tj|dtjfdtjfgd�}tjddgddgd�}t||�td
�}ddd�}tjddg|d�}tj||d�}t||�dS)Nz1 2
3 4rbrd)rVrPr-r0rUrczM 64.0 75.0
F 25.0 60.0r#r$r%r&r�)r'r(r)�P@��R@r,�9@�N@)rPr-)r0rU)rbrc)rdrc)r#r$r%)r&rcr�)r)r�r�)r,r�r�)rrE�
genfromtxtr/rWr)r r�rhri�
descriptorr"r"r#re�s

zTestFromTxt.test_recordcCsztd�}tjddgddggtd�}tj|td�}t||�|jd�tjddgddggtd�}tj|td�}t||�dS)Nz1 2
3 4rPr-r0rU)rVr)	rrErWrYr�rr@rXr�)r r�rirhr"r"r#rZ�s

zTestFromTxt.test_arraycCsZtjddddgt�}td�}tj|td�}t||�td�}tj|tdd	�}t||�dS)
NrPr-r0rUz1
2
3
4
)rVz1,2,3,4
r�)rVr�)rErWrYrr�r)r rir�rhr"r"r#r]�s
zTestFromTxt.test_1DcCs`tjddddgt�}td�}tj|tddd�}t||�td	�}tj|tddd�}t||�dS)
NrPr-r0r�z# comment
1,2,3,5
r�r6)rVr�r�z1,2,3,5# comment
)rErWrYrr�r)r rir�rhr"r"r#�
test_comments�s
zTestFromTxt.test_commentscCsttjddddgt�}ttdd�}td�}tj|fddi|��}t||�td	�}tj|fd
di|��}t||�dS)NrPr-r0r�r�)rVr�zcomment
1,2,3,5
�skip_headerz# comment
1,2,3,5
r=)rErWrY�dictrr�rr�)r rirNr�rhr"r"r#r>s
zTestFromTxt.test_skiprowscCs�dd�tdd�D�}|jd�|jdd�td�D��d|d<td	d
ddd
�}tjtdj|��f|�}tjdd�td�D�dd�dD�d�}t	||�dS)NcSsg|]}d|�qS)z# %ir")r%rgr"r"r#r&sz0TestFromTxt.test_skip_footer.<locals>.<listcomp>rPr�zA, B, CcSsg|]}d|||f�qS)z
%i,%3.1f,%03sr")r%rgr"r"r#r&s�3z99,99r�Tr�rS)r�r'r��skip_footerr�cSs"g|]}d|d|d|f�qS)z%fr")r%rgr"r"r#r&s�)cSsg|]}|tf�qSr")rX)r%�_r"r"r#r&s�ABC)rVrw)
rjr�r�r�rEr�rr�rWr)r r�rNrh�ctrlr"r"r#�test_skip_footers
zTestFromTxt.test_skip_footercCs(t���}|jt�d}tttjt|�dd�tjt|�ddd�}t|tj	ddgddgddgd	d	gg��tjt|�d
d�}t|tj	ddgddgddgd	d	gg��d}tjt|�ddd�}t|tj	ddgddgd	d	gddgg��tjt|�d
dd�}t|tj	ddgddgd	d	gg��WdQRXdS)
Nz1 1
2 2
3 3
4 4
5  
6  
7  
rP)r�F)r��
invalid_raiseg�?g@g@g@r0z1 1
2  
3 3
4 4
5  
6 6
7 7
g@)
rr�rrr�rEr�rrrW)r r�ZbasestrrSr"r"r#�test_skip_footer_with_invalids"

(((z)TestFromTxt.test_skip_footer_with_invalidcCs�td�}tjdd��:}tjddtj�tj|ddd�}t|djtjk�WdQRXtj	dd	g�tj	d
dg�tj	dd
g�d�}t
|d|d�t
|d|d�t
|d|d�dS)Nz)gender age weight
M 64.0 75.0
F 25.0 60.0T)rhrir)rVr'rr�r�gP@g9@g�R@gN@)r#r$r%r#r$r%)rrlrmrnrE�VisibleDeprecationWarningr�r�categoryrWr)r r�r�rhrir"r"r#�test_header7szTestFromTxt.test_headercCs�td�}tjdd��8}tjddtj�tj|dd�}t|djtjk�WdQRXtj	dd	g�tj	d
dg�tj	dd
g�tj	ddg�tj	ddg�g}t
|jjdddddg�x&t
|�D]\}}t
|d||�q�WdS)Nz*A 64 75.0 3+4j True
BCD 25 60.0 5+6j FalseT)rhrir)rVr�AsBCD�@�g�R@gN@r0y@r�y@F�f0�f1�f2Zf3r�zf%iy@@y@@)rrlrmrnrEr�r�rr�rWrrVr'r|)r r�r�rhrirgr�r"r"r#�test_auto_dtypeEszTestFromTxt.test_auto_dtypecCsBtd�}tj|dd�}tjddddgddd	d
gg�}t||�dS)Nz1 2 3 4
5 6 7 8
)rVrPr-r0rUr�r�r3rR)rrEr�rWr)r r�rhrir"r"r#�test_auto_dtype_uniformUsz#TestFromTxt.test_auto_dtype_uniformcCsZtd�}tjdtfddtfdtfgfg�}tj||dd�}tjddg|d�}t||�dS)Nz1,2,3.0
4,5,6.0
rbrdr�r!r�)rVr�rPr-�@rUr��@)rV�r-r�)rPr��r�r�)rUr�)rrErVrYrXr�rWr)r r��
fancydtyperhrir"r"r#rN\s
"zTestFromTxt.test_fancy_dtypecCsNddd�}td�}d}tj|||d�}||d
<tjddg|d�}t||�dS)N�grSr�r&rcr�)r'r(sM 64.0 75.0
F 25.0 60.0r#r$r%)rVr'r'r)�P@��R@r,�9@�N@)rV)r�rSr�)r&rcr�)r#r$r%)r)r�r�)r,r�r�)rrEr�rWr)r r�r�r'rhrir"r"r#�test_names_overwritedsz TestFromTxt.test_names_overwritecCs�td�}tjdd��:}tjddtj�tj|ddd�}t|djtjk�WdQRXtj	dddgddt
fdtfgd�}t||�td�}tjdd��:}tjddtj�tj|ddd�}t|djtjk�WdQRXt||�dS)NzN
#gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        T)rhrir)r'rVrr)r]�fffffR@r,r��
ףp=*M@r_�=
ףp�5@r#�|S1r$r%)rVsO
# 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�)
rrlrmrnrEr�r�rr�rWrYrXr)r r�r�rhr�r"r"r#�test_commented_headerps 
z!TestFromTxt.test_commented_headercCsJtd�}tj|ttfddd�}tjddgdtfd	tfgd
�}t||�dS)
Nzcol1 col2
 1 2
 3 4T)rVr�r'rPr-r0rUZcol1Zcol2)rV)rPr-)r0rU)rrEr�rYrWr)r r�rhrir"r"r#�test_names_and_comments_none�sz(TestFromTxt.test_names_and_comments_nonec Cs�t��p}tjj|d�}t|d��}|jdjd��WdQRXt��*tj	t
��tj|dd�WdQRXWdQRXWdQRXdS)Nztest.csvr�uϖr��ascii)r�)
rrKr�r�r�r$rrrrZraises�UnicodeDecodeErrorrEr�)r r�Zfpathr�r"r"r#�test_file_is_closed_on_error�sz(TestFromTxt.test_file_is_closed_on_errorc
Cs�td�}tjdd��<}tjddtj�tj|dddd	�}t|d
jtjk�WdQRXtj	dddt
fdtfgd�}t||�dS)NzA B C D
 aaaa 121 45 9.1T)rhrir�A�C�D)r2r'rVrrP�-�333333"@�|S4)rV)r�r�r�)rPr�r�)r�r�)
rrlrmrnrEr�r�rr�rWrYrXr)r r�r�rhrir"r"r#�test_autonames_and_usecols�s
z&TestFromTxt.test_autonames_and_usecolscCsJtd�}tj|tdddd�idd�}tjdd
gd
dggt�}t||�dS)Nz1,2,3,,5
6,7,8,9,10
r�r0cSst|pd�S)Ni�i���)rY)r!r"r"r#r�sz:TestFromTxt.test_converters_with_usecols.<locals>.<lambda>rP)rVr�rr2r-i�r3r4)rPr0i���)rrEr�rYrWr)r r�rhrir"r"r#r5�s

z(TestFromTxt.test_converters_with_usecolscCs�td�}tjdd��F}tjddtj�tj|ddddd	d
�id�}t|djtjk�WdQRXtj	dddt
fdtfgd�}t||�dS)NzA B C D
 aaaa 121 45 9.1T)rhrirr�r�r�cSsdt|�S)Nr-)rY)r!r"r"r#r�szDTestFromTxt.test_converters_with_usecols_and_names.<locals>.<lambda>)r2r'rVrrrP�Z�333333"@�|S4)rV)r�r�r�)rPr�r�)r�r�)
rrlrmrnrEr�r�rr�rWrYrXr)r r�r�rhrir"r"r#�&test_converters_with_usecols_and_names�s
z2TestFromTxt.test_converters_with_usecols_and_namescCsbddd�i}td�}tj|ddddg|d�}tjtdd	d
�dfdtjfdtfgd�}t||�dS)
N�datecSs
t|d�S)Nz%Y-%m-%d %H:%M:%SZ)r4)r!r"r"r#r�sz9TestFromTxt.test_converters_cornercases.<locals>.<lambda>z2009-02-03 12:00:00Z, 72214.0r�rA)r�rVr'ri�r-r0g`��@)rV)rrEr�rWrZobject_rXr)r �	converterr�rhrir"r"r#�test_converters_cornercases�s
z'TestFromTxt.test_converters_cornercasescCs\ddd�i}td�}tj|ddddg|d�}tjtdd	d
�dfddtfgd
�}t||�dS)Nr�cSstjt|d��S)Nz%Y-%m-%d %H:%M:%SZ)rEZ
datetime64r4)r!r"r"r#r�sz:TestFromTxt.test_converters_cornercases2.<locals>.<lambda>z2009-02-03 12:00:00Z, 72214.0r�rA)r�rVr'ri�r-r0g`��@�datetime64[us])rV)r�r�)rrEr�rWrrXr)r r�r�rhrir"r"r#�test_converters_cornercases2�s
z(TestFromTxt.test_converters_cornercases2cCsbtd�}tj|dddd�id�}t|ddg�|jd�tj|d
dd	d�id�}t|d
dg�dS)Nz1 21
  3 42
rPrcSs
t|d�S)Nr\)rY)r!r"r"r#r�sz3TestFromTxt.test_unused_converter.<locals>.<lambda>)r2rr]r^cSs
t|d�S)Nr\)rY)r!r"r"r#r�sr_r`)rP)rP)rrEr�rr@)r r�rhr"r"r#ra�s
z!TestFromTxt.test_unused_convertercCsBdd�}dd�}td�}t||d�ddd�}tttj|f|�dS)NcSs4td|j�kr|j�dp0d|j�kr.|j�p0d�S)N�rrPgrw)rX�lowerr�rd)rbr"r"r#r�sz4TestFromTxt.test_invalid_converter.<locals>.<lambda>cSs4td|j�kr|j�dp0d|j�kr.|j�p0d�S)N�%rg)rXr�r�rd)rbr"r"r#r�szgD01N01,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-r0r�)rr�rV)rr�rr
rEr�)r Z
strip_randZ	strip_perr!rNr"r"r#�test_invalid_converter�s
z"TestFromTxt.test_invalid_convertercCsHtd�}dd�}tj|dd|id�}tjddgd	d
gg�}t||�dS)Nz	q1,2
q3,4cSst|dd��S)NrP)rX)r!r"r"r#r�sz;TestFromTxt.test_tricky_converter_bug1666.<locals>.<lambda>r�r)r�rg�?g@g@g@)rrEr�rWr)r r!Zcnvrhrir"r"r#�test_tricky_converter_bug1666�s
z)TestFromTxt.test_tricky_converter_bug1666cCs~d}tjt|�dtdtid�}tjdgdd
tfdtfgd�}t||�tjt|�dtdtid�}tjd
ddg�}t||�dS)Nz2009; 23; 46rer)r�rVr�2009�7@�.r��|S4r�r�)rVgd�@)rrr)r�r)rEr�rrXr
rWr)r �dstrrhrir"r"r#�test_dtype_with_converters�s


z&TestFromTxt.test_dtype_with_converterscs�d}ddddd��ddddg}ttt�fdd�d�}tjt|�|dd|d�}tjjddd g|d�}t||�d!d"d#g}tjt|�|dd$d|d�}tjjd%d&d'g|d�}t||�dS)(Nz!1,5,-1,1:1
2,8,-1,1:n
3,3,-2,m:n
rrPr-r0)z1:1z1:nzm:1zm:n�e1rc�e2�e3�i2r}�i1cs�|j�S)N)r2)r`)�dmapr"r#r
szDTestFromTxt.test_dtype_with_converters_and_usecols.<locals>.<lambda>)rrPr-r0r�)rVr�r'rr�rR)rV)rVr�r2r'r)rrc)rrc)rr	)r}r
rw)rPr�rwrrw)r-rRrwrP���)r0r0rr0)rrc)rrc)r}r
)rrPr0)rPr�r)r-rRrP)r0r0r0)rYrE�
recfromcsvrZrecrWr)r rZdtyp�convrhrir")rr#�&test_dtype_with_converters_and_usecolss


z2TestFromTxt.test_dtype_with_converters_and_usecolscCs�d}dtfdtfg}dd�}d|i}tjt|�d||d�}tjdtd	dd�fd
tddd�fg|d
�}t||�ddtfdtfgfg}tt	d��tjt|�d||d�}WdQRXdtfdtfdgfg}tt	d��tjt|�d||d�}WdQRXdS)Nz0 1; 2001-01-01
                   2; 2002-01-31 rbrccSst|j�d�S)Nz%Y-%m-%d)r4rd)r!r"r"r#rsz4TestFromTxt.test_dtype_with_object.<locals>.<lambda>rPre)r�rVri�r-i�r~)rVZnestzNested fields.* not supported.*)
rYr[rEr�rrWrrr�NotImplementedError)r r�rfrgrrhrir"r"r#rjs(
z"TestFromTxt.test_dtype_with_objectcCsHtjtd�td�}|fdks"t�tjtd�td�}|fdksDt�dS)N�1)rV�1�stringsstring)rEr�rr[r�)r �parsedr"r"r#�#test_dtype_with_object_no_converter0sz/TestFromTxt.test_dtype_with_object_no_convertercCsHtd�}tj|ddtddtid�}tjdgd
dtfgd
�}t||�dS)Nzskip,skip,2001-01-01,1.0,skipr�r-r0)r�r'rVr2r�
2001-01-01��?r�|S10)rV)r-r0)rr)rr)rrEr�rXr
rWr)r r�rhrir"r"r#�'test_userconverters_with_explicit_dtype7sz3TestFromTxt.test_userconverters_with_explicit_dtypecCs�d}t��N}t|d��}|jd|d�WdQRXtj|ddtddtjjidd	�}WdQRXtjd
|j	d�dfgddtfgd�}t
||�dS)Nsϖr�sskip,skip,2001-01-01s	,1.0,skipr�r-r0zUTF-8)r�r'rVr2rr�z
2001-01-01g�?r�|U11)rV)r-r0)rr)rr�r$rEr�rX�compat�unicoderWr2r)r r�r�r�rhrir"r"r#�,test_utf8_userconverters_with_explicit_dtype@sz8TestFromTxt.test_utf8_userconverters_with_explicit_dtypecCsBtd�}tj|�}tjdddddgddd	d
dgg�}t||�dS)Nz1  2  3  4   5
6  7  8  9  10g�?g@g@g@g@g@g@g @g"@g$@)rrEr�rWr)r r�rhrir"r"r#�test_spacedelimiterLs

zTestFromTxt.test_spacedelimitercCsFd}tjt|�dd�}tjdddgdddgd	d
dgg�}t||�dS)Nz  1  2  3
  4  5 67
890123  4r0)r�rPr-rUr��Ciz�{)rEr�rrWr)r r�rhrir"r"r#�test_integer_delimiterTs"z"TestFromTxt.test_integer_delimitercCsFtd�}tj|tdddd�id�}tjddddd
gt�}t||�dS)Nz	1,2,3,,5
r�r0cSst|pd�S)Ni�i���)rY)r!r"r"r#r^sz*TestFromTxt.test_missing.<locals>.<lambda>)rVr�rrPr-i�r�i���)rrEr�rYrWr)r r�rhrir"r"r#r1[s

zTestFromTxt.test_missingcCsjd}tjt|�ddd�}tjd
tjdtjfdtjdfg�}tjddd
gtd	�}t|j|�t|j|�dS)Nz1	2	3
	2	
1		3r�T)r��usemaskrPr-r0r)rV)rPr-r0)rrr)rPrrP)rrPr)	rEr�rrW�nan�boolrr��mask)r rzrhZctrl_dZctrl_mr"r"r#�test_missing_with_tabsbs"z"TestFromTxt.test_missing_with_tabscCs�tjddgddggt�}t�}tj||�|jd�tj|tdd�}t||dd�df�tjdddgdddggt�}t�}tj||�|jd�tj|td	d�}t||dd�dd�f�|jd�tj|ttjddg�d�}t||dd�dd�f�dS)
NrPr-r0rUr)rVr2r�)rP)rPr-)rErWrXrr�r@r�r)r rir�rhr"r"r#rIls


zTestFromTxt.test_usecolscCsBd}tjt|�ddd�}tjd
dgd	d
�dD�d�}t||�dS)Nz1 2 3
4 5 6za, b, cza, c)r'r2rPr0rUr�cSsg|]}|tf�qSr")rX)r%r�r"r"r#r&�sz3TestFromTxt.test_usecols_as_css.<locals>.<listcomp>�ac)rV)rPr0)rUr�)rEr�rrWr)r r�rhr�r"r"r#�test_usecols_as_css�s


zTestFromTxt.test_usecols_as_csscCsZtd�}ddg}ddg}tj|d
tt||��d�}t|dd	d
g�t|dddg�dS)NzJOE 70.1 25.3
BOB 60.5 27.9rArBrCrDrr-)r2rVsJOEsBOBg�����L9@gfffff�;@)rr-)rrEr�r�r�r)r r�r'rHrhr"r"r#�"test_usecols_with_structured_dtype�sz.TestFromTxt.test_usecols_with_structured_dtypecCs*tjtd�dd�}t|tjddg��dS)Ns1 2 3
4 5 6r)r2g�?g@)rEr�rrrW)r rhr"r"r#�test_usecols_with_integer�sz%TestFromTxt.test_usecols_with_integercCsxtjd
dgdtfdtfgd�}d}td	d
�}tjt|�fddi|��}t||�tjt|�fddi|��}t||�dS)NrPr0rUr�rSr�)rVz1 2 3
4 5 6za, b, c)r'r2r)rPr0)rUr�rw)rrw)rSr�)rErWrXr�r�rr)r r�r�rNrhr"r"r#�test_usecols_with_named_columns�s

z+TestFromTxt.test_usecols_with_named_columnscCs`t��P}|jdd�t�}tj|�}t|tjg��tj|dd�}t|tjg��WdQRXdS)Nzgenfromtxt: Empty input file:)rZrP)r�)rr�rrEr�rrW)r r�r�rhr"r"r#r[�s
zTestFromTxt.test_empty_filecCs\td�}tjdtfddtfdtfgfg�}tj||ddd�}tjddg|d�}t||�dS)Nz1,2,3.0
4,5,6.0
rbrdr�r!r�T)rVr�r"rPr-�@rUr��@)rV�r-r,)rPr.�r�r-)rUr/)	rrErVrYrXr��marWr)r r�r�rhrir"r"r#�test_fancy_dtype_alt�s
"z TestFromTxt.test_fancy_dtype_altcCsltd�}tjddtfdtfdtdfg�}tj||d	�}tjd
ddd
ddgdddggfg|d	�}t||�dS)Nzaaaa  1.0  8.0  1 2 3 4 5 6r>rCrbrdrOr-r0)rVrPg�?g @rPrUr�r�)r>rC)r-r0)rrErVrXrYr�rWr)r r�rprbrSr"r"r#rQ�s zTestFromTxt.test_shaped_dtypecCs�td�}tdddd�}tj|fddd�|��}tjddgddgdtfdtfgd
�}t||�t|j|j�|j	d�tj|fddi|��}tjddgddgdt
fdt
fgd
�}t||�t|j|j�dS)Nz
A,B
0,1
2,N/Ar�zN/AT)r��missing_valuesr')rVr"rrPr-Fr��B)r%rVr")rrPrw)r-rw)FF)FT)rrPrw)r-rw)FF)FT)rr�rEr�r0rWrYrr%r@rX)r r�rNrhrir"r"r#�test_withmissing�s




zTestFromTxt.test_withmissingcCsd}tdddd�}dtfdtfdtfg}tjt|�fdd	i|��}tjddd d"gd#d$d%d&g|d�}t	||�||d<tjt|�fd'd(d)d�dd�|��}tjd*d,d/d1gd2d3d4d5g|d�}t	||�tjt|�fd6d7d8d�dd�|��}tjd9d;d>d@gdAdBdCdDg|d�}t	||�dS)ENz4A, B, C
0, 0., 0j
1, N/A, 1j
-9, 2.2, N/A
3, -99, 3jr�T)rVr�r'r�r3r�r2zN/Ar��rPi���?r4皙����@y8�@r0r��@)r%rVrV)rrPr-)r2r")rr3r�)rr5r6����)rPr:r7�����8��)r;r8r<���)r0r=r9)rrr)rrPr)rrrP)rrri����i����y�8��)rr5r6����)rPr>r7�����8��)r?r8r@���)r0rAr9)rrr)rrPr)rPrrP)rrPri����i����y�8��)rr5r6����)rPrBr7�����8��)rCr8rD���)r0rEr9)rrr)rrPr)rPrrP)rrPr)
r�rYrXr�rEr�rr0rWr)r r�Z
basekwargsZmdtyperhrir"r"r#�test_user_missing_values�s6





z$TestFromTxt.test_user_missing_valuesc	CsDtjdd gdtfdtfgd�}d}td	td
ddd
d�ddd!d�d�}tjt|�f|�}tjd"d$gdd�dD�d�}t||�tjt|�fdd&i|��}tjd'd)gdd�dD�d�}t||�d}tjt|�d	tddd�}tjddddgddddgg�}t||�tjt|�d	tdd*d�}tjddd+dgdd,ddgg�}t||�dS)-Nrr0rUi�rSr�)rVzN/A, 2, 3
4, ,???r�za,b,czN/Ar�z???)rr�r-)r�rVr'r2�filling_valuesr-cSsg|]}|tf�qSr")rY)r%r�r"r"r#r&�sz8TestFromTxt.test_user_filling_values.<locals>.<listcomp>�abcr2rPcSsg|]}|tf�qSr")rY)r%r�r"r"r#r&sr'z1,2,*,4
5,*,7,8
�*)r�rVr2rGr�r3rR)rr0����)rUrJi���)rr-r0����)rUrrKrw)rrw)rr0����)rUrLrwrwrw)rErWrYr�r�rr)r r�r�rNrhZdata2r"r"r#�test_user_filling_values�s.






z$TestFromTxt.test_user_filling_valuescCs^td�}tj|dddddd�}tjddgddgdtfdtfgd
�}t||�t|j|j�dS)NzA,B
0,1.5
2,-999.00r�z-999.0T)rVr�r2r'r"r��?r-g�?Fr�r3)r%rV)rrN��)r-rO)FF)FT)	rrEr�r0rWrYrXrr%)r r�rhrir"r"r#�test_withmissing_floats


z"TestFromTxt.test_withmissing_floatcCsVtd�}tj|dddd�}tjdddgdd	d
ggdddgdddggd�}t||�dS)
Nz1 2 3
4 5 6
z2,5T)rVr2r"rPr-r0rUr�r�r)r%)rrEr�r0rWr)r r�rhrir"r"r#�test_with_masked_column_uniforms

.z+TestFromTxt.test_with_masked_column_uniformcCsRtd�}tj|dddd�}tjddgddgdtfdtfd
tfgd�}t||�dS)NzTrue 2 3
False 5 6
z2,5T)rVr2r"rPr-r0rr�r�r�r�r�)r%rV)rPr-r0)rr�r�)rrPr)rrPr)rrEr�r0rWr$rYr)r r�rhrir"r"r#�test_with_masked_column_various s

z+TestFromTxt.test_with_masked_column_variouscs�dgd}xtd�D]}d|d|<qW|jdd�tdj|���td	dd
d��i}if��fdd
�	}tt||d�|d}tt|�d�t|t	j
ddd�dD�d���jd�tt
t	j�d	d
d�dS)Nz
1, 1, 1, 1, 1r�r�z2, 2, 2, 2 2rSrz
a, b, c, d, er�r�T)r�rVr'cstj�fddi���|d<dS)Nr�F�mtest)rEr�)�_ret)rN�mdatar"r#r�7sz)TestFromTxt.test_invalid_raise.<locals>.f)rTrSr�cSsg|]}|tf�qSr")rY)r%r�r"r"r#r&<sz2TestFromTxt.test_invalid_raise.<locals>.<listcomp>�abcde)rV)r�r')rj�insertrr�r�rrr�lenrErkr@rr�r�)r r�rg�retr�rSr")rNrUr#�test_invalid_raise*s


zTestFromTxt.test_invalid_raisecsdgd}xtd�D]}d|d|<qW|jdd�tdj|���td	dd
dd��i}if��fd
d�	}tt||d�|d}tt|�d�t|t	j
ddd�dD�d���jd�t	j�fddi���}tt|�d�t	j
ddd�dD�d�}d|dd�td�D�<t||�dS)Nz
1, 1, 1, 1, 1r�r�z2, 2, 2, 2 2rSrz
a, b, c, d, er�r�TF)r�rVr'r�cstj�fddi���|d<dS)Nr2rrUrS)rrU)rEr�)rT)rNrUr"r#r�Osz6TestFromTxt.test_invalid_raise_with_usecols.<locals>.f)rTrSr�cSsg|]}|tf�qSr")rY)r%r�r"r"r#r&Tsz?TestFromTxt.test_invalid_raise_with_usecols.<locals>.<listcomp>Zae)rVr2rPcSsg|]}|tf�qSr")rY)r%r�r"r"r#r&Ys�abr-cSsg|]}d|�qS)rSr")r%r�r"r"r#r&Zs)rrP)r-r-)
rjrWrr�r�rrrrXrErkr@r�)r r�rgrYr�rSrir")rNrUr#�test_invalid_raise_with_usecolsBs&

z+TestFromTxt.test_invalid_raise_with_usecolscCsRdgd}tdj|��}ddd�i}td|dd	�d
D�d�}tttj|f|�dS)Nz1, 1, 1, 1, -1.1r�r�rUcSsd|j�S)Nz(%s))r2)rbr"r"r#rbsz5TestFromTxt.test_inconsistent_dtype.<locals>.<lambda>r�cSsg|]}|tf�qSr")rY)r%r�r"r"r#r&dsz7TestFromTxt.test_inconsistent_dtype.<locals>.<listcomp>rV)r�rrV)rr�r�rr�rEr�)r r�rUrrNr"r"r#�test_inconsistent_dtype]s
z#TestFromTxt.test_inconsistent_dtypecCsLd}tjt|�dddd�}tjddgdtfdtfd
tfgd�}t||�dS)Nz0, 1, 2.3
4, 5, 6.7r�zf%02i)r�rV�
defaultfmtrrP�ffffff@rUr��������@Zf00Zf01Zf02)rV)rrPr_)rUr�r`)rEr�rrWrYrXr)r r�rSr�r"r"r#�test_default_field_formatgs

z%TestFromTxt.test_default_field_formatcCsFd}tjt|�dtdd�}tjdddgdd	d
ggtd�}t||�dS)Nz0, 1, 2.3
4, 5, 6.7r�zf%02i)r�rVr^gg�?gffffff@g@g@g������@)rV)rEr�rrXrWr)r r�rSr�r"r"r#�test_single_dtype_wo_namesps

z&TestFromTxt.test_single_dtype_wo_namescCsDd}tjt|�dtdd�}tjddgdd�d
D�d�}t||�dS)Nz0, 1, 2.3
4, 5, 6.7r�za, b, c)r�rVr'���?�ffffff@�@�@�������@cSsg|]}|tf�qSr")rX)r%r�r"r"r#r&~szBTestFromTxt.test_single_dtype_w_explicit_names.<locals>.<listcomp>rH)rV)rcrdre)rfrgrh)rEr�rrXrWr)r r�rSr�r"r"r#�"test_single_dtype_w_explicit_namesxs

z.TestFromTxt.test_single_dtype_w_explicit_namescCsDd}tjt|�dtdd�}tjddgdd�d
D�d�}t||�dS)Nza, b, c
0, 1, 2.3
4, 5, 6.7r�T)r�rVr'���?�ffffff@�@�@�������@cSsg|]}|tf�qSr")rX)r%r�r"r"r#r&�szBTestFromTxt.test_single_dtype_w_implicit_names.<locals>.<listcomp>rH)rV)rjrkrl)rmrnro)rEr�rrXrWr)r r�rSr�r"r"r#�"test_single_dtype_w_implicit_names�s

z.TestFromTxt.test_single_dtype_w_implicit_namescCsRd}tjt|�dtttfdd�}tjddgdtfdtfd
tfgd�}t||�dS)Nz0, 1, 2.3
4, 5, 6.7r�zf_%02i)r�rVr^r��?�ffffff@rU�@�������@Zf_00Zf_01Zf_02)rV)rrqrr)rUrsrt)rEr�rrYrXrWr)r r�rSr�r"r"r#�test_easy_structured_dtype�s
z&TestFromTxt.test_easy_structured_dtypecCsd}tddd�}tjdd��<}tjddtj�tjt|�f|�}t|dj	tjk�WdQRXtj
dgddtfdgd�}t||�tjdd��D}tjddtj�tjt|�fddi|��}t|dj	tjk�WdQRXtj
dgddtfdgd�}t||�dS)Nz01/01/2003  , 1.3,   abcder�)r�rVT)rhrirr�01/01/2003  ��������?�   abcder��|S12r�r��|S8)rVZ	autostrip�
01/01/2003rV�|S10�|S5)rvrwrx)r�ry)r�rz)r{rwrV)r�r|)r�r})
r�rlrmrnrEr�r�rrr�rWrXr)r r�rNr�rSr�r"r"r#�test_autostrip�s 
zTestFromTxt.test_autostripcCs�d}tjt|�dddd�}dtfdtfdtfg}tjd|d�}t||�tjt|�dddddd
�}dtfdtfdtfg}tjd|d�}t||�tjt|�ddddd�}dtfdtfdtfg}tjd|d�}t||�dS)NzA.A, B (B), C:C
1, 2, 3.14r�T)r�r'rV�AA�B_B�CCrPr-���Q�	@)rVr)r�r'rV�
replace_space�deletecharszA.AzB (B)zC:C)r�r'rVr�zB_(B))rPr-r�)rPr-r�)rPr-r�)rEr�rrYrXrWr)r rzrh�
ctrl_dtyper�r"r"r#�test_replace_space�s$





zTestFromTxt.test_replace_spacecCs�d}tjt|�ddtd�}dtfdtfdtfg}tjd|d�}t||�tjt|�ddtddd
�}dtfdtfdtfg}tjd|d�}t||�tjt|�ddtdd�}dtfdtfdtfg}tjd|d�}t||�dS)NzA.A, B (B), C:C
1, 2, 3r�T)r�r'rVrr�r�rPr-r0)rVr)r�r'rVr�r�zA.AzB (B)zC:C)r�r'rVr�zB_(B))rPr-r0)rPr-r0)rPr-r0)rEr�rrYrWr)r rzrhr�r�r"r"r#�test_replace_space_known_dtype�s$





z*TestFromTxt.test_replace_space_known_dtypecCs�d}tddd�}tjddgdd�dD�d�}tjt|�fddi|��}t||�tjddgdd�dD�d�}tjt|�f|�}dS)NzA,,C
0,1,2
3,4,5r�T)r�r'rrPr-r0rUr�cSsg|]}|tf�qSr")rY)r%r�r"r"r#r&�sz5TestFromTxt.test_incomplete_names.<locals>.<listcomp>r�r�r�)rVrVcSsg|]}|tf�qSr")rX)r%r�r"r"r#r&�s)rrPr-)r0rUr�)r�r�r�)rrPr-)r0rUr�)r�r�r�)r�rErWr�rr)r r�rNr�rhr"r"r#�test_incomplete_names�s


z!TestFromTxt.test_incomplete_namescCsPd}tjt|�tttfdd�}tjd
dgdtfd
tfdtfgd�}t||�dS)Nz1 2 3
 4 5 6rS)rVr'rPr-r0rUr�r�r�r�)rV)rPr-r0)rUr�r�)rEr�rrYrXrWr)r r�rhr�r"r"r#�test_names_auto_completion�s

z&TestFromTxt.test_names_auto_completioncCs�d}d}tjt|�tttfddd	d
�}t|jj|�tjt|�tttfdd
d	d
�}t|jj|�tjt|�tddd	d
�}t|jj|�dS)Nz'A,B,C,D,E
0,1,2,3,4
0,1,2,3,4
0,1,2,3,4r�r��Er�rr-rUT)rVr�r2r')r�r�r�)rr-rU)r�r�r�)r�r�r�)rEr�rrYrrVr')r r�Z
ctrl_namesrhr"r"r#�test_names_with_usecols_bug1636�s







z+TestFromTxt.test_names_with_usecols_bug1636cCs�d}tdddd�}tjddgdtfd
tfdtfgd�}tjt|�f|�}t||�tdddd�}tjddgdtfd
tfdtfgd�}tjt|�f|�}t||�dS)Nz-    A    B   C
    0    1 2.3
   45   67   9.r�rUT)r�r'rVrrP�ffffff@r�r�"@r�r3r�)rV)r�r�rU)rrPr�)r�rr�)rrPr�)r�rr�)r�rErWrYrXr�rr)r r�rNr�rhr"r"r#�test_fixed_width_namess


z"TestFromTxt.test_fixed_width_namescCsXd}tdddd�}tjdddgdd
dgd	d
dggtd�}tjt|�f|�}t||�dS)Ns1, 2, 3
1, , 5
0, 6, 
r�i�)r�rVrGrPr-r0r�rr�)rVi���i���i���)r�rErWrYr�rr)r r�rNr�rhr"r"r#�test_filling_valuess
&zTestFromTxt.test_filling_valuescCs�tjdd��@}tjddtj�tjtd�dddd�}t|djtjk�WdQRXt	|d	d
�tjdd��@}tjddtj�tjtd�dddd�}t|djtjk�WdQRXt	|d	d�dS)
NT)rhrirztest1,testNonetherestofthedatar�)rVr�r�rrPstestNonetherestofthedataztest1, testNonetherestofthedatas testNonetherestofthedata)
rlrmrnrEr�r�rrr�r)r r�rhr"r"r#�test_comments_is_nones

z!TestFromTxt.test_comments_is_nonecCsfd}d}d|d}|||}tjdd��@}tjddtj�tjt|�ddd	d
�}t|djtjk�WdQRXt	|dd
�t	|dd|�t	|dd�tjt|�ddd	dd�}t	|dd�t	|dd|j
d��t	|dd�tjdd��D}tjddtj�tjtd|�ddd	d
�}t|djtjk�WdQRXt	|dd�t	|dd|�dS)Ns���snorm1,norm2,norm3
stest1,testNonethes,test3
T)rhrirr�)rVr�r�rrPstest1stestNonether-stest3r/)rVr�r�r��test1�testNonethe�test3s
0,testNonether�r�)rPr)rPrP)rPr-)rPr)rPrP)rPr-)rlrmrnrEr�r�rrr�rr2)r r/�norm�encr!r�rhr"r"r#�test_latin1&s2

zTestFromTxt.test_latin1cCs6d}|jt|�ddd�}t|tj|jd�j���dS)Ns��h i jzUTF-16)rVr�)rrrrErWr2r�)r rr�r"r"r#�test_binary_decode_autodtypeBsz(TestFromTxt.test_binary_decode_autodtypec
Cs�d}d}d|d}|||}tjdd��@}tjddtj�tjt|�ddd	d
�}t|djtjk�WdQRXtj	dd
dgdd|dgdd
dgg�}t
||�dS)Nsϖsnorm1,norm2,norm3
stest1,testNonethes,test3
T)rhrirr�)rVr�r�rsnorm1snorm2snorm3stest1stestNonethestest3)rlrmrnrEr�r�rrr�rWr)r r�r�r�r!r�rh�ctlr"r"r#�test_utf8_byte_encodingGs
z#TestFromTxt.test_utf8_byte_encodingcCs�d}t���}t|d��}|jd|dd�WdQRXtj|ddddd�}tjd	d
|jd�dgd	d
|jd�dggtjd�}t||�t|d��}|jd
|�WdQRXtj|ddddd�}t	|dd�t	|dd
|jd��WdQRXdS)Nsϖr�stest1,testNonethes,test3
r-r�zUTF-8)rVr�r�r�r�r�r�)rVs
0,testNonether�rr�)
rr�r$rEr�rWr2r�rr)r r�r�r�rhr�r"r"r#�test_utf8_fileWs" 





zTestFromTxt.test_utf8_filec	#Cs"d}d}ytj�}|j|�Wn"ttfk
r@tjd�YnXt���}tj	|d��4}|j
d�|j
d|d�|j
d|d	�WdQRXtjd
d��<}tj
dd
tj�tj|dddd�}t|djtjk�WdQRXtjdddgd|dgdd|dggtjd�}t||�WdQRXdS)NuϖuöüözTSkipping test_utf8_file_nodtype_unicode, unable to encode utf8 in preferred encodingr�znorm1,norm2,norm3
znorm1,z,norm3
ztest1,testNonethez,test3
T)rhrirr�)rVr�r�rZnorm1Znorm2Znorm3r�r�r�)rV)r�r�r�UnicodeError�ImportErrorrr�skiprrr�r$rlrmrnrEr�r�rr�rWr�r)	r r�r/r�r�r�r�rhr�r"r"r#�test_utf8_file_nodtype_unicodels0


z*TestFromTxt.test_utf8_file_nodtype_unicodecCs�td�}tdddd�}tj|f|�}tjddgd
tfdtfgd�}tt|tj��t	||�td
�}tj|fddd�|��}t
jddgddgd
tfdtfgd�}t	||�t	|j|j�t	|jddg�dS)NzA,B
0,1
2,3r�zN/AT)r�r2r'rrPr-r0r�r3)rVz
A,B
0,1
2,N/A)rVr"F)r%rV)rrP)r-r0)rrPrw)r-rw)FF)FT)
rr�rE�
recfromtxtrWrYrrC�recarrayrr0r%r�)r r�rNrhrir"r"r#�test_recfromtxt�s



zTestFromTxt.test_recfromtxtcCs�td�}tdddd�}tj|fddi|��}tjddgd
tfdtfgd�}tt|tj��t	||�td
�}tj|fddd�|��}t
jdd!gd"d#gd
tfdtfgd�}t	||�t	|j|j�t	|jddg�td�}tj|dd�}tjd$d%gdtfdtfgd�}tt|tj��t	||�td�}dtfdt
fg}tj|d|d�}tjd&d'g|d�}tt|tj��t	||�td�}tj|ddd�id�}tjd(d)gdtdffgd�}t	|j|j�t	||�dS)*NzA,B
0,1
2,3zN/AT)r2r'�case_sensitiverVrrPr-r0r�r3)rVz
A,B
0,1
2,N/A)rVr"F)r%rV)r2rSr�)r2rVzcolor
"red"
"blue"cSs
|jd�S)N�")rd)rbr"r"r#r�sz-TestFromTxt.test_recfromcsv.<locals>.<lambda>)r�red�blue�colorrU)rrP)r-r0)rrPrw)r-rw)FF)FT)rrP)r-r0)rrP)r-r0)r�)r�)rr�rEr
rWrYrrCr�rr0r%r�rXr
rV)r r�rNrhrirVr"r"r#�test_recfromcsv�sB







zTestFromTxt.test_recfromcsvc
Cs�d}t|�}tj|dd�}tj|�}t|ddgddgddgg�t|d	d
gddgg�tttjt|�d
d�d}tjt|�dd�}tjddgddgg�}t||�tttjt|�ddd�tttjt|�dd�t���}|jt	�tjt|�ddd�}tjddgddgddgddgg�}t||�tjt|�ddd�}tjddgddgddgddgg�}t||�WdQRXd}t|�}tj|dddd�}tjdd d!gd"d#gd�}t||�tj|d|j
d�}tjd$d%gd&d'gd�}t||�dS)(Nz1 2
3 4
5 6
7 8
9 10
r0)r�rPr-rUr�r�r3rRr4rSrz1 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�)r0r�)r�r�)r�r�)r�r�)r0r�)rrEr�rrr�rWrr�rrV)r r�rzZa1Za2rhrir�r"r"r#r��s@


"
"

zTestFromTxt.test_max_rowscCsxtjd�jd
�}d}x^|D]V}d|d}t��0}t|d	��}|j|�WdQRXtj|�}WdQRXt||�qWdS)Nr�r-r0r��
r�z0 1 2z3 4 5r�)r-r0)r�r�r�)rErrrr�r$r�r)r rmrrr�r>r�rr"r"r#�test_gft_using_filename	s
z#TestFromTxt.test_gft_using_filenamec	Cs�tjd�jd
�}d}x�|D]�}d|d}t�}tj|d	d
��}|jt|��WdQRXtdd��6}t	|d	��}|j|�WdQRXt
tj|�|�WdQRXqWdS)Nr�r-r0r��
r�z0 1 2z3 4 5r�)�fileobjrz.gz2)r�)r-r0)r�r�r�)rErrrr�GzipFiler$rrr�rr�)	r rrrr�r!r�r>r�r"r"r#�test_gft_from_gzip	s
zTestFromTxt.test_gft_from_gzipcCs(dd�}tj|��}t|tjd��dS)Ncss$xtd�D]}td|�Vq
WdS)NrSz%d)rjr)rgr"r"r#r�!	sz3TestFromTxt.test_gft_using_generator.<locals>.countrS)rEr�rr)r r�rr"r"r#�test_gft_using_generator	sz$TestFromTxt.test_gft_using_generatorcCs�td�}tj|dd�}t|jjdddg�t|jdtk�t|jdtjk�t|jdtj	k�t
|dd�t|dd�t|dd�dS)	Nz%73786976294838206464 17179869184 1024)rVr�r�r�gDli)rrEr�rrVr'rrXrE�int_r)r r�rhr"r"r#�test_auto_dtype_largeint(	sz$TestFromTxt.test_auto_dtype_largeintN)Sr)r*r+r�rEr�rrerZr]r�r>r�r�r�r�r�rNr�r�r�r�r�r5r�r�r�rar�r�rrrjrrrrr!r1r&rIr(r)r*r+r[r1rQr4rFrMrPrQrRrZr\r]rarbrirprur~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@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�
TestPathUsagecCsXtdd��D}t|�}tjddgddgg�}tj||�tj|�}t||�WdQRXdS)Nz.txt)r�g�������?r-r0rU)rrrErWr�r�r)r r�rSrbr"r"r#�test_loadtxtD	s
zTestPathUsage.test_loadtxtcCsZtdd��F}t|�}tjddgddggt�}tj||�tj|�}t||�WdQRXdS)Nz.npy)r�rPr-r0rU)rrrErWrYrwrFr)r r�rSr�r"r"r#�test_save_loadL	s
zTestPathUsage.test_save_loadcCs`tdd��L}t|�}tjddgddggt�}tj||�tj|dd�}t||�~WdQRXdS)	Nz.npy)r�rPr-r0rUr`)r_)rrrErWrYrwrFr)r r�rSr�r"r"r#�test_save_load_memmapU	s
z#TestPathUsage.test_save_load_memmapcCs�tdd��n}t|�}tjddgddggt�}tj||�tj|dd�}d	|d
d
<d	|d
d
<~tj|�}t||�WdQRXdS)Nz.npy)r�rPr-r0rUzr+)r_r�r)rrrErWrYrwrFr)r r�rSr�r�r"r"r#�test_save_load_memmap_readwrite`	s
z-TestPathUsage.test_save_load_memmap_readwritecCsTtdd��@}t|�}tj|dd�tj|��}t|dd�WdQRXWdQRXdS)Nz.npz)r�zplace holder)r�r�)rrrEr{rFr)r r�r�r"r"r#�test_savez_loadm	s
zTestPathUsage.test_savez_loadcCsPtdd��<}t|�}tj|dd�tj|�}t|dd�|j�WdQRXdS)Nz.npz)r�zplace holder)r�r�)rrrEZsavez_compressedrFrrD)r r�r�r"r"r#�test_savez_compressed_loadu	s
z(TestPathUsage.test_savez_compressed_loadcCsPtdd��<}t|�}tjddg�}tj||�tj|�}t||�WdQRXdS)	Nz.txt)r�rPr-r0rU)rPr-)r0rU)rrrErWr�r�r)r r�rSr�r"r"r#�test_genfromtxt~	s
zTestPathUsage.test_genfromtxtcCsttdd��`}t|�}|jd��}|jd�WdQRXtjddgddggtd	�}tj|td	�}t||�WdQRXdS)
Nz.txt)r�r�z1 2
3 4rPr-r0rU)rV)	rrr�r$rErWrYr�r)r r�r�rirhr"r"r#�test_ndfromtxt�	szTestPathUsage.test_ndfromtxtcCsjtdd��V}t|�}|jd��}|jd�WdQRXtj|ddd�}tjddg�}t||�WdQRXdS)Nz.txt)r�r�z1,2,3.0
4,5,6.0
r�T)r�r"��?�@�@�@�@�@)r�r�r�)r�r�r�)	rrr�r$rEr�r0rWr)r r�r�rhrir"r"r#�test_mafromtxt�	szTestPathUsage.test_mafromtxtcCs�tdd���}t|�}|jd��}|jd�WdQRXtdddd�}tj|f|�}tjddgd
tfdtfgd�}t	t
|tj��t||�WdQRXdS)Nz.txt)r�r�zA,B
0,1
2,3r�zN/AT)r�r2r'rrPr-r0r�r3)rV)rrP)r-r0)
rrr�r$r�rEr�rWrYrrCr�r)r r�r�rNrhrir"r"r#r��	s
zTestPathUsage.test_recfromtxtcCs�tdd���}t|�}|jd��}|jd�WdQRXtdddd�}tj|fddi|��}tjddgd
tfdtfgd�}t	t
|tj��t||�WdQRXdS)Nz.txt)r�r�zA,B
0,1
2,3zN/AT)r2r'r�rVrrPr-r0r�r3)rV)rrP)r-r0)
rrr�r$r�rEr
rWrYrrCr�r)r r�r�rNrhrir"r"r#r��	s
zTestPathUsage.test_recfromcsvN)r)r*r+r�r�r�r�r�r�r�r�r�r�r�r"r"r"r#r�B	s	
	
r�cCs`tjjd�}t�}tj|dd�}tj||�|j�|jd�tj|dd�}ttj	|�|�dS)Nr�r�)r�rrr`)r�r�)
rEr�rrr�rwrDr@rrF)rSr!r�r"r"r#�test_gzip_load�	s
r�c@s$eZdZdd�Zdd�Zdd�ZdS)�
JustWritercCs
||_dS)N)�base)r r�r"r"r#r�	szJustWriter.__init__cCs|jj|�S)N)r�r$)r r!r"r"r#r$�	szJustWriter.writecCs
|jj�S)N)r�r?)r r"r"r#r?�	szJustWriter.flushN)r)r*r+rr$r?r"r"r"r#r��	sr�c@s&eZdZdd�Zdd�Zd	dd�ZdS)
�
JustReadercCs
||_dS)N)r�)r r�r"r"r#r�	szJustReader.__init__cCs|jj|�S)N)r�r�)r r}r"r"r#r��	szJustReader.readrcCs|jj||�S)N)r�r@)r �off�whencer"r"r#r@�	szJustReader.seekN)r)r)r*r+rr�r@r"r"r"r#r��	sr�cCsTtjjd�}t�}t|�}tj||�|j�|jd�t|�}ttj	|�|�dS)Nr�r)r�r�)
rEr�rr�rwr?r@r�rrF)rSr!r�r"r"r#�test_ducktyping�	s
r�cCs�t�}tj|dd�}|jd�|j�|jd�tdd��4}t|d��}|j|j��WdQRXt	j
|�}WdQRX|j�t|dd	d
g�dS)Nr�)r�rs1 2 3
rz.gz)r�r�rPr-r0)rrr�r$rDr@rr�r�rEr�r)r!r�r>r�rr"r"r#�test_gzip_loadtxt�	s

r�cCsXt�}tj|dd�}|jd�|j�|jd�tj|dd�}ttj|�dddg�dS)	Nr�)r�rs1 2 3
rr`rPr-r0)	rrr�r$rDr@rrEr�)r!r�r"r"r#�test_gzip_loadtxt_from_string
s

r�cCs�t�}tjd�}tjd�}tj|||d�|jd�tj|�}td|k�td|k�td|j�k�td|j�k�x,|j�D] \}}t|d	k�t	|j
d
�q�Wtt|j��dk�x|D]}t|dk�q�Wtd|j�k�dS)Nr0)rbrdrrbrdr-)r0r0)r0r0)rbrd)r0r0)rbrd)rrEr�r{r@rFr�keys�itemsrrRrX)r!rbrdr�r�rSr"r"r#�test_npzfile_dict
s"




r�zPython lacks refcounts)r^cCs�t�}tj|dddg�|jd�t��tj|�WdQRX|jd�d
dg}t��.tjtd�|d	�}t|tj	dg|d	��WdQRXdS)NrPr-r0rrS�u1r�z0 1 2 3)rV)rSr�r-)r�r�r-�rrP�r-r0)r�r�)
rrEr{r@rrFr�rrrW)r�rprbr"r"r#�test_load_refcount&
s

r�l)N)OrAr�rrKr�r3rlrr�rrZpathlibr�tempfilerrrrr��multiprocessingrr�ctypesr	ZnumpyrEZnumpy.mar0Znumpy.lib._iotoolsr
rZnumpy.compatrr
Znumpy.ma.testutilsrZ
numpy.testingrrrrrrrrrrrrrZnumpy.testing._private.utilsrr�maxsizer�rr�r�rr�r4r6rvrzr�r�rr�r�r�r�r�r�r�r�r�r�rsrtr�r"r"r"r#�<module>s�
<



kHu<yu