§
    á! h‹  ã            	      óT  — d dl mZ d dlmZmZ d dlZd dlZd dlZd dl	m
c mZ d dlmZmZmZ d dlmZ d dlmZ d dlmZ ej        d„ ¦   «         Zej        d„ ¦   «         Zej        d	„ ¦   «         Zd
„ Z ej        ddg¬¦  «        d„ ¦   «         Z ej         ej        d ej        d¦  «        ¬¦  «        dg¬¦  «        d„ ¦   «         Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&ej'         (                    d e) e*dd¦  «        ¦  «        d„  e*dd¦  «        D ¦   «         g¦  «        d„ ¦   «         Z+dZ,d„ Z-d „ Z.d!„ Z/d"„ Z0d#„ Z1d$„ Z2d%„ Z3d&„ Z4d'„ Z5d(„ Z6d)„ Z7d*„ Z8d+„ Z9d,„ Z:d-„ Z;d.„ Z<d/„ Z=d0„ Z>d1„ Z?d2„ Z@d3ZAd4„ ZBd5„ ZCej'         (                    d6g d7¢¦  «        d8„ ¦   «         ZDd9„ ZEd:„ ZFd;„ ZGd<„ ZH ejI        d¦  «        d=„ ¦   «         ZJd>„ ZKd?ZLd@„ ZMdA„ ZNdB„ ZOdC„ ZPej'         (                    dDdEdFg¦  «        dG„ ¦   «         ZQdH„ ZRdI„ ZSdJ„ ZTdK„ ZUdL„ ZVdM„ ZWdN„ ZXdZYdO„ ZZdP„ Z[dQ„ Z\dR„ Z]ej'        j^        dS„ ¦   «         Z_dS )Té    )Úannotations)ÚBytesIOÚStringION)ÚNAÚ	DataFrameÚIndex)Ú
get_handle)Úread_xmlc                 óJ   — t          g d¢g d¢dt          j        dgdœ¦  «        S )N)ÚsquareÚcircleÚtriangle)éh  r   é´   é   é   ©ÚshapeÚdegreesÚsides)r   ÚnpÚnan© ó    úYc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pandas/tests/io/xml/test_to_xml.pyÚgeom_dfr   ;   s9   € åà5Ð5Ð5Ø&��Ø�œ �^ð	
ð 	
ñô ð r   c                 ó:   — t          g d¢g d¢g d¢g d¢dœ¦  «        S )N)ÚMercuryÚVenusÚEarthÚMarsÚJupiterÚSaturnÚUranusÚNeptune)Úterrestrialr&   r&   r&   ú	gas giantr'   ú	ice giantr(   )Úinnerr)   r)   r)   Úouterr*   r*   r*   )g`é|x– Õ?gcAJx@g2rö´ã@g�l®šçˆä?gh‘í|¿¨�@gÞ	ŠÂ�@gd]ÜF´U@g•Ô	hšY@)ÚplanetÚtypeÚlocationÚmass)r   r   r   r   Ú	planet_dfr/   F   sZ   € åð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð?)	
ð )	
ñ+ô +ð +r   c                 ó   — dS )Nac  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <category>cooking</category>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.0</price>
  </row>
  <row>
    <index>1</index>
    <category>children</category>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </row>
  <row>
    <index>2</index>
    <category>web</category>
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </row>
</data>r   r   r   r   Úfrom_file_expectedr1   v   s   € ðð r   c                ó6   — | �|                       dd¦  «        } | S )Nz%<?xml version="1.0" encoding="utf-8"?z%<?xml version='1.0' encoding='utf-8'?)Úreplace)Údocs    r   Úequalize_declr5   –   s'   € à
€Ø�kŠkØ3Ø3ñ
ô 
ˆð €Jr   ÚrbÚr)Úparamsc                ó   — | j         S ©N©Úparam©Úrequests    r   Úmoder?       ó
   € àŒ=Ðr   Úlxml)ÚmarksÚetreec                ó   — | j         S r:   r;   r=   s    r   ÚparserrE   ¥   r@   r   c                ó¢  — t          | |¬¦  «        }t          j        d¦  «        5 }|                     ||¬¦  «         t	          |d¦  «        5 }|                     ¦   «                              d¦  «                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }||k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S ©N©rE   útest.xmlr6   úutf-8©	r
   ÚtmÚensure_cleanÚto_xmlÚopenÚreadÚdecodeÚstripr5   ©Ú	xml_booksrE   r1   Údf_fileÚpathÚfÚoutputs          r   Útest_file_output_str_readrY   ­   óF  € Ý�y¨Ð0Ñ0Ô0€Gå	Œ˜Ñ	$Ô	$ð ,¨Ø�Š�t FˆÑ+Ô+Ð+Ý�$˜ÑÔð 	6 Ø—V’V‘X”X—_’_ WÑ-Ô-×3Ò3Ñ5Ô5ˆFð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ ˜vÑ&Ô&ˆàÐ+Ò+Ð+Ð+Ð+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,ó5   ¦(CÁ:BÂCÂB	ÂCÂB	ÂCÃCÃCc                ó¢  — t          | |¬¦  «        }t          j        d¦  «        5 }|                     ||¬¦  «         t	          |d¦  «        5 }|                     ¦   «                              d¦  «                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }||k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S rG   rK   rS   s          r   Útest_file_output_bytes_readr]   º   rZ   r[   c                ó‚   — t          | |¬¦  «        }|                     |¬¦  «        }t          |¦  «        }||k    sJ ‚d S ©NrH   )r
   rN   r5   )rT   rE   r1   rU   rX   s        r   Útest_str_outputr`   Ç   sL   € Ý�y¨Ð0Ñ0Ô0€Gà�^Š^ 6ˆ^Ñ*Ô*€FÝ˜6Ñ"Ô"€FàÐ'Ò'Ð'Ð'Ð'Ð'Ð'r   c                ó    — d}t          j        t          d¬¦  «        5  |                     || ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz/my/fake/path/output.xmlz6Cannot save file into a non-existent directory: .*path©ÚmatchrH   )ÚpytestÚraisesÚOSErrorrN   ©rE   r   rV   s      r   Útest_wrong_file_pathrh   Ð   s    € Ø%€Då	ŒÝØHð
ñ 
ô 
ð ,ð ,ð 	�Š�t FˆÑ+Ô+Ð+ð	,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,ó   žAÁAÁ
Ac                ó¨  — d}t          | |¬¦  «        }t          j        d¦  «        5 }|                     |d|¬¦  «         t	          |d¦  «        5 }|                     ¦   «                              d¦  «                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }||k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Na$  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <category>cooking</category>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.0</price>
  </row>
  <row>
    <category>children</category>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </row>
  <row>
    <category>web</category>
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </row>
</data>rH   rI   F©ÚindexrE   r6   rJ   rK   ©rT   rE   ÚexpectedrU   rV   rW   rX   s          r   Útest_index_falsero   Ý   sP  € ð€Hõ4 �y¨Ð0Ñ0Ô0€Gå	Œ˜Ñ	$Ô	$ð "¨Ø�Š�t 5°ˆÑ8Ô8Ð8Ý�$˜ÑÔð 	6 Ø—V’V‘X”X—_’_ WÑ-Ô-×3Ò3Ñ5Ô5ˆFð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ ˜vÑ&Ô&ˆà˜Ò!Ð!Ð!Ð!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s5   ¨)CÁ:BÂCÂB	ÂCÂB	ÂCÃCÃCc                ó¬  — d}t          | |¬¦  «        }t          j        d¦  «        5 }|                     |ddd|¬¦  «         t	          |d¦  «        5 }|                     ¦   «                              d	¦  «                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }||k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )
Na,  <?xml version='1.0' encoding='utf-8'?>
<books>
  <book>
    <category>cooking</category>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.0</price>
  </book>
  <book>
    <category>children</category>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book>
    <category>web</category>
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</books>rH   rI   FÚbooksÚbook)rl   Ú	root_nameÚrow_namerE   r6   rJ   rK   rm   s          r   Ú test_index_false_rename_row_rootru     s`  € ð€Hõ4 �y¨Ð0Ñ0Ô0€Gå	Œ˜Ñ	$Ô	$ð 	"¨Ø�ŠØ˜¨¸6È&ð 	ñ 	
ô 	
ð 	
õ �$˜ÑÔð 	6 Ø—V’V‘X”X—_’_ WÑ-Ô-×3Ò3Ñ5Ô5ˆFð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ ˜vÑ&Ô&ˆà˜Ò!Ð!Ð!Ð!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s5   ¨+C	Á:BÂC	ÂB	ÂC	Â B	Â!C	Ã	CÃCÚoffset_indexé
   é   c                ó,   — g | ]}t          |¦  «        ‘ŒS r   )Ústr)Ú.0Úis     r   ú
