403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/site-packages/pandas/tests/io/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/site-packages/pandas/tests/io/__pycache__/test_stata.cpython-312.pyc
�

0	�g�h�
�r�ddlZddlZddlmZddlZddlZddlZddlZddlZddlZddl	Z
ddlZddlm
cmZddlZddlmZddlmZddlmZmZddlmZddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ejJd��Z&ejJd��Z'Gd	�d
�Z(ejRjUdgd��d
��Z+d�Z,d�Z-ejRjUdgd��ejRjUdddg�ejRjUdddg�d����Z.ejRjUdddg�ejRjUdgd��d���Z/ejRjUdgd��d��Z0d�Z1ejRjUdd�d��Z2d �Z3d!�Z4d"�Z5ejRjUd#ddg�ejRjUd$ddg�d%���Z6d&�Z7d'�Z8d(�Z9ejRjUdgd��ejRjUd)ejtejvejxejzej|ej~ej�ej�ej�g	�d*���ZCd+�ZDy),�N)�datetime)�CategoricalDtype)�	DataFrame�Series��read_csv)	�CategoricalConversionWarning�InvalidColumnName�PossiblePrecisionLoss�StataMissingValue�StataReader�StataWriter�StataWriterUTF8�ValueLabelTypeMismatch�
read_statac�,�tgd�gd�gd�d��S)N�����)��?�@g;@g@T@)�Atlanta�
Birmingham�
Cincinnati�Detroit��a�b�c)r���<C:\Python312\Lib\site-packages\pandas/tests/io/test_stata.py�mixed_framer%&s����'�C�	
��r#c�X�|dddd�}t|d��}d|j_|S)N�io�data�statazstata5_114.dtaT��
convert_dates�index)rr,�name)�datapath�	dta14_114�
parsed_114s   r$r0r01s3����v�w�0@�A�I��I�T�:�J�#�J�����r#c
�L�eZdZd�Zd�Zejjdgd��d��Zejjdgd��d��Z	ejjdgd��d��Z
ejjdd	d
g�d��Zd�Zejjdgd
��d��Z
ejjdgd��d��Zd�Zd�Zd�Zd�Zejjdgd��d��Zd�Zd�Zejjdgd��d��Zd�Zejjdgd��d��Zd�Zejjdgd��ejjdgd��d���Zejjdgd��d��Zejjdgd��d ��Zejjdgd��d!��Zd"�Zejjdgd��d#��Zd$�Z d%�Z!d&�Z"d'�Z#d(�Z$d)�Z%d*�Z&d+�Z'ejjdgd��ejjd,d-d.g�d/���Z(d0�Z)d1�Z*d2�Z+d3�Z,ejjdgd4��d5��Z-d6�Z.d7�Z/d8�Z0ejjdgd��ejjcd9�d:���Z2d;�Z3ejjdgd��d<��Z4ejjdd=d>g�d?��Z5ejjdd@dAg�dB��Z6ejjdd=d>g�dC��Z7ejjcdD�ejjdgdE��ejjdFdGdHg�ejjdIdJdKg�ejjdLdJdKg�dM������Z8e9dNe:dOe:fdP��Z;dQ�Z<ejjcdD�ejjdgdR��ejjdFdGdHg�ejjdIdJdKg�ejjdLdJdKg�dS������Z=dT�Z>ejjdgd��dU��Z?ejjdgd��dV��Z@ejjddWdXg�dY��ZAdZ�ZBd[�ZCd\�ZDd]�ZEd^�ZFd_�ZGd`�ZHda�ZIejjdbeJj�eJj�g�dc��ZLdd�ZMde�ZNejjdfdKdJg�dg��ZOdh�ZPejjdigdj��dk��ZQdl�ZRdm�ZSdn�ZTejjdgd��do��ZUdp�ZVdq�ZWdr�ZXejjdgd��ds��ZYejjdgd��dt��ZZdu�Z[dv�Z\ejj�dw��Z^ejjdgdx��dy��Z_dz�Z`ejjd{d|ej�d}ebj�d}��~�g�d��Zdy�)��	TestStatac��t|d��S)NTr*)r��self�files  r$�read_dtazTestStata.read_dta:s���$�d�3�3r#c��t|d��S)NT)�parse_datesrr4s  r$rzTestStata.read_csv>s����$�/�/r#�version��r�u�v�wNc���tdg��}tj�5}|j|d|��t	|�}tj
||�ddd�y#1swYyxYw)N�unit��columnsF��write_indexr:)r�tm�ensure_clean�to_statar�assert_frame_equal)r5r:�empty_ds�path�	empty_ds2s     r$�test_read_empty_dtazTestStata.test_read_empty_dtaAs^���f�X�.��
�_�_�
�	7�$����d��w��G�"�4�(�I��!�!�(�I�6�	7�	7�	7�s�6A!�!A*c��ttjdgtj��tjdgtj��tjdgtj
��tjdgtj��tjdgtj��tjdgtj��tjdgtj��tjdgtj��tjdgtj��tjdgtj��d�
�}|j�}|djtj�|d<|djtj�|d<|djtj
�|d<|djtj
�|d<|djtj
�|d<tj �5}|j#|d	|�
�t%|�}tj&||�tj(|j*|j*�ddd�y#1swYyxYw)Nr��dtype)
�i8�i16�i32�i64�u8�u16�u32�u64�f32�f64rUrVrWrXrTFrD)r�np�array�int8�int16�int32�int64�uint8�uint16�uint32�uint64�float32�float64�copy�astyperFrGrHrrI�assert_series_equal�dtypes)r5r:�empty_df_typed�expectedrK�empty_rereads      r$�test_read_empty_dta_with_dtypesz)TestStata.test_read_empty_dta_with_dtypesJs���
#��h�h��s�"�'�'�2��x�x���2�8�8�4��x�x���2�8�8�4��x�x���2�8�8�4��h�h��s�"�(�(�3��x�x���2�9�9�5��x�x���2�9�9�5��x�x���2�9�9�5��x�x���2�:�:�6��x�x���2�:�:�6�
�

��"�&�&�(��!�$��.�.�r�w�w�7����"�5�/�0�0����:����"�5�/�0�0����:����"�5�/�0�0����:����"�5�/�0�0����:�����_�_�
�	I�$��#�#�D�e�W�#�M�%�d�+�L��!�!�(�L�9��"�"�8�?�?�L�4G�4G�H�		I�	I�	I�s
�A K�Kc��ttd�gd�d��}tj�5}|j	|d|��t|�}ddd�t
jtj�sJ�|j�}|djtj�|d<tj||d��y#1swY�}xYw)	N�)�b1�b2�b3�b4�b5�rr FrDrT��check_index_type)r�rangerFrGrHr�
isinstancer,�pd�
RangeIndexrgrhr[r_rI)r5r:�dfrK�read_dfrls      r$�test_read_index_col_nonez"TestStata.test_read_index_col_nonems���
�U�1�X�,J�K�
L��
�_�_�
�	'�$��K�K��%��K�A� ��&�G�	'��'�-�-����7�7�7��7�7�9�� ��
�,�,�R�X�X�6���
�
���g�x�$�G�	'�	'�s� C
�
Cr6�
stata1_114�
stata1_117c�n�|ddd|�d��}|j|�}ttjtjtjtjtjfggd���}|dj	tj
�|d<t
j||�y)Nr'r(r)�.dta��
float_miss�double_miss�	byte_miss�int_miss�	long_missrBr�)r7rr[�nanrhrerFrI�r5r6r.�parsedrls     r$�test_read_dta1zTestStata.test_read_dta1zs�����f�g�$��t�}�=�����t�$����f�f�b�f�f�b�f�f�b�f�f�b�f�f�
5�6�W�
��"*�,�!7�!>�!>�r�z�z�!J����
���f�h�/r#c��tjtdddddd�dtdd	d�tdd	d
�tdd	d	�tddd	�tdd	d	�tdd	d	�ftd
ddddd�dtddd�tddd�tdd	d	�tddd	�tdd	d	�tdd	d	�ftjtjtjtjtjtjtjtjfggd���}|djd�|d<|dddd�}|dddd �}|dddd!�}t
jt�5|j|�}ddd�t
jt�5|j|�}ddd�t
jt�5|j|�}ddd�t
j|d"�#�t
j|d"�#�t
j|d"�#�y#1swY��xYw#1swY��xYw#1swY�jxYw)$N������
�l*�}ai�r�i��i���riZl�i��
ri��i�)�
datetime_c�datetime_big_c�date�weekly_date�monthly_date�quarterly_date�half_yearly_date�yearly_daterBr��Or'r(r)zstata2_114.dtazstata2_115.dtazstata2_117.dtaT��check_datetimelike_compat)r�from_recordsrr{�NaTrhrF�assert_produces_warning�UserWarningr7rI)	r5r.rl�path1�path2�path3r0�
parsed_115�
parsed_117s	         r$�test_read_dta2zTestStata.test_read_dta2�s5���)�)��T�2�r�2�r�2�6�!��T�1�b�)��T�1�a�(��T�1�a�(��T�1�a�(��T�1�a�(��T�1�a�(�	��T�2�r�2�q�"�5���T�2�q�)��T�1�b�)��T�1�a�(��T�1�a�(��T�1�a�(��Q��1�%�	�������������������������P�+
�.	�1"
��F#+�=�"9�"@�"@��"E������v�w�0@�A����v�w�0@�A����v�w�0@�A��
�
'�
'��
4�	.����u�-�J�	.�
�
'�
'��
4�	.����u�-�J�	.�
�
'�
'��
4�	.����u�-�J�	.�	���j�(�d�S�
���j�(�d�S�
���j�(�d�S�%	.�	.��	.�	.��	.�	.�s$�I�	I+�<I7�I(�+I4�7J)�
stata3_113�
stata3_114�
stata3_115�
stata3_117c�t�|ddd|�d��}|j|�}|j|dddd��}|jtj�}|djtj
�|d<|djtj�|d<tj||�y)Nr'r(r)r��
stata3.csv�year�quarter)	r7rrhr[rer^r]rFrIr�s     r$�test_read_dta3zTestStata.test_read_dta3�s�����f�g�$��t�}�=�����t�$���=�=��$����!N�O���?�?�2�:�:�.��#�F�+�2�2�2�8�8�<����&�y�1�8�8����A����
���f�h�/r#)�
stata4_113�
stata4_114�
stata4_115�
stata4_117c���|ddd|�d��}|j|�}tjgd�gd�gd�gd�d	d
dtjd	gd
d	dtjd
gd
ddtjd
gdddtjdgdddtjdgdddtjdgg
gd���}|D]�}||j�}tj|d|j��}|dk(r|}|jd�j}|j|d��}|jjdd��|||<��tj||�y) Nr'r(r)r�)�one�tenr�r�r�)�two�niner�r�r�)�three�eightr�r�r�)�four�sevenrr�r��five�sixrpr�r�r�r�r�r�r�r�r��	r�r�)�
fully_labeled�fully_labeled2�incompletely_labeled�labeled_with_missings�float_labelledrBr�r��categoryT��ordered��inplace)r7rr�r[r�rg�asarray�notnarh�_values�set_categories�
categories�renamerFrI)	r5r6r.r�rl�col�origr��cats	         r$�test_read_dta4zTestStata.test_read_dta4�sd����f�g�$��t�}�=�����t�$���)�)�3�4�=�4����2�6�6�6�2����2�6�6�5�1��&�!�R�V�V�W�5��'�1�b�f�f�g�6����2�6�6�6�2���u�b�f�f�e�4�
��
��.�	 �C��C�=�%�%�'�D����H�_�$=�d�j�j�l�$K�L�J��,�,�!�
��+�+�j�)�1�1�C��$�$�Z��$�>�C��N�N�!�!�$��!�5��H�S�M�	 �	���f�h�/r#c��|j|dddd��}tjgd�gd�gd�ggd��	�}tj||d
��y)Nr'r(r)zstata12_117.dta)r�abc�	abcdefghi)r�cba�qwertywertyqwerty)�]��strl)�x�y�zrBF��check_dtype)r7rr�rFrI)r5r.r�rls    r$�test_read_dta12zTestStata.test_read_dta12sS���]�]�8�D�&�'�CT�#U�V�
��)�)�'�/� �
�
$�

��	���j�(��Fr#c
��|j|dddd��}|djd�|d<tjgd�dd	d
tj
tj
tj
tj
ggd�gd�gd
�ggd���}|djtj�|d<|jD]}tj||||�� t|dddd��5}|j�}dddddddd�}tj||�|jdk(sJ�	ddd�y#1swYyxYw)Nr'r(r)zstata14_118.dta�Bytesr�)�Cat�BogotauBogotárruoption b Ünicoder�Dog�BostonuUzunköprü)�Plane�RomeuTromsør��option ar�)�Potato�Tokyou	Elâzığ����@rr)r�r�r�rg����T�?r�gUUUUUU�?)�Things�Cities�Unicode_Cities_Strl�Ints�Floatsr��LongsrBr�u'Here are some strls with Ünicode charsz	long datazHere are some thingsz	byte datazint datazHere are some citiesz
float data)r�r�r�r�r�r�r�uThis is a  Ünicode data label)r7rhrr�r[r�rerCrF�assert_almost_equalr
�variable_labels�assert_dict_equal�
data_label)r5r.�
parsed_118rlr��rdr�vl�vl_expecteds        r$�test_read_dta18zTestStata.test_read_dta18sN���]�]�8�D�&�'�CT�#U�V�
�(��1�8�8��=�
�7���)�)�N���-�������������P�E�?�?�
��
��$&�h�/�6�6�r�z�z�B�����%�%�	C�C��"�"�:�c�?�H�S�M�B�	C���$���9J�K�
L�
	F�PS��$�$�&�B�'P�$�0�$�"�0�&��K�
� � ��[�1��>�>�%E�E�E�E�
	F�
	F�
	F�s
�=AE	�	Ec�<�ttjtjtjtjtjfggd���}d|j_tj�5}|j|d��|j|�}ddd�|j�}|jjtj�|_tjjd�|�y#1swY�mxYw)Nr�rBr,r*)rr[r�r,r-rFrGrHr7rgrhr_rI�	set_index)r5�originalrK�written_and_read_againrls     r$�test_read_write_dta5zTestStata.test_read_write_dta5=s�����f�f�b�f�f�b�f�f�b�f�f�b�f�f�
5�6�W�
��&�����
�_�_�
�	9�$����d�$��7�%)�]�]�4�%8�"�	9��=�=�?��!���.�.�r�x�x�8���
���4�>�>�w�G��R�
	9�	9�s�%D�Dc�2�|j|dddd��}d|j_|jjtj
�|_|djtj
�|d<|djtj
�|d<t
j�5}|j|d��|j|�}t
j|jd�|d	�
�ddd�y#1swYyxYw)Nr'r(r)r�r,r�r�r*Frw)rr,r-rhr[r_rFrGrHr7rIr	)r5r.r
rKrs     r$�test_write_dta6zTestStata.test_write_dta6Ls����=�=��$����!N�O��%�����!���.�.�r�x�x�8���#�F�+�2�2�2�8�8�<����&�y�1�8�8����B����
�_�_�
�	�$����d�$��7�%)�]�]�4�%8�"��!�!�&�0�0��9��!&�
�	�	�	�s
�8AD
�
Dc	�8�tddddtjd�gggd���}t|dt��|d<d	|j
_|j
jtj�|_|d
jtj�|d
<tj�5}|j|ddi|�
�|j|�}tj|jd	�|d��ddd�y#1swYyxYw)N�string�objectr皙�����?�
2003-12-25)rr�integer�floatingr�r(rCrOr,rr�tc�r+r:Frw)rr[�
datetime64rrr,r-rhr_rFrGrHr7rIr	)r5r:r
rKrs     r$�test_read_write_dta10zTestStata.test_read_write_dta10\s�����X�q�#�r�}�}�\�/J�K�L�K�
��$�H�X�$6�f�E����%�����!���.�.�r�x�x�8���&�y�1�8�8����B����
�_�_�
�	�$����d�:�t�2D�g��V�%)�]�]�4�%8�"��!�!�&�0�0��9��!&�
�		�	�	�s
�8AD�Dc��tj�5}ttjjd�j
d�td���}|j|�ddd�y#1swYyxYw)Nr�r�r�ABrB)	rFrGrr[�random�default_rng�standard_normal�listrH)r5rKr}s   r$�test_stata_doc_examplesz!TestStata.test_stata_doc_examplesqs_��
�_�_�
�	�$���	�	�%�%�a�(�8�8��A�4�PT�:��B�
�K�K���		�	�	�s�AA2�2A;c��ttjjd�j	d�td���}tj|jddd�f<|j�}tj�5}|j|d��ddd�tj||�y#1swY� xYw)	Nr)rpr�abcdrBrr!F�rE)
rr[rrr r!r��locrgrFrGrHrI)r5r}�df_copyrKs    r$�test_write_preserves_originalz'TestStata.test_write_preserves_originalxs�����I�I�!�!�!�$�4�4�V�<�d�6�l�
�� �V�V����q�#�c�'�z���'�'�)��
�_�_�
�	1�$��K�K��%�K�0�	1�
���b�'�*�	1�	1�s�B;�;Cc�~�t|dddd��}t|dddd��}|jd}|jd}||k(sJ�t|t�sJ�t	j
�5}|j
|d|��t|�}t	j||�ddd�y#1swYyxYw)Nr'r(r)zstata1_encoding.dtarFrD)r�	kreis1849rz�strrFrGrHrI)	r5r:r.�raw�encoded�resultrlrK�reread_encodeds	         r$�
test_encodingzTestStata.test_encoding�s�����$���9N�O�P���X�d�F�G�=R�S�T���"�"�1�%���=�=��#����!�!�!��&�#�&�&�&�
�_�_�
�	;�$����T�u�g��F�'��-�N��!�!�'�>�:�	;�	;�	;�s�46B3�3B<c�`�tdggd���}tdggd���}d|j_|jtj
�}t
j�5}t
jt�5|j|d��ddd�|j|�}ddd�|j�}|jjtj
�|_t
jjd�|�y#1swY��xYw#1swY�yxYw)Nr)�goodubäd�8number�%astringwithmorethan32characters______rB)r2�b_d�_8number� astringwithmorethan32characters_r,r*�rr,r-rhr[r_rFrGr�r
rHr7rgrIr	)r5r
�	formattedrKrrls      r$�test_read_write_dta11zTestStata.test_read_write_dta11�s����
�N��
���
�N�S�
�	� '�	�����$�$�R�X�X�.�	�
�_�_�
�	9�$��+�+�,=�>�
<��!�!�$�d�!�;�
<�&*�]�]�4�%8�"�		9��>�>�#��!���.�.�r�x�x�8���
���4�>�>�w�G��R�
<�
<��	9�	9�s$�%D$�?D�D$�D!	�D$�$D-c�b�tdggd���}tdggd���}d|j_|jtj
�}t
j�5}t
jt�5|j|d|��ddd�|j|�}ddd�|j�}|jjtj
�|_t
jjd�|�y#1swY��xYw#1swY�yxYw)N�rrrrrpr�)�!astringwithmorethan32characters_1�!astringwithmorethan32characters_2�+�-�short�deleterB)r7� _0astringwithmorethan32character�_�_1_�_short�_deleter,rr8)r5r:r
r9rKrrls       r$�test_read_write_dta12zTestStata.test_read_write_dta12�s���
� ��

���
� ��

�	� '�	�����$�$�R�X�X�.�	�
�_�_�
�	9�$��+�+�,=�>�
M��!�!�$�d�G�!�L�
M�&*�]�]�4�%8�"�	9��>�>�#��!���.�.�r�x�x�8���
���4�>�>�w�G��R�
M�
M��	9�	9�s$�%D%�?D�D%�D"	�D%�%D.c��tdtj��}tdtj��}tdtj��}t|||d��}d|j_|}|djtj�|d<tj�5}|j|�|j|�}ddd�|j�}|jjtj�|_tjj!d�|�y#1swY�mxYw)NirOil)r^r_r`r,r`)rr[r^r_r`rr,r-rhrfrFrGrHr7rgrIr	)	r5�s1�s2�s3r
r9rKrrls	         r$�test_read_write_dta13zTestStata.test_read_write_dta13�s���
�D����
)��
�E����
*��
�E����
*���r�B��D�E��%������	�&�w�/�6�6�r�z�z�B�	�'��
�_�_�
�	9�$����d�#�%)�]�]�4�%8�"�	9��>�>�#��!���.�.�r�x�x�8���
���4�>�>�w�G��R�
	9�	9�s�-#D<�<E)�
stata5_113�
stata5_114�
stata5_115�
stata5_117c��|ddd|�d��}|j|�}d|j_tj||�tj
�5}|j
|ddi|��|j|�}ddd�|j�}|jjtj�|_tjjd�|�y#1swY�mxYw)	Nr'r(r)r�r,�date_td�tdr)r7r,r-rFrIrGrHrgrhr[r_r	)	r5r6r0r:r.r�rKrrls	         r$�test_read_write_reread_dta14z&TestStata.test_read_write_reread_dta14�s���
��f�g�$��t�}�=�����t�$��#�����
���j�&�1�
�_�_�
�	9�$�����Y��4E�w��W�%)�]�]�4�%8�"�	9��?�?�$��!���.�.�r�x�x�8���
���4�>�>�w�G��R�
	9�	9�s�(C/�/C8)�
stata6_113�
stata6_114�
stata6_115�
stata6_117c�b�|j|dddd��}|djtj�|d<|djtj�|d<|djtj
�|d<|djtj�|d<|d	jtj�|d	<|d
jtjd��|d
<|ddd|�d
��}|j|�}tj||�y)Nr'r(r)�
stata6.csv�byte_�int_�long_�float_�double_rS�z%Y-%m-%d��argsr�)rrhr[r]r^r_rerf�applyr�strptimer7rFrI)r5r6r.rlr�s     r$�test_read_write_reread_dta15z&TestStata.test_read_write_reread_dta15�s���=�=��$����!N�O��$�W�-�4�4�R�W�W�=����#�F�+�2�2�2�8�8�<����$�W�-�4�4�R�X�X�>����%�h�/�6�6�r�z�z�B����&�y�1�8�8����D����&�y�1�7�7����M�8�
������f�g�$��t�}�=�����t�$��
���h��/r#c�F�tdgdg��}tddddd�}d	}tj�5}|j	||||�
�t|�5}|jdk(sJ�|j|k(sJ�	ddd�ddd�y#1swY�xYw#1swYyxYw)N�r�variablerB��r���zThis is a data file.)�
time_stamprr:z29 Feb 2000 14:21)rrrFrGrHr
rnr)r5r:r
rnrrK�readers       r$�test_timestamp_and_labelz"TestStata.test_timestamp_and_label
s����d�V�j�\�:���d�A�r�2�r�2�
�+�
�
�_�_�
�	7�$������
�G�
�
��T�"�
7�f��(�(�,?�?�?�?��(�(�J�6�6�6�
7�	7�	7�

7�
7��	7�	7�s#�!B�#B�:B�B	�B�B c�H�tdgdg��}d}tj�5}d}tjt
|��5|j
|||��ddd�tjj|�rJ�	ddd�y#1swY�4xYw#1swYyxYw)NrhrirBz01 Jan 2000, 00:00:00z"time_stamp should be datetime type��match)rnr:)
rrFrG�pytest�raises�
ValueErrorrH�osrK�isfile)r5r:r
rnrK�msgs      r$�test_invalid_timestampz TestStata.test_invalid_timestamps����d�V�j�\�:��,�
�
�_�_�
�	,�$�6�C����z��5�
P��!�!�$�:�w�!�O�
P��w�w�~�~�d�+�+�+�+�		,�	,�
P�
P��	,�	,�s#�B�B�)B�B	�B�B!c��ttjtjd�d��}d|j_t
j�5}t
jt�5|j|�ddd�|j|�}ddd�jd�}t|j�}d�}t||�|_|j!�}|jj#tj$�|_t
j&||�y#1swY��xYw#1swY��xYw)Ng9@)rprpr,c��t|d�S)Nr)�int�r�s r$�<lambda>z5TestStata.test_numeric_column_names.<locals>.<lambda>1s��S��1��Y�r#)rr[�reshape�aranger,r-rFrGr�r
rHr7r	r!rC�maprgrhr_rI)r5r
rKrrC�convert_col_namerls       r$�test_numeric_column_namesz#TestStata.test_numeric_column_names%s���R�Z�Z��	�	�$���@�A��%�����
�_�_�
�	9�$��+�+�,=�>�
(��!�!�$�'�
(�&*�]�]�4�%8�"�	9�"8�!A�!A�'�!J���-�5�5�6��.��),�-=�w�)G��&��=�=�?��!���.�.�r�x�x�8���
���h�(>�?�
(�
(��	9�	9�s$�E�2D4�E�4D=	�9E�E	c��ttjd�tj��}ttjd�tj��}tj
|ddd�<tj
|ddd�<t
||d��}d|j_tj�5}|j||��|j|�}ddd�jd�}|j�}|jjtj �|_tj"||�y#1swY�oxYw)Nr�rOrr�rJrKr,�r:)rr[r�rerfr�rr,r-rFrGrHr7r	rgrhr_rI)r5r:rJrKr
rKrrls        r$�test_nan_to_missing_valuez#TestStata.test_nan_to_missing_value8s���
�B�I�I�c�N�"�*�*�
5��
�B�I�I�c�N�"�*�*�
5���&�&��3�Q�3���6�6��1�4�a�4���B�b�1�2��%�����
�_�_�
�	9�$����d�G��4�%)�]�]�4�%8�"�	9�"8�!A�!A�'�!J���=�=�?��!���.�.�r�x�x�8���
���4�h�?�	9�	9�s�<%E�Ec���ddg}ttjtjd�d�|��}d|j_t
j�5}|j|d��|j|�}tjt|jj
�	�5|dddd�ddd�y#1swY�xYw#1swYyxYw)
Nr�r��$@)rprrB�index_not_writtenFr%rr)
rr[r�r�r,r-rFrGrHr7rtru�KeyError)r5rCr
rKrs     r$�
test_no_indexzTestStata.test_no_indexJs�����*���R�Z�Z��	�	�$���@�'�R��1�����
�_�_�
�	<�$����d���6�%)�]�]�4�%8�"����x�x�~�~�/B�/B�C�
<�&�':�;�
<�	<�	<�
<�
<��	<�	<�s%�AC�2C	�8C�	C	�C�Cc���tddg�}tddgtj��}t||d��}d|j_t
j�5}|j|�|j|�}ddd�|j�}|jjtj�|_t
jjd�|�y#1swY�mxYw)NrzA longer stringr�@rOr�r,)rr[rfrr,r-rFrGrHr7rgrhr_rIr	)r5rJrKr
rKrrls       r$�test_string_no_dateszTestStata.test_string_no_datesTs���
�S�+�,�
-��
�S�#�J�b�j�j�
1���B�b�1�2��%�����
�_�_�
�	9�$����d�#�%)�]�]�4�%8�"�	9��=�=�?��!���.�.�r�x�x�8���
���4�>�>�w�G��R�
	9�	9�s�#C-�-C6c��tddgtj��}tddgtj��}tddgtj��}tddgtj��}t||||d��}d|j_tj�5}tjt�5|j|�ddd�|j|�}ddd�|j�}t|d	tj��|d	<t|d
