
    _ h                     !   d dl Zd dlZd dl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 d dl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 ed d dk(  Zed d dk(  Z ed d d	k(  Z!ejD                  ejF                  ejH                   ejJ                  ejL                  ejN                  jQ                  ej                  d
k  d            ejR                  ejT                  ejV                  ejX                  ejZ                  ej\                   ejJ                  ej^                  ejN                  jQ                  ej                  dk  d            fZ0ejb                  ejd                  ejf                  ejh                  ejj                  fZ6ejN                  jo                  de      ejN                  jo                  de0      d               Z8ejN                  jo                  de      ejN                  jo                  de6      d               Z9ejN                  jo                  de      ejN                  jo                  de      d               Z:ejN                  jo                  de0      d        Z;ejN                  jo                  de6      d        Z<ejN                  jo                  de      ejN                  jo                  de6      d               Z=d Z>d Z?d Z@ejN                  jo                  de      d        ZAd ZBejN                  jo                  deefeef e eg d       eg d       g       eg dg d g!      feefegegfg      d"        ZCd# ZDejN                  jo                  deef eg d$       e	d%d&g      f eg d'       e eg d(       eg d)      g      feefegegfg      d*        ZEejN                  jo                  deef eg d+       eg d'      g eg d+       e eg d,       eg d(      g      gfedegedegfg      d-        ZFejN                  jQ                  ej                  dk  d      ejN                  jo                  deef eg d$       eg d$      f eg d'       e eg d(       eg d)      g      feefegegfg      d.               ZGejN                  jQ                  ej                  dk  d      ejN                  jo                  deef eg d$       e       f eg d'       e eg d(       eg d)      g      feefegegfg      d/               ZHejN                  jQ                  ej                  dk\  d0      d1        ZIejN                  jQ                  ej                  dk  d      ejN                  jo                  d2 ej                  d3d4g      d5eKd6fd3d5d7geKd8fd9d5eLd:fd3d7eLd;fg      d<               ZMejN                  jo                  deef e	d=d%g       e	d%d&g      fg      d>        ZNd? ZOd@ ZPdA ZQdB ZRdC ZSejN                  jQ                  ej                  d
k  d      ejN                  jo                  d eg dD       edEdFg      f eg dG       eg dH      f eg dI       eg dJ      f eg dKg dLg!       eg dKg dMg!      f e eg dN       eg dO      g       e eg dP       eg dQ      g      feefeefeefeefeefeefeefg      dR               ZTejN                  jQ                  ej                  dSk  dT      ejN                  jo                  dU eg dP      dgg      dV               ZUejN                  jQ                  ej                  d
k  d      dW        ZVejN                  jQ                  ej                  d
k  d      ejN                  jo                  dUdXdYg      dZ               ZWejN                  jo                  d edEd[g       ed[dEg      f eg dH       eg d\      f eg dP       eg d]      f eg dKg dMg!       eg d^g d_g!      f e	dEd[gd`dagg       e	d[dEgdad`gg      f e eg dP       eg dQ      g       e eg d]       eg db      g      feefeefeefeefeefeefeefg      dc        ZXdd ZYejN                  jo                  dedfdgg      dh        ZZejN                  jo                  d ed d        e       f edidi       edidi      f edidj       e       f edEdkg       e       f edldmg       edldmg      f eg dn       e       f edodpg       edqdrg      fg      ds        Z[ejN                  jo                  dt edudvg!      dw e       f edudxg!      dw e       f edydvg!      dz edydvg!      f eg dug dvg!      d{ eg d|      fg      d}        Z\ejN                  jo                  de      d~        Z]d Z^ejN                  jo                  deeeeg      d        Z_d Z`d Zad Zbd Zcd Zdd Zed Zfd Zgd ZhejN                  jQ                  ej                  dk  d      ejN                  jo                  de      ejN                  jo                  ddd g      d                      ZiejN                  jQ                  ej                  dk  d      ejN                  jo                  de      d               ZjejN                  jQ                  ej                  dk  d      ejN                  jo                  deeeeg      d               ZkejN                  jQ                  ej                  dk  d      ejN                  jo                  deeeg      d               ZlejN                  jQ                  ej                  dk  d      d        ZmejN                  jQ                  ej                  dk  d      ejN                  jo                  d edEdg      d edEdg      f eg dK      d eg dK      f edEdg      d eg d      f eg dK      d eg d      f edEdg       edEdg      gd eg d       edEdg      gf edEdg       edEdg      gdg eg d       edEdg      gf edEdg       edEdg      gddg eg d       eg d      gfg      d               ZnejN                  jo                  de      d        ZoejN                  jo                  d eg d       ejb                   edd      d      f edFdg       ejb                   edgd      d      f e
ddg       ejb                   edd      dg      f edd       edd      f e        e       fg      d        ZpejN                  jo                  de      d        ZqejN                  jo                  dej                  ej                  g      ejN                  jo                  d e
g d       eg d      f eg d       eg d      f eg d       eg d      f edYdg       edYdg      f edd       edd      f e        e       fg      d               ZtejN                  jQ                  ej                  dSk\  d      ejN                  jo                  d e
g d       eg d      f eg d       eg d      f eg d       eg d      f edYdg       edYdg      f edd       edd      f e        e       fg      d               Zud ZvejN                  jQ                  ej                  d
k  d      d        ZwejN                  jQ                  ej                  dk  d       G d d             ZxejN                  jQ                  ej                  dSk  dT      d        ZyejN                  jQ                  ej                  dSk\  d      d        ZzejN                  jo                  de      d        Z{ejN                  jo                  ddg      d        Z|d Z}d Z~ejN                  jo                  de      d        Zd Zd Zd Zd Zd Zd Zd ZdÄ Zy)    N)GeometryGeometryCollectionGEOSException
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygongeos_version)UnsupportedGEOSVersionErrorassert_geometries_equal)	ArrayLike	all_typesemptyempty_line_stringempty_pointempty_polygonignore_invalidline_stringmulti_pointpointpoint_z   )   	   )r   
   )r      r   r    r   zGEOS < 3.11)reason)marks)r   r   r   zGEOS < 3.10geometryfuncc                 B   | j                   r]t        j                  |       dkD  rE|t        j                  u r3t        r	t
        dk  st        rt
        dk  rt        j                  d        || | g      }|j                  dk(  sJ |d   t        |d   t              sJ y y )Nr   )r   r   r   )r   r   r   z;GEOS < 3.9.3 or GEOS < 3.10.3 crashes with empty geometriesr   )is_emptyshapelyget_num_geometriesnodegeos39r   geos310pytestxfailshape
isinstancer   r$   r%   actuals      {/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/test_constructive.pytest_no_args_arrayr5   G   s     	&&x014GLL y0L:5 	RS8X&'F<<4!9
6!9h ??? ?    c                    |t         j                  u rZt        j                  |       dvrCt         j                  dk  r0t	        j
                  t        d      5   || | gd       d d d        y t        |t         j                  u xr- t        j                  |       dk(  xr t         j                  dk        5   || | gd      }d d d        j                  dk(  sJ t        |d   t              sJ y # 1 sw Y   y xY w# 1 sw Y   <xY w)	N   r   r!   zonly accept linestringsmatch        r   r      r   r'   )r)   offset_curveget_type_idr   r.   raisesr   r   voronoi_polygonsr0   r1   r   r2   s      r4   test_float_arg_arrayrC   Y   s     	$$$)7  :-]]=0IJ 	,(H%s+	, 
((( 	.)Q.	.  :-
 1
 x*C01 <<4fQi***	,1 1s   C27C>2C;>D	referencec                     t        j                  | | g||gd      }|j                  dk(  sJ t        |d   t              sJ y )N      ?	tolerancer'   r   )r)   snapr0   r1   r   )r$   rD   r3   s      r4   test_snap_arrayrJ   p   sG     \\8X.I0FRUVF<<4fQi***r6   c                      | d       }|J y N r%   r3   s     r4   test_no_args_missingrO   x   s    $ZF>>r6   c                      | d d      }|J y )NrF   rM   rN   s     r4   test_float_arg_missingrQ   ~   s    $_F>>r6   c                 0     || t        d            }|J y )Nnan)floatr2   s      r4   test_float_arg_nanrU      s     (E%L)F>>r6   c                      t        j                  t        d      5  t        j                  t
        dd       d d d        y # 1 sw Y   y xY w)N'invalid' is not a valid optionr:   r9   invalid)	cap_styler.   rA   
ValueErrorr)   bufferr   rM   r6   r4   test_buffer_cap_style_invalidr]      s6    	z)J	K 6ua956 6 6   AAc                      t        j                  t        d      5  t        j                  t
        dd       d d d        y # 1 sw Y   y xY w)NrW   r:   r9   rX   
join_stylerZ   rM   r6   r4   test_buffer_join_style_invalidrb      s6    	z)J	K 7uaI67 7 7r^   c                  D    t        j                  d t        d      } | J y )NrF   rG   )r)   rI   r   r3   s    r4   test_snap_nonere      s    \\$5F>>r6   c                 `    t        j                  | t        t        j                        }|J y )NrG   )r)   rI   r   nprS   r$   r3   s     r4   test_snap_nan_floatri      s"    \\(ERVV<F>>r6   c                  6    t        j                  d       } | J y rL   r)   
build_areard   s    r4   test_build_area_nonerm          %F>>r6   zgeom,expected)r   r   )r   r   r   r   )r   r   ro   )r9   r9   r   r   r8   rq   holesc                 H    t        j                  |       }||usJ ||k(  sJ y rL   rk   geomexpectedr3   s      r4   test_build_areary      s0    . %F!!!Xr6   c                  6    t        j                  d       } | J y rL   )r)   
make_validrd   s    r4   test_make_valid_noner|      rn   r6   )ro   rq   r8   rq   ro   )rq   r8   )ro   rq   )ro   rr   r   r   r   r   ro   )rq   rr   r}   rq   )ro   r~   rq   ro   c                 n    t        j                  |       }||usJ t        j                  |      |k(  sJ y rL   r)   r{   	normalizerv   s      r4   test_make_validr      s;    0 %F!!!V$000r6   )ro   rr   r~   ro   )rq   ro   r~   rq   c                     t        j                  |       }t        j                  t        j                  |      t        j                  |      k(        sJ y rL   )r)   r{   rg   allr   rv   s      r4   test_make_valid_1dr      sA    0 %F66'##F+w/@/@/JJKKKr6   c                 r    t        j                  | d      }||usJ t        j                  |      |k(  sJ y )N	structuremethodr   rv   s      r4   test_make_valid_structurer     s=    2 [9F!!!V$000r6   c                 t    t        j                  | dd      }||usJ t        j                  |      |k(  sJ y )Nr   Fr   keep_collapsedr   rv   s      r4   .test_make_valid_structure_keep_collapsed_falser      s?    2 [OF!!!V$000r6   zGEOS >= 3.10c                      t        j                  t        d      5  t        j                  t               d      } d d d        y # 1 sw Y   y xY w)Nz:The 'structure' method is only available in GEOS >= 3.10.0r:   r   r   )r.   rA   r[   r)   r{   r   )_s    r4   *test_make_valid_structure_unsupported_geosr   ?  s?    	V
 < uw{;< < <s    AAz)method, keep_collapsed, error_type, errorlineworkr   Tz!method only accepts scalar valuesFz)keep_collapsed only accepts scalar valuesunknownzUnknown method: unknownz=The 'linework' method does not support 'keep_collapsed=False'c                     t        j                  ||      5  t        j                  t	               | |      }d d d        y # 1 sw Y   y xY w)Nr:   r   )r.   rA   r)   r{   r   )r   r   
