a
    ³ÐOc–  ã                   @   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 e8�yr   dZ7Y n0 zd dl9Z9dZ:W n e8�yœ   dZ:Y n0 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)ÚValueÚget_context)Ú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%   úN/var/www/html/gsl.tools/lib/python3.9/site-packages/numpy/lib/tests/test_io.pyr!   *   s    zTextIO.__init__c                 C   s   t  | t|ƒ¡ d S r    )r   Úwriter   r"   r%   r%   r&   r'   -   s    zTextIO.writec                 C   s   t  | dd„ |D ƒ¡ d S )Nc                 S   s   g | ]}t |ƒ‘qS r%   r   )Ú.0r$   r%   r%   r&   Ú
<listcomp>1   ó    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&   r7   A   s    
r7   c                   @   sj   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	j
ejdkdd�dd„ ƒZdd„ Zej	jdd„ ƒZdS )ÚRoundtripTestc              	   O   s0  |  di ¡}|  dddi¡}|  dd¡}|r>tdd�}|j}n
tƒ }|}z¢|}	||g|	¢R i |¤Ž | ¡  | d¡ tjd	kr’t|tƒs’| 	¡  t
j|fi |¤Ž}
|	| _|
| _W t|tƒsê| 	¡  d
tƒ v rêt|
t
jjjƒsêt |j¡ n@t|tƒ�s*| 	¡  d
tƒ v �r*t|
t
jjjƒ�s*t |j¡ 0 dS )až  
        save_func : callable
            Function used to save arrays to file.
        file_on_disk : bool
            If true, store the file on disk, instead of in a
            string buffer.
        save_kwds : dict
            Parameters passed to `save_func`.
        load_kwds : dict
            Parameters passed to `numpy.load`.
        args : tuple of arrays
            Arrays stored to file.

        Ú	save_kwdsÚ	load_kwdsZallow_pickleTÚfile_on_diskF)Údeleter   Úwin32Úarr_reloadedN)Úgetr   Únamer   ÚflushÚseekÚsysÚplatformÚ
isinstanceÚcloseÚnpÚloadÚarrr?   ÚlocalsÚlibÚnpyioZNpzFileÚosÚremove)r#   Z	save_funcÚargsÚkwargsr:   r;   r<   Ztarget_fileZ	load_filerJ   r?   r%   r%   r&   Ú	roundtripM   s8    



ûzRoundtripTest.roundtripc                 C   s‚   |   |¡ | j |dd� |   t |¡¡ | j t |¡dd� |jd dkr~|   t |¡dd … ¡ | j t |¡dd … dd� d S )NT)r<   r   é   )rR   rH   Ú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 )
NrS   é   r2   é   y      ð?      @y       @      @y      @      @y      @       @©Údtype)rH   ÚarrayÚfloatrX   ÚintZcsingleZcdoublerV   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 )NrS   rY   r2   rZ   )rH   r]   ÚobjectrX   rV   r%   r%   r&   Útest_array_object—   s    
zRoundtripTest.test_array_objectc                 C   s   t  g d¢t¡}|  |¡ d S )N©rS   rY   r2   rZ   )rH   r]   r_   rR   rV   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 )	NrS   g      @rZ   g333333@TÚ	mmap_modeÚr)r<   r;   )rH   r]   rR   rT   rV   r%   r%   r&   Ú	test_mmap¢   s    zRoundtripTest.test_mmapc                 C   s$   t jddgddgd�}|  |¡ d S )N©rS   rY   ©r2   rZ   ©ÚxÚi4©Úyrn   r[   )rH   r]   rX   rV   r%   r%   r&   Útest_recordª   s    zRoundtripTest.test_recordc                 C   sh   dd„ t dƒD ƒ}tjd|d�}tjdd��( t dd	t¡ |  |¡ W d   ƒ n1 sZ0    Y  d S )
Nc                 S   s   g | ]}d | d t f‘qS )ú%déd   ©r^   ©r(   Úir%   r%   r&   r)   °   r*   z1RoundtripTest.test_format_2_0.<locals>.<listcomp>éô  iè  r[   T©ÚrecordÚalwaysr   )ÚrangerH   ÚonesÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningrX   )r#   ÚdtrW   r%   r%   r&   Útest_format_2_0®   s
    zRoundtripTest.test_format_2_0N)r-   r.   r/   rR   rX   r`   rb   rd   ÚpytestÚmarkÚskipifrD   rE   ri   rq   Úslowr‚   r%   r%   r%   r&   r9   L   s   0

r9   c                   @   s   e Zd Zdd„ ZdS )ÚTestSaveLoadc                 O   sb   t j| tjg|¢R i |¤Ž t| jd | jƒ t| jd j| jjƒ t| jd jj	| jjj	ƒ d S )Nr   )
r9   rR   rH   Úsaver   rJ   r?   r\   ÚflagsÚfnc)r#   rP   rQ   r%   r%   r&   rR   ¸   s    zTestSaveLoad.roundtripN)r-   r.   r/   rR   r%   r%   r%   r&   r‡   ·   s   r‡   c                   @   s†   e Zd Zdd„ Zejjedd�ejje dd�ejj	dd„ ƒƒƒZ
dd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zejjdd„ ƒZdd„ ZdS )ÚTestSavezLoadc              	   O   s¼   t j| tjg|¢R i |¤Ž ztt| jƒD ]@\}}| jd|  }t||ƒ t|j|jƒ t|j	j
|j	j
ƒ q(W | jjr¸| jj ¡  t | jjj¡ n&| jjr¶| jj ¡  t | jjj¡ 0 d S )Nzarr_%d)r9   rR   rH   ÚsavezÚ	enumeraterJ   r?   r   r\   r‰   rŠ   ZfidrG   rN   rO   rA   )r#   rP   rQ   ÚnrJ   Zreloadedr%   r%   r&   rR   À   s    
þzTestSavezLoad.roundtripzHangs on PyPyre   zNeeds 64bit platformc                 C   sp   d}t j|t jd�}tddd��<}t j||d� ~t  |¡}|d }| ¡  ~W d   ƒ n1 sb0    Y  d S )Nl      r[   Znumpy_test_big_arrays_ú.npz)ÚprefixÚsuffix©rW   rW   )rH   ÚemptyÚuint8r   rŒ   rI   rG   )r#   ÚLrW   Ú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 )	NrS   rY   r2   rZ   ù      ð?       @ù       @      @ù      @      Àù      @      (@)rH   r]   r^   ÚcomplexrR   )r#   rW   Ú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 ©NrS   rY   r2   rZ   r˜   r™   rš   r›   )Úfile_aÚfile_br   r    r¡   )	rH   r]   r^   rœ   r   rŒ   rC   rI   r   ©r#   rW   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Ÿ   )rH   r]   r^   rœ   r   rŒ   rC   rI   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   s~   t dd��`}tj dd¡}ztj||d� W n. tyZ } z|  |¡ W Y d }~n
d }~0 0 W d   ƒ n1 sp0    Y  d S )Nr�   ©r‘   rw   )rJ   )r   rH   ÚrandomZrandnrŒ   ÚOSErrorÚappend)Z
error_listr–   rJ   Úerrr%   r%   r&   Úwriterú   s    z9TestSavezLoad.test_savez_filename_clashes.<locals>.writerc                    s   g | ]}t jˆˆ fd �‘qS )©ÚtargetrP   )Ú	threadingÚThread)r(   Új©Úerrorsr¯   r%   r&   r)     s   ÿz=TestSavezLoad.test_savez_filename_clashes.<locals>.<listcomp>r2   )r{   ÚstartÚjoinÚAssertionError)r#   ÚthreadsÚtr%   rµ   r&   Útest_savez_filename_clashesö   s    ÿ

z)TestSavezLoad.test_savez_filename_clashesc              	   C   sØ   t dd��º}t|dƒ�}tj|dd� W d   ƒ n1 s:0    Y  t|ddƒ�V}| d¡ t|j ƒ t |¡d	  t|j ƒ | d¡ t|j ƒ W d   ƒ n1 s¬0    Y  W d   ƒ n1 sÊ0    Y  d S )
Nr�   rª   ÚwbúLOVELY LOAD©ÚdataÚrbi'  r   rÀ   )r   ÚopenrH   rŒ   rC   r   ÚclosedrI   )r#   r–   Úfpr%   r%   r&   Útest_not_closing_opened_fid  s    ,

z)TestSavezLoad.test_not_closing_opened_fidc                 C   sä   t dd��Æ}tj|dd� tƒ �’}| t¡ tddƒD ]l}zXzt |¡d  W n4 ty‚ } zd| }t	|ƒ‚W Y d }~n
d }~0 0 W t
r¢t ¡  q6t
r t ¡  0 q6W d   ƒ n1 s¸0    Y  W d   ƒ n1 sÖ0    Y  d S )	Nr�   rª   r¾   r¿   rS   i  rÀ   z#Failed to load data from a file: %s)r   rH   rŒ   r   ÚfilterÚResourceWarningr{   rI   Ú	Exceptionr¹   r   ÚgcZcollect)r#   r–   Úsuprv   ÚeÚmsgr%   r%   r&   Útest_closing_fid  s    
 
ÿzTestSavezLoad.test_closing_fidc                 C   sf   d}t d|d��B}tj|dd� t |¡}|jj}| ¡  t|jƒ W d   ƒ n1 sX0    Y  d S )NZ&numpy_test_closing_zipfile_after_load_r�   )r‘   r�   úplace holder©Úlab)	r   rH   rŒ   rI   ÚziprÄ   rG   r   rÃ   )r#   r�   r–   rÀ   rÄ   r%   r%   r&   Útest_closing_zipfile_after_load6  s    
z-TestSavezLoad.test_closing_zipfile_after_loadN)r-   r.   r/   rR   rƒ   r„   r…   r   ÚIS_64BITr†   r—   rž   r¥   r©   r¼   rÅ   Z	slow_pypyrÍ   rÒ   r%   r%   r%   r&   r‹   ¿   s   

r‹   c                   @   sð   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zej d#d$d%g¡ej d&eeg¡d'd(„ ƒƒZejjejd)kd*d+�ejjed,d-�d.d/„ ƒƒƒZd0S )1ÚTestSaveTxtc                 C   sÄ   t  ddgddggt¡}d}tƒ }t j|||d� | d¡ t| ¡ t|d | d	 d
 ƒt|d | d	 d ƒgƒ t  ddgddggt	¡}tƒ }t j||dd� | d¡ t| ¡ ddgƒ d S )NrS   rY   r2   rZ   z%.18e©r8   r   ú Ú
rj   rk   rr   ó   1 2
ó   3 4
)
rH   r]   r^   r   ÚsavetxtrC   r   Ú	readlinesr   r_   )r#   rW   r8   r£   r%   r%   r&   r`   E  s    
ÿÿ
zTestSaveTxt.test_arrayc                 C   sJ   t  g d¢t¡}tƒ }t j||dd� | d¡ | ¡ }t|g d¢ƒ d S )Nrc   rr   rÕ   r   )s   1
s   2
s   3
s   4
)rH   r]   r_   r   rÚ   rC   rÛ   r   ©r#   rW   r£   r,   r%   r%   r&   rd   U  s    
zTestSaveTxt.test_1Dc                 C   s@   t ƒ }tttj|t d¡ƒ tttj|t dgdggg¡ƒ d S )NrS   rY   )r   r   Ú
ValueErrorrH   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 )Nrj   rk   rl   ro   r[   rr   rÕ   r   rØ   rÙ   ©rH   r]   r   rÚ   rC   r   rÛ   ©r#   rW   r£   r%   r%   r&   Útest_structuredb  s
    
