o
    g                    @   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 e8y   dZ7Y nw zd dl9Z9dZ:W n e8y   dZ:Y nw d8ddZ;G dd dZ<G dd de<Z=G dd de<Z>G dd dZ?G dd dZ@G dd de@ZAG d d! d!ZBG d"d# d#e@ZCG d$d% d%ZDd&d' ZEG d(d) d)ZFG d*d+ d+ZGd,d- ZHd.d/ ZId0d1 ZJd2d3 ZKe	jLjMe, d4d5d6d7 ZNdS )9    N)Path)NamedTemporaryFile)BytesIOStringIO)datetime)ProcessValue)c_bool)ConverterErrorConversionWarningasbytes)assert_equal)assert_warnsassert_assert_raises_regexassert_raisesassert_allcloseassert_array_equaltemppathtempdirIS_PYPYHAS_REFCOUNTsuppress_warningsassert_no_gc_cyclesassert_no_warningsbreak_cycles)requires_memoryc                   @   s*   e Zd ZdZd
ddZdd Zdd Zd	S )TextIOzHelper IO class.

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

     c                 C      t | t| d S N)r   __init__r   selfs r&   U/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/numpy/lib/tests/test_io.pyr"   *      zTextIO.__init__c                 C   r    r!   )r   writer   r#   r&   r&   r'   r)   -   r(   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'   r9   A   s   
r9   c                   @   sj   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	j
ejdkdddd Zdd Zej	jdd ZdS )RoundtripTestc              	   O   s:  | di }| dddi}| dd}|rtdd}|j}nt }|}zX|}	||g|	R i | |  |d tjd	krIt|tsI|	  t
j|fi |}
|	| _|
| _W t|tsw|	  d
t v ryt|
t
jjjs{t|j dS dS dS dS t|ts|	  d
t v rt|
t
jjjst|j w w w w )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_kwdsallow_pickleTfile_on_diskF)deleter   win32arr_reloadedN)getr   namer   flushseeksysplatform
isinstanceclosenploadarrrB   localslibnpyioNpzFileosremove)r$   	save_funcargskwargsr<   r=   r?   target_file	load_filerM   rB   r&   r&   r'   	roundtripM   sD   





zRoundtripTest.roundtripc                 C   s   |  | | j |dd |  t| | j t|dd |jd dkrA|  t|dd   | j t|dd  dd d S d S )NT)r?   r      )rY   rK   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 )
NrZ      r4      y      ?      @y       @      @y      @      @y      @       @dtype)rK   arrayfloatr_   intcsinglecdoubler]   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 )NrZ   r`   r4   ra   )rK   rd   objectr_   r]   r&   r&   r'   test_array_object   s   
zRoundtripTest.test_array_objectc                 C   s   t g dt}| | d S )NrZ   r`   r4   ra   )rK   rd   rf   rY   r]   r&   r&   r'   test_1D   s   zRoundtripTest.test_1DrA   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 )	NrZ   g      @ra   g333333@T	mmap_moder)r?   r=   )rK   rd   rY   r[   r]   r&   r&   r'   	test_mmap   s   zRoundtripTest.test_mmapc                 C   s$   t jddgddgd}| | d S )NrZ   r`   r4   ra   xi4yrw   rb   )rK   rd   r_   r]   r&   r&   r'   test_record   s   zRoundtripTest.test_recordc                 C   sj   dd t dD }tjd|d}tjdd tdd	t | | W d    d S 1 s.w   Y  d S )
Nc                 S   s   g | ]
}d | d t fqS )%dd   re   r*   ir&   r&   r'   r+      s    z1RoundtripTest.test_format_2_0.<locals>.<listcomp>  i  rb   Trecordalwaysr   )rangerK   oneswarningscatch_warningsfilterwarningsUserWarningr_   )r$   dtr^   r&   r&   r'   test_format_2_0   s   "zRoundtripTest.test_format_2_0N)r/   r0   r1   rY   r_   ri   rk   rm   pytestmarkskipifrG   rH   rr   rz   slowr   r&   r&   r&   r'   r;   L   s    0

r;   c                   @      e Zd Zdd ZdS )TestSaveLoadc                 O   sb   t j| tjg|R i | t| jd | j t| jd j| jj t| jd jj	| jjj	 d S )Nr   )
r;   rY   rK   saver   rM   rB   rc   flagsfnc)r$   rU   rV   r&   r&   r'   rY      s   zTestSaveLoad.roundtripN)r/   r0   r1   rY   r&   r&   r&   r'   r          r   c                   @   sv   e Zd Zdd Zejje ddejjdd Z	dd Z
d	d
 Zdd Zdd Zdd Zejjdd Zdd ZdS )TestSavezLoadc              	   O   s   t j| tjg|R i | z=t| jD ] \}}| jd|  }t|| t|j|j t|j	j
|j	j
 qW | jjrJ| jj  t| jjj d S d S | jjr_| jj  t| jjj w w )Nzarr_%d)r;   rY   rK   savez	enumeraterM   rB   r   rc   r   r   fidrJ   rR   rS   rD   )r$   rU   rV   nrM   reloadedr&   r&   r'   rY      s   
zTestSavezLoad.roundtripzNeeds 64bit platformrn   c                 C   sr   d}t j|t jd}tddd}t j||d ~t |}|d }|  ~W d    d S 1 s2w   Y  d S )Nl     rb   numpy_test_big_arrays_.npz)prefixsuffixr^   r^   )rK   emptyuint8r   r   rL   rJ   )r$   Lr^   tmp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 )	NrZ   r`   r4   ra         ?       @       @      @      @            @      (@)rK   rd   re   complexrY   )r$   r^   br&   r&   r'   test_multiple_arrays   s   z"TestSavezLoad.test_multiple_arraysc                 C   sz   t ddgddggt}t ddgddggt}t }t j|||d	 |d
 t |}t||d  t||d  d S NrZ   r`   r4   ra   r   r   r   r   )file_afile_br   r   r   )	rK   rd   re   r   r   r   rF   rL   r   r$   r^   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   )rK   rd   re   r   r   r   rF   rL   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 r*t d S )Nc                 S   s   t dd9}tjdd}z	tj||d W n ty- } z| | W Y d }~nd }~ww W d    d S W d    d S 1 sAw   Y  d S )Nr   r   r   )rM   )r   rK   randomrandnr   OSErrorappend)
error_listr   rM   errr&   r&   r'   writer   s   "z9TestSavezLoad.test_savez_filename_clashes.<locals>.writerc                    s   g | ]
}t j fd qS )targetrU   )	threadingThread)r*   jerrorsr   r&   r'   r+     s    z=TestSavezLoad.test_savez_filename_clashes.<locals>.<listcomp>r4   )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f}t|d}tj|dd W d    n1 sw   Y  t|dd+}|d t|j  t|d	  t|j  |d t|j  W d    n1 sVw   Y  W d    d S W d    d S 1 snw   Y  d S )
Nr   r   wbLOVELY LOADdatarbi'  r   r   )r   openrK   r   rF   r   closedrL   )r$   r   fpr&   r&   r'   test_not_closing_opened_fid  s   

"z)TestSavezLoad.test_not_closing_opened_fidc                 C   s   t ddf}tj|dd t C}|t tddD ]0}z&z	t|d  W n ty; } zd| }t	|d }~ww W t
rCt  qt
rKt  w w W d    n1 sVw   Y  W d    d S W d    d S 1 snw   Y  d S )	Nr   r   r   r   rZ   i  r   z#Failed to load data from a file: %s)r   rK   r   r   filterResourceWarningr   rL   	Exceptionr   r   gccollect)r$   r   supr   emsgr&   r&   r'   test_closing_fid  s0   

"zTestSavezLoad.test_closing_fidc                 C   sh   d}t d|d"}tj|dd t|}|jj}|  t|j W d    d S 1 s-w   Y  d S )N&numpy_test_closing_zipfile_after_load_r   )r   r   place holderlab)	r   rK   r   rL   zipr   rJ   r   r   )r$   r   r   r   r   r&   r&   r'   test_closing_zipfile_after_load5  s   
"z-TestSavezLoad.test_closing_zipfile_after_loadN)r/   r0   r1   rY   r   r   r   IS_64BITr   r   r   r   r   r   r   	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 )NrZ   r`   r4   ra   z%.18er:   r    
rs   rt   r{      1 2
   3 4
)
rK   rd   re   r   savetxtrF   r   	readlinesr   rf   )r$   r^   r:   r   r&   r&   r'   ri   D  s   

zTestSaveTxt.test_arrayc                 C   sJ   t g dt}t }t j||dd |d | }t|g d d S )Nrl   r{   r   r   )s   1
s   2
s   3
s   4
)rK   rd   rf   r   r   rF   r   r   r$   r^   r   r.   r&   r&   r'   rm   T  s   
zTestSaveTxt.test_1Dc                 C   s@   t  }tttj|td tttj|tdgdggg d S )NrZ   r`   )r   r   
ValueErrorrK   r   rd   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 )Nrs   rt   ru   rx   rb   r{   r   r   r   r   rK   rd   r   r   rF   r   r   r$   r^   r   r&   r&   r'   test_structureda  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rZ   r`   r4   ra         ))foorw   )barrw   )bazrw   rb   r   r   r{   r   r   s   1 3
s   4 6
r   r   r&   r&   r'   test_structured_paddedh  s
   
z"TestSaveTxt.test_structured_paddedc                 C   sv   t jdg dd}|ddg }tdd}t|}t || t |}t|| W d    d S 1 s4w   Y  d S )NrZ   )ru   rx   )zf4rb   rv   r   .npyr   )rK   r   r   r   r   rL   r   )r$   r^   vpathr   r&   r&   r'   test_multifield_viewr  s   
"z TestSaveTxt.test_multifield_viewc                 C   sN   t ddgddgg}t }t j||ddd |d t| d	d
g d S )N      ?       @      @      @,r{   )	delimiterr:   r   s   1,2
s   3,4
r   r   r&   r&   r'   test_delimiter{  s
   
