
    Og                     (    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 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j8                  ej:                  ej<                   ej>                  ej@                  ejB                  jE                  ejF                  dk  d            ejH                  ejJ                  ejL                  ejN                  ejP                  f	Z)ejT                  ejV                  ejX                  ejZ                  ej\                  fZ/ejB                  ja                  d	e      ejB                  ja                  d
e)      d               Z1ejB                  ja                  d	e      ejB                  ja                  d
e/      d               Z2ejB                  ja                  d	e      ejB                  ja                  de      d               Z3ejB                  ja                  d
e)      d        Z4ejB                  ja                  d
e/      d        Z5ejB                  ja                  d	e      ejB                  ja                  d
e/      d               Z6d Z7d Z8d Z9ejB                  ja                  d	e      d        Z:ejB                  jE                  ejF                  dk  d      d        Z;ejB                  jE                  ejF                  dk  d      ejB                  ja                  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               Z<ejB                  jE                  ejF                  dk  d      d        Z=ejB                  jE                  ejF                  dk  d      ejB                  ja                  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%               Z>ejB                  jE                  ejF                  dk  d      ejB                  ja                  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(               Z?ejB                  ja                  deef e	d)d g       e	d d!g      fg      d*        Z@d+ ZAd, ZBd- ZCd. ZDd/ ZEejB                  jE                  ejF                  dk  d      ejB                  ja                  d eg d0       ed1d2g      f eg d3       eg d4      f eg d5       eg d6      f eg d7g d8g       eg d7g d9g      f e eg d:       eg d;      g       e eg d<       eg d=      g      feefeefeefeefeefeefeefg      d>               ZFejB                  jE                  ejF                  d?k  d@      ejB                  ja                  dA eg d<      dBgg      dC               ZGejB                  jE                  ejF                  dk  d      dD        ZHejB                  jE                  ejF                  dk  d      ejB                  ja                  dAdEdFg      dG               ZIejB                  jE                  ejF                  dHk  dI      ejB                  ja                  d ed1dJg       edJd1g      f eg d4       eg dK      f eg d<       eg dL      f eg d7g d9g       eg dMg dNg      f ej>                   e	d1dJgdOdPgg       e	dJd1gdPdOgg      ejB                  jE                  ejF                  dQk  dR             e eg d<       eg d=      g       e eg dL       eg dS      g      feefeefeefeefeefeefeefg      dT               ZJejB                  jE                  ejF                  dHk  dI      dU        ZKejB                  jE                  ejF                  dHk  dI      ejB                  ja                  dVdWdXg      dY               ZLejB                  ja                  d ed d        e       f edZdZ       edZdZ      f edZd[       e       f ed1d\g       e       f ed]d^g       ed]d^g      f eg d_       e       f ed`dag       edbdcg      fg      dd        ZMejB                  ja                  de edfdgg      dh e       f edfdig      dh e       f edjdgg      dk edjdgg      f eg dfg dgg      dl eg dm      fg      dn        ZNejB                  ja                  d	e      do        ZOdp ZPejB                  ja                  dVeeeg      dq        ZQdr ZRds ZSdt ZTejB                  jE                  ej                  duk  dv      dw        ZVdx ZWdy ZXdz ZYejB                  jE                  ej                  duk  dv      d{        ZZd| Z[ejB                  jE                  ejF                  d}k  d~      ejB                  ja                  d	e      ejB                  ja                  ddd g      d                      Z\ejB                  jE                  ejF                  d}k  d~      ejB                  ja                  d	e      d               Z]ejB                  jE                  ejF                  d}k  d~      ejB                  ja                  d	eeeeg      d               Z^ejB                  jE                  ejF                  d}k  d~      ejB                  ja                  d	eeeg      d               Z_ejB                  jE                  ejF                  d}k  d~      d        Z`ejB                  jE                  ejF                  d}k  d~      ejB                  ja                  d ed1dg      d ed1dg      f eg d7      d eg d7      f ed1dg      d eg d      f eg d7      d eg d      f ed1dg       ed1dg      gd eg d       ed1dg      gf ed1dg       ed1dg      gdg eg d       ed1dg      gf ed1dg       ed1dg      gddg eg d       eg d      gfg      d               ZaejB                  jE                  ejF                  dk  d      ejB                  ja                  d	e      d               ZbejB                  jE                  ejF                  dk  d      ejB                  ja                  d eg d       ejT                   edd      d      f ed2dg       ejT                   edXd      d      f e
ddg       ejT                   eddB      dX      f edBdB       edBdB      f e        e       fg      d               ZcejB                  jE                  ejF                  dk  d      ejB                  ja                  d	e      d               ZdejB                  ja                  d
ej                  ej                  g      ejB                  ja                  d e
g d       eg d      f eg d       eg d      f eg d       eg d      f edFdg       edFdg      f edBdB       edBdB      f e        e       fg      d               ZgejB                  jE                  ejF                  d?k\  xs ejF                  dk  d      ejB                  ja                  d e
g d       eg d      f eg d       eg d      f eg d       eg d      f edFdg       edFdg      f edBdB       edBdB      f e        e       fg      d               Zhd ZiejB                  jE                  ejF                  dk  d      d        Zjy)    N)
GeometryGeometryCollectionGEOSException
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygonassert_geometries_equal)	all_types	ArrayLikeemptyempty_line_stringempty_pointempty_polygonignore_invalidline_stringmulti_pointpointpoint_z      r   zGEOS < 3.11)reason)marksgeometryfuncc                 p     || | g      }|j                   dk(  sJ |d   t        |d   t              sJ y y N   r   )shape
isinstancer   r   r    actuals      d/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/shapely/tests/test_constructive.pytest_no_args_arrayr*   :   sH     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#   )shapelyoffset_curveget_type_idgeos_versionpytestraisesr   r   voronoi_polygonsr%   r&   r   r'   s      r)   test_float_arg_arrayr;   B   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   )r4   snapr%   r&   r   )r   r<   r(   s      r)   test_snap_arrayrB   Y   sG     \\8X.I0FRUVF<<4fQi***r+   c                      | d       }|J y N r    r(   s     r)   test_no_args_missingrG   a   s    $ZF>>r+   c                      | d d      }|J y )Nr>   rE   rF   s     r)   test_float_arg_missingrI   g   s    $_F>>r+   c                 0     || t        d            }|J y )Nnan)floatr'   s      r)   test_float_arg_nanrM   m   s     (E%L)F>>r+   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/   r.   invalid)	cap_styler8   r9   
ValueErrorr4   bufferr   rE   r+   r)   test_buffer_cap_style_invalidrU   t   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)NrO   r/   r.   rP   
join_stylerR   rE   r+   r)   test_buffer_join_style_invalidrZ   y   s6    	z)J	K 7uaI67 7 7rV   c                  D    t        j                  d t        d      } | J y )Nr>   r?   )r4   rA   r   r(   s    r)   test_snap_noner]   ~   s    \\$5F>>r+   c                 `    t        j                  | t        t        j                        }|J y )Nr?   )r4   rA   r   nprK   r   r(   s     r)   test_snap_nan_floatra      s"    \\(ERVV<F>>r+   r      r   z
GEOS < 3.8c                  6    t        j                  d       } | J y rD   r4   
build_arear\   s    r)   test_build_area_nonerg          %F>>r+   zgeom,expected)r   r   )r   r   r   r   )r   r   ri   )r.   r.   r$   r$   r-   rk   )holesc                 H    t        j                  |       }||usJ ||k(  sJ y rD   re   geomexpectedr(   s      r)   test_build_arearr      s0    0 %F!!!Xr+   c                  6    t        j                  d       } | J y rD   )r4   
make_validr\   s    r)   test_make_valid_noneru      rh   r+   )ri   rk   r-   rk   ri   )rk   r-   )ri   rk   )ri   rl   r$   r   r   r$   ri   )rk   rl   rv   rk   )ri   rw   rk   ri   c                 n    t        j                  |       }||usJ t        j                  |      |k(  sJ y rD   )r4   rt   	normalizero   s      r)   test_make_validrz      s;    2 %F!!!V$000r+   )ri   rl   rw   ri   )rk   ri   rw   rk   c                     t        j                  |       }t        j                  t        j                  |      t        j                  |      k(        sJ y rD   )r4   rt   r_   allry   ro   s      r)   test_make_valid_1dr}      sA    2 %F66'##F+w/@/@/JJKKKr+   )rk   ri   c                 <    t        j                  |       }||k(  sJ y rD   )r4   ry   ro   s      r)   test_normalizer      s"     t$FXr+   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)Nr2          @)r   r4   r7   r5   r   is_emptyr\   s    r)   test_offset_curve_emptyr      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   r.   r4   r5   r   results    r)    test_offset_curve_distance_arrayr     s[    !!;"<tTlKF!9,,[$????!9,,[$????r+   c                      t        j                  t        dddd      } t        j                  t        d      }| |k7  sJ y )Nr   r$   mitrer   )	quad_segsrY   mitre_limitr   )result1result2s     r)   test_offset_curve_kwargsr     s?    ""TQ7G "";5Ggr+   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/   r.   rc   	   )r   roundbevelrX         @      @)r   )r8   r9   	TypeErrorr4   r5   r   r_   arraymsgs    r)   #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)NrO   r/   r>   rP   rX   )r8   r9   rS   r4   r5   r   rE   r+   r)   $test_offset_curve_join_style_invalidr   %  s<    	z)J	K E[#)DE E ErV   )ri   ri   r.   r   ri   r   )ri   r-   r-   r.   r   ri   )ri   r-   r   ri   )ri   ri   r   rk   r   ri   )ri   r   rk   r   ri   )ri   
   r   r   r   r   r   ri   )rl   rl   r$      r   r   r   r$   rl   )rl   r   r   r   rl   )ri   ri   r   rk   r   r.   ri   )rl   rl   r$   r   rj   r   r$   rl   ri   r   rk   r   ri   )rl   r   rj   r   rl   c                 D    t        t        j                  | d      |       y )Nr   )r   r4   remove_repeated_pointsrp   rq   s     r)   test_remove_repeated_pointsr   *  s    b G::4CXNr+   r2   zGEOS < 3.12zgeom, tolerancer$   c                     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/   )r8   r9   r4   r   r   rp   r@   s     r)   *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 )Nr.   )ri   ri   rk   ri   rk   r   )r4   r   tolistr   r   r   rq   r   s      r)    test_remove_repeated_points_noner   i  s    ))$2:::))4&!4;;=$GGG23H66*+H++T8,<a@F!9F1Ix0r+   )Not a geometryr.   rk   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/   )r8   r9   r   r4   r   r   s     r)   (test_remove_repeated_points_invalid_typer   u  s8     
y(S	T 8&&tY78 8 8s	   <A)r      r   z
GEOS < 3.7r-   )ri   r   r-   ri   ri   r   rk   r   ri   )ri   r   r   r   ri   )rl   r   r   r   rl   rj   r   )r   rc   r.   zGEOS < 3.8.1)rl   r   rj   r   rl   c                 B    t        t        j                  |       |       y rD   )r   r4   reverser   s     r)   test_reverser   |  s    p GOOD18<r+   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   r.   )r4   r   r   r   r   r   s      r)   test_reverse_noner     s    ??4 (((??D6"))+v555?@H?@H__dH-.F!9F1Ix0r+   rp   r   r.   c                     t        j                  t        d      5  t        j                  |        d d d        y # 1 sw Y   y xY wr   )r8   r9   r   r4   r   )rp   s    r)   test_reverse_invalid_typer     s4     
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   r4   clip_by_rectr   ro   s      r)   test_clip_by_rectr     s&    ( !!$BB7FFH-r+   zgeom, rect, expected)ri   )r      r   r   )r   r   ri   )r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   )rk   )r.   r   r   )r   r.   rk   )r   r   (   r   )r   r   r   r   )r   r   )r   r   r   r   r   )r   r   r   c                 H    t        j                  | g| }t        ||       y rD   r   )rp   rectrq   r(   s       r)   test_clip_by_rect_polygonr     s$    Z !!$..FFH-r+   c                     t        j                  | | gdddd      }|j                  dk(  sJ |d   t        |d   t              sJ y y )Nr1   r>   r#   r   )r4   r   r%   r&   r   r`   s     r)   test_clip_by_rect_arrayr     sT    !!8X"6S#sKF<<4!9
6!9h ??? ?r+   c                  >    t        j                  d dddd      } | J y Nr   r.   )r4   r   r\   s    r)   test_clip_by_rect_missingr     s$    !!$1a3F>>r+   c                 T    t        j                  | dddd      }|t               k(  sJ y r   )r4   r   r   )rp   r(   s     r)   test_clip_by_rect_emptyr     s.     !!$1a3F'))))r+   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   r.   )r8   r9   r   r4   r   r   r_   r   r   s    r)   #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 )Nri   rk   r   r   r      r   r   r   ri   rk   r   ri   rk   ri   r   rk   )r   r   r4   
polygonizer6   r   r   )linesr   rq   s      r)   test_polygonizer   ,  s    FF#$FF#$FF#$FF#$FF#$FF#$a	E &Fv&!+++!4545	
H Xr+   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 )Nri   rk   r   r   r.   r   r   r#   r.   r   r$   r   r   )r   r   r   r4   r   r_   r   r&   r   ndarrayr%   flattenr   rq   r   arrress        r)   test_polygonize_arrayr   B  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r+   z1.15z8axis keyword for generalized ufunc introduced in np 1.15c                     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 )	Nri   rk   r   r.   axisr#   r   r   )r   r_   r   r4   r   r%   r   r   r   s      r)   test_polygonize_array_axisr   c  s     	FF#$FF#$FF#$E
 ((E5>
"C!,F<<4!,F<<4r+   c                  P    t        j                  d d g      } | t               k(  sJ y rD   )r4   r   r   r   s    r)   test_polygonize_missingr   t  s(    t-F'))))r+   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 )Nri   rk   r   r   r   r   )d   r   r   r   c              3   L   K   | ]  }t        j                  |      d k(    yw)r   N)r4   r6   .0rp   s     r)   	<genexpr>z'test_polygonize_full.<locals>.<genexpr>  s      A$w""4(A-As   "$r   r   )r   r   r4   polygonize_fulllenr|   r   r   )r   r   polygonscutsdanglesrP   expected_polygonsexpected_dangless           r)   test_polygonize_fullr  z  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 &&&&(****r+   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 )Nri   rk   r   r   r   c              3   P   K   | ]  }t        |t        j                           y wrD   )r&   r4   r   r  s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>  s     Edz$ 0 01E   $&r   c              3   6   K   | ]  }|t               k(    y wrD   r   r  s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>  s     Ct)++C   r.   c              3   P   K   | ]  }t        |t        j                           y wrD   r&   r_   r   r  s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>  s     ?z$