zTestSaveTxt.test_structuredc                 C   sT   t jddgg d¢d�}tƒ }t j||ddg dd� | d	¡ t| ¡ d
dgƒ d S )N©rS   rY   r2   ©rZ   é   é   ))Úfoorn   )Úbarrn   )Úbazrn   r[   rç   ré   rr   rÕ   r   s   1 3
s   4 6
rà   rá   r%   r%   r&   Útest_structured_paddedi  s
    
z"TestSaveTxt.test_structured_paddedc                 C   st   t jdg d¢d�}|ddg }tdd��8}t|ƒ}t  ||¡ t  |¡}t||ƒ W d   ƒ n1 sf0    Y  d S )NrS   )rl   ro   )ÚzÚf4r[   rm   rë   ú.npyrª   )rH   r|   r   r   rˆ   rI   r   )r#   rW   ÚvÚpathrÀ   r%   r%   r&   Útest_multifield_views  s    
z TestSaveTxt.test_multifield_viewc                 C   sN   t  ddgddgg¡}tƒ }t j||ddd� | d¡ t| ¡ d	d
gƒ d S )Nç      ð?ç       @ç      @ç      @ú,rr   )Ú	delimiterr8   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 )Nrj   rk   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õ   )r8   rö   éc   )	rH   r]   r   rÚ   rC   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 )Nrj   rk   r[   zTest header / footerz%1d)r8   Úheaderr   z# z	
1 2
3 4
)r8   Úfooterz
1 2
3 4
# r×   z% )r8   rú   Úcommentsz1 2
3 4
)r8   rû   rü   )	r   rH   r]   r_   rÚ   rC   r   Úreadr   )r#   r£   rW   Útest_header_footerZ
commentstrr%   r%   r&   rþ   �  s@    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿzTestSaveTxt.test_header_footerc                 C   sX   t ƒ �>}t ddg¡}t ||¡ t |¡}t||ƒ W d   ƒ n1 sJ0    Y  d S )Nrj   rk   )r   rH   r]   rÚ   Úloadtxtr   )r#   rA   rW   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 )NrY   r[   ù              ð?z %+.3erÕ   r   s8    ( +3.142e+00+ +2.718e+00j)  ( +3.142e+00+ +2.718e+00j)
z  %+.3e  %+.3es1     +3.142e+00  +2.718e+00  +3.142e+00  +2.718e+00
z(%.3e%+.3ej)s.   (3.142e+00+2.718e+00j) (3.142e+00+2.718e+00j)
©
rH   ÚzerosÚ
complex128ÚpirË   r   rÚ   rC   rÛ   r   ©r#   ZncolsZnrowsrW   Ú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 )NrY   r[   r  z%.3erÕ   r   s0    (3.142e+00-2.718e+00j)  (3.142e+00-2.718e+00j)
r  r  r%   r%   r&   Útest_complex_negative_exponentì  s     
ÿþz*TestSaveTxt.test_complex_negative_exponentc                 C   sH   G dd„ dt ƒ}|ƒ }t ddg¡}t ||¡ t |¡}t||ƒ d S )Nc                   @   s   e Zd Zdd„ ZdS )z4TestSaveTxt.test_custom_writer.<locals>.CustomWriterc                 S   s   |   | d¡¡ d S )Nó   
)ÚextendÚsplit)r#   Útextr%   r%   r&   r'     s    z:TestSaveTxt.test_custom_writer.<locals>.CustomWriter.writeN)r-   r.   r/   r'   r%   r%   r%   r&   ÚCustomWriter   s   r  rj   rk   )ÚlistrH   r]   rÚ   rÿ   r   )r#   r  ÚwrW   r�   r%   r%   r&   Útest_custom_writerþ  s    
zTestSaveTxt.test_custom_writerc                 C   sd   d  d¡}tj|gtjd�}tƒ �.}tjtj |d¡|dgdd� W d   ƒ n1 sV0    Y  d S )Nó   Ï–úUTF-8r[   útest.csvú%s©r8   Úencoding)	r5   rH   r]   Úunicode_r   rÚ   rN   rï   r¸   )r#   Úutf8rW   Útmpdirr%   r%   r&   Útest_unicode
  s    
ÿzTestSaveTxt.test_unicodec                 C   sÄ   d  d¡}tj|gtjd�}ddg}tr2| d¡ trD| ddg¡ tƒ �f}|D ]P}tj	t
j |d	| ¡|d
gdd� tjt
j |d	| ¡dtjd�}t||ƒ qPW d   ƒ n1 s¶0    Y  d S )Nr  r  r[   r   ú.gzú.bz2ú.xzú.lzmar  r  z	UTF-16-LEr  ©r  r\   )r5   rH   r]   r  ÚHAS_BZ2r­   ÚHAS_LZMAr  r   rÚ   rN   rï   r¸   rÿ   r   )r#   r  rW   Ú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  r[   r  r  r   r×   )	r5   rH   r]   r  r   rÚ   rC   r   rý   ©r#   r  rW   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&  )	r5   rH   r]   r  r   rÚ   rC   r   rý   r'  r%   r%   r&   Útest_unicode_stringstream+  s    

z%TestSaveTxt.test_unicode_stringstreamr8   ú%fs   %fÚiotypec                 C   s^   t  dg¡}|ƒ }t j|||d� | d¡ |tu rHt| ¡ dd ƒ nt| ¡ dd ƒ d S )Nrñ   rÕ   r   z%f
s   %f
)rH   r]   rÚ   rC   r   r   rý   )r#   r8   r+  rW   r$   r%   r%   r&   Útest_unicode_and_bytes_fmt3  s    
z&TestSaveTxt.test_unicode_and_bytes_fmtr>   zfiles>4GB may not workre   g   `¸úA)Z
free_bytesc                 C   sl   dd„ }t tƒ}tdƒ}|j||fd�}| ¡  | ¡  |jrFtdƒ‚|jdkrZt	 
d¡ |jdkshJ ‚d S )	Nc                 S   s„   d| _ z^tjdd„ tdƒD ƒtd�}tƒ �(}tjtj 	|d¡|d� W d   ƒ n1 sX0    Y  W n t
y~   d| _ ‚ Y n0 d S )	NFc                 S   s$   g | ]}t j t j d d¡d¡‘qS )é2   rs   rZ   )rH   r«   ZrandÚrandintru   r%   r%   r&   r)   I  s   þÿzGTestSaveTxt.test_large_zip.<locals>.check_large_zip.<locals>.<listcomp>i 5 r[   ztest.npz)Ú	test_dataT)ÚvaluerH   Zasarrayr{   ra   r   rŒ   rN   rï   r¸   ÚMemoryError)Úmemoryerror_raisedr/  r  r%   r%   r&   Úcheck_large_zipD  s    
þþÿ(z3TestSaveTxt.test_large_zip.<locals>.check_large_zipÚforkr°   z,Child process raised a MemoryError exceptioné÷ÿÿÿzCsubprocess got a SIGKILL, apparently free memory was not sufficientr   )r   r	   r   ÚProcessr·   r¸   r0  r1  Úexitcoderƒ   Zxfail)r#   r3  r2  ÚctxÚpr%   r%   r&   Útest_large_zip@  s    

zTestSaveTxt.test_large_zipN) r-   r.   r/   r`   rd   rß   râ   rê   rð   r÷   rù   rþ   r   r	  r
  r  r  r%  r(  r)  rƒ   r„   Úparametrizer   r   r,  r…   rD   rE   r†   r   r:  r%   r%   r%   r&   rÔ   D  s0   
	"&rÔ   c                   @   sx   e Zd Zdd„ Zdd„ Zejje dd�dd„ ƒZ	ejje
 d	d�d
d„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚLoadTxtBasec                 C   sô   t  d¡ d¡}d}|D ]Ö}d| d }|D ]À}t|d��¢}||ddd	��}	|	 |¡ W d   ƒ n1 sj0    Y  | j|dd
�}
t|
|ƒ ||ddd
��}	|  |	¡}
W d   ƒ n1 sº0    Y  t|
|ƒ W d   ƒ q,1 sâ0    Y  q,qd S )Nræ   ©rY   r2   ©r×   z
úú0 1 2ú3 4 5rª   Úwtz	UTF-32-LE)Úmoder  ©r  Úrt)rH   ÚarangeÚreshaper   r'   Úloadfuncr   )r#   Zfopenr$  ÚwantedÚlinesepÚseprÀ   r‘   rA   r¨   Úresr%   r%   r&   Úcheck_compressedf  s    (
(zLoadTxtBase.check_compressedc                 C   s   |   tjd¡ d S )N)r  )rM  ÚgziprÂ   ©r#   r%   r%   r&   Útest_compressed_gzipv  s    z LoadTxtBase.test_compressed_gzipz	Needs bz2re   c                 C   s   |   tjd¡ d S )N)r  )rM  Úbz2rÂ   rO  r%   r%   r&   Útest_compressed_bz2y  s    zLoadTxtBase.test_compressed_bz2z
Needs lzmac                 C   s   |   tjd¡ d S )N)r  r   )rM  ÚlzmarÂ   rO  r%   r%   r&   Útest_compressed_lzma}  s    z LoadTxtBase.test_compressed_lzmac              	   C   s€   t ƒ �f}t|dƒ� }| d d¡¡ W d   ƒ n1 s80    Y  | j|dd�}t|g d¢ƒ W d   ƒ n1 sr0    Y  d S )Nr½   z0.
1.
2.úUTF-16rD  )ç        rñ   rò   )r   rÂ   r'   ÚencoderH  r   )r#   rï   r¨   rm   r%   r%   r&   Útest_encoding�  s
    .zLoadTxtBase.test_encodingc              	   C   sŠ   d  d¡}tƒ �f}t|dƒ� }| | d¡¡ W d   ƒ n1 sB0    Y  | j|dtjd�}t||ƒ W d   ƒ n1 s|0    Y  d S )Ns   Ã¶Ã¼Ã¶r  r½   rU  r!  )	r5   r   rÂ   r'   rW  rH  rH   r  r   )r#   Znonasciirï   r¨   rm   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rU  )r\   r  )rH  r   rH   r  r   r]   r5   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  ©r5   ©rm   r%   r%   r&   Ú<lambda>œ  r*   z4LoadTxtBase.test_converters_decode.<locals>.<lambda>)r\   Ú
convertersr  )	r   r'   rC   rH  rH   r  r]   r5   r   ©r#   r£   rm   rW   r%   r%   r&   Útest_converters_decode–  s    