error_typeerrorr   s        r4   test_make_valid_invalid_paramsr   G  sA    4 
z	/ VuwvnUV V Vs   !AA)rq   ro   c                 <    t        j                  |       }||k(  sJ y rL   )r)   r   rv   s      r4   test_normalizer   e  s"     t$FXr6   c                      t        t        j                  dk        5  t        j                  t        d      } d d d        t        j
                         sJ y # 1 sw Y   !xY w)Nr=          @)r   r)   r   r?   r   r(   rd   s    r4   test_offset_curve_emptyr   u  sU    	,,z9	: > %%&7=> F###	> >s   AA!c                      t        j                  t        t        gddg      } | d   t        j                  t        d      k(  sJ | d   t        j                  t        d      k(  sJ y )N       g      r   r9   r)   r?   r   results    r4    test_offset_curve_distance_arrayr   }  s[    !!;"<tTlKF!9,,[$????!9,,[$????r6   c                      t        j                  t        dddd      } t        j                  t        d      }| |k7  sJ y )Nr   r   mitrer   )	quad_segsra   mitre_limitr   )result1result2s     r4   test_offset_curve_kwargsr     s?    ""TQ7G "";5Ggr6   c            	      &   d} t        j                  t        |       5  t        j                  t
        t
        gdt        j                  ddg             d d d        t        j                  t        |       5  t        j                  t
        t
        gdddg	       d d d        t        j                  t        |       5  t        j                  t
        t
        gdd
