
    G/PhK                        d Z ddlZddl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mZ d Zej                            dg d	          d
             Zej        d             Zej                            dg d          d             Zd Zd Zd Zd Zd Zej                            dd          d             Zej                            dd          d             Zej                            dddg          d             Zej                            dg d          d             Z ej                            dd           d!             Z!d" Z"ej                            d#e#e$f          d$             Z%ej        &                    eoej'        j(        d%k    d&'          ej                            d# e
j)        d(           e
j)        d)          f          d*                         Z*d+ Z+d, Z,d- Z-d. Z.d/ Z/ej                            d0g d1          ej                            d2g d1          d3                         Z0d4 Z1d5 Z2d6 Z3d7 Z4ej                            d#d8          d9             Z5ej                            d:d; e
j)        d<          fd= e
j)        d>          fg          d?             Z6d@ Z7dA Z8ej        &                    eoej'        j(        d%k    d&'          ej                            d#e
j9        dB                   ej        :                    dC          dD                                     Z;ej        &                    eoej'        j(        d%k    d&'          ej                            d#e
j9        dB                   ej        :                    dC          dE                                     Z<ej                            d#e
j=        e
j>        f          ej                            dFdG          dH                         Z?dI Z@dJ ZAdK ZBej        &                    e dL'          dM             ZCej        &                    eoej'        j(        d%k    d&'          dN             ZDej                            dOde#gdPf          dQ             ZEej        &                    eoej'        j(        d%k    d&'          dR             ZFej                            dSdT          dU             ZGdV ZHej                            dWdX          dY             ZIej                            dWdX          dZ             ZJd[ ZKej        &                    eoej'        j(        d%k    d&'          d\             ZLd] ZMd^ ZNd_ ZOd` ZPda ZQej                            dbdc          ej                            ddde          ej                            dfddgg          dh                                     ZRej                            ddi          dj             ZSej                            d#dkgdldmdndodpdqdrdsdtdudv eTdw          fdxdy eTdz          fd{g          ej                            d|d}d~g          d                         ZUej                            d#e
j9        dB         dz   dz             d             ZVej                            d#d          d             ZWej        &                    eoej'        j(        d%k    d&'          ej                            d#d          ej                            dg d          d                                     ZXej        &                    eoej'        j(        d%k    d&'          ej                            d#e
j9        dB         dz   dz             d                         ZYej        &                    eoej'        j(        d%k    d&'          ej                            d#e
j9        dB         dz   dz             d                         ZZej                            dbddgddgg          d             Z[ej                            dbddgddgddgddgg          d             Z\ej                            dg d          d             Z]d Z^d Z_ G d d          Z`d Zad Zbd Zcd Zdej                            dd           d             Zeej                            dd          d             Zfej                            dddg          ej                            dd          d                         Zgd Zhej        &                    eoej'        j(        d%k    d&'          d             Zid Zjej        :                    d          d             Zkej                            dd          d             ZldS )z
Tests specific to `np.loadtxt` added during the move of loadtxt to be backed
by C code.
These tests complement those found in `test_io.py`.
    N)NamedTemporaryFilemkstemp)StringIO)assert_equal)assert_array_equalHAS_REFCOUNTIS_PYPYc                      t          d          } t          j        g dg dg dg dg          }t          t          j        | d          |           dS )	z0Test that both 'e' and 'E' are parsed correctly.zE1.0e-1,2.0E1,3.0
4.0e-2,5.0E-1,6.0
7.0e-3,8.0E1,9.0
0.0e-4,1.0E-1,2.0)皙?g      4@      @)g{Gz?      ?   )gy&1|?g      T@	   )r   r      ,	delimiterN)r   nparrayr   loadtxt)dataexpecteds     \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/lib/tests/test_loadtxt.pytest_scientific_notationr      sl      D x	...///;;;G H rz$#666AAAAA    comment)z..z//z@-zthis is a comment:c                     d}t          |                    d|                     }t          j        |d|           }t	          |ddgddgd	d
gg           d S )Nz,# IGNORE
1.5, 2.5# ABC
3.0,4.0# XXX
5.5,6.0
#r   r   comments      ?      @r         @      @      @)r   replacer   r   r   )r   contenttxtas       r   test_comment_multiple_charsr*   "   sa    @G
7??300
1
1C

3#888Ac3Z#sc3Z899999r   c                      t          d          } t          j        dt          j        fdt          j        fddt          j        fg          }t          j        g d|          }| ||fS )z|
    Fixture providing hetergeneous input data with a structured dtype, along
    with the associated structured array.
    zo1000;2.4;alpha;-34
2000;3.1;beta;29
3500;9.9;gamma;120
4090;8.1;delta;0
5001;4.4;epsilon;-99
6543;7.8;omega;-1
f0f1f2S7f3)i  g333333@alphai)i  g@beta   )i  g#@gammax   )i  g333333 @deltar   )i  g@epsiloni)i  g333333@omegadtype)r   r   r=   uint16float64int8r   )r   r=   r   s      r   mixed_types_structuredrA   *   s     "	 	D H
		T2:.tRWoN E x	
 	
 	
 
 
 
H   r   skiprows)r      r      c                 r    |\  }}}t          j        ||d|           }t          ||| d                     d S )N;)r=   r   rB   r   r   r   )rB   rA   r   r=   r   r)   s         r   1test_structured_dtype_and_skiprows_no_empty_linesrH   K   sG     3D%

4uhGGGAq(899-.....r   c                     | \  }}}t          j        ||dd          \  }}}}t          ||d                    t          ||d                    t          ||d                    t          ||d                    d S )NrF   T)r=   r   unpackr,   r-   r/   r1   rG   )rA   r   r=   r   r)   bcds           r   test_unpack_structuredrN   S   s    2D%DTJJJJAq!Qq(4.)))q(4.)))q(4.)))q(4.)))))r   c                      t          j        ddg          } t          d          }t          j        ddg|           }t	          t          j        |d|           |           d S )	N)r)   u1r   )rK   rP   r   z0,1,2,3
6,7,8,9
r   rC   r   rD   ))r      )   r   r<   r   r   r=   r   r=   r   r   r   r   r=   r   r   s      r    test_structured_dtype_with_shaperY   ]   sf    Hnn566E())Dx)+;<EJJJHrz$#UCCCXNNNNNr   c                      t          j        dg          } t          d          }t          j        dg|           }t	          t          j        ||           |           d S )N)r)   rP   )r   r   z0 1 2 3
)rQ   r<   rW   rX   s      r   &test_structured_dtype_with_multi_shaper[   d   s_    H)*++EK  Dx,-U;;;Hrz$e444h?????r   c                  6   t          j        dt          fdt          fg          } t          j        dt          fd| dfg          }t	          d          }t          j        ddd	gfd
ddgfg|          }t          t          j        ||d          |           d S )Nxycodepoints)r   z100,1,2,3,4
200,5,6,7,8
d   )      ?       @)r   r#      )      @r%   )g      @g       @r<   r   r=   r   )r   r=   floatintr   r   r   r   )pointdtr   r   s       r   test_nested_structured_subarrayrk   k   s    HsElS%L122E	FC=8UD"9:	;	;B011Dx8X&'8X&'	
   H rz$bC@@@(KKKKKr   c                      t          j        dd          } t          d          }t          j        ddg|           }t	          t          j        |d| 	          |           d S )
Nzi1, i4, i1, i4, i1, i4Talignz1,2,3,4,5,6
7,8,9,10,11,12
)rC   r   rD         r   )rT   rU   r   
         r<   r   rV   rW   )rj   r   r   s      r   test_structured_dtype_offsetsrt   z   sg    	*$	7	7	7B344Dx+-BC2NNNHrz$#R@@@(KKKKKr   param)rB   max_rowsc                     t          j        t          d          5  t          j        di | di ddd           dS # 1 swxY w Y   dS )z;skiprows and max_rows should raise for negative parameters.zargument must be nonnegativematchfoo.barNrz   pytestraises
ValueErrorr   r   ru   s    r   "test_exception_negative_row_limitsr      s     
z)G	H	H	H - -

,,,,,- - - - - - - - - - - - - - - - - -   =AAc                     t          j        t          d          5  t          j        di | di d d d            d S # 1 swxY w Y   d S )Nzargument must be an integerrx   rz   rb   r|   r~   r   	TypeErrorr   r   r   s    r   $test_exception_noninteger_row_limitsr      s    	y(E	F	F	F . .

-----. . . . . . . . . . . . . . . . . .r   zdata, shape)z
1 2 3 4 5
)rC   rp   )z
1
2
3
4
5
)rp   rC   c                    t          j        g d          }|                    |          }t          t          j        t          |           t                    |           t          t          j        t          |           t          d          |           t          t          j        t          |           t          d          |           t          t          j        t          |           t          d          |           d S )N)rC   r   rD   ro   rp   r<   r   )r=   ndminrC   r   )r   r   reshaper   r   r   rh   )r   shapearrarr2ds       r   test_ndmin_single_row_or_colr      s     (???
#
#CKKErz(4..<<<cBBBrz(4..1EEEsKKKrz(4..1EEEsKKKrz(4..1EEEuMMMMMr   badval)r;   rD   Nzplate of shrimpc                     t          j        t          d          5  t          j        d|            d d d            d S # 1 swxY w Y   d S )NzIllegal value of ndmin keywordrx   rz   )r   r}   )r   s    r   test_bad_ndminr      s    	z)I	J	J	J , ,

9F++++, , , , , , , , , , , , , , , , , ,s   A  AAws) 	u        u   　c                     t          d|  d|  d|  d|  d|  d          }t          j        g dg dg d	g d
g          }t          t          j        |t
          d d          |           d S )Nz1 2z30

z
4 5 60z
  z  
7 8 z 90
  # comment
3 2 1rC   r      ro   rp   <   rT   rU   Z   rD   r   rC   r   r=   r   r    r   r   r   r   r   rh   )r   r(   r   s      r   test_blank_lines_spaces_delimitr      s     	b 	 	 	 		 		 		 	 	 C xZZZYYYGHHH

3cTC@@@(    r   c                      t          d          } t          j        g dg dg dg dg          }t          t          j        | t
          dd          |           d S )	Nz&1,2,30

4,5,60

7,8,90
# comment
3,2,1r   r   r   r   r   r   r   r   )r(   r   s     r   !test_blank_lines_normal_delimiterr      sl    
A
B
BCxZZZYYYGHHH

3cS3???    r   r=   c                     t          d          }t          j        || dd          }t          |j        |            t          |t          j        ddgddgg| 	                     d S )
Nz1.5,2.5
3.0,4.0
5.5,6.0r   r   r=   r   rv   z1.5z2.5z3.0z4.0r<   )r   r   r   r   r=   r   r=   r(   ress      r   test_maxrows_no_blank_linesr      sl    
.
/
/C
*Sq
A
A
ACE"""bh?uMMMNNNNNr   )rT   rD   rU   zPyPy bug in error formatting)reasonf8i2c                     t          d          }d|  d}t          j        t          |          5  t	          j        || d           d d d            d S # 1 swxY w Y   d S )Nz1,2
3,XXX
5,6z"could not convert string 'XXX' to z at row 1, column 2rx   r   rf   r   r~   r   r   r   r   )r=   r(   msgs      r   !test_exception_message_bad_valuesr      s     $
%
%C
Iu
I
I
IC	z	-	-	- 4 4

3es33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   AAAc                      t          d          } dd i}t          j        ddgdt          j        gddgg          }t          j        | t          j        d	|
          }t          ||           d S )Nz1.5,2.5
3.0,XXX
5.5,6.0r;   c                 D    | dk    rt           j        nt          |           S NXXXr   nanrg   ss    r   <lambda>z2test_converters_negative_indices.<locals>.<lambda>       AJJ"&&E!HH r   r!   r"   r   r$   r%   r   r=   r   
converters)r   r   r   r   r   r?   r   r(   convr   r   s       r    test_converters_negative_indicesr      sr    
.
/
/C<<=Dx#sc26]S#J?@@H
*S
cd
K
K
KChr   c                  f   t          d          } dd i}t          j        ddgdt          j        gddgg          }t          j        | t          j        d	|d
dg          }t          ||           t          j        t          d          d	d
dgdd i          }t          |d
dgd
dgg           d S )Nz$1.5,2.5,3.5
3.0,4.0,XXX
5.5,6.0,7.5
r;   c                 D    | dk    rt           j        nt          |           S r   r   r   s    r   r   z?test_converters_negative_indices_with_usecols.<locals>.<lambda>   r   r   r!   g      @r   r$   g      @r   r   )r=   r   r   usecolsz0,1,2
0,1,2,3,4c                     dS )Nr;    )r]   s    r   r   z?test_converters_negative_indices_with_usecols.<locals>.<lambda>   s     r   )r   r   r   )r   r   r   r   r   r?   r   r   r   s       r   -test_converters_negative_indices_with_usecolsr      s    
<
=
=C<<=Dx#sc26]S#J?@@H
*jB  C h *X455W"||1EG G GCsaWq"g./////r   c                      g d} t          j        t          d          5  t          j        | d           d d d            d S # 1 swxY w Y   d S )N)1,2,3r   z4,3,2,1z2the number of columns changed from 3 to 4 at row 3rx   r   r   r}   )rowss    r   test_ragged_errorr      s    (((D	zF
H 
H 
H ( (

43''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   AAAc                     t          d          } t          j        ddgddgddgg          }t          j        | t          dddg          }t          ||           t          d          } t          j        t          d          5  t          j        | t          dddg           d d d            d S # 1 swxY w Y   d S )	N$0,0,XXX
0,XXX,0,XXX
0,XXX,XXX,0,XXX
r   r   r=   r   r   z0,0,XXX
0
0,XXX,XXX,0,XXX
z/invalid column index -2 at row 2 with 1 columnsrx   )	r   r   r   r   rg   r   r~   r   r   r(   r   r   s      r   test_ragged_usecolsr      s"   
<
=
=Cx!Q!Q!Q011H
*Sq"g
F
F
FCh
2
3
3C	zG
I 
I 
I E E 	
3esQGDDDDE E E E E E E E E E E E E E E E E Es    B33B7:B7c                      t          d          } t          j        | t          j        g           dg           }|j        dk    sJ |j        t          j        g           k    sJ d S )Nr   r   r   )rD   )r   r   r   r=   r   r(   r   s     r   test_empty_usecolsr   
  sd    
<
=
=C
*SR
H
H
HC99$$$$$$r   c1)r)   u   のu   🫕c2c                 T   t          d|  d| d          }t          j        |t          j        d          d          }t          j        d|  d                    d          d| d                    d          gt          j        d          	          }t          ||           d S )
Nza,z	,c,1.0
e,z,2.0,gU12r   rf   z,c,1.0ze,r<   )r   r   r   r=   r   splitr   )r   r   r(   r   r   s        r   test_large_unicode_charactersr     s     000b000
1
1C
*S3
?
?
?Cx	b		s	#	#_"___%:%:3%?%?@huoo  H hr   c                      t          d          } dd i}t          j        | t          j        d          |dd           }t          j        ddgd	d
gddgg          }t          ||           d S )Nu   cat,dog
αβγ,δεζ
abc,def
r   c                 *    |                                  S Nupperr   s    r   r   z-test_unicode_with_converter.<locals>.<lambda>   s     r   r   r   r=   r   r   encodingCATdogu   ΑΒΓu   δεζABCdef)r   r   r   r=   r   r   r(   r   r   r   s       r   test_unicode_with_converterr     s    
6
7
7C""#D
*huoo  C x%(H)=u~NOOHhr   c                     t          d          } t          j        dt          j        fdt          j        fdg          }d d d}t          j        | |d|	          }t          j        g d
|          }t          ||           d S )Nz$1.5,2.5,Abc
3.0,4.0,dEf
5.5,6.0,ghI
mr)r_   U8c                 @    t          dt          |           z            S )Nrq   )rh   rg   r   s    r   r   z6test_converter_with_structured_dtype.<locals>.<lambda>/  s    Ra[)) r   c                 *    |                                  S r   r   r   s    r   r   z6test_converter_with_structured_dtype.<locals>.<lambda>/  s     r   )r   r;   r   r   ))   r"   r   )r   r#   DEF)7   r%   GHIr<   )r   r   r=   int32float32r   r   r   )r(   rj   r   r   r   s        r   $test_converter_with_structured_dtyper   ,  s    
<
=
=C	C?S"*$5~F	G	GB))/B/BCCD
*Scd
C
C
CCx>>>b  H hr   c                      t          d          } t          j        }t          j        | t          j        d          |dd          }t          j        ddgdd	gg          }t          ||           d
S )aD  
    With the 'bytes' encoding, tokens are encoded prior to being
    passed to the converter. This means that the output of the converter may
    be bytes instead of unicode as expected by `read_rows`.

    This test checks that outputs from the above scenario are properly decoded
    prior to parsing by `read_rows`.
    zabc,def
rst,xyzU3r   bytesr   r   r   RSTXYZN)r   r   r   r   r   r=   r   r   r   s       r   !test_converter_with_unicode_dtyper   7  sw     %
&
&C;D
*rx~~$#  C x%%899Hhr   c                      ddz  } | d d         dz   } t          | dz            }t          j        |dt                    }t	          |t          j        dd	gd
                     d S )Nz	1.5, 2.5,P  r;   
r   r   rV   r!   r"   )r   r   )r   r   r   rg   r   tile)rowr(   r   s      r   test_read_huge_rowr   I  sj    

C
crc(T/C
37

C
*SCu
5
5
5CbgsCj*5566666r   edfgFDGc                     d}t          j        |           } t          j        |g|           d         }||                     d          k    sJ d S )Na  0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.123456789r<   r   z0.123456789)r   r=   r   type)r=   fieldvalues      r   test_huge_floatr  Q  sT     &EHUOOEJwe,,,R0EEJJ}--------r   )given_dtypeexpected_dtypeSS5UU5c                     t          d          }t          j        || d          }t          j        ddgddgdd	gg|
          }t	          ||           t	          |j        |           dS )z
    The given dtype is just 'S' or 'U' with no length. In these cases, the
    length of the resulting dtype is determined by the longest string found
    in the file.
    zAAA,5-1
BBBBB,0-3
C,4-9
r   rf   AAAz5-1BBBBBz0-3Cz4-9r<   N)r   r   r   r   r   r=   )r  r  r(   r   r   s        r   test_string_no_length_givenr  Z  s     0
1
1C
*Ss
;
;
;Cx
'5)C<8  H hN+++++r   c                      g d} t          d                    |                     }t          j        |          }t          j        d | D                       }t          ||           dS )z
    Some tests that the conversion to float64 works as accurately as the
    Python built-in `float` function. In a naive version of the float parser,
    these strings resulted in values that were off by an ULP or two.
    )z0.9999999999999999z9876543210.123456z5.43215432154321e+300z0.901z0.333r   c                 ,    g | ]}t          |          S r   )rg   ).0r   s     r   
<listcomp>z)test_float_conversion.<locals>.<listcomp>  s    333aq333r   N)r   joinr   r   r   r   )stringsr(   r   r   s       r   test_float_conversionr  p  so      G 499W%%
&
&C
*S//Cx33733344Hhr   c                     t          d          } t          j        | t          d          }|j        t          k    sJ t          |ddgddgg           t          |                    t          j                  ddgddgg           d S )Nz1, 0
10, -1r   rf   TFrC   r   )r   r   r   boolr=   r   viewuint8r   s     r   	test_boolr    s    
>
"
"C
*S
4
4
4C9sdE]T4L9:::sxx))QFQF+;<<<<<r   
AllIntegerz0error:.*integer via a float.*:DeprecationWarningc                    t          j        |           } t          j        dg|           dk    sJ | j        dk    rIt	          j        t                    5  t          j        dg|            d d d            n# 1 swxY w Y   nt          j        dg|           dk    sJ dD ]M}t	          j        t                    5  t          j        | d	g|            d d d            n# 1 swxY w Y   Nd S )
Nz+2r<   r   uz-1
z-2
r   )z++z+-z--z-+z2
)r   r=   r   kindr~   r   r   )r=   signs     r   test_integer_signsr    s}   
 HUOOE:tfE***a////zS]:&& 	. 	.Jxu----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. z6(%000B6666( 4 4]:&& 	4 	4J4~U3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	44 4s$   A::A>A> C''C+	.C+	c                     t          d          }t          j        t                    5  t	          j        || d           d d d            d S # 1 swxY w Y   d S )Nz1.0, 2.1, 3.7
4, 5, 6r   rf   r   )r=   r(   s     r   %test_implicit_cast_float_to_int_failsr!    s    
 +
,
,C	z	"	" 4 4

3es33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   AAAwith_parens)FTc                    d}|s*|                     dd                               dd          }t          j        t          |          | d          }t          j        g dg dg| 	          }t          ||           d S )
Nz*(1.0-2.5j),3.75,(7+-5.0j)
(4),(-19e2j),(0)( )r   rf   )y      ?      g      @y      @      )r#   y            r   r<   )r&   r   r   r   r   r   )r=   r"  r   r   r   s        r   test_complex_parsingr'    s     	6A 0IIc2&&sB//
*Xa[[
=
=
=Cx			!1!1!12%  H hr   c                      d } t          j         |             t          d          }t          j        g dg dg dg dg          }t	          ||           d S )Nc               3   R   K   t          d          D ]} |  dd| z   d| dz   V  d S )Nro   r   r   rangeis    r   genz%test_read_from_generator.<locals>.gen  sR      q 	& 	&A%%1%%q!t%%%%%%	& 	&r   r   rf   )r   r   r   )rC   r   rC   )r   ro   ro   )rD   r   r   )r   r   rh   r   r   r.  r   r   s      r   test_read_from_generatorr0    sm    & & & *SSUU#
5
5
5CxIIIyyy)))DEEHhr   c                      d } t          j         |             dd          }t          j        g dd          }t          ||           d S )Nc               3   F   K   t          d          D ]} |  d| dz   V  d S )NrD   r   ro   r*  r,  s    r   r.  z/test_read_from_generator_multitype.<locals>.gen  sB      q 	! 	!A..Q..    	! 	!r   zi, dr   rf   ))r   g        )rC   g      ?)r   r   r<   )r   r   r   r   r/  s      r   "test_read_from_generator_multityper3    s`    ! ! ! *SSUU&C
8
8
8Cx777vFFFHhr   c                      d } t          j        t          d          5  t          j         |             dd           d d d            d S # 1 swxY w Y   d S )Nc               3      K   g dE d {V  d S )N)z1,2s   3, 5i1  r   r   r   r   r.  z)test_read_from_bad_generator.<locals>.gen  s*      ************r   &non-string returned while reading datarx   zi, ir   rf   r   )r.  s    r   test_read_from_bad_generatorr7    s    + + + 
F
H 
H 
H 7 7

3355#66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s    AAAzPython lacks refcountsc                  0   t                      dfd} t          ddz            }t          j        t          d          5  t          j        |t           d| i           d d d            n# 1 swxY w Y   t          j                  dk    sJ d S )	Nr   c                 <    dk    rt          d          dz  S )Ni  zfailed half-way through!rC   )r   )r]   already_readsentinels    r   r   z/test_object_cleanup_on_read_error.<locals>.conv  s,    $7888r   zx
'  zat row 5000, column 1rx   r=   r   r   )	objectr   r~   r   r   r   r   sysgetrefcount)r   r(   r:  r;  s     @@r   !test_object_cleanup_on_read_errorrA    s    xxHL      55=
!
!C	z)@	A	A	A < <

3f!T;;;;< < < < < < < < < < < < < < < ?8$$))))))s   A11A58A5c                      t          d          } t          j        t                    5  t	          j        | d           ddd           dS # 1 swxY w Y   dS )z9Test exception when a character cannot be encoded as 'S'.u   –r  r<   Nr   )r   s    r   #test_character_not_bytes_compatiblerC    s     E??D	z	"	" % %