ÿz"LoadTxtBase.test_converters_decodec              	   C   s¤   d  d¡}tƒ �€}tj|ddd��}| |¡ W d   ƒ n1 sB0    Y  | j|tjddd„ idd�}t |d	 g¡}t	||ƒ W d   ƒ n1 s–0    Y  d S )
Nr  r  rB  rD  r   c                 S   s   | d S )Nr»   r%   r_  r%   r%   r&   r`  §  r*   z6LoadTxtBase.test_converters_nodecode.<locals>.<lambda>©r\   ra  r  r»   )
r5   r   ÚiorÂ   r'   rH  rH   r  r]   r   )r#   r  rï   r¨   rm   rW   r%   r%   r&   Útest_converters_nodecode   s    
(

þz$LoadTxtBase.test_converters_nodecodeN)r-   r.   r/   rM  rP  rƒ   r„   r…   r"  rR  r#  rT  rX  rY  r]  rc  rf  r%   r%   r%   r&   r<  e  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ejjeovejjdkdd�dd„ ƒZdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Z d*d+„ Z!d,d-„ Z"d.d/„ Z#d0d1„ Z$d2d3„ Z%ejje�oejjdkdd�d4d5„ ƒZ&ejje�o*ejjdkdd�d6d7„ ƒZ'd8d9„ Z(d:d;„ Z)d<d=„ Z*d>d?„ Z+d@dA„ Z,dBdC„ Z-dDdE„ Z.dFdG„ Z/dHdI„ Z0ejje1 2¡ dJkdKd�dLdM„ ƒZ3dNdO„ Z4dPdQ„ Z5dRdS„ Z6dTdU„ Z7ej 8dVdWgdXg dY¢fdXg dZ¢fdXe9d[ƒfd\g d]¢fd\g d^¢fd\e9d_ƒfg¡d`da„ ƒZ:dbS )cÚTestLoadTxtc                 C   s   t jjj| _dt jj_d S ©NrS   )rH   rL   rM   Ú_loadtxt_chunksizeÚ
orig_chunkrO  r%   r%   r&   Úsetup°  s    zTestLoadTxt.setupc                 C   s   | j tjj_d S r    )rj  rH   rL   rM   ri  rO  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   rm   rp   r[   rj   rk   rl   ro   zM 64 75.0
F 25 60.0©ÚgenderÚageÚweight©ÚS1rn   rì   ©ÚnamesÚformats©ÚMç      P@ç     ÀR@©ÚFç      9@ç      N@)r   r'   rC   rH   rÿ   Úint32r]   r   )r#   r£   rm   rW   ÚdZmydescriptorr�   rp   r%   r%   r&   rq   ·  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 )Nrm  r   r[   rS   rY   r2   rZ   )	r   r'   rC   rH   rÿ   r_   r]   r   r^   rb  r%   r%   r&   r`   É  s    



zTestLoadTxt.test_arrayc                 C   sŠ   t ƒ }| d¡ | d¡ tj|td�}t g d¢t¡}t||ƒ t ƒ }| d¡ | d¡ tj|tdd�}t g d¢t¡}t||ƒ d S )Nú1
2
3
4
r   r[   rc   ú1,2,3,4
rõ   ©r\   rö   ©r   r'   rC   rH   rÿ   r_   r]   r   rb  r%   r%   r&   rd   ×  s    




zTestLoadTxt.test_1Dc                 C   sR   t ƒ }| d¡ | d¡ tj|tdddd„ id�}t g d¢t¡}t||ƒ d S )	Nú	1,2,3,,5
r   rõ   r2   c                 S   s   t | pdƒS ©Néüÿÿ©r_   ©r$   r%   r%   r&   r`  ë  r*   z*TestLoadTxt.test_missing.<locals>.<lambda>©r\   rö   ra  ©rS   rY   r2   r‡  rå   r„  rb  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õ   r2   c                 S   s   t | pdƒS r†  rˆ  r‰  r%   r%   r&   r`  ô  r*   z:TestLoadTxt.test_converters_with_usecols.<locals>.<lambda>©rS   r2   ©r\   rö   ra  ÚusecolsrY   r‡  é   é	   r„  rb  r%   r%   r&   Útest_converters_with_usecolsï  s    



þz(TestLoadTxt.test_converters_with_usecolsc                 C   sJ   t ƒ }| d¡ | d¡ tj|tddd�}t g d¢t¡}t||ƒ d S )Nú# comment
1,2,3,5
r   rõ   ú#©r\   rö   rü   ©rS   rY   r2   rå   r„  rb  r%   r%   r&   Útest_comments_unicodeù  s    


ÿz!TestLoadTxt.test_comments_unicodec                 C   sJ   t ƒ }| d¡ | d¡ tj|tddd�}t g d¢t¡}t||ƒ d S )Nr”  r   rõ   ó   #r–  r—  r„  rb  r%   r%   r&   Útest_comments_byte  s    


ÿzTestLoadTxt.test_comments_bytec                 C   sV   t ƒ }| d¡ | d¡ tj|tdg d¢d�}t g d¢g d¢gt¡}t||ƒ d S )Nz,# comment
1,2,3
@ comment2
4,5,6 // comment3r   rõ   )r•  ú@z//r–  rã   rä   r„  rb  r%   r%   r&   Útest_comments_multiple  s    


ÿz"TestLoadTxt.test_comments_multiple)r‘  r2   é   zPyPy bug in error formattingre   c                 C   sz   t ƒ }| d¡ | d¡ tj|tddd�}t g d¢t¡}t||ƒ t ƒ }| d¡ | d¡ tt	tj|tddd� d S )Nz/* comment
1,2,3,5
r   rõ   z/*r–  r—  z*/ comment
1,2,3,5
)
r   r'   rC   rH   rÿ   r_   r]   r   r   rÝ   rb  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 g d¢t¡}t||ƒ t ƒ }| d¡ | d¡ tj|tddd�}t g d¢t¡}t||ƒ d S )Núcomment
1,2,3,5
r   rõ   rS   )r\   rö   Úskiprowsr—  r”  r„  rb  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  g d¢g d	¢gt¡}tƒ }t  ||¡ | d¡ t j|td
d�}t||d d …dd …f ƒ | d¡ t j|tt  ddg¡d�}t||d d …dd …f ƒ tt j	t j
t jt jt jt jt jt jf	D ]>}|dƒ}| d¡ t j|t|d�}t||d d …df ƒ �qG dd„ dƒ}|ƒ }| d¡ t j|t|d�}t||d d …df ƒ | d¡ t j|t|fd�}t||d d …df ƒ d}t|ƒ}ddg}	ddg}
t j|dtt|	|
ƒƒd�}t|d ddgƒ t|d ddgƒ | d¡ d}ttdt|ƒj t j||d� ttdt|ƒj t j|d|dgd� d S )NrS   rY   r2   rZ   r   ©rS   ©r\   r�  rã   ©r2   rZ   rå   rj   c                   @   s   e Zd Zdd„ ZdS )z*TestLoadTxt.test_usecols.<locals>.CrazyIntc                 S   s   dS rh  r%   rO  r%   r%   r&   Ú	__index__V  s    z4TestLoadTxt.test_usecols.<locals>.CrazyInt.__index__N)r-   r.   r/   r¥  r%   r%   r%   r&   ÚCrazyIntU  s   r¦  z<JOE 70.1 25.3
                BOB 60.5 27.9
                ÚstidÚtempÚS4Úf8©r   rY   ©r�  r\   ó   JOEó   BOBçÍÌÌÌÌL9@çfffffæ;@ç      ø?z^usecols must be.*%s©r�  )rH   r]   r^   r   rÚ   rC   rÿ   r   r_   Zint8Úint16r  Úint64r”   Zuint16Zuint32Úuint64r   r  rÑ   r   r   Ú	TypeErrorr3   r-   )r#   rW   r£   rm   Zint_typeZto_readr¦  Z	crazy_intrÀ   ru  ÚdtypesrJ   Z	bogus_idxr%   r%   r&   Útest_usecols7  sd    



þ



ýýzTestLoadTxt.test_usecolsc                 C   sÈ   t  t¡�$ tjdgdgdd� W d   ƒ n1 s40    Y  t  ttf¡�$ tjdgdgdd� W d   ƒ n1 sv0    Y  t jtdd��& tjdgd	d
gdd� W d   ƒ n1 sº0    Y  d S )Nz1
l            rõ   )r�  rö   l            zQIf a structured dtype .*. But 1 usecols were given and the number of fields is 3.©Úmatchz1,1
zi,(2)ir   )r\   r�  rö   )rƒ   ÚraisesÚOverflowErrorrH   rÿ   rÝ   r¶  rO  r%   r%   r&   Útest_bad_usecols|  s    22ÿzTestLoadTxt.test_bad_usecolsc                 C   sj   t ƒ }| d¡ | d¡ t dtfddtfdtfgfg¡}tj||dd�}t d	d
g|¡}t	||ƒ d S )Nú1,2,3.0
4,5,6.0
r   rm   rp   r»   r$   rõ   rƒ  ©rS   )rY   ró   ©rZ   )rå   ç      @)
r   r'   rC   rH   r\   r_   r^   rÿ   r]   r   ©r#   r£   r�   rm   rW   r%   r%   r&   Útest_fancy_dtype‡  s    

"zTestLoadTxt.test_fancy_dtypec                 C   sh   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
g d¢g d¢gfg|d�}t||ƒ d S ©Nzaaaa  1.0  8.0  1 2 3 4 5 6©rA   r©  rm   rp   Úblockr=  r[   Úaaaarñ   ç       @rã   rä   ©r   rH   r\   r^   r_   rÿ   r]   r   rÂ  r%   r%   r&   Útest_shaped_dtype�  s    ÿÿzTestLoadTxt.test_shaped_dtypec                 C   sx   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
g d¢g d¢gg d¢g d¢ggfg|d�}t||ƒ d S )Nz*aaaa  1.0  8.0  1 2 3 4 5 6 7 8 9 10 11 12rÅ  rm   rp   rÆ  )rY   rY   r2   r[   rÇ  rñ   rÈ  rã   rä   )r‘  r�  r’  )é
   é   é   rÉ  rÂ  r%   r%   r&   Útest_3d_shaped_dtype™  s    ÿ
ÿþz TestLoadTxt.test_3d_shaped_dtypec                 C   sF   ddg}t tjfD ].}tjddg|d�}tj||d�}t||ƒ qd S )NZstr1Zstr2r[   )ÚstrrH   Úbytes_r]   rÿ   r   )r#   r£   r�   rW   rm   r%   r%   r&   Útest_str_dtype£  s
    zTestLoadTxt.test_str_dtypec                 C   sz   t jtdd��X tƒ }t |¡}t|jdƒ tj|tjd�}t|jdƒ t	|j
tjkƒ W d   ƒ n1 sl0    Y  d S )Núinput contained no datar¹  ©r   r[   )rƒ   Úwarnsr€   r   rH   rÿ   r   rU   r´  r   r\   )r#   r£   rm   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�  ra  é   é*   rS   c                 S   s
   t | dƒS rÖ  rˆ  r‰  r%   r%   r&   r`  ¿  r*   é!   éB   )r   r+   rC   rH   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©r7   Ústripr‰  r%   r%   r&   r`  Ç  r*   z4TestLoadTxt.test_dtype_with_object.<locals>.<lambda>rS   ú;©rö   r\   ra  éÑ  rY   éÒ  é   r[   )r_   ra   rH   rÿ   r   r]   r   r   ©r#   rÀ   ZndtypeÚfuncra  ÚtestÚcontrolr%   r%   r&   Útest_dtype_with_objectÂ  s    ÿþz"TestLoadTxt.test_dtype_with_objectc                 C   s@   d}t ƒ }| d| ¡ | d¡ tj|tjd�}t||ƒ d S )N)l   +&ì|    l   -(ì|    ú%s %sr   r[   )r   r'   rC   rH   rÿ   rµ  r   ©r#   Útgtr£   rL  r%   r%   r&   Útest_uint64_typeÐ  s    
zTestLoadTxt.test_uint64_typec                 C   s@   d}t ƒ }| d| ¡ | d¡ tj|tjd�}t||ƒ d S )N)lûÿÿÿÿÿÿÿ l   ÿÿÿÿ rî  r   r[   )r   r'   rC   rH   rÿ   r´  r   rï  r%   r%   r&   Útest_int64_typeØ  s    
zTestLoadTxt.test_int64_typec                 C   s’   t  ddd¡ t j¡}t  || f¡ t¡}d ttj|ƒ¡}t	ƒ }| 
|¡ tt jfD ]4}| d¡ t j||tjdd�}t||d| d	� qXd S )
NiöÿÿÿrË  rå   r×   r   r1   rd  r  )Úerr_msg)rH   ZlogspaceZastypeÚfloat32Zhstackr^   r¸   ÚmapÚhexr   r'   rC   rÿ   Úfromhexr   )r#   rð  Úinpr£   r�   rL  r%   r%   r&   Útest_from_float_hexà  s    


ÿzTestLoadTxt.test_from_float_hexc                 C   sD   t dƒ}tjtdd�� t |¡ W d  ƒ n1 s60    Y  dS )z 
        Ensure that fromhex is only used for values with the correct prefix and
        is not called by default. Regression test related to gh-19598.
        za b cz2.*convert string 'a' to float64 at row 0, column 1r¹  N©r   rƒ   r»  rÝ   rH   rÿ   rÞ   r%   r%   r&   Ú6test_default_float_converter_no_default_hex_conversionî  s
    ÿzBTestLoadTxt.test_default_float_converter_no_default_hex_conversionc                 C   sD   t dƒ}tjtdd�� t |¡ W d  ƒ n1 s60    Y  dS )z›
        Ensure that the exception message raised during failed floating point
        conversion is correct. Regression test related to gh-19598.
        zqrs tuvz)could not convert string 'qrs' to float64r¹  Nrú  rÞ   r%   r%   r&   Ú&test_default_float_converter_exceptionú  s
    ÿz2TestLoadTxt.test_default_float_converter_exceptionc                 C   sN   t ddƒt ddƒf}tƒ }| d| ¡ | d¡ tj|t d�}t||ƒ d S )NrS   éÿÿÿÿrî  r   r[   )rœ   r   r'   rC   rH   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©rY   rY   r[   r  z%.16erÕ   r   s   e+00-s   e00+-)rH   r  r  r  rË   r   rÚ   rC   rý   Úreplacer   r'   rÿ   rœ   r   )r#   rW   r  r  r£   ÚtxtZtxt_badrL  r%   r%   r&   Útest_complex_misformatted  s    



z%TestLoadTxt.test_complex_misformattedc              	   C   s~   t ƒ �N}t|dƒ�}| d¡ W d   ƒ n1 s20    Y  t |¡}W d   ƒ n1 sZ0    Y  t|ddgddggƒ d S )Nr  z
1 213 42rS   rÙ  r2   rÚ  )r   rÂ   r'   rH   rÿ   r   )r#   rA   r¨   rÀ   r%   r%   r&   Útest_universal_newline"  s
    ((z"TestLoadTxt.test_universal_newlinec                 C   sT   t ƒ }| d¡ | d¡ dddœ}tj||dd�}t g d¢¡}t|d	 |ƒ d S )
Nz 1 	2 	3	start 
4	5	6	  
7	8	9.5	r   )rm   rp   rë   Úcomment)ú<i4r  ú<f4ú|S8rt  ú	rƒ  )s   start s     r*   r  )r   r'   rC   rH   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©rW   r�   r£   )ú|S1r  r  rt  T©r\   Úunpackr  r  r  ó   Mó   FrÙ  é#   ç      R@ç      M@)r   rH   rÿ   r   r\   rÏ  r   r]   ©r#   r  r�   rW   r�   r£   r%   r%   r&   Útest_unpack_structured3  s    
z"TestLoadTxt.test_unpack_structuredc                 C   s
  t ƒ }| d¡ | d¡ tttj|dd� | d¡ tttj|dd� | d¡ tj|tddd�}t g d	¢g d
¢g¡}t	||ƒ t ƒ }| d¡ | d¡ tj|tddd�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ t ƒ }| d¡ | d¡ tj|tddd�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ | d¡ tj|tddd�}t
|jdkƒ tjtdd��F t ƒ }t
tj|dd�jdkƒ t
tj|dd�jdkƒ W d   ƒ n1 �sü0    Y  d S )Nz1,2,3
4,5,6r   r2   ©Úndminr±  rõ   rS   )r\   rö   r  rã   rä   z0,1,2rY   rŽ  )r2   z0
1
2)r2   rS   rÒ  r¹  ©r   rS   rÓ  )r   r'   rC   r   rÝ   rH   rÿ   r_   r]   r   r   rU   rƒ   rÔ  r€   )r#   r£   rm   rW   r€  rË   r¨   r%   r%   r&   Útest_ndmin_keyword>  sH    












zTestLoadTxt.test_ndmin_keywordc                 C   s(   dd„ }t  |ƒ ¡}t|t  d¡ƒ d S )Nc                  s   s   t dƒD ]} d|  V  qd S ©NrË  rr   )r{   ©rv   r%   r%   r&   Úcounti  s    z0TestLoadTxt.test_generator_source.<locals>.countrË  )rH   rÿ   r   rF  ©r#   r  rL  r%   r%   r&   Útest_generator_sourceh  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'   rC   r   rÝ   rH   rÿ   rÞ   r%   r%   r&   Útest_bad_linep  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   rm   )rW   ZS10rp   rõ   )rö   r\   rü   )r   r'   rC   rH   r\   r_   rÿ   )r#   r£   r�   r%   r%   r&   Útest_none_as_stringx  s
    

zTestLoadTxt.test_none_as_stringzANSI_X3.4-1968zWrong preferred encodingc              	   C   s  d}|  d¡ dd¡ ¡ }tƒ �à}t|dƒ�}| |¡ W d   ƒ n1 sL0    Y  t|dƒ�"}tj|dtjd�}W d   ƒ n1 sˆ0    Y  t	||ƒ t|dƒ� }tj|ddd�}W d   ƒ n1 sÌ0    Y  g d	¢}t	|tj
|dd
�ƒ W d   ƒ n1 �s0    Y  d S )Ns/   5,6,7,Ã•scarscar
15,2,3,hello
20,2,3,Ã•scar
r  r?  r   r½   rÁ   r!  ÚS)s   5,6,7,Ã•scarscars   15,2,3,hellos   20,2,3,Ã•scarr[   )r5   r   Ú
splitlinesr   rÂ   r'   rH   rÿ   r  r   r]   )r#   Zbutf8Zsutf8rï   r¨   rm   r%   r%   r&   Útest_binary_load€  s    (0
.zTestLoadTxt.test_binary_loadc                 C   sJ   t ƒ }| d¡ | d¡ tj|tddd�}t g d¢t¡}t||ƒ d S )Nú1,2,3,5
4,5,7,8
2,1,4,5r   rõ   rS   ©r\   rö   Úmax_rowsr—  r„  rb  r%   r%   r&   Útest_max_rows’  s    


ÿzTestLoadTxt.test_max_rowsc                 C   sœ   t ƒ }| d¡ | d¡ tj|tdddd�}t g d¢t¡}t||ƒ t ƒ }| d¡ | d¡ tj|tdddd�}t g d¢g d	¢gt¡}t||ƒ d S )
Nz comments
1,2,3,5
4,5,7,8
2,1,4,5r   rõ   rS   ©r\   rö   r   r'  r—  úcomment
1,2,3,5
4,5,7,8
2,1,4,5rY   ©rZ   rå   r‘  r�  r„  rb  r%   r%   r&   Útest_max_rows_with_skiprows›  s     


ÿ



ÿz'TestLoadTxt.test_max_rows_with_skiprowsc                 C   s|   t ƒ }| d¡ | d¡ tj|tddd�}t g d¢g d¢gt¡}t||ƒ tj|tdd�}t g d	¢t¡}t||ƒ d S )
Nr%  r   rõ   rY   r&  r—  r+  rƒ  ©rY   rS   rZ   rå   r„  rb  r%   r%   r&   Ú$test_max_rows_with_read_continuation¬  s    


ÿ
z0TestLoadTxt.test_max_rows_with_read_continuationc                 C   sZ   t ƒ }| d¡ | d¡ tj|tdddd�}t g d¢g d¢g d	¢gt¡}t||ƒ d S )
Nr*  r   rõ   rS   ræ   r)  r—  r+  r-  r„  rb  r%   r%   r&   Útest_max_rows_larger¹  s    


ÿz TestLoadTxt.test_max_rows_largerÚskiprÀ   rS   )zignored
ú1,2
r×   ú3,4
)Zignoredú1,2r   ú3,4zignored
1,2

3,4r   )z-1,0
r1  r×   r2  )z-1,0r3  r   r4  z-1,0
1,2

3,4c              	   C   s  t jtdd| › �d��L tj|t|dd| d�}t|ddgdd	gdd
gg|d … ƒ W d   ƒ n1 sj0    Y  t|tƒrˆ| 	d¡ t
 ¡ �^ t
 dt¡ t  t¡�( tj|t|dd| d� W d   ƒ n1 sÖ0    Y  W d   ƒ n1 sô0    Y  d S )NzInput line 3.*max_rows=r2   r¹  rõ   )r\   r   rö   r'  rý  r   rS   rY   rZ   Úerror)rƒ   rÔ  r€   rH   rÿ   r_   r   rF   r   rC   r}   r~   Úsimplefilterr»  )r#   r0  rÀ   rL  r%   r%   r&   Útest_max_rows_empty_linesÃ  s    
ÿÿB


ÿz%TestLoadTxt.test_max_rows_empty_linesN);r-   r.   r/   ÚstaticmethodrH   rÿ   rH  rk  rl  rq   r`   rd   rŒ  r“  r˜  rš  rœ  rƒ   r„   r…   r   rD   ÚimplementationÚversionrž  r¡  r¸  r½  rÃ  rÊ  rÎ  rÑ  rÕ  rÝ  rí  rñ  rò  rù  rû  rü  rþ  r  r  r	  r  r  r  r   r!  ÚlocaleÚgetpreferredencodingr$  r(  r,  r.  r/  r;  r   r7  r%   r%   r%   r&   rg  ­  s|   
	
			ÿ
E		
		ÿ

ÿ


*ÿ
	






ø	rg  c                   @   sN   e Zd Zdd„ Zdd„ Zdd„ Zej de	e
g¡dd	„ ƒZd
d„ Zdd„ ZdS )ÚTestfromregexc                 C   sV   t ƒ }| d¡ | d¡ dtjfdg}t |d|¡}tjg d¢|d�}t||ƒ d S )Nz1.312 foo
1.534 bar
4.444 quxr   Únum©ÚvalZS3z([0-9.]+)\s+(...)))çË¡E¶óýô?rç   ©g%�•C‹ø?rè   ©g-²�ï§Æ@Úquxr[   ©r   r'   rC   rH   Úfloat64Ú	fromregexr]   r   rÂ  r%   r%   r&   rq   Ý  s    


ÿzTestfromregex.test_recordc                 C   sV   t ƒ }| d¡ | d¡ dtjfdg}t |d|¡}tjg d¢|d�}t||ƒ d S )Nú1312 foo
1534 bar
4444 quxr   r>  r?  z(\d+)\s+(...)))é   rç   )éþ  rè   )é\  rD  r[   )r   r'   rC   rH   r  rG  r]   r   rÂ  r%   r%   r&   Útest_record_2è  s    


