U
    M»{j�“ ã                   @   s”  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlZd dlmZmZ d dlmZ d dlZd dlmZ d dlmZmZ d d	lmZ d d
l m!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 G dd„ deƒZ3e j4dkZ5zd dl6Z6dZ7W n e8k
�rt   dZ7Y nX zd dl9Z9dZ:W n e8k
�r    dZ:Y nX d8dd„Z;G dd„ dƒZ<G dd„ de<ƒZ=G dd„ de<ƒZ>G dd„ dƒZ?G dd„ dƒZ@G dd„ de@ƒZAG d d!„ d!ƒZBG d"d#„ d#e@ƒZCG d$d%„ d%ƒZDd&d'„ ZEG d(d)„ d)ƒZFG d*d+„ d+ƒZGd,d-„ ZHd.d/„ ZId0d1„ ZJd2d3„ ZKe	jLjMe, d4d5�d6d7„ ƒZNdS )9é    N)ÚPath)ÚNamedTemporaryFile)ÚBytesIOÚStringIO)Údatetime)ÚProcessÚValue)Úc_bool)ÚConverterErrorÚConversionWarning©Úasbytes)Úassert_equal)Úassert_warnsÚassert_Úassert_raises_regexÚassert_raisesÚassert_allcloseÚassert_array_equalÚtemppathÚtempdirÚIS_PYPYÚHAS_REFCOUNTÚsuppress_warningsÚassert_no_gc_cyclesÚassert_no_warningsÚbreak_cycles)Úrequires_memoryc                   @   s*   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	S )ÚTextIOzõHelper IO class.

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

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

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

        Ú	save_kwdsÚ	load_kwdsZallow_pickleTÚfile_on_diskF)ÚdeleteÚarr_reloadedr   Úwin32N)Úgetr   Únamer   Ú
isinstanceÚcloseÚlocalsÚnpÚlibÚnpyioZNpzFileÚosÚremoveÚflushÚseekÚsysÚplatformÚloadÚarrr=   )r#   Z	save_funcÚargsÚkwargsr9   r:   r;   Ztarget_fileZ	load_filer=   rN   r%   r%   r&   Ú	roundtripM   s.    




zRoundtripTest.roundtripc                 C   s‚   |   |¡ | j |dd� |   t |¡¡ | j t |¡dd� |jd dkr~|   t |¡dd … ¡ | j t |¡dd … dd� d S )NT)r;   r   é   )rQ   rD   ÚasfortranarrayÚshape©r#   Úar%   r%   r&   Úcheck_roundtrips}   s    
zRoundtripTest.check_roundtripsc                 C   sª   t  g t¡}|  |¡ t  ddgddggt¡}|  |¡ t  ddgddggt¡}|  |¡ t jddgddggt jd	�}|  |¡ t jddgddggt jd	�}|  |¡ d S )
NrR   é   r1   é   y      ð?      @y       @      @y      @      @y      @       @©Údtype)rD   ÚarrayÚfloatrW   ÚintZcsingleZcdoublerU   r%   r%   r&   Ú
test_array‡   s    



zRoundtripTest.test_arrayc                 C   s<   t  g t¡}|  |¡ t  ddgddggt¡}|  |¡ d S ©NrR   rX   r1   rY   )rD   r\   ÚobjectrW   rU   r%   r%   r&   Útest_array_object—   s    
zRoundtripTest.test_array_objectc                 C   s"   t  ddddgt¡}|  |¡ d S r`   )rD   r\   r^   rQ   rU   r%   r%   r&   Útest_1Dž   s    zRoundtripTest.test_1Dr>   zFails on Win32©Úreasonc                 C   sX   t  ddgddgg¡}| j|dddid� t  ddgddgg¡}| j|dddid� d S )	NrR   g      @rY   g333333@TÚ	mmap_modeÚr)r;   r:   )rD   r\   rQ   rS   rU   r%   r%   r&   Ú	test_mmap¢   s    zRoundtripTest.test_mmapc                 C   s$   t jddgddgd�}|  |¡ d S )N©rR   rX   ©r1   rY   ©ÚxÚi4©Úyrm   rZ   )rD   r\   rW   rU   r%   r%   r&   Útest_recordª   s    zRoundtripTest.test_recordc              	   C   sT   dd„ t dƒD ƒ}tjd|d�}tjdd�� t dd	t¡ |  |¡ W 5 Q R X d S )
Nc                 S   s   g | ]}d | d t f‘qS )ú%déd   ©r]   ©r(   Úir%   r%   r&   r)   °   s     z1RoundtripTest.test_format_2_0.<locals>.<listcomp>éô  iè  rZ   T©ÚrecordÚalwaysr   )ÚrangerD   ÚonesÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningrW   )r#   ÚdtrV   r%   r%   r&   Útest_format_2_0®   s
    zRoundtripTest.test_format_2_0N)r,   r-   r.   rQ   rW   r_   rb   rc   ÚpytestÚmarkÚskipifrK   rL   rh   rp   Úslowr�   r%   r%   r%   r&   r8   L   s   0

r8   c                   @   s   e Zd Zdd„ ZdS )ÚTestSaveLoadc                 O   s\   t j| tjf|ž|Ž t| jd | jƒ t| jd j| jjƒ t| jd jj	| jjj	ƒ d S )Nr   )
r8   rQ   rD   Úsaver   rN   r=   r[   ÚflagsÚfnc)r#   rO   rP   r%   r%   r&   rQ   ¸   s    zTestSaveLoad.roundtripN)r,   r-   r.   rQ   r%   r%   r%   r&   r†   ·   s   r†   c                   @   sv   e Zd Zdd„ Zejje dd�ejjdd„ ƒƒZ	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ Zejjdd„ ƒZdd„ ZdS )ÚTestSavezLoadc              	   O   s’   t j| tjf|ž|Ž zPt
| jƒD ]@\}}| jd|  }t||ƒ t|j|jƒ t|jj|jjƒ q"W 5 | jjrŒ| jj ¡  t | jjj	¡ X d S )Nzarr_%d)r8   rQ   rD   Úsavezr=   ZfidrB   rG   rH   r@   Ú	enumeraterN   r   r[   rˆ   r‰   )r#   rO   rP   ÚnrN   Zreloadedr%   r%   r&   rQ   À   s    
zTestSavezLoad.roundtripzNeeds 64bit platformrd   c              	   C   s\   d}t j|t jd�}tddd��2}t j||d� ~t  |¡}|d }| ¡  ~W 5 Q R X d S )Nl      rZ   Znumpy_test_big_arrays_ú.npz)ÚprefixÚsuffix©rV   rV   )rD   ÚemptyÚuint8r   r‹   rM   rB   )r#   ÚLrV   ÚtmpZnpfiler%   r%   r&   Útest_big_arraysÎ   s    
zTestSavezLoad.test_big_arraysc                 C   s@   t  ddgddggt¡}t  ddgddggt¡}|  ||¡ d S )	NrR   rX   r1   rY   ù      ð?       @ù       @      @ù      @      Àù      @      (@)rD   r\   r]   ÚcomplexrQ   )r#   rV   Úbr%   r%   r&   Útest_multiple_arraysÛ   s    z"TestSavezLoad.test_multiple_arraysc                 C   sz   t  ddgddggt¡}t  ddgddggt¡}tƒ }t j|||d	� | d
¡ t  |¡}t||d ƒ t||d ƒ d S ©NrR   rX   r1   rY   r—   r˜   r™   rš   )Úfile_aÚfile_br   rŸ   r    )	rD   r\   r]   r›   r   r‹   rJ   rM   r   ©r#   rV   rœ   ÚcÚlr%   r%   r&   Útest_named_arraysà   s    

zTestSavezLoad.test_named_arraysc                 C   s’   t  ddgddggt¡}t  ddgddggt¡}tƒ }t j|||d	� | d
¡ t  |¡}tt	t
|jƒƒddgƒ t||jjƒ t||jjƒ d S rž   )rD   r\   r]   r›   r   r‹   rJ   rM   r   ÚsortedÚdirÚfrŸ   r    r¡   r%   r%   r&   Útest_BagObjê   s    

zTestSavezLoad.test_BagObjc                    sX   dd„ ‰g ‰ ‡ ‡fdd„t dƒD ƒ}|D ]}| ¡  q(|D ]}| ¡  q:ˆ rTtˆ ƒ‚d S )Nc                 S   sh   t dd��T}tj dd¡}ztj||d� W n, tk
rX } z|  |¡ W 5 d }~X Y nX W 5 Q R X d S )NrŽ   ©r�   rv   )rN   )r   rD   ÚrandomZrandnr‹   ÚOSErrorÚappend)Z
error_listr•   rN   Úerrr%   r%   r&   Úwriterù   s    z9TestSavezLoad.test_savez_filename_clashes.<locals>.writerc                    s   g | ]}t jˆˆ fd �‘qS )©ÚtargetrO   )Ú	threadingÚThread)r(   Új©Úerrorsr®   r%   r&   r)     s   ÿz=TestSavezLoad.test_savez_filename_clashes.<locals>.<listcomp>r1   )rz   ÚstartÚjoinÚAssertionError)r#   ÚthreadsÚtr%   r´   r&   Útest_savez_filename_clashesõ   s    ÿ

z)TestSavezLoad.test_savez_filename_clashesc              
   C   sœ   t dd��ˆ}t|dƒ�}tj|dd� W 5 Q R X t|ddƒ�L}| d¡ t|j ƒ t |¡d	  t|j ƒ | d¡ t|j ƒ W 5 Q R X W 5 Q R X d S )
NrŽ   r©   ÚwbúLOVELY LOAD©ÚdataÚrbi'  r   r¿   )r   ÚopenrD   r‹   rJ   r   ÚclosedrM   )r#   r•   Úfpr%   r%   r&   Útest_not_closing_opened_fid  s    

z)TestSavezLoad.test_not_closing_opened_fidc                 C   s®   t dd��š}tj|dd� tƒ �z}| t¡ tddƒD ]^}zJzt 
|¡d  W n2 tk
r€ } zd| }t|ƒ‚W 5 d }~X Y nX W 5 tr’t 	¡  X q6W 5 Q R X W 5 Q R X d S )	NrŽ   r©   r½   r¾   rR   i  r¿   z#Failed to load data from a file: %s)r   rD   r‹   r   ÚfilterÚResourceWarningrz   r   ÚgcZcollectrM   Ú	Exceptionr¸   )r#   r•   Úsupru   ÚeÚmsgr%   r%   r&   Útest_closing_fid  s    
zTestSavezLoad.test_closing_fidc              	   C   sR   d}t d|d��8}tj|dd� t |¡}|jj}| ¡  t|jƒ W 5 Q R X d S )NZ&numpy_test_closing_zipfile_after_load_rŽ   )r�   r�   úplace holder©Úlab)	r   rD   r‹   rM   ÚziprÃ   rB   r   rÂ   )r#   r�   r•   r¿   rÃ   r%   r%   r&   Útest_closing_zipfile_after_load5  s    
z-TestSavezLoad.test_closing_zipfile_after_loadN)r,   r-   r.   rQ   r‚   rƒ   r„   ÚIS_64BITr…   r–   r�   r¤   r¨   r»   rÄ   Z	slow_pypyrÌ   rÑ   r%   r%   r%   r&   rŠ   ¿   s   

rŠ   c                   @   sð   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zej d#d$d%g¡ej d&eeg¡d'd(„ ƒƒZejjejd)kd*d+�ejjed,d-�d.d/„ ƒƒƒZd0S )1ÚTestSaveTxtc                 C   sÄ   t  ddgddggt¡}d}tƒ }t j|||d� | d¡ t| ¡ t|d | d	 d
 ƒt|d | d	 d ƒgƒ t  ddgddggt	¡}tƒ }t j||dd� | d¡ t| ¡ ddgƒ d S )NrR   rX   r1   rY   z%.18e©r7   r   ú Ú
ri   rj   rq   ó   1 2
ó   3 4
)
rD   r\   r]   r   ÚsavetxtrJ   r   Ú	readlinesr   r^   )r#   rV   r7   r¢   r%   r%   r&   r_   D  s    
ÿÿ
zTestSaveTxt.test_arrayc                 C   sR   t  ddddgt¡}tƒ }t j||dd� | d¡ | ¡ }t|dd	d
dgƒ d S )NrR   rX   r1   rY   rq   rÔ   r   s   1
s   2
s   3
s   4
)rD   r\   r^   r   rÙ   rJ   rÚ   r   ©r#   rV   r¢   r+   r%   r%   r&   rc   T  s    
zTestSaveTxt.test_1Dc                 C   s@   t ƒ }tttj|t d¡ƒ tttj|t dgdggg¡ƒ d S )NrR   rX   )r   r   Ú
ValueErrorrD   rÙ   r\   ©r#   r¢   r%   r%   r&   Ú
test_0D_3D\  s    zTestSaveTxt.test_0D_3Dc                 C   sL   t jddgddgd�}tƒ }t j||dd� | d¡ t| ¡ d	d
gƒ d S )Nri   rj   rk   rn   rZ   rq   rÔ   r   r×   rØ   ©rD   r\   r   rÙ   rJ   r   rÚ   ©r#   rV   r¢   r%   r%   r&   Útest_structureda  s
    
zTestSaveTxt.test_structuredc                 C   sV   t jddgdddgd�}tƒ }t j||ddg d	d
� | d¡ t| ¡ ddgƒ d S )N©rR   rX   r1   ©rY   é   é   )Úfoorm   )Úbarrm   )Úbazrm   rZ   ræ   rè   rq   rÔ   r   s   1 3
s   4 6
rß   rà   r%   r%   r&   Útest_structured_paddedh  s    
  ÿ
z"TestSaveTxt.test_structured_paddedc              	   C   sb   t jddddgd�}|ddg }tdd	��.}t|ƒ}t  ||¡ t  |¡}t||ƒ W 5 Q R X d S )
NrR   rk   rn   )ÚzÚf4rZ   rl   rê   ú.npyr©   )rD   r{   r   r   r‡   rM   r   )r#   rV   ÚvÚpathr¿   r%   r%   r&   Útest_multifield_viewr  s    
z TestSaveTxt.test_multifield_viewc                 C   sN   t  ddgddgg¡}tƒ }t j||ddd� | d¡ t| ¡ d	d
gƒ d S )Nç      ð?ç       @ç      @ç      @ú,rq   )Ú	delimiterr7   r   s   1,2
s   3,4
rß   rà   r%   r%   r&   Útest_delimiter{  s
    
zTestSaveTxt.test_delimiterc                 C   sÐ   t  ddg¡}tƒ }t j||ddgd� | d¡ t| ¡ ddgƒ tƒ }t j||d	d� | d¡ | ¡ }t|d
dgƒ tƒ }t j||d	dd� | d¡ | ¡ }t|d
dgƒ tƒ }ttt j||dd� d S )Nri   rj   z%02dz%3.1frÔ   r   s   01 2.0
s   03 4.0
z%02d : %3.1fs	   01 : 2.0
s	   03 : 4.0
rô   )r7   rõ   éc   )	rD   r\   r   rÙ   rJ   r   rÚ   r   rÜ   rÛ   r%   r%   r&   Útest_format‚  s"    