zTestSaveTxt.test_delimiterc                 C   s   t ddg}t }t j||ddgd |d t| ddg t }t j||d	d |d | }t|d
dg t }t j||d	dd |d | }t|d
dg t }ttt j||dd d S )Nrs   rt   z%02dz%3.1fr   r   s   01 2.0
s   03 4.0
z%02d : %3.1fs	   01 : 2.0
s	   03 : 4.0
r	  )r:   r
  c   )	rK   rd   r   r   rF   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 )Nrs   rt   rb   zTest header / footerz%1d)r:   headerr   z# z	
1 2
3 4
)r:   footerz
1 2
3 4
# r   z% )r:   r  commentsz1 2
3 4
)r:   r  r  )	r   rK   rd   rf   r   rF   r   readr   )r$   r   r^   test_header_footer
commentstrr&   r&   r'   r    s@   





zTestSaveTxt.test_header_footerc                 C   sZ   t   }tddg}t|| t|}t|| W d    d S 1 s&w   Y  d S )Nrs   rt   )r   rK   rd   r   loadtxtr   )r$   rD   r^   r   r&   r&   r'   test_file_roundtrip  s   
"zTestSaveTxt.test_file_roundtripc                 C   s   d}d}t j||ft jd}t j}t j}|d|  |d d < t }t j||dd |d | }t	|ddg t }t j||d| d |d | }t	|d	d	g t }t j||d
g| d |d | }t	|ddg d S )Nr`   rb                 ?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)

rK   zeros
complex128pir   r   r   rF   r   r   r$   ncolsnrowsr^   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 )Nr`   rb   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                   @   r   )z4TestSaveTxt.test_custom_writer.<locals>.CustomWriterc                 S   s   |  |d d S )N   
)extendsplit)r$   textr&   r&   r'   r)      r(   z:TestSaveTxt.test_custom_writer.<locals>.CustomWriter.writeN)r/   r0   r1   r)   r&   r&   r&   r'   CustomWriter  r   r&  rs   rt   )listrK   rd   r   r  r   )r$   r&  wr^   r   r&   r&   r'   test_custom_writer  s   
zTestSaveTxt.test_custom_writerc                 C   sf   d d}tj|gtjd}t }tjtj|d|dgdd W d    d S 1 s,w   Y  d S )N   ϖUTF-8rb   test.csv%sr:   encoding)	r7   rK   rd   unicode_r   r   rR   r  r   )r$   utf8r^   tmpdirr&   r&   r'   test_unicode	  s   
"zTestSaveTxt.test_unicodec                 C   s   d d}tj|gtjd}ddg}tr|d tr"|ddg t 4}|D ](}tj	t
j|d	| |d
gdd tjt
j|d	| dtjd}t|| q(W d    d S 1 s\w   Y  d S )Nr*  r+  rb   r   .gz.bz2.xz.lzmar,  r-  z	UTF-16-LEr.  r/  rc   )r7   rK   rd   r0  HAS_BZ2r   HAS_LZMAr#  r   r   rR   r  r   r  r   )r$   r1  r^   suffixesr2  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+  rb   r-  r.  r   r   )	r7   rK   rd   r0  r   r   rF   r   r  r$   r1  r^   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=  )	r7   rK   rd   r0  r   r   rF   r   r  r>  r&   r&   r'   test_unicode_stringstream*  s   

z%TestSaveTxt.test_unicode_stringstreamr:   %fs   %fiotypec                 C   s`   t dg}| }t j|||d |d |tu r%t| dd  d S t| dd  d S )Nr  r   r   z%f
s   %f
)rK   rd   r   rF   r   r   r  )r$   r:   rB  r^   r%   r&   r&   r'   test_unicode_and_bytes_fmt2  s   
z&TestSaveTxt.test_unicode_and_bytes_fmtrA   zfiles>4GB may not workrn   g   `A)
free_bytesc                 C   sb   dd }t t}t||fd}|  |  |jrtd|jdkr(t	d |jdks/J d S )Nc                 S   s   d| _ z2tjdd tdD td}t }tjtj	|d|d W d    W d S 1 s.w   Y  W d S  t
y@   d| _  w )	NFc                 S   s$   g | ]}t jt jd ddqS )2   r|   ra   )rK   r   randrandintr~   r&   r&   r'   r+   H  s
    zGTestSaveTxt.test_large_zip.<locals>.check_large_zip.<locals>.<listcomp>i 5 rb   ztest.npz)	test_dataT)valuerK   asarrayr   rj   r   r   rR   r  r   MemoryError)memoryerror_raisedrH  r2  r&   r&   r'   check_large_zipC  s    
&z3TestSaveTxt.test_large_zip.<locals>.check_large_zipr   z,Child process raised a MemoryError exceptionzCsubprocess got a SIGKILL, apparently free memory was not sufficientr   )
r   r	   r   r   r   rI  rK  exitcoder   xfail)r$   rM  rL  pr&   r&   r'   test_large_zip?  s   

zTestSaveTxt.test_large_zipN) r/   r0   r1   ri   rm   r   r   r   r  r  r  r  r  r   r!  r)  r3  r<  r?  r@  r   r   parametrizer   r   rC  r   rG   rH   r   r   rR  r&   r&   r&   r'   r   C  s2    
	"&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 ]k}d| d }|D ]`}t|dQ}||ddd	}	|	| W d    n1 s5w   Y  | j|dd
}
t|
| ||ddd
}	| |	}
W d    n1 s]w   Y  t|
| W d    n1 sqw   Y  qqd S )Nr   r`   r4   r   z
0 1 23 4 5r   wtz	UTF-32-LE)moder/  r/  rt)rK   arangereshaper   r)   loadfuncr   )r$   fopenr;  wantedlinesepsepr   r   rD   r   resr&   r&   r'   check_compressed`  s&   
zLoadTxtBase.check_compressedc                 C      |  tjd d S )N)r4  )rf  gzipr   r$   r&   r&   r'   test_compressed_gzipp  s   z LoadTxtBase.test_compressed_gzipz	Needs bz2rn   c                 C   rg  )N)r5  )rf  bz2r   ri  r&   r&   r'   test_compressed_bz2s     zLoadTxtBase.test_compressed_bz2z
Needs lzmac                 C   rg  )N)r6  r7  )rf  lzmar   ri  r&   r&   r'   test_compressed_lzmaw  rm  z LoadTxtBase.test_compressed_lzmac              	   C   s   t  4}t|d}|dd W d    n1 sw   Y  | j|dd}t|g d W d    d S 1 s:w   Y  d S )Nr   z0.
1.
2.UTF-16r\  )        r  r  )r   r   r)   encoder`  r   )r$   r  r   rv   r&   r&   r'   test_encoding{  s   "zLoadTxtBase.test_encodingc              	   C   s   d d}t 4}t|d}||d W d    n1 s!w   Y  | j|dtjd}t|| W d    d S 1 s?w   Y  d S )Ns   öüör+  r   rp  r8  )	r7   r   r   r)   rr  r`  rK   r0  r   )r$   nonasciir  r   rv   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rp  )rc   r/  )r`  r   rK   r0  r   rd   r7   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   
   |  dS )Nr+  r7   rv   r&   r&   r'   <lambda>     
 z4LoadTxtBase.test_converters_decode.<locals>.<lambda>)rc   
convertersr+  )	r   r)   rF   r`  rK   r0  rd   r7   r   r$   r   rv   r^   r&   r&   r'   test_converters_decode  s   