tj��|d
<t|dtj ��|d<|jj#tj�|_tj$j'd�|�y#1swY��xYw#1swY��xYw)Nr�crO�i�l����)�s0rJrKrLr,rJrKrL)rr[r]r^r`rr,r-rFrGr�rrHr7rgr_rfrhrIr	)	r5r�rJrKrLr
rKr�modifieds	         r$�test_large_value_conversionz%TestStata.test_large_value_conversionas`��
�Q��G�2�7�7�
+��
�Q��H�B�G�G�
,��
�Q�	�N�"�(�(�
3��
�Q�	�N�"�(�(�
3���B�b��"�E�F��%�����
�_�_�
�	9�$��+�+�,A�B�
(��!�!�$�'�
(�&*�]�]�4�%8�"�		9��=�=�?������b�h�h�?��������b�h�h�?��������b�j�j�A����!���.�.�r�x�x�8���
���4�>�>�w�G��R�
(�
(��	9�	9�s$�*G
�F>�G
�>G	�G
�
Gc
�*�ttdddddd�g�}d|j_t	j
�5}t	jt�5|j|dd	i�
�ddd�|j|�}ddd�|j�}dg|_|jjtj�|_t	jj!d�|�y#1swY��xYw#1swY��xYw)Nr�r�r�r�r�r�r,rrr*�_0)rrr,r-rFrGr�r
rHr7rgrCrhr[r_rIr	)r5r
rKrr�s     r$�test_dates_invalid_columnz#TestStata.test_dates_invalid_columnus����h�t�R��R��R�@�A�B��%�����
�_�_�
�	9�$��+�+�,=�>�
A��!�!�$�q�$�i�!�@�
A�&*�]�]�4�%8�"�		9��=�=�?�� �6���!���.�.�r�x�x�8���
���4�>�>�w�G��R�
A�
A��	9�	9�s$�D	�C=�0D	�=D	�D	�	Dc���|dddd�}t|�}gd�gd�gd�g}t|�}gd�|_|d	jtj
�|d	<|d
jtj�|d
<|djtj�|d<|djtj�|d<tj|jd
�|�y)Nr'r(r)�S4_EDUC1.dta)rrr���)rrrr�)rrrr�)�clustnum�pri_schl�psch_num�psch_disr�r�r�r�r)rrrCrhr[r^r]rerFrI�head)r5r.�dpathr}�df0s     r$�test_105zTestStata.test_105�s�����v�w��?��
��
���m�]�;����n��F����j�/�0�0����:��J���j�/�0�0����9��J���j�/�0�0����9��J���j�/�0�0����<��J��
���b�g�g�a�j�#�.r#c��|dddd�}t|�5}|j�ik(sJ�	ddd�y#1swYyxYw)Nr'r(r)r�)r
�value_labels)r5r.r�ros    r$�test_value_labels_old_formatz&TestStata.test_value_labels_old_format�sJ��
��v�w��?��
��
�	/�6��&�&�(�B�.�.�.�	/�	/�	/�s	�7�Ac��gd�}|D�cic]}||��}}tdddddd�gt|�z}t|g|��}d|j_tdddddd�tddd�tddd	�tddd
�tddd
�tddd
�tdd
d
�g}t|gtjd
gtjd��|��}tj�5}|j||��|j|�}	ddd�tj	jd�|�ycc}w#1swY�4xYw)N)rrT�twrF�tq�th�tyr�r�r�r�r�rBr,r�rr�r�r�rPr-�r,rCr*)r�lenrr,r-r{�Indexr[r_rFrGrHr7rIr	)
r5rCr!�conversionsr(r
�expected_valuesrlrKrs
          r$�test_date_export_formatsz"TestStata.test_date_export_formats�sL��<��%,�-��q�!�t�-��-���r�2�r�2�r�2�3�c�'�l�B���d�V�W�5��%������T�2�r�2�r�2�.��T�2�r�"��T�2�r�"��T�2�q�!��T�2�q�!��T�1�a� ��T�1�a� �
���
���(�(�A�3�b�h�h�W�=��
���_�_�
�	9�$����d�+��>�%)�]�]�4�%8�"�	9�	���4�>�>�w�G��R��1.�(	9�	9�s�
E�2%E
�
Ec�z�tdgdggdg��}tdgdggtjddgtjd��dg�	�}tj�5}|j|�|j|�}ddd�tjjd�|�y#1swY�/xYw)
N�1�foorBr�rrr,r�r�)rr{r�r[r_rFrGrHr7rIr	)r5r
rlrKrs     r$�test_write_missing_stringsz$TestStata.test_write_missing_strings�s����s�e�d�V�_�u�g�>����U�R�D�M��(�(�A�q�6�����@��G�
���_�_�
�	9�$����d�#�%)�]�]�4�%8�"�	9�	���4�>�>�w�G��R�		9�	9�s� #B1�1B:�	byteorder�>�<c
��tgd�tj��}tgd�tj��}tgd�tj��}tgd�tj��}tgd�tj��}tgd�tj
��}tgd�tj
��}	t
|||||||	d	��}
d
|
j_|
j�}|
jjtj�|_tjtjtjtjtjtjtjf}t|j |�D]\}
}||
j|�||
<�t#j$�5}|
j'|||��|j)|�}ddd�j+d
�}t#j,||�y#1swY�1xYw)N)rrTrO)rr�d)rr�)rri�)rri��)rri���)rrl��)r�rJrKrL�s4�s5�s6r,)r�r:)rr[�bool_rarbrcrr,r-rgrhr_r]r^rf�ziprCrFrGrHr7r	rI)r5r�r:r�rJrKrLr�r�r�r
rl�expected_typesr!�trKrs                 r$�test_bool_uintzTestStata.test_bool_uint�s����L����
1��
�K�r�x�x�
0��
�K�r�x�x�
0��
�'�r�y�y�
9��
�%�R�Y�Y�
7��
�'�r�y�y�
9��
�%�R�Y�Y�
7����R�r��2�R�r�R�
��&������=�=�?��!���.�.�r�x�x�8����G�G��G�G��H�H��H�H��H�H��H�H��J�J�
����(�(�.�9�	0�D�A�q�"�1�+�,�,�Q�/�H�Q�K�	0��_�_�
�	9�$����d�i���I�%)�]�]�4�%8�"�	9�"8�!A�!A�'�!J��
���4�h�?�	9�	9�s�"&H8�8Ic�X�t|dddd��5}|j�}ddd�t|dddd��5}|j�}ddd�d}d}j�D]!\}}|vsJ�|||k(sJ�||vsJ�||vr�!J�y#1swY�oxYw#1swY�NxYw)Nr'r(r)zstata7_115.dtazstata7_117.dta)�var1�var2�var3)�label1�label2�label3)r
r�items)	r5r.r�sr_115�sr_117�keys�labels�k�vs	         r$�test_variable_labelszTestStata.test_variable_labels�s���
��$���9I�J�
K�	+�s��(�(�*�F�	+�
��$���9I�J�
K�	+�s��(�(�*�F�	+�'��/���L�L�N�	�D�A�q���;��;���q�	�>�!�>���9��9���;��;�		�
	+�	+��	+�	+�s�B�B �B� B)c	�"�d}i}|D](}td|zd|zd|zg�|dt|�z<�*t|�}tj�5}|j|d��t
|�5}|j�t|j|j|j�D]8\}}}	t|dd�t|dd	�k(sJ�t|dd�|	k(r�8J�	ddd�ddd�y#1swY�xYw#1swYyxYw)
N)rr���rr r!�sFr%r���)
rr+rrFrGrHr
�_ensure_openr��_varlist�_fmtlist�_typlistr})
r5�str_lensr��str_lenr
rK�srri�fmt�typs
          r$�test_minimal_size_colzTestStata.test_minimal_size_col�s�� �����	�G�$*��w���g�
�s�W�}�=�%�A�c�C��L� �!�	��Q�<��
�_�_�
�	4�$����d���6��T�"�
4�b����!�*-�b�k�k�2�;�;����*T�4�&�H�c�3��x���|�,��C��"�I��>�>�>��x���|�,��3�3�3�4�
4�	4�	4�
4�
4��	4�	4�s+�D�0A3C9�$C9�(D�9D	�>D�Dc�T�d}i}|D](}td|zd|zd|zg�|dt|�z<�*t|�}d}tjt
|��5t
j�5}|j|�ddd�ddd�y#1swY�xYw#1swYyxYw)N)rr���rr r!r�z�Fixed 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\.rr)	rr+rrtrurvrFrGrH)r5r�r�r�r
ryrKs       r$�test_excessively_long_stringz&TestStata.test_excessively_long_strings��� �����	�G�$*��w���g�
�s�W�}�=�%�A�c�C��L� �!�	��Q�<��
9�	��]�]�:�S�
1�	(����"�
(�d��!�!�$�'�
(�	(�	(�
(�
(��	(�	(�s$�B�/B�B�B	�B�B'c��d}tdggdg��}tj�5}|j|�t	|�5}|j
}ddd�ddd�t
d�D�cgc]}dtd|z�z��}}|jdd�|D]?}|d	}	t
d
�D]'}t|	d	z|z�}
|
j||k(r�'J��Attjdd�d�}
|
jdk(sJ�ttjdd
�d�}
|
jdk(sJ�ttjdd�d�}
|
jdk(sJ�ttjdd�d�}
|
jdk(sJ�y#1swY��\xYw#1swY��axYwcc}w)N)r �h�lr�r_rB��.�arr�z<fss�z.zz<ds�s�)
rrFrGrHr
�VALID_RANGEry�chr�insertrr�struct�unpack)r5�typesr}rKr�valid_range�ir�r��offset�vals           r$�test_missing_value_generatorz&TestStata.test_missing_value_generators�����
���w��
�
3��
�_�_�
�	.�$��K�K����T�"�
.�c�!�o�o��
.�	.�7<�B�i�@��3��R�!�V��,�@��@����q�#�&��	8�A� ��^�A�&�F��2�Y�
8��'���
�Q��7���z�z�_�Q�%7�7�7�7�
8�	8� ��
�
�d�4G� H�� K�L���z�z�S� � � ���
�
�d�4G� H�� K�L���z�z�T�!�!�!� ��M�M�$� C�D�Q�G�
���z�z�S� � � ���M�M�$� C�D�Q�G�
���z�z�T�!�!�!�1
.�
.��	.�	.��As)�F8�
F+�F8�.G�+F5	�0F8�8G)�
stata8_113�
stata8_115�
stata8_117c
��gd�}td�}t|jj��}g}t	d�D]=}t	d�D�cgc]}t|||dzz���}	}|j|	��?t
||��}
t|ddd|�d	��d
��}tj||
�ycc}w)N)�int8_�int16_�int32_�float32_�float64_�er�rprBr'r(r)r�T��convert_missing)
r�sorted�MISSING_VALUESr�ry�appendrrrFrI)r5r6r.rC�smvr�r(r��j�rowrlr�s            r$�test_missing_value_conversionz'TestStata.test_missing_value_conversion8s���G����$���c�(�(�-�-�/�0�����r��	�A�BG��(�K�Q�$�T�!�q�2�v�,�%7�8�K�C�K��K�K���	��T�7�3����T�6�7�t�f�D�M�:�D�
��	���f�h�/��Ls�B=c���gd�}gd�}gd�}gd�}gd�}gd�}g}t||||||�D]�\}	}
}}}
}g}td�D]e}|dk(r |jt|	|
|||
|���(|dk(r|jt|	d	d	���J|jt|	|
|���g|j|���|jtj
gdz�gd
�}tddd
�|dd<tddd	�|dd<tddd	�|dd<tddd	�|dd<tddd�|dd<tddd	�x|dd<|dd<tdd	d	�x|dd<|dd<tddd	�x|dd<x|dd<|dd<tdd	d	�x|dd<|dd<t
||t��}t|dddd��}t|dddd��}tj||d��tj||d��|D�cic]}||dd��
}}tj�5}d |j_
|j||�!�|j|�}ddd�tjj!d �|j!|jj#t$j&��d��ycc}w#1swY�lxYw)"N)i�rj�'r����)rrr�rrr�)rrr�r�r�)rrr�rrr)rr�;rrrr�rr�r)�date_tcrS�date_tw�date_tm�date_tq�date_th�date_tyrr��rrr�rrpr
�ri�)rCrPr'r(r)zstata9_115.dtazstata9_117.dtaTr�r�r,r*)r�ryrrr{r�rrrrFrIrGr,r-rHr7r	rhr[r_)r5r.�yr�mo�dd�hr�mm�ssrlr��month�day�hour�minute�secondr	rrCr�r�r!�date_conversionrKrs                        r$�test_big_dateszTestStata.test_big_datesHs��
0��
 ��
"��
 ��
 ��
 ����69�"�b�"�b�"�b�6Q�		!�2�D�%��d�F�F��C��1�X�
;����6��J�J�x��e�S�$���O�P��!�V��J�J�x��a��3�4��J�J�x��e�S�9�:�

;�
�O�O�C� �		!�	�������1��%�
��"�$��B�/����A��!�$��A�.����A��!�$��A�.����A��!�$��1�-����A��!�$��2�.����A��*2�4��A�*>�>����A���!��Q��*2�4��A�*>�>����A���!��Q��;C�D�"�a�;P�P����A��P��!��Q��(�1�+�a�.�*2�4��A�*>�>����A���!��Q���X�w�f�E�����v�w�@P� Q�R�
����v�w�@P� Q�R�
�
���h�
�d�S�
���h�
�d�S�.5�6��1�a���f�9�6��6�
�_�_�
�	9�$�")�H�N�N�����d�/��B�%)�]�]�4�%8�"�	9�
	���"�,�,�W�5����x�~�~�4�4�R�X�X�>�?�&*�	
��7�	9�	9�s�%
K$�6K)�)K2c�,�|j|dddd��}|djtj�|d<|djtj�|d<|djtj
�|d<|djtj�|d<|d	jtj�|d	<|d
jtjd��|d
<t|dddd
�d��}tj||�t|dddd
�dd��}|j|dddd��}|d
jtjd��|d
<tj||�y)Nr'r(r)r[r\r]r^r_r`rSrarb�stata6_117.dtaTr*F)r+�preserve_dtypes)rrhr[r]r^r_rerfrdrrerrFrI)r5r.rl�
no_conversion�
conversions     r$�test_dtype_conversionzTestStata.test_dtype_conversion�s����=�=��$����!N�O��$�W�-�4�4�R�W�W�=����#�F�+�2�2�2�8�8�<����$�W�-�4�4�R�X�X�>����%�h�/�6�6�r�z�z�B����&�y�1�8�8����D����&�y�1�7�7����M�8�
����#��T�6�7�,<�=�T�
�
�	���h�
�6���T�6�7�,<�=��!�
�
��=�=��$����!N�O��&�y�1�7�7����M�8�
����	���h�
�3r#c	��|j|dddd��}|djtj�|d<|djtj�|d<|djtj
�|d<|djtj�|d<|d	jtj�|d	<|d
jtjd��|d
<gd
�}||}t|dddd�d|��}tj||�gd�}||}t|dddd�d|��}tj||�d}tjt |��5ddg}t|dddd�d|��ddd�d}tjt |��5gd�}t|dddd�d|��ddd�y#1swY�KxYw#1swYyxYw)Nr'r(r)r[r\r]r^r_r`rSrarb)r\r]r^r'T)r+rC)r]r^r\z"columns contains duplicate entriesrrzEThe following columns were not found in the Stata data set: not_found)r\r]r^�	not_found)rrhr[r]r^r_rerfrdrrerrFrIrtrurv)r5r.rlrC�dropped�	reorderedrys       r$�test_drop_columnzTestStata.test_drop_column�s���=�=��$����!N�O��$�W�-�4�4�R�W�W�=����#�F�+�2�2�2�8�8�<����$�W�-�4�4�R�X�X�>����%�h�/�6�6�r�z�z�B����&�y�1�8�8����D����&�y�1�7�7����M�8�
����-���G�$����T�6�7�,<�=���
��	���h��0�-���G�$����T�6�7�,<�=���
�	�
	���h�	�2�2��
�]�]�:�S�
1�	���(�G����v�w�0@�A�"��
�	�V��
�]�]�:�S�
1�	�=�G����v�w�0@�A�"��
�	�	�	�	��	�	�s�G*�G6�*G3�6G?z;ignore:\nStata value:pandas.io.stata.ValueLabelTypeMismatchc��tjgd�gd�gd�gd�dddtjddgdddtjddgd	d
dtjd	dgdd
dtjddgdddtjddgdddtjddgg
gd���}|j	�}tj|D�cgc]}||jd���c}d��}|jjd�jtj�|_|djt�|d<|djt�|d<|D]z}||j	�}|jd�j}|j�}|dk(r|j|d��}|j j#dd��|||<�|t%j&�5}|j)||� �|j+|�}ddd�j-d�}	t%j.|	|�ycc}w#1swY�6xYw)!N)r�r�r�r�r�r)r�r�r�r�r�r)r�r�r�r�r�r)r�r�rr�r�rr�r�rpr�r�r�r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r��	unlabeledrBr�r��axisr,r�r2Tr�r�r�)rr�r[r�rgr{�concatrhr,�	set_namesr_rdr+r��
as_orderedr�r�r�rFrGrHr7r	rI)
r5r:r
rlr�r�r�rKr�ress
          r$�test_categorical_writingz"TestStata.test_categorical_writing�s'��
�)�)�6�7�@�7����2�6�6�6�1�5����2�6�6�5�!�4��&�!�R�V�V�W�a�8��'�1�b�f�f�g�q�9����2�6�6�6�1�5���u�b�f�f�e�R�8�
��
��,�=�=�?���9�9�9A�B�#�X�c�]�
!�
!�*�
-�B��
��"���1�1�'�:�A�A�"�(�(�K���+3�4J�+K�+Q�+Q�RU�+V��'�(� (�� 5� ;� ;�C� @�����
	 �C��C�=�%�%�'�D��+�+�j�)�1�1�C��.�.�"�C��k�!��(�(��t�(�<���N�N�!�!�$��!�5��H�S�M�
	 ��_�_�
�	9�$����d�G��4�%)�]�]�4�%8�"�	9�%�.�.�w�7��
���c�8�,��/
C�$	9�	9�s�I�1%I�Ic���tjddzgddzgddzgddzggdg��}tj|D�cgc]}||j	d���c}d	�
�}tj�5}d}tjt|��5|j|�ddd�ddd�tjdgdgdgdgd	ggdg��}tj|D�cgc]}||j	d���c}d	�
�}tjt�5|j�ddd�ycc}w#1swY��xYw#1swY��xYwcc}w#1swYyxYw)
Nri'r r!�d�Too_longrBr�rr3zbStata value labels for a single variable must have a combined length less than 32,000 characters\.rr)
rr�r{r5rhrFrGrtrurvrHr�r)r5r
r�rKrys     r$�$test_categorical_warnings_and_errorsz.TestStata.test_categorical_warnings_and_errors
sn���)�)��E�k�]�S�5�[�M�C�%�K�=�3��;�-�H��L�
��
�9�9�9A�B�#�X�c�]�
!�
!�*�
-�B��
���_�_�
�	(�$�C�
����z��5�
(��!�!�$�'�
(�	(��)�)��U�S�E�C�5�3�%�!��-�
�|�
���9�9�9A�B�#�X�c�]�
!�
!�*�
-�B��
���
'�
'�(>�
?�	$����d�#�	$�	$��#
C�
(�
(��	(�	(��
C�	$�	$�s<�E�8E�E
�(E�-E"�*E'�
E	�E�E�'E0c�V�td�D�cgc]}dt|�zg��}}|jtjg�tj|dg��}tj|D�cgc]}||jd���c}d��}d|j_tj�5}|j||�	�|j|�}ddd�j!d�}|j#�}	|	D]C}|	|j$}
|
j'�j(}|
j+|d
��}
|
|	|<�E|	jjtj,�|	_
tj.||	�ycc}wcc}w#1swY��xYw)N�xr�many_labelsrBr�rr3r,r�Tr�)ryr+rr[r�rr�r{r5rhr,r-rFrGrHr7r	rgr��remove_unused_categoriesr�r�r_rI)r5r:r��valuesr
r�rKrr8rlr��new_catss            r$�*test_categorical_with_stata_missing_valuesz4TestStata.test_categorical_with_stata_missing_values(sk��*/��*�5�Q�3��Q��<�.�5��5��
�
�r�v�v�h���)�)�&�=�/�J���9�9�9A�B�#�X�c�]�
!�
!�*�
-�B��
��&�����
�_�_�
�	9�$����d�G��4�%)�]�]�4�%8�"�	9�%�.�.�w�7���=�=�?���	 �C��3�-�'�'�C��3�3�5�@�@�H��$�$�X�t�$�<�C��H�S�M�		 �
"���.�.�r�x�x�8���
���c�8�,��)6��
C�	9�	9�s�F�1F�:%F�F(�stata10_115�stata10_117c�^�ddgd�tjd�fddgd�tjd�ddd�fddgd�tjgd��fdd	gd�tjd
d�fddgd�tjgd
��fddgd�tjd�fddgd�tjd�fg}g}|D]i\}}}}|r4|j|tj
j
||d��f��>|j|t|tj��f��ktjt|��}|ddd|�d��}t|�}	tj||	�|D]�}t||j t"�s�!tj$||j&j(|	|j&j(�tj*||j&j,|	|j&j,���y)NTr��rr r!r;�erp�reverser��noorder)rrrrrrr�
float_missing)rr;rI)rrrr�r�F�nolabel)rr�rr�g@�int32_mixed)r;rrIr rr�rOr'r(r)r�)r[r�r\rr{�Categorical�
from_codesrrer�	from_dict�dictrrFrIrzrPrrir��codes�assert_index_equalr�)
r5r6r.rl�cols�is_catr�r�rSr�s
          r$�test_categorical_orderz TestStata.test_categorical_order@s���
�9�7����1��F�
�9�7����1��d��d�9K�L�
�9�7����/�9R�S�
�:�8�"�)�)�A�q�/�J�
�?�O�R�X�X�>O�5P�Q�
�I�8�"�)�)�A�,�G�
�=�"9�2�9�9�Q�<�H�
����*2�	E�&�F�C��������"�.�.�3�3�E�6�4�3�P�Q�����S�&��r�z�z�"B�C�D�
	E��&�&�t�D�z�2����f�g�$��t�}�=���D�!��
���h��/��	�C��(�3�-�-�-�/?�@��&�&�x��}�'8�'8�'>�'>��s����@U�@U�V��%�%��S�M�%�%�0�0�&��+�/�/�2L�2L��	r#�stata11_115�stata11_117c	�>�t|ddd|�d���}|jdd��}tjt	|��|_gd�}gd	�}tjj||d
��}t|d��}tj||d�y)
Nr'r(r)r��srh�first)�na_position)
r�r�rrrrrrrr)�Poor�Fair�Goodz	Very good�	ExcellentT)rSr�r��r-)r�sort_valuesr{r|r�r,rOrPrrFri)r5r6r.r�rSr�r�rls        r$�test_categorical_sortingz"TestStata.test_categorical_sortingds����H�T�6�7�t�f�D�M�J�K���#�#�E�w�#�?���}�}�S��[�1���0��G�
��n�n�'�'��J��(�
���#�E�*��
���x����7r#c��|ddd|�d��}t|�}t|d��}|D]V}t||jt�s�!||jj
sJ�||jj
s�VJ�y)Nr'r(r)r�F)�order_categoricals)rrzrPrr�r�)r5r6r.r��parsed_unorderedr�s      r$�test_categorical_orderingz#TestStata.test_categorical_orderingus�����f�g�$��t�}�=���D�!��%�d�u�E���	9�C��f�S�k�/�/�1A�B���#�;�?�?�*�*�*�*�'��,�0�0�8�8�8�8�		9r#zignore::UserWarning)r��
stata2_117r�r�rQrY�
stata7_117r��
stata9_117rFrY�	chunksizerr�convert_categoricalsFTr+c��|ddd|�d��}t|||��}t|d||��5}d}	td	�D]i}
	|j|�}|j|	|	|z�dd�fj�}|j
|�}tj||d
d��|	|z
}	�kddd�y#t$rY�wxYw#1swYyxYw)Nr'r(r)r��rmr+T)�iteratorrmr+rrpF�r�r��	rry�read�
StopIteration�ilocrg�_convert_categoricalrFrI�
r5r6rlrmr+r.�fnamer��itr�posr�chunk�
from_frames
             r$�test_read_chunks_117zTestStata.test_read_chunks_117�s���.��v�w�4�&��
�>����!5�'�
��
���!5�'�	
�	!�
��C��1�X�

!����H�H�Y�/�E�$�[�[��s�Y��)>��)A�B�G�G�I�
�!�6�6�z�B�
��%�%���5�TX���y� ��

!�	!�	!��%�����	!�	!��/�B?�B/�AB?�/	B<�8B?�;B<�<B?�?Cr|�returnc�T�|D]�}||}t|jt�s�#|jj	�}|j
jtk(rDtjj|j
j�}|j|�}|||<��|S)zX
        Emulate the categorical casting behavior we expect from roundtripping.
        )rzrPrr�rAr�rr{r��_with_inferr�)r|r��serr�r�s     r$rvzTestStata._convert_categorical�s���
�	&�C��S�/�C��#�)�)�%5�6��k�k�:�:�<���>�>�'�'�6�1�!#���!5�!5�c�n�n�6L�6L�!M�J��,�,�Z�8�C�"%�
�3��	&��r#c��|dddd�}t|�}t|d��5}|jd�}tj|jdd�dd�f|�ddd�t|d�	�5}t|�}tj|jdd�dd�f|d�ddd�t|d��5}|j
d�}tj|jdd�dd�f|�ddd�t|d�	�5}|j
�}tj|jdd�dd�f|�ddd�t|d
�	�5}tj|�}ddd�tj|�y#1swY��8xYw#1swY��xYw#1swY��xYw#1swY�pxYw#1swY�QxYw)Nr'r(r)�stata3_117.dtaT�rprpr�rlr)	rrsrFrIrur!�	get_chunkr{r5)r5r.rxr�ryr{�from_chunkss       r$�
test_iteratorzTestStata.test_iterator�s�����v�w�0@�A���E�"��
���
-�	>���H�H�Q�K�E��!�!�&�+�+�a��c�1�f�"5�u�=�	>����
+�	A�s���I�E��!�!�&�+�+�a��c�1�f�"5�u�Q�x�@�	A����
-�	>���M�M�!�$�E��!�!�&�+�+�a��c�1�f�"5�u�=�	>����
+�	>�s��M�M�O�E��!�!�&�+�+�a��c�1�f�"5�u�=�	>�
���
+�	)�s��)�)�C�.�K�	)�
���f�k�2�'	>�	>��	A�	A��	>�	>��	>�	>��
	)�	)�s;�;F�48F"�;F.�:F:� G�F�"F+�.F7�:G�G)
�
stata2_115r�r�rPrX�
stata7_115r��
stata9_115rErXc��|ddd|�d��}t|||��}t|d||��5}d}	td	�D]i}
	|j|�}|j|	|	|z�dd�fj�}|j
|�}tj||d
d��|	|z
}	�kddd�y#t$rY�wxYw#1swYyxYw)Nr'r(r)r�roT)rpr+rmrrpFrqrrrws
             r$�test_read_chunks_115zTestStata.test_read_chunks_115�s���,��v�w�4�&��
�>����!5�'�
�����'�!5�	
�	!�
��C��1�X�

!����H�H�Y�/�E�$�[�[��s�Y��)>��)A�B�G�G�I�
�!�6�6�z�B�
��%�%���5�TX���y� ��

!�	!�	!��%�����	!�	!�r~c�@�|dddd�}gd�}d}t||��}t|d�	�5}d
}td�D]N}|j||��}	|	�n7|j|||z�dd�f}
t	j
|
|	d�
�||z
}�Pddd�y#1swYyxYw)Nr'r(r)r�)r��cpi�m1rrBTr�rrpFr�)rryrsrurFrI)r5r.rxrCrlr�ryrzrr{r|s           r$�test_read_chunks_columnsz"TestStata.test_read_chunks_columnss�����v�w�0@�A��*���	��E�7�3��
���
-�	!���C��1�X�
!������G��<���=��#�[�[��s�Y��)>��)A�B�
��%�%�j�%�U�K��y� ��

!�	!�	!�	!�s�AB�Bc��d|j_dddd�}tj�5}|j	|||��t|�5}|j
�}ddd�ddddd�}|k(sJ�	ddd�d	|d<tj�5}|j	|||��t|�5}|j
�}ddd�|k(sJ�	ddd�y#1swY��xYw#1swY�xxYw#1swY�2xYw#1swYyxYw)
Nr,�	City Rank�
City Exponent�Cityr�rr:r�)r,rr r!z	The Index)r,r-rFrGrHr
r)r5r:r%rrKr��read_labels�expected_labelss        r$�test_write_variable_labelsz$TestStata.test_write_variable_labelss*��")����� +�/��O��
�_�_�
�
	2�$�� � ���PW� �X��T�"�
3�b� �0�0�2��
3�� �$��	�O��/�1�1�1�
	2�$/��� �
�_�_�
�	2�$�� � ���PW� �X��T�"�
3�b� �0�0�2��
3��/�1�1�1�		2�	2�
3�
3��
	2�
	2��
3�
3��	2�	2�sG� C+�C�C+� D�5C7�D�C(	�$C+�+C4�7D	�<D�Dc��d|j_dddd�}tj�5}d}t	j
t|��5|j|||��ddd�ddd�y#1swY�xYw#1swYyxYw)	Nr,�Zvery longvery longvery longvery longvery longvery longvery longvery longvery longvery longr�r�r�.Variable labels must be 80 characters or fewerrrr��r,r-rFrGrtrurvrH)r5r:r%rrKrys      r$�test_invalid_variable_labelsz&TestStata.test_invalid_variable_labels6s���!(����� 0��V�T��
�_�_�
�	�$�B�C����z��5�
��$�$��/�7�%��
�	�	�
�
��	�	�s#�A<�
A0�A<�0A9	�5A<�<Br<r=c��d|j_dddd�}d|d<tj�5}t	j
td�	�5|j|||�
�ddd�ddd�y#1swY�xYw#1swYyxYw)Nr,r�r�r�ruinvalid character Œrz,Variable labels must contain only charactersrrr�r�)r5r:r%rrKs     r$�$test_invalid_variable_label_encodingz.TestStata.test_invalid_variable_label_encodingAs���!(����� 0��V�T��5����
�_�_�
�	�$�����"P��
��$�$��/�7�%��
�	�	�
�
��	�	�s#�A?�
A3�"A?�3A<	�8A?�?Bc��gd�}dddj|�d�}d}tjt|��5t	j
�5}|j
||��ddd�ddd�ddd	d�}d
}tjt|��5t	j
�5}|j
||��ddd�ddd�y#1swY�nxYw#1swY�rxYw#1swY�*xYw#1swYyxYw)N)uΡ�ΑuΝuΔr�uΣr�r�r�rzKVariable labels must contain only characters that can be encoded in Latin-1rr)rzqA very, very, very long variable label that is too long for Stata which means that it has more than 80 charactersr�)�joinrtrurvrFrGrH)r5r%rB�variable_labels_utf8ryrK�variable_labels_longs       r$� test_write_variable_label_errorsz*TestStata.test_write_variable_label_errorsNs��M��� ������ 
��
!�	��]�]�:�S�
1�	Q����"�
Q�d��$�$�T�;O�$�P�
Q�	Q�
� �2� 
��?��
�]�]�:�S�
1�	Q����"�
Q�d��$�$�T�;O�$�P�
Q�	Q�	Q�
Q�
Q��	Q�	Q��
Q�
Q��	Q�	Q�sG�C�C
� C�C1�(C%�<C1�
C	�C�C"�%C.	�*C1�1C:c��tjddddddd�tjddddddd�tjdd	d
d	d
d	d�g}tgd�gd
�|d��}tj�5}|j|d��t
|d��}tj||�|j|dddi��t
|d��}tj||�|jj�jd�}|j|d|di��t
|d��}tj||�ddd�y#1swYyxYw)N��r�r���.��rm�R��r�r��rr�r��apple�banana�cherry��nums�strs�datesFr%Tr*r�r)rEr+)�dtrrrFrGrHrrIrC�tolistr,)r5r�r
rK�reread�direct�	dates_idxs       r$�test_default_date_conversionz&TestStata.test_default_date_conversionlsJ��
�K�K��b�"�b�"�b�%�8��K�K��b�"�b�"�b�%�8��K�K��a��A�q�!�T�2�
��
�'�5��
�
���_�_�
�	2�$����d���6���D�9�F��!�!�(�F�3����d��g�t�_��U���D�9�F��!�!�&�&�1� �(�(�/�/�1�7�7��@�I����d��i�QU�EV��W���D�9�F��!�!�&�&�1�	2�	2�	2�s
�8CE�Ec��tdddgi�}d}tjt|��5t	j
�5}|j
|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nry�?@y@@z"Data type complex128 not supportedrr)rrtru�NotImplementedErrorrFrGrH)r5r
ryrKs    r$�test_unsupported_typezTestStata.test_unsupported_type�ss���c�F�F�#3�4�5��2��
�]�]�.�c�
:�	(����"�
(�d��!�!�$�'�
(�	(�	(�
(�
(��	(�	(�s#�A1�A%�A1�%A.	�*A1�1A:c���tjddddddd�tjddddddd�tjdd	d
d	d
d	d�g}tgd�gd
�|d��}d}tjt
|��5t
j�5}|j|ddi��ddd�ddd�tjddd��}tgd�gd
�|d��}tjt
d��5t
j�5}|j|�ddd�ddd�y#1swY��xYw#1swY��xYw#1swY�*xYw#1swYyxYw)Nr�r�r�r�r�rmr�r�r�rr�r�r�r�zFormat %tC not implementedrrr��tCr*z1-1-1990rzAsia/Hong_Kong)�periods�tzzData type datetime64)r�rrrtrur�rFrGrHr{�
date_range)r5r�r
ryrKs     r$�test_unsupported_datetypez#TestStata.test_unsupported_datetype�s^���K�K��b�"�b�"�b�%�8��K�K��b�"�b�"�b�%�8��K�K��a��A�q�!�T�2�
��
�'�5��
�
��+��
�]�]�.�c�
:�	G����"�
G�d��!�!�$�w��o�!�F�
G�	G��
�
�j�!�8H�I���'�5��
�
���]�]�.�6L�
M�	(����"�
(�d��!�!�$�'�
(�	(�	(�
G�
G��	G�	G��
(�
(��	(�	(�sH�E�D:�,E�E�E�)E�:E	�?E�E�E	�E�E'c	��d}tjt|��5t|dddd�d��ddd�y#1swYyxYw)	Na*
Value labels for column ethnicsn are not unique. These cannot be converted to
pandas categoricals.

Either read the file with `convert_categoricals` set to False or use the
low level interface in `StataReader` to separately read the values and the
value_labels.

The repeated labels are:
-+
wolof
rrr'r(r)zstata15.dtaT�rm)rtrurvr)r5r.rys   r$�test_repeated_column_labelsz%TestStata.test_repeated_column_labels�sG��	���]�]�:�S�
1�	����v�w�
�>�%)�
�	�	�	�s	�>�Ac��t|dddd��}tdddddddtjddg
ddddtjd	dd
ddg
dtjd
dd	d	ddddg
gd�d
��}|gd
�}t	j
||�y)Nr'r(r)zstata7_111.dtarrrrrrpr�)
rr r!r;rIr��gr�r�r)r�r��wr�)rrr[r�rFrI)r5r.r}r
s    r$�test_stata_111zTestStata.test_stata_111�s������v�w�8H�I�
J�����A�q�!�Q��2�6�6�1�a�8���A�q�"�&�&�!�Q��1�a�8������A�q�!�Q��1�a�8�F�	
�
���0�1��
���h��+r#c��tdtjtj�jdgdtjtj�jtjtj�j
gd��}d}t
jt|��5tj�5}|j|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nr�g���ColumnOk�ColumnTooBigzZColumn ColumnTooBig has a maximum value \(.+\) outside the range supported by Stata \(.+\)rr)rr[�finfo�double�eps�maxrtrurvrFrGrH)r5r}ryrKs    r$�test_out_of_range_doublez"TestStata.test_out_of_range_double�s���
� �"�(�(�2�9�9�"5�"9�"9�;O�P�!$�b�h�h�r�y�y�&9�&=�&=�r�x�x��	�	�?R�?V�?V� W�
�
��
)�	��]�]�:�S�
1�	"����"�
"�d����D�!�
"�	"�	"�
"�
"��	"�	"�s$�3C7�C+�C7�+C4	�0C7�7Dc��tdtjtj�jtjtj�j
dzgdtjtj�jtjtj�j
gd��}d|j_|D]'}||jtj�||<�)tj�5}|j|�t|�}ddd�|djtj�|d<|j�}|jjtj�|_tj j#d�|�y#1swY��xYw)Nr�r�r�r,r�)rr[r�rer�r�r,r-rhrFrGrHrrfrgr_rIr	)r5r
r�rKr�rls      r$�test_out_of_range_floatz!TestStata.test_out_of_range_float�sV�����H�H�R�Z�Z�(�,�,��H�H�R�Z�Z�(�,�,�t�3����H�H�R�Z�Z�(�,�,��H�H�R�Z�Z�(�,�,�!�

�

��&������	=�C�$�S�M�0�0����<�H�S�M�	=��_�_�
�	&�$����d�#���%�F�	&�$,�N�#;�#B�#B�2�:�:�#N��� ��=�=�?��!���.�.�r�x�x�8���
���f�.�.�w�7��B�	&�	&�s�G�G�infvalc��tddgd|gd��}d}tjt|��5t	j
�5}|j
|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nr�rr�)�
WithoutInf�WithInfz[Column WithInf contains infinity or -infinitywhich is outside the range supported by Stata.rr)rrtrurvrFrGrH)r5r�r}ryrKs     r$�test_infzTestStata.test_inf�s|���s�C�j�c�6�]�K�
L��
=�	��]�]�:�S�
1�	"����"�
"�d����D�!�
"�	"�	"�
"�
"��	"�	"�s#�A4�A(�A4�(A1	�-A4�4A=c��tdtjd�jd�zt	j
t
d�t��t	j
td�D�cgc]}d|����	c}t����}d	|j_
d
�}tj|j|�}tj||�ycc}w)Nrr?��r�ABCDrOr��i-�rCr,r,c�6�t|�jd�S�Nr,�rr	r~s r$rz-TestStata.test_path_pathlib.<locals>.<lambda>���:�a�=�2�2�7�;�r#)rr[r�r�r{r�r!rryr,r-rF�round_trip_pathlibrHrI�r5r�r}ror.s     r$�test_path_pathlibzTestStata.test_path_pathlib
s���
��"�)�)�C�.�(�(��1�1��H�H�T�&�\��8��(�(�e�B�i�8��b���H�8��G�
��
 ����
�;���&�&�r�{�{�F�;��
���b�&�)��9��+Cc��tdtjd�jd�zt	j
t
d�t��t	j
td�D�cgc]}d|����	c}t����}d	|j_
d
�}tj|j|�}tj||�ycc}w)Nrr?r�r�rOr�r�r�r,c�6�t|�jd�Sr�r�r~s r$rz6TestStata.test_pickle_path_localpath.<locals>.<lambda>r�r#)rr[r�r�r{r�r!rryr,r-rF�round_trip_localpathrHrIr�s     r$�test_pickle_path_localpathz$TestStata.test_pickle_path_localpaths���
��"�)�)�C�.�(�(��1�1��H�H�T�&�\��8��(�(�e�B�i�8��b���H�8��G�
��
 ����
�;���(�(����f�=��
���b�&�)��9r�rEc�N�dgd�i}t|��}|djd�|d<tj�5}|j	||��t|d��5}|j
�}ddd�ddd�dddd	d
d�ik(sJ�y#1swY� xYw#1swY�$xYw)N�A)�B�E�Cr�r��r(r�r%Tr�r�r�r�)rrrr)rrhrFrGrHrr�)r5rEr;r}rK�dta_iterr�s       r$�test_value_labels_iteratorz$TestStata.test_value_labels_iterator s����+�,��
�A�
���S�'�.�.��,��3��
�_�_�
�	7�$��K�K��+�K�6��D�4�0�
7�H�'�4�4�6��
7�	7�
������%E�F�F�F�F�
7�
7��	7�	7�s#�!B�B�0B�B	�B�B$c��tdtjd�jd�zt	j
t
d�t��t	j
td�D�cgc]}d|����	c}t����}d	|j_
tj�5}|j|�t|d	�
�}ddd�tj|�ycc}w#1swY�%xYw)Nrr?r�r�rOr�r�r�r,��	index_col)rr[r�r�r{r�r!rryr,r-rFrGrHrrI)r5r�r}rKr�s     r$�test_set_indexzTestStata.test_set_index-s���
��"�)�)�C�.�(�(��1�1��H�H�T�&�\��8��(�(�e�B�i�8��b���H�8��G�
��
 ����
�
�_�_�
�	9�$��K�K������8�F�	9�	���b�&�)��
9�	9�	9�s�+C,�.C1�1C:�column)�msr �weekr�qtr�halfrc��t|dddd��}|jd|f}|jd|dzf}||k(sJ�y)Nr'r(r)zstata13_dates.dtar�_fmt)rr&)r5r�r.r}�unformattedr9s      r$�(test_date_parsing_ignores_format_detailsz2TestStata.test_date_parsing_ignores_format_details:sQ�����v�w�8K�L�
M���f�f�Q��Y�'���F�F�1�f�v�o�-�.�	��i�'�'�'r#c��tdddddddtjd�ddddzdgd	d
dddddtjd�dd
ddgggd���}t|dt��|d<t|dtj
��|d<t|dtj��|d<|djtj�|d<t|dtj��|d<d|j_|jjtj�|_
|j�}tj�5}|j|ddidgd��|j!|�}tj"|j%d�|d��tj"||�ddd�y#1swYyxYw)Nrrrrrr��aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai�zstring-1zobject-1z
2003-12-26r ��bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr�)rrr]r^r_rerfrrJ�s2045�srtl�forced_strlrrOr]r^r_rer,rrr
r=)r+�convert_strlr:Frw)rr[rrrr]r^rhr_rer,r-rgrFrGrHr7rIr	)r5r
rgrKrs     r$�test_writer_117zTestStata.test_writer_117Ns������������M�M�,�/����$�J��
���������M�M�,�/�����
��<
�?-
��\$�H�X�$6�f�E����!�(�6�"2�"�'�'�B����"�8�G�#4�B�H�H�E����$�W�-�4�4�R�X�X�>����$�X�i�%8��
�
�K����%�����!���.�.�r�x�x�8����}�}���
�_�_�
�	2�$�����)�4�0�+�_��	
�
�&*�]�]�4�%8�"��!�!�&�0�0��9��!&�
�

�!�!�(�D�1�	2�	2�	2�s
�A'G�Gc��tgd�gd�ggd���}d|j_tjt
�5tj�5}|j|ddgd�	�|j|�}|jd�}|j|_
tj||d
��ddd�ddd�y#1swY�xYw#1swYyxYw)N)��aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar�r�)��bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr�r�)�2long1long1long1long1long1long1long1long1long1long1�longrrBr,rrr=)rr:Frw)rr,r-rFr�r
rGrHr7r	rCrI)r5r
rKr�s    r$�test_convert_strl_name_swapz%TestStata.test_convert_strl_name_swap�s����
'�)D�E�-�
��&�����
�
'�
'�(9�
:�	P����"�
P�d��!�!�$�f�a�[�#�!�N����t�,���)�)�'�2��!)�!1�!1����%�%�f�h��O�
P�	P�	P�
P�
P��	P�	P�s%�C�A"C�7C�C	�
C�Cc��tjddddddd�tjddddddd�tjdd	d
d	d
d	d�g}tgd�gd
�|d��}tj�5}d}tjt|��5|j|ddi��ddd�ddd�y#1swY�xYw#1swYyxYw)Nr�r�r�r�r�rmr�r�r�rr�r�r�r�z0convert_dates key must be a column or an integerrr�
wrong_namerr*)	r�rrrFrGrtrurvrH)r5r�r
rKrys     r$�test_invalid_date_conversionz&TestStata.test_invalid_date_conversion�s���
�K�K��b�"�b�"�b�%�8��K�K��b�"�b�"�b�%�8��K�K��a��A�q�!�T�2�
��
�'�5��
�
���_�_�
�	L�$�D�C����z��5�
L��!�!�$�|�T�6J�!�K�
L�	L�	L�
L�
L��	L�	L�s$�8C	�B=�,C	�=C	�C	�	Cc���tj�}tdtjd�jd�zt
jtd�t��t
jtd�D�cgc]}d|����	c}t����}d	|j_tj�5}|j||�
�|j!d�t#|d�5}|j%|j'��ddd�t)|d	�
�}ddd�tj*|�ycc}w#1swY�:xYw#1swY�1xYw)Nrr?r�r�rOr�r�r�r,r�r�wbr�)r'�BytesIOrr[r�r�r{r�r!rryr,r-rFrGrH�seek�open�writersrrI)r5r:�bior�r}rK�dtar�s        r$�test_nonfile_writingzTestStata.test_nonfile_writing�s���j�j�l��
��"�)�)�C�.�(�(��1�1��H�H�T�&�\��8��(�(�e�B�i�8��b���H�8��G�
��
 ����
�
�_�_�
�	9�$��K�K��W�K�-��H�H�Q�K��d�D�!�
&�S��	�	�#�(�(�*�%�
&����8�F�	9�	���b�&�)��9�
&�
&��	9�	9�s*�?E�1E�3 E�E�E	�E�E!c��tdtjd�jd�zt	j
t
d�t��t	j
td�D�cgc]}d|����	c}t����}d	|j_
tj�5}tj|d
�5}|j|d��ddd�tj|d
�5}t!|d	��}ddd�ddd�tj"|�ycc}w#1swY�YxYw#1swY�9xYw#1swY�=xYw)Nrr?r�r�rOr�r�r�r,rr<r��rbr�)rr[r�r�r{r�r!rryr,r-rFrG�gzip�GzipFilerHrrI)r5r�r}rK�gzr�s      r$�test_gzip_writingzTestStata.test_gzip_writing�s��
��"�)�)�C�.�(�(��1�1��H�H�T�&�\��8��(�(�e�B�i�8��b���H�8��G�
��
 ����
�
�_�_�
�	;�$����t�T�*�
-�b����B���,�
-����t�T�*�
;�b�#�B�'�:��
;�	;�
	���b�&�)��9�
-�
-��
;�
;��	;�	;�sB�+D,�.E	�D1�E	�7D=�E	�1D:	�6E	�=E	�E	�	Ec��|j|dddd��}gd�}gd�gd�gd�gd	�gd
�gd�gd�g}t||�
�}tj||�y)Nr'r(r)zstata16_118.dta)�utf8�latin1�ascii�	utf8_strl�
ascii_strl)�ραηδαςuPÄNDÄS�pr+r,)�ƤĀńĐąŜ�Örr-r)�ᴘᴀᴎᴅᴀS�Ü�nr/r1)�      r2r;r2r;)� r�rr3r)r�r�r�r�r�)r�r�r3r�r3rB)r7rrFrI)r5r.�
unicode_dfrCrBrls      r$�test_unicode_dta_118zTestStata.test_unicode_dta_118�s[���]�]�8�D�&�'�CT�#U�V�
�H��B�<�D�4�$�"�"�
���V�W�5��
���j�(�3r#c���ddd�ddd�g}t|�}|jjd�|_tj�5}|j|dd��t
|�}|jd	�}tj||�d|d
<|j|dd
gd��t
|�}|jd	�}tj||�ddd�y#1swYyxYw)N��stringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringr)�mixed�numberrr_Fr=rDr�r8)rErr:)	rr9rhrFrGrHr�fillnarI)r5�outputrKr�rls     r$�test_mixed_string_strlz TestStata.test_mixed_string_strl�s���*�a�8�D�TU�:V�W���6�"���
�
�,�,�W�5��
�
�_�_�
�
	4�$��O�O�D�e�S�O�A���%�F��}�}�R�(�H��!�!�&�(�3�#�F�7�O��O�O��%�w�i��
�
� ��%�F��}�}�R�(�H��!�!�&�(�3�
	4�
	4�
	4�s
�
BC'�'C0c��ddd�ddd�g}t|�}d|d<tj�5}tjt
d��5|j
||��ddd�ddd�y#1swY�xYw#1swYyxYw)N�noner)r>r9rz Column `none` cannot be exportedrrr�)rrFrGrtrurvrH)r5r:r;rKs    r$�test_all_none_exceptionz!TestStata.test_all_none_exception�s���!�Q�/�$�!�1L�M���6�"����v��
�_�_�
�	7�$����z�1S�T�
7�����g��6�
7�	7�	7�
7�
7��	7�	7�s#�A<�A0�A<�0A9	�5A<�<Bc��d}t|gdg��}tj�5}d}d}tjt
|�d|����5|j
|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nu9Here is one __�__ Another one __·__ Another one __½__�invalidrBz\'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\)�|rr)rrFrGrtru�UnicodeEncodeErrorrH)r5r:�contentr}rK�msg1�msg2s       r$�test_invalid_file_not_writtenz'TestStata.test_invalid_file_not_writtens���M��
��y�9�+�
6��
�_�_�
�
	"�$�?�
�
/�
����1�D�6��4�&�9I�J�
"����D�!�
"�
	"�
	"�
"�
"��
	"�
	"�s#�%A:�A.�A:�.A7	�3A:�:Bc�J�tdgdzdgdzgddg��}tj�5}|j|ddg��t	|d	�5}|j�}d}|j
d
�|vsJ�|j
d�|vsJ�|jd�d
d
d}|jd�d
dD]@}|jd�d}||jd�d
z}	t|�|	d
z
k(r�@J�	ddd�ddd�y#1swY�xYw#1swYyxYw)N�pandasruþâÑÐŧ�var_str�var_strlrBr=)r:rr zlatin-1zutf-8sstrlsrr�sGSO���)
rrFrGrHrrs�encode�split�findr�)
r5r;rKr�rDrl�gsos�gsor��sizes
          r$�test_strl_latin1zTestStata.test_strl_latin1s>����Z�!�^�n�-��1�2�Y�
�<S�
���_�_�
�	0�$��O�O�D�#�Z�L�O�I��d�D�!�	
0�V� �+�+�-��)�����y�1�W�<�<�<����w�/�7�:�:�:��}�}�X�.�q�1�!�B�7���:�:�f�-�a�b�1�0�C��)�)�G�,�R�0�C��s�x�x��0�1�4�5�D��s�8�t�a�x�/�/�/�0�
	
