
    (&h=                      t    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dS )    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
d	S )
SvgTestCasec                     |j         di }	 t          |           n-# t          $ r  t          dt	          |          z             w xY w|                                }	 t          |          }n-# t          $ r  t          dt	          |          z             w xY wd}|r|j        }|j        r|dz  }|j        s|dz  }r'|dd	                    fdD                       z   z  }t          j        	                    ||d	z             }	t          |	d
          5 }
|
                    |                                           ddd           n# 1 swxY w Y   ||k    sJ dS )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   h   K   | ],}t          |          d z   t          |                   z   V  -dS )=N)str).0kkwrdss     X/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/legacy/test_svg.py	<genexpr>z(SvgTestCase.assertSVG.<locals>.<genexpr>'   s<      'T'TAs58}}(D'T'T'T'T'T'T    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   s   48$$e$$	WX&&&& 	W 	W 	W !EH!UVVV	W//##	W"7++CC 	W 	W 	W !FW!UVVV	W 
	,NE} "!= $# Usxx'T'T'T'Te'T'T'TTTTTw||NEFNCCHh$$ ,**+++, , , , , , , , , , , , , , ,8######s'     *A
"A2 2*B(EEEc                     |                      t                      d           t          dd          }|                      |d           |                      |dd           d S )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)r5   r   r+   gs     r   
test_pointzSvgTestCase.test_point-   sy    uww(((!QKKA	
 	
 	

 	A	 	 	
 	
 	
 	
 	
r   c                     |                      t                      d           t          ddg          }|                      |d           |                      |dd           d S )Nr7   r8   r9         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>r:   r;   )r5   r   r=   s     r   test_multipointzSvgTestCase.test_multipoint>   s    z||W---'((E	
 	
 	
 	E  	 	
 	
 	
 	
 	
r   c                    |                      t                      d           t          g d          }|                      |d           |                      |dd           |                      t          ddg          d           d S )	Nr7   ))r:      )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" />r:   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" />)r5   r   r=   s     r   test_linestringzSvgTestCase.test_linestringS   s    z||W---55566F	
 	
 	

 	F	 	 	
 	
 	
 	'((8	
 	
 	
 	
 	
r   c                     |                      t                      d           |                      t          ddgddgg          d           |                      t          ddgddgg          d           d S )	Nr7   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>)r5   r   r+   s    r   test_multilinestringz SvgTestCase.test_multilinestringj   s    (('222ff-/?@AA<	
 	
 	
 	ff-/?@AA<	
 	
 	
 	
 	
r   c                    |                      t                      d           t          g dg dg          }|                      |d           |                      |dd           |                      t          g d          d	           d S )
Nr7   )#   
   )-   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" />r:   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" />)r5   r	   r=   s     r   test_polygonzSvgTestCase.test_polygon~   s    wyy'***>>>5556
 
 	*	
 	
 	
 	*  	 	
 	
 	
 	AAABB4	
 	
 	
 	
 	
r   c           
      ^   |                      t                      d           |                      t          t          g d          t          g dg dg          g          d           |                      t          t          g d          t          g d          g          d           d S )	Nr7   )r]   )rH   rU   )rU   rY   r]   )rH   rS   )rT   rY   )rT   rT   )rY   r:   )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>)r5   r   r	   rO   s    r   test_multipolygonzSvgTestCase.test_multipolygon   s    |~~w///DDDEESSSAAAB  :	
 	
 	
& 	LLLMMIIIJJ 8	
 	
 	
 	
 	
r   c           	      Z   |                      t                      d           |                      t          t          dd          t          ddg          g          d           |                      t          dd                              t          ddg                    d           d S )Nr7   r9   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>)r5   r
   r   r   unionrO   s    r   test_collectionzSvgTestCase.test_collection   s    )++W555aZ8H-I-IJKK<	
 	
 	
 	!QKKj&&)9::;;<	
 	
 	
 	
 	
r   N)__name__
__module____qualname__r5   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      s    				  ; ; ; ; ; ;                ; : : : : :D
 D
 D
 D
 D
(# D
 D
 D
 D
 D
r   