z"LoadTxtBase.test_converters_decodec              	   C   s   d d}t A}tj|ddd}|| W d    n1 s!w   Y  | j|tjddd idd}t|d	 g}t	|| W d    d S 1 sLw   Y  d S )
Nr*  r+  rZ  r\  r   c                 S   s   | d S )Nr   r&   r|  r&   r&   r'   r}    s    z6LoadTxtBase.test_converters_nodecode.<locals>.<lambda>)rc   r  r/  r   )
r7   r   ior   r)   r`  rK   r0  rd   r   )r$   r1  r  r   rv   r^   r&   r&   r'   test_converters_nodecode  s   


"z$LoadTxtBase.test_converters_nodecodeN)r/   r0   r1   rf  rj  r   r   r   r9  rl  r:  ro  rs  ru  ry  r  r  r&   r&   r&   r'   rT  _  s    

	
rT  c                   @   sf  e Zd ZeejZdd Zdd Zdd Z	dd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Z d5d6 Z!d7d8 Z"d9d: Z#d;d< Z$d=d> Z%d?d@ Z&dAdB Z'dCdD Z(e)j*j+e,- dEkdFdGdHdI Z.dJdK Z/dLdM Z0dNdO Z1dPdQ Z2dRS )STestLoadTxtc                 C   s   t jjj| _dt jj_d S NrZ   )rK   rO   rP   _loadtxt_chunksize
orig_chunkri  r&   r&   r'   setup  s   zTestLoadTxt.setupc                 C   s   | j tjj_d S r!   )r  rK   rO   rP   r  ri  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   rv   ry   rb   rs   rt   ru   rx   M 64.0 75.0
F 25.0 60.0genderageweightS1rw   r   namesformatsM      P@     R@F      9@      N@)r   r)   rF   rK   r  int32rd   r   )r$   r   rv   r^   dmydescriptorr   ry   r&   r&   r'   rz     s&   




zTestLoadTxt.test_recordc                 C   s   t  }|d |d tj|td}tddgddggt}t|| |d tj|td}tddgddggt}t|| d S )Nr  r   rb   rZ   r`   r4   ra   )	r   r)   rF   rK   r  rf   rd   r   re   r  r&   r&   r'   ri     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   rb   rl   1,2,3,4
r	  rc   r
  r   r)   rF   rK   r  rf   rd   r   r  r&   r&   r'   rm     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	  r4   c                 S      t | pdS Nrf   r%   r&   r&   r'   r}        z*TestLoadTxt.test_missing.<locals>.<lambda>rc   r
  r  rZ   r`   r4   r  r   r  r  r&   r&   r'   test_missing  s   



zTestLoadTxt.test_missingc                 C   s\   t  }|d |d tj|tdddd idd}td	d
gddggt}t|| d S )N1,2,3,,5
6,7,8,9,10
r   r	  r4   c                 S   r  r  r  r  r&   r&   r'   r}    r  z:TestLoadTxt.test_converters_with_usecols.<locals>.<lambda>rZ   r4   rc   r
  r  usecolsr`   r     	   r  r  r&   r&   r'   test_converters_with_usecols  s   



z(TestLoadTxt.test_converters_with_usecolsc                 C   J   t  }|d |d tj|tddd}tg dt}t|| d S )N# comment
1,2,3,5
r   r	  #rc   r
  r  rZ   r`   r4   r   r  r  r&   r&   r'   test_comments_unicode     


z!TestLoadTxt.test_comments_unicodec                 C   r  )Nr  r   r	     #r  r  r  r  r&   r&   r'   test_comments_byte  r  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  r  r&   r&   r'   test_comments_multiple  s   


z"TestLoadTxt.test_comments_multiplec                 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)   rF   rK   r  rf   rd   r   r   r   r  r&   r&   r'   test_comments_multi_chars  s   






z%TestLoadTxt.test_comments_multi_charsc                 C   s   t  }|d |d tj|tddd}t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	  rZ   )rc   r
  skiprowsr  r  r  r  r&   r&   r'   test_skiprows  s    






zTestLoadTxt.test_skiprowsc              	   C   sz  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  qG dd d}| }|d t j|t|d}t||d d df  |d t j|t|fd}t||d d df  d}t|}ddg}	ddg}
t j|dtt|	|
d}t|d ddg t|d ddg |d d}ttdt| t j||d ttdt| t j|d|dgd d S )NrZ   r`   r4   ra   r   rZ   rc   r  r   r4   ra   r   rs   c                   @   r   )z*TestLoadTxt.test_usecols.<locals>.CrazyIntc                 S   s   dS r  r&   ri  r&   r&   r'   	__index__N  s   z4TestLoadTxt.test_usecols.<locals>.CrazyInt.__index__N)r/   r0   r1   r  r&   r&   r&   r'   CrazyIntM  r   r  z<JOE 70.1 25.3
                BOB 60.5 27.9
                stidtempS4f8r   r`   r  rc      JOE   BOBL9@fffff;@      ?z^usecols must be.*%sr  )rK   rd   re   r   r   rF   r  r   rf   int8int16r  int64r   uint16uint32uint64r   r'  r   r   r   	TypeErrorr5   )r$   r^   r   rv   int_typeto_readr  	crazy_intr   r  dtypesrM   	bogus_idxr&   r&   r'   test_usecols/  sd   










zTestLoadTxt.test_usecolsc                 C   sj   t  }|d |d tdtfddtfdtfgfg}tj||dd}td	d
g|}t	|| d S )N1,2,3.0
4,5,6.0
r   rv   ry   r   r%   r	  r  rZ   )r`   r  ra   )r         @)
r   r)   rF   rK   rc   rf   re   r  rd   r   r$   r   r   rv   r^   r&   r&   r'   test_fancy_dtypet  s   

"zTestLoadTxt.test_fancy_dtypec                 C   h   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rD   r  rv   ry   blockrU  rb   aaaar         @r   r   r   rK   rc   re   rf   r  rd   r   r  r&   r&   r'   test_shaped_dtype}     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  rv   ry   r  )r`   r`   r4   rb   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 )Nstr1str2rb   )strrK   bytes_rd   r  r   )r$   r   r   r^   rv   r&   r&   r'   test_str_dtype  s   zTestLoadTxt.test_str_dtypec                 C   s   t  3}|jdd t }t|}t|jd tj|tjd}t|jd t|j	tjk W d    d S 1 s9w   Y  d S )Nloadtxt: Empty input file:messager   rb   )
r   r   r   rK   r  r   r\   r  r   rc   )r$   r   r   rv   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   
   t | dS N   r  r  r&   r&   r'   r}    r~  z3TestLoadTxt.test_unused_converter.<locals>.<lambda>r  r     *   rZ   c                 S   r   r  r  r  r&   r&   r'   r}    r~  !   B   )r   r-   rF   rK   r  r   )r$   r   r   r&   r&   r'   test_unused_converter  s   



z!TestLoadTxt.test_unused_converterc                 C   sr   d}dt fdtfg}dd }d|i}tjt|d||d}tjdtd	ddfd
tdddfg|d}t|| d S )N0 1; 2001-01-01
                   2; 2002-01-31 idxcodec                 S      t |  dS Nz%Y-%m-%dr9   stripr  r&   r&   r'   r}        z4TestLoadTxt.test_dtype_with_object.<locals>.<lambda>rZ   ;r
  rc   r    r`        rb   )rf   rj   rK   r  r   rd   r   r   r$   r   ndtypefuncr  testcontrolr&   r&   r'   test_dtype_with_object  s   z"TestLoadTxt.test_dtype_with_objectc                 C   @   d}t  }|d|  |d tj|tjd}t|| d S )N)l   +&|    l   -(|    %s %sr   rb   )r   r)   rF   rK   r  r  r   r$   tgtr   re  r&   r&   r'   test_uint64_type     
zTestLoadTxt.test_uint64_typec                 C   r  )N)l l    r  r   rb   )r   r)   rF   rK   r  r  r   r  r&   r&   r'   test_int64_type  r!  zTestLoadTxt.test_int64_typec                 C   s   t dddt j}t || ft}dttj|}t	 }|
| tt jfD ]}|d t j||d}t||d| d q,d S )	Nir  r   r   r   rb   r-  )err_msg)rK   logspaceastypefloat32hstackre   r   maphexr   r)   rF   r  r   )r$   r  inpr   r   re  r&   r&   r'   test_from_float_hex  s   

zTestLoadTxt.test_from_float_hexc                 C   F   t d}tjtdd t| W d   dS 1 sw   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 c!could not convert string to floatmatchNr   r   raisesr   rK   r  r   r&   r&   r'   6test_default_float_converter_no_default_hex_conversion     "zBTestLoadTxt.test_default_float_converter_no_default_hex_conversionc                 C   r,  )z
        Ensure that the exception message raised during failed floating point
        conversion is correct. Regression test related to gh-19598.
        zqrs tuvr-  r.  Nr0  r   r&   r&   r'   &test_default_float_converter_exception  r3  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 )NrZ   r  r   rb   )r   r   r)   rF   rK   r  r   r  r&   r&   r'   test_from_complex  s   
zTestLoadTxt.test_from_complexc                 C   s   t jdt jd}t j}t j}|d|  |d d < t }t j||dd |d | }|d |	dd}t
||k || |d t j|td}t|| d S )	Nr`   r`   rb   r  z%.16er   r   s   e+00-s   e00+-)rK   r  r  r  r   r   r   rF   r  replacer   r)   r  r   r   )r$   r^   r  r  r   txttxt_badre  r&   r&   r'   test_complex_misformatted  s   



z%TestLoadTxt.test_complex_misformattedc              	   C   s~   t  '}t|d}|d W d    n1 sw   Y  t|}W d    n1 s-w   Y  t|ddgddgg d S )Nr(  z
1 213 42rZ   r  r4   r  )r   r   r)   rK   r  r   )r$   rD   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   )rv   ry   r   comment)<i4r>  <f4|S8r  	r  )s   start s         r=  )r   r)   rF   rK   r  rd   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r^   r   r   )|S1r>  r?  r  Trc   unpackrF  r>  r?     M   Fr  #         R@      M@)r   rK   r  r   rc   r  r   rd   r$   r9  r   r^   r   r   r&   r&   r'   test_unpack_structured  s   
z"TestLoadTxt.test_unpack_structuredc                 C   s  t  }|d |d tttj|dd |d tttj|dd |d tj|tddd}t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dd t  }t
tj|ddjdk t
tj|ddjdk W d    d S 1 sw   Y  d S )Nz1,2,3
4,5,6r   r4   )ndminr  r	  rZ   )rc   r
  rP  r   r   z0,1,2r`   r  )r4   z0
