
    A>i                    ~   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rS SKrS SKJ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(  \RR                  S 5       r*\RR                  S	 5       r+ " S
 S5      r,\RZ                  R]                  S/ SQ5      S 5       r/\RZ                  R]                  SSS/5      S 5       r0\RZ                  R]                  SS/5      S 5       r1\RZ                  R]                  S/ SQ5      S 5       r2\RZ                  R]                  SSS/5      S 5       r3S r4\RZ                  R]                  S/ SQ5      \RZ                  R]                  SSS/5      \RZ                  R]                  SSS/5      S 5       5       5       r5\RZ                  R]                  SSS/5      \RZ                  R]                  S / S!Q5      S" 5       5       r6\RZ                  R]                  S/ SQ5      S# 5       r7S$ r8\RZ                  R]                  S%S&5      S' 5       r9S( r:S) r;S* r<\RZ                  R]                  S+SS/5      \RZ                  R]                  S,SS/5      S- 5       5       r=S. r>S/ r?S0 r@\RZ                  R]                  S/ SQ5      \RZ                  R]                  S1\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  /	5      S2 5       5       rJS3 rK\RZ                  R]                  S/ SQ5      S4 5       rL\RZ                  R]                  S/ S5Q5      S6 5       rM\RZ                  R]                  S/ S5Q5      S7 5       rNg)8    N)datetime)Pandas4Warning)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        Y/var/www/html/land-tabula/venv/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%   r1   r1   4   s3    vw0@AIIT:J#Jr$   c            
       D   \ 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	Q5      S
 5       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Q5      S 5       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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                  S0S1S2/5      S3 5       5       r*S4 r+S5 r,S6 r-S7 r.\R                  R                  S/ S8Q5      S9 5       r/\R                  R                  S/ S:Q5      S; 5       r0\R                  R                  SS<S=/5      S> 5       r1S? r2S@ r3SA r4\R                  R                  S/ SQ5      \R                  Rk                  SB5      SC 5       5       r6SD r7\R                  R                  S/ SQ5      SE 5       r8\R                  R                  SSFSG/5      SH 5       r9\R                  R                  SSISJ/5      SK 5       r:\R                  R                  SSFSG/5      SL 5       r;\R                  Rk                  SM5      \R                  R                  S/ SNQ5      \R                  R                  SOSPSQ/5      \R                  R                  SRSSST/5      \R                  R                  SUSSST/5      SV 5       5       5       5       5       r<\=SW\>SX\>4SY j5       r?SZ r@\R                  Rk                  SM5      \R                  R                  S/ S[Q5      \R                  R                  SOSPSQ/5      \R                  R                  SRSSST/5      \R                  R                  SUSSST/5      S\ 5       5       5       5       5       rAS] rB\R                  R                  S/ SQ5      S^ 5       rC\R                  R                  S/ SQ5      S_ 5       rD\R                  R                  SS`Sa/5      Sb 5       rESc rFSd rGSe rHSf rISg rJSh rKSi rLSj rM\R                  R                  Sk\NR                  \NR                  * /5      Sl 5       rPSm rQ\R                  R                  SnSTSS/5      So 5       rRSp rS\R                  R                  Sq/ SrQ5      Ss 5       rT\R                  R                  S0StSu/5      Sv 5       rUSw rVSx rW\R                  R                  S/ SQ5      Sy 5       rXSz rY\R                  R                  S/ S{Q5      S| 5       rZS} r[\R                  R                  S/ SQ5      S~ 5       r\\R                  R                  S/ SQ5      S 5       r]S r^S r_\R                  R                  S 5       ra\R                  R                  S/ SQ5      \R                  R                  S0StSu/5      S 5       5       rbS rc\R                  R                  SS\R                  " S\eR                  " S5      S9/5      S 5       rg\R                  R                  S/ SQ5      S 5       rh\R                  R                  S/ S:Q5      S 5       ri\R                  R                  SS<S=/5      S 5       rjSrkg)	TestStata<   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   r6   s     r%   r	   TestStata.read_csvA   s    $//r$   versionr   u   v   w   Nc                     [        S/S9nUnUR                  USUS9  [        U5      n[        R                  " X55        g )NunitcolumnsFwrite_indexr>   r   to_statar   tmassert_frame_equal)r7   r>   	temp_fileempty_dspath	empty_ds2s         r%   test_read_empty_dtaTestStata.test_read_empty_dtaD   s@    fX.$E7Ct$	
h2r$   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nUR                  USUS9  [        U5      nU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"                  " Xe5        [         R$                  " UR&                  UR&                  5        g )Nr   dtype)
i8i16i32i64u8u16u32u64f32f64FrH   r[   r\   r]   r^   rZ   )r   nparrayint8int16int32int64uint8uint16uint32uint64float32float64rK   r   astyperL   rM   assert_series_equaldtypes)r7   r>   rN   empty_df_typedrP   empty_rereadexpecteds          r%   test_read_empty_dta_with_dtypes)TestStata.test_read_empty_dta_with_dtypesM   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
 %I!$'!!$..rww7"5/00:"5/00:"5/00:"5/00:
h5
x0C0CDr$   c                 @   [        [        S5      / SQS.5      nUnUR                  USUS9  [        U5      n[	        UR
                  [        R                  5      (       d   eUnUS   R                  [        R                  5      US'   [        R                  " XVSS9  g )	N   )b1b2b3b4b5r    r!   FrH   r    Tcheck_index_type)r   rangerK   r   
isinstancer-   pd
RangeIndexrm   ra   re   rL   rM   )r7   r>   rN   dfrP   read_dfrr   s          r%   test_read_index_col_none"TestStata.test_read_index_col_noneq   s    U1X,JKL
DeW=T"'--7777 ,,RXX6
g$Gr$   )f   g   h   i   l   n   o   q   r@   s   rA   rB   rC   c                    U" S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'   US	::  a  UR                  S
SSSSS.S9n[        R                  " XE5        g )Nr(   r)   r*   stata1_.dta
float_missdouble_miss	byte_missint_miss	long_missrF   r   r   f_missd_missb_missi_missl_miss)	r9   r   ra   nanrm   rk   renamerL   rM   )r7   r>   r/   r8   parsedrr   s         r%   test_read_dta1TestStata.test_read_dta1~   s     fg	/FGt$ ffbffbffbffbff56W
 "*,!7!>!>rzz!J c>"*#+!) (!) ' H 	f/r$   c                 2   [         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   R                  S5      US'   US   R                  S5      US'   US   R                  S5      US'   US    R                  S5      US '   US!   R                  S5      US!'   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S)n[        R                  " [        US*9   U R                  U5      nS S S 5        [        R                  " [        US*9   U R                  U5      nS S S 5        [        R                  " [        US*9   U R                  U5      n	S S S 5        [        R                  " WU5        [        R                  " WU5        [        R                  " W	U5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nv= 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_daterF   r   M8[ms]r   M8[s]r   r   r   r   r   r(   r)   r*   zstata2_114.dtazstata2_115.dtazstata2_117.dtaz Leaving in Stata Internal Formatmatch)r   from_recordsr   r   NaTrm   rL   assert_produces_warningUserWarningr9   rM   )
r7   r/   rr   path1path2path3msgr1   
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"
H "*,!7!>!>x!H#F+227;"*="9"@"@"I#+N#;#B#B7#K %-.>%?%F%Fw%O!"'/0B'C'J'J7'S#$"*="9"@"@"Ivw0@Avw0@Avw0@A0''3?u-J @''3?u-J @''3?u-J @ 	j(3
j(3
j(3% @?????s$    K&K7L&
K47
L
Lr8   )
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)	r9   r	   rm   ra   rk   rd   rc   rL   rM   r7   r8   r/   r   rr   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$   )r   r   r   r@   r   rA   c                    U" S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XV   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                  " XE5        g )!Nr(   r)   r*   stata4_r   onetenr   r   r   twoniner   r   r   threeeightr   r   r   foursevenr   r   r   fivesixrv   r   r   r   r   r   r   r   r   r   	   r   r   )fully_labeledfully_labeled2incompletely_labeledlabeled_with_missingsfloat_labelledrF   r   r   categoryTorderedinplacer9   r   r   ra   r   copyasarraynotnarm   _valuesset_categories
categoriesr   rL   rM   
r7   r>   r/   r8   r   rr   colorigr   cats
             r%   test_read_dta4TestStata.test_read_dta4   sZ   fg	/FG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$   )r   r   r   r   r   c                    U" S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XV   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                  " XE5        g )!Nr(   r)   r*   r   r   r   r   r   r   r   r   rv   r   r   r   r   r   r   r   r   r   r   r   r   )fulllabfulllab2incmplabmisslabfloatlabrF   r   r   r   Tr   r   r   r   s
             r%   test_readold_dta4TestStata.test_readold_dta4  s[    fg	/FGt$))34=42666226651&!RVVW5'1bffg626662ubffe4
. C=%%'DHY$7

$EFJj !
++j)11C$$Z$>CNN!!$!5SM  	f/r$   )stata12_117stata12_be_117stata12_118stata12_be_118stata12_119stata12_be_119c           	          U R                  U" SSSU S35      5      n[        R                  " / SQ/ SQ/ SQ// SQS	9n[        R                  " X4S
S9  g )Nr(   r)   r*   r   )r   abc	abcdefghi)r   cbaqwertywertyqwerty)]    strl)xyzrF   Fcheck_dtype)r9   r   r   rL   rM   r   s        r%   test_read_dta_strlTestStata.test_read_dta_strlN  sX     xfg$t}MN))'/ 
 $
 	fEBr$   )stata14_118stata14_be_118stata14_119stata14_be_119c           
         U R                  U" SSSU S3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                  " X5   XE   5        M      [        U" SSSU S35      5       nUR                  5       nSSSSSSSS.n[        R                  " Xx5        UR                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr(   r)   r*   r   BytesO)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  LongsrF   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-  r0  r+  r  r.  r,  r/  u   This is a  Ünicode data label)r9   rm   r   r   ra   r   rk   rG   rL   assert_almost_equalr   variable_labelsassert_dict_equal
data_label)	r7   r8   r/   
parsed_118rr   r   rdrvlvl_expecteds	            r%   test_read_dta118_119TestStata.test_read_dta118_119g  s@    ]]8D&'dV4=#QR
(188=
7))N-PE??
$ &h/66rzzB%%C"":?HMB & $D6GHC$$&B'P$0$"0&K   1>>%EEEE IHHs   AE
Ec                    [        [        R                  [        R                  [        R                  [        R                  [        R                  4// SQS9nSUR                  l        UnUR                  US S9  U R                  U5      nUnUR                  R                  [        R                  5      Ul        [        R                  " UR                  S5      U5        g )Nr   rF   r-   r+   )r   ra   r   r-   r.   rK   r9   rm   re   rL   rM   	set_index)r7   rN   originalrP   written_and_read_againrr   s         r%   test_read_write_dta5TestStata.test_read_write_dta5  s    ffbffbffbffbff56W
 &$d3!%t!4!..rxx8
4>>wGRr$   c                    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'   UnUR                  US S9  U R                  U5      n[        R                  " UR                  S5      US	S
9  g )Nr(   r)   r*   r   r-   r   r   r+   Fr}   )r	   r-   r.   rm   ra   re   rK   r9   rL   rM   r<  )r7   r/   rN   r=  rP   r>  s         r%   test_write_dta6TestStata.test_write_dta6  s    ==$!NO%!..rxx8#F+22288<&y188B$d3!%t!4
",,W5"	
r$   c           	      b   [        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
'   UnUR                  USS0US9  U R                  U5      nUR                  5       nUS   R                  S5      US'   U(       a  US   R                  S5      US'   [        R                  " UR                  S	5      U5        g )Nstringobjectr   皙?
2003-12-25)rE  rF  integerfloatingr   r)   rG   rU   r-   rI  r   tcr,   r>   r   str)r   ra   
datetime64r   rF  r-   r.   rm   re   rK   r9   r   rL   rM   r<  )r7   r>   rN   using_infer_stringr=  rP   r>  rr   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$z4.@'R!%t!4==?'
3::8D!)(!3!:!:5!AHX
",,W5	
r$   c                     Un[        [        R                  R                  S5      R	                  S5      [        S5      S9nUR                  U5        g )Nr   r   r   ABrF   )r   ra   randomdefault_rngstandard_normallistrK   )r7   rN   rP   r   s       r%   test_stata_doc_examples!TestStata.test_stata_doc_examples  sB    II!!!$44W=tDz
 	Dr$   c                 4   [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  UR                  SSS24'   UR                  5       nUnUR                  USS9  [        R                  " X#5        g )	Nr   )rv   r   abcdrF   r    r"   FrI   )r   ra   rV  rW  rX  rY  r   locr   rK   rL   rM   )r7   rN   r   df_copyrP   s        r%   test_write_preserves_original'TestStata.test_write_preserves_original  s{     II!!!$44V<d6l
  VVq#c'z'')
De,
b*r$   c                 4   [        U" SSSS5      5      n[        U" SSSS5      5      nUR                  S   nUR                  S   nXg:X  d   e[        U[        5      (       d   eUnUR	                  USUS9  [        U5      n	[
        R                  " XY5        g )Nr(   r)   r*   zstata1_encoding.dtar   FrH   )r   	kreis1849r   rN  rK   rL   rM   )
r7   r>   r/   rN   rawencodedresultrr   rP   reread_encodeds
             r%   test_encodingTestStata.test_encoding  s     $9NOPXdFG=RST""1%==#!!!&#&&&&5'B#D)
g6r$   c                    [        S// SQS9n[        S// SQS9nSUR                  l        UR                  [        R
                  5      nUnSn[        R                  " [        US9   UR                  US S9  S S S 5        U R                  U5      nUnUR                  R                  [        R
                  5      Ul        [        R                  " UR                  S5      U5        g ! , (       d  f       Nv= f)	Nr   )goodu   bäd8number%astringwithmorethan32characters______rF   )rl  b_d_8number astringwithmorethan32characters_r-   ;Not all pandas column names were valid Stata variable namesr   r+   r   r-   r.   rm   ra   re   rL   r   r   rK   r9   rM   r<  )r7   rN   r=  	formattedrP   r   r>  rr   s           r%   test_read_write_dta11TestStata.test_read_write_dta11  s    N
 NS
	  '	$$RXX.	K''(9Ed$7 F "&t!4!..rxx8
4>>wGR FEs   (C))
C7c                    [        S// SQS9n[        S// SQS9nSUR                  l        UR                  [        R
                  5      nUnSn[        R                  " [        US9   UR                  US US9  S S S 5        U R                  U5      nUnUR                  R                  [        R
                  5      Ul        [        R                  " UR                  S5      U5        g ! , (       d  f       Nv= f)	Nr   r   r   r   rv   r   )!astringwithmorethan32characters_1!astringwithmorethan32characters_2+-shortdeleterF   )rq   _0astringwithmorethan32character__1__short_deleter-   rr  r   rM  rs  )	r7   r>   rN   r=  rt  rP   r   r>  rr   s	            r%   test_read_write_dta12TestStata.test_read_write_dta12  s     

  

	  '	$$RXX.	K''(9Ed$H F "&t!4!..rxx8
4>>wGR FEs   (C**
C8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'   UnUR                  U5        U R                  U5      nUn	U	R                  R                  [        R                  5      U	l        [        R                  " UR                  S5      U	5        g )Ni   rU   i   l        )rd   re   rf   r-   rf   )r   ra   rd   re   rf   r   r-   r.   rm   rl   rK   r9   rL   rM   r<  )
r7   rN   s1s2s3r=  rt  rP   r>  rr   s
             r%   test_read_write_dta13TestStata.test_read_write_dta137  s    D)E*E*rDE%	&w/66rzzB	'$!%t!4!..rxx8
4>>wGRr$   )
stata5_113
stata5_114
stata5_115
stata5_117c                 H   U" SSSU S35      nU R                  U5      nSUR                  l        [        R                  " X&5        UnUR                  USS0US9  U R                  U5      nUR                  5       n	[        R                  " UR                  S5      U	5        g )	Nr(   r)   r*   r   r-   date_tdtdrM  )r9   r-   r.   rL   rM   rK   r   r<  )
r7   r8   r1   r>   r/   rN   r   rP   r>  rr   s
             r%   test_read_write_reread_dta14&TestStata.test_read_write_reread_dta14I  s     fg$t}=t$#
j1DD0A7S!%t!4??$
4>>wGRr$   )
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                  S5      R                  R                  SSS9nUR                  S5      US
'   U" SSSU S35      nU R                  U5      n[        R                  " X55        g )Nr(   r)   r*   
stata6.csvbyte_int_long_float_double_r  z	Period[D]sS)howr   r   )r	   rm   ra   rc   rd   re   rk   rl   r   asfreqviewr9   rL   rM   )r7   r8   r/   rr   arrr   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!((5==DDScDR!hhw/fg$t}=t$
h/r$   c                     [        S/S/S9n[        SSSSS5      nS	nUnUR                  XdXQS
9  [        U5       nUR                  S:X  d   eUR
                  U:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   variablerF     r            zThis is a data file.)
time_stampr4  r>   z29 Feb 2000 14:21)r   r   rK   r   r  r4  )r7   r>   rN   r=  r  r4  rP   readers           r%   test_timestamp_and_label"TestStata.test_timestamp_and_labelq  s    dVj\:dAr2r2
+
J 	 	
 &$$(;;;;$$
222 s   %A**
A8c                     [        S/S/S9nSnUnSn[        R                  " [        US9   UR	                  XTUS9  S S S 5        [
        R                  R                  U5      (       a   eg ! , (       d  f       N5= f)Nr  r  rF   z01 Jan 2000, 00:00:00z"time_stamp should be datetime typer   )r  r>   )r   pytestraises
ValueErrorrK   osrP   isfile)r7   r>   rN   r=  r  rP   r   s          r%   test_invalid_timestamp TestStata.test_invalid_timestamp  sl    dVj\:,
2]]:S1d7K 277>>$''''' 21s   A,,
A:c                    [        [        R                  " [        R                  " S5      S5      5      nSUR                  l        UnSn[        R                  " [        US9   UR                  U5        S S S 5        U R                  U5      nUR                  S5      n[        UR                  5      nS n[        Xv5      Ul        Un[        R                  " X5        g ! , (       d  f       Nq= f)Ng      9@)rv   rv   r-   rr  r   c                     [        U S   5      $ )Nr   )intr  s    r%   <lambda>5TestStata.test_numeric_column_names.<locals>.<lambda>  s    S1Yr$   )r   ra   reshapearanger-   r.   rL   r   r   rK   r9   r<  rY  rG   maprM   )	r7   rN   r=  rP   r   r>  rG   convert_col_namerr   s	            r%   test_numeric_column_names#TestStata.test_numeric_column_names  s    RZZ		$@A%K''(9Ed# F "&t!4!7!A!A'!J-556.),-=)G&
h? FEs   #C  
C.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'   [        X4S.5      nSUR                  l        UnUR                  XaS9  U R                  U5      nUR                  S5      nUn[        R                  " Xx5        g )Nr*  rU   r   r   r  r  r-   r>   )r   ra   r  rk   rl   r   r   r-   r.   rK   r9   r<  rL   rM   )	r7   r>   rN   r  r  r=  rP   r>  rr   s	            r%   test_nan_to_missing_value#TestStata.test_nan_to_missing_value  s    BIIcN"**5BIIcN"**5&&3Q36614a4B12%$0!%t!4!7!A!A'!J
4?r$   c                 r   SS/n[        [        R                  " [        R                  " S5      S5      US9nSUR                  l        UnUR                  USS9  U R                  U5      n[        R                  " [        UR                  R
                  S	9   US     S S S 5        g ! , (       d  f       g = f)
Nr  r        $@)rv   r   rF   index_not_writtenFr^  r   )r   ra   r  r  r-   r.   rK   r9   r  r  KeyError)r7   rN   rG   r=  rP   r>  s         r%   test_no_indexTestStata.test_no_index  s    *RZZ		$@'R1$E2!%t!4]]88>>+>+>?"#67 @??s   B((
B6c                 &   [        SS/5      n[        SS/[        R                  S9n[        X#S.5      nSUR                  l        UnUR                  U5        U R                  U5      nUn[        R                  " UR                  S5      U5        g )Nr    zA longer stringr          @rU   r  r-   )r   ra   rl   r   r-   r.   rK   r9   rL   rM   r<  )r7   rN   r  r  r=  rP   r>  rr   s           r%   test_string_no_datesTestStata.test_string_no_dates  s    S+,-S#Jbjj1B12%$!%t!4
4>>wGRr$   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#XES.5      nSUR                  l        Un[        R                  " [        S	S
9   UR                  U5        S S S 5        U R                  U5      nUn	[        U	S   [        R                  S9U	S'   [        U	S   [        R                  S9U	S'   [        U	S   [        R                  S9U	S'   [        R                  " UR!                  S5      U	5        g ! , (       d  f       N= f)Nr   c   rU      i  l    )s0r  r  r  r-   zfrom int64 tor   r  r  r  )r   ra   rc   rd   rf   r   r-   r.   rL   r   r   rK   r9   re   rl   rM   r<  )
r7   rN   r  r  r  r  r=  rP   r>  modifieds
             r%   test_large_value_conversion%TestStata.test_large_value_conversion  s   QG277+QHBGG,Q	N"((3Q	N"((3BEF%''(=_Ud# V "&t!4bhh?bhh?bjjA
4>>wGR VUs   #E
Ec           
         [        [        SSSSSS5      /5      nSUR                  l        UnSn[        R
                  " [        US	9   UR                  US
S0S9  S S S 5        U R                  U5      nUR                  5       nS/Ul
        UR                  R                  [        R                  5      Ul        US   R                  S5      US'   [        R                  " UR                  S5      U5        g ! , (       d  f       N= f)Nr   r   r   r   r   r   r-   rr  r   r   rL  r+   _0r   )r   r   r-   r.   rL   r   r   rK   r9   r   rG   rm   ra   re   rM   r<  )r7   rN   r=  rP   r   r>  rr   s          r%   test_dates_invalid_column#TestStata.test_dates_invalid_column  s    htRRR@AB%K''(9Ed1d)< F "&t!4==? 6!..rxx8!$..x8
4>>wGR FEs   	C99
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   rG   rm   ra   rd   rc   rk   rL   rM   head)r7   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)r7   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  o3U_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S9nUS   R                  S5      US'   Un	UR                  XS9  U R                  U	5      n
[        R                  " U
R                  S5      U5        g s  snf )N)rL  r  twrL   tqthtyr   r   r   r   r   rF   r-   r   r   r   r   r   rV   r.   r   )r-   rG   rV   rL  r   r+   )r   lenr   r-   r.   r   Indexra   re   rm   rK   r9   rL   rM   r<  )r7   rN   rG   r"   conversionsr)   r=  expected_valuesrr   rP   r>  s              r%   test_date_export_formats"TestStata.test_date_export_formats  sF   <%,-W!tW-r2r2r23c'lBdVW5%T2r2r2.T2r"T2r"T2q!T2q!T1a T1a 
 ((A3bhhW=	
 "$..x8$:!%t!4
4>>wGR5 .s   D9c                     [        S/S //S/S9n[        S/S//[        R                  " SSS9S/S9nUnUR                  U5        U R	                  U5      n[
        R                  " UR                  S5      U5        g )	N1foorF   r  r   r-   r.   r-   rG   )r   r   r   rK   r9   rL   rM   r<  )r7   rN   r=  rr   rP   r>  s         r%   test_write_missing_strings$TestStata.test_write_missing_strings  s    sedV_ug>URDM--0G
 $!%t!4
4>>wGRr$   	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
[        XEXgXU
S	.5      nS
UR                  l        UnUR                  XUS9  U R                  U5      nUR                  S
5      nUn[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4n[!        UR"                  U5       H  u  nnUU   R%                  U5      UU'   M     [&        R(                  " X5        g )N)r   r   TrU   )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   ra   bool_rg   rh   ri   r   r-   r.   rK   r9   r<  rc   rd   re   rl   ziprG   rm   rL   rM   )r7   r  r>   rN   r  r  r  r  r
  r  r  r=  rP   r>  rr   expected_typesr"   ts                     r%   test_bool_uintTestStata.test_bool_uint*  sW    L1Krxx0Krxx0'ryy9%RYY7'ryy9%RYY7r2rR
 &$WE!%t!4!7!A!A'!JGGGGHHHHHHHHJJ
 ((.9DAq"1+,,Q/HQK : 	4?r$   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   r2  items)	r7   r/   r6  sr_115sr_117keyslabelskvs	            r%   test_variable_labelsTestStata.test_variable_labelsO  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UnUR                  USS9  [	        U5       nUR                  5         [        UR                  UR                  UR                  5       H:  u  pn
[        USS  5      [        U	SS	 5      :X  d   e[        USS  5      U
:X  a  M:   e   S S S 5        g ! , (       d  f       g = f)
N)r   r     r    r!   r"   r  Fr^  r   )r   rN  r   rK   r   _ensure_openr  _varlist_fmtlist_typlistr  )r7   rN   str_lensr  str_lenr=  rP   srr  fmttyps              r%   test_minimal_size_colTestStata.test_minimal_size_col\  s     G$*wgsW}=%AcCL !   Q<$E2"OO&)"++r{{BKK&P"s8AB<(CAb	N:::8AB<(C/// 'Q s   A2CC
C-c                    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   UnUR                  U5        S S S 5        g ! , (       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   rN  r   r  r  r  rK   )r7   rN   r*  r  r+  r=  r   rP   s           r%   test_excessively_long_string&TestStata.test_excessively_long_stringm  s     G$*wgsW}=%AcCL !   Q<9 	 ]]:S1Dd# 211s   A77
Bc                 f   Sn[        S//S/S9nUnUR                  U5        [        U5       nUR                  n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                  X   :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Nh= fs  snf )N)r!   hlr%  r  rF      .a   r   r      z<fs      s     z.zz<ds         s        )r   rK   r   VALID_RANGEr   chrinsertr   rE  structunpack)r7   rN   typesr   rP   r6  valid_rangeir  r  offsetvals               r%   test_missing_value_generator&TestStata.test_missing_value_generator  s   w
3
D#//K 6;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 @s   FF.
F+)r   r   rA   c           
         / 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S	U S
35      SS9n[        R                  " X5        g s  snf )Nint8_int16_int32_float32_float64_e   r;  rv   rF   r(   r)   r*   stata8_r   Tconvert_missing
r   sortedMISSING_VALUESr  r   appendr   r   rL   rM   )r7   r>   r/   rG   smvr  r)   rC  jrowrr   r   s               r%   test_missing_value_conversion'TestStata.test_missing_value_conversion  s    G$c((--/0rABG(K(Q$Tq2v,%78(CKKK  T3T67ggYd,CD 
 	f/ Ls   B;)r   r   r   r   r   c           
      V   / SQn[        S5      n[        UR                  R                  5       5      n/ n[	        S5       Vs/ s H  n[        XWS-     5      PM     nnUR                  U5        [        XcS9n	[        U" SSSS	U S
35      SS9n
[        R                  " X5        g s  snf )NrI  rO  rv   r;  rF   r(   r)   r*   rP  r   TrQ  rS  r7   r>   r/   rG   rW  r  r)   rX  rY  rr   r   s              r%   $test_missing_value_conversion_compat.TestStata.test_missing_value_conversion_compat  s    G$c((--/08=aA1 "f.ACT3T67ggYd,CD 
 	f/ Bs   B&r   r   c           
      D   / SQn[        S5      n[        UR                  R                  5       5      n/ nS Vs/ s H  n[        XWS-     5      PM     nnUR	                  U5        [        XcS9n	[        U" SSSS	U S
35      SS9n
[        R                  " X5        g s  snf )NrI  rO  )r   r   r   r   r   r;  rF   r(   r)   r*   rP  r   TrQ  )	r   rT  rU  r  rV  r   r   rL   rM   r]  s              r%   +test_missing_value_conversion_compat_nobyte5TestStata.test_missing_value_conversion_compat_nobyte  s    G$c((--/08GH1 "f.HCT3T67ggYd,CD 
 	f/ Is   Bc                 b   / SQn/ SQn/ SQn/ SQn/ SQn/ SQn/ n	[        X4XVXx5       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   R                  S5      U	S'   U	S   R                  S5      U	S'   U	S   R                  S5      U	S'   U	S   R                  S5      U	S'   U	S   R                  S5      U	S'   U	S   R                  S5      U	S'   U	S    R                  S5      U	S '   [        U" S!S"S#S$5      5      n[        U" S!S"S#S%5      5      n[        R                  " U	U5        [        R                  " U	U5        U Vs0 s H	  nUUS&S  _M     nnUnS'U	R                  l        S(nU	R                  [        5      n[        R                  " [        US)9   UR!                  UUS*9  S S S 5        U R#                  U5      n[        R                  " UR%                  S'5      U	R%                  U	R                  R                  [&        R(                  5      5      5        g s  snf ! , (       d  f       N= 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_tcr  date_twdate_tmdate_tqdate_thdate_tyrd  r      r   r   r   r   rv   re     rf  i  )rG   rV   ri  r   r  r   rk  rj  rl  rm  rn  r(   r)   r*   zstata9_115.dtazstata9_117.dtar  r-   z^Converting object-dtype columns of datetimes to datetime64 when writing to stata is deprecatedr   r+   )r  r   rV  r   r   r   r   rF  rm   r   rL   rM   r-   r.   r   r   rK   r9   r<  ra   re   )r7   r/   rN   yrmoddhrmmssrr   r   monthdayhourminutesecondrY  rX  rG   r   r   r"   date_conversionrP   r   
exp_objectr>  s                              r%   test_big_datesTestStata.test_big_dates  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&y188B&y188A&y188A&y188A&y188A&y188A&y188Avw@P QR
vw@P QR

h
3
h
3.56g1af9g6%2 	 __V,
''cBOD C!%t!4
",,W5x~~44RXX>?	
 7 CBs   ?NN  
N.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                  S5      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
   US
'   [        R                  " XT5        g )Nr(   r)   r*   r  r  r  r  r  r  r  r   stata6_117.dtaTr+   F)r,   preserve_dtypes)r	   rm   ra   rc   rd   re   rk   rl   r   rL   rM   )r7   r/   rr   no_conversion
conversion	expected2s         r%   test_dtype_conversionTestStata.test_dtype_conversion  sM   ==$!NO$W-44RWW=#F+22288<$W-44RXX>%h/66rzzB&y188D&y188A"T67,<=T
 	h6T67,<=!

 MM(4,"OP	'	2	)
i4r$   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   [        U" SSSS5      SSS/S9  S S S 5        Sn[        R                  " [         US9   [        U" SSSS5      S/ SQS9  S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nr(   r)   r*   r  r  r  r  r  r  r  )z%Y-%m-%d)args)r  r  r  r  T)r,   rG   )r  r  r  z"columns contains duplicate entriesr   zEThe following columns were not found in the Stata data set: not_found)r  r  r  	not_found)r	   rm   ra   rc   rd   re   rk   rl   applyr   strptimer   rL   rM   r  r  r  )r7   r/   rr   rG   dropped	reorderedr   s          r%   test_drop_columnTestStata.test_drop_column2  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vw0@A" '* 2 V]]:S1vw0@A"? 21 21 21s   7G1G"
G"
G0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nUR	                  S5      R                  XAS9  U R                  U5      nUR                  S5      nUnUR                  R                  S5      Ul        US   R                  [        5      US'   US   R                  [        5      US'   U Hf  nXx   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  XU'   Mh     ["        R$                  " Xg5        g )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   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   	unlabeledrF   r   r  r-   r   r  Tr   r   )r   r   ra   r   rm   rK   r9   r<  r-   	set_namesr  rN  r   
as_orderedr   r   r   rL   rM   )r7   r>   rN   r=  rP   r>  resrr   r   r   r   s              r%   test_categorical_writing"TestStata.test_categorical_writinga  s   
 ))67@72666152665!4&!RVVWa8'1bffgq9266615ubffeR8
, 
#,,T,C!%t!4$..w7!11':+34J+K+Q+QRU+V'( ( 5 ; ;C @C=D++j)11C.."Ck!((t(<NN!!$!5SM  	c,r$   c                     [         R                  " S/S/S/S/S//S/S9R                  S5      nS	n[        R                  " [
        US
9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr    r!   r"   dr   Too_longrF   r   zBdata file created has not lost information due to duplicate labelsr   )r   r   rm   rL   r   r   rK   )r7   rN   r=  r   s       r%   $test_categorical_warnings_and_errors.TestStata.test_categorical_warnings_and_errors  so    ))USEC53%!-
|

&
 	 S''(>cJi( KJJs   A&&
A4c                    [        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  oeU   R                  S5      PM     snSS9nSUR                  l        UnUR                  XqS	9  U R                  U5      nUR                  S5      n	Un
U
 H?  nX   R                  nUR!                  5       R"                  nUR%                  US
S9nXU'   MA     [&        R(                  " X5        g s  snf s  snf )Nx   r    many_labelsrF   r   r   )axisr-   r  Tr   )r   rN  rV  ra   r   r   r   r   concatrm   r-   r.   rK   r9   r<  r   remove_unused_categoriesr   r   rL   rM   )r7   r>   rN   rC  valuesr=  r   rP   r>  r  rr   r   new_catss                r%   *test_categorical_with_stata_missing_values4TestStata.test_categorical_with_stata_missing_values  s#   */*5*Q3Q<.*5rvvh))&=/J999AB#c]!!*-B
 &$0!%t!4$..w7C-''C335@@H$$Xt$<CSM	 
 	c,' 6 Cs   D83D=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"   r  erv   reverser%  noorder)r   r   r   r   r   rJ  r   float_missing)r    r  r  )r   r   r   r%  r%  Fnolabel)r   r  r   r*  g      @int32_mixed)r  r   r  r!   r    r   rU   r(   r)   r*   r   )ra   r  rb   rV  r   Categorical
from_codesr   rk   r   	from_dictdictr   rL   rM   r   rV   r   rn   r   codesassert_index_equalr   )
r7   r8   r/   rr   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   rL   rn   )r7   r8   r/   r   r  r   r   rr   s           r%   test_categorical_sorting"TestStata.test_categorical_sorting  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   rV   r   r   r   )r7   r8   r/   r   parsed_unorderedr   s         r%   test_categorical_ordering#TestStata.test_categorical_ordering  s    fg$t}=D!%duECfk//1ABB;??****',0088888	 r$   zignore::UserWarning)
stata1_117
stata2_117r   
stata4_117r  r  
stata7_117
stata8_117
stata9_117r  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                  " UU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   rv   Fr  	r   r   readStopIterationilocr   _convert_categoricalrL   rM   r7   r8   r  r  r,   r/   fnamer   itrposrX  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
%% %
   
 
 % 
 
/   B8B&	AB8&
B50B84B55B88
Cr  returnc                 ,   U  GH  nX   n[        UR                  [        5      (       d  M)  UR                  R	                  5       nUR
                  R                  [        :X  aD  [        R                  R                  UR
                  R                  SS9nUR                  U5      nOcUR
                  R                  S:X  aI  [        UR
                  5      S:X  a0  UR
                  R                  [        5      nUR                  U5      nX0U'   GM     U $ )zH
Emulate the categorical casting behavior we expect from roundtripping.
F)r   rE  r   )r   rV   r   r   r  r   rF  r   r  _with_inferr   r  rm   )r  r   serr   r   s        r%   r  TestStata._convert_categorical+  s    
 C/C#))%566kk::<>>''61!#!5!5..U "6 "J ,,Z8C^^))X5#cnn:MQR:R!$!6!6v!>J,,Z8C"%3  r$   c                 F   U" SSSS5      n[        U5      nUR                  SS2S S 24   n[        USS9 nUR                  S5      n[        R                  " XF5        S S S 5        [        USS	9 n[        U5      n[        R                  " XF5        S S S 5        [        USS9 nUR                  S5      n[        R                  " XF5        S S S 5        [        USS	9 nUR                  5       n[        R                  " XF5        S S S 5        [        US
S	9 n[        R                  " U5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nj= f)Nr(   r)   r*   zstata12_117.dtar   rv   Tr  r  r   )	r   r  r  rL   rM   next	get_chunkr   r  )r7   r/   r  r   rr   r  r  from_chunkss           r%   test_iteratorTestStata.test_iterator@  sA   vw0ABE";;qsAv&-HHQKE!!(2 . +sIE!!(2 , -MM!$E!!(2 . +sMMOE!!(2 ,
 +s))C.K ,
fk2' .- ,+ .- ,+
 ,+s;   (E0"E$(E0'FF
E
E-0
E>
F
F )

stata2_115r   
stata4_115r  r  
stata7_115
stata8_115
stata9_115r  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                  " UU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   rv   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
%% %
   
 
 % 
 
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*   zstata3_117.dta)r   cpim1r   rF   Tr  r   rv   Fr  )r   r   r  r  rL   rM   )r7   r/   r  rG   r  r   r  r  rX  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UnUR                  XTU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	US'   UnUR                  XTUS9  [        U5       nUR	                  5       nS S S 5        Xt:X  d   eg ! , (       d  f       N`= f! , (       d  f       N'= f)
Nr-   	City RankCity ExponentCityr   r2  r>   r  )r-   r    r!   r"   z	The Index)r-   r.   rK   r   r2  )	r7   r>   r&   rN   r2  rP   r,  read_labelsexpected_labelss	            r%   test_write_variable_labels$TestStata.test_write_variable_labels  s     ") +/OTGT",,.K   	
 o---#. TGT",,.K ---  s   B ?B1 