<listcomp>r}   .  s   € Ð*IÐ*IÐ*I°a­3¨q©6¬6Ð*IÐ*IÐ*Ir   c                ó¶   — d}|                      ¦   «         }t          |¦  «        |_        |                     d| ¬¦  «        }t	          |¦  «        }||k    sJ ‚dS )z®
    Tests that the output does not contain the `<index>` field when the index of the
    input Dataframe has an offset.

    This is a regression test for issue #42458.
    aD  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>Frk   N)Úcopyr   rl   rN   r5   )rE   rv   r   rn   Úoffset_geom_dfrX   s         r   Ú(test_index_false_with_offset_input_indexr�   -  sd   € ð€Hð( —\’\‘^”^€NÝ  Ñ.Ô.€NÔØ×"Ò"¨°vÐ"Ñ>Ô>€FÝ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   aƒ  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>c                ój   — |                      | ¬¦  «        }t          |¦  «        }|t          k    sJ ‚d S r_   ©rN   r5   Úna_expected©rE   r   rX   s      r   Útest_na_elem_outputr†   n  s9   € Ø�^Š^ 6ˆ^Ñ*Ô*€FÝ˜6Ñ"Ô"€Fà•[Ò Ð Ð Ð Ð Ð r   c                ól   — |                      d| ¬¦  «        }t          |¦  «        }|t          k    sJ ‚d S )NÚ ©Úna_reprE   rƒ   r…   s      r   Útest_na_empty_str_elem_optionr‹   u  s;   € Ø�^Š^ 2¨fˆ^Ñ5Ô5€FÝ˜6Ñ"Ô"€Fà•[Ò Ð Ð Ð Ð Ð r   c                óf   — d}|                      d| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Na�  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides>0.0</sides>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>z0.0r‰   ©rN   r5   ©rE   r   rn   rX   s       r   Útest_na_empty_elem_optionr�   |  sD   € ð€Hð. �^Š^ 5°ˆ^Ñ8Ô8€FÝ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                ój   — d}|                      g d¢| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Nzß<?xml version='1.0' encoding='utf-8'?>
<data>
  <row index="0" shape="square" degrees="360" sides="4.0"/>
  <row index="1" shape="circle" degrees="360"/>
  <row index="2" shape="triangle" degrees="180" sides="3.0"/>
</data>r   ©Ú	attr_colsrE   r�   rŽ   s       r   Útest_attrs_cols_nan_outputr“   �  sK   € ð€Hð �^Š^Ð&CÐ&CÐ&CÈFˆ^ÑSÔS€FÝ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                ór   — d}|                      g d¢ddid| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Na>  <?xml version='1.0' encoding='utf-8'?>
<doc:data xmlns:doc="http://example.xom">
  <doc:row doc:index="0" doc:shape="square" doc:degrees="360" doc:sides="4.0"/>
  <doc:row doc:index="1" doc:shape="circle" doc:degrees="360"/>
  <doc:row doc:index="2" doc:shape="triangle" doc:degrees="180" doc:sides="3.0"/>
</doc:data>)rl   r   r   r   r4   zhttp://example.xom)r’   Ú
namespacesÚprefixrE   r�   rŽ   s       r   Útest_attrs_cols_prefixr—   ¬  sa   € ð	€Hð �^Š^Ø8Ð8Ð8ØÐ/Ð0ØØð	 ñ ô €Fõ ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                ó    — t          j        t          d¬¦  «        5  |                     g d¢| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Núno valid columnrb   ©r   Údegreer   r‘   ©rd   re   ÚKeyErrorrN   ©rE   r   s     r   Útest_attrs_unknown_columnrŸ   Ã  ó­   € Ý	Œ•xÐ(9Ð	;Ñ	;Ô	;ð Nð NØ�ŠÐ!=Ð!=Ð!=ÀfˆÑMÔMÐMðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð Nð Nó   œAÁAÁ
Ac                óœ   — t          j        t          d¬¦  «        5  |                     d| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz!is not a valid type for attr_colsrb   ú"shape", "degree", "sides"r‘   ©rd   re   Ú	TypeErrorrN   rž   s     r   Útest_attrs_wrong_typer¦   È  ó§   € Ý	Œ•yÐ)LÐ	NÑ	NÔ	Nð Nð NØ�ŠÐ!=ÀfˆÑMÔMÐMðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð Nð Nó   œAÁAÁAc                ól   — d}|                      dg d¢| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )NaD  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <degrees>360</degrees>
    <sides>4.0</sides>
    <shape>square</shape>
  </row>
  <row>
    <degrees>360</degrees>
    <sides/>
    <shape>circle</shape>
  </row>
  <row>
    <degrees>180</degrees>
    <sides>3.0</sides>
    <shape>triangle</shape>
  </row>