4t$$$$% % % % % % % % % % % % % % % % % %s   AAAr   r%  c                     d}t          j        t          |          5  t          j        t          d          |            d d d            d S # 1 swxY w Y   d S )Nz\converters must be a dictionary mapping columns to converter functions or a single callable.rx   1 2
3 4r   r~   r   r   r   r   r   )r   r   s     r   test_invalid_converterrH    s    	*  
y	,	,	, : :

8J''D9999: : : : : : : : : : : : : : : : : :s   $AAAc                  ~   t          j        t          d          5  t          j        t          d          dt          i           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          d          dt          id           d d d            d S # 1 swxY w Y   d S )Nzkeys of the converters dictrx   rE  r)   rF  r   )r   r   )r~   r   r   r   r   r   rh   r   r   r   +test_converters_dict_raises_non_integer_keyrJ    sR    
y(E	F	F	F @ @

8J''S#J????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @	y(E	F	F	F K K

8J''S#JJJJJK K K K K K K K K K K K K K K K K Ks#   +AAA9,B22B69B6bad_col_ind)rD   r{   c                     t          d          }t          j        t          d          5  t	          j        || t          i           d d d            d S # 1 swxY w Y   d S )NrE  zconverter specified for columnrx   rF  )r   r~   r   r   r   r   rh   )rK  r   s     r   'test_converters_dict_raises_non_col_keyrM    s    JD	z)I	J	J	J 8 8

4[#$677778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   AAAc                      t          j        t          d          5  t          j        t          d          ddi           d d d            d S # 1 swxY w Y   d S )Nz4values of the converters dictionary must be callablerx   rE  r   rC   rF  rG  r   r   r   ,test_converters_dict_raises_val_not_callablerO  
  s    	yL
N 
N 
N < <

8J''QF;;;;< < < < < < < < < < < < < < < < < <s   &AAAq)"'`c                    t          |  d|  d|  d|  d|  d|  d          }t          j        ddt          j        fg          }t          j        g d	|
          }t          j        ||d|           }t          ||           d S )Nalpha, xz, 2.5