B.1
B?c                     SUR                   l        SSSS.nUnSn[        R                  " [        US9   UR                  XTUS9  S S S 5        g ! , (       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.   r  r  r  rK   )r7   r>   r&   rN   r2  rP   r   s          r%   test_invalid_variable_labels&TestStata.test_invalid_variable_labels  sT    !( 0VT>]]:S1  PW X 211s   A
Ar@   rA   c                     SUR                   l        SSSS.nSUS'   Un[        R                  " [        SS	9   UR                  XTUS
9  S S S 5        g ! , (       d  f       g = f)Nr-   r
  r  r  r   u   invalid character Œr    z,Variable labels must contain only charactersr   r  r  )r7   r>   r&   rN   r2  rP   s         r%   $test_invalid_variable_label_encoding.TestStata.test_invalid_variable_label_encoding  sc    !( 0VT5]]L
   PW X
 
 
s   A
A c                 Z   / SQnSSSR                  U5      S.nSn[        R                  " [        US9   UnUR	                  XdS9  S S S 5        SSS	S.nS
n[        R                  " [        US9   UnUR	                  XgS9  S S S 5        g ! , (       d  f       NJ= 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   )r2  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  rK   )r7   r&   rN   r  variable_labels_utf8r   rP   variable_labels_longs           r%    test_write_variable_label_errors*TestStata.test_write_variable_label_errors  s    M   
! 	 ]]:S1D   L 2
  2 
 ?]]:S1D   L 21 21 21s   B0B