1
2)r4   rZ   r  r  r   rZ   r  )r   r)   rF   r   r   rK   r  rf   rd   r   r   r\   r   r   )r$   r   rv   r^   r  r   r   r   r&   r&   r'   test_ndmin_keyword)  sL   












$zTestLoadTxt.test_ndmin_keywordc                 C   (   dd }t | }t|t d d S )Nc                  s   s    t dD ]} d|  V  qd S Nr  r{   )r   r   r&   r&   r'   countU  s   z0TestLoadTxt.test_generator_source.<locals>.countr  )rK   r  r   r^  r$   rV  re  r&   r&   r'   test_generator_sourceT  s   z!TestLoadTxt.test_generator_sourcec                 C   s.   t  }|d |d ttdtj| d S )Nz1 2 3
4 5 6
2 3r   3)r   r)   rF   r   r   rK   r  r   r&   r&   r'   test_bad_line\  s   

zTestLoadTxt.test_bad_linec                 C   sH   t  }|d |d tdtfddtfg}tj|d|d d d S )Nz100,foo,200
300,None,400r   rv   )r^   S10ry   r	  )r
  rc   r  )r   r)   rF   rK   rc   rf   r  )r$   r   r   r&   r&   r'   test_none_as_stringd  s
   

zTestLoadTxt.test_none_as_stringzANSI_X3.4-1968zWrong preferred encodingrn   c              	   C   s  d}| ddd }t q}t|d}|| W d    n1 s&w   Y  t|d}tj|dtjd}W d    n1 sDw   Y  t	|| t|d}tj|ddd}W d    n1 sfw   Y  g d	}t	|tj
|dd
 W d    d S 1 sw   Y  d S )Ns/   5,6,7,Õscarscar
15,2,3,hello
20,2,3,Õscar
r+  rW  r   r   r   r8  S)s   5,6,7,Õscarscars   15,2,3,hellos   20,2,3,Õscarrb   )r7   r8  
splitlinesr   r   r)   rK   r  r0  r   rd   )r$   butf8sutf8r  r   rv   r&   r&   r'   test_binary_loadl  s    
"zTestLoadTxt.test_binary_loadc                 C   r  )N1,2,3,5
4,5,7,8
2,1,4,5r   r	  rZ   rc   r
  max_rowsr  r  r  r&   r&   r'   test_max_rows~  r  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	  rZ   rc   r
  r  rd  r  comment
1,2,3,5
4,5,7,8
2,1,4,5r`   ra   r   r  r  r  r  r&   r&   r'   test_max_rows_with_skiprows  s    






z'TestLoadTxt.test_max_rows_with_skiprowsc                 C   s|   t  }|d |d tj|tddd}tg dg dgt}t|| tj|tdd}tg d	t}t|| d S )
Nrb  r   r	  r`   rc  r  rh  r  r`   rZ   ra   r   r  r  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 )
Nrg  r   r	  rZ   r   rf  r  rh  rj  r  r  r&   r&   r'   test_max_rows_larger  s   


z TestLoadTxt.test_max_rows_largerN)3r/   r0   r1   staticmethodrK   r  r`  r  r  rz   ri   rm   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r"  r+  r2  r4  r6  r;  r<  rC  rO  rR  rX  rZ  r\  r   r   r   localegetpreferredencodingra  re  ri  rk  rl  r&   r&   r&   r'   r    sX    
	
			E		
	

+
	r  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   V   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valS3z([0-9.]+)\s+(...)))ˡE?r   g%C?r   g-@quxrb   r   r)   rF   rK   float64	fromregexrd   r   r  r&   r&   r'   rz        


zTestfromregex.test_recordc                 C   rq  )N1312 foo
1534 bar
4444 quxr   rr  rs  z(\d+)\s+(...)))   r   )  r   )\  ry  rb   )r   r)   rF   rK   r  r|  rd   r   r  r&   r&   r'   test_record_2  r}  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 )Nr~  r   rr  z(\d+)\s+...))r  )r  )r  rb   rz  r  r&   r&   r'   test_record_3  s   

zTestfromregex.test_record_3	path_typec           
   	   C   s   d}t  f}||}t|d}|d| d  W d    n1 s#w   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    d S 1 snw   Y  d S )Nr*  r   s	   1.312 foos    
1.534 bar
4.444 quxrr  )rt  U4z(?u)([0-9.]+)\s+(\w+)r+  r\  rv  r   rw  rx  rb   z([0-9.]+)\s+(\w+))r   r   r)   rK   r{  r|  rd   r7   r   r  compileUNICODE)
r$   r  r1  str_pathr  r   r   rv   r^   regexpr&   r&   r'   test_record_unicode  s$   
"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)   123rr  r   rb   )r  r  r   rK   r{  rd   r|  r   )r$   r  r   r   r^   rv   r&   r&   r'   test_compiled_bytes  s   
z!Testfromregex.test_compiled_bytesc                 C   sX   t d}td}tjtdd tj||tjd W d    d S 1 s%w   Y  d S )Nr  r  zstructured datatyper.  rb   )	r  r  r   r   r1  r  rK   r|  r{  )r$   r  r   r&   r&   r'   test_bad_dtype_not_structured  s
   
"z+Testfromregex.test_bad_dtype_not_structuredN)r/   r0   r1   rz   r  r  r   r   rS  r  r   r  r  r  r&   r&   r&   r'   rp    s    

rp  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 ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdS )TestFromTxtc                 C   s   t d}tj|dtjfdtjfgd}tjddgddgd}t|| t d	}d
dd}tjddg|d}tj||d}t|| d S )Nr  rv   ry   rb   rs   rt   ru   rx   r  r  r  r  r  r  )r   rK   
genfromtxtr  rd   r   )r$   r   r  r  
descriptorr&   r&   r'   rz     s   

zTestFromTxt.test_recordc                 C   sz   t d}tjddgddggtd}tj|td}t|| |d tjddgddggtd}tj|td}t|| d S )Nr  rZ   r`   r4   ra   rb   r   )	r   rK   rd   rf   r  r   rF   re   r  )r$   r   r  r  r&   r&   r'   ri     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 )Nrl   r  rb   r  r	  r  )rK   rd   rf   r   r  r   r$   r  r   r  r&   r&   r'   rm     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
)rK   rd   rf   r   r  r   r  r&   r&   r'   test_comments  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_headerrZ   r  r  )rK   rd   rf   dictr   r  r   r  )r$   r  rV   r   r  r&   r&   r'   r  +  s   
zTestFromTxt.test_skiprowsc                 C   s   dd t ddD }|d |dd t dD  d|d	< td
dddd}tjtd|f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&   r~   r&   r&   r'   r+   9  r,   z0TestFromTxt.test_skip_footer.<locals>.<listcomp>rZ   r   zA, B, Cc                 S   s   g | ]	}d |||f qS )z%i,%3.1f,%03sr&   r~   r&   r&   r'   r+   ;  s    3   z99,99r5  r	  Tr   r  )r
  r  r  skip_footerr   c                 S   s"   g | ]}d | d | d | fqS )rA  r&   r~   r&   r&   r'   r+   ?  s   " )   c                 S      g | ]}|t fqS r&   r}   r*   _r&   r&   r'   r+   @  r,   ABCrb   )
r   r   r#  r  rK   r  r   r   rd   r   )r$   r   rV   r  ctrlr&   r&   r'   test_skip_footer8  s   
zTestFromTxt.test_skip_footerc              
   C   s<  t  }|t d}tttjt|dd tjt|ddd}t|t	ddgddgddgd	d	gg tjt|d
d}t|t	ddgddgddgd	d	gg d}tjt|ddd}t|t	ddgddgd	d	gddgg tjt|d
dd}t|t	ddgddgd	d	gg W d    d S 1 sw   Y  d S )Nz1 1
2 2
3 3
4 4
5  
6  
7  
rZ   )r  F)r  invalid_raiser  r  r  r  r4   z1 1
2  
3 3
4 4
5  
6 6
7 7
r  )
r   r   r   r   r   rK   r  r   r   rd   )r$   r   basestrr^   r&   r&   r'   test_skip_footer_with_invalidC  s,   

((
(
$"z)TestFromTxt.test_skip_footer_with_invalidc                 C   s   t d}tjdd"}tddtj tj|d dd}t|d jtju  W d    n1 s/w   Y  t	dd	gt	d
dgt	ddgd}t
|d |d  t
|d |d  t
|d |d  d S )Nz)gender age weight
M 64.0 75.0
F 25.0 60.0Tr   r   r   rc   r  r   rI  rJ  r  r  r  r  r  r  r  r  )r   r   r   r   rK   VisibleDeprecationWarningr  r   categoryrd   r   r$   r   r(  r  r  r&   r&   r'   test_header[  s   zTestFromTxt.test_headerc                 C   s   t d}tjdd!}tddtj tj|d d}t|d jtju  W d    n1 s.w   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 FalseTr   r   r   rb   r      As   BCD@      r  r  y      @      @y      @      @F)f0f1f2f3r   zf%i)r   r   r   r   rK   r  r  r   r  rd   r   rc   r  r   )r$   r   r(  r  r  r   r  r&   r&   r'   test_auto_dtypei  s    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
rb   rl   )r   r   r  r  r   rK   r  rd   r   r$   r   r  r  r&   r&   r'   test_auto_dtype_uniformy  s   z#TestFromTxt.test_auto_dtype_uniformc                 C   sZ   t d}tdtfddtfdtfgfg}tj||dd}tjdd	g|d
}t|| d S )Nr  rv   ry   r   r%   r	  r  r  r  rb   )r   rK   rc   rf   re   r  rd   r   r$   r   
fancydtyper  r  r&   r&   r'   r    s
   "zTestFromTxt.test_fancy_dtypec                 C   sN   ddd}t d}d}tj|||d}||d< tjdd	g|d
}t|| d S )N)gr^   r(  r  r  s   M 64.0 75.0
F 25.0 60.0r  r  r  r  r  rb   r  )r$   r  r   r  r  r  r&   r&   r'   test_names_overwrite  s   z TestFromTxt.test_names_overwritec                 C   s  t d}tjdd"}tddtj tj|dd d}t|d jtju  W d    n1 s/w   Y  tj	g dd	d
t
fdtfgd}t|| t d}tjdd"}tddtj tj|dd d}t|d jtju  W d    n1 sxw   Y  t|| d S )NzN
#gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        Tr   r   r   )r  rc   r   ))r  r  gfffffR@)r  rK  g
ףp=*M@)r  r  g=
ףp5@)r  rF  r  r  rb   sO   
# gender age weight
M   21  72.100000
F   35  58.330000
M   33  21.99
        r   r   r   r   rK   r  r  r   r  rd   rf   re   r   )r$   r   r(  r  r  r&   r&   r'   test_commented_header  s"   

z!TestFromTxt.test_commented_headerc                 C   sJ   t d}tj|ttfd dd}tjddgdtfdtfgd}t|| d S )	Nzcol1 col2
 1 2
 3 4T)rc   r  r  rs   rt   col1col2rb   r   rK   r  rf   rd   r   r  r&   r&   r'   test_names_and_comments_none  s   z(TestFromTxt.test_names_and_comments_nonec              
   C   s   t  d}tj|d}t|d}|dd W d    n1 s#w   Y  t $ t	t
 tj|dd W d    n1 sCw   Y  W d    n1 sRw   Y  W d    d S W d    d S 1 sjw   Y  d S )Nr,  r      ϖr1  asciir\  )r   rR   r  r   r   r)   rr  r   r   r1  UnicodeDecodeErrorrK   r  )r$   r2  fpathr   r&   r&   r'   test_file_is_closed_on_error  s   "z(TestFromTxt.test_file_is_closed_on_errorc                 C   s   t d}tjdd#}tddtj tj|ddd d}t|d jtju  W d    n1 s0w   Y  tj	d	d
dt
fdtfgd}t|| d S )NA B C D
 aaaa 121 45 9.1Tr   r   r   ACD)r  r  rc   r   )r  -   333333"@r  |S4r  r  rb   r  r  r&   r&   r'   test_autonames_and_usecols  s   z&TestFromTxt.test_autonames_and_usecolsc                 C   sJ   t d}tj|tdddd idd}tdd	gd
dggt}t|| d S )Nr  r	  r4   c                 S   r  r  r  r  r&   r&   r'   r}    r  z:TestFromTxt.test_converters_with_usecols.<locals>.<lambda>r  r  r`   r  r  r  r  r  r&   r&   r'   r    s   