ÿzTestfromregex.test_record_2c                 C   sT   t ƒ }| d¡ | d¡ dtjfg}t |d|¡}tjg d¢|d�}t||ƒ d S )NrH  r   r>  z(\d+)\s+...))rI  )rJ  )rK  r[   rE  rÂ  r%   r%   r&   Útest_record_3ó  s    

zTestfromregex.test_record_3Ú	path_typec           
   	   C   sè   d}t ƒ �Ê}||ƒ}t|dƒ�"}| d| d ¡ W d   ƒ n1 sF0    Y  dtjfdg}tj|d|dd	�}tjd
d| d¡ fddg|d�}t||ƒ t	 
dt	j¡}	tj||	|dd	�}t||ƒ W d   ƒ n1 sÚ0    Y  d S )Nr  r½   s	   1.312 foos    
1.534 bar
4.444 quxr>  )r@  ZU4z(?u)([0-9.]+)\s+(\w+)r  rD  rA  rç   rB  rC  r[   z([0-9.]+)\s+(\w+))r   rÂ   r'   rH   rF  rG  r]   r5   r   r  ÚcompileÚUNICODE)
r#   rN  r  Zstr_pathrï   r¨   r�   rm   rW   Úregexpr%   r%   r&   Útest_record_unicodeý  s     0ÿÿ
z!Testfromregex.test_record_unicodec                 C   sL   t  d¡}tdƒ}dtjfg}tjg d¢|d�}t |||¡}t||ƒ d S )Nó   (\d)ó   123r>  rã   r[   )r  rO  r   rH   rF  r]   rG  r   )r#   rQ  r£   r�   rW   rm   r%   r%   r&   Útest_compiled_bytes  s    
z!Testfromregex.test_compiled_bytesc                 C   sV   t  d¡}tdƒ}tjtdd��" tj||tjd� W d   ƒ n1 sH0    Y  d S )NrS  rT  zstructured datatyper¹  r[   )	r  rO  r   rƒ   r»  r¶  rH   rG  rF  )r#   rQ  r£   r%   r%   r&   Útest_bad_dtype_not_structured  s    
z+Testfromregex.test_bad_dtype_not_structuredN)r-   r.   r/   rq   rL  rM  rƒ   r„   r;  rÏ  r   rR  rU  rV  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¡d¢„ ZWd£d¤„ ZXeYjZ [d¥g d¦¢¡e\d§œd¨d©„ƒZ]dª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 )Nrm  rm   rp   r[   rj   rk   rl   ro   zM 64.0 75.0
F 25.0 60.0rn  rr  rt  rw  r{  )r   rH   Ú
genfromtxtr  r]   r   )r#   rÀ   rë  rì  Ú
descriptorr%   r%   r&   rq   $  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 )Nrm  rS   rY   r2   rZ   r[   r   )	r   rH   r]   r_   rX  r   rC   r^   rÿ   )r#   rÀ   rì  rë  r%   r%   r&   r`   3  s    

zTestFromTxt.test_arrayc                 C   sV   t  g d¢t¡}tdƒ}t j|td�}t||ƒ tdƒ}t j|tdd�}t||ƒ d S )Nrc   r�  r[   r‚  rõ   rƒ  )rH   r]   r_   r   rX  r   ©r#   rì  rÀ   rë  r%   r%   r&   rd   ?  s    
zTestFromTxt.test_1Dc                 C   s\   t  g d¢t¡}tdƒ}t j|tddd�}t||ƒ tdƒ}t j|tddd�}t||ƒ d S )Nr—  r”  rõ   r•  r–  z1,2,3,5# comment
)rH   r]   r_   r   rX  r   rZ  r%   r%   r&   Útest_commentsK  s    
zTestFromTxt.test_commentsc                 C   sp   t  g d¢t¡}ttdd�}tdƒ}t j|fddi|¤Ž}t||ƒ tdƒ}t j|fddi|¤Ž}t||ƒ d S )	Nr—  rõ   rƒ  rŸ  Úskip_headerrS   r”  r   )rH   r]   r_   Údictr   rX  r   rÿ   )r#   rì  rQ   rÀ   rë  r%   r%   r&   r¡  W  s    
zTestFromTxt.test_skiprowsc                 C   sž   dd„ t ddƒD ƒ}| d¡ | dd„ t dƒD ƒ¡ d|d	< td
dddd�}tjtd |¡ƒfi |¤Ž}tjdd„ t dƒD ƒdd„ dD ƒd�}t	||ƒ d S )Nc                 S   s   g | ]}d | ‘qS )z# %ir%   ru   r%   r%   r&   r)   e  r*   z0TestFromTxt.test_skip_footer.<locals>.<listcomp>rS   ræ   zA, B, Cc                 S   s   g | ]}d |||f ‘qS )z%i,%3.1f,%03sr%   ru   r%   r%   r&   r)   g  r*   é3   z99,99rý  rõ   Trå   rË  )rö   ru  r\  Úskip_footerr×   c                 S   s"   g | ]}d | d | d | f‘qS )r*  r%   ru   r%   r%   r&   r)   k  r*   é)   c                 S   s   g | ]}|t f‘qS r%   rt   ©r(   Ú_r%   r%   r&   r)   l  r*   ÚABCr[   )
r{   r­   r  r]  rH   rX  r   r¸   r]   r   )r#   rÀ   rQ   rë  Úctrlr%   r%   r&   Útest_skip_footerd  s    
ÿzTestFromTxt.test_skip_footerc              
   C   s>  t ƒ �� }| t¡ d}tttjt|ƒdd� tjt|ƒddd�}t|t 	ddgddgddgd	d	gg¡ƒ tjt|ƒd