dg       d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)Nonly accepts scalar valuesr:   r9      r   )r   roundbevelr`         @      @)r   )r.   rA   	TypeErrorr)   r?   r   rg   arraymsgs    r4   #test_offset_curve_non_scalar_kwargsr     s    
&C	y	, Xk;7bhhPQSTvFVWX 
y	, 
+&w6H	


 
y	, Tk;7c
ST TX X
 

T Ts#   8C/9%C;%D/C8;DDc                      t        j                  t        d      5  t        j                  t
        dd       d d d        y # 1 sw Y   y xY w)NrW   r:   rF   rX   r`   )r.   rA   r[   r)   r?   r   rM   r6   r4   $test_offset_curve_join_style_invalidr     s<    	z)J	K E[#)DE E Er^   )ro   ro   r9   r   ro   r   )ro   r8   r8   r9   r   ro   )ro   r8   r   ro   )ro   ro   r   rq   r   ro   )ro   r   rq   r   ro   )ro   r   r   r   r   r   r   ro   )rr   rr   r      r   r   r   r   rr   rr   r   r   r   rr   )ro   ro   r   rq   r   r9   ro   )rr   rr   r   r   rp   r   r   rr   ro   r   rq   r   ro   )rr   r   rp   r   rr   c                 D    t        t        j                  | d      |       y Nr   )r   r)   remove_repeated_pointsrw   rx   s     r4   test_remove_repeated_pointsr     s    b G::4CXNr6   r=   zGEOS < 3.12zgeom, tolerancec                     t        j                  t        j                  d      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)NzInvalid number of pointsr:   )r.   rA   r)   r   r   rw   rH   s     r4   *test_remove_repeated_points_invalid_resultr     s>     
w,,4N	O 8&&tY78 8 8s   AAc                     t        j                  d d      J t        j                  d gd      j                         d gk(  sJ t        g d      } t        ddg      }t        j                  d | gd      }|d   J t	        |d   |       y )Nr9   )ro   ro   rq   ro   rq   r   )r)   r   tolistr   r   r$   rx   r   s      r4    test_remove_repeated_points_noner     s    ))$2:::))4&!4;;=$GGG23H66*+H++T8,<a@F!9F1Ix0r6   )Not a geometryr9   rq   c                     t        j                  t        d      5  t        j                  | |       d d d        y # 1 sw Y   y xY wNz)One of the arguments is of incorrect typer:   )r.   rA   r   r)   r   r   s     r4   (test_remove_repeated_points_invalid_typer     s8     
y(S	T 8&&tY78 8 8s	   <Ar8   )ro   r   r8   ro   ro   r   rq   r   ro   ro   r   r   r   ro   )rr   r   r   r   rr   rp   r   )rr   r   rp   r   rr   c                 B    t        t        j                  |       |       y rL   )r   r)   reverser   s     r4   test_reverser     s    h GOOD18<r6   c                     t        j                  d       J t        j                  d g      j                         d gk(  sJ t        g d      } t        g d      }t        j                  d | g      }|d   J t	        |d   |       y )Nr   r   r   r9   )r)   r   r   r   r   r   s      r4   test_reverse_noner   )  s    ??4 (((??D6"))+v555?@H?@H__dH-.F!9F1Ix0r6   rw   r   r9   c                     t        j                  t        d      5  t        j                  |        d d d        y # 1 sw Y   y xY wr   )r.   rA   r   r)   r   )rw   s    r4   test_reverse_invalid_typer   4  s2    	y(S	T   s	   ;A   r   )   )r   r   )   r   )r   r   r   r   r   r   r   )      r   )r   r   c                 N    t        j                  | dddd      }t        ||       y )Nr   r   r)   clip_by_rectr   rv   s      r4   test_clip_by_rectr   :  s&    ( !!$BB7FFH-r6   zgeom, rect, expected)ro   )r      r   r   )r   r   ro   )r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   )rq   )r9   r   r   )r   r9   rq   )r   r   (   r   )r   r   r   r   )r   r   )r   r   r   r   r   )r   r   r   c                 H    t        j                  | g| }t        ||       y rL   r   )rw   rectrx   r3   s       r4   test_clip_by_rect_polygonr   R  s$    Z !!$..FFH-r6   c                    | j                   rt        j                  |       t        j                  j                  k(  rkt
        r	t        dk  st        r	t        dk  st        rGt        dk  r>t        j                  t              5  t        j                  | | gdddd       d d d        y t        j                  | | gdddd      }|j                  dk(  sJ |d   t        |d   t              sJ y y # 1 sw Y   y xY w)N)r   r   r   )r   r      )r   r    r   r<   rF   r'   r   )r(   r)   r@   GeometryTypePOINTr,   r   r-   geos311r.   rA   r   r   r0   r1   r   rh   s     r4   test_clip_by_rect_arrayr     s     	)W-A-A-G-GGy0L:5L:5 ]]=) 	K  (H!5sCcJ	K!!8X"6S#sKF<<4!9
6!9h ??? ?	Ks   C00C9c                  >    t        j                  d dddd      } | J y Nr   r9   )r)   r   rd   s    r4   test_clip_by_rect_missingr     s$    !!$1a3F>>r6   c                 T    t        j                  | dddd      }|t               k(  sJ y r   )r)   r   r   )rw   r3   s     r4   test_clip_by_rect_emptyr     s.     !!$1a3F'))))r6   c                      d} t        j                  t        |       5  t        j                  t
        t
        gdddt        j                  ddg             d d d        y # 1 sw Y   y xY w)Nr   r:   r   r9   )r.   rA   r   r)   r   r   rg   r   r   s    r4   #test_clip_by_rect_non_scalar_kwargsr    sV    
