
    Mhh                    r   S SK r S SKrS SKJr  S SKrS SKrS SKrS SKrS SKrS SKrS SK	r
S SKrS SKJs  Jr  S SKrS SKJr  S SKJr  S SKJrJr  S SKJr  S SKJrJrJrJrJ r J!r!J"r"J#r#J$r$  \RJ                  S 5       r&\RJ                  S 5       r' " S	 S
5      r(\RR                  RU                  S/ SQ5      S 5       r+S r,S r-\RR                  RU                  S/ SQ5      \RR                  RU                  SSS/5      \RR                  RU                  SSS/5      S 5       5       5       r.\RR                  RU                  SSS/5      \RR                  RU                  S/ SQ5      S 5       5       r/\RR                  RU                  S/ SQ5      S 5       r0S r1\RR                  RU                  SS5      S 5       r2S  r3S! r4S" r5\RR                  RU                  S#SS/5      \RR                  RU                  S$SS/5      S% 5       5       r6S& r7S' r8S( r9\RR                  RU                  S/ SQ5      \RR                  RU                  S)\Rt                  \Rv                  \Rx                  \Rz                  \R|                  \R~                  \R                  \R                  \R                  /	5      S* 5       5       rCS+ rDg),    N)datetime)CategoricalDtype)	DataFrameSeriesread_csv)	CategoricalConversionWarningInvalidColumnNamePossiblePrecisionLossStataMissingValueStataReaderStataWriterStataWriterUTF8ValueLabelTypeMismatch
read_statac                  ,    [        / SQ/ SQ/ SQS.5      $ )N            )      ?      @g      ;@g     @T@)Atlanta
Birmingham
CincinnatiDetroitabc)r        L/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/test_stata.pymixed_framer%   &   s    'C	
 r#   c                 R    U " SSSS5      n[        USS9nSUR                  l        U$ )Niodatastatazstata5_114.dtaTconvert_datesindex)r   r,   name)datapath	dta14_114
parsed_114s      r$   r0   r0   1   s3    vw0@AIIT:J#Jr#   c            
       P   \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ SQ5      S 5       r