z(TestFromTxt.test_converters_with_usecolsc              	   C   s   t d}tjdd(}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 s5w   Y  tj	dddt
fdtfgd}t|| d S )Nr  Tr   r   r   r  r  c                 S   s   dt |  S )Nr`   r  r  r&   r&   r'   r}    r  zDTestFromTxt.test_converters_with_usecols_and_names.<locals>.<lambda>)r  r  rc   r  r   )r  Z   r  r  r  rb   r  r  r&   r&   r'   &test_converters_with_usecols_and_names  s   

z2TestFromTxt.test_converters_with_usecols_and_namesc                 C   sb   ddd i}t d}tj|dd ddg|d}tjtdd	d
dfdtjfdtfgd}t|| d S )Ndatec                 S   r   Nz%Y-%m-%d %H:%M:%SZ)r9   r  r&   r&   r'   r}    r~  z9TestFromTxt.test_converters_cornercases.<locals>.<lambda>2009-02-03 12:00:00Z, 72214.0r	  r  r
  rc   r  r    r`   r4       `@rb   )r   rK   r  rd   r   object_re   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  )rK   
datetime64r9   r  r&   r&   r'   r}        z:TestFromTxt.test_converters_cornercases2.<locals>.<lambda>r  r	  r  r  r  r`   r4   r  )r  zdatetime64[us]rb   )r   rK   r  rd   r   re   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   r   r  r  r  r&   r&   r'   r}    r~  z3TestFromTxt.test_unused_converter.<locals>.<lambda>r  r  r  rZ   c                 S   r   r  r  r  r&   r&   r'   r}    r~  r  r  )r   rK   r  r   rF   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   4   t d|  v r|  d pd|  vr|  pdS )N   rr5  rq  re   lowerr$  r  r|  r&   r&   r'   r}  
      z4TestFromTxt.test_invalid_converter.<locals>.<lambda>c                 S   r  )N   %r   rq  r  r|  r&   r&   r'   r}    r  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.55rU  r	  )r  r
  rc   )r   r  r   r
   rK   r  )r$   
strip_rand	strip_perr%   rV   r&   r&   r'   test_invalid_converter	  s   
z"TestFromTxt.test_invalid_converterc                 C   sH   t d}dd }tj|dd|id}tddgd	d
gg}t|| d S )Nz	q1,2
q3,4c                 S   s   t | dd  S r  r}   r  r&   r&   r'   r}    r  z;TestFromTxt.test_tricky_converter_bug1666.<locals>.<lambda>r	  r   )r
  r  r  r  r  r  r  )r$   r%   cnvr  r  r&   r&   r'   test_tricky_converter_bug1666  s
   z)TestFromTxt.test_tricky_converter_bug1666c                 C   s|   d}t jt|dtdtid}t jdgddtfdtfgd	}t|| t jt|dtdtid}t g d
}t|| d S )Nz2009; 23; 46r  r   r  )2009      7@.   )r  r  r  r  rb   )g     d@r  r  )rK   r  r   re   r6   rd   r   )r$   dstrr  r  r&   r&   r'   test_dtype_with_converters  s   




z&TestFromTxt.test_dtype_with_convertersc                    s   d}ddddd 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   rZ   r`   r4   )z1:1z1:nzm:1zm:n)e1rw   e2rw   )e3i2r   i1c                    s    |    S r!   r{  )rq   dmapr&   r'   r}  .  r  zDTestFromTxt.test_dtype_with_converters_and_usecols.<locals>.<lambda>)r   rZ   r`   r4   r	  )rc   r
  r  r  ))rZ   r   r5  r   )r`   r  r5  rZ   )r4   r4   r4   rb   )r  r  r  )r   rZ   r4   )rc   r
  r  r  r  ))rZ   r   r   )r`   r  rZ   )r4   r4   r4   )rf   rK   
recfromcsvr   recrd   r   )r$   r  dtypconvr  r  r&   r  r'   &test_dtype_with_converters_and_usecols*  s   
z2TestFromTxt.test_dtype_with_converters_and_usecolsc                 C   s   d}dt fdtfg}dd }d|i}tjt|d||d}tjdtd	ddfd
tdddfg|d}t|| ddt fdtfgfg}tt	d tjt|d||d}W d    n1 s]w   Y  dt fdtfdg fg}tt	d tjt|d||d}W d    d S 1 sw   Y  d S )Nr	  r
  r  c                 S   r  r  r  r  r&   r&   r'   r}  >  r  z4TestFromTxt.test_dtype_with_object.<locals>.<lambda>rZ   r  r  r  r`   r  r  rb   nestzNested fields.* not supported.*)
rf   rj   rK   r  r   rd   r   r   r   NotImplementedErrorr  r&   r&   r'   r  9  s8   
"z"TestFromTxt.test_dtype_with_objectc                 C   sH   t jtdtd}|d dksJ t jtdtd}|d dks"J d S )N1rb   r&      1strings   string)rK   r  r   rj   )r$   parsedr&   r&   r'   #test_dtype_with_object_no_converterT  s   z/TestFromTxt.test_dtype_with_object_no_converterc                 C   sH   t d}tj|dd tddtid}tjdgddtfgd	}t|| d S )
Nzskip,skip,2001-01-01,1.0,skipr	  rU  r`   )r
  r  rc   r  r  )
2001-01-01r  )r   |S10r   rb   )r   rK   r  re   r6   rd   r   r  r&   r&   r'   'test_userconverters_with_explicit_dtype[  s   
z3TestFromTxt.test_userconverters_with_explicit_dtypec              
   C   s   d}t  6}t|d}|d| d  W d    n1 sw   Y  tj|dd tddtjjidd	}W d    n1 s>w   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	  rU  r`   r+  )r
  r  rc   r  r  r/  r  r  )r   z|U11r   rb   )r   r   r)   rK   r  re   compatunicoderd   r7   r   )r$   r1  r  r   r  r  r&   r&   r'   ,test_utf8_userconverters_with_explicit_dtyped  s   
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  g      @r        "@g      $@r  r  r&   r&   r'   test_spacedelimiterp  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  4r4   )r
  r   )ra   r   C   )iz  {   ra   rK   r  r   rd   r   r  r&   r&   r'   test_integer_delimiterx  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	  r4   c                 S   r  r  r  r  r&   r&   r'   r}    r  z*TestFromTxt.test_missing.<locals>.<lambda>r  r  r  r  r&   r&   r'   r    s   