zTestSaveTxt.test_formatc                 C   s  t ƒ }tjddgtd�}d}tj||d|d� | d¡ t| ¡ td| d	 ƒƒ t ƒ }tj||d|d
� | d¡ t| ¡ td| d ƒƒ t ƒ }d}tj||d||d� | d¡ t| ¡ t|| d d ƒƒ t ƒ }d}tj||d||d� | d¡ t| ¡ td| | d ƒƒ d S )Nri   rj   rZ   zTest header / footerz%1d)r7   Úheaderr   z# z	
1 2
3 4
)r7   Úfooterz
1 2
3 4
# rÖ   z% )r7   rù   Úcommentsz1 2
3 4
)r7   rú   rû   )	r   rD   r\   r^   rÙ   rJ   r   Úreadr   )r#   r¢   rV   Útest_header_footerZ
commentstrr%   r%   r&   rý   œ  sD    
ÿ
ÿ
 ÿ
ÿ
 ÿ
ÿzTestSaveTxt.test_header_footerc              	   C   sD   t ƒ �4}t ddg¡}t ||¡ t |¡}t||ƒ W 5 Q R X d S )Nri   rj   )r   rD   r\   rÙ   Úloadtxtr   )r#   r@   rV   rœ   r%   r%   r&   Útest_file_roundtrip¾  s
    
zTestSaveTxt.test_file_roundtripc                 C   sì   d}d}t j||ft jd�}t j}t j}|d|  |d d …< tƒ }t j||dd� | d¡ | ¡ }t	|ddgƒ tƒ }t j||d| d� | d¡ | ¡ }t	|d	d	gƒ tƒ }t j||d
g| d� | d¡ | ¡ }t	|ddgƒ d S )NrX   rZ   ù              ð?z %+.3erÔ   r   s8    ( +3.142e+00+ +2.718e+00j)  ( +3.142e+00+ +2.718e+00j)
z  %+.3e  %+.3es1     +3.142e+00  +2.718e+00  +3.142e+00  +2.718e+00
z(%.3e%+.3ej)s.   (3.142e+00+2.718e+00j) (3.142e+00+2.718e+00j)
©
rD   ÚzerosÚ
complex128ÚpirÊ   r   rÙ   rJ   rÚ   r   ©r#   ZncolsZnrowsrV   ÚreÚimr¢   r+   r%   r%   r&   Útest_complex_arraysÅ  sH    
ÿþ
ÿþ
ÿþzTestSaveTxt.test_complex_arraysc                 C   sv   d}d}t j||ft jd�}t j}t j}|d|  |d d …< tƒ }t j||dd� | d¡ | ¡ }t	|ddgƒ d S )NrX   rZ   r   z%.3erÔ   r   s0    (3.142e+00-2.718e+00j)  (3.142e+00-2.718e+00j)
r  r  r%   r%   r&   Útest_complex_negative_exponentë  s     
ÿþz*TestSaveTxt.test_complex_negative_exponentc                 C   sH   G dd„ dt ƒ}|ƒ }t ddg¡}t ||¡ t |¡}t||ƒ d S )Nc                   @   s   e Zd Zdd„ ZdS )z4TestSaveTxt.test_custom_writer.<locals>.CustomWriterc                 S   s   |   | d¡¡ d S )Nó   
)ÚextendÚsplit)r#   Útextr%   r%   r&   r'      s    z:TestSaveTxt.test_custom_writer.<locals>.CustomWriter.writeN)r,   r-   r.   r'   r%   r%   r%   r&   ÚCustomWriterÿ  s   r  ri   rj   )ÚlistrD   r\   rÙ   rþ   r   )r#   r  ÚwrV   rœ   r%   r%   r&   Útest_custom_writerý  s    
zTestSaveTxt.test_custom_writerc              	   C   sP   d  d¡}tj|gtjd�}tƒ �$}tjtj |d¡|dgdd� W 5 Q R X d S )Nó   Ï–úUTF-8rZ   útest.csvú%s©r7   Úencoding)	r4   rD   r\   Úunicode_r   rÙ   rG   rî   r·   )r#   Úutf8rV   Útmpdirr%   r%   r&   Útest_unicode	  s    
ÿzTestSaveTxt.test_unicodec              	   C   s°   d  d¡}tj|gtjd�}ddg}tr2| d¡ trD| ddg¡ tƒ �\}|D ]P}tj	t
j |d	| ¡|d
gdd� tjt
j |d	| ¡dtjd�}t||ƒ qPW 5 Q R X d S )Nr  r  rZ   r   ú.gzú.bz2ú.xzú.lzmar  r  z	UTF-16-LEr  ©r  r[   )r4   rD   r\   r  ÚHAS_BZ2r¬   ÚHAS_LZMAr  r   rÙ   rG   rî   r·   rþ   r   )r#   r  rV   Úsuffixesr  r�   rœ   r%   r%   r&   Útest_unicode_roundtrip  s$    

 ÿ ÿz"TestSaveTxt.test_unicode_roundtripc                 C   s\   d  d¡}tj|gtjd�}tƒ }tj||dgdd� | d¡ t| ¡   d¡|d ƒ d S ©Nr  r  rZ   r  r  r   rÖ   )	r4   rD   r\   r  r   rÙ   rJ   r   rü   ©r#   r  rV   r$   r%   r%   r&   Útest_unicode_bytestream"  s    

z#TestSaveTxt.test_unicode_bytestreamc                 C   sV   d  d¡}tj|gtjd�}tƒ }tj||dgdd� | d¡ t| ¡ |d ƒ d S r%  )	r4   rD   r\   r  r   rÙ   rJ   r   rü   r&  r%   r%   r&   Útest_unicode_stringstream*  s    

z%TestSaveTxt.test_unicode_stringstreamr7   ú%fs   %fÚiotypec                 C   s^   t  dg¡}|ƒ }t j|||d� | d¡ |tkrHt| ¡ dd ƒ nt| ¡ dd ƒ d S )Nrð   rÔ   r   z%f
s   %f
)rD   r\   rÙ   rJ   r   r   rü   )r#   r7   r*  rV   r$   r%   r%   r&   Útest_unicode_and_bytes_fmt2  s    
z&TestSaveTxt.test_unicode_and_bytes_fmtr>   zfiles>4GB may not workrd   g   `¸úA)Z
free_bytesc                 C   sb   dd„ }t tƒ}t||fd�}| ¡  | ¡  |jr<tdƒ‚|jdkrPt 	d¡ |jdks^t
‚d S )Nc              	   S   sr   d| _ zJtjdd„ tdƒD ƒtd�}tƒ �}tjtj 	|d¡|d� W 5 Q R X W n t
k
rl   d| _ ‚ Y nX d S )	NFc                 S   s$   g | ]}t j t j d d¡d¡‘qS )é2   rr   rY   )rD   rª   ZrandÚrandintrt   r%   r%   r&   r)   H  s
   þ ÿzGTestSaveTxt.test_large_zip.<locals>.check_large_zip.<locals>.<listcomp>i 5 rZ   ztest.npz)Ú	test_dataT)ÚvaluerD   Zasarrayrz   ra   r   r‹   rG   rî   r·   ÚMemoryError)Úmemoryerror_raisedr.  r  r%   r%   r&   Úcheck_large_zipC  s    
þþÿz3TestSaveTxt.test_large_zip.<locals>.check_large_zipr¯   z,Child process raised a MemoryError exceptioné÷ÿÿÿzCsubprocess got a SIGKILL, apparently free memory was not sufficientr   )r   r	   r   r¶   r·   r/  r0  Úexitcoder‚   Zxfailr¸   )r#   r2  r1  Úpr%   r%   r&   Útest_large_zip?  s    

zTestSaveTxt.test_large_zipN) r,   r-   r.   r_   rc   rÞ   rá   ré   rï   rö   rø   rý   rÿ   r  r	  r  r  r$  r'  r(  r‚   rƒ   Úparametrizer   r   r+  r„   rK   rL   r…   r   r6  r%   r%   r%   r&   rÓ   C  s0   
	"&rÓ   c                   @   sx   e Zd Zdd„ Zdd„ Zejje dd�dd„ ƒZ	ejje
 d	d�d
d„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚLoadTxtBasec                 C   s¸   t  d¡ d¡}d}|D ]š}d| d }|D ]„}t|d��p}||ddd	��}	|	 |¡ W 5 Q R X | j|dd
�}
t|
|ƒ ||ddd
��}	|  |	¡}
W 5 Q R X t|
|ƒ W 5 Q R X q,qd S )Nrå   ©rX   r1   ©rÖ   z
úú0 1 2ú3 4 5r©   Úwtz	UTF-32-LE)Úmoder  ©r  Úrt)rD   ÚarangeÚreshaper   r'   Úloadfuncr   )r#   Zfopenr#  ÚwantedÚlinesepÚsepr¿   r�   r@   r§   Úresr%   r%   r&   Úcheck_compressed`  s    
zLoadTxtBase.check_compressedc                 C   s   |   tjd¡ d S )N)r  )rI  ÚgziprÁ   ©r#   r%   r%   r&   Útest_compressed_gzipp  s    z LoadTxtBase.test_compressed_gzipz	Needs bz2rd   c                 C   s   |   tjd¡ d S )N)r  )rI  Úbz2rÁ   rK  r%   r%   r&   Útest_compressed_bz2s  s    zLoadTxtBase.test_compressed_bz2z
Needs lzmac                 C   s   |   tjd¡ d S )N)r  r  )rI  ÚlzmarÁ   rK  r%   r%   r&   Útest_compressed_lzmaw  s    z LoadTxtBase.test_compressed_lzmac              
   C   sZ   t ƒ �J}t|dƒ�}| d d¡¡ W 5 Q R X | j|dd�}t|dddgƒ W 5 Q R X d S )Nr¼   z0.
1.
2.úUTF-16r@  ç        rð   rñ   )r   rÁ   r'   ÚencoderD  r   )r#   rî   r§   rl   r%   r%   r&   Útest_encoding{  s
    zLoadTxtBase.test_encodingc              
   C   sb   d  d¡}tƒ �H}t|dƒ�}| | d¡¡ W 5 Q R X | j|dtjd�}t||ƒ W 5 Q R X d S )Ns   Ã¶Ã¼Ã¶r  r¼   rQ  r   )	r4   r   rÁ   r'   rS  rD  rD   r  r   )r#   Znonasciirî   r§   rl   r%   r%   r&   Útest_stringload‚  s    
zLoadTxtBase.test_stringloadc                 C   s8   d}| j t|ƒtjdd�}t|t | d¡ ¡ ¡ƒ d S ©Ns   ÿþh  i  jrQ  )r[   r  )rD  r   rD   r  r   r\   r4   r  ©r#   Úutf16rí   r%   r%   r&   Útest_binary_decode‹  s    zLoadTxtBase.test_binary_decodec                 C   sT   t ƒ }| d¡ | d¡ | j|tjddd„ id�}t d d¡g¡}t||ƒ d S )Nr  r   c                 S   s
   |   d¡S )Nr  ©r4   ©rl   r%   r%   r&   Ú<lambda>–  ó    z4LoadTxtBase.test_converters_decode.<locals>.<lambda>)r[   Ú
convertersr  )	r   r'   rJ   rD  rD   r  r\   r4   r   ©r#   r¢   rl   rV   r%   r%   r&   Útest_converters_decode�  s    



ÿz"LoadTxtBase.test_converters_decodec              
   C   s|   d  d¡}tƒ �b}tj|ddd��}| |¡ W 5 Q R X | j|tjddd„ idd�}t |d	 g¡}t	||ƒ W 5 Q R X d S )
Nr  r  r>  r@  r   c                 S   s   | d S )Nrº   r%   r[  r%   r%   r&   r\  ¡  r]  z6LoadTxtBase.test_converters_nodecode.<locals>.<lambda>)r[   r^  r  rº   )
r4   r   ÚiorÁ   r'   rD  rD   r  r\   r   )r#   r  rî   r§   rl   rV   r%   r%   r&   Útest_converters_nodecodeš  s    


þz$LoadTxtBase.test_converters_nodecodeN)r,   r-   r.   rI  rL  r‚   rƒ   r„   r!  rN  r"  rP  rT  rU  rY  r`  rb  r%   r%   r%   r&   r8  _  s   

	
r8  c                   @   sf  e Zd ZeejƒZdd„ Zdd„ Zdd„ Z	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Z d5d6„ Z!d7d8„ Z"d9d:„ Z#d;d<„ Z$d=d>„ Z%d?d@„ Z&dAdB„ Z'dCdD„ Z(e)j*j+e, -¡ dEkdFdG�dHdI„ ƒZ.dJdK„ Z/dLdM„ Z0dNdO„ Z1dPdQ„ Z2dRS )SÚTestLoadTxtc                 C   s   t jjj| _dt jj_d S ©NrR   )rD   rE   rF   Ú_loadtxt_chunksizeÚ
orig_chunkrK  r%   r%   r&   Úsetupª  s    zTestLoadTxt.setupc                 C   s   | j tjj_d S r    )rf  rD   rE   rF   re  rK  r%   r%   r&   Úteardown®  s    zTestLoadTxt.teardownc                 C   sª   t ƒ }| d¡ | d¡ tj|dtjfdtjfgd�}tjddgdd	gd�}t||ƒ t ƒ }| d
¡ | d¡ dddœ}tjddg|d�}tj||d�}t||ƒ d S )Nú1 2
3 4r   rl   ro   rZ   ri   rj   rk   rn   úM 64.0 75.0
F 25.0 60.0©ÚgenderÚageÚweight©ÚS1rm   rë   ©ÚnamesÚformats©ÚMç      P@ç     ÀR@©ÚFç      9@ç      N@)r   r'   rJ   rD   rþ   Úint32r\   r   )r#   r¢   rl   rV   ÚdZmydescriptorrœ   ro   r%   r%   r&   rp   ±  s&    