d�}t|t 	ddgddgddgd	d	gg¡ƒ d}tjt|ƒddd�}t|t 	ddgddgd	d	gddgg¡ƒ tjt|ƒd
dd�}t|t 	ddgddgd	d	gg¡ƒ W d   ƒ n1 �s00    Y  d S )Nz1 1
2 2
3 3
4 4
5  
6  
7  
rS   )r_  F)r_  Úinvalid_raiserñ   rò   ró   rô   r2   z1 1
2  
3 3
4 4
5  
6 6
7 7
rÁ  )
r   rÆ   r   r   rÝ   rH   rX  r   r   r]   )r#   rÊ   ZbasestrrW   r%   r%   r&   Útest_skip_footer_with_invalido  s*    

ÿ
ÿ((
ÿ(
ÿz)TestFromTxt.test_skip_footer_with_invalidc                 C   sÌ   t dƒ}tjdd��D}t ddtj¡ tj|d dd�}t|d jtju ƒ W d   ƒ n1 s^0    Y  t 	dd	g¡t 	d
dg¡t 	ddg¡dœ}t
|d |d ƒ t
|d |d ƒ t
|d |d ƒ d S )Nz)gender age weight
M 64.0 75.0
F 25.0 60.0Trx   rz   r   ©r\   ru  r   r  r  ry  r}  rz  r~  rn  ro  rp  rq  )r   r}   r~   r   rH   ÚVisibleDeprecationWarningrX  r   Úcategoryr]   r   ©r#   rÀ   r  rë  rì  r%   r%   r&   Útest_header‡  s    2þzTestFromTxt.test_headerc                 C   sà   t dƒ}tjdd��B}t ddtj¡ tj|d d�}t|d jtju ƒ W d   ƒ n1 s\0    Y  t 	dd	g¡t 	d
dg¡t 	ddg¡t 	ddg¡t 	ddg¡g}t
|jjg d¢ƒ t|ƒD ]\}}t
|d|  |ƒ qÀd S )Nz*A 64 75.0 3+4j True
BCD 25 60.0 5+6j FalseTrx   rz   r   r[   r   ó   As   BCDé@   é   rz  r~  y      @      @y      @      @F)Úf0Úf1Úf2Zf3rì   zf%i)r   r}   r~   r   rH   ri  rX  r   rj  r]   r   r\   ru  r�   )r#   rÀ   r  rë  rì  rv   rd  r%   r%   r&   Útest_auto_dtype•  s    2üzTestFromTxt.test_auto_dtypec                 C   s:   t dƒ}tj|d d�}t g d¢g d¢g¡}t||ƒ d S )Nz1 2 3 4
5 6 7 8
r[   rc   )rå   ræ   r‘  r�  ©r   rH   rX  r]   r   ©r#   rÀ   rë  rì  r%   r%   r&   Útest_auto_dtype_uniform¥  s    z#TestFromTxt.test_auto_dtype_uniformc                 C   sZ   t dƒ}t dtfddtfdtfgfg¡}tj||dd�}tjdd	g|d
�}t||ƒ d S )Nr¾  rm   rp   r»   r$   rõ   rƒ  r¿  rÀ  r[   )r   rH   r\   r_   r^   rX  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)ÚgrW   r  rr  rt  s   M 64.0 75.0
F 25.0 60.0rn  rh  ru  rw  r{  r[   rt  )r#   rY  rÀ   ru  rë  rì  r%   r%   r&   Útest_names_overwrite´  s    ÿÿÿz TestFromTxt.test_names_overwritec                 C   s<   t jtdd�� t d¡ W d   ƒ n1 s.0    Y  d S )Nzfname must be a string,r¹  é{   )rƒ   r»  r¶  rH   rX  rO  r%   r%   r&   Útest_bad_fnameÀ  s    zTestFromTxt.test_bad_fnamec                 C   s  t dƒ}tjdd��D}t ddtj¡ tj|dd d�}t|d jtju ƒ W d   ƒ n1 s^0    Y  tj	g d¢d	d
t
fdtfgd�}t||ƒ t dƒ}tjdd��D}t ddtj¡ tj|dd d�}t|d jtju ƒ W d   ƒ n1 sð0    Y  t||ƒ d S )NzN
#gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        Trx   rz   r   )ru  r\   r   ))rx  rÙ  gfffffR@)r|  r  g
×£p=*M@)rx  rÛ  g=
×£pý5@)ro  r  rp  rq  r[   sO   
# gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        ©r   r}   r~   r   rH   ri  rX  r   rj  r]   r_   r^   r   )r#   rÀ   r  rë  rd  r%   r%   r&   Útest_commented_headerÄ  s    2
ÿ
2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ü   ru  rj   rk   Zcol1Zcol2r[   ©r   rH   rX  r_   r]   r   ru  r%   r%   r&   Útest_names_and_comments_noneá  s    z(TestFromTxt.test_names_and_comments_nonec              
   C   sÐ   t ƒ �¶}tj |d¡}t|dƒ� }| d d¡¡ W d   ƒ n1 sF0    Y  tƒ �H t 	t
¡� tj|dd� W d   ƒ n1 s†0    Y  W d   ƒ n1 s¤0    Y  W d   ƒ n1 sÂ0    Y  d S )Nr  r½   õ   Ï–r  ÚasciirD  )r   rN   rï   r¸   rÂ   r'   rW  r   rƒ   r»  ÚUnicodeDecodeErrorrH   rX  )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��F}t ddtj¡ tj|ddd d�}t|d jtju ƒ W d   ƒ n1 s`0    Y  tj	d	d
dt
fdtfgd�}t||ƒ d S )NúA B C D
 aaaa 121 45 9.1Trx   rz   r   ©ÚAÚCÚD)r�  ru  r\   r   )rÇ  é-   ç333333"@©r†  ú|S4r‡  rˆ  r[   r|  rk  r%   r%   r&   Útest_autonames_and_usecolsõ  s    ÿ2ÿ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õ   r2   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�  rY   r‡  r‘  r’  r~  ru  r%   r%   r&   r“    s    

þz(TestFromTxt.test_converters_with_usecolsc              	   C   sž   t dƒ}tjdd��P}t ddtj¡ tj|ddd ddd	„ id
�}t|d jtju ƒ W d   ƒ n1 sj0    Y  tj	dddt
fdtfgd�}t||ƒ d S )Nr„  Trx   rz   r   r…  r‡  c                 S   s   dt | ƒ S )NrY   rˆ  r‰  r%   r%   r&   r`    r*   zDTestFromTxt.test_converters_with_usecols_and_names.<locals>.<lambda>)r�  ru  r\   ra  r   )rÇ  éZ   rŠ  r‹  rˆ  r[   r|  rk  r%   r%   r&   Ú&test_converters_with_usecols_and_names
  s    

þ2ÿ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)r7   r‰  r%   r%   r&   r`    r*   z9TestFromTxt.test_converters_cornercases.<locals>.<lambda>ú2009-02-03 12:00:00Z, 72214.0rõ   r§  ©rö   r\   ru  ra  éÙ  rY   r2   ç    `¡ñ@r[   )r   rH   rX  r]   r   Zobject_r^   r   ©r#   Ú	converterrÀ   rë  rì  r%   r%   r&   Útest_converters_cornercases  s    ÿ
ÿÿz'TestFromTxt.test_converters_cornercasesc                 C   s\   ddd„ i}t dƒ}tj|dd ddg|d�}tjtdd	d
ƒdfddtfgd�}t||ƒ d S )Nr�  c                 S   s   t  t| dƒ¡S r‘  )rH   Z
datetime64r7   r‰  r%   r%   r&   r`  %  r*   z:TestFromTxt.test_converters_cornercases2.<locals>.<lambda>r’  rõ   r§  r“  r”  rY   r2   r•  )r�  zdatetime64[us]r[   )r   rH   rX  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`  1  r*   z3TestFromTxt.test_unused_converter.<locals>.<lambda>rØ  rÙ  rÚ  rS   c                 S   s
   t | dƒS rÖ  rˆ  r‰  r%   r%   r&   r`  6  r*   rÛ  rÜ  )r   rH   rX  r   rC   ©r#   rÀ   rë  r%   r%   r&   rÝ  -  s    
ÿ

ÿz!TestFromTxt.test_unused_converterc                 C   sF   dd„ }dd„ }t dƒ}t||dœdd d�}tttj|fi |¤Ž d S )Nc                 S   s4   t d|  ¡ v r|  ¡ d p0d|  ¡ vr.|  ¡ p0dƒS )Nó   rrý  rV  ©r^   Úlowerr  rã  r_  r%   r%   r&   r`  :  s   ÿz4TestFromTxt.test_invalid_converter.<locals>.<lambda>c                 S   s4   t d|  ¡ v r|  ¡ d p0d|  ¡ vr.|  ¡ p0dƒS )Nó   %r   rV  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.55r=  rõ   )ra  rö   r\   )r   r]  r   r
   rH   rX  )r#   Z
strip_randZ	strip_perr$   rQ   r%   r%   r&   Útest_invalid_converter9  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 rh  rt   r‰  r%   r%   r&   r`  I  r*   z;TestFromTxt.test_tricky_converter_bug1666.<locals>.<lambda>rõ   r   )rö   ra  rñ   rò   ró   rô   rt  )r#   r$   Zcnvrë  rì  r%   r%   r&   Útest_tricky_converter_bug1666F  s
    z)TestFromTxt.test_tricky_converter_bug1666c                 C   s|   d}t jt|ƒdtdtid�}t jdgddtfdtfgd	�}t||ƒ t jt|ƒdtdtid�}t  g d
¢¡}t||ƒ d S )Nz2009; 23; 46rä  r   rå  )Z2009ç      7@é.   )rp  rŒ  rq  rr  r[   )g     dŸ@r¡  r¢  )rH   rX  r   r^   r4   r]   r   )r#   Údstrrë  rì  r%   r%   r&   Útest_dtype_with_convertersN  s    

ÿÿ


ÿz&TestFromTxt.test_dtype_with_convertersc                    sª   d}dddddœ‰ g d¢}t t t ‡ fdd	„d
œ}tjt|ƒ|dd |d�}tjjg d¢|d�}t||ƒ g d¢}tjt|ƒ|ddd |d�}tjjg d¢|d�}t||ƒ d S )Nz!1,5,-1,1:1
2,8,-1,1:n
3,3,-2,m:n
r   rS   rY   r2   )z1:1z1:nzm:1zm:n)©Úe1rn   ©Úe2rn   )Ze3Úi2©rŽ   Úi1c                    s   ˆ |   ¡  S r    r^  )rh   ©Zdmapr%   r&   r`  ^  r*   zDTestFromTxt.test_dtype_with_converters_and_usecols.<locals>.<lambda>)r   rS   rY   r2   rõ   )r\   rö   ru  ra  ))rS   rå   rý  r   )rY   r�  rý  rS   )r2   r2   éþÿÿÿr2   r[   )r¥  r§  rª  )r   rS   r2   )r\   rö   r�  ru  ra  ))rS   rå   r   )rY   r�  rS   )r2   r2   r2   )r_   rH   Ú
recfromcsvr   Zrecr]   r   )r#   r£  ZdtypÚconvrë  rì  r%   r¬  r&   Ú&test_dtype_with_converters_and_usecolsZ  s    ÿ
ÿz2TestFromTxt.test_dtype_with_converters_and_usecolsc                 C   s   d}dt fdtfg}dd„ }d|i}tjt|ƒd||d�}tjdtd	ddƒfd
tdddƒfg|d�}t||ƒ ddt fdtfgfg}tt	dƒ�& tjt|ƒd||d�}W d   ƒ n1 sº0    Y  dt fdtfdg fg}tt	dƒ�& tjt|ƒd||d�}W d   ƒ n1 �s0    Y  d S )NrÞ  rß  rà  c                 S   s   t |  ¡ dƒS rá  râ  r‰  r%   r%   r&   r`  n  r*   z4TestFromTxt.test_dtype_with_object.<locals>.<lambda>rS   rä  rå  ræ  rY   rç  rè  r[   ZnestzNested fields.* not supported.*)
r_   ra   rH   rX  r   r]   r   r   r   ÚNotImplementedErrorré  r%   r%   r&   rí  i  s4    ÿþ
ÿÿ$ÿÿz"TestFromTxt.test_dtype_with_objectc                 C   sH   t jtdƒtd�}|d dks"J ‚t jtdƒtd�}|d dksDJ ‚d S )NÚ1r[   r%   ó   1Ústrings   string)rH   rX  r   ra   )r#   Úparsedr%   r%   r&   Ú#test_dtype_with_object_no_converter„  s    z/TestFromTxt.test_dtype_with_object_no_converterc                 C   sH   t dƒ}tj|dd tddtid�}tjdgddtfgd	�}t||ƒ d S )
Nzskip,skip,2001-01-01,1.0,skiprõ   r=  rY   )rö   ru  r\   r�  ra  )ú
2001-01-01rñ   )r   ú|S10r   r[   )r   rH   rX  r^   r4   r]   r   ru  r%   r%   r&   Ú'test_userconverters_with_explicit_dtype‹  s    ÿ
ÿz3TestFromTxt.test_userconverters_with_explicit_dtypec              
   C   sº   d}t ƒ �l}t|dƒ�"}| d| d ¡ W d   ƒ n1 s>0    Y  tj|dd tddtjjidd	�}W d   ƒ n1 s|0    Y  tjd