0�	0�	0�	
0�	
0��	0�	0�s*�"D�B'D
�8D
�<D�
D	�D�D"c�J�d}|dddd�}tjtd��5}t|�}t	|�dk(sJ�|d	j
jd	|k(sJ�	ddd�td
ggdzdg�
�}tj|�y#1swY�3xYw)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)zstata1_encoding_118.dta�once)�filter_levelrruDüsseldorf�r*rB)	rFr��UnicodeWarningrr��messagercrrI)r5r.ryrKr�r-rls       r$�test_encoding_latin1_118z"TestStata.test_encoding_latin1_118+s���+����f�g�/H�I��
�
'�
'��V�
L�	/�PQ� ��&�G��q�6�Q�;��;��Q�4�<�<�$�$�Q�'�3�.�.�.�		/��}�o�.��4�{�m�L��
���g�x�0�	/�	/�s�=B�B"c���tj|dddd�d�5}t|�5}|j�|jdk(sJ�	ddd�ddd�y#1swY�xYw#1swYyxYw)Nr'r(r)zstata1_119.dta.gzr i�)r!rr
r��_nvar)r5r.r#ros    r$�test_stata_119zTestStata.test_stata_119?sz��
�Y�Y��T�6�7�,?�@�$�
�	-�
��R��
-�F��#�#�%��|�|�u�,�,�,�
-�	-�	-�
-�
-��	-�	-�s"�A,�"A �A,� A)	�%A,�,A5)r>r?Nc�b�tjgd�d��}tgd�gd�gd�ggd���}||d	<d
ddd
dd�}d}ddddd�i}|djtj
�|d<t
j�5}t|||dg|d||��}|j�t|�}	|djd�|d<|dj|d�jd�jj�|d<t
j||	�t!|�5}
|
j"|k(sJ�|
j%�|k(sJ�	ddd�|j'||d��t|�}t
j||�ddd�y#1swY�GxYw#1swYyxYw)N)r�β�ĉTr�)rruᴬuᴀ relatively long ŝtring)r�ruᴮr�)rruᴰN)�År`ra�strlsrB�	ᴐᴬᵀr�u	ᵈᵉᵊuᴎტჄႲႳႴႶႺzLong Stringsr�)rbr`rarcrduᴅaᵀa-labelr`�labeluæøåuŋot valid latin-1�rrrrcF)rrrrEr:r�r�)r:rE)r{rOrrhr[r_rFrGr�
write_filerr:�replacer�r7rIr
rrrH)r5r:r�r(rrr�rK�writerr/ro�reread_to_statas            r$�test_utf8_writerzTestStata.test_utf8_writerKs����n�n�.��=���>�#�%�
�
0�

�� ��[����,�#��
��&�
��'�h�;O�P�Q���$�Z�&�&�r�x�x�0��T�
�
�_�_�
�	9�$�$���%�%�Y� /�!��)�	�F�
����'��-�N� ��M�0�0��4�D��M��T�
�"�"�<��#5�6�=�=�j�I�M�M�X�X�Z�
��J�
�!�!�$��7��T�"�
C�f��(�(�J�6�6�6��-�-�/�?�B�B�B�
C�
�M�M�$��U�M�C�(��.�O��!�!�$��8�5	9�	9�(
C�
C��)	9�	9�s%�B)F%�+'F�=F%�F"	�F%�%F.c��ttjdtj���}t	j
�5}t
jtd��5t||d��ddd�ddd�t	j
�5}t
jtd��5t||d��ddd�ddd�y#1swY�axYw#1swY�exYw#1swY�*xYw#1swYyxYw)	N)ri�rOz"version must be either 118 or 119.rrr=r�zYou must use version 119r>)
rr[�zerosr]rFrGrtrurvr)r5r}rKs   r$�test_writer_118_exceptionsz$TestStata.test_writer_118_exceptions}s���
�r�x�x�
�"�'�'�:�
;��
�_�_�
�	7�$����z�1U�V�
7���b�#�6�
7�	7��_�_�
�	7�$����z�1K�L�
7���b�#�6�
7�	7�	7�
7�
7��	7�	7��
7�
7��	7�	7�sH�C�C�.C�C2�.C&�=C2�C	�C�C#�&C/	�+C2�2C;�
dtype_backend�numpy_nullable�pyarrow)�marksc��tgd�gd�gd�gd�tjddd��d	�tjgd
�d���
�}|j	|��}|jdd��t
j�5}|j|�|j|�}ddd�tddtjggd�ddtjggd�tjddd��d	�tjgd
�dtj���
�}t
jjd�|�y#1swY��xYw)N)rrNr)TFN)g�?g@g@z
2020-12-31r�D)r��freqrH�rrrr,rb�r,)roztest_stata.dtar>r�rrrr)r-rP)rr{r�r��convert_dtypesrHrFrGr7r[r�r_rIr	)r5ror}rKrrls      r$�test_read_write_ea_dtypesz#TestStata.test_read_write_ea_dtypes�s��
�!�$�(�$��]�]�<���E�
��(�(�9�7�3�	
���
�
�]�
�
;��
���$�c��2�
�_�_�
�	9�$��K�K���%)�]�]�4�%8�"�	9����B�F�F�^�$��1�b�f�f�%�$��]�]�<���E�
��(�(�9�7�"�(�(�C�	
��	���4�>�>�w�G��R�	9�	9�s�#E�EN)e�__name__�
__module__�__qualname__r7rrt�mark�parametrizerMrnrr�r�r�r�r�rrrrr"r(r0r:rHrMrUrfrprzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r%r+r0�filterwarningsr9r=rDrWrdrhr}�staticmethodrrvr�r�r�r�r�r�r�r�r�r�r�r�r�r�r[�infr�r�r�r�r�rrrrrr$r5r<r?rGrTr[�slowr^rkrn�paramrT�
skip_if_noryr"r#r$r2r29s!��4�0��[�[���Y�(B�C�7�D�7��[�[���Y�(B�C� I�D� I�D�[�[���Y�(B�C�
H�D�
H��[�[���V�l�L�%A�B�0�C�0�"<T�|�[�[����H��
0��
0��[�[����H��)0��)0�XG�&F�P
S�� �[�[���Y�(B�C��D��(�
+��[�[���Y�(B�C�
;�D�
;�S�6�[�[���Y�(B�C�#S�D�#S�JS�$�[�[���Y�(B�C��[�[����H��
S��D�
S��[�[����H��0��0� �[�[���Y�(B�C�7�D�7��[�[���Y�(B�C�,�D�,�@�&�[�[���Y�(B�C�@�D�@�"<�S�S�(S�/�/�S�8
S��[�[���Y�(B�C��[�[���[�3��*�5� @�6�D� @�D�4�"(�$"�>�[�[���V�%O�P�
0�Q�
0�9
�v4�</�b�[�[���Y�(B�C��[�[���F��2-��D�2-�h$�<�[�[���Y�(B�C�-�D�-�.�[�[���V�m�]�%C�D�!�E�!�F�[�[���V�m�]�%C�D�8�E�8� �[�[���V�m�]�%C�D�	9�E�	9��[�[��� 5�6��[�[����	
�� �[�[���[�1�a�&�1��[�[���3�e�T�]�C��[�[���_�u�d�m�<�!�=�D�2�!�7�(!�:����y����3�4�[�[��� 5�6��[�[����	
���[�[���[�1�a�&�1��[�[���3�e�T�]�C��[�[���_�u�d�m�<�!�=�D�2��7�&!�@!� �[�[���Y�(B�C�2�D�2�.�[�[���Y�(B�C��D���[�[���Y��c�
�3�
�4�
�Q�<2�:(�(�>�$,� "� C�8�[�[���X��������'8�9�	"�:�	"�	*�	*��[�[���]�T�5�M�:�
G�;�
G�*��[�[����E��(��(�"E2�N
P�L�(�[�[���Y�(B�C�*�D�*�"
*�4�"4�*�[�[���Y�(B�C�7�D�7��[�[���Y�(B�C�
"�D�
"�0�&1�(�[�[���	-��	-��[�[���Y�(8�9�/9�:�/9�b7��[�[����	�<�6�<�<�	�����y�9Q�R�S��S�	�Sr#r2r:)�i�l�o�qr<c��|ddd�}tjj|d�}tjj|d|�d��}t|�}t|�}t	j
||d��y)	Nr'r(r)�stata-compat-118.dtaz
stata-compat-r�Fr�)rwrKr�rrFrI)r:r.�	data_base�ref�oldrl�old_dtas       r$�test_backward_compatr��sf����v�w�/�I�
�'�'�,�,�y�"8�
9�C�
�'�'�,�,�y�M�'��$�"?�
@�C��#��H���o�G����'�8��?r#c��|dddd�}t|�5}|j�jrJ�t|jt
j�rJ�	ddd�t|d�5}t|�5}|j�jrJ�|j|usJ�	ddd�ddd�t|d�5}tj|j��5}t|�5}|j�jrJ�|j|usJ�	ddd�ddd�ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY�>xYw#1swY�BxYw#1swYyxYw)Nr'r(r)r�r )r
rs�emptyrz�_path_or_bufr'rr)r.�monkeypatch�	file_pathro�fprs      r$�test_direct_readr��si����v�w�0F�G�I�
�Y�	�?�6��;�;�=�&�&�&�&��f�1�1�2�:�:�>�>�>�>�?�
�i��	�-�"�
��_�	-���{�{�}�*�*�*�*��&�&�"�,�,�,�	-�-�
�i��	�2�"�
�Z�Z����	�
"�	2�c��S�!�
2�V�!�;�;�=�.�.�.�.��*�*�c�1�1�1�
2�	2�2�2�?�?��	-�	-��-�-��
2�
2��	2�	2��2�2�sl�AD<�/E�;-E�)E�$E8�)E,�5-E �#E,�+E8�<E�E	�
E�E� E)�%E,�,E5	�1E8�8Fc�0�|dddd�}tjtd��5t|�}|j	�ddd�tjt
d��5j
�ddd�y#1swY�>xYw#1swYyxYw)Nr'r(r)r�zwithout using a context managerrrzis not part of the public API)rFr��ResourceWarningr
rs�
FutureWarning�close)r.r�r�s   r$�0test_statareader_warns_when_used_without_contextr��s�����v�w�0F�G�I�	�	#�	#��/�
����
#��
���	��
�	#�	#��-�
��	���
�	��
�����s�B�&B�B	�Br;�use_dictTF�inferc���d}|r|r|}n||}|d|��z
}|}|rd}|rd|i}ttjjd�j	d�td���}d	|j_tj|�5}	|j|	||�
�|dk(rDtj|	d�5}
tj|
j��}ddd��n�|d
k(rRt!j"|	d�5}
tj|
j|
j$d��}ddd��ne|dk(rbt'j|	�5}tj|j)|j+�d�j��}ddd�n�|dk(rCt-j|	d�5}
tj|
j��}ddd�n�|dk(rTt/j0d�}
|
j|	d�5}
tj|
j��}ddd�n]|dk(rTt/j0d�}|j|	d�5}
tj|
j��}ddd�n|�|	}t3d	��}ddd�|j5�}|jj7tj8�|_tj:|�y#1swY�sxYw#1swY�xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw)Nzdta_inferred_compression.dtar�r��methodrrrrBr,)r:�compressionr!r r��rr�tar�bz2�zstd�	zstandard�xz�lzmar�)rr[rrr r!r,r-rFrGrHr!rr'rrs�zipfile�ZipFile�filelist�tarfile�extractfile�getnamesr�rt�importorskiprrgrhr_rI)r�r:r�r��compression_to_extension�	file_name�file_ext�compression_argr}rK�compr�r�r�r�r�rls                 r$�test_compressionr��s���/�I���"�H�/��<�H��q��
�^�#�	�!�O��!���#�[�1��	�
�	�	���a� �0�0��9�4��:�
�B��B�H�H�M�	����	#�3�t�
���D�'���G��&� ����4��&�
-�$��Z�Z��	�	��,��
-�
-�
�E�
!�����s�+�
=�t��Z�Z��	�	�$�-�-��*:� ;�<��
=�
=�
�E�
!����d�#�
K�s��Z�Z��������q�0A� B� G� G� I�J��
K�
K�
�E�
!����$��%�
-���Z�Z��	�	��,��
-�
-�
�F�
"��&�&�{�3�D����4��&�
-�$��Z�Z��	�	��,��
-�
-�
�D�
 ��&�&�v�.�D����4��&�
-�$��Z�Z��	�	��,��
-�
-�
�
 ��B��B�'�2��13�4�w�w�y�H��^�^�*�*�2�8�8�4�H�N����&�(�+�3
-�
-��
=�
=��
K�
K��
-�
-��
-�
-��
-�
-��)3�3�s��0M�;$L�%M�2L�6$M�AL'�$M�$L3�&5M�$L?�?5M�4$M�M�L	�M�L$	� M�'L0	�,M�3L<	�8M�?M	�M�M	�M�M r�r�r�)Nrr�c�@�d|��}d}ttjjd�j	d�td���}d|j_tj|�5}||d�}|j||�	�|d
k(s|d
k(r�tj|d�5}t|j�dk(sJ�|jd
j|k(sJ�t!j"|j%|jd
��}ddd�n|}t'd��}	ddd�|j)�}
|
jj+tj,�|
_tj.	|
�y#1swY�sxYw#1swY�jxYw)N�test.ztest.dtarrrrBr,)r��archive_name�r�r�r�rrr�)rr[rrr r!r,r-rFrGrHr�r�r�r��filenamer'rrsrrgrhr_rI)r�r�r�r�r}rKr��zpr�r�rls           r$�test_compression_dictr�s`����z�"�I��L�	�
�	�	���a� �0�0��9�4��:�
�B��B�H�H�M�	����	#�
3�t�!'��F��
���D�k��2��U�?�h�%�/�����s�+�
9�r��2�;�;�'�1�,�,�,��{�{�1�~�.�.�,�>�>�>��Z�Z�������A�� 7�8��
9�
9�
�B��B�'�2��
3��w�w�y�H��^�^�*�*�2�8�8�4�H�N����&�(�+�
9�
9��	
3�
3�s%�09F�)A*F�F�F	�
F�Fc�j�tdtgd�d��i�}d|j_|j	�}|jjtj�|_tj�5}|j||��t|dd�	�5}t|�D]\\}}|jd�}d|vsJ�tj|j|jj d|zd|d
zz��^	ddd�ddd�y#1swY�xYw#1swYyxYw)N�cats)rr rr r!r�rOr,r�rF)rlrfr)rrr,r-rgrhr[r_rFrGrHr
�	enumerater	rir�ru)r:r}rlrKror��blocks       r$�test_chunked_categoricalr�(s��	�F�F�#<�J�O�P�	Q�B��B�H�H�M��w�w�y�H��^�^�*�*�2�8�8�4�H�N�	���	��d�
���D�'��*�
���u�
E�	��%�f�-�
���5�����0�����&���&�&��J�J��
�
� 2� 2�1�q�5�1��A��;� G��
�	���	�	����s%�>"D)� A+D�D)�D&	�"D)�)D2c	�
�|dddd�}gd�}t|d��5}tjt�5t	|�D]�\}}t|j�|d|zd|dzzk(sJ�|dkrtjd	d
g�}ntjdgd�
�}tj|jjj|���	ddd�ddd�tjt�5t|d��5}|j�}ddd�ddd�t|�}tj|�y#1swY�{xYw#1swY�xYw#1swY�KxYw#1swY�OxYw)Nr'r(r)�stata-dta-partially-labeled.dta)rr rr rrr�rrr rrfrOrp)r
rFr�r	r�r!r�r{r�rTr�r��__next__rrI)	r.�dta_filerBror�r��idx�large_chunkr�s	         r$� test_chunked_categorical_partialr�;sa����f�g�/P�Q�H�
&�F�	�X��	+�F�v�
�
'�
'�(D�
E�	F�%�f�-�
F���5��E�J�J�'�6�!�a�%�!�q�1�u�+�+F�F�F�F��q�5��(�(�C��:�.�C��(�(�C�5�	�:�C��%�%�e�j�j�n�n�&?�&?��E�

F�	F�F�
�	#�	#�$@�	A�,�
��Q�
/�	,�6� �/�/�+�K�	,�,���
!�F����&�+�.�	F�	F��F�F��	,�	,��,�,�sG�E!�B#E�E!�E9�E-�#E9�E	�E!�!E*�-E6	�2E9�9Frl)r�rr�c��|dddd�}tjtd��5t||��5	ddd�ddd�y#1swY�xYw#1swYyxYw)Nr'r(r)r�zchunksize must be a positiverrr�)rtrurvr
)r.rlr�s   r$�test_iterator_errorsr�Ns^����f�g�/P�Q�H�	���z�)G�	H��
��Y�
7�	��	���	�	����s!�A�A�A�A	�
A�Ac
��ddgdgdzz}ttd�D�cic]}d|��tj|d����c}�}t	j
�5}|j
|d	�
�tjgd�d�
�}t|d��5}t|�D]x\}}td�D]9}t	j|jj|j|��;t	j||j|dz|dzdz��z	ddd�ddd�ycc}w#1swY�xYw#1swYyxYw)N�c_label�b_label�a_labelr�rr�Tr�Fr%)r�r�r�rrOr�r�r)rryr{rOrFrGrHr�rr�rTrjrur�rI)	rBr�r}rKrlrorr{r�s	         r$�test_iterator_value_labelsr�Vs:����
#�y�k�C�&7�
7�F�	�U�ST�X�V��c�!��I�r�~�~�f�d�C�C�V�	W�B�	���	�O�d�
���D�e��,��8�8�=�X�N��
���
,�	O��%�f�-�
O���5��q��U�A��)�)�%�,�,�*;�*;�A�*>�*I�*I�8�T�U��%�%�e�R�W�W�Q��W��A���}�-M�N�
O�	O�O�O��W�	O�	O��O�O�s*�"D.�:D?�BD3�D?�3D<	�8D?�?Ec	��ttd�td�D��td�td�D��ggddg��}tj�5}tj
td�	�5|j|d
��ddd�t|�}ttjtjgddg��}tj|j|�|jd
|jd
k(sJ�|jdt|jd�k(sJ�	ddd�y#1swY��xYw#1swYyxYw)Nc3�&K�|]	}d|z���y�w�rNr"��.0r�s  r$�	<genexpr>z&test_precision_loss.<locals>.<genexpr>fs����
&�q�a��d�
&����<c3�&K�|]	}d|z���y�wr�r"r�s  r$r�z&test_precision_loss.<locals>.<genexpr>fs����+D�Q�A�q�D�+D�r��4�big�littlerBz&Column converted from int64 to float64rrFr%rw)rr�)rr�)r�sumryrFrGr�rrHrrr[rfrirjr&�float)r}rKr��expected_dts    r$�test_precision_lossr�ds#��	�

�
&�E�"�I�
&�
&��+D�%��)�+D�(D�	E�F���!�
�B�
���	�	?�d�
�
'�
'�!�)Q�
�	1�
�K�K��%�K�0�	1��D�!���b�j�j�"�*�*�5�e�X�=N�O��
���v�}�}�k�:��z�z�+�&�"�&�&��*=�=�=�=��z�z�(�#�u�R�V�V�H�-=�'>�>�>�>�	?�	?�	1�	1��	?�	?�s%�E
�5D>�	B+E
�>E	�E
�
Ec��tgd�gd�gddggd���}d|j_tj�5}|j||��t
||d�	�}tj||�tj||�5}tj|j��}ddd�t
d�
�}tj||�ddd�y#1swY�5xYw#1swYyxYw)N�g��~�Ϛ�?g9DܜJ�?g>�D�)�?�g�.4�i�(@g33333�@g���̤�Ar�r���X�Y�Zr�r,r��r�r�r�)rr,r-rFrGrHrrI�decompress_filer'rrs)r�r}rKr��fh�contentss      r$�test_compression_roundtripr�us���	�	'�)G�H��C�j��
�B�
�B�H�H�M�	���	�	*�d�
���D�k��2��D�k�W�M��
���b�&�)��
�
��k�
2�	-�b��z�z�"�'�'�)�,�H�	-��H��8��
���b�&�)�	*�	*�	-�	-��
	*�	*�s$�AC0�$C$�0+C0�$C-	�)C0�0C9�to_infer�
read_inferc�H�|}||}d|��}tgd�gd�gddggd���}d|j_|rd	n|}|rd	n|}	tj|�5}
|j|
|�
�t
|
|	d��}tj||�ddd�y#1swYyxYw)Nr�r�r�r�r�r�r�r,r�r�r�)rr,r-rFrGrHrrI)�compression_onlyr�r�r�r��extr�r}�to_compression�read_compressionrKr.s            r$�test_stata_compressionr��s���
#�K�
"�;�
/�C��s�e�}�H�	�	'�)G�H��C�j��
�B�
�B�H�H�M� (�W�k�N�",�w�+��	����	"�*�d�
���D�n��5��D�.>�'�R��
���f�b�)�*�*�*�s�8B�B!c	���tgd�ddtjdtjggd�tjgd��d��}tj�5}dd	d
d�dd	d�d
�}i|�ddddd�i�}t|||��}|j�t|�5}|j�}||k(sJ�	ddd�d}tjt|��5dddd�i}t|||��ddd�d}tjt|��5dddddd�i}t|||��ddd�ddd�y#1swY��xYw#1swY�[xYw#1swY�*xYw#1swYyxYw)N)rrrrrrr�g"@)r�r�r�r�r�)rr�r�r�r)�fully_labelled�partially_labelledr�r�r�r�r�rf)rr�)r�r�r�rr�r�rv�r�zCCan't create value labels for notY, it wasn't found in the dataset.rr�notYr�r�)r�r�zUCan't create value labels for Z, value labels can only be applied to numeric columns.rr�r)rr[r�r{rOrFrGrrgr
r�rtrur�rv)r(rKr�rlriro�reader_value_labelsrys        r$�!test_non_categorical_value_labelsr��s����-�#&��R�V�V�S�"�&�&�"A�!���� 9�:�		
��D�
���	�?�d�"'�E�g�>�(-�E�":�
��C�l�B�C�S�S�S�)A�B���T�4�l�C������
��
�	3�&�"(�"5�"5�"7��&�(�2�2�2�	3�T��
�]�]�8�3�
/�	?�"��X�$>�?�L���d��>�	?�

6�	��]�]�:�S�
1�	?��S�S�S�S�!A�B�L���d��>�	?�/?�?�	3�	3��
	?�	?��	?�	?��/?�?�sU�AE'�!E�:%E'�E�5%E'�E�2E'�E	�E'�E	�E'�E$	� E'�'E0c���tgd�gd�gd�gd�gd�d��}ddd�ddd�d	d
d�dd
iddid�}ddd�ddd�d	d
d�dd
iddid�}tj�5}tjt�5|j||��ddd�t
|�5}|j�}||k(sJ�	ddd�ddd�y#1swY�>xYw#1swY�xYw#1swYyxYw)N)rrrrrpr�)r�r�r�r�r�r�)rrprpr�r�r�r<)z	invalid~!�	6_invalid�&invalid_name_longer_than_32_characters�	aggregate�rrr�r�r�r�r�)r�r�rpr�rr�)�	invalid__�
_6_invalid� invalid_name_longer_than_32_char�
_aggregate�_1__2_r�)rrFrGr�r
rHr
r�)r(r�rlrKror�s      r$�0test_non_categorical_value_label_name_conversionr�s���+�+�6H�+�&�	
��D�"�h�/�!�h�/�6=�&�2I���[��G���L�"�h�/�"�x�0�07�F�,C��&�k��g�,��H�
���	�3�d�
�
'�
'�(9�
:�	;��M�M�$�\�M�:�	;���
�	3�&�"(�"5�"5�"7��&�(�2�2�2�	3�	3�3�	;�	;��	3�	3��	3�3�s<�C�4C�C�C�4C�C	�
C�C	�C�C&c���ddddd�i}tdgd�i�}tj�5}|j||��t	|d��5}|j�}ddd�|k(sJ�d}d	d
j
dg�z}d|�d|�d
�}tjt|�
�5t|d��ddd�ddd�y#1swY�jxYw#1swY�xYw#1swYyxYw)N�repeated_labels�Tenz
More than ten)r�r��()r�r�r�r�rrr�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:
rrT)rrFrGrHr
r�r�rtrurvr)r�r(rKror�r��repeatsrys        r$�;test_non_categorical_value_label_convert_categoricals_errorr�s��	��?��P��L���7�	
��D�
���	�8�d��
�
�d��
�6�
��E�
:�	8�f�"(�"5�"5�"7��	8�"�l�2�2�2���!�D�I�I��.?�$@�@������	�	�
�
���]�]�:�S�
1�	8��t�$�7�	8�+8�8�	8�	8��$	8�	8��+8�8�s<�!C�
C�A
C�(C�6C�C	�C�C	�C�C(rPc�8�ttgd��tdtjtjg|j��tgd��d��}|j
jjj}|jdd�}|dk(rd	}n|d
k(rd}tj|}t|�}td||gtd�
�}tgd�d��}tj�5}|j|d|��t|d��}	tj |j"|	j"�tj |	j
|�tj |	j$|�ddd�y#1swYyxYw)Nr�rrO)rr Nr�ur�r`r_�boolr]r r�)rr r�r!rbFrDTr)rrr{�NAr-r rP�numpy_dtyperhr�BASE_MISSING_VALUESrrFrGrHrrirr!)
rPr:r}�
dtype_name�valuer�
expected_b�
expected_crKr�s
          r$�test_nullable_supportr	sA�� 
���(���B�E�E�2�5�5�)����<��(�)�	
�
�B������'�'�,�,�J��#�#�C��,�J��W���
�	�v�	��
��1�1�*�=�E�
�E�
"�C���C��
�V�#�>�J���S�1�J�	���	�5�d�
���D�e�W��=��D�$�7��
���r�t�t�V�X�X�.�
���v�x�x��4�
���v�x�x��4�5�5�5�s
�;BF�Fc��ttd�gd�d���jd�}tj�5}|j|dd��t
|�}d	|vsJ�ttjd
�tjd�d��}tj|j|�t
|dg�
�}d	|vsJ�tj|j|jdg�ddd�y#1swYyxYw)Nrr�rvr�rFr=rDr r_rfrrB)
rryr�rFrGrHrrr[rPrirjr&)r}rK�df2rj�df3s     r$�test_empty_framer>	s���
�e�A�h�_�=�	>�	C�	C�A�	F�B�	���	�>�d�
���D�e�S��9������c�z��z��b�h�h�w�/�b�h�h�y�6I�J�K��
���s�z�z�6�2����u�-���#�~��~�
���s�z�z�6�:�:�s�e�+<�=�>�>�>�s�B<D�D)Er�rr�r!r'rwr�r�r��numpyr[rt�pandas.util._test_decorators�util�_test_decoratorsrTrIr{r�pandas._testing�_testingrF�pandas.core.framerr�pandas.io.parsersr�pandas.io.statar	r
rrr
rrrr�fixturer%r0r2r}r~r�r�r�r�r�r�r�r�r�r�r�r�r�rr�BooleanDtype�	Int8Dtype�
Int16Dtype�
Int32Dtype�
Int64Dtype�
UInt8Dtype�UInt16Dtype�UInt32Dtype�UInt64Dtyperrr"r#r$�<module>r.s���
����	�	�
����
�)�)��#���
'�
�
�
�������������nS�nS�b;������$=�>�@�?�@�2�.�������$>�?�������d�E�]�3�������4��-�0�.,�1�4�@�.,�b������E�7�#3�4�������%9�:�,�;�5�,�0������$>�?��@��$/�&������&6�7��8��O�?�"*�(������d�E�]�3��������e�}�5�*�6�4�*�0#?�L"3�J#8�L������$>�?�������
���
���
�
�
�
�
�
�
�
�
�
�
�
�
���
���
���
�
�5�
�@�5�6>r#

Youez - 2016 - github.com/yon3zu
LinuXploit