Ë
    ~ìqj=   ã                   óv   — d dl Z d dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZ  G d„ dej                  «      Zy)é    N)ÚparseString)Ú
LineStringÚMultiLineStringÚ
MultiPointÚMultiPolygonÚPointÚPolygon)ÚGeometryCollectionc                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚSvgTestCasec                 ó†  ‡—  |j                   di ‰¤Ž}	 t        |«       |j                  «       }	 t        |«      }d}|r§|j                  }|j                  r|dz  }|j                  s|dz  }‰r |ddj                  ˆfd„‰D «       «      z   z  }t        j                  j                  ||d	z   «      }	t        |	d
«      5 }
|
j                  |j                  «       «       ddd«       ||k(  sJ ‚y# t        $ r t        dt	        |«      z   «      ‚w xY w# t        $ r t        dt	        |«      z   «      ‚w xY w# 1 sw Y   ŒYxY w)z*Helper function to check XML and debug SVGz"XML is not valid for SVG element: z#XML is not valid for SVG document: NÚ_emptyÚ_invalidÚ_ú,c              3   óX   •K  — | ]!  }t        |«      d z   t        ‰|   «      z   –— Œ# y­w)ú=N)Ústr)Ú.0ÚkÚkwrdss     €úY/var/www/html/truck-me/venv/lib/python3.12/site-packages/shapely/tests/legacy/test_svg.pyú	<genexpr>z(SvgTestCase.assertSVG.<locals>.<genexpr>'   s&   øè ø€ Ò'TÈ¬¨A«°©´s¸5À¹8³}Õ(DÑ'Tùs   ƒ'*z.svgÚw© )ÚsvgÚparse_xml_stringÚ	ExceptionÚAssertionErrorr   Ú
_repr_svg_Ú	geom_typeÚis_emptyÚis_validÚjoinÚosÚpathÚopenÚwriteÚtoprettyxml)ÚselfÚgeomÚexpectedr   Úsvg_elemÚsvg_docÚdocÚsvg_output_dirÚfnameÚsvg_pathÚfps      `       r   Ú	assertSVGzSvgTestCase.assertSVG   sA  ø€ à�4—8‘8Ñ$˜eÑ$ˆð	WÜ˜XÔ&ð —/‘/Ó#ˆð	WÜ" 7Ó+ˆCð ˆáØ—N‘NˆEØ�}Š}Ø˜Ñ!�Ø—=’=Ø˜Ñ#�ÙØ˜˜sŸx™xÓ'TÈeÔ'TÓTÑTÑT�Ü—w‘w—|‘| N°E¸F±NÓCˆHÜ�h Ó$ð ,¨Ø—‘˜Ÿ™Ó*Ô+÷,à˜8Ò#Ð#Ñ#øô) ò 	WÜ Ð!EÌÈHËÑ!UÓVÐVð	Wûô
 ò 	WÜ Ð!FÌÈWËÑ!UÓVÐVð	Wú÷,ð ,ús"   •C/ ±D Â? D7Ã/!DÄ!D4Ä7E c                 óœ   — | j                  t        «       d«       t        dd«      }| j                  |d«       | j                  |dd¬«       y )Nú<g />é   é   ze<circle cx="6.0" cy="7.0" r="3.0" stroke="#555555" stroke-width="1.0" fill="#66cc99" opacity="0.6" />zf<circle cx="6.0" cy="7.0" r="15.0" stroke="#555555" stroke-width="5.0" fill="#66cc99" opacity="0.6" />é   ©Úscale_factor)r4   r   ©r*   Úgs     r   Ú
test_pointzSvgTestCase.test_point-   sQ   € à�‰”u“w Ô(ä�!�Q‹KˆØ�‰ØðAô	
ð
 	�‰ØðAàð	 	õ 	
ó    c                 óž   — | j                  t        «       d«       t        ddg«      }| j                  |d«       | j                  |dd¬«       y )Nr6   ©r7   r8   ©é   é   zÑ<g><circle cx="6.0" cy="7.0" r="3.0" stroke="#555555" stroke-width="1.0" fill="#66cc99" opacity="0.6" /><circle cx="3.0" cy="4.0" r="3.0" stroke="#555555" stroke-width="1.0" fill="#66cc99" opacity="0.6" /></g>zÓ<g><circle cx="6.0" cy="7.0" r="15.0" stroke="#555555" stroke-width="5.0" fill="#66cc99" opacity="0.6" /><circle cx="3.0" cy="4.0" r="15.0" stroke="#555555" stroke-width="5.0" fill="#66cc99" opacity="0.6" /></g>r9   r:   )r4   r   r<   s     r   Útest_multipointzSvgTestCase.test_multipoint>   sW   € à�‰”z“| WÔ-ä˜ Ð'Ó(ˆØ�‰ØðEô	
ð 	�‰ØðEð ð 	õ 	
r?   c                 óØ   — | j                  t        «       d«       t        g d¢«      }| j                  |d«       | j                  |dd¬«       | j                  t        ddg«      d«       y )	Nr6   ))r9   é   )ið  iúÿÿÿ)i  é   zq<polyline fill="none" stroke="#66cc99" stroke-width="2.0" points="5.0,8.0 496.0,-6.0 530.0,20.0" opacity="0.8" />zr<polyline fill="none" stroke="#66cc99" stroke-width="10.0" points="5.0,8.0 496.0,-6.0 530.0,20.0" opacity="0.8" />r9   r:   ©r   r   zc<polyline fill="none" stroke="#ff3333" stroke-width="2.0" points="0.0,0.0 0.0,0.0" opacity="0.8" />)r4   r   r<   s     r   Útest_linestringzSvgTestCase.test_linestringS   sq   € à�‰”z“| WÔ-äÒ5Ó6ˆØ�‰ØðFô	
ð
 	�‰ØðFàð	 	ô 	
ð 	�‰Ü˜ Ð'Ó(ð8õ	
r?   c                 ó¼   — | j                  t        «       d«       | j                  t        ddgddgg«      d«       | j                  t        ddgddgg«      d«       y )	Nr6   rA   rB   )é   rG   )é	   é   zÍ<g><polyline fill="none" stroke="#66cc99" stroke-width="2.0" points="6.0,7.0 3.0,4.0" opacity="0.8" /><polyline fill="none" stroke="#66cc99" stroke-width="2.0" points="2.0,8.0 9.0,1.0" opacity="0.8" /></g>)rL   rC   zÍ<g><polyline fill="none" stroke="#ff3333" stroke-width="2.0" points="2.0,3.0 2.0,3.0" opacity="0.8" /><polyline fill="none" stroke="#ff3333" stroke-width="2.0" points="2.0,8.0 9.0,1.0" opacity="0.8" /></g>)r4   r   ©r*   s    r   Útest_multilinestringz SvgTestCase.test_multilinestringj   se   € à�‰”Ó(¨'Ô2à�‰Ü˜f fÐ-°¸Ð/?Ð@ÓAð<ô	
ð 	�‰Ü˜f fÐ-°¸Ð/?Ð@ÓAð<õ	
r?   c                 óà   — | j                  t        «       d«       t        g d¢g d¢g«      }| j                  |d«       | j                  |dd¬«       | j                  t        g d¢«      d	«       y )
Nr6   )©é#   é
   )é-   rU   )é   é(   )rT   rH   rR   )©rH   é   )rS   rS   ©rY   rH   rX   zÑ<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 35.0,10.0 L 45.0,45.0 L 15.0,40.0 L 10.0,20.0 L 35.0,10.0 z M 20.0,30.0 L 35.0,35.0 L 30.0,20.0 L 20.0,30.0 z" />zÒ<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="10.0" opacity="0.6" d="M 35.0,10.0 L 45.0,45.0 L 15.0,40.0 L 10.0,20.0 L 35.0,10.0 z M 20.0,30.0 L 35.0,35.0 L 30.0,20.0 L 20.0,30.0 z" />r9   r:   ©©r   rW   rI   ©rW   rW   )rW   r   r\   zš<path fill-rule="evenodd" fill="#ff3333" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 0.0,40.0 L 0.0,0.0 L 40.0,40.0 L 40.0,0.0 L 0.0,40.0 z" />)r4   r	   r<   s     r   Útest_polygonzSvgTestCase.test_polygon~   sw   € à�‰”w“y 'Ô*äÚ>Ú5Ð6ó
ˆð 	�‰Øð*ô	
ð 	�‰Øð*ð ð 	ô 	
ð 	�‰ÜÒAÓBð4õ	
r?   c           
      ó  — | j                  t        «       d«       | j                  t        t        g d¢«      t        g d¢g d¢g«      g«      d«       | j                  t        t        g d¢«      t        g d¢«      g«      d«       y )	Nr6   )r]   )rH   rU   )rU   rY   r]   )©rH   rS   )rT   rY   )rT   rT   )rY   r9   )rU   rH   r`   )rZ   )rH   rV   )rH   é   rZ   av  <g><path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 40.0,40.0 L 20.0,45.0 L 45.0,30.0 L 40.0,40.0 z" /><path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 20.0,35.0 L 10.0,30.0 L 10.0,10.0 L 30.0,5.0 L 45.0,20.0 L 20.0,35.0 z M 30.0,20.0 L 20.0,15.0 L 20.0,25.0 L 30.0,20.0 z" /></g>)©éŒ   rc   )éx   é‘   )re   é‚   rb   r[   a<  <g><path fill-rule="evenodd" fill="#ff3333" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 140.0,140.0 L 120.0,145.0 L 145.0,130.0 L 140.0,140.0 z" /><path fill-rule="evenodd" fill="#ff3333" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 0.0,40.0 L 0.0,0.0 L 40.0,40.0 L 40.0,0.0 L 0.0,40.0 z" /></g>)r4   r   r	   rO   s    r   Útest_multipolygonzSvgTestCase.test_multipolygon�   s|   € à�‰”|“~ wÔ/à�‰ÜäÒDÓEÜÚSÚAÐBóðóð:ô	
ð& 	�‰ÜäÒLÓMÜÒIÓJðóð8õ	
r?   c           	      ó  — | j                  t        «       d«       | j                  t        t        dd«      t        ddg«      g«      d«       | j                  t        dd«      j	                  t        ddg«      «      d«       y )Nr6   r8   rC   )rD   rL   )rG   rD   zÏ<g><circle cx="7.0" cy="3.0" r="3.0" stroke="#555555" stroke-width="1.0" fill="#66cc99" opacity="0.6" /><polyline fill="none" stroke="#66cc99" stroke-width="2.0" points="4.0,2.0 8.0,4.0" opacity="0.8" /></g>zÏ<g><circle cx="7.0" cy="3.0" r="3.0" stroke="#555555" stroke-width="1.0" fill="#ff3333" opacity="0.6" /><polyline fill="none" stroke="#ff3333" stroke-width="2.0" points="4.0,2.0 4.0,2.0" opacity="0.8" /></g>)r4   r
   r   r   ÚunionrO   s    r   Útest_collectionzSvgTestCase.test_collectionÃ   ss   € à�‰Ô)Ó+¨WÔ5à�‰Ü¤ a¨£¬Z¸ÀÐ8HÓ-IÐJÓKð<ô	
ð 	�‰Ü�!�Q‹K×Ñœj¨&°&Ð)9Ó:Ó;ð<õ	
r?   N)Ú__name__Ú
__module__Ú__qualname__r4   r>   rE   rJ   rP   r^   rg   rj   r   r?   r   r   r      s+   „ ò$ò6
ò"
ò*
ò.
ò(
ò>$
óL
r?   r   )r%   ÚunittestÚxml.dom.minidomr   r   Úshapely.geometryr   r   r   r   r   r	   Úshapely.geometry.collectionr
   ÚTestCaser   r   r?   r   ú<module>rs      s1   ðã 	Û Ý ;÷÷ õ ;ôD
�(×#Ñ#õ D
r?   