| 	d¡ dfgddtfgd�}t
||ƒ d S )Nr  r½   s   skip,skip,2001-01-01s	   ,1.0,skiprõ   r=  rY   r  )rö   ru  r\   r�  ra  r  r·  rñ   )r   z|U11r   r[   )r   rÂ   r'   rH   rX  r^   ÚcompatÚunicoder]   r5   r   )r#   r  rï   r¨   rë  rì  r%   r%   r&   Ú,test_utf8_userconverters_with_explicit_dtype”  s    0þ$
ÿz8TestFromTxt.test_utf8_userconverters_with_explicit_dtypec                 C   s6   t dƒ}t |¡}t g d¢g d¢g¡}t||ƒ d S )Nz1  2  3  4   5
6  7  8  9  10)rñ   rò   ró   rô   ç      @)rÁ  ç      @rÈ  ç      "@g      $@rt  ru  r%   r%   r&   Útest_spacedelimiter   s    

ÿzTestFromTxt.test_spacedelimiterc                 C   s@   d}t jt|ƒdd�}t  g d¢g d¢g d¢g¡}t||ƒ d S )Nz  1  2  3
  4  5 67
890123  4r2   )rö   rã   )rZ   rå   éC   )iz  rz  rZ   ©rH   rX  r   r]   r   ru  r%   r%   r&   Útest_integer_delimiter¨  s    z"TestFromTxt.test_integer_delimiterc                 C   s@   t dƒ}tj|tdddd„ id�}t g d¢t¡}t||ƒ d S )Nr…  rõ   r2   c                 S   s   t | pdƒS r†  rˆ  r‰  r%   r%   r&   r`  ²  r*   z*TestFromTxt.test_missing.<locals>.<lambda>rŠ  r‹  r~  ru  r%   r%   r&   rŒ  ¯  s    

ÿzTestFromTxt.test_missingc                 C   sh   d}t jt|ƒddd�}t  dt jdt jfdt jdfg¡}t jg d	¢td
�}t|j|ƒ t|j|ƒ d S )Nz1	2	3
	2	
1		3r  T)rö   Úusemaskrã   rY   rS   r2   )©r   r   r   ©rS   r   rS   ©r   rS   r   r[   )	rH   rX  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  g d¢g d	¢gt¡}tƒ }t  ||¡ | d¡ t j|td
d�}t||d d …dd …f ƒ | d¡ t j|tt  ddg¡d�}t||d d …dd …f ƒ d S )NrS   rY   r2   rZ   r   r¢  r£  rã   r¤  rj   )rH   r]   r^   r   rÚ   rC   rX  r   rZ  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)ru  r�  rŽ  ©rZ   ræ   c                 S   s   g | ]}|t f‘qS r%   rt   ra  r%   r%   r&   r)   Ú  r*   z3TestFromTxt.test_usecols_as_css.<locals>.<listcomp>Úacr[   rÂ  ©r#   rÀ   rë  rd  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   rH   rX  r  rÑ   r   )r#   rÀ   ru  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ô   )rH   rX  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Î  rW   r£   r[   rÌ  rÍ  )ru  r�  ©r   rý  )rW   r£   )rH   r]   r^   r]  rX  r   r   )r#   rd  rÀ   rQ   rë  r%   r%   r&   Útest_usecols_with_named_columnsì  s    

ÿÿz+TestFromTxt.test_usecols_with_named_columnsc                 C   st   t ƒ �Z}|jdd� tƒ }t |¡}t|t g ¡ƒ tj|dd�}t|t g ¡ƒ W d   ƒ n1 sf0    Y  d S )Nzgenfromtxt: Empty input file:)ÚmessagerS   )r\  )r   rÆ   r   rH   rX  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¾  rm   rp   r»   r$   rõ   T)r\   rö   rÄ  r¿  rÀ  r[   )	r   rH   r\   r_   r^   rX  Úmar]   r   rw  r%   r%   r&   Útest_fancy_dtype_alt  s
    "z TestFromTxt.test_fancy_dtype_altc                 C   sh   t dƒ}t ddtfdtfdtdfg¡}tj||d�}tjdd	d
g d¢g d¢gfg|d�}t||ƒ d S rÄ  )r   rH   r\   r^   r_   rX  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_valuesru  ©r\   rÄ  r  ©rY   rý  ©FF©FTr†  ÚB©rÊ  r\   r   rÄ  )r   r]  rH   rX  r×  r]   r_   r   rÊ  rC   r^   ©r#   rÀ   rQ   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g d
¢g d¢|d�}t	||ƒ ||d< tjt|ƒfddddœddœ|¤Ž}tjg d
¢g d¢|d�}t	||ƒ tjt|ƒfddddœddœ|¤Ž}tjg d
¢g d¢|d�}t	||ƒ d S )Nz4A, B, C
0, 0., 0j
1, N/A, 1j
-9, 2.2, N/A
3, -99, 3jrõ   T)r\   rö   ru  r†  rá  r‡  rÜ  rÚ  ))r   rV  y                )rS   r‡  r  )r5  gš™™™™™@ù       €     8�À)r2   é�ÿÿÿy              @)rÅ  rÇ  )r   r   rS   rÅ  râ  r\   r5  ræ  rå  ©r   rS   rY   )rÜ  rÄ  )rÅ  rÇ  rÆ  rÇ  )r   rá  r‡  )
r]  r_   r^   rœ   rH   rX  r   r×  r]   r   )r#   rÀ   Z
basekwargsZmdtyperë  rì  r%   r%   r&   Útest_user_missing_values&  sB    ÿ
ý
ÿÿ
ý

þý
ýz$TestFromTxt.test_user_missing_valuesc              	   C   s8  t jddgdtfdtfgd�}d}tdtdd	d
ddœddddœd�}t jt|ƒfi |¤Ž}t jddgdd„ dD ƒd�}t||ƒ t jt|ƒfddi|¤Ž}t jddgdd„ dD ƒd�}t||ƒ d}t jt|ƒdtddd�}t  g d¢g d¢g¡}t||ƒ t jt|ƒdtddd�}t  g d¢g d ¢g¡}t||ƒ d S )!N)r   r2   )rZ   r‡  rW   r�   r[   zN/A, 2, 3
4, ,???rõ   za,b,crÚ  rÖ   z???)r   r�   rY   r   r‡  )rö   r\   ru  rÜ  Úfilling_values)r   rY   r2   )rZ   r   r‡  c                 S   s   g | ]}|t f‘qS r%   rˆ  ra  r%   r%   r&   r)   Q  r*   z8TestFromTxt.test_user_filling_values.<locals>.<listcomp>Úabcr�  rÔ  c                 S   s   g | ]}|t f‘qS r%   rˆ  ra  r%   r%   r&   r)   U  r*   rÏ  z1,2,*,4
5,*,7,8
Ú*)rö   r\   rÜ  ré  )rS   rY   r   rZ   )rå   r   r‘  r�  rý  )rS   rY   rý  rZ   )rå   rý  r‘  r�  )rH   r]   r_   r]  rX  r   r   )r#   rd  rÀ   rQ   rë  Zdata2r%   r%   r&   Útest_user_filling_valuesF  s6    

ü
ÿ

ÿ
ÿz$TestFromTxt.test_user_filling_valuesc                 C   s^   t dƒ}tj|d ddddd�}tjddgdd	gd
tfdtfgd�}t||ƒ t|j|jƒ d S )NzA,B
0,1.5
2,-999.00rõ   z-999.0T)r\   rö   rÜ  ru  rÄ  )r   r±  )rY   g      ð¿rß  rà  r†  rá  râ  )	r   rH   rX  r×  r]   r_   r^   r   rÊ  ru  r%   r%   r&   Útest_withmissing_floatb  s    
ÿ
þ
z"TestFromTxt.test_withmissing_floatc                 C   sN   t dƒ}tj|d ddd�}tjg d¢g d¢gg d¢g d¢gd�}t||ƒ d S )	Nz1 2 3
4 5 6
ú2,5T©r\   rÜ  rÄ  rã   rä   rÇ  )rÊ  )r   rH   rX  r×  r]   r   ru  r%   r%   r&   Útest_with_masked_column_uniforml  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Ç  rp  rq  rr  râ  )r   rH   rX  r×  r]   rÉ  r_   r   ru  r%   r%   r&   Útest_with_masked_column_varioust  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\   ru  c                      s   t jˆfddiˆ ¤ŽS )Nrf  F©rH   rX  r%   ©rQ   Úmdatar%   r&   r¨   ‡  s    z)TestFromTxt.test_invalid_raise.<locals>.fr‰  c                 S   s   g | ]}|t f‘qS r%   rˆ  ra  r%   r%   r&   r)   ‹  r*   z2TestFromTxt.test_invalid_raise.<locals>.<listcomp>Úabcder[   ©rö   ru  )r{   Úinsertr   r¸   r]  r   r   r   ÚlenrH   r|   rC   r   rÝ   rX  )r#   rÀ   rv   r¨   Úmtestr%   r÷  r&   Útest_invalid_raise~  s    



ÿzTestFromTxt.test_invalid_raisec                    sü   dgd }t dƒD ]}d|d| < q| dd¡ td |¡ƒ‰td	d d
dd�‰ ‡ ‡fdd„}tt|ƒ}tt|ƒdƒ t|t	j
ddd„ dD ƒd�ƒ ˆ d¡ t	jˆfddiˆ ¤Ž}tt|ƒdƒ t	j
ddd„ dD ƒd�}d|dd„ t dƒD ƒ< t||ƒ d S )Nrò  r-  rå   ró  rË  r   rô  r×   rõ   TF)rö   r\   ru  rf  c                      s   t jˆfddiˆ ¤ŽS )Nr�  )r   rZ   rö  r%   r÷  r%   r&   r¨   ›  s    z6TestFromTxt.test_invalid_raise_with_usecols.<locals>.fr‰  c                 S   s   g | ]}|t f‘qS r%   rˆ  ra  r%   r%   r&   r)   Ÿ  r*   z?TestFromTxt.test_invalid_raise_with_usecols.<locals>.<listcomp>Zaer[   r�  r  c                 S   s   g | ]}|t f‘qS r%   rˆ  ra  r%   r%   r&   r)   ¤  r*   Úabrÿ  c                 S   s   g | ]}d | ‘qS )rË  r%   ra  r%   r%   r&   r)   ¥  r*   )r{   rû  r   r¸   r]  r   r   r   rü  rH   r|   rC   rX  )r#   rÀ   rv   r¨   rý  rì  r%   r÷  r&   Útest_invalid_raise_with_usecols‘  s$    
ÿ