+?r  c              3   :   K   | ]  }|j                   d k(    yw)r   Nr%   r  s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>  s     5dtzzT!5   c              3   <   K   | ]  }|d    t               k(    yw)r   Nr  r  s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>  s     F4tAw,..Fs   r   c              3   P   K   | ]  }t        |t        j                           y wrD   r  r  r   s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>       =sz#rzz*=r  c              3   :   K   | ]  }|j                   d k(    ywr#   Nr  r  s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>       3SsyyD 3r  c              3   D   K   | ]  }|D ]  }|t               k(     y wrD   r  )r  rp   gs      r)   r  z-test_polygonize_full_array.<locals>.<genexpr>  s&     NTNAq&((N(Ns    r   c              3   P   K   | ]  }t        |t        j                           y wrD   r  r  s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>  r  r  c              3   :   K   | ]  }|j                   d k(    yw)r   Nr  r  s     r)   r  z-test_polygonize_full_array.<locals>.<genexpr>  s     5ssyyF"5r  )r   r   r   r4   r  r_   r   r  r|   r%   r   r   s        r)   test_polygonize_full_arrayr"    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,....	//r+   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 )
Nri   rk   r   r.   r   r   c              3   :   K   | ]  }|j                   d k(    ywr  r  r  s     r)   r  z2test_polygonize_full_array_axis.<locals>.<genexpr>  r  r  r   c              3   :   K   | ]  }|j                   d k(    yw)r   Nr  r  s     r)   r  z2test_polygonize_full_array_axis.<locals>.<genexpr>  r  r  )r   r_   r   r4   r  r  r|   r   s      r)   test_polygonize_full_array_axisr&    s     	FF#$FF#$FF#$E
 ((E5>
"C$$Sq1Fv;!3F3333$$Sq1Fv;!3F3333r+   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rD   r  r  s     r)   r  z/test_polygonize_full_missing.<locals>.<genexpr>  s     ?t)++?r  )r4   r  r  r|   r   s    r)   test_polygonize_full_missingr)    s<    $$dD\2Fv;!?????r+   )r   r   r   zGEOS < 3.10max_segment_lengthc                     t        j                  t        d      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)NIllegalArgumentExceptionr/   r*  )r8   r9   r   r4   
segmentize)r   r*  s     r)   *test_segmentize_invalid_max_segment_lengthr0    s=     
},F	G L88JKL L Ls	   =Ac                 V    t        j                  | t        j                        }|J y )Nr.  )r4   r/  r_   rK   r`   s     r)   &test_segmentize_max_segment_length_nanr2    s$     RVVDF>>r+   c                 J    t        j                  | d      }t        ||        y Nr   r.  r4   r/  r   r`   s     r)   test_segmentize_emptyr6    s     
 Q?FFH-r+   c                 J    t        j                  | d      }t        ||        y r4  r5  r`   s     r)   test_segmentize_no_changer8    s      Q?FFH-r+   c                  6    t        j                  d d      J y r4  )r4   r/  rE   r+   r)   test_segmentize_noner:    s    dq9AAAr+   zgeometry,tolerance, expectedr   r   r   )ri   r   r   r   )	ri   r   r   r   r   r   r   r   r   r;  ri   rw         ?)ri   r   rw   c                 H    t        j                  | |      }t        ||       y rD   r5  )r   r@   rq   r(   s       r)   test_segmentizer@    s!    V )4FFH-r+   c                     t        j                  | | g      }|j                  dk(  sJ |d   t        |d   t              sJ t        j                  d       }|J y r"   )r4   minimum_bounding_circler%   r&   r   r`   s     r)   &test_minimum_bounding_circle_all_typesrC  S  sb     ,,h-ABF<<4!9