ÿÿÿzTestLoadTxt.test_recordc                 C   sˆ   t ƒ }| d¡ | d¡ tj|td�}t ddgddggt¡}t||ƒ | d¡ tj|td�}t ddgddggt¡}t||ƒ d S )Nri  r   rZ   rR   rX   r1   rY   )	r   r'   rJ   rD   rþ   r^   r\   r   r]   r_  r%   r%   r&   r_   Ã  s    



zTestLoadTxt.test_arrayc                 C   s’   t ƒ }| d¡ | d¡ tj|td�}t ddddgt¡}t||ƒ t ƒ }| d¡ | d¡ tj|td	d
�}t ddddgt¡}t||ƒ d S )Nú1
2
3
4
r   rZ   rR   rX   r1   rY   ú1,2,3,4
rô   ©r[   rõ   ©r   r'   rJ   rD   rþ   r^   r\   r   r_  r%   r%   r&   rc   Ñ  s    




zTestLoadTxt.test_1Dc                 C   sX   t ƒ }| d¡ | d¡ tj|tdddd„ id�}t dd	dd
dgt¡}t||ƒ d S )Nú	1,2,3,,5
r   rô   r1   c                 S   s   t | pdƒS ©Néüÿÿ©r^   ©r$   r%   r%   r&   r\  å  r]  z*TestLoadTxt.test_missing.<locals>.<lambda>©r[   rõ   r^  rR   rX   r„  rä   r�  r_  r%   r%   r&   Útest_missingà  s    



ÿzTestLoadTxt.test_missingc                 C   s\   t ƒ }| d¡ | d¡ tj|tdddd„ idd�}t d	d
gddggt¡}t||ƒ d S )Nú1,2,3,,5
6,7,8,9,10
r   rô   r1   c                 S   s   t | pdƒS rƒ  r…  r†  r%   r%   r&   r\  î  r]  z:TestLoadTxt.test_converters_with_usecols.<locals>.<lambda>©rR   r1   ©r[   rõ   r^  ÚusecolsrX   r„  é   é	   r�  r_  r%   r%   r&   Útest_converters_with_usecolsé  s    



þz(TestLoadTxt.test_converters_with_usecolsc                 C   sN   t ƒ }| d¡ | d¡ tj|tddd�}t dddd	gt¡}t||ƒ d S )
Nú# comment
1,2,3,5
r   rô   ú#©r[   rõ   rû   rR   rX   r1   rä   r�  r_  r%   r%   r&   Útest_comments_unicodeó  s    


ÿz!TestLoadTxt.test_comments_unicodec                 C   sN   t ƒ }| d¡ | d¡ tj|tddd�}t dddd	gt¡}t||ƒ d S )
Nr�  r   rô   ó   #r’  rR   rX   r1   rä   r�  r_  r%   r%   r&   Útest_comments_byteü  s    


ÿzTestLoadTxt.test_comments_bytec                 C   s\   t ƒ }| d¡ | d¡ tj|tddddgd�}t dd	d
gdddggt¡}t||ƒ d S )Nz,# comment
1,2,3
@ comment2
4,5,6 // comment3r   rô   r‘  ú@z//r’  rR   rX   r1   rY   rä   rå   r�  r_  r%   r%   r&   Útest_comments_multiple  s    


ÿz"TestLoadTxt.test_comments_multiplec                 C   s~   t ƒ }| d¡ | d¡ tj|tddd�}t dddd	gt¡}t||ƒ t ƒ }| d
¡ | d¡ tt	tj|tddd� d S )Nz/* comment
1,2,3,5
r   rô   z/*r’  rR   rX   r1   rä   z*/ comment
1,2,3,5
)
r   r'   rJ   rD   rþ   r^   r\   r   r   rÜ   r_  r%   r%   r&   Útest_comments_multi_chars  s    


ÿ


ÿz%TestLoadTxt.test_comments_multi_charsc                 C   s˜   t ƒ }| d¡ | d¡ tj|tddd�}t ddddgt¡}t||ƒ t ƒ }| d	¡ | d¡ tj|tddd�}t ddddgt¡}t||ƒ d S )
Núcomment
1,2,3,5
r   rô   rR   )r[   rõ   ÚskiprowsrX   r1   rä   r�  r�  r_  r%   r%   r&   Útest_skiprows  s     


ÿ



ÿzTestLoadTxt.test_skiprowsc              	   C   s€  t  ddgddggt¡}tƒ }t  ||¡ | d¡ t j|tdd�}t||d d …df ƒ t  dddgdddggt¡}tƒ }t  ||¡ | d¡ t j|td	d�}t||d d …dd …f ƒ | d¡ t j|tt  ddg¡d�}t||d d …dd …f ƒ tt j	t j
t jt jt jt jt jt jf	D ]>}|dƒ}| d¡ t j|t|d�}t||d d …df ƒ �q G d
d„ dƒ}|ƒ }| d¡ t j|t|d�}t||d d …df ƒ | d¡ t j|t|fd�}t||d d …df ƒ d}t|ƒ}ddg}	ddg}
t j|dtt|	|
ƒƒd�}t|d ddgƒ t|d ddgƒ | d¡ d}ttdt|ƒ t j||d� ttdt|ƒ t j|d|dgd� d S )NrR   rX   r1   rY   r   ©rR   ©r[   rŒ  rä   ri   c                   @   s   e Zd Zdd„ ZdS )z*TestLoadTxt.test_usecols.<locals>.CrazyIntc                 S   s   dS rd  r%   rK  r%   r%   r&   Ú	__index__N  s    z4TestLoadTxt.test_usecols.<locals>.CrazyInt.__index__N)r,   r-   r.   rž  r%   r%   r%   r&   ÚCrazyIntM  s   rŸ  z<JOE 70.1 25.3
                BOB 60.5 27.9
                ÚstidÚtempÚS4Úf8©r   rX   ©rŒ  r[   ó   JOEó   BOBçÍÌÌÌÌL9@çfffffæ;@ç      ø?z^usecols must be.*%s©rŒ  )rD   r\   r]   r   rÙ   rJ   rþ   r   r^   Zint8Zint16r|  Úint64r“   Zuint16Zuint32Úuint64r   r  rÐ   r   r   Ú	TypeErrorr2   )r#   rV   r¢   rl   Zint_typeZto_readrŸ  Z	crazy_intr¿   rr  ÚdtypesrN   Z	bogus_idxr%   r%   r&   Útest_usecols/  st    



    þ




  ý
  ýzTestLoadTxt.test_usecolsc                 C   sj   t ƒ }| d¡ | d¡ t dtfddtfdtfgfg¡}tj||dd�}t d	d
g|¡}t	||ƒ d S )Nú1,2,3.0
4,5,6.0
r   rl   ro   rº   r$   rô   r€  ©rR   )rX   rò   ©rY   )rä   ç      @)
r   r'   rJ   rD   r[   r^   r]   rþ   r\   r   ©r#   r¢   r€   rl   rV   r%   r%   r&   Útest_fancy_dtypet  s    

"zTestLoadTxt.test_fancy_dtypec                 C   sl   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
dddgdddggfg|d�}t||ƒ d S ©Nzaaaa  1.0  8.0  1 2 3 4 5 6©r@   r¢  rl   ro   Úblockr9  rZ   Úaaaarð   ç       @rR   rX   r1   rY   rä   rå   ©r   rD   r[   r]   r^   rþ   r\   r   rµ  r%   r%   r&   Útest_shaped_dtype}  s    ÿ ÿzTestLoadTxt.test_shaped_dtypec              	   C   s€   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
dddgdddggdddgdddgggfg|d�}t||ƒ d S )Nz*aaaa  1.0  8.0  1 2 3 4 5 6 7 8 9 10 11 12r¸  rl   ro   r¹  )rX   rX   r1   rZ   rº  rð   r»  rR   rX   r1   rY   rä   rå   r�  é   rŽ  é
   é   é   r¼  rµ  r%   r%   r&   Útest_3d_shaped_dtype†  s    ÿ
&ÿþz TestLoadTxt.test_3d_shaped_dtypec                 C   sF   ddg}t tjfD ].}tjddg|d�}tj||d�}t||ƒ qd S )NZstr1Zstr2rZ   )ÚstrrD   Úbytes_r\   rþ   r   )r#   r¢   r€   rV   rl   r%   r%   r&   Útest_str_dtype�  s
    zTestLoadTxt.test_str_dtypec              	   C   sj   t ƒ �Z}|jdd� tƒ }t |¡}t|jdƒ tj|tjd�}t|jdƒ t|j	tjkƒ W 5 Q R X d S )Núloadtxt: Empty input file:©Úmessage©r   rZ   )
r   rÅ   r   rD   rþ   r   rT   r¬  r   r[   )r#   rÉ   r¢   rl   r%   r%   r&   Útest_empty_file™  s    
zTestLoadTxt.test_empty_filec                 C   sx   t ƒ }| ddg¡ | d¡ tj|dddd„ id�}t|dd	gƒ | d¡ tj|dd
dd„ id�}t|ddgƒ d S )Nz1 21
z3 42
r   rœ  c                 S   s
   t | dƒS ©Né   r…  r†  r%   r%   r&   r\  ¨  r]  z3TestLoadTxt.test_unused_converter.<locals>.<lambda>©rŒ  r^  é   é*   rR   c                 S   s
   t | dƒS rË  r…  r†  r%   r%   r&   r\  ­  r]  é!   éB   )r   r*   rJ   rD   rþ   r   )r#   r¢   r¿   r%   r%   r&   Útest_unused_converter£  s    

ÿ

ÿz!TestLoadTxt.test_unused_converterc                 C   sr   d}dt fdtfg}dd„ }d|i}tjt|ƒd||d�}tjdtd	ddƒfd
tdddƒfg|d�}t||ƒ d S )Nú0 1; 2001-01-01
                   2; 2002-01-31 ÚidxÚcodec                 S   s   t |  ¡ dƒS ©Nz%Y-%m-%d©r6   Ústripr†  r%   r%   r&   r\  µ  r]  z4TestLoadTxt.test_dtype_with_object.<locals>.<lambda>rR   ú;©rõ   r[   r^  éÑ  rX   éÒ  é   rZ   )r^   ra   rD   rþ   r   r\   r   r   ©r#   r¿   ZndtypeÚfuncr^  ÚtestÚcontrolr%   r%   r&   Útest_dtype_with_object°  s    ÿþz"TestLoadTxt.test_dtype_with_objectc                 C   s@   d}t ƒ }| d| ¡ | d¡ tj|tjd�}t||ƒ d S )N)l   +&ì|    l   -(ì|    ú%s %sr   rZ   )r   r'   rJ   rD   rþ   r­  r   ©r#   Útgtr¢   rH  r%   r%   r&   Útest_uint64_type¾  s    
zTestLoadTxt.test_uint64_typec                 C   s@   d}t ƒ }| d| ¡ | d¡ tj|tjd�}t||ƒ d S )N)lûÿÿÿÿÿÿÿ l   ÿÿÿÿ rã  r   rZ   )r   r'   rJ   rD   rþ   r¬  r   rä  r%   r%   r&   Útest_int64_typeÆ  s    
zTestLoadTxt.test_int64_typec                 C   sŒ   t  ddd¡ t j¡}t  || f¡ t¡}d ttj|ƒ¡}t	ƒ }| 
|¡ tt jfD ].}| d¡ t j||d�}t||d| d� qXd S )	Niöÿÿÿr¿  rä   rÖ   r   rZ   r  )Úerr_msg)rD   ZlogspaceZastypeZfloat32Zhstackr]   r·   ÚmapÚhexr   r'   rJ   rþ   r   )r#   rå  Zinpr¢   r€   rH  r%   r%   r&   Útest_from_float_hexÎ  s    

zTestLoadTxt.test_from_float_hexc              	   C   s0   t dƒ}tjtdd�� t |¡ W 5 Q R X dS )z 
        Ensure that fromhex is only used for values with the correct prefix and
        is not called by default. Regression test related to gh-19598.
        za b cú!could not convert string to float©ÚmatchN©r   r‚   ÚraisesrÜ   rD   rþ   rÝ   r%   r%   r&   Ú6test_default_float_converter_no_default_hex_conversionÛ  s     ÿzBTestLoadTxt.test_default_float_converter_no_default_hex_conversionc              	   C   s0   t dƒ}tjtdd�� t |¡ W 5 Q R X dS )z›
        Ensure that the exception message raised during failed floating point
        conversion is correct. Regression test related to gh-19598.
        zqrs tuvrì  rí  Nrï  rÝ   r%   r%   r&   Ú&test_default_float_converter_exceptionæ  s     ÿz2TestLoadTxt.test_default_float_converter_exceptionc                 C   sN   t ddƒt ddƒf}tƒ }| d| ¡ | d¡ tj|t d�}t||ƒ d S )NrR   éÿÿÿÿrã  r   rZ   )r›   r   r'   rJ   rD   rþ   r   rä  r%   r%   r&   Útest_from_complexñ  s    
zTestLoadTxt.test_from_complexc                 C   sª   t jdt jd�}t j}t j}|d|  |d d …< tƒ }t j||dd� | d¡ | ¡ }| d¡ | 	dd¡}t
||kƒ | |¡ | d¡ t j|td�}t||ƒ d S )	N©rX   rX   rZ   r   z%.16erÔ   r   s   e+00-s   e00+-)rD   r  r  r  rÊ   r   rÙ   rJ   rü   Úreplacer   r'   rþ   r›   r   )r#   rV   r  r  r¢   ÚtxtZtxt_badrH  r%   r%   r&   Útest_complex_misformattedù  s    



z%TestLoadTxt.test_complex_misformattedc              
   C   sV   t ƒ �0}t|dƒ�}| d¡ W 5 Q R X t |¡}W 5 Q R X t|ddgddggƒ d S )Nr  z
1 213 42rR   rÎ  r1   rÏ  )r   rÁ   r'   rD   rþ   r   )r#   r@   r§   r¿   r%   r%   r&   Útest_universal_newline  s
    z"TestLoadTxt.test_universal_newlinec                 C   sV   t ƒ }| d¡ | d¡ dddœ}tj||dd�}t dd	d