B
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US S  nUS   R                  S5      US'   UnUR	                  USS9  [        USS9n[        R                  " XF5        UR	                  USSS0S9  [        USS9n[        R                  " Xg5        UR                  R                  5       R                  S5      nUR	                  USUS0S9  [        USS9n[        R                  " Xg5        g )N  r   r   .    r  R    r   r     r   r  r   applebananacherrynumsstrsdatesr(  r   Fr^  Tr+   rL  )rI   r,   )dtr   r   rm   rK   r   rL   rM   rG   tolistr-   )	r7   rN   r(  r=  rr   rP   rereaddirect	dates_idxs	            r%   test_default_date_conversion&TestStata.test_default_date_conversion  sJ    KKb"b"b%8KKb"b"b%8KKaAq!T2

 '5
 A;$W-44X>$E2D5
h/$E'4QD5
f-$$++-33G<	$E)TARSD5
f-r$   c                     [        SSS/05      nSn[        R                  " [        US9   UnUR	                  U5        S S S 5        g ! , (       d  f       g = f)Nr    y      ?       @y       @      @z"Data type complex128 not supportedr   )r   r  r  NotImplementedErrorrK   )r7   rN   r=  r   rP   s        r%   test_unsupported_typeTestStata.test_unsupported_type  sI    cFF#3452]].c:Dd# ;::s   A
A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   UnUR                  USS0S9  S S S 5        [        R                  " SSSS9n[        / SQ/ SQUS.5      n[        R                  " [
        SS9   UnUR                  U5        S S S 5        g ! , (       d  f       Nm= 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  r1  rK   r   
date_range)r7   rN   r(  r=  r   rP   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d7D/B ; j!8HI'5
 ]].6LMDd# NM ;: NMs   C>!D>
D
D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   )r7   r/   r   s      r%   test_repeated_column_labels%TestStata.test_repeated_column_labels2  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   rv   r   )
r    r!   r"   r  r  r  gr6  rC  rX  )r  r  wr  )r   r   ra   r   rL   rM   )r7   r/   r   r=  s       r%   test_stata_111TestStata.test_stata_111D  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   UnUR                  U5        S S S 5        g ! , (       d  f       g = f)Nr%  g      ColumnOkColumnTooBigzZColumn ColumnTooBig has a maximum value \(.+\) outside the range supported by Stata \(.+\)r   )
r   ra   finfodoubleepsmaxr  r  r  rK   )r7   rN   r   r   rP   s        r%   test_out_of_range_double"TestStata.test_out_of_range_doubleT  s     "((299"5"9"9;OP!$bhhryy&9&=&=rxx		?R?V?V W
) 	 ]]:S1DKK 211s   4C
C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(     UnUR                  U5        [        U5      nUS   R                  [        R                  5      US'   Un[        R                  " UR                  S5      U5        g )Nr%  r  rE  r-   rG  )r   ra   rH  rk   rJ  rK  r-   r.   rm   rK   r   rl   rL   rM   r<  )r7   rN   r=  r   rP   r+  rr   s          r%   test_out_of_range_float!TestStata.test_out_of_range_floatd  s    HHRZZ(,,HHRZZ(,,t3 HHRZZ(,,HHRZZ(,,!
 &C$M00<HM  $D!#+N#;#B#B2::#N 
f..w7Br$   infvalc                     [        SS/SU/S.5      nSn[        R                  " [        US9   UnUR	                  U5        S S S 5        g ! , (       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  rK   )r7   rQ  rN   r   r   rP   s         r%   test_infTestStata.test_inf  sR     sCjc6]KL= 	 ]]:S1DKK 211s   A
Ac                    [        S[        R                  " S5      R                  S5      -  [        R
                  " [        S5      5      [        R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9nSUR                  l	        S	 n[        R                  " UR                  XA5      n[        R                  " X55        g s  snf )
NrG  r     r   ABCDrZ  i-rG   r-   r-   c                 6    [        U 5      R                  S5      $ )Nr-   )r   r<  r  s    r%   r  -TestStata.test_path_pathlib.<locals>.<lambda>  s    :a=227;r$   )r   ra   r  r  r   r  rY  r   r-   r.   rL   round_trip_pathlibrK   rM   )r7   rN   rC  r   r  rg  s         r%   test_path_pathlibTestStata.test_path_pathlib  s    "))C.((11HHT&\*((eBi8ibHi89

  ;&&r{{FF
b) 9s   (CrI   c                     S/ SQ0n[        US9nUS   R                  S5      US'   UnUR                  XQS9  [        USS9 nUR	                  5       nS S S 5        WSSSS	S
S.0:X  d   eg ! , (       d  f       N= f)NA)BECrd  rf  r)   r   r^  Tr  re  rg  rf  )r   r   r   r   )r   rm   rK   r   r  )r7   rI   rN   r  r   rP   dta_iterr  s           r%   test_value_labels_iterator$TestStata.test_value_labels_iterator  s     +,AS'..,3
D2t,#002L -%EFFFF -,s   A++
A9c                    [        S[        R                  " S5      R                  S5      -  [        R
                  " [        S5      5      [        R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9nSUR                  l	        UnUR                  U5        [        USS	9n[        R                  " X55        g s  snf )
NrG  r  rY  r[  rZ  r\  r]  r-   	index_col)r   ra   r  r  r   r  rY  r   r-   r.   rK   r   rL   rM   )r7   rN   rC  r   rP   r+  s         r%   test_set_indexTestStata.test_set_index  s    "))C.((11HHT&\*((eBi8ibHi89

  
DDG4
b) 9s   (Ccolumn)msrx  weekrw  qtrhalfrq  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   r_  )r7   rq  r/   r   unformattedrt  s         r%   (test_date_parsing_ignores_format_details2TestStata.test_date_parsing_ignores_format_details  sO     vw8KLMffQY'FF1fvo-.	'''r$   littlebigc                 L   [        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                  5       nUnUR                  USS0US/SS9  U R                  U5      nUS S  nUS   R                  S5      US'   U(       a  US   R                  S5      US'   [        R                   " UR#                  S5      U5        [        R                   " XE5        g )NrE  rF  r   rG  rH  r      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai  zstring-1zobject-1z
2003-12-26r!     bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr  )rE  rF  rc   rd   re   rk   rl   r   r  s2045srtlforced_strlrK  rU   rc   rd   re   rk   r-   r   rL  r  rA   )r,   r  convert_strlr>   r   rN  )r   ra   rO  r   rF  rc   rd   rm   re   rk   r-   r.   r   rK   r9   rL   rM   r<  )	r7   r  rN   rP  r=  r   rP   r>  rr   s	            r%   test_writer_117TestStata.test_writer_117  s    MM,/$J MM,/<?-
\ $HX$6fE!(6"2"''B"8G#4BHHE$W-44RXX>$Xi%8

K%}}%t,' 	 	
 "&t!4A;'