zTestFromTxt.test_missingc                 C   sh   d}t jt|ddd}t dt jdt jfdt jdfg}t jg d	td
}t|j| t|j| d S )Nz1	2	3
	2	
1		3rA  T)r
  usemaskr   r`   rZ   r4   )r   r   r   rZ   r   rZ   r   rZ   r   rb   )	rK   r  r   rd   nanboolr   r   mask)r$   r9  r  ctrl_d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 )NrZ   r`   r4   ra   r   r  r  r   r  rs   )rK   rd   re   r   r   rF   r  r   r  r&   r&   r'   r    s   


zTestFromTxt.test_usecolsc                 C   sB   d}t jt|ddd}t jddgdd d	D d
}t|| d S )N1 2 3
4 5 6a, b, cza, c)r  r  r  ra   r   c                 S   r  r&   r}   r  r&   r&   r'   r+     r,   z3TestFromTxt.test_usecols_as_css.<locals>.<listcomp>acrb   r  r$   r   r  r  r&   r&   r'   test_usecols_as_css  s   
zTestFromTxt.test_usecols_as_cssc                 C   sZ   t d}ddg}ddg}tj|dtt||d}t|d dd	g t|d d
dg d S )NzJOE 70.1 25.3
BOB 60.5 27.9r  r  r  r  r  r  r  r  r  r  )r   rK   r  r'  r   r   )r$   r   r  r  r  r&   r&   r'   "test_usecols_with_structured_dtype  s   z.TestFromTxt.test_usecols_with_structured_dtypec                 C   s*   t jtddd}t|t ddg d S )Ns   1 2 3
4 5 6r   r  r  r  )rK   r  r   r   rd   )r$   r  r&   r&   r'   test_usecols_with_integer  s   z%TestFromTxt.test_usecols_with_integerc                 C   sx   t jddgdtfdtfgd}d}tdd}t jt|fd	d
i|}t|| t jt|fd	di|}t|| d S )Nr  r  r^   r   rb   r  r  )r  r  r   r5  )r^   r   )rK   rd   re   r  r  r   r   )r$   r  r   rV   r  r&   r&   r'   test_usecols_with_named_columns  s   

z+TestFromTxt.test_usecols_with_named_columnsc                 C   sv   t  .}|jdd t }t|}t|tg  tj|dd}t|tg  W d    d S 1 s4w   Y  d S )Nzgenfromtxt: Empty input file:r  rZ   )r  )r   r   r   rK   r  r   rd   )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  rv   ry   r   r%   r	  T)rc   r
  r  r  r  rb   )	r   rK   rc   rf   re   r  mard   r   r  r&   r&   r'   test_fancy_dtype_alt  s
   "z TestFromTxt.test_fancy_dtype_altc                 C   r  r  )r   rK   rc   re   rf   r  rd   r   r  r&   r&   r'   r    r  zTestFromTxt.test_shaped_dtypec                 C   s   t d}tdddd}tj|fd dd|}tjddgd	d
gdtfdtfgd}t|| t|j|j |	d tj|fddi|}tjddgd	d
gdt
fdt
fgd}t|| t|j|j d S )NA,B
0,1
2,N/Ar	  N/ATr
  missing_valuesr  rc   r  rQ  r`   r5  FFFTr  Br  rc   r   r  )r   r  rK   r  r#  rd   rf   r   r  rF   re   r$   r   rV   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)rc   r
  r  r  r-  r  r(  r&  ))r   rq  y                )rZ   r  r  )rN  g@            8)r4   y              @)r  r  )r   r   rZ   r  r.  rc   rN  r2  r1  r   rZ   r`   )r(  r  )r  r  r  r  )r   r-  r  )
r  rf   re   r   rK   r  r   r#  rd   r   )r$   r   
basekwargs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   r4   )ra   r  r^   r   rb   zN/A, 2, 3
4, ,???r	  za,b,cr&  r   z???)r   r   r`   r   r  )r
  rc   r  r(  filling_values)r   r`   r4   )ra   r   r  c                 S   r  r&   r  r  r&   r&   r'   r+   !  r,   z8TestFromTxt.test_user_filling_values.<locals>.<listcomp>abcr  r!  c                 S   r  r&   r  r  r&   r&   r'   r+   %  r,   r  z1,2,*,4
5,*,7,8
*)r
  rc   r(  r7  )rZ   r`   r   ra   )r   r   r  r  r5  )rZ   r`   r5  ra   )r   r5  r  r  )rK   rd   rf   r  r  r   r   )r$   r  r   rV   r  data2r&   r&   r'   test_user_filling_values  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)rc   r
  r(  r  r  )r   r  )r`   g      r+  r,  r  r-  r.  )	r   rK   r  r#  rd   rf   re   r   r  r  r&   r&   r'   test_withmissing_float2  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rc   r(  r  r   r   r  )r  )r   rK   r  r#  rd   r   r  r&   r&   r'   test_with_masked_column_uniform<  s   &z+TestFromTxt.test_with_masked_column_uniformc                 C   sR   t d}tj|d ddd}tjddgddgdtfd	tfd
tfgd}t|| d S )NzTrue 2 3
False 5 6
r=  Tr>  r   )r   r   r   r  r  r  r  r.  )r   rK   r  r#  rd   r  rf   r   r  r&   r&   r'   test_with_masked_column_variousD  s   
z+TestFromTxt.test_with_masked_column_variousc                    s   dgd }t dD ]}d|d| < q	|dd td|td	d d
d  fdd}tt|}tt|d t|t	j
ddd dD d d ttt	jd	d
d d S )N1, 1, 1, 1, 1rE  r   2, 2, 2, 2 2r  r   a, b, c, d, er   r	  Tr
  rc   r  c                         t jfddi S )Nr  FrK   r  r&   rV   mdatar&   r'   r   W     z)TestFromTxt.test_invalid_raise.<locals>.fr  c                 S   r  r&   r  r  r&   r&   r'   r+   [  r,   z2TestFromTxt.test_invalid_raise.<locals>.<listcomp>abcderb   r
  r  )r   insertr   r   r  r   r   r   lenrK   r   rF   r   r   r  )r$   r   r   r   mtestr&   rG  r'   test_invalid_raiseN  s   




zTestFromTxt.test_invalid_raisec                    s   dgd }t dD ]}d|d| < q	|dd td|td	d d
dd  fdd}tt|}tt|d t|t	j
ddd dD d d t	jfddi }tt|d t	j
ddd dD d}d|dd t dD < t|| d S )NrA  rE  r   rB  r  r   rC  r   r	  TF)r
  rc   r  r  c                      rE  )Nr  )r   ra   rF  r&   rG  r&   r'   r   k  rI  z6TestFromTxt.test_invalid_raise_with_usecols.<locals>.fr  c                 S   r  r&   r  r  r&   r&   r'   r+   o  r,   z?TestFromTxt.test_invalid_raise_with_usecols.<locals>.<listcomp>aerb   r  rQ  c                 S   r  r&   r  r  r&   r&   r'   r+   t  r,   abr7  c                 S   s   g | ]}d | qS )r  r&   r  r&   r&   r'   r+   u  r,   )r   rL  r   r   r  r   r   r   rM  rK   r   rF   r  )r$   r   r   r   rN  r  r&   rG  r'   test_invalid_raise_with_usecolsa  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.1rE  r   ra   c                 S   s   d|    S )Nz(%s)r{  r|  r&   r&   r'   r}  }  r  z5TestFromTxt.test_inconsistent_dtype.<locals>.<lambda>r	  c                 S   r  r&   r  r  r&   r&   r'   r+     r,   z7TestFromTxt.test_inconsistent_dtype.<locals>.<listcomp>rJ  )r
  r  rc   )r   r   r  r   r   rK   r  )r$   r   rH  r  rV   r&   r&   r'   test_inconsistent_dtypex  s   
z#TestFromTxt.test_inconsistent_dtypec                 C   sL   d}t jt|dd dd}t jddgdtfdtfd	tfgd
}t|| d S )N0, 1, 2.3
4, 5, 6.7r	  f%02ir
  rc   
defaultfmtr   rZ   ffffff@)ra   r   @f00f01f02rb   )rK   r  r   rd   rf   re   r   r$   r   rN  r  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 )NrT  r	  rU  rV  rq  r  rY  r  r  rZ  rb   rK   r  r   re   rd   r   r^  r&   r&   r'   test_single_dtype_wo_names  s   
z&TestFromTxt.test_single_dtype_wo_namesc                 C   D   d}t jt|dtdd}t jddgdd d	D d
}t|| d S )NrT  r	  r  rD  r`  ra  c                 S   r  r&   r}   r  r&   r&   r'   r+     r,   zBTestFromTxt.test_single_dtype_w_explicit_names.<locals>.<listcomp>r8  rb   rb  r^  r&   r&   r'   "test_single_dtype_w_explicit_names     