g¡}t|d |ƒ d S )Nz 1 	2 	3	start 
4	5	6	  
7	8	9.5	r   )rl   ro   rê   Úcomment)ú<i4rû  ú<f4ú|S8rq  ú	r€  s   start s     r]  rú  )r   r'   rJ   rD   rþ   r\   r   rµ  r%   r%   r&   Útest_empty_field_after_tab  s    

ÿz&TestLoadTxt.test_empty_field_after_tabc                 C   s˜   t dƒ}dddœ}tj||dd�\}}}t|jjdkƒ t|jjdkƒ t|jjd	kƒ t|t d
dg¡ƒ t|t ddg¡ƒ t|t ddg¡ƒ d S )NúM 21 72
F 35 58©rV   rœ   r¢   )ú|S1rû  rü  rq  T©r[   Úunpackr  rû  rü  ó   Mó   FrÎ  é#   ç      R@ç      M@)r   rD   rþ   r   r[   rÃ  r   r\   ©r#   r÷  r€   rV   rœ   r¢   r%   r%   r&   Útest_unpack_structured  s    
z"TestLoadTxt.test_unpack_structuredc              	   C   sü  t ƒ }| d¡ | d¡ tttj|dd� | d¡ tttj|dd� | d¡ tj|tddd�}t dd	dgd
ddgg¡}t	||ƒ t ƒ }| d¡ | d¡ tj|tdd	d�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ t ƒ }| d¡ | d¡ tj|tdd	d�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ tƒ �H}|jdd� t ƒ }t
tj|d	d�jdkƒ t
tj|dd�jdkƒ W 5 Q R X d S )Nz1,2,3
4,5,6r   r1   )Úndminrª  rô   rR   )r[   rõ   r  rX   rY   rä   rå   z0,1,2rŠ  )r1   z0
1
2)r1   rR   rÆ  rÇ  ©r   rR   rÉ  )r   r'   rJ   r   rÜ   rD   rþ   r^   r\   r   r   rT   r   rÅ   )r#   r¢   rl   rV   r}  rÊ   rÉ   r§   r%   r%   r&   Útest_ndmin_keyword)  sJ    












zTestLoadTxt.test_ndmin_keywordc                 C   s(   dd„ }t  |ƒ ¡}t|t  d¡ƒ d S )Nc                  s   s   t dƒD ]} d|  V  qd S ©Nr¿  rq   )rz   ©ru   r%   r%   r&   ÚcountU  s    z0TestLoadTxt.test_generator_source.<locals>.countr¿  )rD   rþ   r   rB  ©r#   r  rH  r%   r%   r&   Útest_generator_sourceT  s    z!TestLoadTxt.test_generator_sourcec                 C   s.   t ƒ }| d¡ | d¡ ttdtj|ƒ d S )Nz1 2 3
4 5 6
2 3r   Ú3)r   r'   rJ   r   rÜ   rD   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   rl   )rV   ZS10ro   rô   )rõ   r[   rû   )r   r'   rJ   rD   r[   r^   rþ   )r#   r¢   r€   r%   r%   r&   Útest_none_as_stringd  s
    

zTestLoadTxt.test_none_as_stringzANSI_X3.4-1968zWrong preferred encodingrd   c              
   C   sÆ   d}|  d¡ dd¡ ¡ }tƒ �œ}t|dƒ�}| |¡ W 5 Q R X t|dƒ�}tj|dtjd�}W 5 Q R X t	||ƒ t|dƒ�}tj|ddd�}W 5 Q R X d	d
dg}t	|tj
|dd�ƒ W 5 Q R X d S )Ns/   5,6,7,Ã•scarscar
15,2,3,hello
20,2,3,Ã•scar
r  r;  r   r¼   rÀ   r   ÚSs   5,6,7,Ã•scarscars   15,2,3,hellos   20,2,3,Ã•scarrZ   )r4   rö  Ú
splitlinesr   rÁ   r'   rD   rþ   r  r   r\   )r#   Zbutf8Zsutf8rî   r§   rl   r%   r%   r&   Útest_binary_loadl  s    

zTestLoadTxt.test_binary_loadc                 C   sN   t ƒ }| d¡ | d¡ tj|tddd�}t ddddgt¡}t||ƒ d S )	Nú1,2,3,5
4,5,7,8
2,1,4,5r   rô   rR   ©r[   rõ   Úmax_rowsrX   r1   rä   r�  r_  r%   r%   r&   Útest_max_rows~  s    


ÿzTestLoadTxt.test_max_rowsc                 C   s¨   t ƒ }| d¡ | d¡ tj|tdddd�}t ddddgt¡}t||ƒ t ƒ }| d	¡ | d¡ tj|tdddd�}t ddddgd
dddggt¡}t||ƒ d S )Nz comments
1,2,3,5
4,5,7,8
2,1,4,5r   rô   rR   ©r[   rõ   rš  r  rX   r1   rä   úcomment
1,2,3,5
4,5,7,8
2,1,4,5rY   r�  r¾  r�  r_  r%   r%   r&   Útest_max_rows_with_skiprows‡  s$    


 ÿ



 ÿ z'TestLoadTxt.test_max_rows_with_skiprowsc                 C   sˆ   t ƒ }| d¡ | d¡ tj|tddd�}t ddddgd	dd
dggt¡}t||ƒ tj|tdd�}t ddd	dgt¡}t||ƒ d S )Nr  r   rô   rX   r  rR   r1   rä   rY   r�  r¾  r€  r�  r_  r%   r%   r&   Ú$test_max_rows_with_read_continuation˜  s    


ÿ 
z0TestLoadTxt.test_max_rows_with_read_continuationc                 C   sf   t ƒ }| d¡ | d¡ tj|tdddd�}t dddd	gd
d	ddgddd
d	ggt¡}t||ƒ d S )Nr  r   rô   rR   rå   r  rX   r1   rä   rY   r�  r¾  r�  r_  r%   r%   r&   Útest_max_rows_larger¥  s    


 ÿ*z TestLoadTxt.test_max_rows_largerN)3r,   r-   r.   ÚstaticmethodrD   rþ   rD  rg  rh  rp   r_   rc   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„   ÚlocaleÚgetpreferredencodingr  r  r   r!  r"  r%   r%   r%   r&   rc  §  sV   
	
			E		
	

+ÿ
	rc  c                   @   sN   e Zd Zdd„ Zdd„ Zdd„ Zej de	e
g¡dd	„ ƒZd
d„ Zdd„ ZdS )ÚTestfromregexc                 C   sX   t ƒ }| d¡ | d¡ dtjfdg}t |d|¡}tjdddg|d	�}t||ƒ d S )
Nz1.312 foo
1.534 bar
4.444 quxr   Únum©ÚvalZS3z([0-9.]+)\s+(...))çË¡E¶óýô?ræ   ©g%�•C‹ø?rç   ©g-²�ï§Æ@ÚquxrZ   ©r   r'   rJ   rD   Úfloat64Ú	fromregexr\   r   rµ  r%   r%   r&   rp   ±  s    

ÿzTestfromregex.test_recordc                 C   sX   t ƒ }| d¡ | d¡ dtjfdg}t |d|¡}tjdddg|d	�}t||ƒ d S )
Nú1312 foo
1534 bar
4444 quxr   r'  r(  z(\d+)\s+(...))é   ræ   )éþ  rç   )é\  r-  rZ   )r   r'   rJ   rD   r|  r0  r\   r   rµ  r%   r%   r&   Útest_record_2¼  s    

ÿzTestfromregex.test_record_2c                 C   sV   t ƒ }| d¡ | d¡ dtjfg}t |d|¡}tjdddg|d�}t||ƒ d S )	Nr1  r   r'  z(\d+)\s+...)r2  )r3  )r4  rZ   r.  rµ  r%   r%   r&   Útest_record_3Ç  s    

zTestfromregex.test_record_3Ú	path_typec           
   
   C   sÀ   d}t ƒ �¬}||ƒ}t|dƒ�}| d| d ¡ W 5 Q R X dtjfdg}tj|d|dd	�}tjd
d| d¡ fddg|d�}t||ƒ t	 
dt	j¡}	tj||	|dd	�}t||ƒ W 5 Q R X d S )Nr  r¼   s	   1.312 foos    
1.534 bar
4.444 quxr'  )r)  ZU4z(?u)([0-9.]+)\s+(\w+)r  r@  r*  ræ   r+  r,  rZ   z([0-9.]+)\s+(\w+))r   rÁ   r'   rD   r/  r0  r\   r4   r   r  ÚcompileÚUNICODE)
r#   r7  r  Zstr_pathrî   r§   r€   rl   rV   Úregexpr%   r%   r&   Útest_record_unicodeÑ  s     ÿÿ
z!Testfromregex.test_record_unicodec                 C   sN   t  d¡}tdƒ}dtjfg}tjdddg|d�}t |||¡}t||ƒ d S )Nó   (\d)ó   123r'  rR   rX   r1   rZ   )r  r8  r   rD   r/  r\   r0  r   )r#   r:  r¢   r€   rV   rl   r%   r%   r&   Útest_compiled_bytesã  s    
z!Testfromregex.test_compiled_bytesc              	   C   sB   t  d¡}tdƒ}tjtdd�� tj||tjd� W 5 Q R X d S )Nr<  r=  zstructured datatyperí  rZ   )	r  r8  r   r‚   rð  r®  rD   r0  r/  )r#   r:  r¢   r%   r%   r&   Útest_bad_dtype_not_structuredë  s    
z+Testfromregex.test_bad_dtype_not_structuredN)r,   r-   r.   rp   r5  r6  r‚   rƒ   r7  rÃ  r   r;  r>  r?  r%   r%   r%   r&   r&  °  s   

r&  c                   @   s–  e Zd ZeejƒZdd„ Zdd„ Zdd„ Z	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Z d5d6„ Z!d7d8„ Z"d9d:„ Z#d;d<„ Z$d=d>„ Z%d?d@„ Z&dAdB„ Z'dCdD„ Z(dEdF„ Z)dGdH„ Z*dIdJ„ Z+dKdL„ Z,dMdN„ Z-dOdP„ Z.dQdR„ Z/dSdT„ Z0dUdV„ Z1dWdX„ Z2dYdZ„ Z3d[d\„ Z4d]d^„ Z5d_d`„ Z6dadb„ Z7dcdd„ Z8dedf„ Z9dgdh„ Z:didj„ Z;dkdl„ Z<dmdn„ Z=dodp„ Z>dqdr„ Z?dsdt„ Z@dudv„ ZAdwdx„ ZBdydz„ ZCd{d|„ ZDd}d~„ ZEdd€„ ZFd�d‚„ ZGdƒd„„ ZHd…d†„ ZId‡dˆ„ ZJd‰dŠ„ ZKd‹dŒ„ ZLd�dŽ„ ZMd�d�„ ZNd‘d’„ ZOd“d”„ ZPd•d–„ ZQd—d˜„ ZRd™dš„ ZSd›dœ„ ZTd�dž„ ZUdŸd „ ZVd¡S )¢ÚTestFromTxtc                 C   s†   t dƒ}tj|dtjfdtjfgd�}tjddgddgd�}t||ƒ t d	ƒ}d
ddœ}tjddg|d�}tj||d�}t||ƒ d S )Nri  rl   ro   rZ   ri   rj   rk   rn   rj  rk  ro  rq  rt  rx  )r   rD   Ú
genfromtxtr|  r\   r   )r#   r¿   rà  rá  Ú
descriptorr%   r%   r&   rp   ø  s    
ÿ
ÿzTestFromTxt.test_recordc                 C   sz   t dƒ}tjddgddggtd�}tj|td�}t||ƒ | d¡ tjddgddggtd�}tj|td�}t||ƒ d S )Nri  rR   rX   r1   rY   rZ   r   )	r   rD   r\   r^   rA  r   rJ   r]   rþ   )r#   r¿   rá  rà  r%   r%   r&   r_     s    