</data>F)r   r   r   )rl   Ú	elem_colsrE   r�   ©rE   r   Úelems_cols_expectedrX   s       r   Útest_elems_cols_nan_outputr­   Ð  sY   € ðÐð( �^Š^ØÐ<Ð<Ð<ÀVð ñ ô €Fõ ˜6Ñ"Ô"€FàÐ(Ò(Ð(Ð(Ð(Ð(Ð(r   c                ó    — t          j        t          d¬¦  «        5  |                     g d¢| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr™   rb   rš   ©rª   rE   rœ   rž   s     r   Útest_elems_unknown_columnr°   í  r    r¡   c                óœ   — t          j        t          d¬¦  «        5  |                     d| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz!is not a valid type for elem_colsrb   r£   r¯   r¤   rž   s     r   Útest_elems_wrong_typer²   ò  r§   r¨   c                óp   — d}|                      dddgdg| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Na#  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row shape="square">
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row shape="circle">
    <degrees>360</degrees>
    <sides/>
  </row>
  <row shape="triangle">
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>Fr   r   r   )rl   rª   r’   rE   r�   r«   s       r   Útest_elems_and_attrs_colsr´   ÷  s^   € ðÐð" �^Š^ØØ˜gÐ&Ø�)Øð	 ñ ô €Fõ ˜6Ñ"Ô"€FàÐ(Ò(Ð(Ð(Ð(Ð(Ð(r   c                óÄ   — d}|                      ddgdg d¢d¬¦  «                             d¦  «        }|                     | ¬	¦  «        }t          |¦  «        }||k    sJ ‚d S )
NaÔ  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <location>inner</location>
    <type>terrestrial</type>
    <count_mass>4</count_mass>
    <sum_mass>11.81</sum_mass>
    <mean_mass>2.95</mean_mass>
  </row>
  <row>
    <location>outer</location>
    <type>gas giant</type>
    <count_mass>2</count_mass>
    <sum_mass>2466.5</sum_mass>
    <mean_mass>1233.25</mean_mass>
  </row>
  <row>
    <location>outer</location>
    <type>ice giant</type>
    <count_mass>2</count_mass>
    <sum_mass>189.23</sum_mass>
    <mean_mass>94.61</mean_mass>
  </row>
  <row>
    <location>All</location>
    <type/>
    <count_mass>8</count_mass>
    <sum_mass>2667.54</sum_mass>
    <mean_mass>333.44</mean_mass>
  </row>
</data>r-   r,   r.   ©ÚcountÚsumÚmeanT©rl   ÚvaluesÚaggfuncÚmarginsé   rH   )Úpivot_tableÚroundrN   r5   ©rE   r/   rn   ÚpvtrX   s        r   Útest_hierarchical_columnsrÃ     s†   € ð€HðB ×
Ò
Ø˜6Ð"ØØ(Ð(Ð(Øð	  ñ ô ÷
 ‚eˆA�h„hð ð �ZŠZ˜vˆZÑ&Ô&€FÝ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                ó  — d}|                      ddgdg d¢d¬¦  «                             d¦  «        }|                     t          |                     ¦   «         j        j        ¦  «        | ¬	¦  «        }t          |¦  «        }||k    sJ ‚d S )
Na¦  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row location="inner" type="terrestrial" count_mass="4" sum_mass="11.81" mean_mass="2.95"/>
  <row location="outer" type="gas giant" count_mass="2" sum_mass="2466.5" mean_mass="1233.25"/>
  <row location="outer" type="ice giant" count_mass="2" sum_mass="189.23" mean_mass="94.61"/>
  <row location="All" type="" count_mass="8" sum_mass="2667.54" mean_mass="333.44"/>
</data>r-   r,   r.   r¶   Trº   r¾   r‘   )r¿   rÀ   rN   ÚlistÚreset_indexÚcolumnsr»   r5   rÁ   s        r   Útest_hierarchical_attrs_columnsrÈ   F  s    € ð€Hð ×
Ò
Ø˜6Ð"ØØ(Ð(Ð(Øð	  ñ ô ÷
 ‚eˆA�h„hð ð �ZŠZ¥$ s§¢Ñ'8Ô'8Ô'@Ô'GÑ"HÔ"HÐQWˆZÑXÔX€FÝ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                óî   — d}|                      ddg¦  «        d                              g d¢¦  «                             d¦  «        }|                     | ¬¦  «        }t	          |¦  «        }||k    sJ ‚d S )NaÞ  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <location>inner</location>
    <type>terrestrial</type>
    <count>4</count>
    <sum>11.81</sum>
    <mean>2.95</mean>
  </row>
  <row>
    <location>outer</location>
    <type>gas giant</type>
    <count>2</count>
    <sum>2466.5</sum>
    <mean>1233.25</mean>
  </row>
  <row>
    <location>outer</location>
    <type>ice giant</type>
    <count>2</count>
    <sum>189.23</sum>
    <mean>94.61</mean>
  </row>