z.TestFromTxt.test_single_dtype_w_explicit_namesc                 C   rd  )Nza, b, c
0, 1, 2.3
4, 5, 6.7r	  TrD  r`  ra  c                 S   r  r&   r}   r  r&   r&   r'   r+     r,   zBTestFromTxt.test_single_dtype_w_implicit_names.<locals>.<listcomp>r8  rb   rb  r^  r&   r&   r'   "test_single_dtype_w_implicit_names  rf  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 )NrT  r	  zf_%02irV  )r   r  rY  )ra   r  rZ  f_00f_01f_02rb   rK   r  r   rf   re   rd   r   r^  r&   r&   r'   test_easy_structured_dtype  s   

z&TestFromTxt.test_easy_structured_dtypec                 C   s,  d}t dd d}tjdd%}tddtj tjt|fi |}t|d j	tju  W d    n1 s6w   Y  tj
d	gd
dtfdgd}t|| tjdd'}tddtj tjt|fddi|}t|d j	tju  W d    n1 s}w   Y  tj
dgddtfdgd}t|| d S )Nz01/01/2003  , 1.3,   abcder	  )r
  rc   Tr   r   r   r   )z01/01/2003  ?z   abcde)r  z|S12r  )r  r@  rb   	autostrip)z
01/01/2003rm  rJ  )r  r  )r  z|S5)r  r   r   r   rK   r  r  r   r   r  rd   re   r   )r$   r   rV   r(  rN  r  r&   r&   r'   test_autostrip  s(   
zTestFromTxt.test_autostripc                 C   s   d}t jt|ddd d}dtfdtfdtfg}t jd|d	}t|| t jt|ddd d
d
d}dtfdtfdtfg}t jd|d	}t|| t jt|ddd d
d}dtfdtfdtfg}t jd|d	}t|| d S )NzA.A, B (B), C:C
1, 2, 3.14r	  Tr
  r  rc   AAB_BCC)rZ   r`   gQ	@rb   r   r
  r  rc   replace_spacedeletecharsA.AB (B)C:Cr
  r  rc   rv  B_(B)rk  r$   r9  r  
ctrl_dtyper  r&   r&   r'   test_replace_space  *   




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	  Trp  rq  rr  rs  r   rb   r   rt  rw  rx  ry  rz  r{  )rK   r  r   rf   rd   r   r|  r&   r&   r'   test_replace_space_known_dtype  r  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	  TrK  r3  r  c                 S   r  r&   r  r  r&   r&   r'   r+     r,   z5TestFromTxt.test_incomplete_names.<locals>.<listcomp>)r  r  r  rb   rc   c                 S   r  r&   r}   r  r&   r&   r'   r+     r,   )r  rK   rd   r  r   r   r$   r   rV   r  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 6r^   r  r   r   r  r  rb   rk  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   r`   ra   T)rc   r
  r  r  )rK   r  r   rf   r   rc   r  )r$   r   
ctrl_namesr  r&   r&   r'   test_names_with_usecols_bug1636  s"   




z+TestFromTxt.test_names_with_usecols_bug1636c                 C   s   d}t ddd d}tjddgdtfdtfd	tfgd
}tjt|fi |}t|| t ddd d}tjddgdtfdtfd	tfgd
}tjt|fi |}t|| d S )Nz-    A    B   C
    0    1 2.3
   45   67   9.)r   r   ra   Trp  rX  )r  r  r	  r  r-  r  rb   r   )r  rK   rd   rf   re   r  r   r   r  r&   r&   r'   test_fixed_width_names  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
  rc   r7  r   )rZ   r  r   )r   r   r  rb   )r  rK   rd   rf   r  r   r   r  r&   r&   r'   test_filling_values*  s
    zTestFromTxt.test_filling_valuesc                 C   s   t jdd%}t ddtj tjtdd d dd}t|d jtju  W d    n1 s.w   Y  t	|d	 d
 t jdd%}t ddtj tjtdd d dd}t|d jtju  W d    n1 shw   Y  t	|d	 d d S )NTr   r   r   ztest1,testNonetherestofthedatar	  rc   r  r
  r   rZ   s   testNonetherestofthedataztest1, testNonetherestofthedatas    testNonetherestofthedata)
r   r   r   rK   r  r  r   r   r  r   )r$   r(  r  r&   r&   r'   test_comments_is_none2  s    

z!TestFromTxt.test_comments_is_nonec                 C   s  d}d}d| d }|| | }t jdd%}t ddtj tjt|d d d	d
}t|d jtju  W d    n1 s>w   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'}t ddtj tjtd| d d d	d
}t|d jtju  W d    n1 sw   Y  t	|d d t	|d d|  d S )Ns      norm1,norm2,norm3
   test1,testNonethe   ,test3
Tr   r   r   r	  r  r   )rZ   r      test1)rZ   rZ      testNonethers      test3r3   rc   r  r
  r/  test1testNonethetest3   0,testNonether  r  )r   r   r   rK   r  r  r   r   r  r   r7   )r$   r3   normencr%   r(  r  r&   r&   r'   test_latin1A  s<   

zTestFromTxt.test_latin1c                 C   s6   d}| j t|d dd}t|t|d  d S rv  )r`  r   r   rK   rd   r7   r$  rw  r&   r&   r'   test_binary_decode_autodtype]  s   z(TestFromTxt.test_binary_decode_autodtypec                 C   s   d}d}d| d }|| | }t jdd%}t ddtj tjt|d d d	d
}t|d jtju  W d    n1 s>w   Y  t	g ddd| dgg dg}t
|| d S )Nr*  r  r  r  Tr   r   r   r	  r  r   )s   norm1s   norm2s   norm3r  r  r  )r   r   r   rK   r  r  r   r   r  rd   r   )r$   r1  r  r  r%   r(  r  ctlr&   r&   r'   test_utf8_byte_encodingb  s"   
z#TestFromTxt.test_utf8_byte_encodingc              	   C   s4  d}t  }t|d}|d| d d  W d    n1 s!w   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 sfw   Y  tj|d d ddd}t	|d d t	|d d
|d  W d    d S 1 sw   Y  d S )Nr*  r   r  r  r`   r	  r+  r  r  r  r  rb   r  r  r   r  )
r   r   r)   rK   r  rd   r7   r0  r   r   )r$   r1  r  r   r  r  r&   r&   r'   test_utf8_filer  s0   


"zTestFromTxt.test_utf8_filec           	   	   C   s\  d}d}zt  }|| W n ttfy   td Y nw t }t	|d}|
d |
d| d  |
d| d	  W d    n1 sLw   Y  tjd
d#}tddtj tj|d d dd}t|d jtju  W d    n1 s}w   Y  tjg dd|dgdd| dggtjd}t|| W d    d S 1 sw   Y  d S )Nr  u   öüözTSkipping test_utf8_file_nodtype_unicode, unable to encode utf8 in preferred encodingrZ  znorm1,norm2,norm3
znorm1,z,norm3
ztest1,testNonethez,test3
Tr   r   r   r	  r  r   )norm1norm2norm3r  r  r  r  r  rb   )rn  ro  rr  UnicodeErrorImportErrorr   skipr   r  r   r)   r   r   r   rK   r  r  r   r  rd   r0  r   )	r$   r1  r3   r/  r  r   r(  r  r  r&   r&   r'   test_utf8_file_nodtype_unicode  s@   

"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'  rQ  rU  r  r-  rb   r%  r)  r*  r+  r,  r.  r   r`   )r   r  rK   
recfromtxtrd   rf   r   rI   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 )Nr  r&  Tr(  r  case_sensitiverc   rQ  rU  r  r-  rb   r%  r)  r*  r+  r,  r.  r   r`   )r(  r^   r   )r(  rc   zcolor
"red"
"blue"c                 S   rz  )N   ")r  r|  r&   r&   r'   r}    r~  z-TestFromTxt.test_recfromcsv.<locals>.<lambda>)r  )red)bluecolorra   )r   r  rK   r  rd   rf   r   rI   r  r   r#  r  r  re   r6   rc   )r$   r   rV   r  r  rc   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 M}|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 sw   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
r4   )rd  rZ   r`   ra   r   r   r  r  r  r  r   z1 1
2 2
0 
3 3
4 4
5  
6  
7  
r  r  )r  rd  F)rd  r  r  r  z"a b
#c d
1 1
2 2
#0 
3 3
4 4
5  5
T)r  rd  r  ))r  r  )r  r  )r  r  )r   <f8)r  r  rb   )rd  rc   )r  r  )r  r  )r   rK   r  r   r   r   rd   r   r   r   rc   )r$   r   r9  a1a2r  r  r   r&   r&   r'   re    sH   


"
"