zTestFromTxt.test_arrayc                 C   sZ   t  ddddgt¡}tdƒ}t j|td�}t||ƒ tdƒ}t j|tdd	�}t||ƒ d S )
NrR   rX   r1   rY   r~  rZ   r  rô   r€  )rD   r\   r^   r   rA  r   ©r#   rá  r¿   rà  r%   r%   r&   rc     s    
zTestFromTxt.test_1Dc                 C   s`   t  ddddgt¡}tdƒ}t j|tddd�}t||ƒ td	ƒ}t j|tddd�}t||ƒ d S )
NrR   rX   r1   rä   r�  rô   r‘  r’  z1,2,3,5# comment
)rD   r\   r^   r   rA  r   rC  r%   r%   r&   Útest_comments  s    
zTestFromTxt.test_commentsc                 C   st   t  ddddgt¡}ttdd�}tdƒ}t j|fddi|—Ž}t||ƒ td	ƒ}t j|fd
di|—Ž}t||ƒ d S )NrR   rX   r1   rä   rô   r€  r™  Úskip_headerr�  rš  )rD   r\   r^   Údictr   rA  r   rþ   )r#   rá  rP   r¿   rà  r%   r%   r&   r›  +  s    
zTestFromTxt.test_skiprowsc                 C   sš   dd„ t ddƒD ƒ}| d¡ | dd„ t dƒD ƒ¡ d|d	< td
dddd�}tjtd |¡ƒf|Ž}tjdd„ t dƒD ƒdd„ dD ƒd�}t	||ƒ d S )Nc                 S   s   g | ]}d | ‘qS )z# %ir%   rt   r%   r%   r&   r)   9  s     z0TestFromTxt.test_skip_footer.<locals>.<listcomp>rR   rå   zA, B, Cc                 S   s   g | ]}d |||f ‘qS )z%i,%3.1f,%03sr%   rt   r%   r%   r&   r)   ;  s     é3   z99,99ró  rô   Trä   r¿  )rõ   rr  rE  Úskip_footerrÖ   c                 S   s"   g | ]}d | d | d | f‘qS )r)  r%   rt   r%   r%   r&   r)   ?  s     é)   c                 S   s   g | ]}|t f‘qS r%   rs   ©r(   Ú_r%   r%   r&   r)   @  s     ÚABCrZ   )
rz   r¬   r  rF  rD   rA  r   r·   r\   r   )r#   r¿   rP   rà  Úctrlr%   r%   r&   Útest_skip_footer8  s    
ÿzTestFromTxt.test_skip_footerc              
   C   s(  t ƒ ��}| t¡ d}tttjt|ƒdd� tjt|ƒddd�}t|t 	ddgddgddgd	d	gg¡ƒ tjt|ƒd
d�}t|t 	ddgddgddgd	d	gg¡ƒ d}tjt|ƒddd�}t|t 	ddgddgd	d	gddgg¡ƒ tjt|ƒd
dd�}t|t 	ddgddgd	d	gg¡ƒ W 5 Q R X d S )Nz1 1
2 2
3 3
4 4
5  
6  
7  
rR   )rH  F)rH  Úinvalid_raiserð   rñ   rò   ró   r1   z1 1
2  
3 3
4 4
5  
6 6
7 7
r´  )
r   rÅ   r   r   rÜ   rD   rA  r   r   r\   )r#   rÉ   ZbasestrrV   r%   r%   r&   Útest_skip_footer_with_invalidC  s8    

 ÿ  ÿ((  ÿ(  ÿz)TestFromTxt.test_skip_footer_with_invalidc              	   C   s¸   t dƒ}tjdd��:}t ddtj¡ tj|d dd�}t|d jtjkƒ W 5 Q R X t 	dd	g¡t 	d
dg¡t 	ddg¡dœ}t
|d |d ƒ t
|d |d ƒ t
|d |d ƒ d S )Nz)gender age weight
M 64.0 75.0
F 25.0 60.0Trw   ry   r   ©r[   rr  r   r  r  rv  rz  rw  r{  rk  rl  rm  rn  )r   r|   r}   r~   rD   ÚVisibleDeprecationWarningrA  r   Úcategoryr\   r   ©r#   r¿   r  rà  rá  r%   r%   r&   Útest_header[  s    þzTestFromTxt.test_headerc              	   C   sÒ   t dƒ}tjdd��8}t ddtj¡ tj|d d�}t|d jtjkƒ W 5 Q R X t 	dd	g¡t 	d
dg¡t 	ddg¡t 	ddg¡t 	ddg¡g}t
|jjdddddgƒ t|ƒD ]\}}t
|d|  |ƒ q²d S )Nz*A 64 75.0 3+4j True
BCD 25 60.0 5+6j FalseTrw   ry   r   rZ   r   ó   As   BCDé@   é   rw  r{  y      @      @y      @      @FÚf0Úf1Úf2Zf3rë   zf%i)r   r|   r}   r~   rD   rR  rA  r   rS  r\   r   r[   rr  rŒ   )r#   r¿   r  rà  rá  ru   rM  r%   r%   r&   Útest_auto_dtypei  s    üzTestFromTxt.test_auto_dtypec                 C   sB   t dƒ}tj|d d�}t ddddgddd	d
gg¡}t||ƒ d S )Nz1 2 3 4
5 6 7 8
rZ   rR   rX   r1   rY   rä   rå   r�  r¾  ©r   rD   rA  r\   r   ©r#   r¿   rà  rá  r%   r%   r&   Útest_auto_dtype_uniformy  s    z#TestFromTxt.test_auto_dtype_uniformc                 C   sZ   t dƒ}t dtfddtfdtfgfg¡}tj||dd�}tjdd	g|d
�}t||ƒ d S )Nr±  rl   ro   rº   r$   rô   r€  r²  r³  rZ   )r   rD   r[   r^   r]   rA  r\   r   ©r#   r¿   Z
fancydtyperà  rá  r%   r%   r&   r¶  €  s
    "zTestFromTxt.test_fancy_dtypec                 C   sN   dddœ}t dƒ}d}tj|||d�}||d< tjdd	g|d
�}t||ƒ d S )N)ÚgrV   r  ro  rq  s   M 64.0 75.0
F 25.0 60.0rk  rQ  rr  rt  rx  rZ   r]  )r#   rB  r¿   rr  rà  rá  r%   r%   r&   Útest_names_overwriteˆ  s    ÿÿÿz TestFromTxt.test_names_overwritec              	   C   sâ   t dƒ}tjdd��:}t ddtj¡ tj|dd d�}t|d jtjkƒ W 5 Q R X tj	dd	d
gddt
fdtfgd�}t||ƒ t dƒ}tjdd��:}t ddtj¡ tj|dd d�}t|d jtjkƒ W 5 Q R X t||ƒ d S )NzN
#gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        Trw   ry   r   )rr  r[   r   )ru  rÎ  gfffffR@)ry  r  g
×£p=*M@)ru  rÐ  g=
×£pý5@)rl  r  rm  rn  rZ   sO   
# gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        ©r   r|   r}   r~   rD   rR  rA  r   rS  r\   r^   r]   r   )r#   r¿   r  rà  rM  r%   r%   r&   Útest_commented_header”  s    ÿ
z!TestFromTxt.test_commented_headerc                 C   sJ   t dƒ}tj|ttfd dd�}tjddgdtfdtfgd�}t||ƒ d S )	Nzcol1 col2
 1 2
 3 4T)r[   rû   rr  ri   rj   Zcol1Zcol2rZ   ©r   rD   rA  r^   r\   r   r^  r%   r%   r&   Útest_names_and_comments_none±  s    z(TestFromTxt.test_names_and_comments_nonec                 C   s€   t ƒ �p}tj |d¡}t|dƒ�}| d d¡¡ W 5 Q R X tƒ �* t 	t
¡� tj|dd� W 5 Q R X W 5 Q R X W 5 Q R X d S )Nr  r¼   õ   Ï–r  Úasciir@  )r   rG   rî   r·   rÁ   r'   rS  r   r‚   rð  ÚUnicodeDecodeErrorrD   rA  )r#   r  Zfpathr§   r%   r%   r&   Útest_file_is_closed_on_error¸  s    z(TestFromTxt.test_file_is_closed_on_errorc              	   C   s€   t dƒ}tjdd��<}t ddtj¡ tj|ddd d�}t|d jtjkƒ W 5 Q R X tj	d	d
dt
fdtfgd�}t||ƒ d S )NúA B C D
 aaaa 121 45 9.1Trw   ry   r   ©ÚAÚCÚD)rŒ  rr  r[   r   )rº  é-   ç333333"@©rm  ú|S4rn  ro  rZ   rc  rT  r%   r%   r&   Útest_autonames_and_usecolsÅ  s     ÿÿz&TestFromTxt.test_autonames_and_usecolsc                 C   sJ   t dƒ}tj|tdddd„ idd�}t dd	gd
dggt¡}t||ƒ d S )Nr‰  rô   r1   c                 S   s   t | pdƒS rƒ  r…  r†  r%   r%   r&   r\  Õ  r]  z:TestFromTxt.test_converters_with_usecols.<locals>.<lambda>rŠ  r‹  rX   r„  r�  rŽ  re  r^  r%   r%   r&   r�  Ñ  s    

þz(TestFromTxt.test_converters_with_usecolsc              	   C   sŠ   t dƒ}tjdd��F}t ddtj¡ tj|ddd ddd	„ id
�}t|d jtjkƒ W 5 Q R X tj	dddt
fdtfgd�}t||ƒ d S )Nrk  Trw   ry   r   rl  rn  c                 S   s   dt | ƒ S )NrX   r…  r†  r%   r%   r&   r\  á  r]  zDTestFromTxt.test_converters_with_usecols_and_names.<locals>.<lambda>)rŒ  rr  r[   r^  r   )rº  éZ   rq  rr  ro  rZ   rc  rT  r%   r%   r&   Ú&test_converters_with_usecols_and_namesÚ  s    

þÿz2TestFromTxt.test_converters_with_usecols_and_namesc                 C   sb   ddd„ i}t dƒ}tj|dd ddg|d�}tjtdd	d
ƒdfdtjfdtfgd�}t||ƒ d S )NÚdatec                 S   s
   t | dƒS ©Nz%Y-%m-%d %H:%M:%SZ)r6   r†  r%   r%   r&   r\  ê  r]  z9TestFromTxt.test_converters_cornercases.<locals>.<lambda>ú2009-02-03 12:00:00Z, 72214.0rô   r   ©rõ   r[   rr  r^  éÙ  rX   r1   ç    `¡ñ@rZ   )r   rD   rA  r\   r   Zobject_r]   r   ©r#   Ú	converterr¿   rà  rá  r%   r%   r&   Útest_converters_cornercasesç  s     ÿ
 ÿÿz'TestFromTxt.test_converters_cornercasesc                 C   s\   ddd„ i}t dƒ}tj|dd ddg|d�}tjtdd	d
ƒdfddtfgd�}t||ƒ d S )Nrw  c                 S   s   t  t| dƒ¡S rx  )rD   Z
datetime64r6   r†  r%   r%   r&   r\  õ  r]  z:TestFromTxt.test_converters_cornercases2.<locals>.<lambda>ry  rô   r   rz  r{  rX   r1   r|  )rw  zdatetime64[us]rZ   )r   rD   rA  r\   r   r]   r   r}  r%   r%   r&   Útest_converters_cornercases2ò  s     ÿ
 ÿ
ÿz(TestFromTxt.test_converters_cornercases2c                 C   sb   t dƒ}tj|dddd„ id�}t|ddgƒ | d¡ tj|dd	d
d„ id�}t|ddgƒ d S )Nz1 21
  3 42
rœ  r   c                 S   s
   t | dƒS rË  r…  r†  r%   r%   r&   r\    r]  z3TestFromTxt.test_unused_converter.<locals>.<lambda>rÍ  rÎ  rÏ  rR   c                 S   s
   t | dƒS rË  r…  r†  r%   r%   r&   r\    r]  rÐ  rÑ  )r   rD   rA  r   rJ   ©r#   r¿   rà  r%   r%   r&   rÒ  ý  s    
ÿ

ÿz!TestFromTxt.test_unused_converterc                 C   sB   dd„ }dd„ }t dƒ}t||dœdd d�}tttj|f|Ž d S )Nc                 S   s4   t d|  ¡ kr|  ¡ d p0d|  ¡ kr.|  ¡ p0dƒS )Nó   rró  rR  ©r]   Úlowerr  rØ  r[  r%   r%   r&   r\  
  s   ÿz4TestFromTxt.test_invalid_converter.<locals>.<lambda>c                 S   s4   t d|  ¡ kr|  ¡ d p0d|  ¡ kr.|  ¡ p0dƒS )Nó   %r   rR  rƒ  r[  r%   r%   r&   r\    s   ÿzgD01N01,10/1/2003 ,1 %,R 75,400,600
L24U05,12/5/2003, 2 %,1,300, 150.5
D02N03,10/10/2004,R 1,,7,145.55r9  rô   )r^  rõ   r[   )r   rF  r   r
   rD   rA  )r#   Z
strip_randZ	strip_perr$   rP   r%   r%   r&   Útest_invalid_converter	  s     þz"TestFromTxt.test_invalid_converterc                 C   sH   t dƒ}dd„ }tj|dd|id�}t ddgd	d
gg¡}t||ƒ d S )Nz	q1,2
q3,4c                 S   s   t | dd … ƒS rd  rs   r†  r%   r%   r&   r\    r]  z;TestFromTxt.test_tricky_converter_bug1666.<locals>.<lambda>rô   r   )rõ   r^  rð   rñ   rò   ró   r]  )r#   r$   Zcnvrà  rá  r%   r%   r&   Útest_tricky_converter_bug1666  s
    z)TestFromTxt.test_tricky_converter_bug1666c                 C   s~   d}t jt|ƒdtdtid�}t jdgddtfdtfgd	�}t||ƒ t jt|ƒdtdtid�}t  d
ddg¡}t||ƒ d S )Nz2009; 23; 46rÙ  r   rÚ  )Z2009ç      7@é.   )rY  rs  rZ  r[  rZ   g     dŸ@rˆ  r‰  )rD   rA  r   r]   r3   r\   r   )r#   Údstrrà  rá  r%   r%   r&   Útest_dtype_with_converters  s"    
  ÿÿ

  ÿz&TestFromTxt.test_dtype_with_convertersc                    s´   d}dddddœ‰ ddd	d
g}t t t ‡ fdd„dœ}tjt|ƒ|dd |d�}tjjdddg|d�}t||ƒ ddd
g}tjt|ƒ|ddd |d�}tjjdddg|d�}t||ƒ d S )Nz!1,5,-1,1:1
2,8,-1,1:n
3,3,-2,m:n
r   rR   rX   r1   )z1:1z1:nzm:1zm:n)Úe1rm   )Úe2rm   )Ze3Úi2)r�   Úi1c                    s   ˆ |   ¡  S r    rZ  )rg   ©Zdmapr%   r&   r\  .  r]  zDTestFromTxt.test_dtype_with_converters_and_usecols.<locals>.<lambda>)r   rR   rX   r1   rô   )r[   rõ   rr  r^  )rR   rä   ró  r   )rX   r¾  ró  rR   )r1   r1   éþÿÿÿr1   rZ   )r   rR   r1   )r[   rõ   rŒ  rr  r^  )rR   rä   r   )rX   r¾  rR   )r1   r1   r1   )r^   rD   Ú
recfromcsvr   Zrecr\   r   )r#   rŠ  ZdtypÚconvrà  rá  r%   r�  r&   Ú&test_dtype_with_converters_and_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 5 Q R X dt fdtfdg fg}tt	dƒ� tjt|ƒd||d�}W 5 Q R X d S )NrÓ  rÔ  rÕ  c                 S   s   t |  ¡ dƒS rÖ  r×  r†  r%   r%   r&   r\  >  r]  z4TestFromTxt.test_dtype_with_object.<locals>.<lambda>rR   rÙ  rÚ  rÛ  rX   rÜ  rÝ  rZ   ÚnestzNested fields.* not supported.*)
r^   ra   rD   rA  r   r\   r   r   r   ÚNotImplementedErrorrÞ  r%   r%   r&   râ  9  s8    ÿþ
ÿ ÿÿ ÿz"TestFromTxt.test_dtype_with_objectc                 C   sH   t jtdƒtd�}|d dks"t‚t jtdƒtd�}|d dksDt‚d S )NÚ1rZ   r%   ó   1Ústrings   string)rD   rA  r   ra   r¸   )r#   Úparsedr%   r%   r&   Ú#test_dtype_with_object_no_converterT  s    z/TestFromTxt.test_dtype_with_object_no_converterc                 C   sH   t dƒ}tj|dd tddtid�}tjdgddtfgd	�}t||ƒ d S )
Nzskip,skip,2001-01-01,1.0,skiprô   r9  rX   )rõ   rr  r[   rŒ  r^  )ú
2001-01-01rð   )r   ú|S10r   rZ   )r   rD   rA  r]   r3   r\   r   r^  r%   r%   r&   Ú'test_userconverters_with_explicit_dtype[  s     ÿ
ÿz3TestFromTxt.test_userconverters_with_explicit_dtypec              
   C   s’   d}t ƒ �N}t|dƒ�}| d| d ¡ W 5 Q R X tj|dd tddtjjidd	�}W 5 Q R X tjd
