gL ij rddlZddlZddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m cmZddlZddlmZddlmZddlmZmZddlmZddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$e jJdZ&e jJdZ'Gd d Z(e jRjUd gd d Z+dZ,dZ-e jRjUd gde jRjUdddge jRjUdddgdZ.e jRjUdddge jRjUdgddZ/e jRjUd gddZ0dZ1e jRjUdddZ2d Z3d!Z4d"Z5e jRjUd#ddge jRjUd$ddgd%Z6d&Z7d'Z8d(Z9e jRjUd gde jRjUd)ejtejvejxejzej|ej~ejejejg d*ZCd+ZDy),N)datetime)CategoricalDtype) DataFrameSeriesread_csv) CategoricalConversionWarningInvalidColumnNamePossiblePrecisionLossStataMissingValue StataReader StataWriterStataWriterUTF8ValueLabelTypeMismatch read_statac,tgdgdgddS)N)?@g;@g@T@)Atlanta Birmingham CincinnatiDetroitabc)r`/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/io/test_stata.py mixed_framer%&s 'C  r#cX|dddd}t|d}d|j_|S)Niodatastatazstata5_114.dtaT convert_datesindex)rr,name)datapath dta14_114 parsed_114s r$r0r01s3vw0@AIIT:J#J r#c eZdZdZdZej jdgddZej jdgddZ ej jdgddZ ej jdd d gd Z d Z ej jdgd dZ ej jdgddZdZdZdZdZej jdgddZdZdZej jdgddZdZej jdgddZdZej jdgdej jdgddZej jdgddZej jdgdd Zej jdgdd!Zd"Zej jdgdd#Zd$Z d%Z!d&Z"d'Z#d(Z$d)Z%d*Z&d+Z'ej jdgdej jd,d-d.gd/Z(d0Z)d1Z*d2Z+d3Z,ej jdgd4d5Z-d6Z.d7Z/d8Z0ej jdgdej jcd9d:Z2d;Z3ej jdgdd<Z4ej jdd=d>gd?Z5ej jdd@dAgdBZ6ej jdd=d>gdCZ7ej jcdDej jdgdEej jdFdGdHgej jdIdJdKgej jdLdJdKgdMZ8e9dNe:dOe:fdPZ;dQZej jdgddUZ?ej jdgddVZ@ej jddWdXgdYZAdZZBd[ZCd\ZDd]ZEd^ZFd_ZGd`ZHdaZIej jdbeJjeJj gdcZLddZMdeZNej jdfdKdJgdgZOdhZPej jdigdjdkZQdlZRdmZSdnZTej jdgddoZUdpZVdqZWdrZXej jdgddsZYej jdgddtZZduZ[dvZ\ej jdwZ^ej jcdxej jdgdydzZ_d{Z`ej jd|d}ejd~ebjd~gdZdy) TestStatact|dS)NTr*)rselffiles r$read_dtazTestStata.read_dta:s$d33r#ct|dS)NT) parse_datesrr4s r$rzTestStata.read_csv>s$//r#versionruvwNctdg}tj5}|j|d|t |}tj ||dddy#1swYyxYw)NunitcolumnsF write_indexr:)rtm ensure_cleanto_statarassert_frame_equal)r5r:empty_dspath empty_ds2s r$test_read_empty_dtazTestStata.test_read_empty_dtaAs^fX. __  7$   dw  G"4(I  ! !(I 6 7 7 7s 6A!!A*cttjdgtjtjdgtjtjdgtj tjdgtj tjdgtjtjdgtjtjdgtjtjdgtjtjdgtjtjdgtjd }|j}|djtj|d<|djtj|d<|djtj |d<|djtj |d<|djtj |d<tj 5}|j#|d | t%|}tj&||tj(|j*|j*dddy#1swYyxYw) Nrdtype) i8i16i32i64u8u16u32u64f32f64rUrVrWrXrTFrD)rnparrayint8int16int32int64uint8uint16uint32uint64float32float64copyastyperFrGrHrrIassert_series_equaldtypes)r5r:empty_df_typedexpectedrK empty_rereads r$test_read_empty_dta_with_dtypesz)TestStata.test_read_empty_dta_with_dtypesJs #hhs"''2xx2884xx2884xx2884hhs"((3xx2995xx2995xx2995xx2::6xx2::6   "&&(!$..rww7"5/00:"5/00:"5/00:"5/00:__  I$  # #DeW # M%d+L  ! !(L 9  " "8??L4G4G H  I I Is A KKcttdgdd}tj5}|j |d|t |}dddt jtjsJ|j}|djtj|d<tj||dy#1swY}xYw) N)b1b2b3b4b5rr FrDrTcheck_index_type)rrangerFrGrHr isinstancer,pd RangeIndexrgrhr[r_rI)r5r:dfrKread_dfrls r$test_read_index_col_nonez"TestStata.test_read_index_col_nonems U1X,JK L __  '$ KK%K A &G ''--777779  ,,RXX6  gx$G ' 's C  Cr6 stata1_114 stata1_117cn|ddd|d}|j|}ttjtjtjtjtjfggd}|dj tj |d<t j||y)Nr'r(r).dta float_miss double_miss byte_missint_miss long_missrBr)r7rr[nanrhrerFrIr5r6r.parsedrls r$test_read_dta1zTestStata.test_read_dta1zsfg$t}=t$ffbffbffbffbff 5 6W "*,!7!>!>rzz!J fh/r#ctjtdddddddtdd dtdd d tdd d td d d tdd d tdd d ftd ddddddtdddtdddtdd d tdd d tdd d tdd d ftjtjtjtjtjtjtjtjfggd}|dj d|d<|dddd}|dddd }|dddd!}t jt5|j|}dddt jt5|j|}dddt jt5|j|}dddt j|d"#t j|d"#t j|d"#y#1swYxYw#1swYxYw#1swYjxYw)$N  l*}airii riZli rii) datetime_cdatetime_big_cdate weekly_date monthly_datequarterly_datehalf_yearly_date yearly_daterBrOr'r(r)zstata2_114.dtazstata2_115.dtazstata2_117.dtaTcheck_datetimelike_compat) r from_recordsrr{NaTrhrFassert_produces_warning UserWarningr7rI) r5r.rlpath1path2path3r0 parsed_115 parsed_117s r$test_read_dta2zTestStata.test_read_dta2s5))T2r2r26!T1b)T1a(T1a(T1a(T1a(T1a( T2r2q"5T2q)T1b)T1a(T1a(T1a(Q1% P+ . 1" F#+="9"@"@"Evw0@Avw0@Avw0@A  ' ' 4 .u-J .  ' ' 4 .u-J .  ' ' 4 .u-J . j(dS j(dS j(dS% . . . . . .s$I I+<I7I(+I47J) stata3_113 stata3_114 stata3_115 stata3_117ct|ddd|d}|j|}|j|dddd}|jtj}|djtj |d<|djtj |d<tj||y)Nr'r(r)r stata3.csvyearquarter) r7rrhr[rer^r]rFrIrs r$test_read_dta3zTestStata.test_read_dta3sfg$t}=t$==$!NO??2::.#F+22288<&y188A fh/r#) stata4_113 stata4_114 stata4_115 stata4_117c|ddd|d}|j|}tjgdgdgdgdd d d tjd gd d d tjd gd ddtjd gdddtjdgdddtjdgdddtjdgg gd}|D]}||j }tj |d|j}|dk(r|}|jdj}|j|d}|jjdd|||<tj||y) Nr'r(r)r)onetenrrr)twoninerrr)threeeightrrr)foursevenrrrfivesixrprrrrrrrrr rr) fully_labeledfully_labeled2incompletely_labeledlabeled_with_missingsfloat_labelledrBrrcategoryTorderedinplace)r7rrr[rrgasarraynotnarh_valuesset_categories categoriesrenamerFrI) r5r6r.rrlcolorigrcats r$test_read_dta4zTestStata.test_read_dta4sdfg$t}=t$))34=42666226651&!RVVW5'1bffg626662ubffe4  . CC=%%'DH_$=djjl$KLJ,,! ++j)11C$$Z$>C NN ! !$ ! 5HSM  fh/r#c|j|dddd}tjgdgdgdggd }tj||d y) Nr'r(r)zstata12_117.dta)rabc abcdefghi)rcbaqwertywertyqwerty)]strl)xyzrBF check_dtype)r7rrrFrI)r5r.rrls r$test_read_dta12zTestStata.test_read_dta12sS]]8D&'CT#UV ))'/   $   j(Fr#c |j|dddd}|djd|d<tjgddd d tj tj tj tj ggd gd gd ggd}|djtj |d<|jD]}tj|||| t|dddd5}|j}dddddddd}tj|||jdk(sJ dddy#1swYyxYw)Nr'r(r)zstata14_118.dtaBytesr)CatBogotauBogotárruoption b ÜnicoderDogBostonu Uzunköprü)PlaneRomeuTromsøroption ar)PotatoTokyou Elâzığ@rr)rrrrgT?rgUUUUUU?)ThingsCitiesUnicode_Cities_StrlIntsFloatsrLongsrBru'Here are some strls with Ünicode charsz long datazHere are some thingsz byte datazint datazHere are some citiesz float data)rrrrrrruThis is a Ünicode data label)r7rhrrr[rrerCrFassert_almost_equalr variable_labelsassert_dict_equal data_label)r5r. parsed_118rlrrdrvl vl_expecteds r$test_read_dta18zTestStata.test_read_dta18sN]]8D&'CT#UV (188= 7))N-PE??   $&h/66rzzB%% CC  " ":c?HSM B C$9JK L FPS$$&B'P$0$"0&K  [ 1>>%EE EE F F Fs =AE  Ec<ttjtjtjtjtjfggd}d|j_t j 5}|j|d|j|}ddd|j}|jjtj|_t jjd|y#1swYmxYw)NrrBr,r*)rr[rr,r-rFrGrHr7rgrhr_rI set_index)r5originalrKwritten_and_read_againrls r$test_read_write_dta5zTestStata.test_read_write_dta5=sffbffbffbffbff 5 6W & __  9$   d$  7%)]]4%8 " 9==?!..rxx8 4>>wGR  9 9s %DDc2|j|dddd}d|j_|jjtj |_|djtj |d<|djtj |d<t j5}|j|d|j|}t j|jd|d dddy#1swYyxYw) Nr'r(r)rr,rrr*Frw) rr,r-rhr[r_rFrGrHr7rIr )r5r.r rKr s r$test_write_dta6zTestStata.test_write_dta6Ls==$!NO%!..rxx8#F+22288<&y188B __  $   d$  7%)]]4%8 "  ! !&009!&    s 8A D  Dc tddddtjdgggd}t|dt|d<d |j _|j jtj|_|d jtj|d <tj5}|j|d d i| |j|}ddd|j}|r|djd|d<tjjd |dy#1swYZxYw)Nstringobjectr皙? 2003-12-25)rrintegerfloatingrr(rCrOr,rrtcr+r:strFrw)rr[ datetime64rrr,r-rhr_rFrGrHr7rgrIr )r5r:using_infer_stringr rKr rls r$test_read_write_dta10zTestStata.test_read_write_dta10\sXq#r}}\/JKLK $HX$6fE%!..rxx8&y188B __  9$   d:t2Dg  V%)]]4%8 " 9==? !)(!3!:!:5!AHX   " , ,W 5 "  9 9s 8(D99Ectj5}ttjj dj dtd}|j|dddy#1swYyxYw)NrrrABrB) rFrGrr[random default_rngstandard_normallistrH)r5rKr}s r$test_stata_doc_examplesz!TestStata.test_stata_doc_examplesvs_ __  $ %%a(88A4PT:B KK     s AA22A;cttjjdj dt d}tj |jdddf<|j}tj5}|j|ddddtj||y#1swY xYw) Nr)rprabcdrBrr!FrE) rr[r r!r"r#rlocrgrFrGrHrI)r5r}df_copyrKs r$test_write_preserves_originalz'TestStata.test_write_preserves_original}s II ! !! $ 4 4V : ; ; ;s 46B33B<c`tdggd}tdggd}d|j_|jtj }t j5}t jt5|j|dddd|j|}ddd|j}|jjtj |_t jjd|y#1swYxYw#1swYyxYw)Nr)goodubäd8number%astringwithmorethan32characters______rB)r3b_d_8number astringwithmorethan32characters_r,r*rr,r-rhr[r_rFrGrr rHr7rgrIr )r5r  formattedrKr rls r$test_read_write_dta11zTestStata.test_read_write_dta11s N  NS  ' $$RXX. __  9$++,=> <!!$d!; <&*]]4%8 "  9 >>#!..rxx8 4>>wGR < < 9 9s$%D$?DD$D! D$$D-cbtdggd}tdggd}d|j_|jtj }t j5}t jt5|j|d|ddd|j|}ddd|j}|jjtj |_t jjd|y#1swYxYw#1swYyxYw)Nrrrrrpr)!astringwithmorethan32characters_1!astringwithmorethan32characters_2+-shortdeleterB)r8 _0astringwithmorethan32character__1__short_deleter,rr9)r5r:r r:rKr rls r$test_read_write_dta12zTestStata.test_read_write_dta12s         ' $$RXX. __  9$++,=> M!!$dG!L M&*]]4%8 "  9>>#!..rxx8 4>>wGR M M 9 9s$%D%?DD%D" D%%D.ctdtj}tdtj}tdtj}t |||d}d|j _|}|djtj|d<tj5}|j||j|}ddd|j}|j jtj|_tjj!d|y#1swYmxYw)NirOil)r^r_r`r,r`)rr[r^r_r`rr,r-rhrfrFrGrHr7rgrIr ) r5s1s2s3r r:rKr rls r$test_read_write_dta13zTestStata.test_read_write_dta13s D ) E * E *rBDE% &w/66rzzB ' __  9$   d #%)]]4%8 " 9>>#!..rxx8 4>>wGR  9 9s -#D<<E) stata5_113 stata5_114 stata5_115 stata5_117c|ddd|d}|j|}d|j_tj||tj 5}|j |ddi||j|}ddd|j}|jjtj|_tjjd|y#1swYmxYw) Nr'r(r)rr,date_tdtdr) r7r,r-rFrIrGrHrgrhr[r_r ) r5r6r0r:r.rrKr rls r$test_read_write_reread_dta14z&TestStata.test_read_write_reread_dta14s fg$t}=t$#  j&1 __  9$   Y4Ew  W%)]]4%8 " 9??$!..rxx8 4>>wGR  9 9s (C//C8) stata6_113 stata6_114 stata6_115 stata6_117cb|j|dddd}|djtj|d<|djtj|d<|djtj |d<|djtj |d<|d jtj|d <|d jtjd |d <|ddd|d }|j|}tj||y)Nr'r(r) stata6.csvbyte_int_long_float_double_rTz%Y-%m-%dargsr)rrhr[r]r^r_rerfapplyrstrptimer7rFrI)r5r6r.rlrs r$test_read_write_reread_dta15z&TestStata.test_read_write_reread_dta15s==$!NO$W-44RWW=#F+22288<$W-44RXX>%h/66rzzB&y188D&y177   M8 fg$t}=t$ h/r#cFtdgdg}tddddd}d }tj5}|j |||| t |5}|j d k(sJ|j|k(sJ ddddddy#1swYxYw#1swYyxYw) NrvariablerBrzThis is a data file.) time_stamprr:z29 Feb 2000 14:21)rrrFrGrHr ror)r5r:r rorrKreaders r$test_timestamp_and_labelz"TestStata.test_timestamp_and_labelsdVj\:dAr2r2 + __  7$    G  T" 7f((,????((J666 7  7 7  7 7  7 7s#!B#B :B B BB cHtdgdg}d}tj5}d}tjt |5|j |||dddtjj|rJ dddy#1swY4xYw#1swYyxYw)NrirjrBz01 Jan 2000, 00:00:00z"time_stamp should be datetime typematch)ror:) rrFrGpytestraises ValueErrorrHosrKisfile)r5r:r rorKmsgs r$test_invalid_timestampz TestStata.test_invalid_timestamp sdVj\:, __  ,$6Cz5 P!!$:w!O Pww~~d+ +++  , , P P , ,s#BB )B B BB!cttjtjdd}d|j_t j5}t jt5|j|ddd|j|}dddjd}t|j}d}t|||_|j!}|jj#tj$|_t j&||y#1swYxYw#1swYxYw)Ng9@)rprpr,ct|dS)Nr)intrs r$z5TestStata.test_numeric_column_names..6sS1Yr#)rr[reshapearanger,r-rFrGrr rHr7r r#rCmaprgrhr_rI)r5r rKr rCconvert_col_namerls r$test_numeric_column_namesz#TestStata.test_numeric_column_names*sRZZ $@A% __  9$++,=> (!!$' (&*]]4%8 "  9"8!A!A'!J-556.),-=w)G&==?!..rxx8 h(>? ( ( 9 9s$E2D4E4D= 9EE cttjdtj}ttjdtj}tj |ddd<tj |ddd<t ||d}d|j_tj5}|j|||j|}dddjd}|j}|jjtj |_tj"||y#1swYoxYw)NrrOrrrKrLr,r:)rr[rrerfrrr,r-rFrGrHr7r rgrhr_rI)r5r:rKrLr rKr rls r$test_nan_to_missing_valuez#TestStata.test_nan_to_missing_value=s BIIcN"** 5 BIIcN"** 5&&3Q36614a4Bb12% __  9$   dG  4%)]]4%8 " 9"8!A!A'!J==?!..rxx8 4h? 9 9s <%EEcddg}ttjtjdd|}d|j_t j5}|j|d|j|}tjt|jj 5|dddddddy#1swYxYw#1swYyxYw) Nrr$@)rprrBindex_not_writtenFr'rs) rr[rrr,r-rFrGrHr7rurvKeyError)r5rCr rKr s r$ test_no_indexzTestStata.test_no_indexOs*RZZ $@'R1 __  <$   d  6%)]]4%8 "xx~~/B/BC <&':; < < < < < < >wGR  9 9s #C--C6ctddgtj}tddgtj}tddgtj}tddgtj}t ||||d}d|j _tj5}tjt5|j|ddd|j|}ddd|j}t|d tj|d <t|d tj|d <t|d tj |d <|j j#tj|_tj$j'd|y#1swYxYw#1swYxYw) NrcrOil)s0rKrLrMr,rKrLrM)rr[r]r^r`rr,r-rFrGrr rHr7rgr_rfrhrIr ) r5rrKrLrMr rKr modifieds r$test_large_value_conversionz%TestStata.test_large_value_conversionfs` QG277 + QHBGG , Q N"(( 3 Q N"(( 3Bb"EF% __  9$++,AB (!!$' (&*]]4%8 "  9 ==?bhh?bhh?bjjA!..rxx8 4>>wGR ( ( 9 9s$*G F>G >G G  Gc *ttddddddg}d|j_t j 5}t j t5|j|dd i ddd|j|}ddd|j}d g|_ |jjtj|_t jj!d|y#1swYxYw#1swYxYw) Nrrrrrrr,rrr*_0)rrr,r-rFrGrr rHr7rgrCrhr[r_rIr )r5r rKr rs r$test_dates_invalid_columnz#TestStata.test_dates_invalid_columnzshtRRR@AB% __  9$++,=> A!!$q$i!@ A&*]]4%8 "  9 ==? 6!..rxx8 4>>wGR A A 9 9s$D C=0D =D D  Dc|dddd}t|}gdgdgdg}t|}gd|_|d jtj |d <|d jtj |d <|d jtj |d <|d jtj|d <tj|jd |y)Nr'r(r) S4_EDUC1.dta)rrr)rrrr)rrrr)clustnumpri_schlpsch_numpsch_disrrrrr) rrrCrhr[r^r]rerFrIhead)r5r.dpathr}df0s r$test_105zTestStata.test_105svw?  m];nF j/00:Jj/009Jj/009Jj/00<J bggaj#.r#c|dddd}t|5}|jik(sJ dddy#1swYyxYw)Nr'r(r)r)r value_labels)r5r.rrps r$test_value_labels_old_formatz&TestStata.test_value_labels_old_formatsJ vw?   /6&&(B. .. / / /s 7Ac gd}|Dcic]}||}}tddddddgt|z}t|g|}d|j_tddddddtdddtddd tddd tdd d tdd d tdd d g}t|gt j d gtjd|}tj5}|j|||j|} dddtj jd|ycc}w#1swY4xYw)N)rrUtwrFtqthtyrrrrrrBr,rrrrrrPr-r,rCr*)rlenrr,r-r{Indexr[r_rFrGrHr7rIr ) r5rCr! conversionsr(r expected_valuesrlrKr s r$test_date_export_formatsz"TestStata.test_date_export_formatssL<%,-q!t- -r2r2r23c'lBdVW5% T2r2r2 . T2r " T2r " T2q ! T2q ! T1a T1a    ((A3bhhW=  __  9$   d+  >%)]]4%8 " 9 4>>wGR1.( 9 9s E2%E  Ecztdgdggdg}tdgdggtjddgtjddg }t j 5}|j||j|}dddt jjd|y#1swY/xYw) N1foorBrrrr,rr) rr{rr[r_rFrGrHr7rIr )r5r rlrKr s r$test_write_missing_stringsz$TestStata.test_write_missing_stringsssedV_ug>URDM((Aq6@G  __  9$   d #%)]]4%8 " 9 4>>wGR  9 9s #B11B: byteorder> !>9 9; ;    + + + +sBB B B)c "d}i}|D](}td|zd|zd|zg|dt|z<*t|}tj5}|j |dt |5}|jt|j|j|jD]8\}}} t|ddt|dd k(sJt|dd| k(r8J ddddddy#1swYxYw#1swYyxYw) N)rrrr r!sFr'r) rrrrFrGrHr _ensure_openr_varlist_fmtlist_typlistr~) r5str_lensrstr_lenr rKsrrjfmttyps r$test_minimal_size_colzTestStata.test_minimal_size_cols   G$*wg sW}=%AcCL ! Q< __  4$   d  6T" 4b!*-bkk2;; *T4&Hc3x|,C"I>>>x|,3334 4 4 4 4 4 4 4s+D0A3C9$C9(D9D >DDcTd}i}|D](}td|zd|zd|zg|dt|z<*t|}d}tjt |5t j5}|j|ddddddy#1swYxYw#1swYyxYw)N)rrrr r!rzFixed width strings in Stata \.dta files are limited to 244 \(or fewer\)\ncharacters\. Column 's500' does not satisfy this restriction\. Use the\n'version=117' parameter to write the newer \(Stata 13 and later\) format\.rs) rrrrurvrwrFrGrH)r5rrrr rzrKs r$test_excessively_long_stringz&TestStata.test_excessively_long_string s   G$*wg sW}=%AcCL ! Q< 9 ]]:S 1 (" (d!!$' ( ( ( ( ( ( (s$B/BBB BB'cd}tdggdg}tj5}|j|t |5}|j }ddddddt dDcgc]}dtd|zz}}|jdd|D]?}|d } t d D]'}t| d z|z} | j||k(r'JAttjd d d} | jdk(sJttjd d d} | jdk(sJttjddd} | jdk(sJttjddd} | jdk(sJy#1swY\xYw#1swYaxYwcc}w)N)r hlrr`rB.arrz> A!Q*24A*>> A!Q;CD"a;PP AP!Q(1+a.*24A*>> A!QXwfEvw@P QR vw@P QR  h dS h dS.561af966 __  9$")HNN    d/  B%)]]4%8 " 9  " , ,W 5   x~~44RXX> ?&* 7 9 9s% K$6K))K2c,|j|dddd}|djtj|d<|djtj|d<|djtj |d<|djtj |d<|d jtj|d <|d jtjd |d <t|dddd d}tj||t|dddd dd}|j|dddd}|d jtjd |d <tj||y)Nr'r(r)r\r]r^r_r`rarTrbrcstata6_117.dtaTr*F)r+preserve_dtypes)rrhr[r]r^r_rerfrerrfrrFrI)r5r.rl no_conversion conversions r$test_dtype_conversionzTestStata.test_dtype_conversions==$!NO$W-44RWW=#F+22288<$W-44RXX>%h/66rzzB&y188D&y177   M8 # T67,< =T  h 6 T67,< =! ==$!NO&y177   M8  h 3r#c |j|dddd}|djtj|d<|djtj|d<|djtj |d<|djtj |d<|d jtj|d <|d jtjd |d <gd }||}t|ddddd|}tj||gd}||}t|ddddd|}tj||d}tjt |5ddg}t|ddddd|dddd}tjt |5gd}t|ddddd|dddy#1swYKxYw#1swYyxYw)Nr'r(r)r\r]r^r_r`rarTrbrc)r]r^r_r(T)r+rC)r^r_r]z"columns contains duplicate entriesrszEThe following columns were not found in the Stata data set: not_found)r]r^r_ not_found)rrhr[r]r^r_rerfrerrfrrFrIrurvrw)r5r.rlrCdropped reorderedrzs r$test_drop_columnzTestStata.test_drop_columns==$!NO$W-44RWW=#F+22288<$W-44RXX>%h/66rzzB&y188D&y177   M8 -G$ T67,< =  h0-G$ T67,< = h 22 ]]:S 1 (G vw0@A"  V ]]:S 1 =G vw0@A"       sG*G6*G36G?z;ignore:\nStata value:pandas.io.stata.ValueLabelTypeMismatchctjgdgdgdgddddtjddgdddtjddgd d d tjd d gd d dtjd dgdddtjddgdddtjddgg gd}|j }t j |Dcgc]}||jdc}d}|jjdjtj|_|djt|d<|djt|d<|D]z}||j }|jdj}|j}|dk(r|j|d}|j j#dd|||<|t%j&5}|j)|| |j+|}dddj-d} t%j.| |ycc}w#1swY6xYw)!N)rrrrrr)rrrrrr)rrrrrr)rrrrrrrrrprrrrrrrrrrrrr)rrrrr unlabeledrBrraxisr,rr3Trrr)rrr[rrgr{concatrhr, set_namesr_rerr as_orderedrrrrFrGrHr7r rI) r5r:r rlrrrrKr ress r$test_categorical_writingz"TestStata.test_categorical_writings' ))67@72666152665!4&!RVVWa8'1bffgq9266615ubffeR8  ,==?999A B#Xc] ! !* - B "11':AA"((K+34J+K+Q+QRU+V'( ( 5 ; ;C @ CC=%%'D++j)11C.."Ck!((t(< NN ! !$ ! 5HSM __  9$   dG  4%)]]4%8 " 9%..w7 c8,/ C$ 9 9sI1%I  Ictjddzgddzgddzgddzggdg}tj|Dcgc]}||j dc}d }t j 5}d }tjt| 5|j|ddddddtjdgdgdgdgd ggdg}tj|Dcgc]}||j dc}d }t jt5|jdddycc}w#1swYxYw#1swYxYwcc}w#1swYyxYw) Nri'r r!dToo_longrBrrr4zbStata value labels for a single variable must have a combined length less than 32,000 characters\.rs) rrr{r6rhrFrGrurvrwrHrr)r5r rrKrzs r$$test_categorical_warnings_and_errorsz.TestStata.test_categorical_warnings_and_errorssn))Ek]S5[MC%K=3;- HL  999A B#Xc] ! !* - B __  ($C z5 (!!$' (  ())USEC53%! - | 999A B#Xc] ! !* - B  ' '(> ? $   d # $ $# C ( (  ( ( C $ $s<E8EE (E-E"*E' E EE'E0cVtdDcgc]}dt|zg}}|jtjgt j |dg}tj|Dcgc]}||jdc}d}d|j_ tj5}|j|| |j|}dddj!d}|j#} | D]C}| |j$} | j'j(} | j+| d } | | |<E| jjtj,| _ tj.|| ycc}wcc}w#1swYxYw) Nxr many_labelsrBrrr4r,rTr)ryrrr[rrrr{r6rhr,r-rFrGrHr7r rgrremove_unused_categoriesrrr_rI) r5r:rvaluesr rrKr r9rlrnew_catss r$*test_categorical_with_stata_missing_valuesz4TestStata.test_categorical_with_stata_missing_values-sk*/*5Q3Q<.55 rvvh))&=/J999A B#Xc] ! !* - B & __  9$   dG  4%)]]4%8 " 9%..w7==? C3-''C335@@H$$Xt$|j|t|tjfktjt|}|ddd|d}t|} tj|| |D]}t||j t"s!tj$||j&j(| |j&j(tj*||j&j,| |j&j,y)NTrrr r!r<erpreversernoorder)rrrrrrr float_missing)rr<rJ)rrrrrFnolabel)rrrrg@ int32_mixed)r<rrJr rrrOr'r(r)r)r[rr\rr{ Categorical from_codesrrer from_dictdictrrFrIrzrPrrircodesassert_index_equalr) r5r6r.rlcolsis_catrrrTrs r$test_categorical_orderz TestStata.test_categorical_orderEs 971 F 971dd9K L 97/9R S :8"))Aq/ J ?ORXX>O5P Q I8"))A, G ="9299Q< H *2 E &FC "..33E643PQ S&rzz"BCD  E&&tDz2fg$t}=D! h/ C(3---/?@&&x}'8'8'>'>s @U@UV%%SM%%00&+//2L2L r# stata11_115 stata11_117c >t|ddd|d}|jdd}tjt ||_gd}gd }tj j||d }t|d }tj||dy) Nr'r(r)rsrhfirst) na_position) rrrrrrrrrr)PoorFairGoodz Very good ExcellentT)rTrrr-) r sort_valuesr{r|rr,rPrQrrFri)r5r6r.rrTrrrls r$test_categorical_sortingz"TestStata.test_categorical_sortingisHT67tfDMJK##Ew#?}}S[1 0G nn''J( #E* x7r#c|ddd|d}t|}t|d}|D]V}t||jts!||jj sJ||jj sVJy)Nr'r(r)rF)order_categoricals)rrzrPrrr)r5r6r.rparsed_unorderedrs r$test_categorical_orderingz#TestStata.test_categorical_orderingzsfg$t}=D!%duE 9CfSk//1AB#;??** **',0088 88  9r#zignore::UserWarning) r stata2_117rrrRrZ stata7_117r stata9_117rGrZ chunksizerrconvert_categoricalsFTr+c|ddd|d}t|||}t|d||5}d} td D]i} |j|} |j| | |zddfj } |j | } tj| | d d | |z } kdddy#t$rYwxYw#1swYyxYw) Nr'r(r)rrnr+T)iteratorrnr+rrpFrr rryread StopIterationilocrg_convert_categoricalrFrI r5r6rmrnr+r.fnameritrposr chunk from_frames r$test_read_chunks_117zTestStata.test_read_chunks_117s.vw4& > !5'   !5'   ! C1X !HHY/E$[[sY)>)ABGGI !66zB %%5TXy  ! ! !% ! !/B?B/AB?/ B<8B?;B<<B??Cr}returnc|D]}||}t|jts$|jj }|j jt k(rEtjj|j j}|j|}na|j jdk(rHt|j dk(r0|j jt }|j|}|||<|S)zX Emulate the categorical casting behavior we expect from roundtripping. rr) rzrPrrrBrrr{r _with_inferrrrh)r}rserrrs r$rwzTestStata._convert_categoricals  &CS/C#))%56kk::<>>''61!#!5!5cnn6L6L!MJ,,Z8C^^))X5#cnn:MQR:R!$!6!6v!>J,,Z8C"% 3 &r#c|dddd}t|}t|d5}|jd}tj|jddddf|dddt|d 5}t |}tj|jddddf|ddddt|d5}|j d}tj|jddddf|dddt|d 5}|j }tj|jddddf|dddt|d 5}tj|}dddtj|y#1swY8xYw#1swYxYw#1swYxYw#1swYpxYw#1swYQxYw) Nr'r(r)stata3_117.dtaTrqrprrmr) rrtrFrIrvr# get_chunkr{r6)r5r.ryrrzr| from_chunkss r$ test_iteratorzTestStata.test_iteratorsvw0@AE"  - >HHQKE  ! !&++ac1f"5u = > + AsIE  ! !&++ac1f"5uQx @ A - >MM!$E  ! !&++ac1f"5u = > + >sMMOE  ! !&++ac1f"5u = >  + )s))C.K ) fk2' > > A A > > > >  ) )s;;F48F";F.:F: GF"F+.F7:GG) stata2_115rrrQrY stata7_115r stata9_115rFrYc|ddd|d}t|||}t|d||5}d} td D]i} |j|} |j| | |zddfj } |j | } tj| | d d | |z } kdddy#t$rYwxYw#1swYyxYw) Nr'r(r)rrpT)rqr+rnrrpFrrrsrxs r$test_read_chunks_115zTestStata.test_read_chunks_115s,vw4& > !5'  '!5   ! C1X !HHY/E$[[sY)>)ABGGI !66zB %%5TXy  ! ! !% ! !rc@|dddd}gd}d}t||}t|d 5}d }td D]N}|j||} | n7|j|||zddf} t j | | d ||z }Pdddy#1swYyxYw)Nr'r(r)r)rcpim1rrBTrrrpFr)rryrtrvrFrI) r5r.ryrCrmrrzr{r r|r}s r$test_read_chunks_columnsz"TestStata.test_read_chunks_columnssvw0@A* E73  - !C1X !G<=#[[sY)>)AB %%j%UKy   ! ! ! !s ABBcd|j_dddd}tj5}|j |||t |5}|j }dddddddd}|k(sJ dddd |d<tj5}|j |||t |5}|j }ddd|k(sJ dddy#1swYxYw#1swYxxYw#1swY2xYw#1swYyxYw) Nr, City Rank City ExponentCityrrr:r)r,rr r!z The Index)r,r-rFrGrHr r)r5r:r%rrKr read_labelsexpected_labelss r$test_write_variable_labelsz$TestStata.test_write_variable_labels's*")  +/O __  2$  PW XT" 3b 002  3 $ O /1 11 2$/ __  2$  PW XT" 3b 002  3/1 11  2 2 3 3 2 2 3 3 2 2sG C+ CC+ D5C7DC( $C++C47D <DD cd|j_dddd}tj5}d}t j t |5|j|||ddddddy#1swYxYw#1swYyxYw) Nr,Zvery longvery longvery longvery longvery longvery longvery longvery longvery longvery longrrr.Variable labels must be 80 characters or fewerrsrr,r-rFrGrurvrwrH)r5r:r%rrKrzs r$test_invalid_variable_labelsz&TestStata.test_invalid_variable_labels?s!(  0VT __  $BCz5 $$/7%       s#A< A0A<0A9 5A<<Br<r=cd|j_dddd}d|d<tj5}t j t d 5|j||| ddddddy#1swYxYw#1swYyxYw) Nr,rrrruinvalid character Œrz,Variable labels must contain only charactersrsrr)r5r:r%rrKs r$$test_invalid_variable_label_encodingz.TestStata.test_invalid_variable_label_encodingJs!(  0VT5 __  $"P $$/7%       s#A? A3"A?3A< 8A??Bcgd}dddj|d}d}tjt|5t j 5}|j ||ddddddddd d}d }tjt|5t j 5}|j ||ddddddy#1swYnxYw#1swYrxYw#1swY*xYw#1swYyxYw) N)uΡΑuΝuΔruΣrrrrzKVariable labels must contain only characters that can be encoded in Latin-1rs)rzqA very, very, very long variable label that is too long for Stata which means that it has more than 80 charactersr)joinrurvrwrFrGrH)r5r%rCvariable_labels_utf8rzrKvariable_labels_longs r$ test_write_variable_label_errorsz*TestStata.test_write_variable_label_errorsWsM   ! ]]:S 1 Q" Qd$$T;O$P Q Q  2 ? ]]:S 1 Q" Qd$$T;O$P Q Q Q Q Q Q Q Q Q Q QsGC C  CC1(C%<C1 C CC"%C. *C11C:c tjdddddddtjdddddddtjdd d d d d d g}tgd gd |d}tj5}|j |dt |d}tj|||j |dddit |d}tj|||jjjd}|j |d|dit |d}tj||dddy#1swYyxYw)Nrr.rnRrrrrrapplebananacherrynumsstrsdatesFr'Tr*rr)rEr+) dtrrrFrGrHrrIrCtolistr,)r5rr rKrereaddirect dates_idxs r$test_default_date_conversionz&TestStata.test_default_date_conversionusJ KKb"b"b% 8 KKb"b"b% 8 KKaAq!T 2  '5  __  2$   d  6D9F  ! !(F 3   dgt_  UD9F  ! !&& 1 ((//177@I   diQUEV  WD9F  ! !&& 1 2 2 2s 8CEEctdddgi}d}tjt|5t j 5}|j |ddddddy#1swYxYw#1swYyxYw)Nry?@y@@z"Data type complex128 not supportedrs)rrurvNotImplementedErrorrFrGrH)r5r rzrKs r$test_unsupported_typezTestStata.test_unsupported_typesscFF#3452 ]].c : (" (d!!$' ( ( ( ( ( ( (s#A1A%A1%A. *A11A:c tjdddddddtjdddddddtjdd d d d d d g}tgd gd |d}d}tjt |5t j5}|j|ddiddddddtjddd}tgd gd |d}tjt d5t j5}|j|ddddddy#1swYxYw#1swYxYw#1swY*xYw#1swYyxYw)NrrrrrrnrrrrrrrrzFormat %tC not implementedrsrtCr*z1-1-1990rzAsia/Hong_Kong)periodstzzData type datetime64) rrrrurvrrFrGrHr{ date_range)r5rr rzrKs r$test_unsupported_datetypez#TestStata.test_unsupported_datetypes^ KKb"b"b% 8 KKb"b"b% 8 KKaAq!T 2  '5  + ]].c : G" Gd!!$wo!F G G j!8HI'5  ]].6L M (" (d!!$' ( ( ( G G G G ( ( ( (sHED:,EEE)E:E ?EEE EE'c d}tjt|5t|ddddddddy#1swYyxYw) Na* Value labels for column ethnicsn are not unique. These cannot be converted to pandas categoricals. Either read the file with `convert_categoricals` set to False or use the low level interface in `StataReader` to separately read the values and the value_labels. The repeated labels are: -+ wolof rsr'r(r)z stata15.dtaTrn)rurvrwr)r5r.rzs r$test_repeated_column_labelsz%TestStata.test_repeated_column_labelssG ]]:S 1  vw >%)    s >Act|dddd}tdddddddtjddg ddddtjd dd dd g dtjd dd d ddddg gd d }|gd }t j ||y)Nr'r(r)zstata7_111.dtarrrrrrpr) rr r!r<rJrgrrr )rrwr)rrr[rrFrI)r5r.r}r s r$test_stata_111zTestStata.test_stata_111svw8HI JAq!Q2661a8Aq"&&!Q1a8Aq!Q1a8F   01 h+r#ctdtjtjjdgdtjtjjtjtjj gd}d}t jt|5tj5}|j|ddddddy#1swYxYw#1swYyxYw)NrgColumnOk ColumnTooBigzZColumn ColumnTooBig has a maximum value \(.+\) outside the range supported by Stata \(.+\)rs) rr[finfodoubleepsmaxrurvrwrFrGrH)r5r}rzrKs r$test_out_of_range_doublez"TestStata.test_out_of_range_doubles  "((299"5"9"9;OP!$bhhryy&9&=&=rxx ?R?V?V W   ) ]]:S 1 "" "d D! " " " " " " "s$3C7C+C7+C4 0C77Dctdtjtjjtjtjj dz gdtjtjjtjtjj gd}d|j _|D]'}||jtj||<)tj5}|j|t|}ddd|djtj|d<|j}|j jtj|_tj j#d|y#1swYxYw)Nrrrr,r)rr[rrerrr,r-rhrFrGrHrrfrgr_rIr )r5r rrKrrls r$test_out_of_range_floatz!TestStata.test_out_of_range_floatsVHHRZZ(,,HHRZZ(,,t3 HHRZZ(,,HHRZZ(,,!   & =C$SM00.:a=227;r#)rr[rrr{rr#ryr,r-rFround_trip_pathlibrHrIr5rr}rpr/s r$test_path_pathlibzTestStata.test_path_pathlibs  "))C.((1 1HHT&\*((eBi8bH89    ;&&r{{F; b&) 9% Cc tdtjdjdzt j t dt j tdDcgc]}d| c}}d|j_ d }tj|j|}tj||ycc}w) Nrr@rrrrrr,c6t|jdSrrrs r$rz6TestStata.test_pickle_path_localpath..%rr#)rr[rrr{rr#ryr,r-rFround_trip_localpathrHrIrs r$test_pickle_path_localpathz$TestStata.test_pickle_path_localpaths  "))C.((1 1HHT&\*((eBi8bH89    ;((f= b&) 9rrEcNdgdi}t|}|djd|d<tj5}|j ||t |d5}|j }dddddddddd d d ik(sJy#1swY xYw#1swY$xYw) NA)BECrrr(rr'Trrrr)rrrr)rrhrFrGrHrr)r5rEr<r}rKdta_iterrs r$test_value_labels_iteratorz$TestStata.test_value_labels_iterator)s+ , A S'..,3 __  7$ KK+K 6D40 7H'446  7 7 %EFFFF 7 7 7 7s#!BB0BB BB$c tdtjdjdzt j t dt j tdDcgc]}d| c}}d|j_ tj5}|j|t|d }dddtj|ycc}w#1swY%xYw) Nrr@rrrrrr, index_col)rr[rrr{rr#ryr,r-rFrGrHrrI)r5rr}rKrs r$test_set_indexzTestStata.test_set_index6s  "))C.((1 1HHT&\*((eBi8bH89    __  9$ KK 8F 9 b&) 9 9 9s% C "C%%C.column)msr!weekr qtrhalfrct|dddd}|jd|f}|jd|dzf}||k(sJy)Nr'r(r)zstata13_dates.dtar_fmt)rr()r5rr.r} unformattedr:s r$(test_date_parsing_ignores_format_detailsz2TestStata.test_date_parsing_ignores_format_detailsCsQvw8KL MffQY' FF1fvo-. i'''r#ctdddddddtjdddddzdg d d dddddtjd d d ddg ggd}t|dt|d<t|dtj |d<t|dtj |d<|djtj|d<t|dtj|d<d|j_ |jjtj|_ |j}tj5}|j|ddidgd|j!|}ddd|dd}|r|djd|d<tj"j%d|tj"||y#1swYcxYw)Nrrrrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaizstring-1zobject-1z 2003-12-26r bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr) rrr]r^r_rerfrrKs2045srtl forced_strlrrOr]r^r_rer,rrr r=)r+ convert_strlr:r)rr[rrrr]r^rhr_rer,r-rgrFrGrHr7rIr )r5rr rgrKr rls r$test_writer_117zTestStata.test_writer_117WsMM,/$J MM,/ < ?- \$HX$6fE!(6"2"''B"8G#4BHHE$W-44RXX>$Xi%8 K%!..rxx8}} __  9$   )40+_   &*]]4%8 " 9A; !)(!3!:!:5!AHX   " , ,W 5   h-% 9 9s *G!!G*ctgdgdggd}d|j_tjt 5tj 5}|j|ddgd |j|}|jd}|j|_ tj||d ddddddy#1swYxYw#1swYyxYw) N) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarr)bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbrr)2long1long1long1long1long1long1long1long1long1long1longrrBr,rrr=)r r:Frw) rr,r-rFrr rGrHr7r rCrI)r5r rKrs r$test_convert_strl_name_swapz%TestStata.test_convert_strl_name_swaps ')D E- &  ' '(9 : P" Pd!!$fa[#!Nt,))'2!)!1!1%%fhO  P P P P P P Ps%CA"C7CC CCc tjdddddddtjdddddddtjdd d d d d d g}tgd gd |d}tj5}d}t j t|5|j|ddiddddddy#1swYxYw#1swYyxYw)Nrrrrrrnrrrrrrrrz0convert_dates key must be a column or an integerrs wrong_namerr*) rrrrFrGrurvrwrH)r5rr rKrzs r$test_invalid_date_conversionz&TestStata.test_invalid_date_conversions KKb"b"b% 8 KKb"b"b% 8 KKaAq!T 2  '5  __  L$DCz5 L!!$|T6J!K L L L L L L Ls$8C B=,C =C C  Cc tj}tdtjdj dzt jtdt jtdDcgc]}d| c}}d|j_ tj5}|j|| |jd t!|d 5}|j#|j%dddt'|d }dddtj(|ycc}w#1swY:xYw#1swY1xYw) Nrr@rrrrrr,rrwbr)r'BytesIOrr[rrr{rr#ryr,r-rFrGrHseekopenwritertrrI)r5r:biorr}rKdtars r$test_nonfile_writingzTestStata.test_nonfile_writingsjjl  "))C.((1 1HHT&\*((eBi8bH89    __  9$ KKWK - HHQKdD! &S #((*% &8F  9 b&)9  & & 9 9s*9 D;61E ' EE E E  Ec tdtjdjdzt j t dt j tdDcgc]}d| c}}d|j_ tj5}tj|d 5}|j|d dddtj|d 5}t|d }ddddddtj |ycc}w#1swYYxYw#1swY9xYw#1swY=xYw)Nrr@rrrrrr,rr<rrbr)rr[rrr{rr#ryr,r-rFrGgzipGzipFilerHrrI)r5rr}rKgzrs r$test_gzip_writingzTestStata.test_gzip_writings  "))C.((1 1HHT&\*((eBi8bH89    __  ;$tT* -b B , -tT* ;b#B': ; ; b&)9 - - ; ; ; ;sB% D "D=9D% D=+D19D=%D. *D=1D: 6D==Ec|j|dddd}gd}gdgdgdgd gd gd gd g}t|| }tj||y)Nr'r(r)zstata16_118.dta)utf8latin1ascii utf8_strl ascii_strl) ραηδαςuPÄNDÄSpr,r-) ƤĀńĐąŜÖrr.r)ᴘᴀᴎᴅᴀSÜnr0r2) r3r<r3r<) rrr4r)rrrrr)rrr4rr4rB)r7rrFrI)r5r. unicode_dfrCrCrls r$test_unicode_dta_118zTestStata.test_unicode_dta_118s[]]8D&'CT#UV H B < D 4 $ " " VW5 j(3r#c8ddddddg}t|}|jjd|_tj5}|j |ddt |}|jd }tj||d|d <|j |dd gd t |}|j}|r|d jd |d <|jd }tj||dddy#1swYyxYw) N stringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringr)mixednumberrr_Fr=rDrr9)rEr r:r) rr:rhrFrGrHrfillnarIrg)r5routputrKrrls r$test_mixed_string_strlz TestStata.test_mixed_string_strls *a8DTU:VW6" ,,W5 __  4$ OODeSO A%F}}R(H  ! !&( 3#F7O OO%wi   %F{{}H!$,W$5$<$Z!^n-1 2Y r?Nc btjgdd}tgdgdgdggd}||d <d d d d dd}d}dddddi}|djtj |d<t j5}t|||dg|d||}|jt|} |djd|d<|dj|djdjj|d<t j|| t!|5} | j"|k(sJ| j%|k(sJ ddd|j'||dt|} t j|| dddy#1swYGxYw#1swYyxYw)N)rβĉTr)rruᴬuᴀ relatively long ŝtring)rruᴮr)rruᴰN)ÅrarbstrlsrB ᴐᴬᵀru ᵈᵉᵊuᴎტჄႲႳႴႶႺz Long Stringsr)rcrarbrdreuᴅaᵀa-labelralabeluæøåuŋot valid latin-1rrrrdF)rr rrEr:rr)r:rE)r{rPrrhr[r_rFrGr write_filerr;replacerr8rIr rrrH) r5r:rr(rrrrKwriterr0rpreread_to_statas r$test_utf8_writerzTestStata.test_utf8_writer[snn.=>#%  0   [,#  & 'h;OPQ $Z&&rxx0T __  9$$%%Y /!) F    '-N M004DMT ""<#56==jIMMXXZ J  ! !$ 7T" Cf((J666--/?BBB C MM$UM C(.O  ! !$ 85 9 9( C C) 9 9s%B)F%+'F=F%F" F%%F.cttjdtj}t j 5}t jtd5t||dddddddt j 5}t jtd5t||dddddddy#1swYaxYw#1swYexYw#1swY*xYw#1swYyxYw) N)rirOz"version must be either 118 or 119.rsr=rzYou must use version 119r>) rr[zerosr]rFrGrurvrwr)r5r}rKs r$test_writer_118_exceptionsz$TestStata.test_writer_118_exceptionss rxx "'': ; __  7$z1UV 7b#6 7 7__  7$z1KL 7b#6 7 7 7 7 7 7 7 7 7 7 7sHCC.CC2.C&=C2C CC#&C/ +C22C; dtype_backendnumpy_nullablepyarrow)marksc tgdgdgdgdtjdddd tjgd d  }|j |}|j ddt j5}|j ||j|}dddtddtjggdddtjggdtjdddd tjgd d tj }t jjd |y#1swYxYw)N)rrNr)TFN)g?g@g @z 2020-12-31rD)rfreqrIrrrr,rcr,)rpztest_stata.dtar>rrrrr)r-rP)rr{rrconvert_dtypesrHrFrGr7r[rr_rIr )r5rpr}rKr rls r$test_read_write_ea_dtypesz#TestStata.test_read_write_ea_dtypess !$($]]<E  ((973    ]  ; $c 2 __  9$ KK %)]]4%8 " 9BFF^$1bff%$]]<E  ((97"((C   4>>wGR 9 9s #EEN)e__name__ __module__ __qualname__r7rrumark parametrizerMrnrrrrrrrr rrr$r*r1r;rIrNrVrgrqr{rrrrrrrrrrrrrrrr r&r,r1filterwarningsr:r>rErXrerir~ staticmethodrrwrrrrrrrrrrrrrrr[infrrrrrrr rrrr%r6r=r@rHrUr\slowr_rlroparamrU skip_if_norzr"r#r$r2r29s:40 [[Y(BC7D7 [[Y(BC ID ID [[Y(BC HD H [[VlL%AB0C0"<T| [[H 0 0 [[H)0)0X G&FP S  [[Y(BC D 2 + [[Y(BC ;D ;S6 [[Y(BC#SD#SJS$ [[Y(BC [[H SD S [[H00  [[Y(BC 7D 7 [[Y(BC,D,@& [[Y(BC@D@"< SS( S //S8 S [[Y(BC [[[3*5 @6D @D 4"($"> [[V%OP 0Q 09 v4$, " C8 [[X'89 ": " * * [[]T5M: G; G * [[E(("I.V PL( [[Y(BC*D*" *4"40 [[Y(BC7D7 [[Y(BC "D "0&1( [[ - - [[ KL [[Y(89/9:M/9b7 [[ <6<< y9QRSS Sr#r2r:)iloqr<c|ddd}tjj|d}tjj|d|d}t|}t|}t j ||dy) Nr'r(r)stata-compat-118.dtaz stata-compat-rFr)rxrKrrrFrI)r:r. data_baserefoldrlold_dtas r$test_backward_compatrsfvw/I '',,y"8 9C '',,yM'$"? @C#HoG'8?r#c|dddd}t|5}|jjrJt|jt j rJ dddt|d5}t|5}|jjrJ|j|usJ ddddddt|d5}t j |j5}t|5}|jjrJ|j|usJ dddddddddy#1swYxYw#1swYxYw#1swYxYw#1swY>xYw#1swYBxYw#1swYyxYw)Nr'r(r)rr!)r rtemptyrz _path_or_bufr'rr)r. monkeypatch file_pathrpfprs r$test_direct_readrsivw0FGI Y ?6;;=&&&&f112::>>>>? i -" _ -{{}** **&&", ,, -- i 2" ZZ " 2cS! 2V!;;=....**c111 2 222?? - --- 2 2 2 222slAD</ E;-E)E$E8) E,5-E #E,+E8<EE EE E) %E,,E5 1E88Fc0|dddd}tjtd5t|}|j dddtjt d5j dddy#1swY>xYw#1swYyxYw)Nr'r(r)rzwithout using a context managerrszis not part of the public API)rFrResourceWarningr rt FutureWarningclose)r.rrs r$0test_statareader_warns_when_used_without_contextrsvw0FGI # #/  #   # #-     sB&B B  Br;use_dictTFinfercd}|r|r|}n||}|d|z }|}|rd}|rd|i}ttjjdj dt d}d |j _tj|5} |j| || |d k(rDtj| d 5} tj| j} dddn|d k(rRt!j"| d5} tj| j| j$d} dddne|dk(rbt'j| 5} tj| j)| j+dj} dddn|dk(rCt-j| d 5} tj| j} dddn|dk(rTt/j0d} | j| d 5} tj| j} dddn]|dk(rTt/j0d}|j| d 5} tj| j} dddn|| } t3 d }ddd|j5}|j j7tj8|_tj:|y#1swYsxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw)Nzdta_inferred_compression.dtarrmethodrrrrBr,)r: compressionr"r!rrrtarbz2zstd zstandardxzlzmar)rr[r r!r"r#r,r-rFrGrHr"rr'rrtzipfileZipFilefilelisttarfile extractfilegetnamesrru importorskiprrgrhr_rI)rr:rrcompression_to_extension file_namefile_extcompression_argr}rKcomprrrrrrls r$test_compressionrs/I "H/ >>ZZ A 78 9 9 BB'2 3wwyH^^**2884HN&(+ 9 9 3 3s%09F)A*FFF FFc jtdtgddi}d|j_|j }|jj t j|_tj5}|j||t|dd 5}t|D]\\}}|jd}d|vsJtj|j|jj d|zd|d zz^ ddddddy#1swYxYw#1swYyxYw) Ncats)rr rr r!rrOr,rrF)rmrgr)rrr,r-rgrhr[r_rFrGrHr enumerater rirrv)r:r}rlrKrprblocks r$test_chunked_categoricalr9s FF#"D) A+D D)D& "D))D2c  |dddd}gd}t|d5}tjt5t |D]\}}t |j |d|zd|dzzk(sJ|dkrtjd d g}ntjd gd }tj|j jj| ddddddtjt5t|d5}|j}ddddddt|}tj|y#1swY{xYw#1swYxYw#1swYKxYw#1swYOxYw)Nr'r(r)stata-dta-partially-labeled.dta)rr rr rrrrrr rrfrOrp)r rFrr rr#rr{rrUrr__next__rrI) r.dta_filerCrprridx large_chunkrs r$ test_chunked_categorical_partialrLsafg/PQH &F X +Fv  ' '(D E F%f- F5EJJ'6!a%!q1u++FFFFq5((C:.C((C5 :C%%ejjnn&?&?E  F FF # #$@ A, Q / ,6 //+K ,, !F&+. F FFF , ,,,sGE!B#EE!E9E-#E9E E!!E*-E6 2E99Frm)rrrc|dddd}tjtd5t||5 ddddddy#1swYxYw#1swYyxYw)Nr'r(r)rzchunksize must be a positiversr)rurvrwr )r.rmrs r$test_iterator_errorsr_s^fg/PQH z)G H Y 7     s!AAAA AAc ddgdgdzz}ttdDcic]}d|tj|dc}}t j 5}|j |d tjgd }t|d 5}t|D]x\}}tdD]9}t j|jj|j|;t j||j|d z|dzd zz ddddddycc}w#1swYxYw#1swYyxYw)Nc_labelb_labela_labelrrrTrFr')rrrrrr)rryr{rPrFrGrHrrrrUrjrvrrI) rCrr}rKrlrpr r|rs r$test_iterator_value_labelsrgs8 #ykC&7 7F USTXVc!Ir~~fdCCV WB  Od De ,88=>  , O%f- O5qUA))%,,*;*;A*>*I*I8TU%%eRWWQWA}-MN O OOOW O OOOs*"D,8D=BD1D=1D: 6D==Ec ttdtdDtdtdDggddg}tj5}tj t d 5|j|d dddt|}ttjtjgddg }tj|j||jd |jd k(sJ|jdt|jdk(sJ dddy#1swYxYw#1swYyxYw)Nc3&K|] }d|z ywrNr".0rs r$ z&test_precision_loss..ws &qad &<c3&K|] }d|z ywrr"rs r$rz&test_precision_loss..ws+DQAqD+Dr4biglittlerBz&Column converted from int64 to float64rsFr'rx)rr)rr)rsumryrFrGrr rHrrr[rfrirjr(float)r}rKr expected_dts r$test_precision_lossrus#  &E"I & &+D%)+D(D EF! B   ?d  ' ' !)Q  1 KK%K 0 1D!bjj"**5eX=NO  v}}k:zz+&"&&*====zz(#uRVVH-='>>>> ? ? 1 1 ? ?s%E 5D> B+E >E E  Ectgdgdgddggd}d|j_tj5}|j ||t ||d }tj||tj||5}tj|j}dddt d }tj||dddy#1swY5xYw#1swYyxYw) Ng~Ϛ?g9DܜJ?g>D)?g.4i(@g33333@g̤ArrXYZrr,rrrr) rr,r-rFrGrHrrIdecompress_filer'rrt)rr}rKrfhcontentss r$test_compression_roundtriprs  ')GHCj B BHHM   *d Dk 2DkWM b&)  k 2 -bzz"''),H -H8 b&) * *  - - * *s$AC0 $C$0+C0$C- )C00C9to_infer read_infercH|}||}d|}tgdgdgddggd}d|j_|rd n|}|rd n|} tj|5} |j | | t | | d } tj| |dddy#1swYyxYw) Nrrrrrrrr,rrr)rr,r-rFrGrHrrI) compression_onlyrrrrextrr}to_compressionread_compressionrKr/s r$test_stata_compressionrs #K "; /Cse}H  ')GHCj B BHHM (WkN",w+  "*d Dn 5D.>'R fb)***s 8BB!c tgdddtjdtjggdtjgdd}t j 5}dd d d dd d d }i|dddddi}t|||}|jt|5}|j}||k(sJ dddd}tjt|5ddddi}t|||dddd}tjt|5ddddddi}t|||ddddddy#1swYxYw#1swY[xYw#1swY*xYw#1swYyxYw)N)rrrrrrrg"@)rrrrr)r rrrr )fully_labelledpartially_labelledrrrrrrg)rr)rrrr rrrwrzCCan't create value labels for notY, it wasn't found in the dataset.rsnotYrr)rrzUCan't create value labels for Z, value labels can only be applied to numeric columns.rrr)rr[rr{rPrFrGrrhr rrurvrrw)r(rKrrlrjrpreader_value_labelsrzs r$!test_non_categorical_value_labelsrs -#&RVVS"&&"A! 9:   D  ?d"'Eg>(-E": ClBCSSS)ABT4lC   3&"("5"5"7 &(2 22 3T ]]83 / ?"X$>?L d > ?  6 ]]:S 1 ?SSSS!ABL d > ?/?? 3 3  ? ? ? ?/??sUAE'!E:%E'E5%E'E2E'E E'E E'E$ E''E0ctgdgdgdgdgdd}ddddddd d d d d iddid}ddddddd d d d d iddid}tj5}tjt5|j ||dddt |5}|j}||k(sJ ddddddy#1swY>xYw#1swYxYw#1swYyxYw)N)rrrrrpr)rrrrrr)rrprprrrr=)z invalid~! 6_invalid&invalid_name_longer_than_32_characters aggregaterrrrrrr)rrrprrr) invalid__ _6_invalid invalid_name_longer_than_32_char _aggregate_1__2_r)rrFrGrr rHr r)r(rrlrKrprs r$0test_non_categorical_value_label_name_conversionrs ++6H+&   D"h/!h/6=&2I[G L"h/"x007F,C&kg, H  3d  ' '(9 : ; MM$\M : ;  3&"("5"5"7 &(2 22 3 33 ; ; 3 3 33s<C4CCC4CC CC CC&cdddddi}tdgdi}tj5}|j||t |d5}|j }ddd|k(sJd}d d j dgz}d |d |d }tjt| 5t|dddddddy#1swYjxYw#1swYxYw#1swYyxYw)Nrepeated_labelsTenz More than ten)rr()rrrrr r rFrzQ--------------------------------------------------------------------------------  z Value labels for column a are not unique. These cannot be converted to pandas categoricals. Either read the file with `convert_categoricals` set to False or use the low level interface in `StataReader` to separately read the values and the value_labels. The repeated labels are: rsT) rrFrGrHr rrrurvrwr)rr(rKrprrrepeatsrzs r$;test_non_categorical_value_label_convert_categoricals_errorr s ?PL  7  D  8d d 6 E : 8f"("5"5"7  8"l222!DII.?$@@   ]]:S 1 8 t$ 7 8+88 8 8$ 8 8+88s<!C CA C(C6CC CC CC(rPc8ttgdtdtjtjg|jtgdd}|j j jj}|jdd}|dk(rd }n|d k(rd }tj|}t|}td||gtd }tgdd}tj5}|j|d|t|d} tj |j"| j"tj | j |tj | j$|dddy#1swYyxYw)NrrrO)rr Nrurr`r_boolr]r r)rr rr!rcFrDTr)rrr{NAr-r rP numpy_dtyperir BASE_MISSING_VALUESrrFrGrHrrirr!) rPr:r} dtype_namevaluer expected_b expected_crKrs r$test_nullable_supportr% sA (BEE255)<()  B'',,J##C,JW v   1 1* =E E "CC V#>JS1J  5d DeW =D$7 rttVXX. vxx4 vxx4 555s ;B FFcttdgddjd}tj5}|j |ddt |}d |vsJttjd tjd d}tj|j|t |d g }d |vsJtj|j|jd gdddy#1swYyxYw)NrrrvrrFr=rDr r_rfrrB) rryrrFrGrHrrr[rPrirjr()r}rKdf2rjdf3s r$test_empty_framerO s eAh_= > C CA FB   >d DeS 9czzbhhw/bhhy6IJK szz62u-#~~ szz6::se+<= > > >s Br/s   ))# '   SSD<$=>@?@2. $>?dE]34-0.,14@.,bE7#34%9:,;5,0$>?@$/&&678 O?"*(dE]3e}5*64*0#?L"3J#8L$>?            5 @56>r#