</data>r-   r,   r.   r¶   r¾   rH   )ÚgroupbyÚaggrÀ   rN   r5   ©rE   r/   rn   rË   rX   s        r   Útest_multi_indexrÍ   d  sƒ   € ð€Hð6 	×Ò˜: vÐ.Ñ/Ô/°Ô7ß	ŠÐ%Ð%Ð%Ñ	&Ô	&ß	Šˆq‰Œð ð �ZŠZ˜vˆZÑ&Ô&€FÝ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                óB  — d}|                      ddg¦  «        d                              g d¢¦  «                             d¦  «        }|                     t	          |                     ¦   «         j        j        ¦  «        | ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Na$  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row location="inner" type="terrestrial" count="4" sum="11.81" mean="2.95"/>
  <row location="outer" type="gas giant" count="2" sum="2466.5" mean="1233.25"/>
  <row location="outer" type="ice giant" count="2" sum="189.23" mean="94.61"/>
</data>r-   r,   r.   r¶   r¾   r‘   )	rÊ   rË   rÀ   rN   rÅ   rÆ   rÇ   r»   r5   rÌ   s        r   Útest_multi_index_attrs_colsrÏ   ‹  sž   € ð	€Hð 	×Ò˜: vÐ.Ñ/Ô/°Ô7ß	ŠÐ%Ð%Ð%Ñ	&Ô	&ß	Šˆq‰Œð ð
 �ZŠZ¥$ s§¢Ñ'8Ô'8Ô'@Ô'GÑ"HÔ"HÐQWˆZÑXÔX€FÝ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                ój   — d}|                      ddi| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Naž  <?xml version='1.0' encoding='utf-8'?>
<data xmlns="http://example.com">
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>rˆ   úhttp://example.com©r•   rE   r�   rŽ   s       r   Útest_default_namespacerÓ   ¥  sJ   € ð€Hð. �^Š^¨Ð,@Ð'AÈ&ˆ^ÑQÔQ€FÝ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                ól   — d}|                      dddœ| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Na¾  <?xml version='1.0' encoding='utf-8'?>
<data xmlns:oth="http://other.org" xmlns:ex="http://example.com">
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>úhttp://other.orgrÑ   )ÚothÚexrÒ   r�   rŽ   s       r   Útest_unused_namespacesrØ   Ã  sX   € ð€Hð. �^Š^Ø-Ð5IÐJÐJØð ñ ô €Fõ ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                ól   — d}|                      ddid| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Na  <?xml version='1.0' encoding='utf-8'?>
<doc:data xmlns:doc="http://example.com">
  <doc:row>
    <doc:index>0</doc:index>
    <doc:shape>square</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides>4.0</doc:sides>
  </doc:row>
  <doc:row>
    <doc:index>1</doc:index>
    <doc:shape>circle</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides/>
  </doc:row>
  <doc:row>
    <doc:index>2</doc:index>
    <doc:shape>triangle</doc:shape>
    <doc:degrees>180</doc:degrees>
    <doc:sides>3.0</doc:sides>
  </doc:row>
</doc:data>r4   rÑ   ©r•   r–   rE   r�   rŽ   s       r   Útest_namespace_prefixrÛ   ç  sV   € ð€Hð. �^Š^ØÐ/Ð0¸Àvð ñ ô €Fõ ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   c                ó¢   — t          j        t          d¬¦  «        5  |                     ddid| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz!doc is not included in namespacesrb   rˆ   rÑ   r4   rÚ   rœ   rž   s     r   Útest_missing_prefix_in_nmsprÝ     s¤   € Ý	Œ•xÐ(KÐ	MÑ	MÔ	Mð 
ð 
Ø�ŠØÐ0Ð1¸%Èð 	ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   œAÁAÁAc                ón   — d}|                      dddœd| ¬¦  «        }t          |¦  «        }||k    sJ ‚d S )Na7  <?xml version='1.0' encoding='utf-8'?>
<doc:data xmlns:doc="http://other.org" xmlns="http://example.com">
  <doc:row>
    <doc:index>0</doc:index>
    <doc:shape>square</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides>4.0</doc:sides>
  </doc:row>
  <doc:row>
    <doc:index>1</doc:index>
    <doc:shape>circle</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides/>
  </doc:row>
  <doc:row>
    <doc:index>2</doc:index>
    <doc:shape>triangle</doc:shape>
    <doc:degrees>180</doc:degrees>
    <doc:sides>3.0</doc:sides>
  </doc:row>