beta, yz, 4.5
gamma, zz, 5.0
r,   r   r-   )rU  r"   )rV  g      @)rW  re   r<   r   r=   r   	quotecharr   r   r=   r?   r   r   r   rP  r(   r=   r   r   s        r   test_quoted_fieldr^    s    
IIaIIII!IIAIIqIII C HlT2:$6788Ex@@@  H *S
B
B
BCsH%%%%%r   c                    t          |  d|  d|  d|  d|  d|  d          }t          j        ddt          j        fg          }t          j        g d	|
          }t          j        ||d |           }t          ||           d S )NrU  z	     2.5
rV  z 4.5
rW  z   5.0
rX  r-   rY  r<   rZ  r\  r]  s        r   *test_quoted_field_with_whitepace_delimiterr`    s    
LLaLL1LLQLLaLLLLL C HlT2:$6788Ex@@@  H *S
C
C
CCsH%%%%%r   c                     t          d          } t          j        ddt          j        fdt          j        fg          }t	          j        t          d          5  t          j        | |d           d	d	d	           n# 1 swxY w Y   |                     d
           t          j	        dg|          }t          j        | |dd          }t          ||           d	S )z1Support for quoted fields is disabled by default.z"lat,long", 45, 30
)r,   U24r-   r/   z.the dtype passed requires 3 columns but 4 wererx   r   rf   Nr   )zlat,longg     F@g      >@r<   rQ  rZ  )r   r   r=   r?   r~   r   r   r   seekr   r   )r(   r=   r   r   s       r   test_quote_support_defaultrd  ,  s   
)
*
*CHmdBJ%7$
9KLMME	zB
D 
D 
D 4 4

3es33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 HHQKKKx/0>>>H
*S
D
D
DCsH%%%%%s   A>>BBc                      t          d          } d}t          j        t          |          5  t	          j        | dd           d d d            d S # 1 swxY w Y   d S )N1,2
3,4z,.*must be a single unicode character or Nonerx   r   z''r   r[  r   r~   r   r   r   r   )r(   r   s     r   test_quotechar_multichar_errorri  =  s     :

C
9C	y	,	,	, 7 7

3#66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   AAAc                     t          d          } d}t          j        t          |          5  t	          j        | ddd           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          j        | ddd	gd           d d d            n# 1 swxY w Y   t	          j        | dd
d          }t          |ddgddgg           d S )Nrf  zWwhen multiple comments or a multi-character comment is given, quotes are not supported.rx   r   123rQ  )r   r    r[  r   %)r   rR  rC   r   rD   ro   )r   r~   r   r   r   r   r   )r(   r   r   s      r   'test_comment_multichar_error_with_quoterm  F  s   
:

C	$  
z	-	-	- F F

3#EEEEF F F F F F F F F F F F F F F	z	-	-	- K K

3#c
cJJJJK K K K K K K K K K K K K K K *SC&C
H
H
HC1v1v&'''''s#   AAA8BB#&B#c                     t          d          } t          j        dt          j        fdt          j        fddt          j        fg          }t          j        g d|          }t          j        | |dd	
          }t          ||           d S )Nz{1000;2.4;'alpha';-34
2000;3.1;'beta';29
3500;9.9;'gamma';120
4090;8.1;'delta';0
5001;4.4;'epsilon';-99
6543;7.8;'omega';-1
r,   r-   r.   r1   r2   r<   rF   rR  rZ  )	r   r   r=   r>   r?   r@   r   r   r   )r   r=   r   r   s       r   !test_structured_dtype_with_quotesro  V  s    $	 	D H
		T2:.tRWoN E x	
 	
 	
 
 
 
H *T#
E
E
ECsH%%%%%r   c                      t          d          } t          j        g dd          }t          j        | ddd          }t	          ||           d S )Nz	1

"4"
""14r%  U1r<   r   rQ  r   r=   r[  r   r   r   r   r   r   s      r   test_quoted_field_is_not_emptyrw  s  sU    
>
"
"Cxd333H
*SCts
C
C
CChr   c                      t          d          } t          j        g dd          }t          j        | ddd          }t	          ||           d S )Nz1

"4"
"rq  rt  r<   r   rQ  ru  rv  r   s      r   (test_quoted_field_is_not_empty_nonstrictry  y  sW     =
!
!Cxd333H
*SCts
C
C
CChr   c                      t          d          } t          j        dd          }t          j        | ddd          }t	          ||           d S )Nz"Hello, my name is ""Monty""!"zHello, my name is "Monty"!U40r<   r   rQ  rZ  rv  r   s      r   "test_consecutive_quotechar_escapedr|    sS    
3
4
4Cx4EBBBH
*S
D
D
DChr   r   )r%  z


z# 1 2 3
# 4 5 6
r   )r   rC   r   r   rC   r   rD   c                 H   |d}n|dk    rd}nd}t          |           }t          j        t          d          5  t	          j        |||          }ddd           n# 1 swxY w Y   |j        |k    sJ t          d	
          5 }|                    |            |	                    d           t          j        t          d          5  t	          j        |||          }ddd           n# 1 swxY w Y   |j        |k    sJ 	 ddd           dS # 1 swxY w Y   dS )zDCheck that a UserWarning is emitted when no data is read from input.N)r   rD   r   rR   )r   input contained no datarx   )r   r   w)moder   )
r   r~   warnsUserWarningr   r   r   r   writerc  )r   r   r   expected_shaper(   r   fhs          r   test_warn_on_no_datar    s   
 	!
4..C	k)B	C	C	C < <jE7;;;< < < < < < < < < < < < < < <9&&&&		%	%	% +




\+-FGGG 	@ 	@*Sw???C	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@yN*****+ + + + + + + + + + + + + + + + + +sH   AA#&A#ADC1%D1C5	5D8C5	9DDDrS   c                     d}t          |          }t          j        t          d          5  t	          j        ||            d d d            d S # 1 swxY w Y   d S )Nz1 2 3
4 5 6r  rx   )rB   )r   r~   r  r  r   r   )rB   r   r(   s      r   test_warn_on_skipped_datar    s    D
4..C	k)B	C	C	C + +

3****+ + + + + + + + + + + + + + + + + +s   AAAr  )r   rC   )u2rC   )i4 )u4r  )i8   
 )u8r  )float16g#{ ?)r   g. 7)	complex64y. 7`F$:)r?   g