3::8D!)(!3!:!:5!AHX
",,W5	
 	h-r$   c                 n   [        / SQ/ SQ// SQS9nSUR                  l        Sn[        R                  " [
        US9   UnUR                  USS	/S
S9  U R                  U5      nUR                  S5      nUR                  Ul	        [        R                  " XRSS9  S S S 5        g ! , (       d  f       g = f)N)  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaard  r"  )  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbre  r#  )2long1long1long1long1long1long1long1long1long1long1longr   rF   r-   rr  r   r  r   rA   )r  r>   Fr}   )r   r-   r.   rL   r   r   rK   r9   r<  rG   rM   )r7   rN   r=  r   rP   r+  s         r%   test_convert_strl_name_swap%TestStata.test_convert_strl_name_swap  s    ')DE-
 &K''(9EDd&!cJ]]4(F%%g.F%--FN!!&UK FEEs   AB&&
B4c                 b   [         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UnSn[        R                  " [
        US9   UR                  USS0S9  S S S 5        g ! , (       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_namerL  r+   )r)  r   r   r  r  r  rK   )r7   rN   r(  r=  rP   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
 @]]:S1d<2FG 211s   B  
B.c                 f   [         R                  " 5       n[        S[        R                  " S5      R                  S5      -  [        R                  " [        S5      5      [        R                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9nSUR                  l        UnUR                  X1S	9  UR                  S
5        [        US5       nUR                  UR!                  5       5        S S S 5        [#        USS9n[$        R&                  " XX5        g s  snf ! , (       d  f       N4= f)NrG  r  rY  r[  rZ  r\  r]  r-   r  r   wbrm  )r(   BytesIOr   ra   r  r  r   r  rY  r   r-   r.   rK   seekopenwriter  r   rL   rM   )	r7   r>   rN   biorC  r   rP   dtar+  s	            r%   test_nonfile_writingTestStata.test_nonfile_writing6  s     jjl"))C.((11HHT&\*((eBi8ibHi89

  
C)$IIchhj! DG4
b) 9 s   =D D""
D0c                 X   [        S[        R                  " S5      R                  S5      -  [        R
                  " [        S5      5      [        R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9nSUR                  l	        U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        [        R                  " UW5        g s  snf ! , (       d  f       NU= f! , (       d  f       N<= f)NrG  r  rY  r[  rZ  r\  r]  r-   r  r@   r  rbrm  )r   ra   r  r  r   r  rY  r   r-   r.   gzipGzipFilerK   r   rL   rM   )r7   rN   rC  r   rP   gzr+  s          r%   test_gzip_writingTestStata.test_gzip_writingH  s    "))C.((11HHT&\*((eBi8ibHi89

  ]]4&"KKCK( ']]4&"g6F '
b&) 9 '&&&s   (D*D
D

D
D))stata16_118stata16_be_118stata16_119stata16_be_119c           	          U R                  U" SSSU S35      5      n/ SQn/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/n[        XTS9n[        R                  " X65        g )Nr(   r)   r*   r   )utf8latin1ascii	utf8_strl
ascii_strl)   ραηδαςu   PÄNDÄSpr  r  )   ƤĀńĐąŜ   Ör    r  r    )   ᴘᴀᴎᴅᴀS   Ünr  r  )      r  r  r  r  ) r  r    r  r    )r  r  r  r  r  )r  r  r  r  r  rF   )r9   r   rL   rM   )r7   r8   r/   
unicode_dfrG   r  rr   s          r%   test_unicode_dta_118_119"TestStata.test_unicode_dta_118_119X  s^     ]]8D&'dV4=#QR
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        UnUR                  USSS9  [	        U5      nUR                  S	5      n[        R                  " XV5        S US
'   UR                  USS
/SS9  [	        U5      nUR                  S	5      nU(       a  US
   R                  S5      US
'   [        R                  " XV5        g )N  stringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringr   )mixednumberr   re   FrA   rH   r  r  )rI   r  r>   rN  )r   r  rm   rK   r   fillnarL   rM   )r7   rN   rP  outputrP   r+  rr   s          r%   test_mixed_string_strl TestStata.test_mixed_string_strlr  s    *a8DTU:VW6",,W5%=D!==$
f/ w%wiQTUD!==$ ( 1 8 8 ?HW
f/r$   c                     SSS.S SS./n[        U5      nS US'   [        R                  " [        SS9   UR	                  X!S9  S S S 5        g ! , (       d  f       g = f)Nnoner   )r  r  r   z Column `none` cannot be exportedr   r  rU  )r7   r>   rN   r  s       r%   test_all_none_exception!TestStata.test_all_none_exception  sS    !Q/$!1LM6"v]]:-OPOOIO7 QPPs   A
Ac                     Sn[        U/S/S9nSnSn[        R                  " [        U SU 3S9   UR	                  U5        S S S 5        g ! , (       d  f       g = f)Nu9   Here is one __�__ Another one __·__ Another one __½__invalidrF   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   r  r  UnicodeEncodeErrorrK   )r7   r>   rN   contentr   msg1msg2s          r%   test_invalid_file_not_written'TestStata.test_invalid_file_not_written  s`    My9+6; 	
+ 	 ]]-vQtf5EFKK	" GFFs   A
Ac                     [        S/S-  S/S-  /SS/S9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        g ! , (       d  f       g = f)Npandasr   u   þâÑÐÅ§var_strvar_strlrF   rA   )r>   r  r  zlatin-1zutf-8s   strlsr   r  s   GSO       )r   rK   r  r  encodesplitfindr  )
r7   rN   r  r+  r  rr   gsosgsorE  sizes
             r%   test_strl_latin1TestStata.test_strl_latin1  s   Z!^n-12Y
<S
 		3j\J)T"fkkmG%H??9-888??7+w666==*1-a3Dzz&)!"-ii(,88G,q013x4!8+++ . #""s   B)C/"C//
C=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   rd  rF   )	rL   r   UnicodeWarningr   r  messager  r   rM   )r7   r/   r   rP   rA  rf  rr   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.gzr  i  )r  r  r   r&  _nvar)r7   r/   r  r  s       r%   test_stata_119TestStata.test_stata_119  sm    
 YYT67,?@$