</doc:data>rÑ   rÕ   )rˆ   r4   r4   rÚ   r�   rŽ   s       r   Ú!test_namespace_prefix_and_defaultrß     s[   € ð€Hð. �^Š^Ø,Ð5GÐHÐHØØð ñ ô €Fõ
 ˜6Ñ"Ô"€Fà�XÒÐÐÐÐÐr   u«  <?xml version='1.0' encoding='ISO-8859-1'?>
<data>
  <row>
    <index>0</index>
    <rank>1</rank>
    <malename>JosÃ©</malename>
    <femalename>SofÃ­a</femalename>
  </row>
  <row>
    <index>1</index>
    <rank>2</rank>
    <malename>Luis</malename>
    <femalename>Valentina</femalename>
  </row>
  <row>
    <index>2</index>
    <rank>3</rank>
    <malename>Carlos</malename>
    <femalename>Isabella</femalename>
  </row>
  <row>
    <index>3</index>
    <rank>4</rank>
    <malename>Juan</malename>
    <femalename>Camila</femalename>
  </row>
  <row>
    <index>4</index>
    <rank>5</rank>
    <malename>Jorge</malename>
    <femalename>Valeria</femalename>
  </row>
</data>c                óÈ   — t          | |d¬¦  «                             d¦  «        }|                     d|¬¦  «        }|�|                     dd¦  «        }|t          k    sJ ‚d S )Nú
ISO-8859-1)rE   Úencodingé   ©râ   rE   z*<?xml version="1.0" encoding="ISO-8859-1"?z*<?xml version='1.0' encoding='ISO-8859-1'?)r
   ÚheadrN   r3   Úencoding_expected)Úxml_baby_namesrE   rU   rX   s       r   Útest_encoding_option_strrè   V  ss   € Ý�~¨f¸|ÐLÑLÔL×QÒQÐRSÑTÔT€Gà�^Š^ \¸&ˆ^ÑAÔA€FàÐà—’Ø8Ø8ñ
ô 
ˆð
 Õ&Ò&Ð&Ð&Ð&Ð&Ð&r   c                óÞ   — t          j        d¦  «         t          | dd¬¦  «        }t          j        d¦  «        5 }|                     |ddd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©NrA   rá   rä   rI   F)rl   râ   rE   ©rd   Úimportorskipr
   rL   rM   rN   )rç   rU   rV   s      r   Útest_correct_encoding_filerí   e  sÅ   € Ý
Ô˜ÑÔÐÝ�~°ÀVÐLÑLÔL€Gå	Œ˜Ñ	$Ô	$ð P¨Ø�Š�t 5°<ÈˆÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð Pð Pó   »A"Á"A&Á)A&râ   )zUTF-8zUTF-16rá   c                óÞ   — t          j        d¦  «         t          | dd¬¦  «        }t          j        d¦  «        5 }|                     |d||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rê   rë   )rç   rE   râ   rU   rV   s        r   Útest_wrong_encoding_option_lxmlrð   m  sÅ   € å
Ô˜ÑÔÐÝ�~°ÀVÐLÑLÔL€Gå	Œ˜Ñ	$Ô	$ð L¨Ø�Š�t 5°8ÀFˆÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Lrî   c                óœ   — t          j        t          d¬¦  «        5  |                     d| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzunknown encodingrb   zuft-8rä   )rd   re   ÚLookupErrorrN   rž   s     r   Útest_misspelled_encodingró   v  s’   € Ý	Œ•{Ð+=Ð	?Ñ	?Ô	?ð 8ð 8Ø�Š °ˆÑ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8r¨   c                ón   — t          j        d¦  «         d}|                      d¬¦  «        }||k    sJ ‚d S )NrA   a\  <data>
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>F)Úxml_declaration)rd   rì   rN   )r   rn   rX   s      r   Ú!test_xml_declaration_pretty_printrö   ~  sF   € Ý
Ô˜ÑÔÐð€Hð, �^Š^¨Eˆ^Ñ2Ô2€Fà�XÒÐÐÐÐÐr   c                ó–   — d}|                      d| ¬¦  «        }t          |¦  «        }|�|                     dd¦  «        }||k    sJ ‚d S )Na4  <?xml version='1.0' encoding='utf-8'?>
<data><row><index>0</index><shape>square</shape><degrees>360</degrees><sides>4.0</sides></row><row><index>1</index><shape>circle</shape><degrees>360</degrees><sides/></row><row><index>2</index><shape>triangle</shape><degrees>180</degrees><sides>3.0</sides></row></data>F)Úpretty_printrE   ú />ú/>)rN   r5   r3   rŽ   s       r   Útest_no_pretty_print_with_declrû   ›  sb   € ð	ð ð �^Š^¨°vˆ^Ñ>Ô>€FÝ˜6Ñ"Ô"€Fð ÐØ—’  tÑ,Ô,ˆà�XÒÐÐÐÐÐr   c                óz   — d}|                      dd| ¬¦  «        }|�|                     dd¦  «        }||k    sJ ‚d S )Na  <data><row><index>0</index><shape>square</shape><degrees>360</degrees><sides>4.0</sides></row><row><index>1</index><shape>circle</shape><degrees>360</degrees><sides/></row><row><index>2</index><shape>triangle</shape><degrees>180</degrees><sides>3.0</sides></row></data>F)rõ   rø   rE   rù   rú   )rN   r3   rŽ   s       r   Útest_no_pretty_print_no_declrý   °  sW   € ð	ð ð �^Š^¨EÀÈfˆ^ÑUÔU€Fð ÐØ—’  tÑ,Ô,ˆà�XÒÐÐÐÐÐr   c                ó–   — t          j        t          d¬¦  «        5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nz7lxml not found, please install or use the etree parser.rb   )rd   re   ÚImportErrorrN   ©r   s    r   Útest_default_parser_no_lxmlr  Æ  s•   € å	ŒÝÐUð
ñ 
ô 
ð ð ð 	�ŠÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   œ>¾AÁAc                óš   — t          j        t          d¬¦  «        5  |                      d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz,Values for parser can only be lxml or etree.rb   Úbs4rH   ©rd   re   Ú
ValueErrorrN   r   s    r   Útest_unknown_parserr  Î  s™   € Ý	ŒÝÐIð
ñ 
ô 
ð %ð %ð 	�Š˜eˆÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s   œA Á AÁAa%  <?xml version="1.0" encoding="utf-8"?>
<data>
  <row>
    <field field="index">0</field>
    <field field="shape">square</field>
    <field field="degrees">360</field>
    <field field="sides">4.0</field>
  </row>
  <row>
    <field field="index">1</field>
    <field field="shape">circle</field>
    <field field="degrees">360</field>
    <field field="sides"/>
  </row>
  <row>
    <field field="index">2</field>
    <field field="shape">triangle</field>
    <field field="degrees">180</field>
    <field field="sides">3.0</field>
  </row>