complex128ywfUD3":)
longdoubler  clongdoubleyp`P@0 B B)U2u   𐈃򠬌swapTFc                 @   t          j        |           } d| dg}|r|                                 } t          j        dd| fgd          }|j        d         d         dk    sJ t          j        ||dd	          }|d         |                     |          k    sJ d S )
Nzx,r   )r)   S1rK   Frm   rC   r   r   )r   r=   newbyteorderfieldsr   r   )r=   r  r  r   full_dtr   s         r   test_byteswapping_and_unalignedr    s    ( HUOOENNND %""$$hc5\2%@@@G>#q!Q&&&&
*TC! ! !Cs8uzz%((((((((r   efdFD?c                     t          d          }t          j        || dd          }t          |t          j        ddg                              |                      d S )Nu    3 ," 2
"r   rQ  rZ  rD   r   )r   r   r   r   r   astyper   s      r   !test_unicode_whitespace_strippingr    s\     $
%
%C
*S
D
D
DCsBHaV,,33E::;;;;;r   FDc                     d}||                     dd          g}t          j        || d          }t          |t          j        g dgdz                       d S )Nz0 1 , 2+3j , ( 4+5j ), ( 6+-7j )  , 8j , ( 9j ) 
r   u    r   rf   )rC   y       @      @y      @      @y      @      y               @y              "@r   )r&   r   r   r   r   )r=   liner   r   s       r   )test_unicode_whitespace_stripping_complexr    sf     ?D$,,sH--.D
*T#
6
6
6CsBH&C&C&C%Dq%HIIJJJJJr   r   )z1 +2jz1+ 2jz1+2 jz1+-+3z(1jz(1z(1+2jz1+2j)c                     t          j        t                    5  t          j        |dz   g| d           d d d            d S # 1 swxY w Y   d S )Nr   r   rf   r}   )r=   r   s     r   test_bad_complexr    s     
z	"	" ? ?

EDL>#>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s   AA
AefgdFDGc                     |                                  dk    rt          j        d           t          j        t                    5  t          j        dg| dd           d d d            d S # 1 swxY w Y   d S )Ngz0longdouble/clongdouble assignment may misbehave.1 r   rQ  rZ  )lowerr~   xfailr   r   r   r   r<   s    r   test_nul_character_errorr    s     {{}}GHHH	z	"	" I I

G9ESCHHHHI I I I I I I I I I I I I I I I I Is   A--A14A1c                 z   | dk    rt          j        d           | dv rt          j        d           t          d          t	          d          cxk    rt          d          cxk    rdk    sn J t          j        t                    5  t          j	        dg|            d d d            d S # 1 swxY w Y   d S )	Nez5half assignment currently uses Python float convertereGz2clongdouble assignment is buggy (uses `complex`?).1_1rr   z1_1
r<   )
r~   skipr  rh   rg   complexr   r   r   r   r<   s    r   test_no_thousands_supportr    s    ||KLLL}}IJJJu::u========2======	z	"	" + +

G9E****+ + + + + + + + + + + + + + + + + +s   B00B47B4z1,2
z2
,3
z2,3
c                     d}t          j        t          |          5  t          j        | d           d d d            d S # 1 swxY w Y   d S )Nz7Found an unquoted embedded newline within a single linerx   r   r   r}   )r   r   s     r   test_bad_newline_in_iteratorr    s     DC	z	-	-	- ( (

43''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   AA	Az2,3
z'2
',3
z'2',3
z'2
',3
c                 `    t          j        | dd          }t          |ddgddgg           d S )Nr   rR  rg  rb   rc   r   rG   )r   r   s     r   test_good_newline_in_iteratorr    s=     *TSC
8
8
8Csb"XBx011111r   newline)r   
c                      g d} fd|D             }t          j        |t          dd          }t          |dd  gdd	  dgg           d S )
N)z1,"2
"
z3,"4
z1"
c                 <    g | ]}|                     d           S )r   )r&   )r  r   r  s     r   r  z2test_universal_newlines_quoted.<locals>.<listcomp>%  s'    7773CKKg&&777r   r   rQ  rZ  rr  23rs  )r   r   r>  r   )r  r   r   s   `  r   test_universal_newlines_quotedr    st    
 +**D7777$777D