z+TestFromTxt.test_invalid_raise_with_usecolsc                 C   sV   dgd }t d |¡ƒ}ddd„ i}td|dd	„ d
D ƒd�}tttj|fi |¤Ž d S )Nz1, 1, 1, 1, -1.1r-  r×   rZ   c                 S   s   d|   ¡  S )Nz(%s)r^  r_  r%   r%   r&   r`  ­  r*   z5TestFromTxt.test_inconsistent_dtype.<locals>.<lambda>rõ   c                 S   s   g | ]}|t f‘qS r%   rˆ  ra  r%   r%   r&   r)   ¯  r*   z7TestFromTxt.test_inconsistent_dtype.<locals>.<listcomp>rù  )rö   ra  r\   )r   r¸   r]  r   rÝ   rH   rX  )r#   rÀ   rø  ra  rQ   r%   r%   r&   Útest_inconsistent_dtype¨  s    
ÿz#TestFromTxt.test_inconsistent_dtypec                 C   sL   d}t jt|ƒdd dd�}t jddgdtfdtfd	tfgd
�}t||ƒ d S )Nú0, 1, 2.3
4, 5, 6.7rõ   úf%02i©rö   r\   Z
defaultfmt©r   rS   çffffff@)rZ   rå   çÍÌÌÌÌÌ@Zf00Zf01Zf02r[   )rH   rX  r   r]   r_   r^   r   ©r#   rÀ   rý  rd  r%   r%   r&   Útest_default_field_format²  s    
ÿ
ÿz%TestFromTxt.test_default_field_formatc                 C   sB   d}t jt|ƒdtdd�}t jg d¢g d¢gtd�}t||ƒ d S )Nr  rõ   r  r  ©rV  rñ   r  ©rô   r½  r  r[   ©rH   rX  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õ  r
  r  c                 S   s   g | ]}|t f‘qS r%   rt   ra  r%   r%   r&   r)   É  r*   zBTestFromTxt.test_single_dtype_w_explicit_names.<locals>.<listcomp>rê  r[   r  r  r%   r%   r&   Ú"test_single_dtype_w_explicit_namesÃ  s    
ÿ
ÿz.TestFromTxt.test_single_dtype_w_explicit_namesc                 C   sD   d}t jt|ƒdtdd�}t jddgdd„ d	D ƒd
�}t||ƒ d S )Nza, b, c
0, 1, 2.3
4, 5, 6.7rõ   Trõ  r
  r  c                 S   s   g | ]}|t f‘qS r%   rt   ra  r%   r%   r&   r)   Ò  r*   zBTestFromTxt.test_single_dtype_w_implicit_names.<locals>.<listcomp>rê  r[   r  r  r%   r%   r&   Ú"test_single_dtype_w_implicit_namesÌ  s    
ÿ
ÿz.TestFromTxt.test_single_dtype_w_implicit_namesc                 C   sR   d}t jt|ƒdtttfdd�}t jddgdtfdtfd	tfgd
�}t||ƒ d S )Nr  rõ   zf_%02ir  )r   rñ   r  )rZ   r½  r  Zf_00Zf_01Zf_02r[   ©rH   rX  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��J}t ddtj¡ tjt|ƒfi |¤Ž}t|d j	tju ƒ W d   ƒ n1 sl0    Y  tj
d	gd
dtfdgd�}t||ƒ tjdd��N}t ddtj¡ tjt|ƒfddi|¤Ž}t|d j	tju ƒ W d   ƒ n1 sú0    Y  tj
dgddtfdgd�}t||ƒ d S )Nz01/01/2003  , 1.3,   abcderõ   )rö   r\   Trx   rz   r   r   )z01/01/2003  çÍÌÌÌÌÌô?z   abcde)rp  z|S12rq  )rr  r  r[   Z	autostrip)z
01/01/2003r  rù  )rp  r¸  )rr  z|S5)r]  r}   r~   r   rH   ri  rX  r   r   rj  r]   r^   r   )r#   rÀ   rQ   r  rý  rd  r%   r%   r&   Útest_autostripÞ  s$    2ÿ
2ÿ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ö   ru  r\   ÚAAÚB_BÚCC)rS   rY   g…ëQ¸	@r[   r   ©rö   ru  r\   Zreplace_spaceÚdeletecharsúA.AúB (B)úC:C©rö   ru  r\   r  úB_(B)r  ©r#   r  rë  Z
ctrl_dtyperd  r%   r%   r&   Útest_replace_spaceñ  s*    
ÿ

þ

þzTestFromTxt.test_replace_spacec                 C   sÚ   d}t jt|ƒddtd�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddtd
d
d�}dtfdtfdtfg}t jd|d	�}t||ƒ t jt|ƒddtd
d�}dtfdtfdtfg}t jd|d	�}t||ƒ d S )NzA.A, B (B), C:C
1, 2, 3rõ   Tr  r  r  r  rã   r[   r   r  r  r  r  r  r  )rH   rX  r   r_   r]   r   r  r%   r%   r&   Útest_replace_space_known_dtype	  s*    
ÿ

þ

þz*TestFromTxt.test_replace_space_known_dtypec                 C   s†   d}t ddd�}tjddgdd„ d	D ƒd
�}tjt|ƒfdd i|¤Ž}t||ƒ tjddgdd„ d	D ƒd
�}tjt|ƒfi |¤Ž}d S )NzA,,C
0,1,2
3,4,5rõ   Trú  rç  r¤  c                 S   s   g | ]}|t f‘qS r%   rˆ  ra  r%   r%   r&   r)   '  r*   z5TestFromTxt.test_incomplete_names.<locals>.<listcomp>)r†  rp  r‡  r[   r\   c                 S   s   g | ]}|t f‘qS r%   rt   ra  r%   r%   r&   r)   ,  r*   )r]  rH   r]   rX  r   r   ©r#   rÀ   rQ   rd  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 6rW   rh  rã   rä   rp  rq  r[   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)r†  r‡  ÚErõ   )r   rY   rZ   T)r\   rö   r�  ru  )rH   rX  r   r_   r   r\   ru  )r#   rÀ   Z
ctrl_namesrë  r%   r%   r&   Útest_names_with_usecols_bug16368  s"    

þ

þ
þz+TestFromTxt.test_names_with_usecols_bug1636c                 C   s¬   d}t ddd d�}tjddgdtfdtfd	tfgd
�}tjt|ƒfi |¤Ž}t||ƒ t ddd d�}tjddgdtfdtfd	tfgd
�}tjt|ƒfi |¤Ž}t||ƒ d S )Nz-    A    B   C
    0    1 2.3
   45   67   9.)rå   rå   rZ   Tr  r  )r‰  rÁ  r¿  r†  rá  r‡  r[   rå   )r]  rH   r]   r_   r^   rX  r   r   r"  r%   r%   r&   Útest_fixed_width_namesK  s    
ÿ

ÿz"TestFromTxt.test_fixed_width_namesc                 C   sV   d}t dd dd�}tjg d¢g d¢g d¢gtd�}tjt|ƒfi |¤Ž}t||ƒ d S )	Ns   1, 2, 3
1, , 5
0, 6, 
rõ   r‡  )rö   r\   ré  rã   )rS   r‡  rå   )r   ræ   r‡  r[   )r]  rH   r]   r_   rX  r   r   r"  r%   r%   r&   Útest_filling_valuesZ  s
     zTestFromTxt.test_filling_valuesc                 C   sì   t jdd��J}t  ddtj¡ tjtdƒd d dd�}t|d jtju ƒ W d   ƒ n1 s\0    Y  t	|d	 d
ƒ t jdd��J}t  ddtj¡ tjtdƒd d dd�}t|d jtju ƒ W d   ƒ n1 sÐ0    Y  t	|d	 dƒ d S )NTrx   rz   r   ztest1,testNonetherestofthedatarõ   ©r\   rü   rö   r   rS   s   testNonetherestofthedataztest1, testNonetherestofthedatas    testNonetherestofthedata)
r}   r~   r   rH   ri  rX  r   r   rj  r   )r#   r  rë  r%   r%   r&   Útest_comments_is_noneb  s    
ÿ2
ÿ2z!TestFromTxt.test_comments_is_nonec                 C   s�  d}d}d| d }|| | }t jdd��J}t  ddtj¡ tjt|ƒd d d	d
�}t|d jtju ƒ W d   ƒ n1 s|0    Y  t	|d dƒ t	|d d| ƒ t	|d dƒ tjt|ƒd d d	dd�}t	|d dƒ t	|d d| 
d¡ ƒ t	|d dƒ t jdd��N}t  ddtj¡ tjtd| ƒd d d	d
�}t|d jtju ƒ W d   ƒ n1 �sb0    Y  t	|d dƒ t	|d d| ƒ d S )Ns   öüöó   norm1,norm2,norm3
ó   test1,testNonetheó   ,test3
Trx   rz   r   rõ   r)  r   )rS   r   ó   test1)rS   rS   ó   testNonetherj   ó   test3r1   ©r\   rü   rö   r  Útest1ÚtestNonetheÚtest3ó   0,testNonetherp  rq  )r}   r~   r   rH   ri  rX  r   r   rj  r   r5   )r#   r1   ÚnormÚencr$   r  rë  r%   r%   r&   Útest_latin1q  s8    
ÿ2
þÿ4zTestFromTxt.test_latin1c                 C   s6   d}| j t|ƒd dd�}t|t | d¡ ¡ ¡ƒ d S rZ  )rH  r   r   rH   r]   r5   r  r[  r%   r%   r&   Útest_binary_decode_autodtype�  s    z(TestFromTxt.test_binary_decode_autodtypec                 C   s¶   d}d}d| d }|| | }t jdd��J}t  ddtj¡ tjt|ƒd d d	d
�}t|d jtju ƒ W d   ƒ n1 s|0    Y  t 	g d¢dd| dgg d¢g¡}t
||ƒ d S )Nr  r+  r,  r-  Trx   rz   r   rõ   r)  r   )s   norm1s   norm2s   norm3r.  r/  r0  )r}   r~   r   rH   ri  rX  r   r   rj  r]   r   )r#   r  r6  r7  r$   r  rë  Úctlr%   r%   r&   Útest_utf8_byte_encoding’  s     
ÿ2ýz#TestFromTxt.test_utf8_byte_encodingc              	   C   s6  d}t ƒ ��}t|dƒ�&}| d| d d ¡ W d   ƒ n1 sD0    Y  tj|d d ddd�}tjd	d
| d¡ dgd	d
| d¡ dggtjd�}t||ƒ t|dƒ�}| d| ¡ W d   ƒ n1 sÎ0    Y  tj|d d ddd�}t	|d dƒ t	|d d
| d¡ ƒ W d   ƒ n1 �s(0    Y  d S )Nr  r½   r,  r-  rY   rõ   r  r1  r2  r3  r4  r[   r5  rp  r   rq  )
r   rÂ   r'   rH   rX  r]   r5   r  r   r   )r#   r  rï   r¨   rë  r:  r%   r%   r&   Útest_utf8_file¢  s*    
4
ÿþý
,
ÿzTestFromTxt.test_utf8_filec           	   	   C   s^  d}d}zt  ¡ }| |¡ W n  ttfy>   t d¡ Y n0 tƒ �� }t 	|d¡�>}| 
d¡ | 
d| d ¡ | 
d| d	 ¡ W d   ƒ n1 sš0    Y  tjd
d��F}t ddtj¡ tj|d d dd�}t|d jtju ƒ W d   ƒ n1 sü0    Y  tjg d¢d|dgdd| dggtjd�}t||ƒ W d   ƒ n1 �sP0    Y  d S )Nr€  u   Ã¶Ã¼Ã¶zTSkipping test_utf8_file_nodtype_unicode, unable to encode utf8 in preferred encodingrB  znorm1,norm2,norm3
znorm1,z,norm3
ztest1,testNonethez,test3
Trx   rz   r   rõ   r)  r   )Únorm1Znorm2Únorm3r=  r>  r2  r3  r4  r[   )r;  r<  rW  ÚUnicodeErrorÚImportErrorrƒ   r0  r   re  rÂ   r'   r}   r~   r   rH   ri  rX  r   rj  r]   r  r   )	r#   r  r1   r  rï   r¨   r  rë  r:  r%   r%   r&   Útest_utf8_file_nodtype_unicode·  s8    

0ÿ
ÿ2ýüz*TestFromTxt.test_utf8_file_nodtype_unicodec                 C   sÐ   t dƒ}tdddd�}tj|f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ƒ d S )NúA,B
0,1
2,3rõ   rÚ  TrÛ  r  r=  r†  rá  r[   rÙ  rÝ  rÞ  rß  rà  râ  r   rY   )r   r]  rH   Ú
recfromtxtr]   r_   r   rF   Úrecarrayr   r×  rÊ  r†  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 )NrB  rÚ  T©rÜ  ru  Zcase_sensitiver\   r  r=  r†  rá  r[   rÙ  rÝ  rÞ  rß  rà  râ  r   rY   )rÜ  rW   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>)ra  )Zred)ZblueÚcolorrZ   )r   r]  rH   r®  r]   r_   r   rF   rD  r   r×  rÊ  r†  r^   r4   r\   )r#   rÀ   rQ   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 d   ƒ n1 �sx0    Y  d}t |ƒ}tj|dddd�}tjg d¢ddgd�}t||ƒ tj|d |j
d�}tjddgddgd�}t||ƒ d S ) Nz1 2
3 4
5 6
7 8
9 10
r2   )r'  rS   rY   rZ   rå   ræ   r‘  r�  r’  rË  r   z1 1
2 2
0 
3 3
4 4
5  
6  
7  
rñ   rò   )r_  r'  F)r'  rf  ró   rô   z"a b
#c d
1 1
2 2
#0 
3 3
4 4
5  5
T)r\  r'  ru  ))rñ   rñ   )rò   rò   )ró   ró   )r£   ú<f8)r€  rJ  r[   )r'  r\   )rô   rô   )r½  r½  )r   rH   rX  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   sœ   t  d¡ d¡}d}|D ]~}d| d }tƒ �N}t|dƒ�}| |¡ W d   ƒ n1 sZ0    Y  t  |¡}W d   ƒ n1 s‚0    Y  t||ƒ qd S )Nræ   r=  r>  r@  rA  r  )rH   rF  rG  r   rÂ   r'   rX  r   )r#   rð  rJ  rK  rÀ   rA   r¨   rL  r%   r%   r&   Útest_gft_using_filenameL	  s    ((z#TestFromTxt.test_gft_using_filenamec           	   
   C   sÞ   t  d¡ d¡}d}|D ]À}d| d }tƒ }tj|dd��}| t|ƒ¡ W d   ƒ n1 s`0    Y  tdd	��T}t	|dƒ�}| |¡ W d   ƒ n1 s 0    Y  t