</data>c                óØ   — t          j        d¦  «         t          | ||dk    rdnd ¬¦  «        5 }|                     |¬¦  «        t          k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S ©NrA   r7   rJ   ©râ   ©Ú
stylesheet)rd   rì   rO   rN   Úxsl_expected)Úxsl_row_field_outputr?   r   rW   s       r   Útest_stylesheet_file_liker  ï  s¿   € Ý
Ô˜ÑÔÐÝ	Ø˜d¸Àº¸¨W¨WÈð
ñ 
ô 
ð <à	
Ø�~Š~¨ˆ~Ñ+Ô+­|Ò;Ð;Ð;Ð;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <ð <s   ¯"AÁA#Á&A#c                ój  — t          j        d¦  «         t          | ||dk    rdnd ¬¦  «        5 }|dk    r"t          |                     ¦   «         ¦  «        }n!t          |                     ¦   «         ¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     |¬¦  «        }|t          k    sJ ‚d S )NrA   r7   rJ   r	  r6   r
  )rd   rì   rO   r   rP   r   rN   r  ©r  r?   r   rW   Úxsl_objrX   s         r   Útest_stylesheet_ior  ÷  só   € õ Ô˜ÑÔÐõ 
Ø˜d¸Àº¸¨W¨WÈð
ñ 
ô 
ð )à	
Ø�4Š<ˆ<Ý˜aŸfšf™hœhÑ'Ô'ˆGˆGå˜qŸvšv™xœxÑ(Ô(ˆGð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð �^Š^ wˆ^Ñ/Ô/€Fà•\Ò!Ð!Ð!Ð!Ð!Ð!s   ¯A
BÂB	ÂB	c                ó   — t          j        d¦  «         t          | ||dk    rdnd ¬¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                     |¬¦  «        }|t
          k    sJ ‚d S r  )rd   rì   rO   rP   rN   r  r  s         r   Útest_stylesheet_buffered_readerr  
  sÇ   € Ý
Ô˜ÑÔÐÝ	Ø˜d¸Àº¸¨W¨WÈð
ñ 
ô 
ð à	
Ø—&’&‘(”(ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 �^Š^ wˆ^Ñ/Ô/€Fà•\Ò!Ð!Ð!Ð!Ð!Ð!s   ¯AÁAÁAc                ó  — t          j        d¦  «        }t          j                             ddd¦  «        }t          j        |j        d¬¦  «        5  |                      |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nú
lxml.etreeÚdataÚxmlzrow_field_output.xsltú!Start tag expected, '<' not foundrb   r
  )rd   rì   ÚosrV   Újoinre   ÚXMLSyntaxErrorrN   ©r   Ú
lxml_etreeÚxsls      r   Útest_stylesheet_wrong_pathr     sÄ   € ÝÔ$ \Ñ2Ô2€Jå
Œ'�,Š,�v˜uÐ&=Ñ
>Ô
>€Cå	ŒØÔ!Ø2ð
ñ 
ô 
ð 'ð 'ð 	�Š #ˆÑ&Ô&Ð&ð	'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   ÁA5Á5A9Á<A9Úvalrˆ   r   c                óð   — t          j        d¦  «        }d                     g d¢¦  «        }t          j        |j        |¬¦  «        5  |                     | ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr  ú|)zDocument is emptyr  zNone \(line 0\)rb   r
  )rd   rì   r  re   r  rN   )r!  r   r  Úmsgs       r   Útest_empty_string_stylesheetr%  "  sÆ   € åÔ$ \Ñ2Ô2€Jà
�(Š(ð	
ð 	
ð 	
ñô €Cõ 
Œ�zÔ0¸Ð	<Ñ	<Ô	<ð 'ð 'Ø�Š #ˆÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   ÁA+Á+A/Á2A/c                óÆ   — t          j        d¦  «        }d}t          j        |j        d¬¦  «        5  |                      |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr  aR  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8" indent="yes" >
    <xsl:strip-space elements="*"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="row/*">
        <field>
            <xsl:attribute name="field">
                <xsl:value-of select="name()"/>
            </xsl:attribute>
            <xsl:value-of select="text()"/>
        </field>
    </xsl:template>
</xsl:stylesheet>zOpening and ending tag mismatchrb   r
  )rd   rì   re   r  rN   r  s      r   Útest_incorrect_xsl_syntaxr'  3  sµ   € ÝÔ$ \Ñ2Ô2€Jð€Cõ* 
ŒØÔ!Ð*Kð
ñ 
ô 
ð 'ð 'ð 	�Š #ˆÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ó   ²AÁAÁAc                óÆ   — t          j        d¦  «        }d}t          j        |j        d¬¦  «        5  |                      |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr  aT  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:template match="@*|node(*)">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="row/*">
        <field>
            <xsl:attribute name="field">
                <xsl:value-of select="name()"/>
            </xsl:attribute>
            <xsl:value-of select="text()"/>
        </field>
    </xsl:template>
</xsl:stylesheet>zfailed to compilerb   r
  )rd   rì   re   ÚXSLTParseErrorrN   r  s      r   Útest_incorrect_xsl_evalr+  Q  s¬   € ÝÔ$ \Ñ2Ô2€Jð€Cõ* 
Œ�zÔ0Ð9LÐ	NÑ	NÔ	Nð 'ð 'Ø�Š #ˆÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'r(  c                ó   — t          j        d¦  «        }d}t          j        |j        d¬¦  «        5  t	          j        d¦  «        5 }|                      ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr  ag  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:copy-of select="document('non_existent.xml')/*"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>zCannot resolve URIrb   rI   r
  )rd   rì   re   ÚXSLTApplyErrorrL   rM   rN   )r   r  r  rV   s       r   Útest_incorrect_xsl_applyr.  m  s  € ÝÔ$ \Ñ2Ô2€Jð