*T3#
F
F
FCsc=w==1CW3HIJJJJJr   c                      t          j        ddgd          } t          | g dg dg           t          j        ddgd	t          
          } |                                 g dg dgk    sJ d S )Nz1 2 3
z4 5 6 r   r}  )ro   rp   r   z1 ,2 ,3
z4 ,5 ,6r   rV   )r  z2 r  )z4 z5 6)r   r   r   r>  tolist)r   s    r   test_null_characterr  *  s    
*o}5
H
H
HCsYYY			2333 *'9"&2 2 2C::<<3335L5L5LMMMMMMMr   c                       G d d          } t          j        t          d          5  t          j         |             t
          d           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd Zd ZdS ):test_iterator_fails_getting_next_line.<locals>.BadSequencec                     dS )Nra   r   selfs    r   __len__zBtest_iterator_fails_getting_next_line.<locals>.BadSequence.__len__7  s    3r   c                 @    |dk    rt          d          | d|dz    S )N2   Bad things happened!z, rC   )RuntimeError)r  items     r   __getitem__zFtest_iterator_fails_getting_next_line.<locals>.BadSequence.__getitem__:  s2    rzz"#9:::&&d1f&&&r   N)__name__
__module____qualname__r  r  r   r   r   BadSequencer  6  s2        	 	 		' 	' 	' 	' 	'r   r  r  rx   r   rf   )r~   r   r  r   r   rh   )r  s    r   %test_iterator_fails_getting_next_liner  5  s    ' ' ' ' ' ' ' ' 
|+A	B	B	B < <