\R                  R                  S/ SQ5      S 5       r\R                  R                  S	S
S/5      S 5       rS r\R                  R                  S	/ SQ5      S 5       r\R                  R                  S	/ SQ5      S 5       rS rS rS rS r\R                  R                  S/ SQ5      S 5       rS rS r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  S/ SQ5      \R                  R                  S	/ SQ5      S 5       5       r\R                  R                  S	/ SQ5      S  5       r\R                  R                  S/ SQ5      S! 5       r\R                  R                  S/ SQ5      S" 5       rS# r\R                  R                  S/ SQ5      S$ 5       r S% r!S& r"S' r#S( r$S) r%S* r&S+ r'S, r(\R                  R                  S/ SQ5      \R                  R                  S-S.S//5      S0 5       5       r)S1 r*S2 r+S3 r,S4 r-\R                  R                  S	/ S5Q5      S6 5       r.S7 r/S8 r0S9 r1\R                  R                  S/ SQ5      \R                  Re                  S:5      S; 5       5       r3S< r4\R                  R                  S/ SQ5      S= 5       r5\R                  R                  S	S>S?/5      S@ 5       r6\R                  R                  S	SASB/5      SC 5       r7\R                  R                  S	S>S?/5      SD 5       r8\R                  Re                  SE5      \R                  R                  S	/ SFQ5      \R                  R                  SGSHSI/5      \R                  R                  SJSKSL/5      \R                  R                  SMSKSL/5      SN 5       5       5       5       5       r9\:SO\;SP\;4SQ j5       r<SR r=\R                  Re                  SE5      \R                  R                  S	/ SSQ5      \R                  R                  SGSHSI/5      \R                  R                  SJSKSL/5      \R                  R                  SMSKSL/5      ST 5       5       5       5       5       r>SU r?\R                  R                  S/ SQ5      SV 5       r@\R                  R                  S/ SQ5      SW 5       rA\R                  R                  SSXSY/5      SZ 5       rBS[ rCS\ rDS] rES^ rFS_ rGS` rHSa rISb rJ\R                  R                  Sc\KR                  \KR                  * /5      Sd 5       rMSe rNSf rO\R                  R                  SgSLSK/5      Sh 5       rPSi rQ\R                  R                  Sj/ SkQ5      Sl 5       rRSm rSSn rTSo rU\R                  R                  S/ SQ5      Sp 5       rVSq rWSr rXSs rY\R                  R                  S/ SQ5      St 5       rZ\R                  R                  S/ SQ5      Su 5       r[Sv r\Sw r]\R                  R                  Sx 5       r_\R                  R                  S/ SyQ5      Sz 5       r`S{ ra\R                  R                  S|S}\R                  " S~\cR                  " S~5      S9/5      S 5       reSrfg)	TestStata9   c                     [        USS9$ )NTr*   )r   selffiles     r$   read_dtaTestStata.read_dta:   s    $d33r#   c                     [        USS9$ )NT)parse_datesr   r5   s     r$   r   TestStata.read_csv>   s    $//r#   versionr   u   v   w   Nc                     [        S/S9n[        R                  " 5        nUR                  USUS9  [	        U5      n[        R
                  " X$5        S S S 5        g ! , (       d  f       g = f)NunitcolumnsFwrite_indexr=   )r   tmensure_cleanto_statar   assert_frame_equal)r6   r=   empty_dspath	empty_ds2s        r$   test_read_empty_dtaTestStata.test_read_empty_dtaA   sS    fX.__$dwG"4(I!!(6 s   3A
A*c                    [        [        R                  " S/[        R                  S9[        R                  " S/[        R                  S9[        R                  " S/[        R
                  S9[        R                  " S/[        R                  S9[        R                  " S/[        R                  S9[        R                  " S/[        R                  S9[        R                  " S/[        R                  S9[        R                  " S/[        R                  S9[        R                  " S/[        R                  S9[        R                  " S/[        R                  S9S.
5      nUR                  5       nUS   R                  [        R                  5      US'   US   R                  [        R                  5      US'   US   R                  [        R
                  5      US'   US   R                  [        R
                  5      US'   US   R                  [        R
                  5      US'   [        R                   " 5        nUR#                  US	US
9  [%        U5      n[        R&                  " X55        [        R(                  " UR*                  UR*                  5        S S S 5        g ! , (       d  f       g = f)Nr   dtype)
i8i16i32i64u8u16u32u64f32f64rY   rZ   r[   r\   rX   FrG   )r   nparrayint8int16int32int64uint8uint16uint32uint64float32float64copyastyperI   rJ   rK   r   rL   assert_series_equaldtypes)r6   r=   empty_df_typedexpectedrN   empty_rereads         r$   test_read_empty_dta_with_dtypes)TestStata.test_read_empty_dta_with_dtypesJ   s   
 #hhs"''2xx2884xx2884xx2884hhs"((3xx2995xx2995xx2995xx2::6xx2::6
 "&&(!$..rww7"5/00:"5/00:"5/00:"5/00: __$##DeW#M%d+L!!(9""8??L4G4GH	 s   	AJ00
J>c                    [        [        S5      / SQS.5      n[        R                  " 5        nUR	                  USUS9  [        U5      nS S S 5        [        WR                  [        R                  5      (       d   eUR                  5       nUS   R                  [        R                  5      US'   [        R                  " XESS9  g ! , (       d  f       N= f)	N   )b1b2b3b4b5r   r    FrG   r   Tcheck_index_type)r   rangerI   rJ   rK   r   
isinstancer,   pd
RangeIndexrk   rl   r_   rc   rL   )r6   r=   dfrN   read_dfrp   s         r$   test_read_index_col_none"TestStata.test_read_index_col_nonem   s    U1X,JKL__$KK%KA &G  '--7777779 ,,RXX6
g$G s   C


Cr7   
stata1_114
stata1_117c                 h   U" SSSU S35      nU R                  U5      n[        [        R                  [        R                  [        R                  [        R                  [        R                  4// SQS9nUS   R	                  [        R
                  5      US'   [        R                  " X45        g )Nr'   r(   r)   .dta
float_missdouble_miss	byte_missint_miss	long_missrE   r   )r8   r   r_   nanrl   ri   rI   rL   r6   r7   r.   parsedrp   s        r$   test_read_dta1TestStata.test_read_dta1z   s    fg$t}=t$ ffbffbffbffbff56W
 "*,!7!>!>rzz!J
f/r#   c                    [         R                  " [        SSSSSS5      S[        SS	S5      [        SS	S
5      [        SS	S	5      [        SSS	5      [        SS	S	5      [        SS	S	5      4[        SSSSSS5      S[        SSS5      [        SSS5      [        SS	S	5      [        SSS	5      [        SS	S	5      [        SS	S	5      4[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4// SQS9nUS   R                  S5      US'   U" SSSS5      nU" SSSS 5      nU" SSSS!5      n[        R                  " [        5         U R                  U5      nS S S 5        [        R                  " [        5         U R                  U5      nS S S 5        [        R                  " [        5         U R                  U5      nS S S 5        [        R                  " WUS"S#9  [        R                  " WUS"S#9  [        R                  " WUS"S#9  g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ns= f)$N                 l   *}ai  r      i     i        r   iZli  
   r   i     i  )
datetime_cdatetime_big_cdateweekly_datemonthly_datequarterly_datehalf_yearly_dateyearly_daterE   r   Or'   r(   r)   zstata2_114.dtazstata2_115.dtazstata2_117.dtaTcheck_datetimelike_compat)r   from_recordsr   r   NaTrl   rI   assert_produces_warningUserWarningr8   rL   )	r6   r.   rp   path1path2path3r0   
parsed_115
parsed_117s	            r$   test_read_dta2TestStata.test_read_dta2   s   )) T2r2r26!T1b)T1a(T1a(T1a(T1a(T1a(	 T2r2q"5T2q)T1b)T1a(T1a(T1a(Q1%	 P+.	1"
F #+="9"@"@"Evw0@Avw0@Avw0@A''4u-J 5''4u-J 5''4u-J 5 	j(dS
j(dS
j(dS% 544444s$   I	I+=I<
I(+
I9<
J
)
stata3_113
stata3_114
stata3_115
stata3_117c                 t   U" SSSU S35      nU R                  U5      nU R                  U" SSSS5      5      nUR                  [        R                  5      nUS   R                  [        R
                  5      US'   US   R                  [        R                  5      US'   [        R                  " X45        g )Nr'   r(   r)   r   
stata3.csvyearquarter)	r8   r   rl   r_   ri   rb   ra   rI   rL   r   s        r$   test_read_dta3TestStata.test_read_dta3   s     fg$t}=t$ ==$!NO??2::.#F+22288<&y188A
f/r#   )
stata4_113
stata4_114
stata4_115
stata4_117c                    U" SSSU S35      nU R                  U5      n[        R                  " / SQ/ SQ/ SQ/ SQS	S
S[        R                  S	/S
S	S[        R                  S
/SSS[        R                  S/SSS[        R                  S/SSS[        R                  S/SSS[        R                  S//
/ SQS9nU H  nXE   R                  5       n[        R                  " US   UR                  5          5      nUS:X  a  UnUR                  S5      R                  nUR                  USS9nUR                  R                  S SS9  XU'   M     [        R                  " X45        g ) Nr'   r(   r)   r   )onetenr   r   r   )twoniner   r   r   )threeeightr   r   r   )foursevenr   r   r   fivesixru   r   r   r   r   r   r   r   r   r   	   r   r   )fully_labeledfully_labeled2incompletely_labeledlabeled_with_missingsfloat_labelledrE   r   r   categoryTorderedinplace)r8   r   r   r_   r   rk   asarraynotnarl   _valuesset_categories
categoriesrenamerI   rL   )	r6   r7   r.   r   rp   colorigr   cats	            r$   test_read_dta4TestStata.test_read_dta4   sY    fg$t}=t$))34=42666226651&!RVVW5'1bffg626662ubffe4
. C=%%'DH_$=djjl$KLJ,,!
++j)11C$$Z$>CNN!!$!5SM  	f/r#   c                     U R                  U" SSSS5      5      n[        R                  " / SQ/ SQ/ SQ// SQS	9n[        R                  " X#S
S9  g )Nr'   r(   r)   zstata12_117.dta)r   abc	abcdefghi)r   cbaqwertywertyqwerty)]    strl)xyzrE   Fcheck_dtype)r8   r   r   rI   rL   )r6   r.   r   rp   s       r$   test_read_dta12TestStata.test_read_dta12  sQ    ]]8D&'CT#UV
))'/ 
 $
 	jFr#   c           
         U R                  U" SSSS5      5      nUS   R                  S5      US'   [        R                  " / SQSS	S
[        R
                  [        R
                  [        R
                  [        R
                  // SQ/ SQ/ SQ// SQS9nUS   R                  [        R                  5      US'   UR                   H  n[        R                  " X$   X4   5        M      [        U" SSSS5      5       nUR                  5       nSSSSSSSS.n[        R                  " Xg5        UR                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr'   r(   r)   zstata14_118.dtaBytesr   )CatBogotau   Bogotár   r   u   option b Ünicoder   DogBostonu   Uzunköprü)PlaneRomeu   Tromsør           option ar   )PotatoTokyou	   Elâzığ      @r   r   )r   r   r   r   gT?r   gUUUUUU?)ThingsCitiesUnicode_Cities_StrlIntsFloatsr   LongsrE   r  u'   Here are some strls with Ünicode charsz	long datazHere are some thingsz	byte datazint datazHere are some citiesz
float data)r  r	  r  r   r  r  r  u   This is a  Ünicode data label)r8   rl   r   r   r_   r   ri   rF   rI   assert_almost_equalr   variable_labelsassert_dict_equal
data_label)r6   r.   
parsed_118rp   r   rdrvlvl_expecteds           r$   test_read_dta18TestStata.test_read_dta18  s5   ]]8D&'CT#UV
(188=
7))N-PE??
$ &h/66rzzB%%C"":?HMB & $9JKLPS$$&B'P$0$"0&K   1>>%EEEE MLLs   <AE		
Ec                 >   [        [        R                  [        R                  [        R                  [        R                  [        R                  4// SQS9nSUR                  l        [
        R                  " 5        nUR                  US S9  U R                  U5      nS S S 5        UR                  5       nUR                  R                  [        R                  5      Ul        [
        R                  " WR                  S5      U5        g ! , (       d  f       Ns= f)Nr   rE   r,   r*   )r   r_   r   r,   r-   rI   rJ   rK   r8   rk   rl   rc   rL   	set_index)r6   originalrN   written_and_read_againrp   s        r$   test_read_write_dta5TestStata.test_read_write_dta5=  s    ffbffbffbffbff56W
 &__$d$7%)]]4%8"  ==?!..rxx8
4>>wGR s   ?"D
Dc                 4   U R                  U" SSSS5      5      nSUR                  l        UR                  R                  [        R
                  5      Ul        US   R                  [        R
                  5      US'   US   R                  [        R
                  5      US'   [        R                  " 5        nUR                  US S9  U R                  U5      n[        R                  " UR                  S5      US	S
9  S S S 5        g ! , (       d  f       g = f)Nr'   r(   r)   r   r,   r   r   r*   Fr|   )r   r,   r-   rl   r_   rc   rI   rJ   rK   r8   rL   r  )r6   r.   r  rN   r  s        r$   test_write_dta6TestStata.test_write_dta6L  s    ==$!NO%!..rxx8#F+22288<&y188B__$d$7%)]]4%8"!!&009!& s   9AD		
Dc           	      0   [        SSSS[        R                  " S5      /// SQS9n[        US   [        S9US'   S	UR
                  l        UR
                  R                  [        R                  5      Ul        US
   R                  [        R                  5      US
'   [        R                  " 5        nUR                  USS0US9  U R                  U5      n[        R                  " UR                  S	5      USS9  S S S 5        g ! , (       d  f       g = f)Nstringobjectr   皙?
2003-12-25)r  r  integerfloatingr   r(   rF   rS   r,   r"  r   tcr+   r=   Fr|   )r   r_   
datetime64r   r  r,   r-   rl   rc   rI   rJ   rK   r8   rL   r  )r6   r=   r  rN   r  s        r$   test_read_write_dta10TestStata.test_read_write_dta10\  s    Xq#r}}\/JKLK
 $HX$6fE%!..rxx8&y188B__$d:t2DgV%)]]4%8"!!&009!&	 s   4A
D
Dc                    [         R                  " 5        n[        [        R                  R                  S5      R                  S5      [        S5      S9nUR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   ABrE   )	rI   rJ   r   r_   randomdefault_rngstandard_normallistrK   )r6   rN   r   s      r$   test_stata_doc_examples!TestStata.test_stata_doc_examplesq  sV    __$		%%a(88A4PT:B KK	 s   AA00
A>c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  UR                  SSS24'   UR                  5       n[        R                  " 5        nUR                  USS9  S S S 5        [        R                  " X5        g ! , (       d  f       N%= f)	Nr   )ru   r   abcdrE   r   r!   FrH   )r   r_   r-  r.  r/  r0  r   locrk   rI   rJ   rK   rL   )r6   r   df_copyrN   s       r$   test_write_preserves_original'TestStata.test_write_preserves_originalx  s     II!!!$44V<d6l
  VVq#c'z'')__$KK%K0 
b* s   B66
Cc                    [        U" SSSS5      5      n[        U" SSSS5      5      nUR                  S   nUR                  S   nXV:X  d   e[        U[        5      (       d   e[        R
                  " 5        nUR                  USUS9  [        U5      n[        R                  " XH5        S S S 5        g ! , (       d  f       g = f)Nr'   r(   r)   zstata1_encoding.dtar   FrG   )r   	kreis1849r   strrI   rJ   rK   rL   )	r6   r=   r.   rawencodedresultrp   rN   reread_encodeds	            r$   test_encodingTestStata.test_encoding  s     $9NOPXdFG=RST""1%==#!!!&#&&&&__$TugF'-N!!': s   :3B66
Cc                 h   [        S// SQS9n[        S// SQS9nSUR                  l        UR                  [        R
                  5      n[        R                  " 5        n[        R                  " [        5         UR                  US S9  S S S 5        U R                  U5      nS S S 5        UR                  5       nUR                  R                  [        R
                  5      Ul        [        R                  " WR                  S5      U5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   )goodu   bäd8number%astringwithmorethan32characters______rE   )rD  b_d_8number astringwithmorethan32characters_r,   r*   r   r,   r-   rl   r_   rc   rI   rJ   r   r
   rK   r8   rk   rL   r  )r6   r  	formattedrN   r  rp   s         r$   test_read_write_dta11TestStata.test_read_write_dta11  s    N
 NS
	  '	$$RXX.	__$++,=>!!$d!; ? &*]]4%8"	  >>#!..rxx8
4>>wGR ?> s$    D#;DD#
D 	D##
D1c                 j   [        S// SQS9n[        S// SQS9nSUR                  l        UR                  [        R
                  5      n[        R                  " 5        n[        R                  " [        5         UR                  US US9  S S S 5        U R                  U5      nS S S 5        UR                  5       nUR                  R                  [        R
                  5      Ul        [        R                  " WR                  S5      U5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   r   r   r   ru   r   )!astringwithmorethan32characters_1!astringwithmorethan32characters_2+-shortdeleterE   )rI   _0astringwithmorethan32character__1__short_deleter,   r&  rJ  )r6   r=   r  rK  rN   r  rp   s          r$   test_read_write_dta12TestStata.test_read_write_dta12  s     

  

	  '	$$RXX.	__$++,=>!!$dG!L ? &*]]4%8"  >>#!..rxx8
4>>wGR ?> s$    D$;DD$
D!	D$$
D2c                    [        S[        R                  S9n[        S[        R                  S9n[        S[        R                  S9n[        XUS.5      nSUR                  l        UnUS   R                  [        R                  5      US'   [        R                  " 5        nUR                  U5        U R                  U5      nS S S 5        UR                  5       nUR                  R                  [        R                  5      Ul        [        R                  " WR!                  S5      U5        g ! , (       d  f       Ns= f)Ni   rS   i   l        )rb   rc   rd   r,   rd   )r   r_   rb   rc   rd   r   r,   r-   rl   rj   rI   rJ   rK   r8   rk   rL   r  )	r6   s1s2s3r  rK  rN   r  rp   s	            r$   test_read_write_dta13TestStata.test_read_write_dta13  s    D)E*E*rDE%	&w/66rzzB	'__$d#%)]]4%8"  >>#!..rxx8
4>>wGR s   $#D44
E)
stata5_113
stata5_114
stata5_115
stata5_117c                    U" SSSU S35      nU R                  U5      nSUR                  l        [        R                  " X%5        [        R
                  " 5        nUR                  USS0US9  U R                  U5      nS S S 5        UR                  5       nUR                  R                  [        R                  5      Ul        [        R                  " WR                  S5      U5        g ! , (       d  f       Ns= f)	Nr'   r(   r)   r   r,   date_tdtdr&  )r8   r,   r-   rI   rL   rJ   rK   rk   rl   r_   rc   r  )	r6   r7   r0   r=   r.   r   rN   r  rp   s	            r$   test_read_write_reread_dta14&TestStata.test_read_write_reread_dta14  s    
 fg$t}=t$#
j1__$Y4EwW%)]]4%8"  ??$!..rxx8
4>>wGR s   %C..
C<)
stata6_113
stata6_114
stata6_115
stata6_117c                 \   U R                  U" SSSS5      5      nUS   R                  [        R                  5      US'   US   R                  [        R                  5      US'   US   R                  [        R
                  5      US'   US   R                  [        R                  5      US'   US	   R                  [        R                  5      US	'   US
   R                  [        R                  SS9US
'   U" SSSU S35      nU R                  U5      n[        R                  " X45        g )Nr'   r(   r)   
stata6.csvbyte_int_long_float_double_rh  z%Y-%m-%dargsr   )r   rl   r_   ra   rb   rc   ri   rj   applyr   strptimer8   rI   rL   )r6   r7   r.   rp   r   s        r$   test_read_write_reread_dta15&TestStata.test_read_write_reread_dta15  s    ==$!NO$W-44RWW=#F+22288<$W-44RXX>%h/66rzzB&y188D&y177M 8 
 fg$t}=t$
h/r#   c                 P   [        S/S/S9n[        SSSSS5      nS	n[        R                  " 5        nUR	                  XSXAS
9  [        U5       nUR                  S:X  d   eUR                  U:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   variablerE     r            zThis is a data file.)
time_stampr  r=   z29 Feb 2000 14:21)r   r   rI   rJ   rK   r   r  r  )r6   r=   r  r  r  rN   readers          r$   test_timestamp_and_label"TestStata.test_timestamp_and_label  s    dVj\:dAr2r2
+
__$
   T"f((,????((J666 # 
 #" s#   B%B5B
B	B
B%c                 V   [        S/S/S9nSn[        R                  " 5        nSn[        R                  " [
        US9   UR                  XCUS9  S S S 5        [        R                  R                  U5      (       a   e S S S 5        g ! , (       d  f       N>= f! , (       d  f       g = f)Nr  r  rE   z01 Jan 2000, 00:00:00z"time_stamp should be datetime typematch)r  r=   )
r   rI   rJ   pytestraises
ValueErrorrK   osrN   isfile)r6   r=   r  r  rN   msgs         r$   test_invalid_timestamp TestStata.test_invalid_timestamp  s    dVj\:,
__$6Cz5!!$w!O 6ww~~d+++++	 55 s#   B B	.B	
B	B
B(c                    [        [        R                  " [        R                  " S5      S5      5      nSUR                  l        [        R                  " 5        n[        R                  " [        5         UR                  U5        S S S 5        U R                  U5      nS S S 5        WR                  S5      n[        UR                  5      nS n[        XT5      Ul        UR!                  5       nUR                  R#                  [        R$                  5      Ul        [        R&                  " Xc5        g ! , (       d  f       N= f! , (       d  f       N= f)Ng      9@)ru   ru   r,   c                     [        U S   5      $ )Nr   )intr   s    r$   <lambda>5TestStata.test_numeric_column_names.<locals>.<lambda>1  s    S1Yr#   )r   r_   reshapearanger,   r-   rI   rJ   r   r
   rK   r8   r  r0  rF   maprk   rl   rc   rL   )r6   r  rN   r  rF   convert_col_namerp   s          r$   test_numeric_column_names#TestStata.test_numeric_column_names%  s    RZZ		$@A%__$++,=>!!$' ? &*]]4%8"  "8!A!A'!J-556.),-=)G&==?!..rxx8
h? ?> s$   E6D7E7
E	E
Ec                    [        [        R                  " S5      [        R                  S9n[        [        R                  " S5      [        R                  S9n[        R
                  US S S2'   [        R
                  USS S2'   [        X#S.5      nSUR                  l        [        R                  " 5        nUR                  XQS9  U R                  U5      nS S S 5        WR                  S5      nUR                  5       nUR                  R                  [        R                   5      Ul        [        R"                  " Xg5        g ! , (       d  f       Nt= f)Nr  rS   r   r   r^  r_  r,   r=   )r   r_   r  ri   rj   r   r   r,   r-   rI   rJ   rK   r8   r  rk   rl   rc   rL   )r6   r=   r^  r_  r  rN   r  rp   s           r$   test_nan_to_missing_value#TestStata.test_nan_to_missing_value8  s    BIIcN"**5BIIcN"**5&&3Q36614a4B12%__$d4%)]]4%8"  "8!A!A'!J==?!..rxx8
4? s   8!E
Ec                    SS/n[        [        R                  " [        R                  " S5      S5      US9nSUR                  l        [        R                  " 5        nUR                  USS9  U R                  U5      n[        R                  " [        UR                  R
                  S	9   US     S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
Nr   r         $@)ru   r   rE   index_not_writtenFr5  r  )r   r_   r  r  r,   r-   rI   rJ   rK   r8   r  r  KeyError)r6   rF   r  rN   r  s        r$   test_no_indexTestStata.test_no_indexJ  s    *RZZ		$@'R1__$d6%)]]4%8"xx~~/B/BC&':; D  DC s%   AC-C3C
C	C
C#c                    [        SS/5      n[        SS/[        R                  S9n[        XS.5      nSUR                  l        [        R                  " 5        nUR                  U5        U R                  U5      nS S S 5        UR                  5       nUR                  R                  [        R                  5      Ul        [        R                  " WR                  S5      U5        g ! , (       d  f       Ns= f)Nr   zA longer stringr          @rS   r  r,   )r   r_   rj   r   r,   r-   rI   rJ   rK   r8   rk   rl   rc   rL   r  )r6   r^  r_  r  rN   r  rp   s          r$   test_string_no_datesTestStata.test_string_no_datesT  s    S+,-S#Jbjj1B12%__$d#%)]]4%8"  ==?!..rxx8
4>>wGR s   #C++
C9c                    [        SS/[        R                  S9n[        SS/[        R                  S9n[        SS/[        R                  S9n[        SS/[        R                  S9n[        XX4S.5      nSUR                  l        [        R                  " 5        n[        R                  " [        5         UR                  U5        S S S 5        U R                  U5      nS S S 5        UR                  5       n[        US	   [        R                  S9US	'   [        US
   [        R                  S9US
'   [        US   [        R                   S9US'   UR                  R#                  [        R                  5      Ul        [        R$                  " WR'                  S5      U5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   c   rS      i  l    )s0r^  r_  r`  r,   r^  r_  r`  )r   r_   ra   rb   rd   r   r,   r-   rI   rJ   r   r   rK   r8   rk   rc   rj   rl   rL   r  )	r6   r  r^  r_  r`  r  rN   r  modifieds	            r$   test_large_value_conversion%TestStata.test_large_value_conversiona  sP   QG277+QHBGG,Q	N"((3Q	N"((3BEF%__$++,AB!!$' C &*]]4%8"	  ==?bhh?bhh?bjjA!..rxx8
4>>wGR CB s$   F;8F*
F;*
F8	4F;;
G	c           
      >   [        [        SSSSSS5      /5      nSUR                  l        [        R
                  " 5        n[        R                  " [        5         UR                  USS	0S
9  S S S 5        U R                  U5      nS S S 5        UR                  5       nS/Ul        UR                  R                  [        R                  5      Ul        [        R                  " WR!                  S5      U5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   r   r   r   r   r   r,   r   r%  r*   _0)r   r   r,   r-   rI   rJ   r   r
   rK   r8   rk   rF   rl   r_   rc   rL   r  )r6   r  rN   r  r  s        r$   test_dates_invalid_column#TestStata.test_dates_invalid_columnu  s    htRRR@AB%__$++,=>!!$q$i!@ ? &*]]4%8"	  ==? 6!..rxx8
4>>wGR ?> s$   DC=/D=
D	D
Dc                    U" SSSS5      n[        U5      n/ SQ/ SQ/ SQ/n[        U5      n/ SQUl        US	   R                  [        R
                  5      US	'   US
   R                  [        R                  5      US
'   US   R                  [        R                  5      US'   US   R                  [        R                  5      US'   [        R                  " UR                  S5      U5        g )Nr'   r(   r)   S4_EDUC1.dta)r   r   r   )r   r   r   r  )r   r   r   r  )clustnumpri_schlpsch_numpsch_disr  r  r  r  r   )r   r   rF   rl   r_   rb   ra   ri   rI   rL   head)r6   r.   dpathr   df0s        r$   test_105TestStata.test_105  s     vw?m];nFj/00:Jj/009Jj/009Jj/00<J
bggaj#.r#   c                     U" SSSS5      n[        U5       nUR                  5       0 :X  d   e S S S 5        g ! , (       d  f       g = f)Nr'   r(   r)   r  )r   value_labels)r6   r.   r  r  s       r$   test_value_labels_old_format&TestStata.test_value_labels_old_format  sA    
 vw?6&&(B...  s	   8
Ac                    / SQnU Vs0 s H  o"U_M     nn[        SSSSSS5      /[        U5      -  n[        U/US9nSUR                  l        [        SSSSSS5      [        SSS5      [        SSS	5      [        SSS
5      [        SSS
5      [        SSS
5      [        SS
S
5      /n[        U/[
        R                  " S/[        R                  SS9US9n[        R                  " 5        nUR                  XS9  U R                  U5      n	S S S 5        [        R                  " W	R                  S5      U5        g s  snf ! , (       d  f       N:= f)N)r%  ri  twrI   tqthtyr   r   r   r   r   rE   r,   r   r   r   r   r   rT   r-   r,   rF   r*   )r   lenr   r,   r-   r   Indexr_   rc   rI   rJ   rK   r8   rL   r  )
r6   rF   r!   conversionsr(   r  expected_valuesrp   rN   r  s
             r$   test_date_export_formats"TestStata.test_date_export_formats  sB   <%,-W!tW-r2r2r23c'lBdVW5%T2r2r2.T2r"T2r"T2q!T2q!T1a T1a 
 ((A3bhhW=
 __$d>%)]]4%8"  	4>>wGR1 .( s   D=-!E
Ec           	      x   [        S/S //S/S9n[        S/S//[        R                  " SS/[        R                  SS9S/S	9n[
        R                  " 5        nUR                  U5        U R                  U5      nS S S 5        [
        R                  " WR                  S5      U5        g ! , (       d  f       N5= f)
N1foorE   r   r   r   r,   r  r  )r   r   r  r_   rc   rI   rJ   rK   r8   rL   r  )r6   r  rp   rN   r  s        r$   test_write_missing_strings$TestStata.test_write_missing_strings  s    sedV_ug>URDM((Aq6@G
 __$d#%)]]4%8"  	4>>wGR	 s   #B++
B9	byteorder><c           
      \   [        / SQ[        R                  S9n[        / SQ[        R                  S9n[        / SQ[        R                  S9n[        / SQ[        R                  S9n[        / SQ[        R                  S9n[        / SQ[        R
                  S9n[        / SQ[        R
                  S9n	[        X4XVXxU	S	.5      n
S
U
R                  l        U
R                  5       nU
R                  R                  [        R                  5      Ul        [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4n[        UR                   U5       H  u  pX   R                  U5      X'   M     ["        R$                  " 5        nU
R'                  XUS9  U R)                  U5      nS S S 5        WR+                  S
5      n["        R,                  " UU5        g ! , (       d  f       N7= f)N)r   r   TrS   )r   r   d   )r   r      )r   r   i  )r   r   i  )r   r   i)r   r   l    )r  r^  r_  r`  s4s5s6r,   )r  r=   )r   r_   bool_re   rf   rg   r   r,   r-   rk   rl   rc   ra   rb   rj   ziprF   rI   rJ   rK   r8   r  rL   )r6   r  r=   r  r^  r_  r`  r  r  r  r  rp   expected_typesr!   trN   r  s                    r$   test_bool_uintTestStata.test_bool_uint  s    L1Krxx0Krxx0'ryy9%RYY7'ryy9%RYY7r2rR
 &==?!..rxx8GGGGHHHHHHHHJJ
 ((.9DA"+,,Q/HK : __$dI%)]]4%8"  "8!A!A'!J
4h? s   
"H
H+c                 v   [        U" SSSS5      5       nUR                  5       nS S S 5        [        U" SSSS5      5       nUR                  5       nS S S 5        SnSnWR                  5        H%  u  pxUW;   d   eXU   :X  d   eXu;   d   eX;   a  M%   e   g ! , (       d  f       Ny= f! , (       d  f       N]= f)Nr'   r(   r)   zstata7_115.dtazstata7_117.dta)var1var2var3)label1label2label3)r   r  items)	r6   r.   r  sr_115sr_117keyslabelskvs	            r$   test_variable_labelsTestStata.test_variable_labels  s    $9IJKs((*F L$9IJKs((*F L'/LLNDA;;q	>!>99;;	 # LKKKs   BB*
B'*
B8c           	      :   Sn0 nU H)  n[        SU-  SU-  SU-  /5      US[        U5      -   '   M+     [        U5      n[        R                  " 5        nUR                  USS9  [        U5       nUR                  5         [        UR                  UR                  UR                  5       H:  u  pxn	[        USS  5      [        USS	 5      :X  d   e[        USS  5      U	:X  a  M:   e   S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
N)r   r     r   r    r!   sFr5  r   )r   r<  r   rI   rJ   rK   r   _ensure_openr  _varlist_fmtlist_typlistr  )
r6   str_lensr  str_lenr  rN   srr  fmttyps
             r$   test_minimal_size_colTestStata.test_minimal_size_col  s    G$*wgsW}=%AcCL !   Q<__$d6T"b!*-bkk2;;*T&H3x|,C"I>>>x|,333 +U #  #" s+   D0A2C;&C;*D;
D		D
Dc                 j   Sn0 nU H)  n[        SU-  SU-  SU-  /5      US[        U5      -   '   M+     [        U5      nSn[        R                  " [
        US9   [        R                  " 5        nUR                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)r   r    r   r    r!   r  zFixed 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\.r  )	r   r<  r   r  r  r  rI   rJ   rK   )r6   r  r  r  r  r  rN   s          r$   test_excessively_long_string&TestStata.test_excessively_long_string  s     G$*wgsW}=%AcCL !   Q<9 	 ]]:S1"d!!$' # 21"" 21s$   B$0BB$
B!	B$$
B2c                    Sn[        S//S/S9n[        R                  " 5        nUR                  U5        [	        U5       nUR
                  nS S S 5        S S S 5        [        S5       Vs/ s H  nS[        SU-   5      -   PM     nnUR                  SS5        U HB  nWU   S	   n	[        S
5       H(  n[        U	S	-   U-   5      n
U
R                  Xv   :X  a  M(   e   MD     [        [        R                  " SS5      S   5      n
U
R                  S:X  d   e[        [        R                  " SS5      S   5      n
U
R                  S:X  d   e[        [        R                  " SS5      S   5      n
U
R                  S:X  d   e[        [        R                  " SS5      S   5      n
U
R                  S:X  d   eg ! , (       d  f       GNp= f! , (       d  f       GNz= fs  snf )N)r    hlr   ru  rE      .a   r   r      z<fs      s     z.zz<ds         s        )r   rI   rJ   rK   r   VALID_RANGEr~   chrinsertr   r  structunpack)r6   typesr   rN   r  valid_rangeir  r  offsetvals              r$   test_missing_value_generator&TestStata.test_missing_value_generator  s   w
3__$KKT"c!oo #  7<Bi@i3R!V,i@q#&A ^A&F2Y'
Q7zz_%7777    d4G H KLzzS   d4G H KLzzT!!!  MM$ CDQG
 zzS   MM$ CDQG
 zzT!!!1 #"  As)   G
F8G
,G8
G	G


G)
stata8_113
stata8_115
stata8_117c           
      ~   / SQn[        S5      n[        UR                  R                  5       5      n/ n[	        S5       H@  n[	        S5       Vs/ s H  n[        XWUS-  -      5      PM     n	nUR                  U	5        MB     [        XcS9n
[        U" SSSU S	35      S
S9n[        R                  " X5        g s  snf )N)int8_int16_int32_float32_float64_e   r  ru   rE   r'   r(   r)   r   Tconvert_missing)
r   sortedMISSING_VALUESr  r~   appendr   r   rI   rL   )r6   r7   r.   rF   smvr  r(   r  jrowrp   r   s               r$   test_missing_value_conversion'TestStata.test_missing_value_conversion8  s    G$c((--/0rABG(K(Q$Tq2v,%78(CKKK  T3T67tfDM:D
 	f/ Ls   B:c                    / SQn/ SQn/ SQn/ SQn/ SQn/ SQn/ n[        X#XEXg5       H  u  ppp/ n[        S5       Hf  nUS:X  a  UR                  [        XXX5      5        M'  US:X  a  UR                  [        U	S	S	5      5        MK  UR                  [        XU5      5        Mh     UR                  U5        M     UR                  [        R
                  /S-  5        / S
Qn[        SSS5      US   S'   [        SSS	5      US   S'   [        SSS	5      US   S'   [        SSS	5      US   S'   [        SSS5      US   S'   [        SSS	5      =US   S'   US   S'   [        SS	S	5      =US   S'   US   S'   [        SSS	5      =US   S'   =US   S'   US   S'   [        SS	S	5      =US   S'   US   S'   [        UU[        S9n[        U" SSSS5      5      n[        U" SSSS5      5      n[        R                  " UUSS9  [        R                  " UUSS9  U Vs0 s H	  nUUSS  _M     nn[        R                  " 5        nS UR                  l        UR                  UUS!9  U R                  U5      nS S S 5        [        R                  " WR!                  S 5      UR!                  UR                  R#                  [$        R&                  5      5      SS9  g s  snf ! , (       d  f       No= f)"N)i  r  '  r      )r   r   r   r   r   r   )r   r   r   r      r   )r   r   r   r   r   r   )r   r   ;   r   r   r   r   r   r   r   )date_tcrh  date_twdate_tmdate_tqdate_thdate_tyr6  r      r   r   r   r   ru   r7     r8  i  )rF   rT   r'   r(   r)   zstata9_115.dtazstata9_117.dtaTr   r  r,   r*   )r  r~   r/  r   r   r   r   r  r   rI   rL   rJ   r,   r-   rK   r8   r  rl   r_   rc   )r6   r.   yrmoddhrmmssrp   r   monthdayhourminutesecondr2  r1  rF   r   r   r!   date_conversionrN   r  s                           r$   test_big_datesTestStata.test_big_datesH  s   0 "   69"""6Q2DFC1X6JJxSOP!VJJxa34JJxS9:  OOC  7R 	1%
 "$B/A!$A.A!$A.A!$1-A!$2.A*24A*>>A!Q*24A*>>A!Q;CD"a;PPAP!Q(1+a.*24A*>>A!QXwfEvw@P QR
vw@P QR

h
dS
h
dS.56g1af9g6__$")HNNd/B%)]]4%8" 
 	",,W5x~~44RXX>?&*	
 7s   K3K
K-c                    U R                  U" SSSS5      5      nUS   R                  [        R                  5      US'   US   R                  [        R                  5      US'   US   R                  [        R
                  5      US'   US   R                  [        R                  5      US'   US	   R                  [        R                  5      US	'   US
   R                  [        R                  SS9US
'   [        U" SSSS5      SS9n[        R                  " X#5        [        U" SSSS5      SSS9nU R                  U" SSSS5      5      nUS
   R                  [        R                  SS9US
'   [        R                  " X$5        g )Nr'   r(   r)   rq  rr  rs  rt  ru  rv  rh  rw  rx  stata6_117.dtaTr*   F)r+   preserve_dtypes)r   rl   r_   ra   rb   rc   ri   rj   rz  r   r{  r   rI   rL   )r6   r.   rp   no_conversion
conversions        r$   test_dtype_conversionTestStata.test_dtype_conversion  s|   ==$!NO$W-44RWW=#F+22288<$W-44RXX>%h/66rzzB&y188D&y177M 8 
 #T67,<=T
 	h6T67,<=!

 ==$!NO&y177M 8 
 	h3r#   c           	         U R                  U" SSSS5      5      nUS   R                  [        R                  5      US'   US   R                  [        R                  5      US'   US   R                  [        R
                  5      US'   US   R                  [        R                  5      US'   US	   R                  [        R                  5      US	'   US
   R                  [        R                  SS9US
'   / SQnX#   n[        U" SSSS5      SUS9n[        R                  " X$5        / SQnX#   n[        U" SSSS5      SUS9n[        R                  " X%5        Sn[        R                  " [         US9   SS/n[        U" SSSS5      SUS9  S S S 5        Sn[        R                  " [         US9   / SQn[        U" SSSS5      SUS9  S S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)Nr'   r(   r)   rq  rr  rs  rt  ru  rv  rh  rw  rx  )rr  rs  rt  rR  T)r+   rF   )rs  rt  rr  z"columns contains duplicate entriesr  zEThe following columns were not found in the Stata data set: not_found)rr  rs  rt  	not_found)r   rl   r_   ra   rb   rc   ri   rj   rz  r   r{  r   rI   rL   r  r  r  )r6   r.   rp   rF   dropped	reorderedr  s          r$   test_drop_columnTestStata.test_drop_column  s   ==$!NO$W-44RWW=#F+22288<$W-44RXX>%h/66rzzB&y188D&y177M 8 
 -$T67,<=
 	h0 -$T67,<=
	
 	h22]]:S1(Gvw0@A" 2 V]]:S1=Gvw0@A" 21 21 21s   7G3G&
G#&
G4z;ignore:\nStata value:pandas.io.stata.ValueLabelTypeMismatchc                    [         R                  " / SQ/ SQ/ SQ/ SQSSS[        R                  SS/SSS[        R                  SS/S	S
S[        R                  S	S/SSS[        R                  SS/SSS[        R                  SS/SSS[        R                  SS//
/ SQS9nUR	                  5       n[
        R                  " U Vs/ s H  oBU   R                  S5      PM     snSS9nUR                  R                  S5      R                  [        R                  5      Ul        US   R                  [        5      US'   US   R                  [        5      US'   U Ht  nX4   R	                  5       nUR                  S5      R                  nUR                  5       nUS:X  a  UR                  USS9nUR                   R#                  S SS9  XcU'   Mv     [$        R&                  " 5        nUR)                  XqS 9  U R+                  U5      nS S S 5        WR-                  S5      n	[$        R.                  " X5        g s  snf ! , (       d  f       N;= f)!N)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   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   	unlabeledrE   r   r   axisr,   r   r_  Tr   r   r  )r   r   r_   r   rk   r   concatrl   r,   	set_namesrc   rz  r<  r   
as_orderedr   r   r   rI   rJ   rK   r8   r  rL   )
r6   r=   r  rp   r   r   r   rN   r  ress
             r$   test_categorical_writing"TestStata.test_categorical_writing  s   
 ))67@72666152665!4&!RVVWa8'1bffgq9266615ubffeR8
, ==? 999AB#c]!!*-B
 "11':AA"((K+34J+K+Q+QRU+V'( ( 5 ; ;C @C=%%'D++j)11C.."Ck!((t(<NN!!$!5SM  __$d4%)]]4%8"  %..w7
c,/ C$ s   H<+!I
Ic                    [         R                  " SS-  /SS-  /SS-  /SS-  //S/S9n[        R                  " U Vs/ s H  o!U   R	                  S5      PM     snS	S
9n[
        R                  " 5        nSn[        R                  " [        US9   UR                  U5        S S S 5        S S S 5        [         R                  " S/S/S/S/S	//S/S9n[        R                  " U Vs/ s H  o!U   R	                  S5      PM     snS	S
9n[
        R                  " [        5         UR                  W5        S S S 5        g s  snf ! , (       d  f       N= f! , (       d  f       N= fs  snf ! , (       d  f       g = f)Nr   i'  r    r!   dToo_longrE   r   r   r`  zbStata value labels for a single variable must have a combined length less than 32,000 characters\.r  )r   r   r   rb  rl   rI   rJ   r  r  r  rK   r   r   )r6   r  r   rN   r  s        r$   $test_categorical_warnings_and_errors.TestStata.test_categorical_warnings_and_errors
  s]    ))Ek]S5[MC%K=3;-HL

 999AB#c]!!*-B
 __$C  z5!!$' 6  ))USEC53%!-
|
 999AB#c]!!*-B
 ''(>?d# @?# C 65  C @?s;   E7EE%E)E(&E-
E	E
E%-
E;c                 V   [        S5       Vs/ s H  nS[        U5      -   /PM     nnUR                  [        R                  /5        [
        R                  " US/S9n[        R                  " U Vs/ s H  oTU   R                  S5      PM     snSS9nSUR                  l        [        R                  " 5        nUR                  XaS	9  U R                  U5      nS S S 5        WR!                  S5      nUR#                  5       n	U	 H?  nX   R$                  n
U
R'                  5       R(                  nU
R+                  US
S9n
XU'   MA     U	R                  R                  [        R,                  5      U	l
        [        R.                  " X5        g s  snf s  snf ! , (       d  f       N= f)Nx   r   many_labelsrE   r   r   r`  r,   r  Tr   )r~   r<  r/  r_   r   r   r   r   rb  rl   r,   r-   rI   rJ   rK   r8   r  rk   r   remove_unused_categoriesr   r   rc   rL   )r6   r=   r  valuesr  r   rN   r  re  rp   r   new_catss               r$   *test_categorical_with_stata_missing_values4TestStata.test_categorical_with_stata_missing_values(  sZ   */*5*Q3Q<.*5rvvh))&=/J999AB#c]!!*-B
 &__$d4%)]]4%8"  %..w7==?C-''C335@@H$$Xt$<CSM	 
 "..rxx8
c,) 6 C s   F3F<!F
F(stata10_115stata10_117c                 v   SS/ SQ[         R                  " S5      4SS/ SQ[         R                  " S5      S S S2   4SS/ SQ[         R                  " / SQ5      4SS	/ SQ[         R                  " S
S5      4SS/ SQ[         R                  " / SQ5      4SS/ SQ[         R                  " S5      4SS/ SQ[         R                  " S5      4/n/ nU Hg  u  pVpxU(       a1  UR                  U[        R
                  R                  XSS945        M>  UR                  U[        U[         R                  S945        Mi     [        R                  " [        U5      5      nU" SSSU S35      n[        U5      n	[        R                  " X95        U H  n[        X6   R                   ["        5      (       d  M&  [        R$                  " X6   R&                  R(                  X   R&                  R(                  5        [        R*                  " X6   R&                  R,                  X   R&                  R,                  5        M     g )NTr   r   r    r!   ri  eru   reverser  noorder)r   r   r   r   r   r#  r   float_missing)r   ri  ry  )r   r   r   r  r  Fnolabel)r   r  r   r  g      @int32_mixed)ri  r   ry  r    r   r   rS   r'   r(   r)   r   )r_   r  r`   r/  r   Categorical
from_codesr   ri   r   	from_dictdictr   rI   rL   r   rT   r   rm   r   codesassert_index_equalr   )
r6   r7   r.   rp   colsis_catr   r  r  r   s
             r$   test_categorical_order TestStata.test_categorical_order@  s   
 971F971dd9KL97/9RS:8"))Aq/J?ORXX>O5PQI8"))A,G="9299Q<H
 *2&F"..33E43PQ S&rzz"BCD +3 &&tDz2 fg$t}=D!
h/ C(---/?@@&&x}'8'8'>'>@U@UV%%M%%00&+//2L2L r#   stata11_115stata11_117c           	      ,   [        U" SSSU S35      5      nUR                  SSS9n[        R                  " [	        U5      5      Ul        / SQn/ S	Qn[        R                  R                  XES
S9n[        USS9n[        R                  " XsS   5        g )Nr'   r(   r)   r   srhfirst)na_position)
r  r  r   r   r   r   r   r   r   r   )PoorFairGoodz	Very good	ExcellentT)r  r   r   r-   )r   sort_valuesr   r   r  r,   r  r  r   rI   rm   )r6   r7   r.   r   r  r   r   rp   s           r$   test_categorical_sorting"TestStata.test_categorical_sortingd  s    HT67tfDMJK ##Ew#? }}S[10G
nn'' ( 
 #E*
x7r#   c                    U" SSSU S35      n[        U5      n[        USS9nU Hd  n[        X5   R                  [        5      (       d  M&  X5   R                  R
                  (       d   eXE   R                  R
                  (       d  Md   e   g )Nr'   r(   r)   r   F)order_categoricals)r   r   rT   r   r   r   )r6   r7   r.   r   parsed_unorderedr   s         r$   test_categorical_ordering#TestStata.test_categorical_orderingu  s    fg$t}=D!%duECfk//1ABB;??****',0088888	 r#   zignore::UserWarning)r   
stata2_117r   r   rf  ro  
stata7_117r#  
stata9_117rv  r  	chunksizer   r   convert_categoricalsFTr+   c           	         U" SSSU S35      n[        UUUS9n[        USUUS9 nSn	[        S	5       He  n
 UR                  U5      nUR                  XU-   2S S 24   R                  5       nU R                  U5      n[        R                  " XS
SS9  X-  n	Mg     S S S 5        g ! [         a       M  f = f! , (       d  f       g = f)Nr'   r(   r)   r   r  r+   T)iteratorr  r+   r   ru   Fr   r   	r   r~   readStopIterationilocrk   _convert_categoricalrI   rL   r6   r7   r  r  r+   r.   fnamer   itrposr1  chunk
from_frames                r$   test_read_chunks_117TestStata.test_read_chunks_117  s    . vw4&>!5'

 !5'	

 C1XHHY/E $[[Y)>)ABGGI
!66zB
%%5TX   
 
 % 
 
/   B8B&	AB8&
B50B84B55B88
Cr  returnc                 b   U  H  nX   n[        UR                  [        5      (       d  M(  UR                  R	                  5       nUR
                  R                  [        :X  aD  [        R                  R                  UR
                  R                  5      nUR                  U5      nX0U'   M     U $ )zH
Emulate the categorical casting behavior we expect from roundtripping.
)r   rT   r   r   rp  r   r  r   r  _with_inferr   )r  r   serr   r   s        r$   r  TestStata._convert_categorical  s    
 C/C#))%566kk::<>>''61!#!5!5cnn6L6L!MJ,,Z8C"%3  r#   c                    U" SSSS5      n[        U5      n[        USS9 nUR                  S5      n[        R                  " UR                  SS2S S 24   U5        S S S 5        [        USS	9 n[        U5      n[        R                  " UR                  SS2S S 24   US   5        S S S 5        [        USS9 nUR                  S5      n[        R                  " UR                  SS2S S 24   U5        S S S 5        [        USS	9 nUR                  5       n[        R                  " UR                  SS2S S 24   U5        S S S 5        [        US
S	9 n[        R                  " U5      nS S S 5        [        R                  " UW5        g ! , (       d  f       GN6= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nk= f)Nr'   r(   r)   stata3_117.dtaTr  ru   r   r  r   )	r   r  rI   rL   r  r0  	get_chunkr   rb  )r6   r.   r  r   r  r  from_chunkss          r$   test_iteratorTestStata.test_iterator  s{   vw0@AE"-HHQKE!!&++ac1f"5u= . +sIE!!&++ac1f"5uQx@ , -MM!$E!!&++ac1f"5u= . +sMMOE!!&++ac1f"5u= ,
 +s))C.K ,
fk2' .- ,+ .- ,+
 ,+s;   <F/9F:<F/;G G
F
F,/
F= 
G
G)

stata2_115r   r   re  rn  
stata7_115r"  
stata9_115ru  r  c           	         U" SSSU S35      n[        UUUS9n[        USUUS9 nSn	[        S	5       He  n
 UR                  U5      nUR                  XU-   2S S 24   R                  5       nU R                  U5      n[        R                  " XS
SS9  X-  n	Mg     S S S 5        g ! [         a       M  f = f! , (       d  f       g = f)Nr'   r(   r)   r   r  T)r  r+   r  r   ru   Fr  r  r  s                r$   test_read_chunks_115TestStata.test_read_chunks_115  s    , vw4&> !5'
 '!5	

 C1XHHY/E $[[Y)>)ABGGI
!66zB
%%5TX   
 
 % 
 
r  c                 0   U" SSSS5      n/ SQnSn[        X#S9n[        USS	9 nS
n[        S5       HG  nUR                  XCS9n	U	c    O4UR                  XwU-   2S S 24   n
[        R
                  " XSS9  Xt-  nMI     S S S 5        g ! , (       d  f       g = f)Nr'   r(   r)   r  )r   cpim1r   rE   Tr  r   ru   Fr   )r   r~   r  r  rI   rL   )r6   r.   r  rF   r  r   r  r  r1  r  r  s              r$   test_read_chunks_columns"TestStata.test_read_chunks_columns  s    vw0@A*	E3-C1X<=#[[Y)>)AB
%%jUK   .--s   AB
Bc                 >   SUR                   l        SSSS.n[        R                  " 5        nUR	                  XCUS9  [        U5       nUR                  5       nS S S 5        SSSSS.nWU:X  d   e S S S 5        S	US'   [        R                  " 5        nUR	                  XCUS9  [        U5       nUR                  5       nS S S 5        WU:X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NB= f! , (       d  f       g = f)
Nr,   	City RankCity ExponentCityr   r  r=   r   )r,   r   r    r!   z	The Index)r,   r-   rI   rJ   rK   r   r  )r6   r=   r%   r  rN   r  read_labelsexpected_labelss           r$   test_write_variable_labels$TestStata.test_write_variable_labels  s    ") +/O__$  PW XT"b 002 #  $	O /111  $/ __$  PW XT"b 002 #/111	  #"  #" sG   C,	CC,D0C=D
C)	%C,,
C:=
D	D
Dc                    SUR                   l        SSSS.n[        R                  " 5        nSn[        R
                  " [        US9   UR                  XCUS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nr,   Zvery longvery longvery longvery longvery longvery longvery longvery longvery longvery longr  r  r   .Variable labels must be 80 characters or fewerr  r  r,   r-   rI   rJ   r  r  r  rK   )r6   r=   r%   r  rN   r  s         r$   test_invalid_variable_labels&TestStata.test_invalid_variable_labels6  sp    !( 0VT__$BCz5$$7 %  6 55 s#   A<	A+A<+
A9	5A<<
B
r?   r@   c                     SUR                   l        SSSS.nSUS'   [        R                  " 5        n[        R
                  " [        SS	9   UR                  XCUS
9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr,   r  r  r  r   u   invalid character Œr   z,Variable labels must contain only charactersr  r  r  )r6   r=   r%   r  rN   s        r$   $test_invalid_variable_label_encoding.TestStata.test_invalid_variable_label_encodingA  s    !( 0VT5__$"P $$7 %    s#   A?A.A?.
A<	8A??
Bc                    / SQnSSSR                  U5      S.nSn[        R                  " [        US9   [        R
                  " 5        nUR                  XSS9  S S S 5        S S S 5        SSS	S.nS
n[        R                  " [        US9   [        R
                  " 5        nUR                  XVS9  S S S 5        S S S 5        g ! , (       d  f       Nn= f! , (       d  f       Nw= f! , (       d  f       N9= f! , (       d  f       g = f)N)u   Ρ   Αu   Νu   Δr  u   Σr  r  r   r   zKVariable labels must contain only characters that can be encoded in Latin-1r  )r  zqA very, very, very long variable label that is too long for Stata which means that it has more than 80 charactersr  )joinr  r  r  rI   rJ   rK   )r6   r%   rq  variable_labels_utf8r  rN   variable_labels_longs          r$    test_write_variable_label_errors*TestStata.test_write_variable_label_errorsN  s    M   
! 	 ]]:S1"d$$T$P # 2
  2 
 ?]]:S1"d$$T$P # 21 #" 21 #" 21sG   CCCC6"C%2C6
C	C
C"%
C3	/C66
Dc                    [         R                  " SSSSSSS5      [         R                  " SSSSSSS5      [         R                  " SS	S
S	S
S	S5      /n[        / SQ/ SQUS.5      n[        R                  " 5        nUR                  USS9  [        USS9n[        R                  " X$5        UR                  USSS0S9  [        USS9n[        R                  " XE5        UR                  R                  5       R                  S5      nUR                  USUS0S9  [        USS9n[        R                  " XE5        S S S 5        g ! , (       d  f       g = f)N  r   r   .    r  R    r   r     r   r  r   applebananacherrynumsstrsdatesFr5  Tr*   r  r%  )rH   r+   )dtr   r   rI   rJ   rK   r   rL   rF   tolistr,   )r6   r  r  rN   rereaddirect	dates_idxs          r$   test_default_date_conversion&TestStata.test_default_date_conversionl  s;    KKb"b"b%8KKb"b"b%8KKaAq!T2

 '5
 __$d6D9F!!(3dgt_UD9F!!&1 ((//177@IdiQUEVWD9F!!&1 s   <C E
Ec                    [        SSS/05      nSn[        R                  " [        US9   [        R
                  " 5        nUR                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   y      ?       @y       @      @z"Data type complex128 not supportedr  )r   r  r  NotImplementedErrorrI   rJ   rK   )r6   r  r  rN   s       r$   test_unsupported_typeTestStata.test_unsupported_type  sa    cFF#3452]].c:"d!!$' # ;:"" ;:s#   A5A$A5$
A2	.A55
Bc                    [         R                  " SSSSSSS5      [         R                  " SSSSSSS5      [         R                  " SS	S
S	S
S	S5      /n[        / SQ/ SQUS.5      nSn[        R                  " [
        US9   [        R                  " 5        nUR                  USS0S9  S S S 5        S S S 5        [        R                  " SSSS9n[        / SQ/ SQUS.5      n[        R                  " [
        SS9   [        R                  " 5        nUR                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N9= f! , (       d  f       g = f)Nr  r   r   r  r  r  r  r  r   r   r  r  r  r  zFormat %tC not implementedr  r  tCr*   z1-1-1990r   zAsia/Hong_Kong)periodstzzData type datetime64)r  r   r   r  r  r  rI   rJ   rK   r   
date_range)r6   r  r  r  rN   s        r$   test_unsupported_datetype#TestStata.test_unsupported_datetype  s:   KKb"b"b%8KKb"b"b%8KKaAq!T2

 '5
 +]].c:"d!!$wo!F # ; j!8HI'5
 ]].6LM"d!!$' # NM #" ;: #" NMsH   ED6+E=E)E%E)6
E	 E
E
E&	"E))
E7c           	          Sn[         R                  " [        US9   [        U" SSSS5      SS9  S S S 5        g ! , (       d  f       g = f)	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
r  r'   r(   r)   zstata15.dtaTr  )r  r  r  r   )r6   r.   r  s      r$   test_repeated_column_labels%TestStata.test_repeated_column_labels  s>    	 ]]:S1vw>%) 211s	   9
Ac                    [        U" SSSS5      5      n[        SSSSSSS[        R                  SS/
SSSS[        R                  S	SS
SS/
S[        R                  S
SS	S	SSSS/
/ SQS.5      nU/ SQ   n[        R
                  " X25        g )Nr'   r(   r)   zstata7_111.dtar   r   r   r   r   ru   r   )
r   r    r!   ri  ry  r   gr  r  r1  )r   r   wr   )r   r   r_   r   rI   rL   )r6   r.   r   r  s       r$   test_stata_111TestStata.test_stata_111  s     vw8HIJAq!Q2661a8Aq"&&!Q1a8Aq!Q1a8F	
 01
h+r#   c                    [        S[        R                  " [        R                  5      R                  S/S[        R                  " [        R                  5      R                  [        R                  " [        R                  5      R
                  /S.5      nSn[        R                  " [        US9   [        R                  " 5        nUR                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   g      ColumnOkColumnTooBigzZColumn ColumnTooBig has a maximum value \(.+\) outside the range supported by Stata \(.+\)r  )r   r_   finfodoubleepsmaxr  r  r  rI   rJ   rK   )r6   r   r  rN   s       r$   test_out_of_range_double"TestStata.test_out_of_range_double  s     "((299"5"9"9;OP!$bhhryy&9&=&=rxx		?R?V?V W
) 	 ]]:S1"dD! # 21"" 21s$   4C>
C-C>-
C;	7C>>
Dc                    [        S[        R                  " [        R                  5      R                  [        R                  " [        R                  5      R
                  S-  /S[        R                  " [        R                  5      R                  [        R                  " [        R                  5      R
                  /S.5      nSUR                  l        U H&  nX   R                  [        R                  5      X'   M(     [        R                  " 5        nUR                  U5        [        U5      nS S S 5        US   R                  [        R                  5      US'   UR                  5       nUR                  R                  [        R                  5      Ul        [        R                   " WR#                  S5      U5        g ! , (       d  f       N= f)Nr   r  r  r,   r  )r   r_   r  ri   r  r  r,   r-   rl   rI   rJ   rK   r   rj   rk   rc   rL   r  )r6   r  r   rN   r  rp   s         r$   test_out_of_range_float!TestStata.test_out_of_range_float  sF    HHRZZ(,,HHRZZ(,,t3 HHRZZ(,,HHRZZ(,,!
 &C$M00<HM  __$d#%F  $,N#;#B#B2::#N ==?!..rxx8
f..w7B s   G		
Ginfvalc                    [        SS/SU/S.5      nSn[        R                  " [        US9   [        R
                  " 5        nUR                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r  )
WithoutInfWithInfz[Column WithInf contains infinity or -infinitywhich is outside the range supported by Stata.r  )r   r  r  r  rI   rJ   rK   )r6   r  r   r  rN   s        r$   test_infTestStata.test_inf  sj     sCjc6]KL= 	 ]]:S1"dD! # 21"" 21s#   A8A'A8'
A5	1A88
Bc                    [        S[        R                  " S5      R                  S5      -  [        R
                  " [        S5      [        S9[        R
                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9nS	UR                  l
        S
 n[        R                  " UR                  U5      n[        R                  " X$5        g s  snf )Nr   rn     r   ABCDrS   r$  i-rF   r,   r,   c                 6    [        U 5      R                  S5      $ Nr,   r   r  r  s    r$   r  -TestStata.test_path_pathlib.<locals>.<lambda>      :a=227;r#   )r   r_   r  r  r   r  r0  r  r~   r,   r-   rI   round_trip_pathlibrK   rL   r6   r  r   r  r?  s        r$   test_path_pathlibTestStata.test_path_pathlib
  s    "))C.((11HHT&\8((eBi8ibHi8G

  ;&&r{{F;
b) 9   +Cc                    [        S[        R                  " S5      R                  S5      -  [        R
                  " [        S5      [        S9[        R
                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9nS	UR                  l
        S
 n[        R                  " UR                  U5      n[        R                  " X$5        g s  snf )Nr   rn  r#  r%  rS   r$  r&  r'  r,   c                 6    [        U 5      R                  S5      $ r)  r*  r  s    r$   r  6TestStata.test_pickle_path_localpath.<locals>.<lambda>  r,  r#   )r   r_   r  r  r   r  r0  r  r~   r,   r-   rI   round_trip_localpathrK   rL   r.  s        r$   test_pickle_path_localpath$TestStata.test_pickle_path_localpath  s    "))C.((11HHT&\8((eBi8ibHi8G

  ;((f=
b) 9r1  rH   c                 R   S/ SQ0n[        US9nUS   R                  S5      US'   [        R                  " 5        nUR	                  XAS9  [        USS9 nUR                  5       nS S S 5        S S S 5        WSSSS	S
S.0:X  d   eg ! , (       d  f       N&= f! , (       d  f       N/= f)NA)BECr9  r;  r(   r   r5  Tr  r:  r<  r;  )r   r   r   r   )r   rl   rI   rJ   rK   r   r  )r6   rH   ri  r   rN   dta_iterr  s          r$   test_value_labels_iterator$TestStata.test_value_labels_iterator   s     +,AS'..,3__$KKK6D40H'446 1 
 %EFFFF 10 s#   BB'B
B	B
B&c                    [        S[        R                  " S5      R                  S5      -  [        R
                  " [        S5      [        S9[        R
                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9nS	UR                  l
        [        R                  " 5        nUR                  U5        [        US	S
9nS S S 5        [        R                  " UW5        g s  snf ! , (       d  f       N+= f)Nr   rn  r#  r%  rS   r$  r&  r'  r,   	index_col)r   r_   r  r  r   r  r0  r  r~   r,   r-   rI   rJ   rK   r   rL   )r6   r  r   rN   r  s        r$   test_set_indexTestStata.test_set_index-  s    "))C.((11HHT&\8((eBi8ibHi8G

  __$KK8F  	b&) 9 s   +C(,C--
C;column)msrJ  weekrI  qtrhalfrC  c                     [        U" SSSS5      5      nUR                  SU4   nUR                  SUS-   4   nXE:X  d   eg )Nr'   r(   r)   zstata13_dates.dtar   _fmt)r   r6  )r6   rF  r.   r   unformattedrK  s         r$   (test_date_parsing_ignores_format_details2TestStata.test_date_parsing_ignores_format_details:  sO     vw8KLMffQY'FF1fvo-.	'''r#   c                    [        SSSSSSS[        R                  " S5      SSSS-  S/S	S
SSSSS[        R                  " S5      SSSS/// SQS9n[        US   [        S9US'   [        US   [        R
                  S9US'   [        US   [        R                  S9US'   US   R                  [        R                  5      US'   [        US   [        R                  S9US'   SUR                  l        UR                  R                  [        R                  5      Ul
        UR                  5       n[        R                  " 5        nUR                  USS0S/SS9  U R!                  U5      n[        R"                  " UR%                  S5      USS9  [        R"                  " X5        S S S 5        g ! , (       d  f       g = f)Nr  r  r   r   r!  r     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai  zstring-1zobject-1z
2003-12-26r      bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr   )r  r  ra   rb   rc   ri   rj   r   r^  s2045srtlforced_strlr$  rS   ra   rb   rc   ri   r,   r   r%  rU  r@   )r+   convert_strlr=   Fr|   )r   r_   r'  r   r  ra   rb   rl   rc   ri   r,   r-   rk   rI   rJ   rK   r8   rL   r  )r6   r  rk   rN   r  s        r$   test_writer_117TestStata.test_writer_117N  s    MM,/$J MM,/<?-
\ $HX$6fE!(6"2"''B"8G#4BHHE$W-44RXX>$Xi%8

K%!..rxx8}}__$)40+_	   &*]]4%8"!!&009!&
 !!(1 s   	A"F44
Gc                    [        / SQ/ SQ// SQS9nSUR                  l        [        R                  " [
        5         [        R                  " 5        nUR                  USS/SS	9  U R                  U5      nUR                  S5      nUR                  Ul
        [        R                  " X1S
S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar9  r  )  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr:  r  )2long1long1long1long1long1long1long1long1long1long1longr   rE   r,   r]  r   r@   )rV  r=   Fr|   )r   r,   r-   rI   r   r
   rJ   rK   r8   r  rF   rL   )r6   r  rN   r  s       r$   test_convert_strl_name_swap%TestStata.test_convert_strl_name_swap  s    ')DE-
 &''(9:"d!!$fa[#!Nt,))'2!)!1!1%%fO # ;:"" ;:s$   CAC0C
C	C
C c                    [         R                  " SSSSSSS5      [         R                  " SSSSSSS5      [         R                  " SS	S
S	S
S	S5      /n[        / SQ/ SQUS.5      n[        R                  " 5        nSn[
        R                  " [        US9   UR                  USS0S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  r   r   r  r  r  r  r  r   r   r  r  r  r  z0convert_dates key must be a column or an integerr  
wrong_namer%  r*   )	r  r   r   rI   rJ   r  r  r  rK   )r6   r  r  rN   r  s        r$   test_invalid_date_conversion&TestStata.test_invalid_date_conversion  s     KKb"b"b%8KKb"b"b%8KKaAq!T2

 '5
 __$DCz5!!$|T6J!K 6 55 s$   <CB<+C<
C
	C
Cc                    [         R                  " 5       n[        S[        R                  " S5      R                  S5      -  [        R                  " [        S5      [        S9[        R                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9nS	UR                  l        [        R                  " 5        nUR                  X!S
9  UR!                  S5        [#        US5       nUR%                  UR'                  5       5        S S S 5        [)        US	S9nS S S 5        [        R*                  " UW5        g s  snf ! , (       d  f       N== f! , (       d  f       N<= f)Nr   rn  r#  r%  rS   r$  r&  r'  r,   r  r   wbrB  )r'   BytesIOr   r_   r  r  r   r  r0  r  r~   r,   r-   rI   rJ   rK   seekopenwriter  r   rL   )r6   r=   bior  r   rN   dtar  s           r$   test_nonfile_writingTestStata.test_nonfile_writing  s     jjl"))C.((11HHT&\8((eBi8ibHi8G

  __$KKK-HHQKdD!S		#((*% "8F  	b&) 9 "! s*    E -E. EE
E	E
E$c                    [        S[        R                  " S5      R                  S5      -  [        R
                  " [        S5      [        S9[        R
                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9nS	UR                  l
        [        R                  " 5        n[        R                  " US
5       nUR                  USS9  S S S 5        [        R                  " US5       n[!        US	S9nS S S 5        S S S 5        [        R"                  " UW5        g s  snf ! , (       d  f       N]= f! , (       d  f       ND= f! , (       d  f       NM= f)Nr   rn  r#  r%  rS   r$  r&  r'  r,   re  r?   r  rbrB  )r   r_   r  r  r   r  r0  r  r~   r,   r-   rI   rJ   gzipGzipFilerK   r   rL   )r6   r  r   rN   gzr  s         r$   test_gzip_writingTestStata.test_gzip_writing  s    "))C.((11HHT&\8((eBi8ibHi8G

  __$tT*bB, +tT*b#B': + 
 	b&) 9 +*** sB   +D',ED,E4D=?E,
D:	6E=
E	E
Ec                     U R                  U" SSSS5      5      n/ SQn/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/n[        XCS9n[        R                  " X%5        g )Nr'   r(   r)   zstata16_118.dta)utf8latin1ascii	utf8_strl
ascii_strl)   ραηδαςu   PÄNDÄSpr{  r|  )   ƤĀńĐąŜ   Ör   r}  r   )   ᴘᴀᴎᴅᴀS   Ünr  r  )      r  ri  r  ri  ) r   r   r  r   )r   r   r  r   r  )r   r   r  r   r  rE   )r8   r   rI   rL   )r6   r.   
unicode_dfrF   rq  rp   s         r$   test_unicode_dta_118TestStata.test_unicode_dta_118  sW    ]]8D&'CT#UV
HB<D4$""
 V5
j3r#   c                    SSS.S SS./n[        U5      nUR                  R                  S5      Ul        [        R                  " 5        nUR                  USSS9  [        U5      nUR                  S	5      n[        R                  " X45        S US
'   UR                  USS
/SS9  [        U5      nUR                  S	5      n[        R                  " X45        S S S 5        g ! , (       d  f       g = f)N  stringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringr   )mixednumberr   rc   Fr@   rG   r   r  )rH   rV  r=   )	r   r  rl   rI   rJ   rK   r   fillnarL   )r6   outputrN   r  rp   s        r$   test_mixed_string_strl TestStata.test_mixed_string_strl  s    *a8DTU:VW6",,W5__$OODeSOA%F}}R(H!!&3 #F7OOO%wi    %F}}R(H!!&3 s   BC""
C0c                    SSS.S SS./n[        U5      nS US'   [        R                  " 5        n[        R                  " [
        SS9   UR                  X1S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nnoner   )r  r  r   z Column `none` cannot be exportedr  r  )r   rI   rJ   r  r  r  rK   )r6   r=   r  rN   s       r$   test_all_none_exception!TestStata.test_all_none_exception  sp    !Q/$!1LM6"v__$z1ST6 U TT s#   A<
A+A<+
A9	5A<<
B
c                    Sn[        U/S/S9n[        R                  " 5        nSnSn[        R                  " [
        U SU 3S9   UR                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nu9   Here is one __�__ Another one __·__ Another one __½__invalidrE   z\'latin-1' codec can't encode character '\\ufffd' in position 14: ordinal not in range\(256\)zP'ascii' codec can't decode byte 0xef in position 14: ordinal not in range\(128\)|r  )r   rI   rJ   r  r  UnicodeEncodeErrorrK   )r6   r=   contentr   rN   msg1msg2s          r$   test_invalid_file_not_written'TestStata.test_invalid_file_not_written  s    My9+6__$? 
/  1D64&9IJD! K  KJ s#   #A;A*A;*
A8	4A;;
B	c                 ^   [        S/S-  S/S-  /SS/S9n[        R                  " 5        nUR                  USS/S9  [	        US	5       nUR                  5       nSnUR                  S
5      U;   d   eUR                  S5      U;   d   eUR                  S5      S   SS nUR                  S5      SS   HA  nUR                  S5      S   nXwR                  S5      S-      n	[        U5      U	S-
  :X  a  MA   e   S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Npandasr   u   þâÑÐÅ§var_strvar_strlrE   r@   )r=   rV  ro  zlatin-1zutf-8s   strlsr   r  s   GSO       )
r   rI   rJ   rK   rh  r  encodesplitfindr  )
r6   r  rN   r  r  rp   gsosgsor  sizes
             r$   test_strl_latin1TestStata.test_strl_latin1  s%   Z!^n-12Y
<S
 __$OOD#ZLOIdD!V ++-)y1W<<<w/7:::}}X.q1!B7::f-ab1C))G,R0Cxx0145Ds8tax/// 2 " !! s*   DB)D8D<D
D	D
D,c                 P   SnU" SSSS5      n[         R                  " [        SS9 n[        U5      n[	        U5      S:X  d   eUS	   R
                  R                  S	   U:X  d   e S S S 5        [        S
//S-  S/S9n[         R                  " WU5        g ! , (       d  f       N6= f)Na  
One or more strings in the dta file could not be decoded using utf-8, and
so the fallback encoding of latin-1 is being used.  This can happen when a file
has been incorrectly encoded by Stata or some other software. You should verify
the string values returned are correct.r'   r(   r)   zstata1_encoding_118.dtaonce)filter_levelr   r   u   Düsseldorf   r;  rE   )	rI   r   UnicodeWarningr   r  messagery  r   rL   )r6   r.   r  rN   r  r>  rp   s          r$   test_encoding_latin1_118"TestStata.test_encoding_latin1_118+  s    + fg/HI''VLPQ &Gq6Q;;Q4<<$$Q'3...	 M }o.4{mL
gx0 MLs   ?B
B%c                    [         R                  " U" SSSS5      S5       n[        U5       nUR                  5         UR                  S:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr'   r(   r)   zstata1_119.dta.gzro  i  )rp  rh  r   r  _nvar)r6   r.   rr  r  s       r$   test_stata_119TestStata.test_stata_119?  sm    
 YYT67,?@$
RF##%||u,,, !
 
 !
 
s"   A3#A"A3"
A0	,A33
B)rA   rB   Nc                 b   [         R                  " / SQSS9n[        / SQ/ SQ/ SQ// SQS9nX#S	'   S
SSSSS.nSnSSSSS.0nUS   R                  [        R
                  5      US'   [        R                  " 5        n[        UUUS/USUUS9nUR                  5         [        U5      n	US   R                  S5      US'   US   R                  US   5      R                  S5      R                  R                  5       US'   [        R                  " X95        [!        U5       n
U
R"                  U:X  d   eU
R%                  5       U:X  d   e S S S 5        UR'                  XqSS9  [        U5      n[        R                  " X;5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)N)r      β   ĉTr   )r   r   u   ᴬu   ᴀ relatively long ŝtring)r  r   u   ᴮr   )r   r   u   ᴰN)   År  r  strlsrE   	   ᴐᴬᵀr  u	   ᵈᵉᵊu   ᴎტჄႲႳႴႶႺzLong Stringsr   )r  r  r  r  r  u   ᴅaᵀa-labelr  labelu   æøåu   ŋot valid latin-1r   r   r   r  F)r  rV  r  rH   r=   r  r   )r=   rH   )r   r  r   rl   r_   rc   rI   rJ   r   
write_filer   r  replacer   rd  rL   r   r  r  rK   )r6   r=   r   r(   r  r  r  rN   writerr@  r  reread_to_statas               r$   test_utf8_writerTestStata.test_utf8_writerK  s   nn.=>#%
 0
  [,#
 &
'h;OPQ$Z&&rxx0T
__$$%%Y /!)	F '-N M004DM T
""<#56==jIMMXXZ J !!$7T"f((J666--/?BBB # MM$UMC(.O!!$85 ( #") s%   =B&F #)F9F 
F	F  
F.c                    [        [        R                  " S[        R                  S95      n[        R
                  " 5        n[        R                  " [        SS9   [        X!SS9  S S S 5        S S S 5        [        R
                  " 5        n[        R                  " [        SS9   [        X!SS9  S S S 5        S S S 5        g ! , (       d  f       Na= f! , (       d  f       Nj= f! , (       d  f       N9= f! , (       d  f       g = f)	N)r   i  rS   z"version must be either 118 or 119.r  r@   r  zYou must use version 119rA   )
r   r_   zerosra   rI   rJ   r  r  r  r   )r6   r   rN   s      r$   test_writer_118_exceptions$TestStata.test_writer_118_exceptions}  s    rxx
"'':;__$z1UV#6 W  __$z1KL#6 M  WV  ML sH   CC'CC5&C$1C5
C	C
C!$
C2	.C55
Ddtype_backendnumpy_nullablepyarrow)marksc                    [        / SQ/ SQ/ SQ/ SQ[        R                  " SSSS9S	.[        R                  " / S
QSS9S9nUR	                  US9nUR                  SSS9  [        R                  " 5        nUR                  U5        U R                  U5      nS S S 5        [        SS[        R                  // SQSS[        R                  // SQ[        R                  " SSSS9S	.[        R                  " / S
QS[        R                  S9S9n[        R                  " WR                  S5      U5        g ! , (       d  f       N= f)N)r   r   Nr   )TFN)g      ?g      @g      @z
2020-12-31r   D)r  freqrx  r   r   r   r,   r  r,   )r  ztest_stata.dtarA   r  r   r   r   r   )r-   rT   )r   r   r  r  convert_dtypesrK   rI   rJ   r8   r_   r   rc   rL   r  )r6   r  r   rN   r  rp   s         r$   test_read_write_ea_dtypes#TestStata.test_read_write_ea_dtypes  s   
 !$($]]<E ((973	
 ];
$c2__$KK%)]]4%8"  BFF^$1bff%$]]<E ((97"((C	
 	4>>wGR s   6#D66
Er"   N)g__name__
__module____qualname____firstlineno__r8   r   r  markparametrizerP   rr   r   r   r   r   r   r   r  r  r  r(  r1  r8  rA  rL  r[  ra  rj  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r3  rO  rV  r\  filterwarningsrf  rk  rs  r  r  r  r  staticmethodr   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r_   infr   r/  r6  r?  rD  rN  rW  r^  rb  rl  rs  r  r  r  r  r  r  slowr  r  r  paramri  
skip_if_nor  __static_attributes__r"   r#   r$   r2   r2   9   s   40 [[Y(BC7 D7 [[Y(BC I D ID [[Y(BC
H D
H [[VlL%AB0 C0"<T| [[H
0
0 [[H)0)0XG&FPS  [[Y(BC D(
+ [[Y(BC; D;S6 [[Y(BC#S D#SJS$ [[Y(BC[[HS DS [[H00  [[Y(BC7 D7 [[Y(BC, D,@& [[Y(BC@ D@"<SS(S//S8S [[Y(BC[[[3*5 @ 6 D @D4"($"> [[V%OP0 Q09
v4</b [[Y(BC[[F2- D2-h$< [[Y(BC- D-. [[Vm]%CD! E!F [[Vm]%CD8 E8  [[Vm]%CD	9 E	9 [[ 56[[	
  [[[1a&1[[3eT]C[[_udm<! = D 2! 7(!:  y  34 [[ 56[[	
 [[[1a&1[[3eT]C[[_udm<! = D 2 7&!@!  [[Y(BC2 D2. [[Y(BC D [[Yc
3
 4
Q<2:((>$, " C8 [[X'89	" :	"	*	* [[]T5M:
G ;
G* [[E(("E2NPL( [[Y(BC* D*"*4"4* [[Y(BC7 D7 [[Y(BC" D"0&1( [[	- 	- [[Y(89/9 :/9b7 [[	6<<	y9QRSS	Sr#   r2   r=   )i   l   o   q   r?   c                     U" SSS5      n[         R                  R                  US5      n[         R                  R                  USU  S35      n[        U5      n[        U5      n[        R
                  " XeSS9  g )	Nr'   r(   r)   stata-compat-118.dtazstata-compat-r   Fr   )r  rN   r  r   rI   rL   )r=   r.   	data_baserefoldrp   old_dtas          r$   test_backward_compatr    sd    vw/I
'',,y"8
9C
'',,yM'$"?
@C#HoG'?r#   c                 r   U " SSSS5      n[        U5       nUR                  5       R                  (       a   e[        UR                  [
        R                  5      (       a   e S S S 5        [        US5       n[        U5       nUR                  5       R                  (       a   eUR                  UL d   e S S S 5        S S S 5        [        US5       n[
        R                  " UR                  5       5       n[        U5       nUR                  5       R                  (       a   eUR                  UL d   e S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NR= f! , (       d  f       N[= f! , (       d  f       g = f)Nr'   r(   r)   r  ro  )r   r  emptyr   _path_or_bufr'   rf  rh  )r.   monkeypatch	file_pathr  fprj  s         r$   test_direct_readr    s?   vw0FGI 
Y	6;;=&&&&f112::>>>>> 
  
i	"_{{}****&&",,,  
 
i	"ZZ	"cS!V!;;=....**c111 " # 
	 
 	 _ 
	 "! #" 
	sl   AE9E53E$9E5%F(:F3F:FF(
E!$
E2	.E55
F
FF
F%	!F((
F6c                 <   U " SSSS5      n[         R                  " [        SS9   [        U5      nUR	                  5         S S S 5        [         R                  " [
        SS9   WR                  5         S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nr'   r(   r)   r  zwithout using a context managerr  zis not part of the public API)rI   r   ResourceWarningr   r  FutureWarningclose)r.   r  r  s      r$   0test_statareader_warns_when_used_without_contextr    s    vw0FGI		#	#/
 #
	
 
	#	#-
 	
	
 

 

 
s   A<"B<
B

Br>   use_dictTFinferc                 J   SnU (       a  U(       a  U nOX@   nUSU 3-  nU nU(       a  SnU(       a  SU 0n[        [        R                  R                  S5      R	                  S5      [        S5      S9nS	UR                  l        [        R                  " U5       n	UR                  XUS
9  U S:X  aF  [        R                  " U	S5       n
[        R                  " U
R                  5       5      nS S S 5        GOU S:X  aT  [         R"                  " U	S5       n
[        R                  " U
R                  U
R$                  S   5      5      nS S S 5        GOsU S:X  ae  [&        R                  " U	5       n[        R                  " UR)                  UR+                  5       S   5      R                  5       5      nS S S 5        GOU S:X  aE  [,        R                  " U	S5       n
[        R                  " U
R                  5       5      nS S S 5        OU S:X  aV  [.        R0                  " S5      nUR                  U	S5       n
[        R                  " U
R                  5       5      nS S S 5        OaU S:X  aV  [.        R0                  " S5      nUR                  U	S5       n
[        R                  " U
R                  5       5      nS S S 5        OU c  U	n[3        WS	S9nS S S 5        UR5                  5       nUR                  R7                  [        R8                  5      Ul        [        R:                  " WU5        g ! , (       d  f       Nv= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nzdta_inferred_compression.dtar  r  methodr   r+  r,  rE   r,   )r=   compressionrp  ro  r  rr   tarbz2zstd	zstandardxzlzmarB  )r   r_   r-  r.  r/  r0  r,   r-   rI   rJ   rK   rp  rh  r'   rf  r  zipfileZipFilefilelisttarfileextractfilegetnamesr  r  importorskipr   rk   rl   rc   rL   )r  r=   r  r  compression_to_extension	file_namefile_extcompression_argr   rN   compr  r  r   r  r  rp   s                    r$   test_compressionr    s    /I"H/<Hq
^#	!O!#[1	
		a 0094:
B BHHM		#t
DG& 4&$ZZ		, '&E!s+tZZ		$--*: ;< ,+E!d#sZZq0A B G G IJ $#E!$%ZZ		, &%F"&&{3D4&$ZZ		, '&D &&v.D4&$ZZ		, '& BB'21 
$4 wwyH^^**2884HN&(+3 '& ,+ $# &% '& '&) 
$	#s   .N
%L./'N3L?	&N/AM4'N%M! 7N7%M27N%N8N.
L<	8N?
M		N
M	N!
M/	+N2
N 	<N
N	N
N"r  r  r  )Nrk  r  c                 N   SU 3nSn[        [        R                  R                  S5      R	                  S5      [        S5      S9nSUR                  l        [        R                  " U5       nXS.nUR                  XVS	9  U S
:X  d  US
:X  a  [        R                  " US5       n[        UR                  5      S:X  d   eUR                  S   R                  U:X  d   e[         R"                  " UR%                  UR                  S   5      5      nS S S 5        OUn['        WSS9n	S S S 5        UR)                  5       n
U
R                  R+                  [        R,                  5      U
l        [        R.                  " W	U
5        g ! , (       d  f       Nv= f! , (       d  f       Nu= f)Ntest.ztest.dtar   r+  r,  rE   r,   )r  archive_namer  r  r  r   r   rB  )r   r_   r-  r.  r/  r0  r,   r-   rI   rJ   rK   r  r  r  r  filenamer'   rf  r  r   rk   rl   rc   rL   )r  r  r  r  r   rN   r  zpr  r  rp   s              r$   test_compression_dictr    sL    z"IL	
		a 0094:
B BHHM		#t!'F
D2U?h%/s+r2;;'1,,,{{1~..,>>>ZZA 78 ,+
 BB'2 
$ wwyH^^**2884HN&(+ ,+	 
$	#s%   .7F%A-FF
F	F
F$c                 r   [        S[        / SQSS905      nSUR                  l        UR	                  5       nUR                  R                  [        R                  5      Ul        [        R                  " 5        nUR                  X0S9  [        USSS	9 n[        U5       H_  u  pVUR                  S5      nSU;   d   e[        R                  " UR                  UR                  R                   SU-  SUS
-   -   5        Ma     S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Ncats)r   r    r   r    r!   r   rS   r,   r  r   F)r  r  r   )r   r   r,   r-   rk   rl   r_   rc   rI   rJ   rK   r   	enumerater  rm   r  r  )r=   r   rp   rN   r  r  blocks          r$   test_chunked_categoricalr  (  s    	FF#<JOP	QBBHHMwwyH^^**2884HN		d
D*uE%f-0&&&JJ 2 21q51A; G . F 
	EE 
	s%   <D(A/DD(
D%	!D((
D6c           	      0   U " SSSS5      n/ SQn[        USS9 n[        R                  " [        5         [	        U5       H  u  pE[        UR                  5      USU-  SUS-   -   :X  d   eUS:  a  [        R                  " S	S
/5      nO[        R                  " S/SS9n[        R                  " UR                  R                  R                  U5        M     S S S 5        S S S 5        [        R                  " [        5         [        USS9 nUR                  5       nS S S 5        S S S 5        [        U5      n[        R                  " UW5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       Nd= f)Nr'   r(   r)   stata-dta-partially-labeled.dta)r   r    r   r    r   r   r  r   r   r    r   rj   rS   ru   )r   rI   r   r	   r  r0  r  r   r  r  r   r   __next__r   rL   )	r.   dta_filerq  r  r  r  idxlarge_chunkr  s	            r$    test_chunked_categorical_partialr#  ;  s8   fg/PQH&F	X	+v''(DE%f-EJJ'6!a%!q1u++FFFFq5((C:.C((C5	:C%%ejjnn&?&?E . F 
, 
	#	#$@	AQ/6 //+K 0 
B !F&+. FE 
,	+ 0/ 
B	AsG   E%B&EE%FE6!F
E"	E%%
E36
F	 F
Fr  )r  r   r  c                     U " SSSS5      n[         R                  " [        SS9   [        X!S9    S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr'   r(   r)   r  zchunksize must be a positiver  r  )r  r  r  r   )r.   r  r   s      r$   test_iterator_errorsr%  N  sL    fg/PQH	z)G	H7 8 
I	H77 
I	Hs!   
AAA
A	A
A!c                     SS/S/S-  -   n [        [        S5       Vs0 s H  nSU 3[        R                  " U SS9_M     sn5      n[        R
                  " 5        nUR                  US	S
9  [        R                  " / SQSS9n[        USS9 n[        U5       H{  u  pg[        S5       H;  n[        R                  " UR                  R                  U   R                  U5        M=     [        R                  " XrR                  US-  US-   S-   5        M}     S S S 5        S S S 5        g s  snf ! , (       d  f       N= f! , (       d  f       g = f)Nc_labelb_labela_labelr  r   r   Tr   Fr5  )r)  r(  r'  r  rS   r  r  r   )r   r~   r   r  rI   rJ   rK   r  r   r  r  rn   r  r   rL   )	rq  r  r   rN   rp   r  r1  r  r  s	            r$   test_iterator_value_labelsr*  V  s   #ykC&77F	USTXVXc!Ir~~fdCCXV	WB		d
De,88=XN,%f-qA))%,,*;*;A*>*I*I8T "%%eWWQWA}-MN . - 
	 W -, 
	s*   #D+2EBD0E0
D>	:E
Ec            	         [        [        S [        S5       5       5      [        S [        S5       5       5      //SS/S9n [        R                  " 5        n[        R
                  " [        SS	9   U R                  US
S9  S S S 5        [        U5      n[        [        R                  [        R                  /SS/S9n[        R                  " UR                  U5        UR                  S   U R                  S   :X  d   eUR                  S   [        U R                  S   5      :X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc              3   ,   #    U  H
  nS U-  v   M     g7fr   Nr"   .0r  s     r$   	<genexpr>&test_precision_loss.<locals>.<genexpr>f  s     &IqadI   <   c              3   ,   #    U  H
  nS U-  v   M     g7fr-  r"   r.  s     r$   r0  r1  f  s     +D)QAqD)r2  4   biglittlerE   z&Column converted from int64 to float64r  Fr5  r  )r   r7  )r   r6  )r   sumr~   rI   rJ   r   r   rK   r   r   r_   rj   rm   rn   r6  float)r   rN   r  expected_dts       r$   test_precision_lossr;  d  s   	
&E"I&
&+D%)+D(D	EF!
B 
	d''!)Q
 KK%K0
 D!bjj"**5eX=NO
v}}k:zz+&"&&*====zz(#uRVVH-='>>>> 
	
 
 
	s%   E1D7B+E7
E	E
Ec                    [        / SQ/ SQ/SS// SQS9nSUR                  l        [        R                  " 5        nUR                  X S9  [        X SS	9n[        R                  " X5        [        R                  " X 5       n[        R                  " UR                  5       5      nS S S 5        [        WSS
9n[        R                  " X5        S S S 5        g ! , (       d  f       N7= f! , (       d  f       g = f)Ng~Ϛ?g9DܜJ?g>D)?g.4i(@g33333@g̤Ar9  r:  XYZr  r,   r  r  rC  rB  )r   r,   r-   rI   rJ   rK   r   rL   decompress_filer'   rf  r  )r  r   rN   r  fhcontentss         r$   test_compression_roundtriprG  u  s    		')GHCj
B
 BHHM		d
D2DWM
b) 2bzz"''),H 3H8
b) 
	 32 
	s$   AC)%C'(C)
C&	"C))
C7to_infer
read_inferc                 P   U nX4   nSU 3n[        / SQ/ SQ/SS// SQS9nSUR                  l        U(       a  S	OUnU(       a  S	OUn	[        R                  " U5       n
UR                  XS
9  [        XSS9n[        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nr  r=  r>  r9  r:  r?  r  r,   r  r  rC  )r   r,   r-   rI   rJ   rK   r   rL   )compression_onlyrI  rH  r  r  extr  r   to_compressionread_compressionrN   r?  s               r$   test_stata_compressionrO    s    
 #K
"
/Cse}H		')GHCj
B
 BHHM (WkN",w+		"d
D5D'R
f) 
#	"	"s   0B
B%c            	         [        / SQSS[        R                  S[        R                  // SQ[        R                  " / SQ5      S.5      n [
        R                  " 5        nSS	S
S.SS	S.S.n0 UESSSSS.0En[        XUS9nUR                  5         [        U5       nUR                  5       nXc:X  d   e S S S 5        Sn[        R                  " [        US9   SSSS.0n[        XUS9  S S S 5        Sn[        R                  " [        US9   SSSSSS.0n[        XUS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N_= f! , (       d  f       N9= f! , (       d  f       g = f)N)r   r   r   r   r   r   r  g      "@)r   r   r   r   r   )r1  r  r  r  r1  )fully_labelledpartially_labelledrA  rB  r   r   r   r  )r   r  )rQ  rR  rB  r1  r  r  r  r  zCCan't create value labels for notY, it wasn't found in the dataset.r  notYr  r  )r   r   zUCan't create value labels for Z, value labels can only be applied to numeric columns.r   r  r   )r   r_   r   r   r  rI   rJ   r   r  r   r  r  r  r  r  )r(   rN   r  rp   r  r  reader_value_labelsr  s           r$   !test_non_categorical_value_labelsrV    sZ   -#&RVVS"&&"A! 9:		
D 
	d"'Eg>(-E":
 ClBCSSS)ABTlC&"("5"5"7&222  T]]83/"X$>?L> 0
6 	 ]]:S1SSSS!ABL> 2/ 
	 
 0/ 21/ 
	sT   !>E(D58#E(E-#E(E$E(5
E	?E(
E	E(
E%	!E((
E6c                     [        / SQ/ SQ/ SQ/ SQ/ SQS.5      n SSS.SSS.S	S
S.SS0SS0S.nSSS.SSS.S	S
S.SS0SS0S.n[        R                  " 5        n[        R                  " [        5         U R                  X1S9  S S S 5        [        U5       nUR                  5       nXR:X  d   e S S S 5        S S S 5        g ! , (       d  f       NC= f! , (       d  f       N(= f! , (       d  f       g = f)N)r   r   r   r   ru   r   )r   r   r   r   r   r   )r   ru   ru   r   r   r   rO  )z	invalid~!	6_invalid&invalid_name_longer_than_32_characters	aggregater   r   r  r  r[  r   r   )r   r   ru   r   r   r   )	invalid__
_6_invalid invalid_name_longer_than_32_char
_aggregate_1__2_rS  )r   rI   rJ   r   r
   rK   r   r  )r(   r  rp   rN   r  rU  s         r$   0test_non_categorical_value_label_name_conversionra    s    ++6H+&	
D "h/!h/6=&2I[GL "h/"x007F,C&kg,H 
	d''(9:MM$M: ; &"("5"5"7&222 	 
	:: 	 
	s<   C%6CC%C2C%
C	C%
C"	C%%
C3c                     SSSSS.0n [        S/ SQ05      n[        R                  " 5        nUR                  X S9  [	        USS9 nUR                  5       nS S S 5        WU :X  d   eSnS	S
R                  S/5      -   nSU SU S
3n[        R                  " [        US9   [        USS9  S S S 5        S S S 5        g ! , (       d  f       Nk= f! , (       d  f       N(= f! , (       d  f       g = f)Nrepeated_labelsTenzMore than ten)r   r   (   )r   r   r   r   re  re  rS  Fr  zQ--------------------------------------------------------------------------------

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:
r  T)r   rI   rJ   rK   r   r  r  r  r  r  r   )r  r(   rN   r  rU  r   repeatsr  s           r$   ;test_non_categorical_value_label_convert_categoricals_errorrh    s     	?PL 7	
D 
	dd6E:f"("5"5"7 ;"l222!DII.?$@@  		 

 ]]:S1t$7 2+ 
	 ;:$ 21+ 
	s<   CB=A	C!C,C=
C	C
C	C
C-rT   c                 .   [        [        / SQ5      [        S[        R                  [        R                  /U R                  S9[        / SQ5      S.5      nUR
                  R                  R                  R                  nUR                  SS5      nUS:X  a  S	nOUS
:X  a  Sn[        R                  U   n[        U5      n[        SXU/[        SS9n[        / SQSS9n[        R                  " 5        nUR                  USUS9  [        USS9n	[        R                   " UR"                  U	R"                  5        [        R                   " U	R
                  U5        [        R                   " U	R$                  U5        S S S 5        g ! , (       d  f       g = f)Nr  r   rS   )r   r    Nr   ur   rd   rc   boolra   r    r  )r   r    r   r!   r  FrG   Tr+  )r   r   r   NAr-   r    rT   numpy_dtyper  r   BASE_MISSING_VALUESr  rI   rJ   rK   r   rm   r   r!   )
rT   r=   r   
dtype_namevaluer0  
expected_b
expected_crN   r  s
             r$   test_nullable_supportrs  	  s6     
(BEE255)<()	

B '',,J##C,JW
	v	
11*=E
E
"CCV#>JS1J		d
DeW=D$7
rttVXX.
vxx4
vxx4 
		s   4B	F
Fc                  (   [        [        S5      / SQS.S9R                  S5      n [        R                  " 5        nU R                  USSS9  [        U5      nS	U;   d   e[        [        R                  " S
5      [        R                  " S5      S.5      n[        R                  " UR                  U5        [        US/S9nS	U;  d   e[        R                  " UR                  UR                  S/   5        S S S 5        g ! , (       d  f       g = f)Nr   r  r{   r=  r   Fr@   rG   r    rc   rj   r   rE   )r   r~   r  rI   rJ   rK   r   r   r_   rT   rm   rn   r6  )r   rN   df2rn   df3s        r$   test_empty_framerw  >	  s     
eAh_=	>	C	CA	FB		d
DeS9czzbhhw/bhhy6IJK
szz62u-#~~
szz6::se+<= 
		s   B>D
D)Er  r   r  rp  r'   r  r  r  r  numpyr_   r  pandas.util._test_decoratorsutil_test_decoratorsri  r  r   r   pandas._testing_testingrI   pandas.core.framer   r   pandas.io.parsersr   pandas.io.statar	   r
   r   r   r   r   r   r   r   fixturer%   r0   r2   r  r  r  r  r  r  r  r  r#  r%  r*  r;  rG  rO  rV  ra  rh  BooleanDtype	Int8Dtype
Int16Dtype
Int32Dtype
Int64Dtype
UInt8DtypeUInt16DtypeUInt32DtypeUInt64Dtypers  rw  r"   r#   r$   <module>r     s   
    	 	      ) )  # 
 '
 
 
    nS nSb; $=>@ ?@2. $>?dE]34-0., 1 4 @.,b E7#34%9:, ; 5,0 $>? @$/& &67 8O?"*( dE]3e}5* 6 4*0#?L"3J#8L $>?









5 @56>r#   