t  |¡|ƒ W d   ƒ q1 sÎ0    Y  qd S )
Nræ   r=  r>  r@  rA  r  ©ÚfileobjrC  z.gz2rª   )rH   rF  rG  r   rN  ÚGzipFiler'   r   r   rÂ   r   rX  )	r#   rI  rJ  rK  rÀ   r$   rx  rA   r¨   r%   r%   r&   Útest_gft_from_gzipZ	  s    ,(zTestFromTxt.test_gft_from_gzipc                 C   s(   dd„ }t  |ƒ ¡}t|t  d¡ƒ d S )Nc                  s   s    t dƒD ]} td|  ƒV  qd S r  )r{   r   r  r%   r%   r&   r  l	  s    z3TestFromTxt.test_gft_using_generator.<locals>.countrË  )rH   rX  r   rF  r  r%   r%   r&   Útest_gft_using_generatorj	  s    z$TestFromTxt.test_gft_using_generatorc                 C   s�   t dƒ}tj|d d�}t|jjg d¢ƒ t|jd tkƒ t|jd tjkƒ t|jd tj	kƒ t
|d dƒ t|d dƒ t|d d	ƒ d S )
Nz%73786976294838206464 17179869184 1024r[   )rp  rq  rr  rp  rq  rr  g      Dl        i   )r   rH   rX  r   r\   ru  r   r^   r´  Úint_r   rš  r%   r%   r&   Útest_auto_dtype_largeints	  s    z$TestFromTxt.test_auto_dtype_largeintc                 C   s^   t dƒ}tj|ddd�\}}}t|t g d¢¡ƒ t|t g d¢¡ƒ t|t g d¢¡ƒ d S )Nz1,2,3
4,5,6
7,8,9
0.0,1.0,2.0rõ   T)rö   r  )rñ   rô   r¾  rV  )rò   r½  rÈ  rñ   )ró   rÁ  r¿  rò   )r   rH   rÿ   r   r]   )r#   r  rW   r�   r£   r%   r%   r&   Útest_unpack_float_dataŒ	  s
    z"TestFromTxt.test_unpack_float_datac                 C   sž   t dƒ}dddœ}tj||dd�\}}}t|jt d¡ƒ t|jt d¡ƒ t|jt d	¡ƒ t|t d
dg¡ƒ t|t ddg¡ƒ t|t ddg¡ƒ d S )Nr
  r  rr  rt  Tr  rs  rn   rì   r  r  rÙ  r  r  r  )r   rH   rX  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.rx  r|  rÙ  r  r  r  Tzutf-8)r\   r  r  )r   rH   r]   rX  rÑ   r   r   r\   )r#   r  Úexpectedrë  rJ   Úresultr%   r%   r&   Útest_unpack_auto_dtype 	  s    (
z"TestFromTxt.test_unpack_auto_dtypec                 C   sR   t dƒ}dddœ}tjddgtjd�}tj||dd	�}t||ƒ t|j|jƒ d S )
Nz21
35r’   ©rn   rt  rÙ  r  r[   Tr  )r   rH   r]   r  rX  r   r   r\   ©r#   r  r�   rT  rë  r%   r%   r&   Útest_unpack_single_nameª	  s    

z#TestFromTxt.test_unpack_single_namec                 C   sZ   t dƒ}dddœ}tjdtjd�}tj||dd�}t||ƒ td	|jƒ t|j|jƒ d S )
Nr²  r’   rW  rt  r¢  r[   Tr  r%   )	r   rH   r]   r  rX  r   r   rU   r\   rX  r%   r%   r&   Útest_squeeze_scalar´	  s    

zTestFromTxt.test_squeeze_scalarÚndimrç  )r[  c                 C   s6   d}t jt|ƒ|d�}t jt|ƒ|d�}t||ƒ d S )NZ42r  )rH   rÿ   r   rX  r   )r#   r[  r  rW   r�   r%   r%   r&   r  À	  s    zTestFromTxt.test_ndmin_keywordN)^r-   r.   r/   r8  rH   rX  rH  rq   r`   rd   r[  r¡  re  rg  rl  rs  rv  rÃ  ry  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*  r8  r9  r;  r<  rA  rE  rI  r(  rK  rO  rP  rR  rS  r  rV  rY  rZ  rƒ   r„   r;  r_   r  r%   r%   r%   r&   rW  !  sª   
		

	 


					#)6	

rW  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   sl   t dd��N}t|ƒ}t ddgddgg¡}t ||¡ t |¡}t||ƒ W d   ƒ n1 s^0    Y  d S )Nú.txtrª   gš™™™™™ñ?rY   r2   rZ   )r   r   rH   r]   rÚ   rÿ   r   )r#   rï   rW   rm   r%   r%   r&   Útest_loadtxtÎ	  s    
zTestPathUsage.test_loadtxtc                 C   sn   t dd��P}t|ƒ}t ddgddggt¡}t ||¡ t |¡}t||ƒ W d   ƒ n1 s`0    Y  d S )Nrí   rª   rS   rY   r2   rZ   )r   r   rH   r]   r_   rˆ   rI   r   ©r#   rï   rW   rÀ   r%   r%   r&   Útest_save_loadÖ	  s    
zTestPathUsage.test_save_loadc                 C   s„   t dd��f}t|ƒ}t ddgddggt¡}t ||¡ tj|dd�}t||ƒ ~trbt	ƒ  t	ƒ  W d   ƒ n1 sv0    Y  d S )	Nrí   rª   rS   rY   r2   rZ   rh   ©rg   )
r   r   rH   r]   r_   rˆ   rI   r   r   r   r_  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 d   ƒ n1 s˜0    Y  d S )Nrí   rª   rS   rY   r2   rZ   zr+ra  rå   r   )
r   r   rH   r]   r_   rˆ   rI   r   r   r   )r#   rï   rW   r�   rÀ   r%   r%   r&   Útest_save_load_memmap_readwriteí	  s    
z-TestPathUsage.test_save_load_memmap_readwritec              	   C   s|   t dd��^}t|ƒ}tj|dd� t |¡�}t|d dƒ W d   ƒ n1 sP0    Y  W d   ƒ n1 sn0    Y  d S ©Nr�   rª   rÎ   rÏ   rÐ   )r   r   rH   rŒ   rI   r   ©r#   rï   rÀ   r%   r%   r&   Útest_savez_loadý	  s
    zTestPathUsage.test_savez_loadc                 C   sd   t dd��F}t|ƒ}tj|dd� t |¡}t|d dƒ | ¡  W d   ƒ n1 sV0    Y  d S rd  )r   r   rH   Zsavez_compressedrI   r   rG   re  r%   r%   r&   Útest_savez_compressed_load
  s    
z(TestPathUsage.test_savez_compressed_loadc                 C   sd   t dd��F}t|ƒ}t ddg¡}t ||¡ t |¡}t||ƒ W d   ƒ n1 sV0    Y  d S )Nr]  rª   rj   rk   )r   r   rH   r]   rÚ   rX  r   r_  r%   r%   r&   Útest_genfromtxt
  s    
zTestPathUsage.test_genfromtxtc              	   C   sÂ   t dd��¤}t|ƒ}| d¡�}| d¡ W d   ƒ n1 s>0    Y  tdddd�}tj|fi |¤Ž}tjd	d
gdtfdtfgd�}t	t
|tjƒƒ t||ƒ W d   ƒ n1 s´0    Y  d S )Nr]  rª   r  rB  rõ   rÚ  TrÛ  r  r=  r†  rá  r[   )r   r   rÂ   r'   r]  rH   rC  r]   r_   r   rF   rD  r   ©r#   rï   r¨   rQ   rë  rì  r%   r%   r&   rE  
  s    (
ÿzTestPathUsage.test_recfromtxtc              	   C   sÆ   t dd��¨}t|ƒ}| d¡�}| d¡ W d   ƒ n1 s>0    Y  tdddd�}tj|fdd i|¤Ž}tjd	d
gdtfdtfgd�}t	t
|tjƒƒ t||ƒ W d   ƒ n1 s¸0    Y  d S )Nr]  rª   r  rB  rÚ  TrF  r\   r  r=  r†  rá  r[   )r   r   rÂ   r'   r]  rH   r®  r]   r_   r   rF   rD  r   ri  r%   r%   r&   rI  #
  s    (
ÿzTestPathUsage.test_recfromcsvN)r-   r.   r/   r^  r`  rb  rc  rf  rg  rh  rE  rI  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  rL  r   rh   )
rH   r«   r   rN  rN  rˆ   rG   rC   r   rI   ©rW   r$   r¨   r%   r%   r&   Útest_gzip_load1
  s    
rl  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#   ro  r%   r%   r&   r!   B
  s    zJustWriter.__init__c                 C   s   | j  |¡S r    )ro  r'   r"   r%   r%   r&   r'   E
  s    zJustWriter.writec                 C   s
   | j  ¡ S r    )ro  rB   rO  r%   r%   r&   rB   H
  s    zJustWriter.flushN)r-   r.   r/   r!   r'   rB   r%   r%   r%   r&   rm  A
  s   rm  c                   @   s&   e Zd Zdd„ Zdd„ Zd	dd„ZdS )
Ú
JustReaderc                 C   s
   || _ d S r    rn  rp  r%   r%   r&   r!   L
  s    zJustReader.__init__c                 C   s   | j  |¡S r    )ro  rý   )r#   rŽ   r%   r%   r&   rý   O
  s    zJustReader.readr   c                 C   s   | j  ||¡S r    )ro  rC   )r#   ÚoffÚwhencer%   r%   r&   rC   R
  s    zJustReader.seekN)r   )r-   r.   r/   r!   rý   rC   r%   r%   r%   r&   rq  K
  s   rq  c                  C   sT   t j d¡} tƒ }t|ƒ}t  || ¡ | ¡  | d¡ t|ƒ}tt  	|¡| ƒ d S )Nrj  r   )
rH   r«   r   rm  rˆ   rB   rC   rq  r   rI   rk  r%   r%   r&   Útest_ducktypingV
  s    
rt  c               	   C   s¶   t ƒ } tj| dd�}| d¡ | ¡  |  d¡ tdd��R}t|dƒ�}| |  ¡ ¡ W d   ƒ n1 sj0    Y  t	 
|¡}W d   ƒ n1 s’0    Y  |  ¡  t|g d¢ƒ d S )	Nr  rL  ó   1 2 3
r   r  rª   r½   rã   )r   rN  rN  r'   rG   rC   r   rÂ   rý   rH   rÿ   r   )r$   rx  rA   r¨   rL  r%   r%   r&   Útest_gzip_loadtxte
  s    

,(rv  c                  C   sV   t ƒ } tj| dd�}| d¡ | ¡  |  d¡ tj| dd�}tt |¡g d¢ƒ d S )Nr  rL  ru  r   rh   rã   )	r   rN  rN  r'   rG   rC   r   rH   rÿ   )r$   r¨   r%   r%   r&   Útest_gzip_loadtxt_from_stringz
  s    

rw  c                  C   sÞ   t ƒ } t d¡}t d¡}tj| ||d� |  d¡ t | ¡}td|v ƒ td|v ƒ td| ¡ v ƒ td| ¡ v ƒ | ¡ D ] \}}t|dv ƒ t	|j
dƒ q~tt| ¡ ƒdkƒ |D ]}t|dv ƒ q¸td| ¡ v ƒ d S )N)r2   r2   )rm   rp   r   rm   rp   rY   )r   rH   r  rŒ   rC   rI   r   ÚkeysÚitemsr   rU   rü  )r$   rm   rp   rë   r¨   rW   r%   r%   r&   Útest_npzfile_dict…
  s"    



rz  zPython lacks refcountsre   c                  C   s´   t ƒ } t | g d¢¡ |  d¡ tƒ � t | ¡ W d   ƒ n1 sF0    Y  |  d¡ ddg}tƒ �8 tjtdƒ|d�}t|tj	dg|d�ƒ W d   ƒ n1 s¦0    Y  d S )Nrã   r   )rW   Úu1rY   )r�   r{  rY   z0 1 2 3r[   )r  r=  )
r   rH   rŒ   rC   r   rI   rÿ   r   r   r]   )r¨   r�   rm   r%   r%   r&   Útest_load_refcount 
  s    
(
r|  )N)OrD   rÉ   rN  rN   r²   r6   r}   re  r  rƒ   Úpathlibr   Útempfiler   r   r   r   r;  Úmultiprocessingr   r   Úctypesr	   ÚnumpyrH   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Ó   rQ  r"  r@  rS  r#  r7   r9   r‡   r‹   rÔ   r<  rg  r=  rW  r\  rl  rm  rq  rt  rv  rw  rz  r„   r…   r|  r%   r%   r%   r&   Ú<module>   sŒ   @



k   #H    3E         4e