| 	d¡ dfgddtfgd�}t
||ƒ d S )Nr  r¼   s   skip,skip,2001-01-01s	   ,1.0,skiprô   r9  rX   r  )rõ   rr  r[   rŒ  r^  r  rœ  rð   )r   z|U11r   rZ   )r   rÁ   r'   rD   rA  r]   ÚcompatÚunicoder\   r4   r   )r#   r  rî   r§   rà  rá  r%   r%   r&   Ú,test_utf8_userconverters_with_explicit_dtyped  s     
þ
ÿz8TestFromTxt.test_utf8_userconverters_with_explicit_dtypec                 C   sB   t dƒ}t |¡}t dddddgddd	d
dgg¡}t||ƒ d S )Nz1  2  3  4   5
6  7  8  9  10rð   rñ   rò   ró   ç      @r´  g      @r»  ç      "@g      $@r]  r^  r%   r%   r&   Útest_spacedelimiterp  s    
ÿzTestFromTxt.test_spacedelimiterc                 C   sF   d}t jt|ƒdd�}t  dddgdddgd	d
dgg¡}t||ƒ d S )Nz  1  2  3
  4  5 67
890123  4r1   )rõ   rR   rX   rY   rä   éC   iz  é{   ©rD   rA  r   r\   r   r^  r%   r%   r&   Útest_integer_delimiterx  s    "z"TestFromTxt.test_integer_delimiterc                 C   sF   t dƒ}tj|tdddd„ id�}t dddd	d
gt¡}t||ƒ d S )Nr‚  rô   r1   c                 S   s   t | pdƒS rƒ  r…  r†  r%   r%   r&   r\  ‚  r]  z*TestFromTxt.test_missing.<locals>.<lambda>r‡  rR   rX   r„  rä   re  r^  r%   r%   r&   rˆ    s    

ÿzTestFromTxt.test_missingc                 C   sj   d}t jt|ƒddd�}t  dt jdt jfdt jdfg¡}t jd	d
dgtd�}t|j|ƒ t|j|ƒ d S )Nz1	2	3
	2	
1		3rþ  T)rõ   Úusemaskrâ   rX   rR   r1   ©r   r   r   ©rR   r   rR   ©r   rR   r   rZ   )	rD   rA  r   r\   ÚnanÚboolr   r¿   Úmask)r#   r÷  rà  Zctrl_dZctrl_mr%   r%   r&   Útest_missing_with_tabs†  s    ÿ"z"TestFromTxt.test_missing_with_tabsc                 C   sþ   t  ddgddggt¡}tƒ }t  ||¡ | d¡ t j|tdd�}t||d d …df ƒ t  dddgdddggt¡}tƒ }t  ||¡ | d¡ t j|td	d�}t||d d …dd …f ƒ | d¡ t j|tt  ddg¡d�}t||d d …dd …f ƒ d S )
NrR   rX   r1   rY   r   rœ  r�  rä   ri   )rD   r\   r]   r   rÙ   rJ   rA  r   rC  r%   r%   r&   r°  �  s    


zTestFromTxt.test_usecolsc                 C   sB   d}t jt|ƒddd�}t jddgdd„ d	D ƒd
�}t||ƒ d S )Nú1 2 3
4 5 6úa, b, cza, c)rr  rŒ  rŠ  ©rY   rå   c                 S   s   g | ]}|t f‘qS r%   rs   rJ  r%   r%   r&   r)   ª  s     z3TestFromTxt.test_usecols_as_css.<locals>.<listcomp>ÚacrZ   r§  ©r#   r¿   rà  rM  r%   r%   r&   Útest_usecols_as_css¥  s    
 ÿzTestFromTxt.test_usecols_as_cssc                 C   sZ   t dƒ}ddg}ddg}tj|dtt||ƒƒd�}t|d dd	gƒ t|d d
dgƒ d S )NzJOE 70.1 25.3
BOB 60.5 27.9r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  )r   rD   rA  r  rÐ   r   )r#   r¿   rr  r¯  rà  r%   r%   r&   Ú"test_usecols_with_structured_dtype­  s      ÿz.TestFromTxt.test_usecols_with_structured_dtypec                 C   s*   t jtdƒdd�}t|t  ddg¡ƒ d S )Ns   1 2 3
4 5 6r   r«  rð   ró   )rD   rA  r   r   r\   )r#   rà  r%   r%   r&   Útest_usecols_with_integer·  s    z%TestFromTxt.test_usecols_with_integerc                 C   sx   t jddgdtfdtfgd�}d}tdd�}t jt|ƒfd	d
i|—Ž}t||ƒ t jt|ƒfd	di|—Ž}t||ƒ d S )NrŠ  r³  rV   r¢   rZ   r±  r²  )rr  rŒ  ©r   ró  )rV   r¢   )rD   r\   r]   rF  rA  r   r   )r#   rM  r¿   rP   rà  r%   r%   r&   Útest_usecols_with_named_columns¼  s    

ÿÿz+TestFromTxt.test_usecols_with_named_columnsc              	   C   s`   t ƒ �P}|jdd� tƒ }t |¡}t|t g ¡ƒ tj|dd�}t|t g ¡ƒ W 5 Q R X d S )Nzgenfromtxt: Empty input file:rÇ  rR   )rE  )r   rÅ   r   rD   rA  r   r\   )r#   rÉ   r¿   rà  r%   r%   r&   rÊ  Ç  s    
zTestFromTxt.test_empty_filec                 C   s\   t dƒ}t dtfddtfdtfgfg¡}tj||ddd�}tjd	d
g|d�}t||ƒ d S )Nr±  rl   ro   rº   r$   rô   T)r[   rõ   r©  r²  r³  rZ   )	r   rD   r[   r^   r]   rA  Úmar\   r   r`  r%   r%   r&   Útest_fancy_dtype_altÓ  s
    "z TestFromTxt.test_fancy_dtype_altc                 C   sl   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
dddgdddggfg|d�}t||ƒ d S r·  )r   rD   r[   r]   r^   rA  r\   r   rµ  r%   r%   r&   r½  Û  s    ÿ ÿzTestFromTxt.test_shaped_dtypec                 C   sÊ   t dƒ}tdddd�}tj|fd ddœ|—Ž}tjddgd	d
gdtfdtfgd�}t||ƒ t|j|jƒ | 	d¡ tj|fddi|—Ž}tjddgd	d
gdt
fdt
fgd�}t||ƒ t|j|jƒ d S )NúA,B
0,1
2,N/Arô   úN/AT©rõ   Úmissing_valuesrr  ©r[   r©  r  ©rX   ró  ©FF©FTrm  ÚB©r¯  r[   r   r©  )r   rF  rD   rA  r»  r\   r^   r   r¯  rJ   r]   ©r#   r¿   rP   rà  rá  r%   r%   r&   Útest_withmissingä  s"    
þ


þ
zTestFromTxt.test_withmissingc                 C   s  d}t d ddd�}dtfdtfdtfg}tjt|ƒfdd	i|—Ž}tjd
dddgddddg|d�}t	||ƒ ||d< tjt|ƒfddddœddœ|—Ž}tjd
dddgddddg|d�}t	||ƒ tjt|ƒfddddœddœ|—Ž}tjd
dddgddddg|d�}t	||ƒ d S )Nz4A, B, C
0, 0., 0j
1, N/A, 1j
-9, 2.2, N/A
3, -99, 3jrô   T)r[   rõ   rr  rm  rÅ  rn  rÀ  r¾  )r   rR  y                )rR   r„  r   )r3  gš™™™™™@ù       €     8�À)r1   é�ÿÿÿy              @rª  r¬  )r   r   rR   rÆ  r[   r3  rÊ  rÉ  ©r   rR   rX   )rÀ  r©  r«  )r   rÅ  rn  )
rF  r^   r]   r›   rD   rA  r   r»  r\   r   )r#   r¿   Z
basekwargsZmdtyperà  rá  r%   r%   r&   Útest_user_missing_valuesö  sV    ÿ ÿ
ý

 ÿÿ ÿ
ý

þý ÿ
ýz$TestFromTxt.test_user_missing_valuesc              	   C   sD  t jddgdtfdtfgd�}d}tdtdd	d
ddœddddœd�}t jt|ƒf|Ž}t jddgdd„ dD ƒd�}t||ƒ t jt|ƒfddi|—Ž}t jddgdd„ dD ƒd�}t||ƒ d}t jt|ƒdtddd�}t  ddddgddd d!gg¡}t||ƒ t jt|ƒdtdd"d�}t  ddd"dgdd"d d!gg¡}t||ƒ d S )#N)r   r1   )rY   r„  rV   rœ   rZ   zN/A, 2, 3
4, ,???rô   za,b,cr¾  rÕ   z???)r   rœ   rX   r   r„  )rõ   r[   rr  rÀ  Úfilling_values)r   rX   r1   )rY   r   r„  c                 S   s   g | ]}|t f‘qS r%   r…  rJ  r%   r%   r&   r)   !  s     z8TestFromTxt.test_user_filling_values.<locals>.<listcomp>ÚabcrŒ  r¹  c                 S   s   g | ]}|t f‘qS r%   r…  rJ  r%   r%   r&   r)   %  s     r´  z1,2,*,4
5,*,7,8
Ú*)rõ   r[   rÀ  rÍ  rR   rX   rY   rä   r�  r¾  ró  )rD   r\   r^   rF  rA  r   r   )r#   rM  r¿   rP   rà  Zdata2r%   r%   r&   Útest_user_filling_values  s:    

ü
ÿ

 ÿ
 ÿz$TestFromTxt.test_user_filling_valuesc                 C   s^   t dƒ}tj|d ddddd�}tjddgdd	gd
tfdtfgd�}t||ƒ t|j|jƒ d S )NzA,B
0,1.5
2,-999.00rô   z-999.0T)r[   rõ   rÀ  rr  r©  )r   rª  )rX   g      ð¿rÃ  rÄ  rm  rÅ  rÆ  )	r   rD   rA  r»  r\   r^   r]   r   r¯  r^  r%   r%   r&   Útest_withmissing_float2  s    
  ÿ
þ
z"TestFromTxt.test_withmissing_floatc                 C   sV   t dƒ}tj|d ddd�}tjdddgdd	d
ggdddgdddggd�}t||ƒ d S )Nz1 2 3
4 5 6
ú2,5T©r[   rÀ  r©  rR   rX   r1   rY   rä   rå   r   )r¯  )r   rD   rA  r»  r\   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¬  rY  rZ  r[  rÆ  )r   rD   rA  r»  r\   r®  r^   r   r^  r%   r%   r&   Útest_with_masked_column_variousD  s     ÿ
þz+TestFromTxt.test_with_masked_column_variousc                    s²   dgd }t dƒD ]}d|d| < q| dd¡ td |¡ƒ‰td	d d
d�‰ ‡ ‡fdd„}tt|ƒ}tt|ƒdƒ t|t	j
ddd„ dD ƒd�ƒ ˆ d¡ ttt	jˆd	d
d� d S )Nú1, 1, 1, 1, 1r,  rä   ú2, 2, 2, 2 2r¿  r   úa, b, c, d, erÖ   rô   T©rõ   r[   rr  c                      s   t jˆfddiˆ —ŽS )NrO  F©rD   rA  r%   ©rP   Úmdatar%   r&   r§   W  s    z)TestFromTxt.test_invalid_raise.<locals>.frp  c                 S   s   g | ]}|t f‘qS r%   r…  rJ  r%   r%   r&   r)   [  s     z2TestFromTxt.test_invalid_raise.<locals>.<listcomp>ÚabcderZ   ©rõ   rr  )rz   Úinsertr   r·   rF  r   r   r   ÚlenrD   r{   rJ   r   rÜ   rA  )r#   r¿   ru   r§   Úmtestr%   rÛ  r&   Útest_invalid_raiseN  s    



 ÿzTestFromTxt.test_invalid_raisec                    sü   dgd }t dƒD ]}d|d| < q| dd¡ td |¡ƒ‰td	d d
dd�‰ ‡ ‡fdd„}tt|ƒ}tt|ƒdƒ t|t	j
ddd„ dD ƒd�ƒ ˆ d¡ t	jˆfddiˆ —Ž}tt|ƒdƒ t	j
ddd„ dD ƒd�}d|dd„ t dƒD ƒ< t||ƒ d S )NrÖ  r,  rä   r×  r¿  r   rØ  rÖ   rô   TF)rõ   r[   rr  rO  c                      s   t jˆfddiˆ —ŽS )NrŒ  )r   rY   rÚ  r%   rÛ  r%   r&   r§   k  s    z6TestFromTxt.test_invalid_raise_with_usecols.<locals>.frp  c                 S   s   g | ]}|t f‘qS r%   r…  rJ  r%   r%   r&   r)   o  s     z?TestFromTxt.test_invalid_raise_with_usecols.<locals>.<listcomp>ZaerZ   rŒ  r  c                 S   s   g | ]}|t f‘qS r%   r…  rJ  r%   r%   r&   r)   t  s     Úabrõ  c                 S   s   g | ]}d | ‘qS )r¿  r%   rJ  r%   r%   r&   r)   u  s     )rz   rß  r   r·   rF  r   r   r   rà  rD   r{   rJ   rA  )r#   r¿   ru   r§   rá  rá  r%   rÛ  r&   Útest_invalid_raise_with_usecolsa  s$    
ÿ

z+TestFromTxt.test_invalid_raise_with_usecolsc                 C   sR   dgd }t d |¡ƒ}ddd„ i}td|dd	„ d
D ƒd�}tttj|f|Ž d S )Nz1, 1, 1, 1, -1.1r,  rÖ   rY   c                 S   s   d|   ¡  S )Nz(%s)rZ  r[  r%   r%   r&   r\  }  r]  z5TestFromTxt.test_inconsistent_dtype.<locals>.<lambda>rô   c                 S   s   g | ]}|t f‘qS r%   r…  rJ  r%   r%   r&   r)     s     z7TestFromTxt.test_inconsistent_dtype.<locals>.<listcomp>rÝ  )rõ   r^  r[   )r   r·   rF  r   rÜ   rD   rA  )r#   r¿   rÜ  r^  rP   r%   r%   r&   Útest_inconsistent_dtypex  s    
ÿz#TestFromTxt.test_inconsistent_dtypec                 C   sL   d}t jt|ƒdd dd�}t jddgdtfdtfd	tfgd
�}t||ƒ d S )Nú0, 1, 2.3
4, 5, 6.7rô   úf%02i©rõ   r[   Z
defaultfmt©r   rR   çffffff@)rY   rä   çÍÌÌÌÌÌ@Zf00Zf01Zf02rZ   )rD   rA  r   r\   r^   r]   r   ©r#   r¿   rá  rM  r%   r%   r&   Útest_default_field_format‚  s    
  ÿ
