idrdZddlZddlZddlZddlmZmZddlmZddl Z ddl m Z ddl mZmZmZdZejdgd d Zejd Zejd gd dZdZdZdZdZdZejdddZejdddZejdddgdZejdgddZ ejdd d!Z!d"Z"ejd#e#e$fd$Z%ej&eoej'j(d%kd&'ejd#e j)d(e j)d)fd*Z*d+Z+d,Z,d-Z-d.Z.d/Z/ejd0gd1ejd2gd1d3Z0d4Z1d5Z2d6Z3d7Z4ejd#d8d9Z5ejd:d;e j)d<fd=e j)d>fgd?Z6d@Z7dAZ8ej&eoej'j(d%kd&'ejd#e j9dBej:dCdDZ;ej&eoej'j(d%kd&'ejd#e j9dBej:dCdEZfejdFdGdHZ?dIZ@dJZAdKZBej&e dL'dMZCej&eoej'j(d%kd&'dNZDejdOde#gdPfdQZEej&eoej'j(d%kd&'dRZFejdSdTdUZGdVZHejdWdXdYZIejdWdXdZZJd[ZKej&eoej'j(d%kd&'d\ZLd]ZMd^ZNd_ZOd`ZPdaZQejdbdcejdddeejdfddggdhZRejd didjZSejd#dkgdldmdndodpdqdrdsdtdudveTdwfdxdyeTdzfd{gejd|d}d~gdZUejd#e j9dBdzdzdZVejd#ddZWej&eoej'j(d%kd&'ejd#dejdgddZXej&eoej'j(d%kd&'ejd#e j9dBdzdzdZYej&eoej'j(d%kd&'ejd#e j9dBdzdzdZZejdbddgddggdZ[ejdbddgddgddgddggdZ\ejdgddZ]dZ^dZ_GddZ`dZadZbdZcdZdejdd dZeejdddZfejdddgejdddZgdZhej&eoej'j(d%kd&'dZidZjej:ddZkdS)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)NamedTemporaryFilemkstemp)StringIO) assert_equal)assert_array_equal HAS_REFCOUNTIS_PYPYctd}tjgdgdgdgdg}ttj|d|dS) 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)皙?g4@@)g{Gz??)gy&1|?gT@ )rr , delimiterN)rnparrayrloadtxt)dataexpecteds Q/opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/lib/tests/test_loadtxt.pytest_scientific_notationrsl    Dx ...///;;;GHrz$#666AAAAAcomment)z..z//z@-zthis is a comment:cd}t|d|}tj|d|}t |ddgddgd d ggdS) Nz,# IGNORE 1.5, 2.5# ABC 3.0,4.0# XXX 5.5,6.0 #rrcomments?@r @@@)rreplacerrr)rcontenttxtas rtest_comment_multiple_charsr*"sa@G 7??300 1 1C 3#888Ac3Z#sc3Z899999rctd}tjdtjfdtjfddtjfg}tjgd|}|||fS)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 f0f1f2S7f3)ig333333@alphai)ig@beta)i g#@gammax)ig333333 @deltar)ig@epsiloni)ig333333@omegadtype)rrr=uint16float64int8r)rr=rs rmixed_types_structuredrA*s  "  D H  T2:. tRWoN  Ex      H   rskiprows)rrcr|\}}}tj||d|}t|||ddS)N;)r=rrBrrr)rBrArr=rr)s r1test_structured_dtype_and_skiprows_no_empty_linesrHKsG3D% 4uhGGGAq(899-.....rc|\}}}tj||dd\}}}}t||dt||dt||dt||ddS)NrFT)r=runpackr,r-r/r1rG)rArr=rr)bcds rtest_unpack_structuredrNSs2D%DTJJJJAq!Qq(4.)))q(4.)))q(4.)))q(4.)))))rctjddg}td}tjddg|}t tj|d||dS) N)r)u1r)rKrPrz0,1,2,3 6,7,8,9 rrCrrD))r)rr<rrr=rr=rrrrr=rrs r test_structured_dtype_with_shaperY]sf Hnn5 6 6E ( ) )Dx)+;z2test_converters_negative_indices..AJJ"&&E!HHrr!r"r r$r%r)r=r convertersencoding)rrrrrr?rr(convrrs r test_converters_negative_indicesrs} . / /C << =Dx#sc26]S#J?@@H * 2:   Chrchtd}ddi}tjddgdtjgddgg}tj|tjd |d dgd }t ||tjtd d d dgdd i}t|d dgd dggdS)Nz$1.5,2.5,3.5 3.0,4.0,XXX 5.5,6.0,7.5 r;cD|dkr tjnt|Srrrs rrz?test_converters_negative_indices_with_usecols..rrr!g @r r$g@rr)r=rrusecolsrz0,1,2 0,1,2,3,4cdS)Nr;)r]s rrz?test_converters_negative_indices_with_usecols..sr)rrr)rrrrrr?rrrs r-test_converters_negative_indices_with_usecolsrs < = =C << =Dx#sc26]S#J?@@H * jB    Ch *X455W"||1E G G GCsaWq"g./////rcgd}tjtd5tj|dddddS#1swxYwYdS)N)1,2,3rz4,3,2,1z2the number of columns changed from 3 to 4 at row 3rxrrr})rowss rtest_ragged_errorrs ( ( (D zF H H H(( 43''''((((((((((((((((((sAA Actd}tjddgddgddgg}tj|tdddg}t ||td}t jtd5tj|tdddgddddS#1swxYwYdS) N$0,0,XXX 0,XXX,0,XXX 0,XXX,XXX,0,XXX rrr=rrz0,0,XXX 0 0,XXX,XXX,0,XXX z/invalid column index -2 at row 2 with 1 columnsrx) rrrrrgrr~rrr(rrs rtest_ragged_usecolsrs" < = =Cx!Q!Q!Q011H *Sq"g F F FCh 2 3 3C zG I I IEE 3esQGDDDDEEEEEEEEEEEEEEEEEEs B33B7:B7cxtd}tj|tjgdg}dS)Nrrr)rrrr=r(rs rtest_empty_usecolsr s4 < = =C *S R H H HCCCrc1)r)uのu🫕c2cTtd|d|d}tj|tjdd}tjd|ddd|ddgtjd }t ||dS) Nza,z ,c,1.0 e,z,2.0,gU12rrfz,c,1.0ze,r<)rrrr=rsplitr)rrr(rrs rtest_large_unicode_charactersrs 000b000 1 1C *S3 ? ? ?Cx b  s # #_"___%:%:3%?%?@huooHhrctd}ddi}tj|tjd|dd}tjddgd d gd d gg}t ||dS) Nucat,dog αβγ,δεζ abc,def rc*|SNupperrs rrz-test_unicode_with_converter..#srrr)r=rrrCATdoguΑΒΓuδεζABCdef)rrrr=rrr(rrrs rtest_unicode_with_converterr!s 6 7 7C "" #D * huoo    Cx%(H)=u~NOOHhrctd}tjdtjfdtjfdg}ddd}tj||d| }tjgd | }t||dS) Nz$1.5,2.5,Abc 3.0,4.0,dEf 5.5,6.0,ghI mr)r_U8c@tdt|zS)Nrq)rhrgrs rrz6test_converter_with_structured_dtype..2sRa[))rc*|Srrrs rrz6test_converter_with_structured_dtype..2sr)rr;r)r=rr))r"r)rr#DEF)7r%GHIr<)rrr=int32float32rrr)r(rjrrrs r$test_converter_with_structured_dtyper/s < = =C C?S"*$5~F G GB))/B/B C CD *Scd C C CCx>>>bHhrctd}tj}tj|tjd|d}tjddgddgg}t||d S) aL With the default '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`. zabc,def rst,xyzU3r)r=rrrrRSTXYZN)rbytesrrrr=rrrs r!test_converter_with_unicode_dtyper:su % & &C ;D * rx~~$# G G GCx%%899Hhrcddz}|dddz}t|dz}tj|dt}t |tjdd gd dS) Nz 1.5, 2.5,Pr; rrrVr!r")rr)rrrrgrtile)rowr(rs rtest_read_huge_rowrKsj  C crc(T/C 37  C *SCu 5 5 5CbgsCj*5566666redfgFDGcld}tj|}tj|g|d}dS)Na0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.123456789r<r)rr=r)r=fieldvalues rtest_huge_floatrSs5 &E HUOOE Jwe , , ,R 0EEEr) given_dtypeexpected_dtypeSS5UU5ctd}tj||d}tjddgddgdd gg| }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. zAAA,5-1 BBBBB,0-3 C,4-9 rrfAAAz5-1BBBBBz0-3Cz4-9r<N)rrrrrr=)rrr(rrs rtest_string_no_length_givenr \s 0 1 1C *S s ; ; ;Cx '5)C<8HhN+++++rcgd}td|}tj|}tjd|D}t ||dS)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. )z0.9999999999999999z9876543210.123456z5.43215432154321e+300z0.901z0.333rc,g|]}t|Sr)rg).0rs r z)test_float_conversion..s333aq333rN)rjoinrrrr)stringsr(rrs rtest_float_conversionrrso G 499W%% & &C *S//Cx33733344Hhrctd}tj|td}t |ddgddggt |tjddgddggdS)Nz 1, 0 10, -1rrfTFrCr)rrrboolrviewuint8rs r test_boolrss > " "C *S 4 4 4CsdE]T4L9:::sxx))QFQF+;<<<<.gensRq & &A%%1%%q!t%% % % % % & &rrrf)rrr)rCrrC)rroro)rDrr)rrrhrrr*rrs rtest_read_from_generatorr,sm&&& *SSUU# 5 5 5CxIIIyyy)))DEEHhrcd}tj|dd}tjgdd}t||dS)Nc3FKtdD]}|d|dz VdS)NrDrror&r(s rr*z/test_read_from_generator_multitype..gensBq ! !A..Q..  ! !rzi, drrf))rg)rCg?)rr r<)rrrrr+s r"test_read_from_generator_multityper/s`!!! *SSUU&C 8 8 8Cx777vFFFHhrcd}tjtd5tj|ddddddS#1swxYwYdS)Nc3KdD]}|VdS)N)z1,2s3, 5i1r)entrys rr*z)test_read_from_bad_generator..gens*,  EKKKK  r&non-string returned while reading datarxzi, irrfr)r*s rtest_read_from_bad_generatorr4s  F H H H77 3355#6666777777777777777777s A  AAzPython lacks refcountsctdfd}tddz}tjtd5t j|td|iddddS#1swxYwYdS)Nrc<dkrtddz S)Nizfailed half-way through!rC)r)r] already_readsentinels rrz/test_object_cleanup_on_read_error..convs, $  788 8 rzx i'zat row 5000, column 1rx)r=r)objectrr~rrrr)rr(r7r8s @@r!test_object_cleanup_on_read_errorr:sxxHL 55= ! !C z)@ A A A<< 3f!T;;;;<<<<<<<<<<<<<<<<<r)r?r)rr)r~rrrrrrhrrr+test_converters_dict_raises_non_integer_keyrCsR y(E F F F@@ 8J''S#J????@@@@@@@@@@@@@@@ y(E F F FKK 8J''S#JJJJJKKKKKKKKKKKKKKKKKKs#+AAA9,B22B69B6 bad_col_ind)rDr{ctd}tjtd5t j||t iddddS#1swxYwYdS)Nr>zconverter specified for columnrxr?)rr~rrrrrh)rDrs r'test_converters_dict_raises_non_col_keyrFs J  D z)I J J J88 4[#$67777888888888888888888sAAActjtd5tjt dddiddddS#1swxYwYdS)Nz4values of the converters dictionary must be callablerxr>rrCr?r@rrr,test_converters_dict_raises_val_not_callablerH s yL N N N<< 8J''QF;;;;<<<<<<<<<<<<<<<<<@r<rJrS) rrr=r?r~rrrseekrr)r(r=rrs rtest_quote_support_defaultr]/s ) * *C HmdBJ%7$ 9KL M ME zB D D D44 3es3333444444444444444 HHQKKKx/0>>>H *S D D DCsH%%%%%sA>>BBctd}d}tjt|5t j|ddddddS#1swxYwYdS)N1,2 3,4z,.*must be a single unicode character or Nonerxrz''rrTrr~rrrr)r(rs rtest_quotechar_multichar_errorrb@s :  C 9C y , , ,77 3#6666777777777777777777sAAActd}d}tjt|5t j|ddddddn #1swxYwYtjt|5t j|ddd gddddn #1swxYwYt j|dd d }t |d d gddggdS)Nr_zWwhen multiple comments or a multi-character comment is given, quotes are not supported.rxr123rJ)rr rTr%)rrKrCrrDro)rr~rrrrr)r(rrs r'test_comment_multichar_error_with_quoterfIs :  C $ z - - -FF 3#EEEEFFFFFFFFFFFFFFF z - - -KK 3#c cJJJJKKKKKKKKKKKKKKK *SC&C H H HC1v1v&'''''s#AAA8BB#&B#ctd}tjdtjfdtjfddtjfg}tjgd|}tj||dd }t||dS) 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.r1r2r<rFrKrS) rrr=r>r?r@rrr)rr=rrs r!test_structured_dtype_with_quotesrhYs  $  D H  T2:. tRWoN  Ex      H *T# E E ECsH%%%%%rctd}tjgdd}tj|ddd}t ||dS)Nz 1 "4" ""14r!U1r<rrJrr=rTrrrrrrs rtest_quoted_field_is_not_emptyrpvsU > " "Cxd333H *SCts C C CChrctd}tjgdd}tj|ddd}t ||dS)Nz1 "4" "rjrmr<rrJrnrors r(test_quoted_field_is_not_empty_nonstrictrr|sW = ! !Cxd333H *SCts C C CChrctd}tjdd}tj|ddd}t ||dS)Nz"Hello, my name is ""Monty""!"zHello, my name is "Monty"!U40r<rrJrSrors r"test_consecutive_quotechar_escapedrusS 3 4 4Cx4EBBBH *S D D DChrr)r!z z# 1 2 3 # 4 5 6 r)rrCrrrCrrDc|d}n |dkrd}nd}t|}tjtd5t j|||}dddn #1swxYwYt d 5}|||d tjtd5t j|||}dddn #1swxYwYddddS#1swxYwYdS) zDCheck that a UserWarning is emitted when no data is read from input.N)rrDrrR)rinput contained no datarx)rrw)moder) rr~warns UserWarningrrrwriter\)rrrexpected_shaper(rfhs rtest_warn_on_no_datars  ! 4..C k)B C C C<<jE7;;;<<<<<<<<<<<<<<<  % % %+   \+-F G G G @ @*Sw???C @ @ @ @ @ @ @ @ @ @ @ @ @ @ @++++++++++++++++++sHAA#&A#:AC<C$ C<$C( (C<+C( ,C<<DDrScd}t|}tjtd5t j||ddddS#1swxYwYdS)Nz 1 2 3 4 5 6rxrx)rB)rr~r{r|rr)rBrr(s rtest_warn_on_skipped_datars D 4..C k)B C C C++ 3****++++++++++++++++++sAAAr)rrC)u2rC)i4)u4r)i8  )u8r)float16g#{?)rg. 7) complex64y. 7`F$:)r?g complex128ywfUD3":) longdoubler clongdoubleyp`P@0 BB)U2u𐈃򠬌swapTFctj|}d|dg}|r|}tjdd|fgd}tj||ddd }dS) Nzx,r)r)S1rKFrmrrC)r=rrrv)rr= newbyteorderr)r=rrrfull_dtrs rtest_byteswapping_and_unalignedrs~( HUOOE NNN D %""$$h c5\2%@@@G *TC$ ! ! !CCCrefdFD?ctd}tj||dd}t|tjddg|dS)Nu 3 ," 2 "rrJrSrDr)rrrrrastypers r!test_unicode_whitespace_strippingrs\ $ % %C *S D D DCsBHaV,,33E::;;;;;rFDcd}||ddg}tj||d}t|tjgdgdzdS)Nz0 1 , 2+3j , ( 4+5j ), ( 6+-7j ) , 8j , ( 9j ) ru rrf)rCy@@y@@y@y @y"@r)r&rrrr)r=linerrs r)test_unicode_whitespace_stripping_complexrsf ?D $,,sH-- .D *T# 6 6 6CsBH&C&C&C%Dq%HIIJJJJJrr)z1 +2jz1+ 2jz1+2 jz1+-+3z(1jz(1z(1+2jz1+2j)ctjt5tj|dzg|dddddS#1swxYwYdS)Nrrrfr})r=rs rtest_bad_complexrs z " "?? EDL>#>>>>??????????????????sAA AefgdFDGc|dkrtjdtjt5t jdg|ddddddS#1swxYwYdS)Ngz0longdouble/clongdouble assignment may misbehave.z1rrJrS)lowerr~xfailrrrrr<s rtest_nul_character_errorrs {{}} GHHH z " "II G9ESCHHHHIIIIIIIIIIIIIIIIIIsA--A14A1c|dkrtjd|dvrtjdtjt5t jdg|ddddS#1swxYwYdS)Nez5half assignment currently uses Python float convertereGz2clongdouble assignment is buggy (uses `complex`?).z1_1 r<)r~skiprrrrrr<s rtest_no_thousands_supportrs || KLLL }} IJJJ z " "++ G9E****++++++++++++++++++s A11A58A5z1,2 z2 ,3 z2 ,3 cd}tjt|5tj|dddddS#1swxYwYdS)Nz7Found an unquoted embedded newline within a single linerxrrr})rrs rtest_bad_newline_in_iteratorr s DC z - - -(( 43''''((((((((((((((((((sAA Az2,3 z'2 ',3 z'2 ',3 z'2 ',3 c`tj|dd}t|ddgddggdS)NrrKr`rbrcr rG)rrs rtest_good_newline_in_iteratorrs= *TSC 8 8 8Csb"XBx011111rnewline)r  cgd}fd|D}tj|tdd}t|ddgdd dggdS) N)z1,"2 " z3,"4 z1" c<g|]}|dS)r)r&)r rrs rr z2test_universal_newlines_quoted..(s' 7 7 73CKKg & & 7 7 7rrrJrSrk23rl)rrr9r)rrrs` rtest_universal_newlines_quotedr"st + * *D 7 7 7 7$ 7 7 7D *T3# F F FCsc=w==1CW3HIJJJJJrctjddgd}t|gdgdgtjddgd t }dS) Nz123 z456rrv)rorprz1,2,3 z4,5,6rrV)rrrr9)rs rtest_null_characterr-sa *o}5 H H HCsYYY 2333 *'9"& 2 2 2CCCrcGdd}tjtd5tj|t dddddS#1swxYwYdS)NceZdZdZdZdS):test_iterator_fails_getting_next_line..BadSequencecdS)Nrarselfs r__len__zBtest_iterator_fails_getting_next_line..BadSequence.__len__:s3rc@|dkrtd|d|dzS)N2Bad things happened!z, rC) RuntimeError)ritems r __getitem__zFtest_iterator_fails_getting_next_line..BadSequence.__getitem__=s2rzz"#9:::&&d1f&& &rN)__name__ __module__ __qualname__rrrrr BadSequencer9s2    ' ' ' ' 'rrrrxrrf)r~rrrrrh)rs r%test_iterator_fails_getting_next_liner8s'''''''' |+A B B B<< ;;==s;;;;<<<<<<<<<<<<<<<<< : : : > > G % 9 9  : > > > > > > > > > > > > > > > > > > > > >AA//A36A3c Gdd}tjtd5tjj|tjddddddS#1swxYwYdS)NceZdZdZdZdS)BTestCReaderUnitTests.test_filelike_read_fails..BadFileLikercZ|xjdz c_|jdkrtddS)NrC Bad bad bad!z1,2,3 )counterrrsizes rreadzGTestCReaderUnitTests.test_filelike_read_fails..BadFileLike.readUs2 ! <"$$&~666 yrNrrrrrrrr BadFileLikerRs(G ! ! ! ! !rrrrxr)Tr)r~rrrrrrr=rrs rtest_filelike_read_failsz-TestCReaderUnitTests.test_filelike_read_failsNs ! ! ! ! ! ! ! !]<~ > > > C C G % 9 9 RXc]]T : C C C C C C C C C C C C C C C C C C C C CAA88A<?A<c Gdd}tjtd5tjj|tjddddddS#1swxYwYdS)NceZdZdZdZdS)@TestCReaderUnitTests.test_filelike_bad_read..BadFileLikercdS)Nirrs rrzETestCReaderUnitTests.test_filelike_bad_read..BadFileLike.readgstrNrrrrrrds(G     rrr3rxr)Tr)r~rrrrrrr=rs rtest_filelike_bad_readz+TestCReaderUnitTests.test_filelike_bad_read_s          ]9BDDD C C G % 9 9 RXc]]T : C C C C C C C C C C C C C C C C C C C C Crctjtd5tjjttjddddddS#1swxYwYdS)Nz/error reading from object, expected an iterablerxr)Fr r~rrrrrrr9r=rs rtest_not_an_iterz%TestCReaderUnitTests.test_not_an_iteros ]9KMMM ? ? G % 9 9  : ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rctjtd5tjjtddddddS#1swxYwYdS)Nzinternal error: dtype mustrxr)Fr)r~rrrrrrr9rs r test_bad_typez"TestCReaderUnitTests.test_bad_typeus ]9,H I I I 5 5 G % 9 9e : 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s4AA!$A!ctjtd5tjjttjdddddddS#1swxYwYdS)Nzencoding must be a unicoderxr)F{)r=rrrrs rtest_bad_encodingz&TestCReaderUnitTests.test_bad_encodingzs ]9,H I I I M M G % 9 9  : M M M M M M M M M M M M M M M M M M M M MsAA00A47A4r)rrrc tdd|d}tjj|tjddddd }t|ddd fd d |ddgdS)Nz0 1 "2 " 3 4 # rr!)rU10TrJrrC)r=rquoter skiplinesrrkrrz4 )rr&rrrrr=r)rrrrs rtest_manual_universal_newlinesz3TestCReaderUnitTests.test_manual_universal_newliness/77gFF "$$$g';; $sa<11 3qqq!t9sMMM3&EFFFFFrN) rrrrrrrrrr~mark parametrizerrrrrrFs>>> CCC"CCC ??? 555 MMM  [Y(<(<(<== G G>= G G Grrctjtd5tjt dddddddS#1swxYwYdS)N".*control characters.*incompatiblerx1, 2, 3rrr@rrr'test_delimiter_comment_collision_raisesrs y(L M M MEE 8I&&#DDDDEEEEEEEEEEEEEEEEEE%AAActjtd5tjt dddddddS#1swxYwYdS)Nrrxrrr`r@rrr)test_delimiter_quotechar_collision_raisesrs y(L M M MFF 8I&&#EEEEFFFFFFFFFFFFFFFFFFrctjtd5tjt dddddddS#1swxYwYdS)Nrrx1 2 3r)r rTr@rrr'test_comment_quotechar_collision_raisesrs y(L M M MCC 8G$$scBBBBCCCCCCCCCCCCCCCCCCrctjtd5tjt ddddgddddS#1swxYwYdS)Nz0Comment characters.*cannot include the delimiterrxrrrrr@rrr5test_delimiter_and_multiple_comments_collision_raisesrs K   LL 8I&&#c KKKKLLLLLLLLLLLLLLLLLLs'AAActjtd5tjt d|d|d|d|d |dddn #1swxYwYtjtd5tjt d|d|d|d|d | ddddS#1swxYwYdS) Nrrxrkrz3 45z6 r rTr@)rs r,test_collision_with_default_delimiter_raisesr s y(L M M MII 8999R99R99"999::RHHHHIIIIIIIIIIIIIII y(L M M MJJ 8999R99R99"999::bIIIIJJJJJJJJJJJJJJJJJJs#1AA A?1B==CCnl)rrc td|d|d||d|d|d||}d}tjt|5t j|| dddn #1swxYwYtjt|5t j|| dddn #1swxYwYtjt|5t j|| ddddS#1swxYwYdS) Nrkrrrlr6z&control character.*cannot be a newlinerxrr r ra)r r(rs r%test_control_character_newline_raisesrs E !ZL 0DxN333H 499T?? # #C 3n---AH IBHRLLL eS  "R 4!!!""""""""""""""" 5///AIeHs)CCCcRdgdzdgz}tjdgdzdgzd}d}td|}tj|d |d }t ||t \}}tj|t|d 5}| d|dddn #1swxYwYtj|d |d }tj |t ||dS) NrrXXXtis_but_a_scratchrrr<c,|dSr)striprs rrz>test_str_dtype_unit_discovery_with_converter..sQWWU^^rrr)r=rrryr)rrrr(r)rr rs r,test_str_dtype_unit_discovery_with_converterr&se >E !%;$< r=s  00000000++++++CCCCCCCCCC B B B $L$L$LMM::NM:!!!@\\\22//32/***OOO@@@ L L LLLL":;;--<;- ":;;..<;. #NNN#C#C#CDD,,ED,         5&/22OO32OGG 2 :i G9;;828D>>828D>>"BCC44DC;;4   000(((( E E E%%%3334433344  5454           "777),,..-,.% hbhtnn hbhtnn , , ,   &===GG 2 :i G9;;",|"<==NOO 4 4PO>=;; 4GG 2 :i G9;;",|"<==NOO44PO>=;;4 2<"?@@ 66   76A@        777 $-EFF**GF*&GG 2 :i G9;;%%;;%!eWb!122::32:GG 2 :i G9;;KK;;K0088108 <<< o.. & &/. &o.. & &/. &&&&"GG 2 :i G9;;77;;7 ( ( ( &&&:         !EFF),,T9$566++76-,GF+*V,,++-,+'7+."$>!I+ ttHIIJ ) GHHI&!.())"$// ) )0/#))$ ) \"W,s244<<44<$''KK('KGG 2 :i G9;;$''KKKMM??MM(';; ? GG 2 :i G9;; L & 2S 8::II::;;IGG 2 :i G9;; \"Y.466 + +66;; + i i"((( i k k m " 22  2 $8$8$899KK:9KNNN < < <FGFGFGFGFGFGFGFGREEE FFF CCC LLL  JJ  J|,,&&-,&F07"4556540GG 2 :i G9;;::;;: 12232r