;;==s;;;;< < < < < < < < < < < < < < < < < <s   %AA"Ac                   ~    e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            dg d          d	             Zd
S )TestCReaderUnitTestsc                     t          j        t          d          5  t          j        j                            t                      t          j        d          d           d d d            d S # 1 swxY w Y   d S )Nz.*readrx   r-  Tr=   filelike)	r~   r   AttributeErrorr   _core_multiarray_umath_load_from_fileliker>  r=   r  s    r   test_not_an_filelikez)TestCReaderUnitTests.test_not_an_filelikeF  s    ]>::: 	> 	>H&:: ; > > >	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>   AA//A36A3c                 
    G d d          }t          j        t          d          5  t          j        j                             |            t          j        d          d           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZd ZdS )BTestCReaderUnitTests.test_filelike_read_fails.<locals>.BadFileLiker   c                 Z    | xj         dz  c_         | j         dk    rt          d          dS )NrC      Bad bad bad!z1,2,3
)counterr  r  sizes     r   readzGTestCReaderUnitTests.test_filelike_read_fails.<locals>.BadFileLike.readR  s2    !<"$$&~666 yr   Nr  r  r  r  r  r   r   r   BadFileLiker  O  s(        G! ! ! ! !r   r  r  rx   r-  Tr  )r~   r   r  r   r  r  r  r=   r  r  s     r   test_filelike_read_failsz-TestCReaderUnitTests.test_filelike_read_failsK  s    	! 	! 	! 	! 	! 	! 	! 	! ]<~>>> 	C 	CH&::RXc]]T ; C C C	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C   AA88A<?A<c                 
    G d d          }t          j        t          d          5  t          j        j                             |            t          j        d          d           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZd ZdS )@TestCReaderUnitTests.test_filelike_bad_read.<locals>.BadFileLiker   c                     dS )Ni  r   r  s     r   r  zETestCReaderUnitTests.test_filelike_bad_read.<locals>.BadFileLike.readd  s    tr   Nr  r   r   r   r  r  a  s(        G    r   r  r6  rx   r-  Tr  )r~   r   r   r   r  r  r  r=   r  s     r   test_filelike_bad_readz+TestCReaderUnitTests.test_filelike_bad_read\  s    
	 	 	 	 	 	 	 	 ]9BD D D 	C 	CH&::RXc]]T ; C C C	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cr  c                     t          j        t          d          5  t          j        j                            t                      t          j        d          d           d d d            d S # 1 swxY w Y   d S )Nz/error reading from object, expected an iterablerx   r-  Fr  	r~   r   r   r   r  r  r  r>  r=   r  s    r   test_not_an_iterz%TestCReaderUnitTests.test_not_an_iterl  s    ]9KM M M 	? 	?H&:: ; ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?r  c                     t          j        t          d          5  t          j        j                            t                      dd           d d d            d S # 1 swxY w Y   d S )Nzinternal error: dtype mustrx   r-  Fr  )r~   r   r   r   r  r  r  r>  r  s    r   test_bad_typez"TestCReaderUnitTests.test_bad_typer  s    ]9,HIII 	5 	5H&::e ; 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   4AA!$A!c                     t          j        t          d          5  t          j        j                            t                      t          j        d          dd           d d d            d S # 1 swxY w Y   d S )Nzencoding must be a unicoderx   r-  F{   )r=   r  r   r  r  s    r   test_bad_encodingz&TestCReaderUnitTests.test_bad_encodingw  s    ]9,HIII 	M 	MH&:: ; M M M	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms   AA00A47A4r  )r  r   r  c                 
   t          d                    d|          d          }t          j        j                            |t          j        d          dddd	
          }t          |d d df         dd| ddg           d S )Nz0