ÿz%TestFromTxt.test_default_field_formatc                 C   sF   d}t jt|ƒdtdd�}t jdddgdd	d
ggtd�}t||ƒ d S )Nræ  rô   rç  rè  rR  rð   rê  ró   r¢  rë  rZ   ©rD   rA  r   r]   r\   r   rì  r%   r%   r&   Útest_single_dtype_wo_names‹  s    
  ÿz&TestFromTxt.test_single_dtype_wo_namesc                 C   sD   d}t jt|ƒdtdd�}t jddgdd„ d	D ƒd
�}t||ƒ d S )Nræ  rô   r²  rÙ  ©rR  rð   rê  ©ró   r¢  rë  c                 S   s   g | ]}|t f‘qS r%   rs   rJ  r%   r%   r&   r)   ™  s     zBTestFromTxt.test_single_dtype_w_explicit_names.<locals>.<listcomp>rÎ  rZ   rî  rì  r%   r%   r&   Ú"test_single_dtype_w_explicit_names“  s    
  ÿ
ÿz.TestFromTxt.test_single_dtype_w_explicit_namesc                 C   sD   d}t jt|ƒdtdd�}t jddgdd„ d	D ƒd
�}t||ƒ d S )Nza, b, c
0, 1, 2.3
4, 5, 6.7rô   TrÙ  rð  rñ  c                 S   s   g | ]}|t f‘qS r%   rs   rJ  r%   r%   r&   r)   ¢  s     zBTestFromTxt.test_single_dtype_w_implicit_names.<locals>.<listcomp>rÎ  rZ   rî  rì  r%   r%   r&   Ú"test_single_dtype_w_implicit_namesœ  s    
  ÿ
ÿz.TestFromTxt.test_single_dtype_w_implicit_namesc                 C   sR   d}t jt|ƒdtttfdd�}t jddgdtfdtfd	tfgd
�}t||ƒ d S )Nræ  rô   zf_%02irè  )r   rð   rê  )rY   r¢  rë  Zf_00Zf_01Zf_02rZ   ©rD   rA  r   r^   r]   r\   r   rì  r%   r%   r&   Útest_easy_structured_dtype¥  s     ÿ
ÿz&TestFromTxt.test_easy_structured_dtypec              	   C   s   d}t dd d�}tjdd��<}t ddtj¡ tjt|ƒf|Ž}t|d j	tjkƒ W 5 Q R X tj
d	gd
dtfdgd�}t||ƒ tjdd��D}t ddtj¡ tjt|ƒfddi|—Ž}t|d j	tjkƒ W 5 Q R X tj
dgddtfdgd�}t||ƒ d S )Nz01/01/2003  , 1.3,   abcderô   )rõ   r[   Trw   ry   r   r   )z01/01/2003  çÍÌÌÌÌÌô?z   abcde)rY  z|S12rZ  )r[  rý  rZ   Z	autostrip)z
01/01/2003rö  rÝ  )rY  r�  )r[  z|S5)rF  r|   r}   r~   rD   rR  rA  r   r   rS  r\   r]   r   )r#   r¿   rP   r  rá  rM  r%   r%   r&   Útest_autostrip®  s$    ÿ
ÿzTestFromTxt.test_autostripc                 C   sÚ   d}t jt|ƒddd d�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddd d
d
d�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddd d
d�}dtfdtfdtfg}t jd|d	�}t||ƒ d S )NzA.A, B (B), C:C
1, 2, 3.14rô   T©rõ   rr  r[   ÚAAÚB_BÚCC)rR   rX   g…ëQ¸	@rZ   r   ©rõ   rr  r[   Zreplace_spaceÚdeletecharsúA.AúB (B)úC:C©rõ   rr  r[   rý  úB_(B)rô  ©r#   r÷  rà  Z
ctrl_dtyperM  r%   r%   r&   Útest_replace_spaceÁ  s8    
  ÿ

   þ

  þzTestFromTxt.test_replace_spacec                 C   sÚ   d}t jt|ƒddtd�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddtd
d
d�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddtd
d�}dtfdtfdtfg}t jd|d	�}t||ƒ d S )NzA.A, B (B), C:C
1, 2, 3rô   Trø  rù  rú  rû  râ   rZ   r   rü  rþ  rÿ  r   r  r  )rD   rA  r   r^   r\   r   r  r%   r%   r&   Útest_replace_space_known_dtypeÙ  s8    
  ÿ

   þ

  þz*TestFromTxt.test_replace_space_known_dtypec                 C   s‚   d}t ddd�}tjddgdd„ d	D ƒd
�}tjt|ƒfdd i|—Ž}t||ƒ tjddgdd„ d	D ƒd
�}tjt|ƒf|Ž}d S )NzA,,C
0,1,2
3,4,5rô   TrÞ  rË  )r1   rY   rä   c                 S   s   g | ]}|t f‘qS r%   r…  rJ  r%   r%   r&   r)   ÷  s     z5TestFromTxt.test_incomplete_names.<locals>.<listcomp>)rm  rY  rn  rZ   r[   c                 S   s   g | ]}|t f‘qS r%   rs   rJ  r%   r%   r&   r)   ü  s     )rF  rD   r\   rA  r   r   ©r#   r¿   rP   rM  rà  r%   r%   r&   Útest_incomplete_namesñ  s    
ÿ

ÿz!TestFromTxt.test_incomplete_namesc                 C   sP   d}t jt|ƒtttfdd�}t jddgdtfdtfdtfgd�}t||ƒ d S )	Nz1 2 3
 4 5 6rV   rQ  râ   rã   rY  rZ  rZ   rô  rµ  r%   r%   r&   Útest_names_auto_completionÿ  s    
 ÿ
ÿz&TestFromTxt.test_names_auto_completionc                 C   sŠ   d}d}t jt|ƒtttfdddd�}t|jj|ƒ t jt|ƒtttfdddd�}t|jj|ƒ t jt|ƒtdddd�}t|jj|ƒ d S )Nz'A,B,C,D,E
0,1,2,3,4
0,1,2,3,4
0,1,2,3,4)rm  rn  ÚErô   )r   rX   rY   T)r[   rõ   rŒ  rr  )rD   rA  r   r^   r   r[   rr  )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|Ž}t||ƒ t ddd d�}tjddgdtfdtfd	tfgd
�}tjt|ƒf|Ž}t||ƒ d S )Nz-    A    B   C
    0    1 2.3
   45   67   9.)rä   rä   rY   Trø  ré  )rp  r¥  r£  rm  rÅ  rn  rZ   rä   )rF  rD   r\   r^   r]   rA  r   r   r  r%   r%   r&   Útest_fixed_width_names  s    
ÿ

ÿz"TestFromTxt.test_fixed_width_namesc                 C   sX   d}t dd dd�}tjdddgdddgd	d
dggtd�}tjt|ƒf|Ž}t||ƒ d S )Ns   1, 2, 3
1, , 5
0, 6, 
rô   r„  )rõ   r[   rÍ  rR   rX   r1   rä   r   rå   rZ   )rF  rD   r\   r^   rA  r   r   r  r%   r%   r&   Útest_filling_values*  s
    &zTestFromTxt.test_filling_valuesc              	   C   sÄ   t jdd��@}t  ddtj¡ tjtdƒd d dd�}t|d jtjkƒ W 5 Q R X t	|d	 d
ƒ t jdd��@}t  ddtj¡ tjtdƒd d dd�}t|d jtjkƒ W 5 Q R X t	|d	 dƒ d S )NTrw   ry   r   ztest1,testNonetherestofthedatarô   ©r[   rû   rõ   r   rR   s   testNonetherestofthedataztest1, testNonetherestofthedatas    testNonetherestofthedata)
r|   r}   r~   rD   rR  rA  r   r   rS  r   )r#   r  rà  r%   r%   r&   Útest_comments_is_none2  s$    
  ÿ
  ÿz!TestFromTxt.test_comments_is_nonec              	   C   sf  d}d}d| d }|| | }t jdd��@}t  ddtj¡ tjt|ƒd d d	d
�}t|d jtjkƒ W 5 Q R X t	|d dƒ t	|d d| ƒ t	|d dƒ tjt|ƒd d d	dd�}t	|d dƒ t	|d d| 
d¡ ƒ t	|d dƒ t jdd��D}t  ddtj¡ tjtd| ƒd d d	d
�}t|d jtjkƒ W 5 Q R X t	|d dƒ t	|d d| ƒ d S )Ns   öüöó   norm1,norm2,norm3
ó   test1,testNonetheó   ,test3
Trw   ry   r   rô   r  r   )rR   r   ó   test1)rR   rR   ó   testNonetheri   ó   test3r0   ©r[   rû   rõ   r  Útest1ÚtestNonetheÚtest3ó   0,testNonetherY  rZ  )r|   r}   r~   rD   rR  rA  r   r   rS  r   r4   )r#   r0   ÚnormÚencr$   r  rà  r%   r%   r&   Útest_latin1A  sD    
  ÿ
  þ  ÿzTestFromTxt.test_latin1c                 C   s6   d}| j t|ƒd dd�}t|t | d¡ ¡ ¡ƒ d S rV  )rD  r   r   rD   r\   r4   r  rW  r%   r%   r&   Útest_binary_decode_autodtype]  s    z(TestFromTxt.test_binary_decode_autodtypec              	   C   s¦   d}d}d| d }|| | }t jdd��@}t  ddtj¡ tjt|ƒd d d	d
�}t|d jtjkƒ W 5 Q R X t 	dddgdd| dgdddgg¡}t
||ƒ d S )Nr  r  r  r  Trw   ry   r   rô   r  r   s   norm1s   norm2s   norm3r  r  r  )r|   r}   r~   rD   rR  rA  r   r   rS  r\   r   )r#   r  r  r  r$   r  rà  Úctlr%   r%   r&   Útest_utf8_byte_encodingb  s$    
  ÿýz#TestFromTxt.test_utf8_byte_encodingc              
   C   sö   d}t ƒ �â}t|dƒ�}| d| d d ¡ W 5 Q R X tj|d d ddd�}tjd	d
| d¡ dgd	d
| d¡ dggtjd�}t||ƒ t|dƒ�}| d| ¡ W 5 Q R X tj|d d ddd�}t	|d dƒ t	|d d
| d¡ ƒ W 5 Q R X d S )Nr  r¼   r  r  rX   rô   r  r  r  r  r  rZ   r  rY  r   rZ  )
r   rÁ   r'   rD   rA  r\   r4   r  r   r   )r#   r  rî   r§   rà  r  r%   r%   r&   Útest_utf8_filer  s.     
 ÿþý

 ÿzTestFromTxt.test_utf8_filec           	   
   C   s"  d}d}zt  ¡ }| |¡ W n" ttfk
r@   t d¡ Y nX tƒ �Ð}t 	|d¡�4}| 
d¡ | 
d| d ¡ | 
d| d	 ¡ W 5 Q R X tjd
d��<}t ddtj¡ tj|d d dd�}t|d jtjkƒ W 5 Q R X tjdddgd|dgdd| dggtjd�}t||ƒ W 5 Q R X d S )Nrg  u   Ã¶Ã¼Ã¶zTSkipping test_utf8_file_nodtype_unicode, unable to encode utf8 in preferred encodingr>  znorm1,norm2,norm3
znorm1,z,norm3
ztest1,testNonethez,test3
Trw   ry   r   rô   r  r   Znorm1Znorm2Znorm3r  r  r  rZ   )r$  r%  rS  ÚUnicodeErrorÚImportErrorr‚   Úskipr   ra  rÁ   r'   r|   r}   r~   rD   rR  rA  r   rS  r\   r  r   )	r#   r  r0   r  rî   r§   r  rà  r  r%   r%   r&   Útest_utf8_file_nodtype_unicode‡  s8    
ÿ
ÿýüz*TestFromTxt.test_utf8_file_nodtype_unicodec                 C   sÌ   t dƒ}tdddd�}tj|f|Ž}tjddgdtfd	tfgd
�}tt|tjƒƒ t	||ƒ t dƒ}tj|fd ddœ|—Ž}t
jddgddgdtfd	tfgd�}t	||ƒ t	|j|jƒ t	|jddgƒ d S )NúA,B
0,1
2,3rô   r¾  Tr¿  r  r9  rm  rÅ  rZ   r½  rÁ  rÂ  rÃ  rÄ  rÆ  r   rX   )r   rF  rD   Ú
recfromtxtr\   r^   r   rA   Úrecarrayr   r»  r¯  rm  rÇ  r%   r%   r&   Útest_recfromtxtª  s"    
ÿ

þ
zTestFromTxt.test_recfromtxtc                 C   sÈ  t dƒ}tdddd�}tj|fdd i|—Ž}tjddgdtfd	tfgd
�}tt|tjƒƒ t	||ƒ t dƒ}tj|fd ddœ|—Ž}t
jddgddgdtfd	tfgd�}t	||ƒ t	|j|jƒ t	|jddgƒ t dƒ}tj|dd�}tjddgdtfdtfgd
�}tt|tjƒƒ t	||ƒ t dƒ}dtfdtfg}tj|d|d�}tjddg|d
�}tt|tjƒƒ t	||ƒ t dƒ}tj|ddd„ id�}tjddgdtdffgd
�}t	|j|jƒ t	||ƒ d S )Nr%  r¾  T©rÀ  rr  Úcase_sensitiver[   r  r9  rm  rÅ  rZ   r½  rÁ  rÂ  rÃ  rÄ  rÆ  r   rX   )rÀ  rV   rœ   )rÀ  r[   zcolor
"red"
"blue"c                 S   s
   |   d¡S )Nó   ")rØ  r[  r%   r%   r&   r\  á  r]  z-TestFromTxt.test_recfromcsv.<locals>.<lambda>)r^  )Úred)ÚblueÚcolorrY   )r   rF  rD   r’  r\   r^   r   rA   r'  r   r»  r¯  rm  r]   r3   r[   )r#   r¿   rP   rà  rá  r[   r%   r%   r&   Útest_recfromcsv½  sJ    