RF##%||u,,, !
 
 !
 
s"   A3#A"A3"
A0	,A33
B)rB   rC   Nc                    [         R                  " / SQSS9n[        / SQ/ SQ/ SQ// SQS9nXES	'   S
SSSSS.nSnSSSSS.0nUS   R                  [        R
                  5      US'   [        UUUS/USU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                  " XZ5        [        U5       nUR                   U:X  d   eUR#                  5       U:X  d   e S S S 5        UR%                  X1SS9  [        U5      n[        R                  " X\5        g ! , (       d  f       N@= f)N)r       β   ĉTr   )r   r   u   ᴬu   ᴀ relatively long ŝtring)r  r   u   ᴮr  )r   r   u   ᴰN)   År  r  strlsrF   	   ᴐᴬᵀ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)r4  r  r2  rI   r  r>   r  r   )r>   rI   )r   r  r   rm   ra   re   r   
write_filer   r  replacer   r  rL   rM   r   r4  r2  rK   )r7   r>   r  rN   r   r)   r2  r4  r  writerrh  r  reread_to_statas                r%   test_utf8_writerTestStata.test_utf8_writer  s    nn.=>#%
 0
  [,#
 &
'h;OPQ$Z&&rxx0T
 !!+%

 	#I.W,,R0W J|D1299*EIITTV 	T
 	d3#v$$
222))+>>> $ 	ieD$Y/
d4 $#s   )E22
F c                 P   [        [        R                  " S[        R                  S95      n[        R
                  " [        SS9   [        XSS9  S S S 5        [        R
                  " [        SS9   [        XSS9  S S S 5        g ! , (       d  f       N;= f! , (       d  f       g = f)	N)r   i  rU   z"version must be either 118 or 119.r   rA   r  zYou must use version 119rB   )r   ra   zerosrc   r  r  r  r   )r7   rN   r   s      r%   test_writer_118_exceptions$TestStata.test_writer_118_exceptions  sm    rxx