€Cõ 
Œ�zÔ0Ð9MÐ	OÑ	OÔ	Oð 1ð 1ÝŒ_˜ZÑ(Ô(ð 	1¨DØ�NŠN˜4¨CˆNÑ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s5   ²BÁA+ÁBÁ+A/	Á/BÁ2A/	Á3BÂBÂ
Bc                ó    — d}t          j        t          d¬¦  «        5  |                      d|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NaI  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:template match="@*|node(*)">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>z*To use stylesheet, you need lxml installedrb   rC   )rE   r  r  )r   r  s     r   Útest_stylesheet_with_etreer0  �  s¤   € ð	€Cõ 
ŒÝÐGð
ñ 
ô 
ð 7ð 7ð 	�Š˜g°#ˆÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7ri   c                óÆ   — t          j        d¦  «         d}|                      d¬¦  «        }|�|                     ¦   «         }|                      |¬¦  «        }||k    sJ ‚d S )NrA   aQ  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:param name="delim">,</xsl:param>
    <xsl:template match="/data">
        <xsl:text>,shape,degrees,sides&#xa;</xsl:text>
        <xsl:apply-templates select="row"/>
    </xsl:template>

    <xsl:template match="row">
        <xsl:value-of select="concat(index, $delim, shape, $delim,
                                     degrees, $delim, sides)"/>
         <xsl:text>&#xa;</xsl:text>
    </xsl:template>
</xsl:stylesheet>ú
)Úlineterminatorr
  )rd   rì   Úto_csvrR   rN   )r   r  Úout_csvÚout_xmls       r   Útest_style_to_csvr7  “  sl   € Ý
Ô˜ÑÔÐð€Cð$ �nŠn¨DˆnÑ1Ô1€GàÐØ—-’-‘/”/ˆØ�nŠn¨ˆnÑ,Ô,€Gà�gÒÐÐÐÐÐr   c                ó˜   — t          j        d¦  «         d}|                      ¦   «         }|                      d|¬¦  «        }||k    sJ ‚d S )NrA   a˜  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:param name="delim"><xsl:text>               </xsl:text></xsl:param>
    <xsl:template match="/data">
        <xsl:text>      shape  degrees  sides&#xa;</xsl:text>
        <xsl:apply-templates select="row"/>
    </xsl:template>

    <xsl:template match="row">
        <xsl:value-of select="concat(index, ' ',
                                     substring($delim, 1, string-length('triangle')
                                               - string-length(shape) + 1),
                                     shape,
                                     substring($delim, 1, string-length(name(degrees))
                                               - string-length(degrees) + 2),
                                     degrees,
                                     substring($delim, 1, string-length(name(sides))
                                               - string-length(sides) + 2),
                                     sides)"/>
         <xsl:text>&#xa;</xsl:text>
    </xsl:template>
</xsl:stylesheet>ÚNaN)rŠ   r  )rd   rì   Ú	to_stringrN   )r   r  Úout_strr6  s       r   Útest_style_to_stringr<  °  sY   € Ý
Ô˜ÑÔÐð€Cð4 ×ÒÑ!Ô!€GØ�nŠn E°cˆnÑ:Ô:€Gà�gÒÐÐÐÐÐr   c                ó–   — t          j        d¦  «         d}|                      ¦   «         }|                      |¬¦  «        }||k    sJ ‚d S )NrA   a]  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:param name="quot">"</xsl:param>

    <xsl:template match="/data">
        <xsl:text>{"shape":{</xsl:text>
        <xsl:apply-templates select="descendant::row/shape"/>
        <xsl:text>},"degrees":{</xsl:text>
        <xsl:apply-templates select="descendant::row/degrees"/>
        <xsl:text>},"sides":{</xsl:text>
        <xsl:apply-templates select="descendant::row/sides"/>
        <xsl:text>}}</xsl:text>
    </xsl:template>

    <xsl:template match="shape|degrees|sides">
        <xsl:variable name="val">
            <xsl:if test = ".=''">
                <xsl:value-of select="'null'"/>
            </xsl:if>
            <xsl:if test = "number(text()) = text()">
                <xsl:value-of select="text()"/>
            </xsl:if>
            <xsl:if test = "number(text()) != text()">
                <xsl:value-of select="concat($quot, text(), $quot)"/>
            </xsl:if>
        </xsl:variable>
        <xsl:value-of select="concat($quot, preceding-sibling::index,
                                     $quot,':', $val)"/>
        <xsl:if test="preceding-sibling::index != //row[last()]/index">
            <xsl:text>,</xsl:text>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>r
  )rd   rì   Úto_jsonrN   )r   r  Úout_jsonr6  s       r   Útest_style_to_jsonr@  Ò  sV   € Ý
Ô˜ÑÔÐð#€CðJ �ŠÑ Ô €HØ�nŠn¨ˆnÑ,Ô,€Gà�wÒÐÐÐÐÐr   c                ón  — t          j        ¦   «         5 }|                     || |¬¦  «         t          |d|¬¦  «        5 }|j                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }t          |                     ¦   «         k    sJ ‚d S )N©rE   Úcompressionr7   ©rC  ©	rL   rM   rN   r	   ÚhandlerP   r5   Úgeom_xmlrR   )rE   Úcompression_onlyr   rV   Ú
handle_objrX   s         r   Útest_compression_outputrJ    s0  € Ý	ŒÑ	Ô	ð .˜dØ�Š�t FÐ8HˆÑIÔIÐIåØØØ(ð
ñ 
ô 
ð 	.ð ØÔ&×+Ò+Ñ-Ô-ˆFð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ ˜6Ñ"Ô"€Få�v—|’|‘~”~Ò%Ð%Ð%Ð%Ð%Ð%s4   ”+A<¿A%ÁA<Á%A)	Á)A<Á,A)	Á-A<Á<B ÂB c                óˆ  — d||         z   }t          j        |¬¦  «        5 }|                     || |¬¦  «         t          |d|¬¦  «        5 }|j                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }t          |                     ¦   «         k    sJ ‚d S )Nzxml.)ÚfilenamerB  r7   rD  rE  )rE   rH  r   Úcompression_to_extensionÚcompfilerV   rI  rX   s           r   Útest_filename_and_suffix_comprO  *  sH  € ð Ð0Ð1AÔBÑB€HÝ	Œ (Ð	+Ñ	+Ô	+ð .¨tØ�Š�t FÐ8HˆÑIÔIÐIåØØØ(ð
ñ 
ô 
ð 	.ð ØÔ&×+Ò+Ñ-Ô-ˆFð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ ˜6Ñ"Ô"€Få�v—|’|‘~”~Ò%Ð%Ð%Ð%Ð%Ð%s5   ¡+B	ÁA2Á&B	Á2A6	Á6B	Á9A6	Á:B	Â	BÂBc                óØ   — d}t          dt          gi¦  «                             | ¦  «        }|                     |¬¦  «        }t	          |¦  «                             ¦   «         |k    sJ ‚d S )Nzd<?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <a/>
  </row>