ÿ

þ

ÿ

ÿ
zTestFromTxt.test_recfromcsvc              	   C   sâ  d}t |ƒ}tj|dd�}t |¡}t|ddgddgddggƒ t|d	d
gddggƒ tttjt |ƒdd� d}tjt |ƒdd�}t ddgddgg¡}t||ƒ tttjt |ƒddd� tttjt |ƒdd� tƒ ��}| t	¡ tjt |ƒddd�}t ddgddgddgddgg¡}t||ƒ tjt |ƒddd�}t ddgddgddgddgg¡}t||ƒ W 5 Q R X d}t |ƒ}tj|dddd�}tjdddgddgd�}t||ƒ tj|d |j
d�}tjd d!gddgd�}t||ƒ d S )"Nz1 2
3 4
5 6
7 8
9 10
r1   )r  rR   rX   rY   rä   rå   r�  r¾  rŽ  r¿  r   z1 1
2 2
0 
3 3
4 4
5  
6  
7  
rð   rñ   )rH  r  F)r  rO  rò   ró   z"a b
#c d
1 1
2 2
#0 
3 3
4 4
5  5
T)rE  r  rr  )rð   rð   )rñ   rñ   )rò   rò   )r¢   ú<f8)r}  r0  rZ   )r  r[   )ró   ró   )r¢  r¢  )r   rD   rA  r   r   rÜ   r\   r   rÅ   r   r[   )r#   r¿   r÷  Za1Za2rà  rá  rÉ   r%   r%   r&   r  æ  sF    

ÿ
"
"ÿ

ÿzTestFromTxt.test_max_rowsc                 C   st   t  d¡ d¡}d}|D ]V}d| d }tƒ �0}t|dƒ�}| |¡ W 5 Q R X t  |¡}W 5 Q R X t||ƒ qd S )Nrå   r9  r:  r<  r=  r  )rD   rB  rC  r   rÁ   r'   rA  r   )r#   rå  rF  rG  r¿   r@   r§   rH  r%   r%   r&   Útest_gft_using_filename	  s    z#TestFromTxt.test_gft_using_filenamec           	      C   s¢   t  d¡ d¡}d}|D ]„}d| d }tƒ }tj|dd��}| t|ƒ¡ W 5 Q R X tdd	��6}t	|dƒ�}| |¡ W 5 Q R X t
t  |¡|ƒ W 5 Q R X qd S )
Nrå   r9  r:  r<  r=  r  ©Úfileobjr?  z.gz2r©   )rD   rB  rC  r   rJ  ÚGzipFiler'   r   r   rÁ   r   rA  )	r#   rE  rF  rG  r¿   r$   ra  r@   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  )rz   r   r  r%   r%   r&   r  <	  s    z3TestFromTxt.test_gft_using_generator.<locals>.countr¿  )rD   rA  r   rB  r  r%   r%   r&   Útest_gft_using_generator:	  s    z$TestFromTxt.test_gft_using_generatorc                 C   s’   t dƒ}tj|d d�}t|jjdddgƒ t|jd tkƒ t|jd tjkƒ t|jd tj	kƒ t
|d dƒ t|d dƒ t|d dƒ d S )	Nz%73786976294838206464 17179869184 1024rZ   rY  rZ  r[  g      Dl        i   )r   rD   rA  r   r[   rr  r   r]   r¬  Úint_r   r�  r%   r%   r&   Útest_auto_dtype_largeintC	  s    z$TestFromTxt.test_auto_dtype_largeintc                 C   sž   t dƒ}dddœ}tj||dd�\}}}t|jt d¡ƒ t|jt d¡ƒ t|jt d	¡ƒ t|t d
dg¡ƒ t|t ddg¡ƒ t|t ddg¡ƒ d S )Nr   r  ro  rq  Tr  rp  rm   rë   r  r  rÎ  r  r  r	  )r   rD   rA  r   r[   r   r\   r
  r%   r%   r&   r  \	  s    
z"TestFromTxt.test_unpack_structuredc                 C   sr   t dƒ}t ddg¡t ddg¡t ddg¡f}tj|d dd	d
�}t||ƒD ] \}}t||ƒ t|j|jƒ qLd S )NzM 21 72.
F 35 58.ru  ry  rÎ  r  r  r	  Tzutf-8)r[   r  r  )r   rD   r\   rA  rÐ   r   r   r[   )r#   r÷  Úexpectedrà  rN   Úresultr%   r%   r&   Útest_unpack_auto_dtypei	  s    (
z"TestFromTxt.test_unpack_auto_dtypec                 C   sR   t dƒ}dddœ}tjddgtjd�}tj||dd	�}t||ƒ t|j|jƒ d S )
Nz21
35r‘   ©rm   rq  rÎ  r  rZ   Tr  )r   rD   r\   r|  rA  r   r   r[   ©r#   r÷  r€   r9  rà  r%   r%   r&   Útest_unpack_single_names	  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<  rq  rœ  rZ   Tr  r%   )	r   rD   r\   r|  rA  r   r   rT   r[   r=  r%   r%   r&   Útest_squeeze_scalar}	  s    

zTestFromTxt.test_squeeze_scalarN)Wr,   r-   r.   r#  rD   rA  rD  rp   r_   rc   rD  r›  rN  rP  rU  r\  r_  r¶  rb  rd  rf  rj  rt  r�  rv  r  r€  rÒ  r†  r‡  r‹  r”  râ  r›  rž  r¡  r¤  r¨  rˆ  r°  r°  r¶  r·  r¸  rº  rÊ  r¼  r½  rÈ  rÌ  rÐ  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  r1  r5  r6  r8  r  r;  r>  r?  r%   r%   r%   r&   r@  õ  s¢   
		

	 


					#)6	

r@  c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestPathUsagec              	   C   sX   t dd��D}t|ƒ}t ddgddgg¡}t ||¡ t |¡}t||ƒ W 5 Q R X d S )Nú.txtr©   gš™™™™™ñ?rX   r1   rY   )r   r   rD   r\   rÙ   rþ   r   )r#   rî   rV   rl   r%   r%   r&   Útest_loadtxtŒ	  s    
zTestPathUsage.test_loadtxtc              	   C   sZ   t dd��F}t|ƒ}t ddgddggt¡}t ||¡ t |¡}t||ƒ W 5 Q R X d S )Nrì   r©   rR   rX   r1   rY   )r   r   rD   r\   r^   r‡   rM   r   ©r#   rî   rV   r¿   r%   r%   r&   Útest_save_load”	  s    
zTestPathUsage.test_save_loadc              	   C   sp   t dd��\}t|ƒ}t ddgddggt¡}t ||¡ tj|dd�}t||ƒ ~trbt	ƒ  t	ƒ  W 5 Q R X d S )	Nrì   r©   rR   rX   r1   rY   rg   ©rf   )
r   r   rD   r\   r^   r‡   rM   r   r   r   rC  r%   r%   r&   Útest_save_load_memmap�	  s    
z#TestPathUsage.test_save_load_memmapc              	   C   s’   t dd��~}t|ƒ}t ddgddggt¡}t ||¡ tj|dd�}d	|d
 d
< d	|d
 d
< ~trptƒ  tƒ  t |¡}t	||ƒ W 5 Q R X d S )Nrì   r©   rR   rX   r1   rY   zr+rE  rä   r   )
r   r   rD   r\   r^   r‡   rM   r   r   r   )r#   rî   rV   rœ   r¿   r%   r%   r&   Útest_save_load_memmap_readwrite«	  s    
z-TestPathUsage.test_save_load_memmap_readwritec              
   C   sT   t dd��@}t|ƒ}tj|dd� t |¡�}t|d dƒ W 5 Q R X W 5 Q R X d S ©NrŽ   r©   rÍ   rÎ   rÏ   )r   r   rD   r‹   rM   r   ©r#   rî   r¿   r%   r%   r&   Útest_savez_load»	  s
    zTestPathUsage.test_savez_loadc              	   C   sP   t dd��<}t|ƒ}tj|dd� t |¡}t|d dƒ | ¡  W 5 Q R X d S rH  )r   r   rD   Zsavez_compressedrM   r   rB   rI  r%   r%   r&   Útest_savez_compressed_loadÃ	  s    
z(TestPathUsage.test_savez_compressed_loadc              	   C   sP   t dd��<}t|ƒ}t ddg¡}t ||¡ t |¡}t||ƒ W 5 Q R X d S )NrA  r©   ri   rj   )r   r   rD   r\   rÙ   rA  r   rC  r%   r%   r&   Útest_genfromtxtÌ	  s    
zTestPathUsage.test_genfromtxtc              
   C   s–   t dd��‚}t|ƒ}| d¡�}| d¡ W 5 Q R X tdddd�}tj|f|Ž}tjd	d
gdtfdtfgd�}t	t
|tjƒƒ t||ƒ W 5 Q R X d S )NrA  r©   r  r%  rô   r¾  Tr¿  r  r9  rm  rÅ  rZ   )r   r   rÁ   r'   rF  rD   r&  r\   r^   r   rA   r'  r   ©r#   rî   r§   rP   rà  rá  r%   r%   r&   r(  Ô	  s    
ÿzTestPathUsage.test_recfromtxtc              
   C   sž   t dd��Š}t|ƒ}| d¡�}| d¡ W 5 Q R X tdddd�}tj|fdd i|—Ž}tjd	d
gdtfdtfgd�}t	t
|tjƒƒ t||ƒ W 5 Q R X d S )NrA  r©   r  r%  r¾  Tr)  r[   r  r9  rm  rÅ  rZ   )r   r   rÁ   r'   rF  rD   r’  r\   r^   r   rA   r'  r   rM  r%   r%   r&   r/  á	  s    
ÿzTestPathUsage.test_recfromcsvN)r,   r-   r.   rB  rD  rF  rG  rJ  rK  rL  r(  r/  r%   r%   r%   r&   r@  Š	  s   		r@  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  r2  r   rg   )
rD   rª   r   rJ  r4  r‡   rB   rJ   r   rM   ©rV   r$   r§   r%   r%   r&   Útest_gzip_loadï	  s    
rP  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#   rS  r%   r%   r&   r!    
  s    zJustWriter.__init__c                 C   s   | j  |¡S r    )rS  r'   r"   r%   r%   r&   r'   
  s    zJustWriter.writec                 C   s
   | j  ¡ S r    )rS  rI   rK  r%   r%   r&   rI   
  s    zJustWriter.flushN)r,   r-   r.   r!   r'   rI   r%   r%   r%   r&   rQ  ÿ	  s   rQ  c                   @   s&   e Zd Zdd„ Zdd„ Zd	dd„ZdS )
Ú
JustReaderc                 C   s
   || _ d S r    rR  rT  r%   r%   r&   r!   

  s    zJustReader.__init__c                 C   s   | j  |¡S r    )rS  rü   )r#   r�   r%   r%   r&   rü   
  s    zJustReader.readr   c                 C   s   | j  ||¡S r    )rS  rJ   )r#   ÚoffÚwhencer%   r%   r&   rJ   
  s    zJustReader.seekN)r   )r,   r-   r.   r!   rü   rJ   r%   r%   r%   r&   rU  	
  s   rU  c                  C   sT   t j d¡} tƒ }t|ƒ}t  || ¡ | ¡  | d¡ t|ƒ}tt  	|¡| ƒ d S )NrN  r   )
rD   rª   r   rQ  r‡   rI   rJ   rU  r   rM   rO  r%   r%   r&   Útest_ducktyping
  s    
rX  c               
   C   s�   t ƒ } tj| dd�}| d¡ | ¡  |  d¡ tdd��4}t|dƒ�}| |  ¡ ¡ W 5 Q R X t	 
|¡}W 5 Q R X |  ¡  t|dd	d
gƒ d S )Nr  r2  ó   1 2 3
r   r  r©   r¼   rR   rX   r1   )r   rJ  r4  r'   rB   rJ   r   rÁ   rü   rD   rþ   r   )r$   ra  r@   r§   rH  r%   r%   r&   Útest_gzip_loadtxt#
  s    

rZ  c                  C   sX   t ƒ } tj| dd�}| d¡ | ¡  |  d¡ tj| dd�}tt |¡dddgƒ d S )	Nr  r2  rY  r   rg   rR   rX   r1   )	r   rJ  r4  r'   rB   rJ   r   rD   rþ   )r$   r§   r%   r%   r&   Útest_gzip_loadtxt_from_string8
  s    

r[  c                  C   sÞ   t ƒ } t d¡}t d¡}tj| ||d� |  d¡ t | ¡}td|kƒ td|kƒ td| ¡ kƒ td| ¡ kƒ | ¡ D ] \}}t|dkƒ t	|j
dƒ q~tt| ¡ ƒdkƒ |D ]}t|dkƒ q¸td| ¡ kƒ d S )N)r1   r1   )rl   ro   r   rl   ro   rX   )r   rD   r  r‹   rJ   rM   r   ÚkeysÚitemsr   rT   rà  )r$   rl   ro   rê   r§   rV   r%   r%   r&   Útest_npzfile_dictC
  s"    



r^  zPython lacks refcountsrd   c               	   C   sŽ   t ƒ } t | dddg¡ |  d¡ tƒ � t | ¡ W 5 Q R X |  d¡ ddg}tƒ �. tjtdƒ|d�}t|tj	d	g|d�ƒ W 5 Q R X d S )
NrR   rX   r1   r   )rV   Úu1rX   )rœ   r_  rX   z0 1 2 3rZ   )r  r9  )
r   rD   r‹   rJ   r   rM   rþ   r   r   r\   )r§   r€   rl   r%   r%   r&   Útest_load_refcount^
  s    

r`  )N)OrK   rÇ   rJ  rG   r±   r5   r|   ra  r  r‚   Úpathlibr   Útempfiler   r   r   r   r$  Úmultiprocessingr   r   Úctypesr	   ÚnumpyrD   Znumpy.mar»  Znumpy.lib._iotoolsr
   r   Znumpy.compatr   Znumpy.ma.testutilsr   Znumpy.testingr   r   r   r   r   r   r   r   r   r   r   r   r   r   Znumpy.testing._private.utilsr   r   ÚmaxsizerÒ   rM  r!  r"  rO  r"  r6   r8   r†   rŠ   rÓ   r8  rc  r&  r@  r@  rP  rQ  rU  rX  rZ  r[  r^  rƒ   r„   r`  r%   r%   r%   r&   Ú<module>   sŒ   @



k   H    E         e
