
    Og.                     N   d dl Zd dlZd dlmZ d dlZd dlmZmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ eeeeeefZeeeeeefZeefZej>                  jA                  deez         d        Z!ej>                  jA                  de      d        Z"ej>                  jA                  de      d	        Z#d
 Z$ej>                  jA                  de      d        Z%ej>                  jA                  de      d        Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/y)    N)assert_allclose)MultiLineString
MultiPointMultiPolygon)assert_geometries_equal)empty_line_stringempty_line_string_zgeometry_collectionline_stringline_string_zlinear_ringmulti_line_stringmulti_line_string_zmulti_pointmulti_point_zmulti_polygonmulti_polygon_zpointpoint_zpolygon	polygon_zgeomc                 n    t        j                  t        j                  | | g       }t        || | g       y N)shapelyfrom_ragged_arrayto_ragged_arrayr   )r   actuals     d/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/shapely/tests/test_ragged_array.pytest_roundtripr    3   s/    &&(?(?t(MNFFT4L1    c                     t        j                  | | gd      \  }}}t        j                  |d d df         j	                         sJ y )NT	include_z   )r   r   npisnanallr   _coordss      r   test_include_zr,   9   sA    **D$<4HLAvq88F1a4L!%%'''r!   c                 f    t        j                  | | gd      \  }}}|j                  d   dk(  sJ y )NFr#      r%   )r   r   shaper)   s      r   test_include_z_falser0   @   s4    **D$<5ILAvq<<?ar!   c                     t        j                  t        t        g      \  } }} |j                  d   dk(  sJ t        j                  t
        g      \  } }} |j                  d   dk(  sJ t        j                  t        g      \  } }} |j                  d   dk(  sJ t        j                  t        j                  dg            \  } }} |j                  d   dk(  sJ y )Nr.      r%   zMULTIPOLYGON Z EMPTY)r   r   r   r   r/   r   r	   from_wkt)r*   r+   s     r   test_include_z_defaultr4   G   s     **K+GHLAvq<<?a **,=+>?LAvq<<?a**,?+@ALAvq<<?a**7+;+;=S<T+UVLAvq<<?ar!   c                     t        j                  | | g      \  }}}d|j                  _        |D ]  }d|j                  _         t        j                  |||      }t        || | g       y )NF)r   r   flags	writeabler   r   )r   typr+   offsetsarrresults         r   test_read_only_arraysr<   X   sh     #22D$<@C"FLL $#		$&&sFG<FFT4L1r!   c                     t        j                  t              5  t        j                  | | g       d d d        y # 1 sw Y   y xY wr   )pytestraises
ValueErrorr   r   )r   s    r   test_raise_geometry_typerA   c   s5    	z	" .t-. . .s	   ;Ac            
         t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgt        j
                  t        j
                  gt        j
                  t        j
                  gddgt        j
                  t        j
                  gt        j
                  t        j
                  gg      }|t         j                  j                  k(  sJ t        |      t        |       k(  sJ t        ||       t        |      dk(  sJ t        j                  ||      }t        j                  d      | d<   t        ||        y )N)zPOINT (0 0)zPOINT (1 1)POINT EMPTYrC   zPOINT (4 4)NrC   r   r.      rC   )r   r3   r   r&   arraynanGeometryTypePOINTlenr   r   r   )r:   r8   r;   r9   expectedgeomss         r   test_pointsrM   i   s   


	

C #2237CxxFFVVRVVVVRVVFVVRVVVVRVV	

H '&&,,,,,v;#c("""FH%w<1%%c62E}-CGE3'r!   c                     t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgg
      }t        j                  g d      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ t        |d   |       t        j                  |||      }t        j                  d	      | d
<   t        ||        y )N)z LINESTRING (30 10, 10 30, 40 40)z'LINESTRING (40 40, 30 30, 40 20, 30 10)LINESTRING EMPTYrO   z LINESTRING (10 10, 20 20, 10 40)NrO         >@      $@      D@      4@)r   r2      rT   rT   
   rU   rU   r.   r   rO   rE   )r   r3   r   r&   rF   rH   
LINESTRINGr   rJ   r   r   r:   r8   r+   r9   rK   expected_offsetsr;   s          r   test_linestringsrY      s   


	

C #2237Cxx4L4L4L4L4L4L4L4L4L4L	
H xx ;<'&&11111FH%w<1GAJ 01&&sFG<F12CGFC(r!   c                     t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg      }t        j                  g d	      }t        j                  g d
      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ t        |d   |       t        |d   |       t        j                  |||      }t        j                  d      | d<   t        ||        y )N)-POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))zKPOLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30))POLYGON EMPTYr\   r[   Nr\   rP   rQ   rR   rS        A@     F@      .@)r      rU         r   r.   r2   r2   r2   rD   rD   rD   r%   r   r.   r\   rE   )r   r3   r   r&   rF   rH   POLYGONr   rJ   r   r   r:   r8   r+   r9   rK   expected_offsets1expected_offsets2r;   s           r   test_polygonsrh      sp   


	

C #2237Cxx4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L'	
H. !34!9:'&&.....FH%w<1GAJ 12GAJ 12&&sFG<F/CGFC(r!   c                     t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgg      }t        j                  g d      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ t        |d   |       t        j                  |||      }t        j                  d	      | d
<   t        ||        y )N)z'MULTIPOINT (10 40, 40 30, 20 20, 30 10)zMULTIPOINT (30 10)MULTIPOINT EMPTYrj   z MULTIPOINT (30 10, 10 30, 40 40)Nrj   rQ   rR   rP   rS   )r   rD   r`   r`   r`      rk   rk   r.   r   rj   rE   )r   r3   r   r&   rF   rH   
MULTIPOINTr   rJ   r   r   rW   s          r   test_multipointsrm      s   


	

C #2237Cxx4L4L4L4L4L4L4L4L		
H xx 89'&&11111FH%w<1GAJ 01&&sFG<F12CGFC(r!   c                  x   t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg      }t        j                  g d	      }t        j                  g d
      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ t        |d   |       t        |d   |       t        j                  |||      }t        j                  d      | d<   t        ||        y )N)z'MULTILINESTRING ((30 10, 10 30, 40 40))zDMULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))MULTILINESTRING EMPTYro   zGMULTILINESTRING ((35 10, 45 45), (15 40, 10 20), (30 10, 10 30, 40 40))Nro   rP   rQ   rR   rS   r]   r^   r_   )r   r2      rU      ra      )r   r.   r2   r2   r2   rp   rp   rp   r%   r   r.   ro   rE   )r   r3   r   r&   rF   rH   MULTILINESTRINGr   rJ   r   r   re   s           r   test_multilinestringsrt     sc   


	

C #2237Cxx4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L#	
H* !:;!9:'&&66666FH%w<1GAJ 12GAJ 12&&sFG<F67CGFC(r!   c                      t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd	gddgddgddgddgdd
gddgddgddgddgddgg      }t        j                  g d      }t        j                  g d      }t        j                  g d      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ t        |d   |       t        |d   |       t        |d   |       t        j                  |||      }t        j                  d      | d<   t        ||        y )N)zRMULTIPOLYGON (((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30)))zvMULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20)))MULTIPOLYGON EMPTYrv   z-MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)))Nrv   r]   rQ   r^   r_   rR   rS   rP   g      @g      9@)r   r`   	      rb         )r   r%   r2   r`   rp   rc   r2   r   r.   r%   rv   rE   )r   r3   r   r&   rF   rH   MULTIPOLYGONr   rJ   r   r   )	r:   r8   r+   r9   rK   rf   rg   expected_offsets3r;   s	            r   test_multipolygonsr}   =  s   


	

C #2237Cxx4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L3K4L4L4L4L4L4L4L4L4L4L7	
H> !:;1!9:'&&33333FH%w<1GAJ 12GAJ 12GAJ 12&&sFG<F34CGFC(r!   c                      t        j                  t        t        g      \  } }}| t         j                  j
                  k(  sJ t        j                  | ||      }t        j                  t        t        g      t        g      }t        ||       y r   )r   r   r   r   rH   rl   r   r&   rF   r   r   r8   r+   r9   r;   rK   s        r   test_mixture_point_multipointr   z  sp    "22E;3GHC'&&11111&&sFG<FxxUG,k:;HFH-r!   c                      t        j                  t        t        g      \  } }}| t         j                  j
                  k(  sJ t        j                  | ||      }t        j                  t        t        g      t        g      }t        ||       y r   )r   r   r   r   rH   rs   r   r&   rF   r   r   r   s        r   'test_mixture_linestring_multilinestringr     sr    "22KAR3STC'&&66666&&sFG<Fxx+79JKLHFH-r!   c                      t        j                  t        t        g      \  } }}| t         j                  j
                  k(  sJ t        j                  | ||      }t        j                  t        t        g      t        g      }t        ||       y r   )r   r   r   r   rH   r{   r   r&   rF   r   r   r   s        r   !test_mixture_polygon_multipolygonr     sp    "22G]3KLC'&&33333&&sFG<Fxxwi0-@AHFH-r!   )0numpyr&   r>   numpy.testingr   r   r   r   r   shapely.testingr   shapely.tests.commonr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   	all_typesall_types_3dall_types_not_supportedmarkparametrizer    r,   r0   r4   r<   rA   rM   rY   rh   rm   rt   r}   r   r   r    r!   r   <module>r      sp     )  = = 3    ( 
	    \!9:2 ;2
 +( ,( .  /  " +2 ,2 !89. :.
 (F$)N0)f#)L.)b:)z...r!   