</data>ÚarH   )r   r   ÚastyperN   r5   rR   )Úany_numeric_ea_dtyperE   rn   ÚdfÚresults        r   Útest_ea_dtypesrV  =  sk   € ð€Hõ 
�C�"˜�;Ñ	Ô	×	&Ò	&Ð';Ñ	<Ô	<€BØ�YŠY˜fˆYÑ%Ô%€FÝ˜Ñ Ô ×&Ò&Ñ(Ô(¨HÒ4Ð4Ð4Ð4Ð4Ð4r   c                óô   — t          j        t          d¬¦  «        5  t          j        ¦   «         5 }|                     || d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NzUnrecognized compression typerb   Ú7zrB  )rd   re   r  rL   rM   rN   rg   s      r   Útest_unsuported_compressionrY  K  s  € Ý	Œ•zÐ)HÐ	IÑ	IÔ	Ið Bð BÝŒ_ÑÔð 	B $Ø�NŠN˜4¨¸DˆNÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	BðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs4   œA-°AÁ	A-ÁA	ÁA-ÁA	ÁA-Á-A1Á4A1c                ój  — t          j        d¦  «        }t          j        d¦  «         t          j        t          t
          f¦  «        5  |                     d¬¦  «        }|                     |j        ¦  «         | 	                    d|j        › d�d| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NÚs3fsrA   T)Úanonzs3://z	/geom.xmlÚzip)rC  rE   )
rd   rì   rL   Úexternal_error_raisedÚPermissionErrorÚFileNotFoundErrorÚS3FileSystemÚlsÚnamerN   )rE   Ús3_public_bucketr   r[  Úfss        r   Útest_s3_permission_outputrf  T  sü   € åÔ˜vÑ&Ô&€DÝ
Ô˜ÑÔÐå	Ô	!¥?Õ4EÐ"FÑ	GÔ	Gð 
ð 
Ø×Ò DÐÑ)Ô)ˆØ
�ŠÐÔ#Ñ$Ô$Ð$à�ŠØ4Ð$Ô)Ð4Ð4Ð4À%ÐPVð 	ñ 	
ô 	
ð 	
ð	
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Á	AB(Â(B,Â/B,)`Ú
__future__r   Úior   r   r  Únumpyr   rd   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   r   r   Úpandas._testingÚ_testingrL   Úpandas.io.commonr	   Úpandas.io.xmlr
   Úfixturer   r/   r1   r5   r?   r<   Ú
skip_if_norE   rY   r]   r`   rh   ro   ru   ÚmarkÚparametrizerÅ   Úranger�   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û   rý   Úskip_if_installedr  r  r  r  r  r  r   r%  r'  r+  r.  r0  r7  r<  r@  rG  rJ  rO  rV  rY  Ú
single_cpurf  r   r   r   ú<module>rz     sû  ðØ "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð 
€	€	€	à Ð Ð Ð Ø €€€à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð
 Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "ðJ „ðð ñ „ðð „ð,ð ,ñ „ð,ð^ „ðð ñ „ðð>ð ð ð €„˜˜c�{Ð#Ñ#Ô#ðð ñ $Ô#ðð €„˜˜œ V°=°2´=ÀÑ3HÔ3HÐIÑIÔIÈ7ÐSÐTÑTÔTðð ñ UÔTðð
,ð 
,ð 
,ð
,ð 
,ð 
,ð(ð (ð (ð,ð ,ð ,ð$"ð $"ð $"ðN&"ð &"ð &"ðR „×ÒØ�T�T˜%˜%  B™-œ-Ñ(Ô(Ð*IÐ*I¸5¸5ÀÀR¹=¼=Ð*IÑ*IÔ*IÐJñô ð!ð !ñô ð!ðL€ð0!ð !ð !ð!ð !ð !ðð ð ðBð ð ðð ð ð.Nð Nð Nð
Nð Nð Nð)ð )ð )ð:Nð Nð Nð
Nð Nð Nð
)ð )ð )ð@,ð ,ð ,ð^ð ð ð<$ð $ð $ðNð ð ð4ð ð ð<ð ð ðHð ð ð@
ð 
ð 
ðð ð ðH!Ð ðH'ð 'ð 'ðPð Pð Pð „×Ò˜Ð%FÐ%FÐ%FÑGÔGðLð Lñ HÔGðLð8ð 8ð 8ðð ð ð:ð ð ð*ð ð ð, €Ô�fÑÔðð ñ Ôðð%ð %ð %ð€ð0<ð <ð <ð"ð "ð "ð&	"ð 	"ð 	"ð	'ð 	'ð 	'ð „×Ò˜  S 	Ñ*Ô*ð'ð 'ñ +Ô*ð'ð 'ð 'ð 'ð<'ð 'ð 'ð81ð 1ð 1ð(7ð 7ð 7ð$ð ð ð:ð ð ðD*ð *ð *ð`€ð0&ð &ð &ð &ð &ð &ð&5ð 5ð 5ðBð Bð Bð „Ôð

ð 

ñ Ôð

ð 

ð 

r   