zTestFromTxt.test_max_rowsc              
   C   s   t dd}d}|D ]?}d| d }t '}t|d}|| W d    n1 s-w   Y  t |}W d    n1 sAw   Y  t|| qd S )Nr   rU  rV  rX  rY  r(  )rK   r^  r_  r   r   r)   r  r   )r$   r  rc  rd  r   rD   r   re  r&   r&   r'   test_gft_using_filename	  s   z#TestFromTxt.test_gft_using_filenamec           	   
   C   s   t dd}d}|D ]`}d| d }t }tj|dd}|t| W d    n1 s0w   Y  tdd	*}t	|d}|| W d    n1 sPw   Y  t
t || W d    n1 sgw   Y  qd S )
Nr   rU  rV  rX  rY  r(  fileobjr[  z.gz2r   )rK   r^  r_  r   rh  GzipFiler)   r   r   r   r   r  )	r$   rb  rc  rd  r   r%   r  rD   r   r&   r&   r'   test_gft_from_gzip*	  s    zTestFromTxt.test_gft_from_gzipc                 C   rS  )Nc                  s   s"    t dD ]	} td|  V  qd S rT  )r   r   rU  r&   r&   r'   rV  <	  s   z3TestFromTxt.test_gft_using_generator.<locals>.countr  )rK   r  r   r^  rW  r&   r&   r'   test_gft_using_generator:	  s   z$TestFromTxt.test_gft_using_generatorc                 C   s   t d}tj|d d}t|jjg d t|jd tk t|jd tjk t|jd tj	k t
|d d t|d d t|d d	 d S )
Nz%73786976294838206464 17179869184 1024rb   )r  r  r  r  r  r  g      Dl        i   )r   rK   r  r   rc   r  r   re   r  int_r   r  r&   r&   r'   test_auto_dtype_largeintC	  s   z$TestFromTxt.test_auto_dtype_largeintc                 C   s   t d}ddd}tj||dd\}}}t|jtd t|jtd t|jtd	 t|td
dg t|tddg t|tddg d S )NrD  rE  r  r  TrG  r  rw   r   rI  rJ  r  rK  rL  rM  )r   rK   r  r   rc   r   rd   rN  r&   r&   r'   rO  \	  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 q&d S )NzM 21 72.
F 35 58.r  r  r  rK  rL  rM  Tzutf-8)rc   rH  r/  )r   rK   rd   r  r   r   r   rc   )r$   r9  expectedr  rM   resultr&   r&   r'   test_unpack_auto_dtypei	  s   (
z"TestFromTxt.test_unpack_auto_dtypec                 C   sR   t d}ddd}tjddgtjd}tj||dd	}t|| t|j|j d S )
Nz21
35r   rw   r  r  rK  rb   TrG  )r   rK   rd   r  r  r   r   rc   r$   r9  r   r  r  r&   r&   r'   test_unpack_single_names	  s   

z#TestFromTxt.test_unpack_single_namec                 C   sZ   t d}ddd}tjdtjd}tj||dd}t|| td	|j t|j|j d S )
Nr  r   r  r  r  rb   TrG  r&   )	r   rK   rd   r  r  r   r   r\   rc   r  r&   r&   r'   test_squeeze_scalar}	  s   

zTestFromTxt.test_squeeze_scalarN)Wr/   r0   r1   rm  rK   r  r`  rz   ri   rm   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r   r"  r  r$  r  r0  r6  r;  r<  r?  r@  rO  rR  rS  r_  rc  re  rg  rl  ro  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  re  r  r  r  r  rO  r  r  r  r&   r&   r&   r'   r    s    
		

	 


					#)6	

r  c                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )TestPathUsagec                 C   sn   t dd(}t|}tddgddgg}t|| t|}t|| W d    d S 1 s0w   Y  d S )N.txtr   g?r`   r4   ra   )r   r   rK   rd   r   r  r   )r$   r  r^   rv   r&   r&   r'   test_loadtxt	  s   
"zTestPathUsage.test_loadtxtc                 C   sp   t dd)}t|}tddgddggt}t|| t|}t|| W d    d S 1 s1w   Y  d S )Nr  r   rZ   r`   r4   ra   )r   r   rK   rd   rf   r   rL   r   r$   r  r^   r   r&   r&   r'   test_save_load	  s   
"zTestPathUsage.test_save_loadc                 C   s   t dd<}t|}tddgddggt}t|| tj|dd}t|| ~tr9t	  t	  W d    d S W d    d S 1 sDw   Y  d S )	Nr  r   rZ   r`   r4   ra   rq   rp   )
r   r   rK   rd   rf   r   rL   r   r   r   r  r&   r&   r'   test_save_load_memmap	  s   
"z#TestPathUsage.test_save_load_memmapc                 C   s   t ddE}t|}tddgddggt}t|| tj|dd}d	|d
 d
< d	|d
 d
< ~tr8t  t  t|}t	|| W d    d S 1 sMw   Y  d S )Nr  r   rZ   r`   r4   ra   zr+r  r   r   )
r   r   rK   rd   rf   r   rL   r   r   r   )r$   r  r^   r   r   r&   r&   r'   test_save_load_memmap_readwrite	  s   
"z-TestPathUsage.test_save_load_memmap_readwritec              	   C   s   t dd8}t|}tj|dd t|}t|d d W d    n1 s(w   Y  W d    d S W d    d S 1 s@w   Y  d S Nr   r   r   r   r   )r   r   rK   r   rL   r   r$   r  r   r&   r&   r'   test_savez_load	  s   "zTestPathUsage.test_savez_loadc                 C   sf   t dd$}t|}tj|dd t|}t|d d |  W d    d S 1 s,w   Y  d S r  )r   r   rK   savez_compressedrL   r   rJ   r  r&   r&   r'   test_savez_compressed_load	  s   

"z(TestPathUsage.test_savez_compressed_loadc                 C   sf   t dd$}t|}tddg}t|| t|}t|| W d    d S 1 s,w   Y  d S )Nr  r   rs   rt   )r   r   rK   rd   r   r  r   r  r&   r&   r'   test_genfromtxt	  s   
"zTestPathUsage.test_genfromtxtc              	   C   s   t ddS}t|}|d}|d W d    n1 sw   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    d S 1 s[w   Y  d S )Nr  r   r(  r  r	  r&  Tr'  rQ  rU  r  r-  rb   )r   r   r   r)   r  rK   r  rd   rf   r   rI   r  r   r$   r  r   rV   r  r  r&   r&   r'   r  	  s   
"zTestPathUsage.test_recfromtxtc              	   C   s   t ddU}t|}|d}|d W d    n1 sw   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    d S 1 s]w   Y  d S )Nr  r   r(  r  r&  Tr  rc   rQ  rU  r  r-  rb   )r   r   r   r)   r  rK   r  rd   rf   r   rI   r  r   r  r&   r&   r'   r  	  s   
"zTestPathUsage.test_recfromcsvN)r/   r0   r1   r  r  r  r  r  r  r  r  r  r&   r&   r&   r'   r  	  s    		r  c                  C   s`   t jd} t }tj|dd}t ||  |  |d tj|dd}tt 	||  d S )Nr   r   r(  r  r   rq   )
rK   r   r   rh  r  r   rJ   rF   r   rL   r^   r%   r   r&   r&   r'   test_gzip_load	  s   
r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )
JustWriterc                 C   
   || _ d S r!   baser$   r  r&   r&   r'   r"    
     
zJustWriter.__init__c                 C      | j |S r!   )r  r)   r#   r&   r&   r'   r)   
     zJustWriter.writec                 C   s
   | j  S r!   )r  rE   ri  r&   r&   r'   rE   
  r  zJustWriter.flushN)r/   r0   r1   r"   r)   rE   r&   r&   r&   r'   r  	  s    r  c                   @   s&   e Zd Zdd Zdd Zd	ddZdS )

JustReaderc                 C   r  r!   r  r  r&   r&   r'   r"   

  r  zJustReader.__init__c                 C   r  r!   )r  r  )r$   r   r&   r&   r'   r  
  r  zJustReader.readr   c                 C   s   | j ||S r!   )r  rF   )r$   offwhencer&   r&   r'   rF   
  s   zJustReader.seekNr  )r/   r0   r1   r"   r  rF   r&   r&   r&   r'   r  	
  s    r  c                  C   sT   t jd} t }t|}t ||  |  |d t|}tt 	||  d S )Nr  r   )
rK   r   r   r  r   rE   rF   r  r   rL   r  r&   r&   r'   test_ducktyping
  s   
r  c               	   C   s   t  } tj| dd}|d |  | d tdd)}t|d}||   W d    n1 s5w   Y  t	
|}W d    n1 sIw   Y  |   t|g d d S )	Nr(  r     1 2 3
r   r4  r   r   r   )r   rh  r  r)   rJ   rF   r   r   r  rK   r  r   )r%   r  rD   r   re  r&   r&   r'   test_gzip_loadtxt#
  s   

r  c                  C   sV   t  } tj| dd}|d |  | d tj| dd}tt|g d d S )Nr(  r  r  r   rq   r   )	r   rh  r  r)   rJ   rF   r   rK   r  )r%   r   r&   r&   r'   test_gzip_loadtxt_from_string8
  s   

r  c                  C   s   t  } td}td}tj| ||d | d t| }td|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)r4   r4   )rv   ry   r   rv   ry   r`   )r   rK   r  r   rF   rL   r   keysitemsr   r\   rM  )r%   rv   ry   r   r   r^   r&   r&   r'   test_npzfile_dictC
  s"   



r  zPython lacks refcountsrn   c                  C   s   t  } t| g d | d t  t|  W d    n1 s#w   Y  | d ddg}t  tjtd|d}t|tj	dg|d W d    d S 1 sTw   Y  d S )Nr   r   )r^   u1r`   )r   r  r`   z0 1 2 3rb   )rQ  rU  )
r   rK   r   rF   r   rL   r  r   r   rd   )r   r   rv   r&   r&   r'   test_load_refcount^
  s   

"r  r!   )OrG   r   rh  rR   r   r8   r   r  r  r   pathlibr   tempfiler   r   r   r   rn  multiprocessingr   r   ctypesr	   numpyrK   numpy.mar#  numpy.lib._iotoolsr
   r   numpy.compatr   numpy.ma.testutilsr   numpy.testingr   r   r   r   r   r   r   r   r   r   r   r   r   r   numpy.testing._private.utilsr   r   maxsizer   rk  r9  r  rn  r:  r9   r;   r   r   r   rT  r  rp  r  r  r  r  r  r  r  r  r  r   r   r  r&   r&   r&   r'   <module>   s    @

k   H    E         e