1
"2
"
3
4 #
r   r%  )r  U10TrQ  r   rC   )r=   r  quoter   	skiplinesr   rr  r  r  z4 )r   r&   r   r  r  r  r=   r   )r  r  r   r   s       r   test_manual_universal_newlinesz3TestCReaderUnitTests.test_manual_universal_newlines|  s     /77gFF "$ $ $ h(<<$sa = 1 1 	3qqq!t9sMMM3&EFFFFFr   N)r  r  r  r  r  r  r  r  r   r~   markparametrizer  r   r   r   r  r  C  s        > > >
C C C"C C C ? ? ?5 5 5
M M M
 [Y(<(<(<==G G >=G G Gr   r  c                      t          j        t          d          5  t          j        t          d          dd           d d d            d S # 1 swxY w Y   d S )N".*control characters.*incompatiblerx   1, 2, 3r   r   rG  r   r   r   'test_delimiter_comment_collision_raisesr    s    	y(L	M	M	M E E

8I&&#DDDDE E E E E E E E E E E E E E E E E E   %AAAc                      t          j        t          d          5  t          j        t          d          dd           d d d            d S # 1 swxY w Y   d S )Nr	  rx   r
  r   rg  rG  r   r   r   )test_delimiter_quotechar_collision_raisesr    s    	y(L	M	M	M F F

8I&&#EEEEF F F F F F F F F F F F F F F F F Fr  c                      t          j        t          d          5  t          j        t          d          dd           d d d            d S # 1 swxY w Y   d S )Nr	  rx   1 2 3r   )r    r[  rG  r   r   r   'test_comment_quotechar_collision_raisesr    s    	y(L	M	M	M C C

8G$$scBBBBC C C C C C C C C C C C C C C C C Cr  c                      t          j        t          d          5  t          j        t          d          dddg           d d d            d S # 1 swxY w Y   d S )Nz0Comment characters.*cannot include the delimiterrx   r
  r   r   r   rG  r   r   r   5test_delimiter_and_multiple_comments_collision_raisesr    s    	K
 
 
 L L 	
8I&&#c
KKKKL L L L L L L L L L L L L L L L L Ls   'AAAc                    t          j        t          d          5  t          j        t          d|  d|  d|  d|  d	          |            d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          d|  d|  d|  d|  d	          | 	           d d d            d S # 1 swxY w Y   d S )
Nr	  rx   rr  r  z3
45z6
r    r[  rG  )r   s    r   ,test_collision_with_default_delimiter_raisesr    s    
y(L	M	M	M I I

8999R99R99"999::RHHHHI I I I I I I I I I I I I I I	y(L	M	M	M J J

8999R99R99"999::bIIIIJ J J J J J J J J J J J J J J J J Js#   1AA A?1B==CCnl)r   r  c                    t          d|  d|  d|  |  d|  d|  d|  |            }d}t          j        t          |          5  t	          j        || 	           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          j        || 
           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          j        ||            d d d            d S # 1 swxY w Y   d S )Nrr  r  r  rs  r  r  z&control character.*cannot be a newlinerx   r   r  r  rh  )r  r(   r   s      r   %test_control_character_newline_raisesr    s   
<r<<B<<<R<<"<<r<<B<<<
=
=C
2C	y	,	,	, & &

3"%%%%& & & & & & & & & & & & & & &	y	,	,	, % %

3$$$$% % % % % % % % % % % % % % %	y	,	,	, & &

3"%%%%& & & & & & & & & & & & & & & & & &s6   A&&A*-A*B//B36B3C99C= C=)generic_data
long_datumunitless_dtyper  )z2012-03z
2013-01-15M8zM8[D])
spam-a-lottis_but_a_scratchr  U17nrows)rq   r   `  c           	      f   | g|z  |gz   }t          j        ||          }t          |          |dz   k    sJ t          |          t          |          k    sJ t          d                    |                    }t          j        ||          }t          |          t          |          k    sJ |j        |j        k    sJ t          ||           t                      \  }	}
t          j
        |	           t          |
d          5 }|                    d                    |          dz              ddd           n# 1 swxY w Y   t          j        |
|          }t          |          t          |          k    sJ |j        |j        k    sJ t          ||           t          j        |
|t          |dz                      }t          j        |
           t          |          t          |dz            k    sJ t          ||dt          |dz                                dS )zCheck that the correct unit (e.g. month, day, second) is discovered from
    the data when a user specifies a unitless datetime.r<   rC   r   r  Nr   )r=   rv   )r   r   lenr   r  r   r=   r   r   oscloseopenr  rh   remove)r  r  r  r  r#  r   r   r(   r)   fdfnamer  s               r   test_parametric_unit_discoveryr-    sC    >E!ZL0DxN333Ht99at99H%%%% 499T??
#
#C

3n---Aq66S]]""""7hn$$$$H 		IBHRLLL	eS		 'R
4%&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 	
5///Aq66S]]""""7hn$$$$H

5U1WFFFAIeq66Sq\\!!!!H]c%'ll]+,,,,,s   ,EEEc                     dgdz  dgz   } t          j        dgdz  dgz   d          }d }t          d                    |                     }t          j        |d	|
          }|j        |j        k    sJ t          ||           t                      \  }}t          j	        |           t          |d          5 }|                    d                    |                      d d d            n# 1 swxY w Y   t          j        |d	|
          }t          j        |           |j        |j        k    sJ t          ||           d S )Nr   r$  XXXtis_but_a_scratchr!  r"  r<   c                 ,    |                      d          S r   )removeprefixr   s    r   r   z>test_str_dtype_unit_discovery_with_converter.<locals>.<lambda>  s    Q^^E** 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  s           r   ,test_str_dtype_unit_discovery_with_converterr2    s   >E!%;$<<Dx	"5!66e  H +*D 499T??
#
#C

3cd333A7hn$$$$H 		IBHRLLL	eS		 "R
4!!!" " " " " " " " " " " " " " "

5555AIe7hn$$$$Hs   <)C11C58C5c                     t          j        t          d          5  t          j        t          d          d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          d          d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          d          d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          d          d	dg           d d d            d S # 1 swxY w Y   d S )
Nz#Text reading control character mustrx   r  r%  r   r  z"comments cannot be an empty stringr  r   )r~   r   r   r   r   r   r   r   r   r   test_control_character_emptyr4    s7    
y(M	N	N	N 4 4

8G$$33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	y(M	N	N	N 4 4

8G$$33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	z)M	N	N	N 3 3

8G$$r22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	z)M	N	N	N : :

8G$$Ry9999: : : : : : : : : : : : : : : : : :sG   $AAA2$B""B&)B&$C88C<?C<&EEEc                  r    t          j        t          d          dd          } t          | g d           dS )z<Byte control characters (comments, delimiter) are supported.z#header
1,2,3   #   ,)r    r   r}  N)r   r   r   r   )r)   s    r    test_control_characters_as_bytesr8    s;    

8,--MMMAIIIr   zignore::UserWarningc                     t          j        dgdt                    } t          |           dk    sJ t	          dd          D ];}t          j        d|z  gdt          d          } t          |           |dz   k    sJ <d S )	Nr%  r   rV   r   rC   i   rq   )r   r=   rv   )r   r   r   r&  r+  )r   r-  s     r   test_field_growing_casesr:    s     *bTS
6
6
6Cs88q====1d^^  j#'cLLL3xx1Q3 r   nmax)r<  r   i  r$  c                 4   d}dg|z  }t          d                    |                    }t          j        |t          d|           }t          |          | k    sJ t                      \  }}t          j        |           t          |d          5 }|
                    d                    |                     d d d            n# 1 swxY w Y   t          j        |t          d|           }t          j        |           t          |          | k    sJ d S )Nr$  za 0.5 1r   r   r   r  )r   r  r   r   strr&  r   r'  r(  r)  r  r*  )r;  file_lengthr   r(   r   r+  r,  r  s           r    test_maxrows_exceeding_chunksizer?     s<    K ;{"D
499T??
#
#C
*SsT
B
B
BCs88t 		IBHRLLL	eS		 "R
4!!!" " " " " " " " " " " " " " "
*U#t
D
D
DCIes88ts   )CCC)m__doc__r?  r'  r~   tempfiler   r   ior   numpyr   numpy.ma.testutilsr   numpy.testingr   r   r	   r   r  r  r*   fixturerA   rH   rN   rY   r[   rk   rt   r   r   r   r   r   r   rg   r>  r   skipifimplementationversionr=   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  	typecodesfilterwarningsr  r!  r  r  r'  r0  r3  r7  rA  rC  rH  rJ  rM  rO  r^  r`  rd  ri  rm  ro  rw  ry  r|  r  r  reprr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r2  r4  r8  r:  r?  r   r   r   <module>rM     s    


 				  0 0 0 0 0 0 0 0           + + + + + + C C C C C C C C C CB B B  $L$L$LMM: : NM: ! ! !@ \\\22/ / 32/* * *O O O@ @ @L L LL L L ":;;- - <;- ":;;. . <;.
 # N N N #C#C#CDD, , ED,
 	 	 	 	    5&/22O O 32O GG 2 :i G9  ; ;828D>>828D>>"BCC4 4 DC; ;4     0 0 0&( ( (E E E% % % 3334433344    54 54                $7 7 7 ),,. . -,. %	hbhtnn	hbhtnn , , ,     &= = = GG 2 :i G9  ; ;",|"<==NOO4 4 PO >=; ;4 GG 2 :i G9  ; ;",|"<==NOO4 4 PO >=; ;4
 2<"?@@66	  	  76 A@	           7 7 7 $-EFF* * GF*& GG 2 :i G9  ; ;% %; ;% !eWb!122: : 32: GG 2 :i G9  ; ;K K; ;K 008 8 108< < < o..
& 
& /.
& o..
& 
& /.
&& & &" GG 2 :i G9  ; ;7 7; ;7( ( ( & & &:                !EFF),,T9$566+ + 76 -, GF+* V,,+ + -,+ '7+."$>!I+ 
ttHIIJ 	)	GHHI&!.( ) )" $//) ) 0/#) )$) 
\"W,s24 4< <4 4< $''K K ('K GG 2 :i G9  ; ;$''KKKM M? ?M M ('; ;
?
 GG 2 :i G9  ; ;L&2S8: :I I: :; ;I GG 2 :i G9  ; ;
\"Y.46 6+ +6 6; ;+ ii"  ( ( ( ikkm	"  2 2 2 $8$8$899K K :9KN N N< < <FG FG FG FG FG FG FG FGRE E E
F F F
C C C
L L L 	 	J J	 	J |,,& & -,& F07  "455 -  - 65  -F  0 GG 2 :i G9  ; ;: :; ;:   122  32 !=>>  ?>  r   