6!9h ???,,T2F>>r+   zgeometry, expected)r;  r=  r   r<  r;  )r.   r   rl   r   r   c                 F    t        j                  |       }t        ||       y rD   )r4   rB  r   r   rq   r(   s      r)   test_minimum_bounding_circlerF  ^  s    6 ,,X6FFH-r+   )r   r   r   z
GEOS < 3.6c                     t        j                  | | g      }|j                  dk(  sJ |d   t        |d   t              sJ t        j                  d       }|J y r"   )r4   oriented_enveloper%   r&   r   r`   s     r)    test_oriented_envelope_all_typesrI  }  sb     &&(';<F<<4!9
6!9h ???&&t,F>>r+   )r>   r>   )r>   r   )g      @r   )g      @r   )r   r   )rJ  )r>   r   )r   r   )r   r>   rJ  )rk   )r   r.   r   )rk   )r   r+  )r3   rc   r   rk   )rk   )r   r.   )r   r   rk   )rJ  )r         "@)g3333330@333333@)gffffff(@gffffffrJ  )r   r.   c                 2     ||       }t        ||dd       y )NTMbP?ry   r@   r   )r   rq   r    r(   s       r)   test_oriented_enveloperP    s    B (^FFHMr+   zGEOS >= 3.12)gɿgffffff?)r>  g      @)gffffff@g333333@)rL  g?rQ  )rJ  )r>   rK  )      .@rK  )rR  r>   rJ  c                     t         j                  j                  |       }t         j                  dk  r't        j                  ||      j                         sJ y t        ||dd       y )Nrb   TrN  rO  )r4   constructive_oriented_envelope_geosr7   equalsr|   r   rE  s      r)   #test_oriented_envelope_pre_geos_312rW    sT    H !!99(CFi'~~fh/33555DDQr+   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 )Nr.   r$   )	r   rT   r4   rH  r   r&   r   r_   asarray)
geometriesr(   rq   s      r)    test_oriented_evelope_array_liker[    sx     1+$$Q'q!););A)>?J&&y'<=Ffi(((((4HBJJv.9r+   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_holesr.   )
r   r	   rT   exteriorcoordsr4   concave_hullr  	interiorsget_num_coordinates)pmpr   r   result3result4s         r)   test_concave_hull_kwargsrh    s    b"A	AHHQK((//2QXXa[5I5I5P5PQR5SS	TB""2S1Gw  !Q&&&""2SdCGw  !Q&&&""2Q/G""2Q/G&&w/'2M2Mg2VVVVr+   )knumpyr_   r8   r4   r   r   r   r   r   r   r	   r
   r   r   shapely.testingr   shapely.tests.commonr   r   r   r   r   r   r   r   r   r   r   boundarycentroidconvex_hullparamra  markskipifr7   envelopeextract_unique_pointsnodery   point_on_surfaceCONSTRUCTIVE_NO_ARGSrT   r5   delaunay_trianglessimplifyr:   CONSTRUCTIVE_FLOAT_ARGparametrizer*   r;   rB   rG   rI   rM   rU   rZ   r]   ra   rg   rr   ru   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __version__r   r   r  r"  r&  r)  r0  r2  r6  r8  r:  r@  rC  rF  rI  rH  minimum_rotated_rectanglerP  rW  r[  rh  rE   r+   r)   <module>r}     s        4    FLLkk    :-m ! 
 !!LL $ 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
 G((94\J K
 G((94\J		e DE<= 878	
 

5'#,- K. G((94\J K
 G((94\J	 <=-/?@A	
 <=<=<=	
 

5'%.1/ K01 G((94\J	I 89@A
 89 @A @A	
 u	tU34%.L/ K0L 	 -/?@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
 G((94\J	VV$	%z662B'CD7878	

 <=<=	

 <?@ <?@		
 	ff-/?@Aff-/?@A++$$$$y0 % 	
 DEDE DEDE	
 
	'	k"	k"	-.		&c25l=m5 Kn= G((94\J1 K1 G((94\J"2A!67 8 K
  
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 NNVE  
 	
 *+B(/V NNVE  4	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.
 G((94\JY/ 0 K G((94\J >?GNN5A;*	

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

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

 !QK!QK	

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

 12@A	

 56ST	

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

 !QK!QK	

  I	
+:N;@N
 J&J'*>*>*J    STRS	

 12@A	

 56RS	

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

 !QK!QK	

  I	
+:R;	BR: G((:5mLW MWr+   