"'':;]]:-QRI37 S]]:-GHI37 IH SRHHs   B2B
B
B%dtype_backendnumpy_nullablepyarrow)marksc                 f   US:X  a  SOSn[        [        R                  " / SQUS9/ 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S-  nUR                  USS9  UR                  U5        U R                  U5      n[        SS[        R                  // SQSS[        R                  // SQ[        R                  " S	S
SSS9S.[        R                  " [        S
5      SS9S9n[        R                  " UR                  S5      U5        g )Nr  Int64zint64[pyarrow])r   r   NrU   r   )TFN)g      ?g      @g      @z
2020-12-31r   D)r6  freqr  r   r   r   r-   r   r-   )r  ztest_stata.dtarB   r  r   r   r   r   rr  )r6  r   rE   )r   r   rb   r8  r  convert_dtypesrK   r9   ra   r   r   r   rL   rM   r<  )	r7   r  rN   tmp_pathrV   r   
stata_pathr>  rr   s	            r%   test_read_write_ea_dtypes#TestStata.test_read_write_ea_dtypes
  s   
 ),<<BRXXl%8$($]]<E ((973	
 ]; 00

J,
I!%y!9BFF^$1bff%$]]<4P --aw7

 	4>>wGRr$   )r   r@   r   rA   rB   rC   c           
      P   [        [        R                  " SS/[        R                  S9[        R                  " SS/[        R                  S9[        R                  " SS/[        R
                  S9S.5      n[        U" S	S
SSU S35      5      n[        R                  " XC5        g )Nir  rU   ii  i  ibyter  r  r(   r)   r*   stata_int_validranges_r   	r   ra   rb   rc   rd   re   r   rL   rM   r7   r>   r/   rr   r   s        r%   test_read_data_int_validranges(TestStata.test_read_data_int_validranges/      $BGG<xxrxx@+z!:"((K
 T67.DWIT,RS
 	f/r$   c           
      P   [        [        R                  " SS/[        R                  S9[        R                  " SS/[        R                  S9[        R                  " SS/[        R
                  S9S.5      n[        U" S	S
SSU S35      5      n[        R                  " XC5        g Ni~   rU   i i  i   ir	  r(   r)   r*   r  r   r  r  s        r%   %test_read_data_int_validranges_compat/TestStata.test_read_data_int_validranges_compat>  r  r$   c           
      P   [        [        R                  " SS/[        R                  S9[        R                  " SS/[        R                  S9[        R                  " SS/[        R                  S9S.5      n[        U" S	S
SSU S35      5      n[        R                  " XC5        g r  )r   ra   rb   rd   re   r   rL   rM   r  s        r%   ,test_read_data_int_validranges_compat_nobyte6TestStata.test_read_data_int_validranges_compat_nobyteN  s    $BHH=xxrxx@+z!:"((K
 T67.DWIT,RS
 	f/r$   r#   N)l__name__
__module____qualname____firstlineno__r9   r	   r  markparametrizerR   rs   r   r   r   r   r   r  r  r9  r?  rB  rQ  rZ  ra  ri  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r/  r3  rF  rZ  r^  ra  r~  r  r  filterwarningsr  r  r  r  r  r  r  staticmethodr   r  r  r  r  r  r  r  r  r.  r2  r9  r=  rB  rL  rO  ra   infrV  ra  rj  ro  ry  r  r  r  r  r  r  r  r  r  r  r  slowr  r  r  paramr  
skip_if_nor  r  r  r  __static_attributes__r#   r$   r%   r3   r3   <   s	   40 [[Y(BC3 D3 [[Y(BC!E D!EF [[Y(BC
H D
H [[T00:D4L [[H
0
0 [[Y(FG)0 H)0V [[Y(AB+0 C+0\ [[	

C
C [[	
&F&FPS
  [[Y(BC
 D
2
+ [[Y(BC7 D7S8 [[Y(BC$S D$SLS$ [[Y(BC[[HS DS  [[H00" [[Y(BC3 D3 [[Y(BC( D(@& [[Y(BC@ D@ 8
SS&S //S<S [[Y(BC[[[3*5!@ 6 D!@F0"$$"> [[Y80 90  [[Y(AB0 C0  [[Yc
30 40F
P54-^ [[Y(BC[[F.- D.-`) [[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  (36 [[ 56[[	
 [[[1a&1[[3eT]C[[_udm< ! = D 2 7& !D!  [[Y(BC. D.. [[Y(BCY DY [[Yc
3Y 4YM<.B$$>$,  C6 [[X'89	 :		* [[]T5M:
G ;
G* [[E((" [[[8U*;<K. =K.ZL H( [[Y(BC* D*"*  [[	
44"0* [[Y(BC8 D8 [[Y(BC# D#,$1( [[	- 	- [[Y(89[[[8U*;</5 = :/5b8 [[	6<<	y9QRSS	SB [[Y(FG0 H0 [[Y(AB0 C0 [[Yc
30 40r$   r3   r>   )r   r   r   r   r   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.dtastata-compat-r   Fr  r  rP   r  r   rL   rM   r>   r/   	data_baserefoldrr   old_dtas          r%   test_backward_compatr/  ^  sd    vw/I
'',,y"8
9C
'',,yM'$"?
@C#HoG'?r$   r   r   c                     U" SSS5      n[         R                  R                  US5      n[         R                  R                  USU  S35      n[        USS9n[        USS9n[        R
                  " XeSS	9  g )
Nr(   r)   r*   r'  r(  r   Fr+   r  r)  r*  s          r%   %test_backward_compat_nodateconversionr1  h  sl     vw/I
'',,y"8
9C
'',,yM'$"?
@C#U3HE2G'?r$   r   c                     U" SSSS5      nU" SSSSU  S35      n[        USS9nUR                  S	/S
9n[        USS9n[        R                  " XTSS9  g )Nr(   r)   r*   r'  r(  r   Fr+   s10rF   r  )r   droprL   rM   )r>   r/   r,  r-  rr   r.  s         r%   test_backward_compat_nostringr5  t  sh     4*@
AC
4M'$*G
HC#U3H}}eW}-HE2G'?r$   )r   r   r   r   r   r@   rB   c                     U" SSSSU  S35      nU" SSSSU  S35      n[        U5      n[        U5      n[        R                  " XT5        g )Nr(   r)   r*   r(  r   stata-compat-be-r   rL   rM   r>   r/   r,  r|  rr   big_dtas         r%   test_bigendianr;    sU    
4M'$*G
HC
4,<WIT*J
KC#HoG',r$   c                     U" SSSSU  S35      nU" SSSSU  S35      n[        USS9n[        USS9n[        R                  " XT5        g )	Nr(   r)   r*   r(  r   r7  Fr+   r8  r9  s         r%   test_bigendian_nodateconversionr=    s]     4M'$*G
HC
4,<WIT*J
KC#U3HE2G',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'  r  )r   r  emptyr   _path_or_bufr(   r  r  )r/   monkeypatch	file_pathr  fpr  s         r%   test_direct_readrD    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r?   use_dictTFinferc                    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        XV-  n
U
R                  5         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  [,        R.                  " S5      nUR                  U
S5       n[        R                  " UR                  5       5      nS S S 5        OaU S:X  aV  [,        R.                  " S5      nUR                  U
S5       n[        R                  " UR                  5       5      nS S S 5        OU c  U
n[1        WS	S9nU	n[2        R4                  " UU5        g ! , (       d  f       N2= f! , (       d  f       NC= f! , (       d  f       NT= f! , (       d  f       Ne= f! , (       d  f       Nv= f! , (       d  f       N= f)Nzdta_inferred_compression.dtar9  rF  methodr   rT  rU  rF   r-   )r>   compressionr  r  r  rr   tarbz2zstd	zstandardxzlzmarm  )r   ra   rV  rW  rX  rY  r-   r.   touchrK   r  r  r(   r  r  zipfileZipFilefilelisttarfileextractfilegetnamesrL  r  importorskipr   rL   rM   )rI  r>   rE  rF  compression_to_extensionr  	file_namefile_extcompression_argr   rP   comprC  rK  rM  rP  r+  rr   s                     r%   test_compressionr^    s|    /I"H/<Hq
^#	!O!#[1	
		a 0094:
B BHHMDJJLKK?KCfYYtT"dDIIK(B #"		__T3'4DIIdmmA&678B ('		\\$3COOCLLN1,=>CCEFB  		XXdD!TDIIK(B "!		"";/YYtT"dDIIK(B #"		""6*YYtT"dDIIK(B #"		g.FH&(+1 #" ('   "! #" #"sI   %K'3K8,AL	%L4%L+%L<'
K58
L	
L
L(+
L9<
M
rH  r  r[  )Nr  r  c                    SU 3nSn[        [        R                  R                  S5      R	                  S5      [        S5      S9nSUR                  l        XS.nX#-  nUR                  5         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
Un[&        R(                  " X5        g ! , (       d  f       N1= f)Ntest.ztest.dtar   rT  rU  rF   r-   )rH  archive_namerI  r  rJ  r   r   rm  )r   ra   rV  rW  rX  rY  r-   r.   rQ  rK   rR  rS  r  rT  filenamer(   r  r  r   rL   rM   )rH  r[  r  rZ  ra  r   rI  rP   zprC  r+  rr   s               r%   test_compression_dictre    s    z"IL	
		a 0094:
B BHHM#BKDJJLKKK.(e+__T3'2r{{#q(((;;q>**l:::BGGBKKN34B ('
 g.FH&+ ('s   "A-D==
Ec           
         [        S[        / SQSS905      nSUR                  l        UR	                  5       nUR                  XS9  [        USSS	9 n[        U5       Hj  u  pVUR                  S5      nSU;   d   e[        R                  " UR                  UR                  R                  SU-  SUS
-   -   [        U5      S
:  S9  Ml     S S S 5        g ! , (       d  f       g = f)Ncats)r    r!   r    r!   r"   r   rU   r-   r  r   F)r  r  r   r}   )r   r   r-   r.   r   rK   r   	enumerater<  rL   rn   rg  r  r  )r>   rN   r   rr   r  rC  blocks          r%   test_chunked_categoricalrj    s    	FF#<JOP	QBBHHMwwyHKK	K+	Y!	F&!&)HAOOG,EU?"?""

""1q51A;7!$Ua * 
G	F	Fs   A:C
C$c           	      0   U " SSSS5      n/ SQnSn[        USS9 n[        R                  " [        US	9   [	        U5       H  u  pV[        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                  " [        US	9   [        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   z.series with value labels are not fully labeledr   r  r   r   r    r!   r   rl   rU   rv   )r   rL   r   r
   rh  rY  rg  r   r  r  r   r   __next__r   rM   )
r/   dta_filer  r   r  rC  ri  idxlarge_chunkr,  s
             r%    test_chunked_categorical_partialrq  	  sA   fg/PQH&F
:C	X	+v''(DCP%f-EJJ'6!a%!q1u++FFFFq5((C:.C((C5	:C%%ejjnn&?&?E . Q 
, 
	#	#$@	LQ/6 //+K 0 
M !F&+. QP 
,	+ 0/ 
M	LsG   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*   rl  zchunksize must be a positiver   r  )r  r  r  r   )r/   r  rn  s      r%   test_iterator_errorsrs  $	  sL    fg/PQH	z)G	H7 8 
I	H77 
I	Hs!   
AAA
A	A
A!c                 H   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UR	                  U S	S
9  [        R
                  " / SQ5      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                  " XsR                  US-  US-   S-   5        M}     S S S 5        g s  snf ! , (       d  f       g = f)Nc_labelb_labela_labelr2  r   r   Tr   Fr^  )rw  rv  ru  r  r  r   )r   r   r   r  rK   r  r   rh  rL   r  ro   r  r   rM   )	rN   r  r  r   rr   r  rX  r  rC  s	            r%   test_iterator_value_labelsrx  ,	  s    #ykC&77F	USTXVXc!Ir~~fdCCXV	WBKK	uK-xx9:H	I	-!&)HA1X%%ell&7&7&:&E&ExP !!%SAES=)IJ * 
.	- W 
.	-s   #D:BD
D!c           	      R   [        [        S [        S5       5       5      [        S [        S5       5       5      //SS/S9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g ! , (       d  f       N= f)Nc              3   ,   #    U  H
  nS U-  v   M     g7fr   Nr#   .0rC  s     r%   	<genexpr>&test_precision_loss.<locals>.<genexpr>;	  s     &IqadI   r4   c              3   ,   #    U  H
  nS U-  v   M     g7fr{  r#   r|  s     r%   r~  r  ;	  s     +D)QAqD)r  4   r|  r{  rF   z&Column converted from int64 to float64r   Fr^  r  )r   r{  )r   r|  )r   sumr   rL   r   r   rK   r   r   ra   rl   rn   ro   r_  float)rN   r   r+  expected_dts       r%   test_precision_lossr  9	  s    	
&E"I&
&+D%)+D(D	EF!
B 
	#	#%M
 	I51
 	"F"**bjj1%9JKK6==+6::k"bff[&9999::h5)9#::::
 
s   D
D&c                    [        / SQ/ SQ/SS// SQS9nSUR                  l        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        g ! , (       d  f       N/= f)Ng~Ϛ?g9DܜJ?g>D)?g.4i(@g33333@g̤Ard  re  XYZr  r-   rb  rI  rn  rm  )r   r-   r.   rK   r   rL   rM   decompress_filer(   r  r  )rI  rN   r   r+  fhcontentss         r%   test_compression_roundtripr  I	  s    		')GHCj
B
 BHHMKK	K3	gNF"% 
		I	3r::bggi( 
4G4F"% 
4	3s   ,%B::
Cto_infer
read_inferc                    U nX5   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
XG-  nUR                  5         UR	                  XS
9  [        XSS9n[        R                  " X5        g )Nr`  r  r  rd  re  r  r  r-   rF  rb  r  )r   r-   r.   rQ  rK   r   rL   rM   )compression_onlyr  r  rY  r  rI  extrc  r   to_compressionread_compressionrP   rg  s                r%   test_stata_compressionr  \	  s    
 #K
"
/Cse}H		')GHCj
B
 BHHM (WkN",w+DJJLKKK1gNF&%r$   c           	         [        / SQSS[        R                  S[        R                  // SQ[        R                  " / SQ5      S.5      nU 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Xt:X  d   e S S S 5        SnSSSS.0n[        R                  " [        US9   [        X!US9  S S S 5        SnSSSSSS.0n[        R                  " [        US9   [        X!US9  S S S 5        g ! , (       d  f       N{= f! , (       d  f       NW= f! , (       d  f       g = f)N)r   r   r   r   r   r   r  g      "@)r   r   r   r   r   )rX  r  r7  r  rX  )fully_labelledpartially_labelledr  r  r   r   r   r  )r   r  )r  r  r  rX  r  r7  r  r  zCCan't create value labels for notY, it wasn't found in the dataset.notYr  r  )r   r   r   zUCan't create value labels for Z, value labels can only be applied to numeric columns.r    rC  r   )r   ra   r   r   r  r   r  r   r  r  r  r  r  )	rN   r)   rP   r  rr   r  r  reader_value_labelsr   s	            r%   !test_non_categorical_value_labelsr  w	  sD   -#&RVVS"&&"A! 9:		
D D#':$)6L ?,>%=>H,?F
	T	f$113"... 
 PCX67L	xs	+D\: 
,	2  SSSS9:L	z	-D\: 
.	- 
	 
,	+ 
.	-s$   DD*D;
D'*
D8;
E	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Sn[        R                  " [        US9   UR	                  XS9  S S S 5        [        U 5       nUR                  5       nXc:X  d   e S S S 5        g ! , (       d  f       N;= f! , (       d  f       g = f)N)r   r   r   r   rv   r   )r   r   r   r   r   r   )r   rv   rv   r   r   r   rx  )z	invalid~!	6_invalid&invalid_name_longer_than_32_characters	aggregater   r   r  r  r  r   r   )r   r   rv   r   r   r   )	invalid__
_6_invalid invalid_name_longer_than_32_char
_aggregate_1__2_rr  r   r  )r   rL   r   r   rK   r   r  )rN   r)   r  rr   r   r  r  s          r%   0test_non_categorical_value_label_name_conversionr  	  s    ++6H+&	
D "h/!h/6=&2I[GL "h/"x007F,C&kg,H HC		#	#$5S	Ai; 
B 
Y	6$113"... 
 	 
B	A 
 	s   !B&B7&
B47
Cc                    SSSSS.0n[        S/ SQ0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        g ! , (       d  f       Nc= f! , (       d  f       g = f)Nrepeated_labelsTenzMore than ten)r   r   (   )r   r   r   r   r  r  r  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   rK   r   r  r  r  r  r  r   )rN   r  r)   r  r  r   repeatsr   s           r%   ;test_non_categorical_value_label_convert_categoricals_errorr  	  s     	?PL 7	
D 	MM)M7	YU	;v$113 
<,...
C		?*; <<G  		 

C 
z	-948 
.	-% 
<	;$ 
.	-s   BB0
B-0
B>rV   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Xf/[        SS9n[        / SQSS9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        g )Nr   r   rU   )r    r!   Nr   ur  rf   re   boolrc   r!   r  )r    r!   r  r"   r   FrH   TrQ  )r   r   r   NAr.   r!   rV   numpy_dtyper  r   BASE_MISSING_VALUESrF  rK   r   rL   rn   r    r"   )
rV   r>   rN   r   
dtype_namevaluerW  
expected_b
expected_cr+  s
             r%   test_nullable_supportr  	  s     
(BEE255)<()	

B '',,J##C,JW
	v	
11*=E
E
"CCV#>JS1JKK	ugK>	48F244*688Z0688Z0r$   c                    [        [        S5      / SQS.S9R                  S5      nU 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        g )Nr   r   r|   rh  r   FrA   rH   r!   re   rl   r    rF   )r   r   r  rK   r   r   ra   rV   rL   rn   ro   r_  )rN   r   rP   df2ro   df3s         r%   test_empty_framer  
  s     
eAh_=	>	C	CA	FBDKK%K5
T
C#::"((7+"((92EFGF3::v.
TC5
)Cc>>3::vzz3%'89r$   c                 B   Sn[        [        R                  " U5      S/S9n[        R                  " [
        R                  /S-  6  Vs/ s H  nSR                  U5      PM     nnS[        U5       Vs0 s H  ofXV   _M	     sn0nUR                  XUS9  g s  snf s  snf )Ni  r   rF   r   r  )r  r>   )
r   ra   r  	itertoolsproductrE  ascii_lettersr  r   rK   )rN   r>   r  r   r   lblsrC  r  s           r%   test_many_strlr  "
  s    A	299Q<%	1B ) 1 1V5I5I4JQ4N PQ P1BGGAJ PDQa91twJ9:LKK	gKF R9s   	B4B)rA   rB   rC   Nc                 l    [        SSS.S SS.[        R                  SS./5      nUR                  XS9  g )Nr  r   )str1r  r   r  )r   r   r  rK   )rN   r>   r   s      r%   test_strl_missingsr  +
  s?     
#q1Q'UUa(	

B KK	K+r$   c                     [        SS/05      nUR                  U SUS9  [        U 5      n[        R                  " X#5        g )NdoubleByteColu  §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§r   rH   rJ   )rN   r>   r   df_inputs       r%   test_ascii_errorr  9
  s?     
Ok]3	4BKK	q'K:)$H"'r$   )OrL  r   r)  r  r(   r  r  rE  r?  rU  rR  numpyra   r  pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsr  r  r   r   pandas._testing_testingrL   pandas.core.framer   r   pandas.io.parsersr	   pandas.io.statar
   r   r   r   r   r   r   r   r   fixturer&   r1   r3   r  r  r/  r1  r5  r;  r=  rD  r^  re  rj  rq  rs  rx  r  r  r  r  r  r  BooleanDtype	Int8Dtype
Int16Dtype
Int32Dtype
Int64Dtype
UInt8DtypeUInt16DtypeUInt32DtypeUInt64Dtyper  r  r  r  r  r#   r$   r%   <module>r     s   
    	  	       ( ) )  # 
 '
 
 
    _ 0 _ 0DA $BC@ D@ S#J/@ 0@ SE*	@ +	@ $GH- I- S#J/- 0-2. $>?dE]34-00, 1 4 @0,f E7#34%9:, ; 5,0 $>? @$/( &67 8
K; && dE]3e}5& 6 4&2#;L"/J"9J $>?









1 @14:$ $>?G @G $9:
, ;
, $9:( ;(r$   