&C	y	, Tk;7Aq"((Aq6BRST T Ts   9A  A)c            
      b   t        ddg      t        ddg      t        ddg      t        ddg      t        ddg      t        ddg      t        dd      d g} t        j                  |       }t        j                  |      dk(  sJ t        t        g d	      t        g d
      g      }||k(  sJ y )Nro   rq   r   r   r   r   r   r      ro   rq   r   ro   rq   ro   r   rq   )r   r   r)   
polygonizer@   r   r   )linesr   rx   s      r4   test_polygonizer
    s    FF#$FF#$FF#$FF#$FF#$FF#$a	E &Fv&!+++!4545	
H Xr6   c                     t        ddg      t        ddg      t        ddg      g} t        t        g d      g      }t        j                  t        j                  |             }t        |t        j                        sJ ||k(  sJ t        j                  t        j                  | g            }t        |t
        j                        sJ |j                  dk(  sJ |d   |k(  sJ t        j                  | | g      }|j                  dk(  sJ t        j                  |      }t        |t
        j                        sJ |j                  dk(  sJ |d   |k(  sJ |d	   |k(  sJ t        j                  | | g| | g| | gg      }|j                  d
k(  sJ t        j                  |      }t        |t
        j                        sJ |j                  dk(  sJ |j                         D ]	  }||k(  r	J  y )Nro   rq   r   r  r9   r   r   r'   r9   r   r   r   r   )r   r   r   r)   r  rg   r   r1   r   ndarrayr0   flattenr	  rx   r   arrress        r4   test_polygonize_arrayr    s   FF#$FF#$FF#$E
 "7+K#L"MNH0Ffg..///X% 12Ffbjj)))<<4!9   
((E5>
"C99$Ffbjj)))<<4!9   !9   
((UENUENUENC
DC99	!!!$Ffbjj)))<<6!!!~~ hr6   c                     t        ddg      t        ddg      t        ddg      g} t        j                  | | g      }t        j                  |d      }|j
                  dk(  sJ t        j                  |d      }|j
                  dk(  sJ y )	Nro   rq   r   r9   axisr'   r   r   )r   rg   r   r)   r  r0   r	  r  r   s      r4   test_polygonize_array_axisr    s    FF#$FF#$FF#$E
 ((E5>
"C!,F<<4!,F<<4r6   c                  P    t        j                  d d g      } | t               k(  sJ y rL   )r)   r  r   r   s    r4   test_polygonize_missingr    s(    t-F'))))r6   c                  0   d t        ddg      t        ddg      t        ddg      t        ddg      d t        ddg      t        ddg      t        ddg      t        dd      d g} t        j                  |       }t	        |      d	k(  sJ t        d
 |D              sJ |\  }}}}t        t        g d      t        g d      g      }||k(  sJ |t               k(  sJ t        t        ddg      t        ddg      g      }||k(  sJ |t               k(  sJ y )Nro   rq   r   r   r   r  d   r  r   r   c              3   L   K   | ]  }t        j                  |      d k(    yw)r  N)r)   r@   .0rw   s     r4   	<genexpr>z'test_polygonize_full.<locals>.<genexpr>  s      A$w""4(A-As   "$r  r  )r   r   r)   polygonize_fulllenr   r   r   )r	  r   polygonscutsdanglesrX   expected_polygonsexpected_dangless           r4   test_polygonize_fullr*    sK   FF#$FF#$FF#$FF#$FF#$FF#$FJ'(aE $$U+Fv;!A&AAAA'-$HdGW*4545	
 ((((%'''')	VZ(	):vv6F+GH &&&&(****r6   c                  @   t        ddg      t        ddg      t        ddg      g} t        t        g d      g      }t        j                  t        j                  |             }t        |      dk(  sJ t        d |D              sJ |d   |k(  sJ t        d |d	d  D              sJ t        j                  t        j                  | g            }t        |      dk(  sJ t        d
 |D              sJ t        d |D              sJ |d   d   |k(  sJ t        d |d	d  D              sJ t        j                  | | g      }|j                  dk(  sJ t        j                  |      }t        |      dk(  sJ t        d |D              sJ t        d |D              sJ |d   d   |k(  sJ |d   d	   |k(  sJ t        d |d	d  D              sJ t        j                  | | g| | g| | gg      }|j                  dk(  sJ t        j                  |      }t        |      dk(  sJ t        d |D              sJ t        d |D              sJ |d   j                         D ]	  }||k(  r	J  |d	d  D ]&  }|j                         D ]  }|t               k(  rJ  ( y )Nro   rq   r   r  r   c              3   P   K   | ]  }t        |t        j                           y wrL   )r1   r)   r   r   s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>  s     Edz$ 0 01E   $&r   c              3   6   K   | ]  }|t               k(    y wrL   r   r   s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>  s     Ct)++C   r9   c              3   P   K   | ]  }t        |t        j                           y wrL   r1   rg   r  r   s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>#  s     ?z$

+?r-  c              3   :   K   | ]  }|j                   d k(    yw)r  Nr0   r   s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>$  s     5dtzzT!5   c              3   <   K   | ]  }|d    t               k(    yw)r   Nr/  r   s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>&  s     F4tAw,..Fs   r   c              3   P   K   | ]  }t        |t        j                           y wrL   r2  r!  r  s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>,       =sz#rzz*=r-  c              3   :   K   | ]  }|j                   d k(    ywr'   Nr4  r8  s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>-       3SsyyD 3r5  c              3   D   K   | ]  }|D ]  }|t               k(     y wrL   r/  )r!  rw   gs      r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>0  s&     NTNAq&((N(Ns    r  c              3   P   K   | ]  }t        |t        j                           y wrL   r2  r8  s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>6  r9  r-  c              3   :   K   | ]  }|j                   d k(    yw)r   Nr4  r8  s     r4   r"  z-test_polygonize_full_array.<locals>.<genexpr>7  s     5ssyyF"5r5  )r   r   r   r)   r#  rg   r   r$  r   r0   r  r  s        r4   test_polygonize_full_arrayrA    s   FF#$FF#$FF#$E
 "7+K#L"MNH$$RXXe_5Fv;!EfEEEE!9   Cqr
CCCC$$RXXug%67Fv;!?????5f5555!9Q<8###F6!":FFFF
((E5>
"C99$$S)Fv;!=f====3F3333!9Q<8###!9Q<8###NVABZNNNN
((UENUENUENC
DC99	!!!$$S)Fv;!=f====5f5555ay  " habz /;;= 	/C,....	//r6   c                  j   t        ddg      t        ddg      t        ddg      g} t        j                  | | g      }t        j                  |d      }t        |      dk(  sJ t        d |D              sJ t        j                  |d      }t        |      dk(  sJ t        d	 |D              sJ y )
Nro   rq   r   r9   r  r   c              3   :   K   | ]  }|j                   d k(    ywr;  r4  r8  s     r4   r"  z2test_polygonize_full_array_axis.<locals>.<genexpr>H  r<  r5  r   c              3   :   K   | ]  }|j                   d k(    yw)r  Nr4  r8  s     r4   r"  z2test_polygonize_full_array_axis.<locals>.<genexpr>K  r<  r5  )r   rg   r   r)   r#  r$  r   r  s      r4   test_polygonize_full_array_axisrE  ?  s    FF#$FF#$FF#$E
 ((E5>
"C$$Sq1Fv;!3F3333$$Sq1Fv;!3F3333r6   c                  z    t        j                  d d g      } t        |       dk(  sJ t        d | D              sJ y )Nr   c              3   6   K   | ]  }|t               k(    y wrL   r/  r   s     r4   r"  z/test_polygonize_full_missing.<locals>.<genexpr>R  s     ?t)++?r0  )r)   r#  r$  r   r   s    r4   test_polygonize_full_missingrH  N  s<    $$dD\2Fv;!?????r6   max_segment_lengthc                     t        j                  t        d      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)NIllegalArgumentExceptionr:   rI  )r.   rA   r   r)   
segmentize)r$   rI  s     r4   *test_segmentize_invalid_max_segment_lengthrO  U  s=     
},F	G L88JKL L Ls	   =Ac                 V    t        j                  | t        j                        }|J y )NrM  )r)   rN  rg   rS   rh   s     r4   &test_segmentize_max_segment_length_nanrQ  ]  s$     RVVDF>>r6   c                 J    t        j                  | d      }t        ||        y Nr   rM  r)   rN  r   rh   s     r4   test_segmentize_emptyrU  d  s     
 Q?FFH-r6   c                 J    t        j                  | d      }t        ||        y rS  rT  rh   s     r4   test_segmentize_no_changerW  m  s      Q?FFH-r6   c                  6    t        j                  d d      J y rS  )r)   rN  rM   r6   r4   test_segmentize_nonerY  t  s    dq9AAAr6   zgeometry,tolerance, expectedr   r   r   )ro   r   r   r   )	ro   r   r   r   r   r   r   r   r   rZ  ro   r~         ?)ro   r   r~   c                 H    t        j                  | |      }t        ||       y rL   rT  )r$   rH   rx   r3   s       r4   test_segmentizer_  y  s!    V )4FFH-r6   c                     t        j                  | | g      }|j                  dk(  sJ |d   t        |d   t              sJ t        j                  d       }|J y Nr'   r   )r)   minimum_bounding_circler0   r1   r   rh   s     r4   &test_minimum_bounding_circle_all_typesrc    s`    ,,h-ABF<<4!9
6!9h ???,,T2F>>r6   zgeometry, expected)rZ  r\  r   r[  rZ  )r9   r   rr   r   r   c                 F    t        j                  |       }t        ||       y rL   )r)   rb  r   r$   rx   r3   s      r4   test_minimum_bounding_circlerf    s    4 ,,X6FFH-r6   c                     t        j                  | | g      }|j                  dk(  sJ |d   t        |d   t              sJ t        j                  d       }|J y ra  )r)   oriented_enveloper0   r1   r   rh   s     r4    test_oriented_envelope_all_typesri    s`    &&(';<F<<4!9
6!9h ???&&t,F>>r6   )rF   rF   )rF   r   )      @r   )g      @r   )r   r   )rj  )rF   r   )r   r   )r   rF   rj  )rq   )r   r9   r   )rq   )r   rJ  )r>   r   r   rq   )rq   )r   r9   )r   r   rq   )rj  )r         "@)g3333330@333333@)gffffff(@gffffffrj  )r   r9   c                 2     ||       }t        ||dd       y NTgMbP?)r   rH   r   )r$   rx   r%   r3   s       r4   test_oriented_enveloperp    s    B (^FFHMr6   zGEOS >= 3.12)gɿgffffff?)r]  g      @)gffffff@g333333@)rm  g?rq  )rj  )rF   rl  )      .@rl  )rr  rF   rj  c                 `    t         j                  j                  |       }t        ||dd       y ro  )r)   constructive_oriented_envelope_geosr   re  s      r4   #test_oriented_envelope_pre_geos_312rv    s)    B !!99(CFFHMr6   c                  8   t        dd      j                  d      t        dd      j                  d      g} t        j                  t	        |             }t        |t              sJ t        j                  |       }t        t        j                  |      |       y )Nr9   r   )	r   r\   r)   rh  r   r1   r   rg   asarray)
geometriesr3   rx   s      r4    test_oriented_evelope_array_likerz  D  sx     1+$$Q'q!););A)>?J&&y'<=Ffi(((((4HBJJv.9r6   c                  L   t        dd      } t        | j                  d      j                  j                  d d  | j                  d      j                  j                  d d  z         }t        j                  |d      }t        |j                        dk(  sJ t        j                  |dd      }t        |j                        d	k(  sJ t        j                  |d      }t        j                  |d	      }t        j                  |      t        j                  |      k  sJ y )
Nr   r   r   g      ?)ratior   T)r|  allow_holesr9   )
r   r	   r\   exteriorcoordsr)   concave_hullr$  	interiorsget_num_coordinates)pmpr   r   result3result4s         r4   test_concave_hull_kwargsr  O  s    b"A	AHHQK((//2QXXa[5I5I5P5PQR5SS	TB""2S1Gw  !Q&&&""2SdCGw  !Q&&&""2Q/G""2Q/G&&w/'2M2Mg2VVVVr6   c                   (    e Zd ZdZd Zd Zd Zd Zy)$TestConstrainedDelaunayTriangulationz
    Only testing the number of triangles and their type here.
    This doesn't actually test the points in the resulting geometries.

    c                     t        j                  t        g d            }t        |j                        dk(  sJ |j                  D ]  }t        |t              rJ  y )Nr   )r   r   )Z   r  )r  r   r   r   )r)   constrained_delaunay_trianglesr   r$  geomsr1   )selfpolysr  s      r4   	test_polyz.TestConstrainedDelaunayTriangulation.test_polyf  sW    66FG
 5;;1$$$ 	*Aa)))	*r6   c                     t        t        d      t        d      g      }t        j                  |      }t	        |j
                        dk(  sJ |j
                  D ]  }t        |t              rJ  y )N)2   r   )<   r   r  r  r  r   )r
   r   r)   r  r$  r  r1   )r  	multipolyr  r  s       r4   test_multi_polygonz7TestConstrainedDelaunayTriangulation.test_multi_polygonn  so     BCJK
	 66yA5;;1$$$ 	*Aa)))	*r6   c                 z    t        dd      }t        j                  |      }t        |j                        dk(  sJ y )Nr9   r   )r   r)   r  r$  r  )r  r  r  s      r4   
test_pointz/TestConstrainedDelaunayTriangulation.test_pointz  s4    !QK66q95;;1$$$r6   c                 r    t        j                  t                     }t        |j                        dk(  sJ y r   )r)   r  r   r$  r  )r  r  s     r4   test_empty_polyz4TestConstrainedDelaunayTriangulation.test_empty_poly  s+    66wyA5;;1$$$r6   N)__name__
__module____qualname____doc__r  r  r  r  rM   r6   r4   r  r  ^  s    *
*%
%r6   r  c                  &   t        g d      } t        j                  | d      }|j                  d   j	                  t        g d            sJ t        j                  | d      }|j                  d   j	                  t        g d            sJ y )N)rk  rF   )rk  r   )rF   r   rj  Forderedr   )rJ  rJ  )rJ  r]  r   r]  r   rJ  r  T)r   rJ  r  r  )r   r]  r  )r	   r)   rB   r  equalsr   )r  r   result_ordereds      r4   test_voronoi_polygons_orderedr    s    	D	EB%%b%8F<<?!!BC   --b$?N"))?@  r6   c                      t        g d      } t        j                  t        d      5  t	        j
                  | d       d d d        y # 1 sw Y   y xY w)Nr  z%Ordered Voronoi polygons require GEOSr:   Tr  )r	   r.   rA   r   r)   rB   )r  s    r4   #test_voronoi_polygons_ordered_raiser    sF    	D	EB	#+R
 3 	  T23 3 3s   A

Ac                    t        j                  |       dvr:t        j                  t        d      5  t        j
                  |        d d d        y | j                  r:t        j                  t        d      5  t        j
                  |        d d d        y t        j
                  | | g      }|j                  dk(  sJ |d   t        |d   t              sJ t        j
                  d       }|J y # 1 sw Y   y xY w# 1 sw Y   y xY w)N)r   r   zxArgument must be Polygonal or LinearRing|must be a Polygon or MultiPolygon|Operation not supported by GeometryCollectionr:   *Empty input(?: geometry)? is not supportedr'   r   )
r)   r@   r.   rA   r   maximum_inscribed_circler(   r0   r1   r   rh   s     r4   'test_maximum_inscribed_circle_all_typesr    s    8$F2]]@
 	7 ,,X6	7 	]]!M
 	7 ,,X6	7 	--x.BCF<<4!9
6!9h ???--d3F>>/	7 		7 	s   C49D 4C= D	)%POLYGON ((0 5, 5 10, 10 5, 5 0, 0 5))zLINESTRING (5 5, 2.5 7.5)c                     t        j                  |       t        j                  |      }} t        j                  |       }t        ||       y rL   )r)   from_wktr  r   re  s      r4   test_maximum_inscribed_circler    s=     !))(3W5E5Eh5OhH--h7FFH-r6   c                  l   t        j                  d      } t        j                  t        d      5  t        j
                  |        d d d        t        j                  d      } t        j                  t        d      5  t        j
                  |        d d d        y # 1 sw Y   XxY w# 1 sw Y   y xY w)NzPOINT EMPTYzJArgument must be Polygonal or LinearRing|must be a Polygon or MultiPolygonr:   zPOLYGON EMPTYr  )r)   r  r.   rA   r   r  r$   s    r4   #test_maximum_inscribed_circle_emptyr    s    .H	0
 3 	((23 0H	I
 3 	((23 33 33 3s   B?B*B'*B3c                      t        j                  d      } t        j                  t        d      5  t        j
                  | d       d d d        y # 1 sw Y   y xY w)Nr  z'tolerance' should be positiver:   rJ  rG   )r)   r  r.   rA   r[   r  r  s    r4   /test_maximum_inscribed_circle_invalid_tolerancer    sK     GHH	z)I	J A((R@A A As   AAc                     t        j                  | | g      }|j                  dk(  sJ t        |d   t              sJ t        j                  d       }|J y ra  )r)   orient_polygonsr0   r1   r   rh   s     r4   test_orient_polygons_all_typesr    sW    $$h%9:F<<4fQi***$$T*F>>r6   c                     t        g dg dg      } t        j                  |       }|j                  j                  sJ |j
                  d   j                  rJ t        j                  | d      }|j                  j                  rJ |j
                  d   j                  sJ t        | | g      }t        j                  |      }t        |j                        dk(  sJ |j                  D ]5  }|j                  j                  sJ |j
                  d   j                  s5J  t        j                  |gd      d   }t        |j                        dk(  sJ |j                  D ]5  }|j                  j                  rJ |j
                  d   j                  r5J  t        t        dd      | |g      }t        j                  |      }t        |j                        d	k(  sJ |j                  d   t        dd      k(  sJ |j                  d   t        j                  |       k(  sJ |j                  d   t        j                  |      k(  sJ y )
Nr   r   rs   r   T)exterior_cwr   r9   r   )r   r)   r  r~  is_ccwr  r
   r$  r  r   r   )polygonr   r  rw   gcs        r4   test_orient_polygonsr    s   478G
 $$W-F??!!!!"))))$$W$?F%%%%A%%%% 
w(	)B$$R(Fv||!!! ,}}####>>!$++++, $$bTt<Q?Fv||!!! (==''''~~a ''''(
 
U1a['26	7B$$R(Fv||!!!<<?eAqk)))<<?g55g>>>><<?g55b9999r6   c                      t        j                  t        dd      t        ddg      d g      } t	        j
                  |       }t        ||        y )Nr   ro   rq   )rg   r   r   r   r)   r  r   )r  r   s     r4   (test_orient_polygons_non_polygonal_inputr    sA    
((E!QKVV,<!=tD
EC$$S)FFC(r6   c                  :   t        g dg dg      } t        j                  | gdz  gdz        }t        j                  |      }t        |t        j                        sJ |j                  dk(  sJ t        j                  |       }||k(  j                         sJ y )Nr   r   rs   r   r   r   )	r   rg   r   r)   r  r1   r  r0   r   r  ry  r3   rx   s       r4   test_orient_polygons_arrayr    s     478G G9q=/A-.J$$Z0Ffbjj)))<<6!!!&&w/Hh##%%%r6   c                  *   t        g dg dg      } | t        dd      j                  d      g}t        j                  t        |            }t        |t
              sJ t        j                  |      }t        t        j                  |      |       y )Nr   r   rs   r   r9   )
r   r   r\   r)   r  r   r1   r   rg   rx  r  s       r4   test_orient_polygons_array_liker  %  s|     478G 5A;--a01J$$Yz%:;Ffi(((&&z2HBJJv.9r6   c            
         t        j                  d      5  t        j                  t        dd       d d d        t        j                  d      5  t        j                  t        ddd       d d d        t        j                  d      5  t        j                  t        dddd       d d d        t        j                         5  t        j                  t        ddddd       d d d        t        j                         5  t        j                  t        dddddd	       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   y xY w)
Nz:positional argument `quad_segs` for `buffer` is deprecatedr:   rF   r   zLpositional arguments `quad_segs` and `cap_style` for `buffer` are deprecatedr   z[positional arguments `quad_segs`, `cap_style`, and `join_style` for `buffer` are deprecatedr   F)r.   deprecated_callr)   r\   r   rM   r6   r4    test_buffer_deprecate_positionalr  3  s4   			J
 & 	uc1%& 
		&
 / 	uc1g.	/
 
		&
 8 	uc1gw7	8
 
			! =uc1gw<=				! Duc1gwUCD D!& &/ /
8 8
= =D Ds;   D*D6EE E*D36D?EEE#c                     t        j                  d      5  t        j                  t        dd       d d d        t        j                  d      5  t        j                  t        ddd       d d d        t        j                  d      5  t        j                  t        dddd       d d d        y # 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   y xY w)	Nz@positional argument `quad_segs` for `offset_curve` is deprecatedr:   rF   r   zSpositional arguments `quad_segs` and `join_style` for `offset_curve` are deprecatedr   zcpositional arguments `quad_segs`, `join_style`, and `mitre_limit` for `offset_curve` are deprecatedr   )r.   r  r)   r?   r   rM   r6   r4   &test_offset_curve_deprecate_positionalr  H  s    			P
 2 	[#q12 
		,
 ; 	[#q':	;
 
		,
 @ 	[#q'3?	@ @2 2; ;
@ @#   B3B?C3B<?CCc                      t        j                  d      5  t        j                  t        dd       d d d        y # 1 sw Y   y xY w)NzDpositional argument `preserve_topology` for `simplify` is deprecatedr:   rF   T)r.   r  r)   simplifyr   rM   r6   r4   "test_simplify_deprecate_positionalr  Y  s<    			T
 1 	c401 1 1s	   <Ac                     t        j                  d      5  t        j                  t        dd        d d d        t        j                  d      5  t        j                  t        dd d       d d d        t        j                  d      5  t        j                  t        dd dd       d d d        y # 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   y xY w)NzDpositional argument `extend_to` for `voronoi_polygons` is deprecatedr:   r<   zWpositional arguments `extend_to` and `only_edges` for `voronoi_polygons` are deprecatedFzcpositional arguments `extend_to`, `only_edges`, and `ordered` for `voronoi_polygons` are deprecated)r.   r  r)   rB   r   rM   r6   r4   *test_voronoi_polygons_deprecate_positionalr  `  s    			T
 9 	  c489 
		0
 @ 	  c4?	@
 
		0
 G 	  c4F	G G9 9@ @
G Gr  )numpyrg   r.   r)   r   r   r   r   r   r   r	   r
   r   r   r   shapely.errorsr   shapely.testingr   shapely.tests.commonr   r   r   r   r   r   r   r   r   r   r   r,   r-   r   boundarycentroidconvex_hullparamr  markskipifenvelopeextract_unique_pointsminimum_clearance_liner+   r   point_on_surfacer  CONSTRUCTIVE_NO_ARGSr\   r?   delaunay_trianglesr  rB   CONSTRUCTIVE_FLOAT_ARGparametrizer5   rC   rJ   rO   rQ   rU   r]   rb   re   ri   rm   ry   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  r
  r  r  r  r*  rA  rE  rH  rO  rQ  rU  rW  rY  r_  rc  rf  ri  rh  minimum_rotated_rectanglerp  rv  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rM   r6   r4   <module>r     s*         7 3    
a	f	$
q
w
&
q
w
& FLLkk    :-m ! 
 !!""LLFLL..kk    :-m ! 
! 2 NN  Y/!56@ 7 0@  Y/!78+ 9 0+* Y/i0+ 1 0+ !56 7
 !78 9
 Y/!78 9 0
6
7

 Y/ 0

 		e DE<= 878	
 

5'#,-,
 	 <=-/?@A	
 <=<=<=	
 

5'%.1/.1 	I 89@A
 89 @A @A	
 u	tU34%.L/.L G((:5mL	 <=?@	
 <=<=<=	
 

5'%.1/ M01 G((:5mL	 <=I	
 <=<=<=	
 

5'%.1/ M01 G((J6~N< O< G((:5mL/ BHHj+.//		
 5M7		
 
D*&?@K		
0V1 M2V
 	 -/?@A-/?@A	



$@TE
 G((:5mL	,	-z66:J/KL?@78	

 DE<=	

 <GH <?@		
 LMLM DEDE	
 
	'	k"	k"	-.		&U+.^O_. M`O G((:5mL!IJANO8 M8 G((:5mL1 M1 G((:5mL*-BF,KL8 M M8
 	VV$	%z662B'CD7878	

 <=<=	

 <?@ <?@		
 ff-/?@Aff-/?@A	

 DEDE DEDE	
 
	'	k"	k"	-.		&]/2f=g2f=1 "2A!67 8
  
q!(*+	r2b"&	r2*,-	VW%	&(:(<=	Xx(	):x6J+KL	2	35G5IJ	Wh'	(*h5I*JK&.'&.
  <IJ  	
 <IJ  	
 <IJ <IJ
	
 <IJ TU	
A(+X.Y+X.
 Y/@ 0@&
 %):M!JK* L*T,B
 *+B(/V4@ G((:5mLY/-Aw7L 8 0 ML
 G((:5mLY/ 0 M
 G((:5mL%6F. M.
 G((:5mLeWk%BC. D M.
 G((:5mLB MB G((:5mL" ()()	
 @A@A	
 ()01	
 @A
	
( FG,-FF+, 45FF+,
	
 FG,-FF+, C45FF+,
	
 FG,-FF+, H4534
	
uEHR.SH MT.
 Y/ 0  >?GNN5A;*	

 ()GNN5A;*	

 '(GNN5A;*	

 !QK!QK	

  I	
#2.32.
 Y/ 0 
W&&(I(IJ  STPQ	

 12@A	

 56ST	

 ()()	

 !QK!QK	

  I	
+:N;@N
 G((J6~N STRS	

 12@A	

 56RS	

 ()()	

 !QK!QK	

  I	
+:N; O<N: G((:5mLW MW G((:5mL"% "% M"%J G((:5mL
 M
 G((J6~N3 O3 Y/ 0: 	
..3$A Y/ 0#:L)&:D*@"1Gr6   