
    jj r                       S SK r S SKrS SKJr  S SKrS SKJrJrJ	r	J
r
Jr  S SKrS SKJr  S SKJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJrJr  S S	KJrJ r J!r!  S S
K"J#r#  S SK$r$S SK%J&r&  S SK'J(r(J)r)J*r*  S SK+J,r,  S SK-J.r.J/r/J0r0   S SK1r1\" \1Rd                  5      \" S5      :  r3S r5 " S S5      r6g! \4 a    Sr3 Nf = f)    N)Version)	DataFrameIndex
MultiIndexSeriesconcat)wkt)
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygonbox)GeometryCollection)unary_union)GeoDataFrame	GeoSeries)GEOS_GE_312
HAS_PYPROJSHAPELY_GE_21)GeoPandasBase)assert_geodataframe_equal)assert_geoseries_equalgeom_almost_equalsgeom_equals)assert_array_equal)assert_frame_equalassert_index_equalassert_series_equalz2.5.3Fc                     [         R                  " U 5      n [         R                  " U5      nU R                  UR                  :X  d   e[        X/UQ70 UD6  g N)np
asanyarraydtyper   )abargskwargss       d/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/geopandas/tests/test_geom_methods.pyassert_array_dtype_equalr,   )   sF    
aA
aA77aggq-d-f-    c                   F   \ rS rSrS rS rSS jrS rS rS r	SS	 jr
\R                  R                  \(       + S
S9S 5       rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\R                  R                  \(       + S
S9S 5       rS rS r S r!S r"S  r#S! r$S" r%\R                  R                  \&RN                  S#:  S$S9S% 5       r(S& r)\R                  R                  \(       + S
S9S' 5       r*S( r+S) r,S* r-S+ r.S, r/S- r0S. r1S/ r2\R                  R                  \(       + S
S9S0 5       r3S1 r4\R                  R                  \&RN                  S#:  S2S9S3 5       r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?\R                  R                  \@=(       a    \A(       + S>S9S? 5       rB\R                  R                  \@=(       a    \A(       + S>S9S@ 5       rCSA rDSB rESC rFSD rGSE rHSF rI\R                  R                  \A(       + SGS9\R                  R                  \&RN                  SH:  SIS9SJ 5       5       rJSK rK\R                  R                  \A(       + SGS9SL 5       rLSM rMSN rNSO rO\R                  R                  \(       + S
S9SP 5       rPSQ rQ\R                  R                  \A(       + SRS9SS 5       rRST rS\R                  R                  SUSVSW\U" SXSY/SYSZ//5      4S[SW\V" / S\Q5      4S[S\W" 5       4/5      \R                  R                  \A(       + SRS9S] 5       5       rX\R                  R                  \AS^S9S_ 5       rYS` rZ\R                  R                  \&RN                  S#:  S$S9Sa 5       r[Sb r\Sc r]\R                  R                  \&RN                  Sd:  SeS9Sf 5       r^\R                  R                  \&RN                  Sd:  SeS9\R                  R                  Sg/ ShQSi4/ SjQSk4/5      Sl 5       5       r_Sm r`\R                  R                  \A(       + SGS9Sn 5       raSo rbSp rcSq rdSr reSs rfSt rgSu rhSv riSw rjSx rkSy rlSz rm\R                  R                  \(       + S
S9S{ 5       rnS| roS} rpS~ rqS rrS rsS rtS ruS rvS rwS rxS ryS rzS r{\R                  R                  \(       + S
S9S 5       r|S r}S r~\R                  R                  \@=(       a    \A(       + S>S9S 5       rS rS rS rS r\R                  R                  \A(       + SGS9S 5       rS rS r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      S 5       rS rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       rS rS rS rS r\R                  R                  SSS/5      S 5       rS rS rS r\R                  R                  \A(       + SGS9S 5       rS rS rS rS r\R                  R                  \A(       + SGS9S 5       r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  SSS\GR@                  GRC                  SS9/5      \R                  R                  S/ SQ5      \R                  R                  SSS/5      \R                  R                  \(       + SS9S 5       5       5       5       r\R                  R                  SSS\GR@                  GRC                  SS9/5      \R                  R                  SSS/5      \R                  R                  \(       + SS9S 5       5       5       rS rS rS rS rS r\R                  R                  \&RN                  Sd:  SeS9\R                  R                  S\" \" / SQ5      5      \" \" / SQ5      5      4\" \W" / SQ5      5      \" \W" / SQ5      5      4/5      S 5       5       rS rS rS rS rS rS r\R                  R                  \&RN                  Sd:  SeS9S 5       r\R                  R                  \&RN                  Sd:  SS9S 5       r\R                  R                  \&RN                  S:  SS9S 5       rS rS rSrg)TestGeomMethods0   c                    [        / SQ5      U l        [        / SQ5      U l        [        / SQ5      U l        [        / SQ5      U l        [        / SQ5      U l        [        / SQ5      U l        [        / SQ5      U l        [        / SQ5      U l        [        / S	Q5      U l	        [        / S
Q5      U l
        [        / SQ5      U l        [        U R                  R                  U R                  R                  /5      U l        [        SS5      U l        [        SSS5      U l        [#        U R                  U R                  U R                  U R                  U R                  U R                  S /5      U l        [#        U R                  U R                  /5      U l        [#        U R                  U R                  /5      U l        [#        U R                  U R                  /5      U l        [#        U R                  U R                  U R
                  /5      U l        SU R*                  l        [#        U R                  U R                  /5      U l        SU R0                  l        [#        U R                  U R                   /5      U l        [#        U R                  U R                  [        5       /5      U l        [#        U R                  S /5      U l        U R&                  R9                  5       U l        SS/U R:                  l        U R(                  R9                  5       U l        SS/U R>                  l        [        SSS5      U l         [        SSS5      U l!        [#        U R@                  U RB                  /SS9U l"        [        SS5      U l#        [#        U R@                  U RB                  U RF                  /SS9U l$        [J        RL                  " S5      U l'        [#        U R@                  U RB                  U RF                  U RN                  /SS9U l(        [S        / SQ5      U l*        [S        / SQ5      U l+        [#        U RT                  U RV                  /5      U l,        [#        U R                  U R                  /5      U l-        [#        U R                  U R                  /5      U l.        [#        U R                  U R                  /5      U l/        [#        / 5      U l0        [#        S S /5      U l1        [#        [e        / 5      [e        / 5      /5      U l3        [        5       U l4        [#        U R$                  [k        SS5      S9U l6        [#        U R                  U R                  /5      U l7        [S        SS/5      U l8        [S        S S!/5      U l9        [#        U Rp                  U Rr                  /5      U l:        [w        U R&                  S"S#/S$S%/S&.5      U l<        [w        U R&                  S'S/S(S)/S*.5      U l=        [w        U R*                  S'S/S(S)/S*.5      U l>        [w        U R,                  / S+Q/ S,QS*.5      U l?        [#        U R                  U R                   U RN                  U R                  U R                  U Rh                  U RT                  /5      U l@        [        R                  " S-S-/S-S-/S.S./S"S./S"S"/S.S./S"S"/S#S#/S/S//S"S"/S.S./S.S"/S"S"//5      U lC        [        R                  " S-S-[        R                  // S0QS.S.[        R                  /S"S.[        R                  /S"S"[        R                  /S.S.[        R                  // S1Q/ S2Q/ S3Q/ S1QS.S.[        R                  /S.S"[        R                  /S"S"[        R                  //5      U lE        [#        [k        S45       Vs/ s H  oR                  PM     sn5      U lF        [S        / S5Q5      U lG        [S        / S6Q5      U lH        [#        U R                  /5      U lI        [#        U R                  /5      U lJ        [#        [S        SS/5      [S        SS /5      [S        S S/5      [S        SS!/5      [S        S!S/5      [S        S7S8/5      [S        S9S:/5      [        S;S;5      /S[k        S<S=5      S>9U lK        [S        / S5Q5      U lG        [S        / S6Q5      U lH        [#        U R                  /5      U lI        [#        U R                  /5      U lJ        [#        [        S?S@/S@SA//5      [        S?S@/SBSA//5      [        5       [        SS!/SSC//5      [        S;S;5      /S[k        S<SD5      S>9U lM        g s  snf )EN)r   r      r   r4   r4   r2   r5   r   r4      r      r   r<   r4   )r4   r4   r4   r:   r:   r:   r<   r<   r<   )r?   r>   r@   r2   r3   r5   r7   )r>   r?   r@      rC   rC   )r2   r;   r<   r<   r   r:   )r9   r;   rD   r:   r<   )r9   r9   r;   r;   ))      ?rG   )      ?rG   )rH   rH   )rG   rH      z	epsg:4326ABC&SR):_D@S>@YڂR ~:XD@.n<?@crs  zPOINT EMPTYr2   r7   r5   r4      indexr2   r5   r7   r3         ?       @geopandas)geometrycol0col1rC   randstring)r^   col3col4)rC   rI      )ra   rb   r\         @              @)rf   rf   rf   )rZ   rZ   rZ   )r[   r[   r[   )rh   rh   rh   r<   ))d   r   r2   )r   ri   )rI   rI   )rI   ri   )ri   rI   rj   )re   re         ?)rl   r:   r   r:   
   rT   rY   rE   r   rn   rI   rn   r      r;      )Nr   t1t2t3tztz1sqsqzt4t5t6inner_sqboundarynested_squaresr   p0p3dr   g0g1g2g3gzrT   g4g_3dnana_nonecopya1rY   a2esbsol	landmarkspt2dlandmarks_mixedr	   loadspt_emptylandmarks_mixed_emptyr   l1l2g5g6g7g8emptyall_noner   all_geometry_collection_empty
empty_polyrangeg9g10l3l4crossed_linesr   gdf1gdf2gdf3gdfzg11r$   arrayexpected_2dnanexpected_3dsquaresl5l6g12g13linesr   g14self_s     r+   setup_methodTestGeomMethods.setup_method1   s   232323;<<=:;GH:;:;:;D
 &dgg&6&69O9O8PQ1+Aq>##

 TWWdgg./TWWdgg./TWWdgg./TWWdhh9:!TWWdgg./!tww12	TWWdggwy9: $''41'',,.c
'',,.c
7G47G4"DHHdhh#7[I(G,	($((DHHdii)HdS		-0%.XXtxxDMM:&
" 56=>TWWdgg./TWWdgg./TWWdgg./TWWdgg./r]
!4,/-6#%7%;<.
* ")DGG5A;7dggtww/0 ff-.ff-.&'9: !3*uh>OP
	 !1a&68:LM
	 !1a&68:LM
	 !)=VW
	 

 88c
c
c
c
c
c
c
c
c
c
c
c
c

" 88c266"c266"c266"c266"c266"c266"c266"c266"
" !58!<8a''8!<=9:9:dggY'dggY'FF+,FF+,FF+,FF+,FF+,FF+,Ix01a	 2,

 9:9:dggY'dggY'&'!2Wg4F GH&'!2Wg4F GH!&&!1FF3C DEa 1+

3 "=s   .ec                 4    [         nU R                  XX45        g)z,Tests for 'area', 'length', 'is_valid', etc.N)r!   _test_unary)r   opexpectedr'   fcmps        r+   _test_unary_real TestGeomMethods._test_unary_real   s    "q/r-   Fc                 d    [        U[        5      (       a  [        nOS nU R                  XX5US9  g )Nc                 4    U R                  U5      (       d   eg r#   )equalsr'   r(   s     r+   r   5TestGeomMethods._test_unary_topological.<locals>.fcmp   s    xx{{"{r-   method)
isinstancer   r   r   )r   r   r   r'   r   r   s         r+   _test_unary_topological'TestGeomMethods._test_unary_topological   s0    h..)D# 	qv>r-   c           	          [        U[        5      (       a  [        nOS n[        U[        5      (       a  SnOSnU R                  " XX4USU/UQ70 UD6  g)z?Tests for 'intersection', 'union', 'symmetric_difference', etc.c                 (    [        X5      (       d   eg r#   )r   r   s     r+   r   6TestGeomMethods._test_binary_topological.<locals>.fcmp   s    "1((((r-   TFN)r   r   r   _binary_op_test)	r   r   r   r'   r(   r)   r*   r   right_dfs	            r+   _test_binary_topological(TestGeomMethods._test_binary_topological   sS    h..)D) a''HHR1tXWWPVWr-   c           	      D    [         nU R                  " XX4USS/UQ70 UD6  g )NTF)r!   r   )r   r   r   r'   r(   r)   r*   r   s           r+   _test_binary_real!TestGeomMethods._test_binary_real   s'    "R1tUTTTVTr-   c                 B   S n
[        X15      " U/UQ70 U	D6nU" X5        U(       a%  U
" U5      n[        X5      " U/UQ70 U	D6nU" X5        U(       aL  U
" U5      n[        X15      " U/UQ70 U	D6nU" X5        U(       a  [        WU5      " U/UQ70 U	D6nU" X5        ggg)a  
This is a helper to call a function on GeoSeries and GeoDataFrame
arguments. For example, 'intersection' is a member of both GeoSeries
and GeoDataFrame and can take either GeoSeries or GeoDataFrame inputs.
This function has the ability to test all four combinations of input
types.

Parameters
----------

expected : str
    The operation to be tested. e.g., 'intersection'
left: GeoSeries
right: GeoSeries
fcmp: function
    Called with the result of the operation and expected. It should
    assert if the result is incorrect
left_df: bool
    If the left input should also be called with a GeoDataFrame
right_df: bool
    Indicates whether the right input should be called with a
    GeoDataFrame

c                     [        U 5      n[        R                  S U n[        U5      n[	        U R
                  X#S.U R                  U R                  S9$ )N)r^   r`   col2rY   rT   )lenrb   ascii_lowercaser   r   valuesrY   rT   )snr`   r   s       r+   	_make_gdf2TestGeomMethods._binary_op_test.<locals>._make_gdf  sM    AA))"1-D8DXXtBggEE r-   N)getattr)r   r   r   leftrightr   left_dfr   r)   r*   r   resultgdf_left	gdf_rights                 r+   r   TestGeomMethods._binary_op_test   s    8		 "5:4:6:V HX*5B4B6BF"!%(IT&yB4B6BF" 2.yJ4J6JV&  r-   c                     U(       a  [        X15      " 5       nO[        X15      nU" Xb5        U R                  R                  U5      nU(       a  [        Xq5      " 5       nO[        Xq5      nU" Xb5        g r#   )r   r   set_geometry)r   r   r   r'   r   r   r   gdfs           r+   r   TestGeomMethods._test_unary9  sZ    Q^%FQ^FV ii$$Q'S%'FS%FVr-   zpyproj not available)reasonc                    U R                   R                  5       R                  S SS9n[        R                  " [
        5         U R                  SU R                   U R                   U5        S S S 5        g ! , (       d  f       g = f)NT)allow_overrideintersection)r   r   set_crspytestwarnsUserWarningr   )r   	no_crs_g3s     r+   test_crs_warning TestGeomMethods.test_crs_warningI  sW     GGLLN**4*E	\\+&)).$''477IV '&&s   )A55
Bc                    [         R                  " [        SS9   U R                  R	                  U R
                  S S9  S S S 5        [        R                  " SS9 nU R                  R	                  U R
                  SS9  U R                  R	                  U R
                  SS9  [        U5      S:X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N:The indices of the left and right GeoSeries' are not equalmatchalignTrecordFr   )	r   r   r   r   r   r   warningscatch_warningsr   )r   r  s     r+   test_alignment_warning&TestGeomMethods.test_alignment_warningP  s    \\N
 GG   5	
 $$D1VGG   5GG   6v;!###	 21
 
 21s   %B?AC?
C
Cc                    U R                  SU R                  U R                  U R                  5        U R                  SU R                  U R                  U R
                  SS9  [        U R                  R                  U R                  SS9S:H  5      (       d   e[        U R                  R                  U R                  SS9S:H  5      (       d   eg )Nr   Tr   rW   Frt   )
r   ru   r   r   r   r   r   r   r   r   r   s    r+   test_intersection!TestGeomMethods.test_intersection]  s    %%ndggtwwP%%DMM477DJJd 	& 	
 477''t'<ABBBB477''u'=BCCCCr-   c                     U R                   " SU R                  U R                  /U R                  R                  Q76   U R                   " SU R
                  U R                  /U R                  R                  Q76   g )Nclip_by_rect)r   r   r   rz   boundsr   rw   r  s    r+   test_clip_by_rect!TestGeomMethods.test_clip_by_rectf  s`    %%DGGTXX	
04	
 	%%D>>	
JN''..	
r-   c                 D   U R                  SU R                  U R                  U R                  5        [	        U R
                  R                  U R                  SS9S:H  5      (       d   e[	        U R
                  R                  U R                  SS9S:H  5      (       d   eg )NunionTr   rW   Frt   )r   rz   r   r   r   r   r  r   r  s    r+   test_union_series!TestGeomMethods.test_union_serieso  sx    %%gtwwI477===5:;;;;477===6!;<<<<r-   c                 h    U R                  SU R                  U R                  U R                  5        g )Nr  )r   rz   r   rv   r  s    r+   test_union_polygon"TestGeomMethods.test_union_polygonu  s"    %%gtwwIr-   c                 D   U R                  SU R                  U R                  U R                  5        [	        U R
                  R                  U R                  SS9S:H  5      (       d   e[	        U R
                  R                  U R                  SS9S:H  5      (       d   eg )Nsymmetric_differenceTr   rW   Frt   )r   rz   r   r   r   r   r  r   r  s    r+    test_symmetric_difference_series0TestGeomMethods.test_symmetric_difference_seriesx  s    %%&<dggtwwPTPWPWX477//t/DIJJJJ477//u/EJKKKKr-   c                     [        [        5       U R                  /U R                  R                  S9nU R                  SXR                  U R                  5        g )NrS   r  )r   r   rz   r   rT   r   ru   r   r   s     r+   test_symmetric_difference_poly.TestGeomMethods.test_symmetric_difference_poly~  s@    02DGG<$''++N%%"Hggtww	
r-   c                 l   [        [        5       U R                  /5      nU R                  SXR                  U R
                  5        [        U R                  R                  U R                  SS9S:H  5      (       d   e[        U R                  R                  U R                  SS9S:H  5      (       d   eg )N
differenceTr   rW   Frt   )
r   r   rv   r   r   r   r   r   r  r   r  s     r+   test_difference_series&TestGeomMethods.test_difference_series  s    02DGG<=%%lHggtwwO477%%dggT%:a?@@@@477%%dggU%;q@AAAAr-   c                     [        U R                  U R                  /5      nU R                  SXR                  U R                  5        g )Nr  )r   ru   r   r   rv   r  s     r+   test_difference_poly$TestGeomMethods.test_difference_poly  s3    dggtww/0%%lHggtwwOr-   c                    [        [        SS/5      S /5      n[        XR                  R	                  U R
                  5      5        [        [        SS/5      [        SS/5      /5      n[        XR                  R	                  U R                  5      5        [        [        SS/5      [        SS/5      /5      nU R                  S S S2   n[        XR                  R	                  USS95        g )Nr5   rj   r9   rl   rl   rm   Fr   )	r   r   r,   r   shortest_liner   r   r   r   )r   r   crossed_lines_invs      r+   test_shortest_line"TestGeomMethods.test_shortest_line  s    j&&)9:DAB <<+E+Edgg+NOFF+,FF+,
 	!77+@+@+IJZ01:z:>V3WX
 !..tt4 ((667HPU6V	
r-   c           	      *   [        [        / SQ5      S /5      n[        XR                  R	                  [        SS5      SS95        [        [        S5      [        / SQ5      /5      n[        XR                  R	                  U R                  SS95        g )	N)r   rl   r3   r5   r,  r   rl   r4   	tolerancerj   )rE   r2   r;   rD   rE   r<   )r   r   r,   r   snapr   r   r   r  s     r+   	test_snapTestGeomMethods.test_snap  s|    g&JKTRS ll''a'C	
 f@A
 	!77<<1<+MNr-   c                 ^   [        SS/5      n[        SS/5      n[        [        5       /5      n[        U/5      R                  U5      n[	        XC5        [        U/5      R                  [        U/5      5      n[	        XC5        [        [        5       /5      R
                  n[	        XC5        g )Nr2   r5   r:   r:   rD   )r   r   r   r   r   convex_hull)r   r   r   r   r   s        r+   test_geo_op_empty_result(TestGeomMethods.test_geo_op_empty_result  s    ()()0234B4--b1v0B4--io>v0.012>>v0r-   c                     [        / SQ5      n[        / SQ5      n[        X/U R                  R                  U R                  R                  S9nU R                  SX0R                  5        g )N)r2   r3   r5   r2   )r2   r3   r5   r7   r2   r   r   )r   r   r   rY   rT   r   )r   r   r   r   s       r+   test_boundaryTestGeomMethods.test_boundary  sL    89@AbXTWW]]L$$Z77Cr-   c                 `   [        [        R                  " SS/5      U R                  R                  S9nU R                  SXR                  5        [        [        R                  " S[        R                  /5      U R                  R                  S9nU R                  SXR                  5        g )Nrl   rZ   rX   area)r   r$   r   r   rY   r   r   r   r  s     r+   	test_areaTestGeomMethods.test_area  sr    "((C:.dggmmDfh8"((C=19K9KLfh=r-   c                     [         R                  " [        SS9   U R                  R                    S S S 5        g ! , (       d  f       g = fNGeometry is in a geographic CRSr   )r   r   r   r   r;  r  s    r+   test_area_crs_warn"TestGeomMethods.test_area_crs_warn  s)    \\+-NOGGLL POO	   :
Ac                    [        SS/SS/SS/SS/S.U R                  R                  / SQS9nU R                  R                  n[	        X5        U R
                  R                  U R                  5      nUR                  n[	        X5        g )Nrg   rZ   minxminymaxxmaxy)rY   columns)r   r   rY   r  r   r   r   )r   r   r   r   s       r+   test_boundsTestGeomMethods.test_bounds  s}    c
c
c
c
	 ''--4	
 8,ii$$TWW-8,r-   c                 v    [        / 5      nUR                  n[        / SQUR                  SS9n[	        X#5        g )NrE  float64)rJ  rY   r&   )r   r  r   rY   r   )r   r   r   r   s       r+   test_bounds_empty!TestGeomMethods.test_bounds_empty  s5     bM4AGG9
 	6,r-   c                    U R                   n[        / SQ5      n[        X/5      n[        X/5      nU R	                  SX4SS9  [        US /5      nU R	                  SXSS9  [        S S /5      nUR                  5       R                  [        R                  " 5       5      (       d   eUR                  SS9R                  U5      (       d   e[        (       a2  [        (       a&  UR                  SS9R                  U5      (       d   eg g g )Nr8   	union_allTr   coveragedisjoint_subset)ru   r   r   r   r   rR  r   shapelyr   r   r   )r   p1p2r   gr   r   s          r+   test_union_allTestGeomMethods.test_union_all  s    WW-.x(rh$$[(d$KDz"$$["$Fd|$||~$$W%?%?%ABBBB{{*{-44X>>>>;==;;&7;8??IIII );r-   c                     U R                   n[        / SQ5      n[        X/5      n[        R                  " [
        SS9   UR                  nS S S 5        WUR                  5       :X  d   eg ! , (       d  f       N%= f)Nr8   z)The 'unary_union' attribute is deprecatedr   )ru   r   r   r   r   DeprecationWarningr   rR  )r   rV  rW  rX  r   s        r+   test_unary_union_deprecated+TestGeomMethods.test_unary_union_deprecated  se    WW-.rh\\&Q
 ]]F
 &&&	
 
s   A++
A9c           
         [        / SQ5      n[        [        SSSS5      [        SSSS5      [        SSSS5      /5      nUR                  5       R	                  U5      (       d   e[        [        SSSS5      S /5      nUR                  5       R	                  US   5      (       d   e[        S S /5      nUR                  5       R	                  [
        R                  " 5       5      (       d   eg )N)r5   )r4         ?)r`  r`  )r`  r4   r5   r   r:   r4   r<   r`  )r   r   r   intersection_allr   rU  r   )r   r   rX  r   r   s        r+   test_intersection_all%TestGeomMethods.test_intersection_all  s    KLs1aAAq!QQ39LMN!!#**84444Aq!Q./""$++BqE2222d|$""$++G,F,F,HIIIIr-   c                 ,   / SQn[        XR                  R                  U R                  5      5        / SQn[        XR                  R                  U R                  SS95        / SQn[        XR                  R                  U R                  SS95        g )N)TFTFFFFFTTTTTFFTr   FFTFFFFF)r,   r   containsru   r   r  s     r+   test_containsTestGeomMethods.test_contains  sl    B 77+;+;DGG+DEF 77+;+;DGG4+;+PQC 77+;+;DGG5+;+QRr-   c           	      ,   / SQn[        XR                  R                  [        SS5      5      5        / SQn[        XR                  R                  U R                  SS95        / SQn[        XR                  R                  U R                  SS95        g )Nrf  rG   )FFFFFTFFTr   F)r,   r   contains_properlyr   r   r  s     r+   test_contains_properly&TestGeomMethods.test_contains_properly"  sy    C 77+D+DU4QUEV+WXJ gg//t/D	
 D gg//u/E	
r-   )r<   rn   r   zrequires GEOS>=3.10c           	      2   / SQn[        XR                  R                  U R                  S5      5        / SQn[        XR                  R                  U R                  SSS95        / SQn[        XR                  R                  U R                  SSS95        g )	N)TTTFTTFre   re  r4   Tr   TTTTFFFF)r,   r   dwithinr   r   r  s     r+   test_dwithinTestGeomMethods.test_dwithin0  sj    ? 77??477A+FGF 77??477AT?+RS@ 77??477AU?+STr-   c                    [        [        R                  " S[        R                  " S5      -   S/5      U R                  R
                  S9nU R                  SXR                  5        [        [        R                  " S[        R                  " S5      -   [        R                  /5      U R                  R
                  S9nU R                  SXR                  5        g )Nr:   rC   rX   length)	r   r$   r   sqrtr   rY   r   r   r   r  s     r+   test_lengthTestGeomMethods.test_length:  s    "((A
NA#67tww}}Mh'':"((A
NBFF#;<DLLDVDVWh,,?r-   c                     [         R                  " [        SS9   U R                  R                    S S S 5        g ! , (       d  f       g = fr?  )r   r   r   r   rt  r  s    r+   test_length_crs_warn$TestGeomMethods.test_length_crs_warnA  s)    \\+-NOGGNN POOrC  c                 `   [        [        R                  " SS/5      U R                  R                  S9n[        U R                  R                  5       USS9  [        [        R                  " SS/5      U R                  R                  S9n[        U R                  R                  5       USS9  g )NrC   rI   rX   Fcheck_dtyper   )r   r$   r   r   rY   r!   count_coordinatesr   r  s     r+   test_count_coordinates&TestGeomMethods.test_count_coordinatesF  s{    "((Aq6*$''--@DGG557uU"((Aq6*$,,2D2DELL**,hE	
r-   c           	          [        [        R                  " / SQ5      5      n[        [	        / SQ5      [        SS/5      [        / SQ5      [        SS5      S /5      n[        UR                  5       USS9  g )	N)rC   r:   r4   r4   r   )r2   r5   r4   rm   r7   )r2   r5   ))rm   r   r3   )r2   r5   r  r   Fr|  )
r   r$   r   r   r   r   r   r   r!   count_geometriesr   r   r   s      r+   test_count_geometries%TestGeomMethods.test_count_geometriesO  sh    "((?34<=!13D EF45a
 	A..0(Nr-   c           	          [        [        R                  " / SQ5      5      n[        [	        / SQ/ SQ/5      [	        / SQ/ SQ/ SQ/5      [        SS5      S /5      n[        UR                  5       USS	9  g )
N)r4   r:   r   r   )r2   r   rI   rj   rI   r   )r5   )r4   rC   rC   rC   rC   r4   )r5   r4   r:   r3  r:   r4   )r<   r:   rD   rC   r<   rC   r:   r   r4   Fr|  )r   r$   r   r   r   r   r!   count_interior_ringsr  s      r+   test_count_interior_rings)TestGeomMethods.test_count_interior_rings\  sr    "((<01456 488 a
" 	A224hERr-   c                    / SQn[        XR                  R                  U R                  5      5        SS/n[        XR                  R                  U R
                  5      5        S/S-  n[        XR                  R                  U R                  SS95        S/S-  n[        XR                  R                  U R                  SS95        g )N)FFFFFFFFTrW   r   rt   )r,   r   crossesru   r   r   r   r  s     r+   test_crossesTestGeomMethods.test_crossesq  s    D 77??477+CD4= +=+=+E+Edgg+NO7Q; 77??477$?+OP7Q; 77??477%?+PQr-   c                 0   / SQn[        XR                  R                  U R                  5      5        S/S-  n[        XR                  R                  U R                  SS95        / SQn[        XR                  R                  U R                  SS95        g )N)FFFFFTFFrW   Tr   )FFFFTFF)r,   r   disjointru   r   r  s     r+   test_disjointTestGeomMethods.test_disjoint~  sr    C 77+;+;DGG+DE7Q; 77+;+;DGG4+;+PQC 77+;+;DGG5+;+QRr-   c                 Z   [        / SQU R                  R                  S9n[        XR                  R	                  U R
                  5      5        [        SS /U R                  R                  S9n[        XR                  R	                  U R                  5      5        [        / SQ[        S5      S9n[        XR                  R	                  U R                  SS95        [        / SQU R                  R                  S9n[        XR                  R	                  U R                  S	S95        g )
N)	212101212r  	212FF1FF2	2FFF1FFF2	FF2F112F2	FF0FFF212NrX   r  )Nr  r  r  r  	0FFFFFFF2NNrW   Tr   )	FF2F11212	2FF11F212r  	FF2F1F212	FF2FF10F2NNF)
r   r   rY   r!   relater   r   r   r   r   r  s     r+   test_relateTestGeomMethods.test_relate  s     ''--
 	HggnnT]]&CD;-TWW]]CHggnnT\\&BC	 (
 	HggnnTWWDn&IJ ''--
 	HggnnTWWEn&JKr-   c           
      2   [        S/S-  S/S-  -   U R                  R                  [        S9n[	        XR                  R                  U R                  S5      5        [        SS/U R                  R                  [        S9n[	        XR                  R                  U R                  S5      5        [        S/S/S-  -   SS/-   [        S	5      [        S9n[        R                  " [        S
S9   [	        XR                  R                  U R                  SS S95        S S S 5        [        S/S/S-  -   S/S-  -   U R                  R                  [        S9n[	        XR                  R                  U R                  SSS95        g ! , (       d  f       No= f)NTrC   Fr<   )rY   r&   z	2********z	FF0******rI   rW   z!The indices of the left and rightr   z	T********r   r:   )r   r   rY   boolr,   relate_patternr   r   r   r   r   r   r   r   r  s     r+   test_relate_pattern#TestGeomMethods.test_relate_pattern  sR   4&1*w{2$''--tT gg,,T]]KH	
 4-tww}}DI gg,,T\\;G	
 Gtfqj E5>1q
 \\+-PQ$''00+T0R R Gtfqj E7Q;.dggmm4
 	!gg,,TWWk,O	
 RQs   0/F
Fc                    [        [        R                  " [        R                  " S5      [        R                  /5      U R
                  R                  5      n[        XR
                  R                  U R                  5      5        [        [        R                  " [        R                  " S5      [        R                  /5      U R                  R                  5      n[        XR                  R                  U R
                  5      5        [        [        R                  " [        R                  SSSSS[        R                  [        R                  /5      [        S5      5      n[        XR                  R                  U R                  SS95        U R                  R                  S   R                  U R                  R                  S   5      n[        [        R                  " SSSSU[        R                  [        R                  /5      U R                  R                  5      n[        XR                  R                  U R                  SS95        g )N    r   rW   Tr   rC   F)r   r$   r   ru  r   r   rY   r,   distancer   r   r   r   r   iloc)r   r   vals      r+   test_distanceTestGeomMethods.test_distance  sq   HHbgg9:BFFCDdllFXFX
 	!<<+@+@+IJ"((BGGK$8"&&#ABDGGMMR 77+;+;DLL+IJ"((BFFAq!Q266266#JKUSTXV 77+;+;DGG4+;+PQggll1o&&tww||A7"((Aq!QRVVRVV#DEtww}}U 77+;+;DGG5+;+QRr-   c                     [         R                  " [        SS9   U R                  R	                  U R
                  5        S S S 5        g ! , (       d  f       g = fr?  )r   r   r   r   r  r   r  s    r+   test_distance_crs_warning)TestGeomMethods.test_distance_crs_warning  s4    \\+-NOGGTWW% POO   &A		
Ac                 n   [        [        R                  " [        R                  " S5      [        R                  /5      U R
                  R                  5      n[        XR
                  R                  U R                  5      5        [        [        R                  " [        R                  " S5      [        R                  /5      U R
                  R                  5      n[        XR
                  R                  U R                  5      5        [        [        R                  " [        R                  SSSSS[        R                  [        R                  /5      [        S5      5      n[        XR                  R                  U R                  SS95        U R                  R                  S   R                  U R                  R                  S   5      nU R                  R                  S   R                  U R                  R                  S   5      nU R                  R                  S   R                  U R                  R                  S   5      n[        [        R                  " X"X3U[        R                  [        R                  /5      U R                  R                  5      n[        XR                  R                  U R                  SS95        [        [        R                  " S	/5      U R                  R                  5      n[        XR                  R                  U R                  S
S95        g )N2   r   rW   Tr   r:   rC   Fg     @J@rG   densify)r   r$   r   ru  r   r   rY   r,   hausdorff_distancer   r   r   r   r  r   r   )r   r   val_1val_2val_3s        r+   test_hausdorff_distance'TestGeomMethods.test_hausdorff_distance  s
   "((BGGK$8"&&#ABDLLDVDVW <<+J+J477+ST"((BGGK$8"&&#ABDLLDVDVW <<+J+J477+ST"((BFFAq!Q266266#JKUSTXV gg000E	
 Q22477<<?CQ22477<<?CQ22477<<?CHHeE%HI477==
 	!gg000F	
 "((D6*DHHNN; hh11$((D1I	
r-   zbuggy with GEOS<3.10c                    [        [        R                  " [        R                  " S5      [        R                  /5      U R
                  R                  5      n[        XR
                  R                  U R                  5      5        [        [        R                  " [        R                  SSSSS[        R                  [        R                  /5      [        S5      5      n[        XR                  R                  U R                  SS95        Sn[        R                  " S5      S-  n[        R                  " S5      S-  n[        R                  " S5      S-  S	-  n[        [        R                  " X"X4U[        R                  [        R                  /5      U R                  R                  5      n[        XR                  R                  U R                  S
S95        [        [        R                  " [        R                  " S5      /5      U R                  R                  5      n[        XR                  R                  U R                  SS95        g )Nr  r   rW   Tr   rZ   r:   rC   rn   FiQJ  rG   r  )r   r$   r   ru  r   r   rY   r,   frechet_distancer   r   r   r   r   r   )r   r   r  r  r  val_4s         r+   test_frechet_distance%TestGeomMethods.test_frechet_distance  s   
 "((BGGK$8"&&#ABDLLDVDVW <<+H+H+QR"((BFFAq!Q266266#JKUSTXV gg..twwd.C	

 
Q
Qa2%HHeE%HI477==
 	!gg..twwe.D	
 "((BGG,C$D#EFW hh//$/G	
r-   c                    / SQn[        XR                  R                  U R                  5      5        SS/n[        XR                  R                  U R
                  5      5        [        R                  " / [        S9n[        XR                  R                  U R                  5      5        [        R                  " / [        S9n[        XR                  R                  U R                  5      5        S/S-  n[        XR                  R                  U R                  5      5        / SQn[        XR                  R                  U R                  SS95        / SQn[        XR                  R                  U R                  SS95        g )	NTTTTTFFTF)r&   rt   re  r   ro  )r,   r   
intersectsru   r   rv   r$   r   r  r   r   r   r  s     r+   test_intersectsTestGeomMethods.test_intersects   s   ? 77+=+=dgg+FG%= <<+B+B477+KL88Bd+ ::+@+@+IJ88Bd+ ::+@+@+QR7Q; 77+=+=doo+NOF 77+=+=dggT+=+RS@ 77+=+=dggU+=+STr-   c                    / SQn[        XR                  R                  U R                  5      5        SS/n[        XR                  R                  U R
                  5      5        S/S-  n[        XR                  R                  U R                  SS95        S/S-  n[        XR                  R                  U R                  SS95        g )N)TTFFFFFFrW   Tr   rt   )r,   r   overlapsr   r   ru   r   r  s     r+   test_overlapsTestGeomMethods.test_overlaps6  s    B 77+;+;DMM+JK5> 77+;+;DGG+DE7Q; 77+;+;DGG4+;+PQ7Q; 77+;+;DGG5+;+QRr-   c                 0   / SQn[        XR                  R                  U R                  5      5        S/S-  n[        XR                  R                  U R                  SS95        / SQn[        XR                  R                  U R                  SS95        g )NFTFFFFFFrW   Tr   )TFFTFFF)r,   r   touchesru   r   r  s     r+   test_touchesTestGeomMethods.test_touchesC  sj    C 77??477+CD7Q; 77??477$?+OPB 77??477%?+PQr-   c                    / SQn[        XR                  R                  U R                  5      5        / SQn[        XR                  R                  U R                  5      5        / SQn[        XR                  R                  U R
                  SS95        / SQn[        XR                  R                  U R
                  SS95        g )N)TFFFFFFr  re  Tr   r  F)r,   r   withinru   rz   r   r  s     r+   test_withinTestGeomMethods.test_withinM  s    C 77>>$''+BC? 77>>$''+BCF 77>>$''>+NOC 77>>$''>+OPr-   c                 ~    U R                   R                  U R                   5      n[        SS/5      n[        X5        g )NT)r   coversr   r!   r   resexps      r+   test_covers_itself"TestGeomMethods.test_covers_itselfZ  s.    ggnnTWW%dD\"C%r-   c                 B   U R                   R                  U R                  5      n[        SS/5      n[	        X5        / SQn[        X0R                  R                  U R                  SS95        / SQn[        X0R                  R                  U R                  SS95        g )NTFre  r   rf  )r   r  r   r   r!   r,   r   r   r   r  r  r   s       r+   test_coversTestGeomMethods.test_covers`  sr    ggnnTWW%dE]#C%F 77>>$''>+NOC 77>>$''>+OPr-   c                 ~    U R                   R                  U R                  5      n[        SS/5      n[	        X5        g )NF)r   r  r   r   r!   r  s      r+   test_covers_inverse#TestGeomMethods.test_covers_inversek  s.    ggnnTWW%eU^$C%r-   c                 B   U R                   R                  U R                   5      n[        SS/5      n[        X5        / SQn[	        X0R
                  R                  U R                  SS95        / SQn[	        X0R
                  R                  U R                  SS95        g )NTre  r   r  F)r   
covered_byr   r!   r,   r   r   r  s       r+   test_covered_byTestGeomMethods.test_covered_byp  sz    gg  )dD\"C%F 77+=+=dggT+=+RSC 77+=+=dggU+=+STr-   c                     [        [        R                  " S/[        U R                  5      -  5      U R                  R
                  5      nU R                  SXR                  5        g )NTis_validr   r$   r   r   r   rY   r   r  s     r+   test_is_validTestGeomMethods.test_is_valid{  sB    "((D6CL#89477==Ij(GG<r-   c                 x   [        [        R                  " S/[        U R                  5      -  5      U R                  R
                  5      n[        U R                  R                  5       U5        [        [        / SQ5      [        / SQ5      S /5      n[        / SQ5      n[        UR                  5       U5        g )NValid Geometry)r2   r5   r3   r7   )r2   r5   r5   r7   )zSelf-intersection[0.5 0.5]r  N)
r   r$   r   r   r   rY   r!   is_valid_reasonr   r   r  s      r+   test_is_valid_reason$TestGeomMethods.test_is_valid_reason  s    "(($4#5DGG#DEtww}}UDGG335x@8989
 PQA--/:r-   z!GEOS 3.12 and shapely 2.1 needed.c                     [        [        / SQ5      [        / SQ5      /5      nUR                  5       (       d   e[        [        / SQ5      [        / SQ5      /5      nUR                  5       (       a   eg )Nr2   r5   r3   r2   )r2   r5   r7   r2   r2   r&  r5   r7   r2   )r   r   is_valid_coverage)r   r   s2s      r+   test_is_valid_coverage&TestGeomMethods.test_is_valid_coverage  sw     8989
 ""$$$$89DE
 '')))))r-   c                     [        [        / SQ5      [        / SQ5      /5      n[        [        SS/5      [        / SQ5      /5      n[        UR	                  5       U5        g )Nr  r  r2   r5   )r2   r&  r5   )r   r   r   r   invalid_coverage_edgesr   r   r   s      r+   test_invalid_coverage_edges+TestGeomMethods.test_invalid_coverage_edges  s^     89DE
 ():6R+ST
 	q7798Dr-   c                     [        [        R                  " S/[        U R                  5      -  5      U R                  R
                  5      nU R                  SXR                  5        g )NFis_emptyr  r  s     r+   test_is_emptyTestGeomMethods.test_is_empty  sB    "((E7S\#9:DGGMMJj(GG<r-   c                    [        [        R                  " S/[        U R                  5      -  5      U R                  R
                  5      nU R                  SXR                  5        [        [        R                  " S/[        U R                  5      -  5      U R                  R
                  5      nU R                  SXR                  R                  5        g )NFis_ringT)r   r$   r   r   r   rY   r   exteriorr  s     r+   test_is_ringTestGeomMethods.test_is_ring  s    "((E7S\#9:DGGMMJi77;"((D6CL#89477==Ii773C3CDr-   c                     [        [        R                  " S/[        U R                  5      -  5      U R                  R
                  5      nU R                  SXR                  5        g )NT	is_simpler  r  s     r+   test_is_simpleTestGeomMethods.test_is_simple  sB    "((D6CL#89477==Ik8WW=r-   c                     [        [        R                  " S/[        U R                  5      -  5      U R                  R
                  5      nU R                  SXR                  5        g )NFis_ccwr  r  s     r+   test_is_ccwTestGeomMethods.test_is_ccw  sB    "((E7S\#9:DGGMMJh'':r-   c                     [        [        R                  " SS/5      U R                  R                  5      nU R                  SXR                  5        g )NF	is_closed)r   r$   r   r   rY   r   r  s     r+   test_is_closedTestGeomMethods.test_is_closed  s7    "((E5>2DGGMMBk8WW=r-   c                     [        SS/U R                  R                  5      nU R                  SXR                  5        g )NFThas_z)r   r   rY   r   r  s     r+   
test_has_zTestGeomMethods.test_has_z  s.    5$-9gx;r-   zrequires shapely 2.1)r<      r   zrequires GEOS>=3.12c                 r    [         R                  " SS/5      n[        SS/5      nU R                  SX!5        g )NPOINT M (2 3 5)zPOINT Z (1 2 3)TFhas_m)r   from_wktr   r   r   s      r+   
test_has_mTestGeomMethods.test_has_m  s?     !!
 4-(gx3r-   c                    SS/nSS/nSS/n[        XR                  R                  R                  5        [        X R                  R                  R                  5        [        X0R                  R                  R
                  5        SS[        R                  /n[        X0R                  R                  R
                  5        g NrM   rP   rN   rQ   rO   rR   )	r,   r   r^   xyzr$   r   r   r   
expected_x
expected_y
expected_zs       r+   test_xyz_pointsTestGeomMethods.test_xyz_points  s    )
w'
w'
 ^^-D-D-F-FG ^^-D-D-F-FG ^^-D-D-F-FG w/
 -A-A-J-J-L-LMr-   c                     [         R                  " / SQ5      nSS[        R                  /n[	        X!R
                  5        g )N)r  zPOINT M (1 2 3)zPOINT (0 0)rI   r<   )r   r   r$   r   r,   mr   s      r+   test_m_pointsTestGeomMethods.test_m_points  s4    
 q"&&> 33/r-   c                    SSS[         R                  /nSSS[         R                  /nSS[         R                  [         R                  /n[        XR                  R                  R
                  5        [        X R                  R                  R                  5        [        X0R                  R                  R                  5        g r$  )r$   r   r,   r   r^   r%  r&  r'  r(  s       r+   test_xyz_points_empty%TestGeomMethods.test_xyz_points_empty  s    (BFF;
w8
w7
 -G-G-P-P-R-RS -G-G-P-P-R-RS -G-G-P-P-R-RSr-   c                    [         R                  " [        5         U R                  R                  R
                  nS S S 5        [         R                  " [        5         U R                  R                  R                  nS S S 5        [         R                  " [        5         U R                  R                  R                  nS S S 5        g ! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = fr#   )	r   raises
ValueErrorr   r^   r%  r&  r   r'  r   s     r+   test_xyz_polygons!TestGeomMethods.test_xyz_polygons  s    ]]:&		""$$A ' ]]:&		""$$A ' ]]:&		""$$A '& '& '& '&s#   !C!C!!C-
C
C*-
C;c                    [        / SQ5      n[        SS5      n[        [        S5       Vs/ s H  o1PM     sn5      n[        [        S5       Vs/ s H  o2PM     sn5      n[	        UR
                  U5        g s  snf s  snf )N))rm   rm   r  r5   )rm   r4   r   r<   )r   r   r   r   r   centroid)r   polygonpointipolygonspointss         r+   test_centroidTestGeomMethods.test_centroid  sj    >?auQx8x!gx895848aE845x00&9 94s   A9A>c                     [         R                  " [        SS9   U R                  R                    S S S 5        g ! , (       d  f       g = fr?  )r   r   r   r   r;  r  s    r+   test_centroid_crs_warn&TestGeomMethods.test_centroid_crs_warn  s+    \\+-NOGG POOrC  c                     [        / SQ5      n[        / SQ5      n[        SS5      n[        XU/5      n[        / SQ5      n[        XRU/5      n[	        UR                  5       U5        g )Nr6   r2   r5   r3   r   rV   )r   r   r   r   r   	normalize)r   r<  
linestringr=  seriespolygon2r   s          r+   test_normalizeTestGeomMethods.test_normalize  s_    23 89
aG7834hE:;v//18<r-   zrequires Shapely>=2.1c                 D   [        / SQ/ SQ/S9n[        / SQ5      n[        SS5      n[        XU/5      n[        / SQ/ SQ/S9n[        XRU/5      n[	        UR                  5       U5        [        / SQ/ SQ/S9n[        XrU/5      n[	        UR                  SS9U5        g )	N)r2   rp   rn   rn   rn   r   r2   )r3  )r:   rC   r  r  r3  )holesrG  r   )r2   rP  rO  rp   r2   T)exterior_cw)r   r   r   r   r   orient_polygons)r   r<  rI  r=  rJ  rK  r   
polygon_cws           r+   test_orient_polygons$TestGeomMethods.test_orient_polygons  s    8;<
   89
aG788;<
 hE:;v557B8;<

 je<=v55$5GRr-   c                    [        / SQ5      n[        / SQ5      n[        / SQ5      n[        XU/5      n[        [        / SQ5      [        / SQ5      /5      n[	        [        / SQ5      [        SS/5      /5      n[        XVU/5      nUR
                  R                  5       (       a   eUR                  5       n[        X5        UR
                  R                  5       (       d   eg )	N)r2   rE   r5   r3  r9   r5   r2   )rE   r7   r9   r2   rE   rG  )r5   r2   rE   r5   )r9   r5   r3  r9   )r9   r2   r7   r9   rE   r7   )	r   r   r   r   r   r  all
make_validr   )	r   polygon1rK  rI  rJ  out_polygon1out_polygon2r   r   s	            r+   test_make_validTestGeomMethods.test_make_valid1  s    STCD 89
H
;<#8989
 *56
FFCS8TU
 l*EF??&&((((""$v0""$$$$r-   z method, keep_collapsed, expectedlineworkTr2   r5   r  	structurer2   r5   r  r5   r2   c                    [        / SQ5      n[        U/5      n[        U/5      nUR                  R                  5       (       a   eUR	                  XS9n[        XcSS9  UR                  R                  5       (       d   eg )Nra  )r   keep_collapsedTcheck_geom_type)r   r   r  rX  rY  r   )r   r   rc  r   r<  rJ  r   s          r+   test_make_valid_method&TestGeomMethods.test_make_valid_methodE  sv    $ BCG9%hZ(??&&((((""&"PvF""$$$$r-   ztest for Shapely<2.1c                     [        / SQ5      n[        U/5      n[        R                  " [        SS9   UR                  SS9  SSS5        g! , (       d  f       g= f)z:Only the 'linework' method is supported for shapely < 2.1.ra  z+Only the 'linework' method is supported forr   r`  r   N)r   r   r   r6  r7  rY  )r   r<  rJ  s      r+   test_make_valid_old_shapely+TestGeomMethods.test_make_valid_old_shapely_  sP     BCG9%]]K
 [1
 
 
s   A
Ac                     [        [        / SQ5      [        / SQ5      /5      n[        XR                  R	                  5       5        g )NrV   rA   )r   r   r   r   reverser  s     r+   test_reverseTestGeomMethods.test_reversei  s8    34;<
 	x):;r-   c                    [        [        S5      [        S5      /5      n[        [        / SQ5      [        / SQ5      /5      nU R                  R	                  SS9nU R
                  R	                  SS9n[        X5        [        X$5        g )N)r2   rl   r   r3   r4   rl   r5   )UUUUUU?rr  )UUUUUU?rs  r2   )	r2   rp  r3   rq  r5   rl   r4   r7   r,  r2   )r2   r,  r7   rt  r5   )r2   rp  r3   rq  r5   rt  r7   rl   max_segment_length)r   r   r   r   
segmentizer   r   )r   expected_g1expected_g5	result_g1	result_g5s        r+   test_segmentize_linestrings+TestGeomMethods.test_segmentize_linestringsr  s    	 

:  GHR
 GG&&#&>	GG&&#&>	{6{6r-   c                     [         R                  " [        SS9   U R                  R	                  [        SS/SS/S9S9  S S S 5        g ! , (       d  f       g = f)NzAIndex of the Series passed as 'max_segment_length' does not matchr   rl   c   b   rX   ru  )r   r6  r7  r   rw  r   r  s    r+   test_segmentize_wrong_index+TestGeomMethods.test_segmentize_wrong_index  sK    ]]U
 GG&#sBPR82TU	
 
 
r  c                 R   [        [        SS/5      [        / SQ5      /5      n[        [        SS/5      [        / SQ5      /5      nUR                  S 5      n[	        X#5        [        [        SSS5      [        S	S
/5      [        / SQ5      /5      n[        [        SSS5      [        SS/5      [        / SQ5      /5      nUR                  S SS9n[	        XV5        [        [        SS5      [        SS/5      [        / SQ5      /5      nUR                  S SS9n[	        Xx5        g )Nr3  r  r6   )rC   re   )rW   r  )r2   rF   r   r<   c                     U SS/-  $ )Nr:   r<    r%  s    r+   <lambda>0TestGeomMethods.test_transform.<locals>.<lambda>  s    QF
r-   r   r?   rB   )r   r   r   r>   )r   r4   rl   r4   r@   )rI   rI   rI   )r>   r?   )r4   r:   r`  c                     U S-   $ Nr4   r  r  s    r+   r  r    s    Ar-   T	include_zrD   rj   )r5   r3  r  c                     U S-   $ r  r  r  s    r+   r  r    s    a!er-   F)r   r   r   	transformr   r   )	r   test_2dr   	result_2dtest_3dr   	result_3dexpected_3d_to_2dresult_3d_to_2ds	            r+   test_transformTestGeomMethods.test_transform  s3   ()73K+LM
  )*G4L,MN
 %%&:;	{6aAIy12;<
  aAIy12;<
 %%o%F	{6%aFF+,01
 "++Ou+M0Br-   )r<   rs   r   zrequires GEOS>=3.11c                 `    [        U R                  U R                  R                  5       5        g r#   )r   r   concave_hullr  s    r+   test_concave_hull!TestGeomMethods.test_concave_hull  s    t||T\\-F-F-HIr-   zexpected_series,ratio)r2   r  r5   rD   r;   r2   rg   )r2   r  rD   r;   r2   rZ   c                     [        [        U5      5      n[        [        / SQ5      5      n[        X4R	                  US95        g )N)r2   r  r5   r;   rD   ratio)r   r   r   r   r  )r   expected_seriesr  r   r   s        r+    test_concave_hull_accepts_kwargs0TestGeomMethods.test_concave_hull_accepts_kwargs  s6     W_56j!IJKxe)DEr-   c           	      f   [         R                  " [        SS9   U R                  R	                  [        SS/SS/S9S9  S S S 5        [         R                  " [        S	S9   U R                  R	                  S
[        SS/SS/S9S9  S S S 5        g ! , (       d  f       NW= f! , (       d  f       g = f)Nz4Index of the Series passed as 'ratio' does not matchr   rg   rZ   r  r  rX   r  z:Index of the Series passed as 'allow_holes' does not match皙?TF)r  allow_holes)r   r6  r7  r   r  r   r  s    r+   test_concave_hull_wrong_index-TestGeomMethods.test_concave_hull_wrong_index  s    ]]T
 GG  vsCjR'I J

 ]]N
 GG  vtUmB8'L ! 	
 

 


 
s   &B!'B"
B"
B0c                     [        [        / SQ5      /5      n[        [        [        / SQ5      /5      /5      n[        UR	                  5       USS9  g )Nr6   )r2   r7   r5   r2   Trd  )r   r   r   r   constrained_delaunay_triangles)r   inputr   s      r+   #test_constrained_delaunay_triangles3TestGeomMethods.test_constrained_delaunay_triangles  sM    7#;<=>)I!J KLM
 	002Hd	
r-   c                 X    [        U R                  U R                  R                  5        g r#   )r   r   r4  r  s    r+   test_convex_hull TestGeomMethods.test_convex_hull  s    t||T\\-E-EFr-   c                     [        [        / SQ5      [        / SQ5      /5      nU R                  R                  5       n[	        X5        g )N)r7   r2   r3   r7   )r7   r3   r5   r7   )r   r   r   delaunay_trianglesr   r   r   dlts      r+   test_delaunay_triangles'TestGeomMethods.test_delaunay_triangles  s?    8989
 gg((*x-r-   c           
          [        [        SS/5      [        SS/5      [        SS/5      [        SS/5      [        SS/5      /5      nU R                  R                  SS9n[	        X5        g )Nr7   r5   r2   r3   T
only_edges)r   r   r   r  r   r  s      r+   #test_delaunay_triangles_pass_kwargs3TestGeomMethods.test_delaunay_triangles_pass_kwargs  ss    FF+,FF+,FF+,FF+,FF+,
 gg((D(9x-r-   c                     [         R                  " / SQU R                  R                  S9nU R                  R	                  5       n[        X5        g )N)z+POLYGON ((2 2, 2 0.5, 0.5 0.5, 0.5 2, 2 2))z.POLYGON ((-1 2, 0.5 2, 0.5 0.5, -1 0.5, -1 2))z1POLYGON ((-1 -1, -1 0.5, 0.5 0.5, 0.5 -1, -1 -1))z.POLYGON ((2 -1, 0.5 -1, 0.5 0.5, 2 0.5, 2 -1))rS   r   r   r   rT   voronoi_polygonsr   r   r   vps      r+   test_voronoi_polygons%TestGeomMethods.test_voronoi_polygons  s@    %% 
 WW%%'x,r-   c                     [         R                  " / SQU R                  R                  S9nU R                  R	                  SS9n[        XSS9  g )N)zLINESTRING (0.5 0.5, 0.5 2)zLINESTRING (2 0.5, 0.5 0.5)zLINESTRING (0.5 0.5, -1 0.5)zLINESTRING (0.5 0.5, 0.5 -1)rS   Tr  check_less_preciser  r  s      r+    test_voronoi_polygons_only_edges0TestGeomMethods.test_voronoi_polygons_only_edges  sG    %% 
 WW%%%6xEr-   c                     [         R                  " / SQU R                  R                  S9nU R                  R	                  [        SSSS5      S9n[        X5        g )N)z+POLYGON ((3 3, 3 0.5, 0.5 0.5, 0.5 3, 3 3))z.POLYGON ((-2 3, 0.5 3, 0.5 0.5, -2 0.5, -2 3))z1POLYGON ((-2 -1, -2 0.5, 0.5 0.5, 0.5 -1, -2 -1))z.POLYGON ((3 -1, 0.5 -1, 0.5 0.5, 3 0.5, 3 -1))rS   r   r<   )	extend_to)r   r   r   rT   r  r   r   r  s      r+   test_voronoi_polygons_extend_to/TestGeomMethods.test_voronoi_polygons_extend_to)  sP    %% 
 WW%%B1a0@%Ax,r-   c                     [        U R                   Vs/ s H  n[        UR                  5      PM     sn5      n[	        X R                  R
                  5       H  u  p4UR                  U5      (       a  M   e   g s  snf r#   )r   r   r
   r   zipr	  r   )r   pexp_exteriorr   computeds        r+   test_exteriorTestGeomMethods.test_exterior6  s`     $''!J'Q*QZZ"8'!JK"%lGG4D4D"EH??8,,,, #F "Ks   A;c                    [        U R                  U R                  /5      n/ nUR                  S   U:X  d   e[	        U R
                  R                  5      nUR                  S   S   R                  U5      (       d   e[        U R                  U R                  /5      nUR                  S   / :X  d   eUR                  S   / :X  d   eg )Nr   r4   )	r   ru   r   	interiorsr
   r   r   r   rz   )r   originalr   no_interiorss       r+   test_interiorsTestGeomMethods.test_interiors;  s    dggt':':;< !!!$000dmm445!!!$Q'..x8888 $''477!34%%a(B...%%a(B...r-   c                     [        [        SS5      [        SS5      /5      nU R                  SXR                  SSS9  [        [        SS5      [        SS5      /5      nU R                  SXR                  S5        g )Nrl   rZ   rH   interpolateT
normalizedr`  )r   r   r   r   r  s     r+   test_interpolate TestGeomMethods.test_interpolateI  sq    eCouT3/?@A%%8WWdt 	& 	
 eCouS#?@%%mXwwLr-   c           	      R   [        [        SS5      [        SS5      /5      nU R                  SXR                  [        R
                  " SS/5      5        [        [        SS5      [        SS5      /5      nU R                  SXR                  [        R
                  " SS/5      SS9  g )	Nrg   rH   rZ   rl   r  r`  Tr  )r   r   r   r   r$   r   r  s     r+   test_interpolate_distance_array/TestGeomMethods.test_interpolate_distance_arrayR  s    eC.c3@A%%8WWbhhc{.C	
 eCouS#?@%%8WWbhhc{.CPT 	& 	
r-   c                     [         R                  " / SQ5      n[        R                  " [        5         U R
                  R                  U5        S S S 5        g ! , (       d  f       g = fNr4   r:   r<   )r$   r   r   r6  r7  r   r  r   	distancess     r+   &test_interpolate_distance_wrong_length6TestGeomMethods.test_interpolate_distance_wrong_length]  s:    HHY'	]]:&GG	* '&&s   A
A&c                     [        SS/SS/S9n[        R                  " [        SS9   U R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nr4   r:   r  r  rX   7Index of the Series passed as 'distance' does not matchr   )r   r   r6  r7  r   r  r  s     r+   %test_interpolate_distance_wrong_index5TestGeomMethods.test_interpolate_distance_wrong_indexb  sL    Aq6"b2	]]W
 GG	*
 
 
s   A
Ac                     U R                   R                  5       nSUl        [        R                  " [
        SS9   UR                  S5        S S S 5        g ! , (       d  f       g = f)NrU   r@  r   r4   )r   r   rT   r   r   r   r  )r   g5_crss     r+   test_interpolate_crs_warning,TestGeomMethods.test_interpolate_crs_warningi  sB    
\\+-NOq! POOs   A
A$c                 v   [        SS/U R                  R                  S9n[        SS5      nU R	                  SXR                  U5        [        SS/U R                  R                  S9nU R	                  SXR                  USS9  [        [        S	S	5      [        SS5      /S
S	/S9n[        [        R                  S[        R                  /5      n[        U R                  R                  USS9U5        [        SS/U R                  R                  S9n[        U R                  R                  USS9U5        g )Nr[   r`  rX   rZ   rl   projectTr  r:   r4   r   F)
r   r   rY   r   r   r   r$   r   r!   r  )r   r   r  r   s       r+   test_projectTestGeomMethods.test_projectp  s    3*DGGMM:#sOy(GGQ?3*DGGMM:y(GGQ4PuQ{E#sO4QFC2663/0DGGOOATO:HE3*DGGMM:DGGOOAUO;XFr-   c                 p    / SQnU R                   nU R                  R                  U5      n[        X#5        g )N)r   r4   r4   r   r   r   )r   r   affine_transformr   )r   matrixr   r  s       r+   test_affine_transform%TestGeomMethods.test_affine_transform  s,    #77gg&&v.x-r-   c                    U R                   R                  U R                  R                  -
  U R                   R                  U R                  R                  -
  4nU R                  R
                  " U6 S   R                  U R                   5      (       d   eU R                  R                  U R                  5      R
                  " U6 S   nUR                  U R                   5      (       d   eg )Nr   )	r   r%  r   r&  r   	translater   r   r   )r   transr  s      r+   test_translate_tuple$TestGeomMethods.test_translate_tuple  s    

TXXZZ'dhhjj)@@~~''/299$((CCCCii$$T^^4>>FqIzz$((####r-   c                 ~   SnU R                   n[        SS5      nU R                   R                  XS9R                  U* US9n[        U R                   U5      (       d   eU R                  R                  U R                   5      R                  U[        SS5      S9n[        X$R                  U* US95      (       d   eg )Nr  r   )origin)r   r   rotater   r   r   )r   angler   or  s        r+   test_rotateTestGeomMethods.test_rotate  s    77!QKggnnUn-44eVA4F!$''3////ii$$TWW-44U5A;4O!(JJvaJ,HIIIIr-   c                    U R                   nSn[        S U 5       5      n[        SS5      nU R                   R                  " USU06R                  " USU06n[	        X5      (       d   eU R
                  R                  U R                   5      R                  " USU06nUR                  " USU06n[	        X5      (       d   eg )N)r[   rZ   c              3   ,   #    U  H
  nS U-  v   M     g7f)rZ   Nr  ).0r>  s     r+   	<genexpr>-TestGeomMethods.test_scale.<locals>.<genexpr>  s     +UC!GUs   r   r   )r   tupler   scaler   r   r   )r   r   r  invr  r  s         r+   
test_scaleTestGeomMethods.test_scale  s    77+U++!QKggmmU-1-33SCC!(0000ii$$TWW-33UE1Eii'Q'!(0000r-   c                 t   U R                   nSn[        SS5      nU R                   R                  X#S9R                  U* US9n[        X5      (       d   eU R                  R                  U R                   5      R                  X#S9nUR                  U* US9n[        X5      (       d   eU R                   R                  X#S9R                  U* US9n[        X5      (       d   eU R                  R                  U R                   5      R                  X#S9nUR                  U* US9n[        X5      (       d   eg )Ng     F@r   )xsr   )ysr   )r   r   skewr   r   r   )r   r   r  r  r  s        r+   	test_skewTestGeomMethods.test_skew  s#   77!QK gglldl-22teA2F!(0000ii$$TWW-22d2Ehh4%h*!(0000 gglldl-22teA2F!(0000ii$$TWW-22d2Ehh4%h*!(0000r-   c                     [        [        SS5      /5      n[        [        S5      /5      nUR                  SSS9n[	        X#5      (       d   eg )Nr   )r  )r   )r  r   r  r  rI   r4   
resolution)r   r   r   bufferr   r   r  r   
calculateds       r+   test_bufferTestGeomMethods.test_buffer  sJ    eAqk]+g&PQRS__Q1_5
!(7777r-   c                     SSSS.nU R                   R                  " S0 UD6n[        U R                   U5       H9  u  p4Uc  Ub   eM  UR                  " S0 UD6nUR                  U5      (       a  M9   e   g )Nr<   r:   g      @)	cap_style
join_stylemitre_limit)rn   )r   r  r  r   )r   r)   calculated_seriesr  r  r   s         r+   test_buffer_args TestGeomMethods.test_buffer_args  sx    aD GGNN66$'1B$C H!)))#??66!((2222 %Dr-   c                     [        U R                  U R                  /5      n[        [        S5      [        S5      /5      nUR                  [        R
                  " SS/5      SS9n[        X2SS9  g N)re   rI   )rI   rC   )rC   rI   )rI   re   r(  )rn   rI   r  r  rq   r)  r4   rI   r  Tr  )r   r   r   r  r$   r   r   r  s       r+   test_buffer_distance_array*TestGeomMethods.test_buffer_distance_array  se    dggtww/0@ACD
 __RXXq!f%5!_D
zMr-   c                     [        U R                  U R                  /5      n[        R                  " / SQ5      n[        R
                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = fr  )r   r   r$   r   r   r6  r7  r  r   r  r  s      r+   !test_buffer_distance_wrong_length1TestGeomMethods.test_buffer_distance_wrong_length  sK    dggtww/0HHY'	]]:&OOI& '&&s   A//
A=c                     [        U R                  U R                  /5      n[        [        S5      [        S5      /5      nUR                  [	        SS/5      SS9n[        X2SS9  g r'  )r   r   r   r  r   r   r  s       r+   test_buffer_distance_series+TestGeomMethods.test_buffer_distance_series  s`    dggtww/0@ACD
 __VQF^_B
zMr-   c                     [        U R                  U R                  /SS/S9n[        SS/SS/S9n[        R                  " [
        SS	9   UR                  U5        S S S 5        g ! , (       d  f       g = f)
Nr   r4   rX   r:   r  r  )datarY   r  r   )r   r   r   r   r6  r7  r  r-  s      r+    test_buffer_distance_wrong_index0TestGeomMethods.test_buffer_distance_wrong_index  sc    dggtww/1v>Ar2h7	]]W
 OOI&
 
 
s   
A%%
A3c                     [        / SQ5      n[        U[        5       S /5      nUR                  S5      n[	        X25        UR                  [
        R                  " / SQ5      5      n[	        X25        g )N)r2   r7   r5   r3   r   r  )r   r   r   r  r   r$   r   )r   r  r   r   s       r+   test_buffer_empty_none&TestGeomMethods.test_buffer_empty_none  sV    45q,.56!v)"((9-.v)r-   c                 z   [         R                  " [        SS9   U R                  R	                  S5        S S S 5        [
        R                  " SS9 nU R                  R	                  S5        S S S 5        W H  nS[        UR                  5      ;  a  M   e   g ! , (       d  f       Nk= f! , (       d  f       ND= f)Nr@  r   r4   Tr   r   z Geometry is in a geographic CRS.)	r   r   r   r   r  r  r  strmessage)r   r  rs      r+   test_buffer_crs_warn$TestGeomMethods.test_buffer_crs_warn  s    \\+-NOGGNN1 P $$D1VGGNN1 2 A5S^KKK  PO 21s   BB,
B),
B:c                     [        [        R                  " / SQ5      /5      n[        [        R                  " SS/5      /5      n[        UR	                  S5      U5        g )N)r2   )r4   r  r9   r2   r9   g?)r   rU  r   r   simplify)r   r   es      r+   test_simplifyTestGeomMethods.test_simplify  sJ    w))*DEFGw))66*:;<=qzz#2r-   c                     [         R                  " [        SS9   U R                  R	                  [        S/S/S95        S S S 5        g ! , (       d  f       g = f)N8Index of the Series passed as 'tolerance' does not matchr   r  r  rX   )r   r6  r7  r   rA  r   r  s    r+   test_simplify_wrong_index)TestGeomMethods.test_simplify_wrong_index  sC    ]]X
 GGVSE"67
 
 
r  c                    [        [        R                  " / SQ5      [        R                  " / SQ5      /5      n[        [        R                  " / SQ5      [        R                  " / SQ5      /5      n[        UR	                  S5      UR                  5       5        [        [        R                  " / SQ5      [        R                  " / SQ5      /5      n[        UR	                  SSS9UR                  5       5        g )	N)r2   rn   r4      r   rL  rn   r)  rp   r2   )rp   r)  rM  rL  rL  r   rL  rp   )r2   rK  rM  rp   )rp   rM  rN  rO  rW   )r2   rJ  rK  rM  rp   F)simplify_boundary)r   rU  r   r   simplify_coveragerH  )r   r   rB  
e_boundarys       r+   test_simplify_coverage&TestGeomMethods.test_simplify_coverage  s     R L		
  DE FG
 	q2215q{{}E MN FG

 	U;Z=Q=Q=S	
r-   c                    U R                   R                  n[        R                  " UR	                  U R
                  5      5      (       d   e[        U[        5      (       d   eU R                   R                  UR                  :X  d   eg r#   )	r   enveloper$   rX  r   rz   r   r   rT   )r   rB  s     r+   test_envelopeTestGeomMethods.test_envelope1  s`    GGvvammDGG,----!Y''''ww{{aee###r-   c                 n   [        U R                  U R                  /SS9nUR                  5       n[         R                  " SS/SS9n[
        R                  " UR                  5       R                  US5      5      (       d   e[        U[         5      (       d   eUR                  UR                  :X  d   eg )Ni  rS   z#POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))z#POLYGON ((2 0, 2 3, 3 3, 3 0, 2 0))MbP?)r   rz   r}   minimum_rotated_rectangler   r$   rX  rH  geom_equals_exactr   rT   )r   r   r=  r  s       r+   test_minimum_rotated_rectangle.TestGeomMethods.test_minimum_rotated_rectangle7  s    tww(d3'')  55 
 vvakkm55c5ABBBB!Y''''uu~~r-   c                     [        U R                  /5      R                  5       n[        [        SS/5      /5      n[	        X5        g )Nr9   r;   )r   r~   extract_unique_pointsr   r!   )r   eupr   s      r+   test_extract_unique_points*TestGeomMethods.test_extract_unique_pointsF  s:    	"88:j&&)9:;<C*r-   c                    U R                   R                  5       n[        [        SS5      /S-  5      n[        R
                  " UR                  R                  US5      5      (       d   e[        UR                  [        SS/5      5        [        U[        5      (       d   eU R                   R                  UR                  :X  d   eg )Nrl   r:   rZ  g1?)r   minimum_bounding_circler   r   r$   rX  r;  r\  r!   r;  r   r   rT   )r   mbccenterss      r+   test_minimum_bounding_circle,TestGeomMethods.test_minimum_bounding_circleK  s    gg--/U3_-12vvcll44WeDEEEEHHHh'(	
 #y))))ww{{cgg%%%r-   c                    [        [        / SQ5      [        / SQ5      /5      nUR                  5       nUR                  S:H  R	                  5       (       d   e[
        R                  " U5      S:H  R	                  5       (       d   e[        [        SS5      [        SS5      /5      n[        SS/5      n[        [
        R                  " US	5      US
S9  [        [
        R                  " U5      U5        UR                  [        R                  " S	S/5      S9n[
        R                  " U5      S:*  R	                  5       (       d   eg )NrA   )r2   rk   r3   r5   )g      rl   r   r:   rl   g     ?g     ?g     ?r   Tr  rn   r-  )r   r   maximum_inscribed_circle	geom_typerX  rU  get_num_pointsr   r   r   	get_pointr!   rt  r$   r   )r   gsmicexpected_centersexpected_lengthmic_tolerances         r+   test_maximum_inscribed_circle-TestGeomMethods.test_maximum_inscribed_circleV  s   89HI
 ))+-224444&&s+q0557777$eCou[+7V%WX #{!34c1%'7D	
 	GNN3/A 33bhh2w>O3P}-499;;;;r-   c                    U R                   R                  U R                   R                  U R                  R                  U R                  R                  4n[	        U R
                  R                  [        R                  5      (       d   e[        U R
                  R                  5      U:X  d   e[        U R
                  [        [        U R
                  5      5      S.5      n[        UR                  5      U:X  d   eg )N)r^   r`   )r   r%  r&  r   r   r   total_boundsr$   ndarrayr  r   r   r   )r   bboxdfs      r+   test_total_bounds!TestGeomMethods.test_total_boundsm  s    xxzz488::txxzz488::=$..55rzzBBBBT^^001T999s4>>7J1KL
 R__%---r-   c           
      R   [        [        SS/5      [        / SQ5      /SS9nSUR                  l        SS /n/ SQn[        [	        SS5      [	        S	S	5      [	        S
S
5      [	        SS5      [	        SS5      /[
        R                  " X2S9SS9n[        XAR                  SS95        g )Nr2   r5   )r3  rD   r  rU   rS   test_index_name)r2   r7   r3   r5   r  r   r4   r:   r<   rC   namesr   Tindex_parts)	r   r   rY   namer   r   from_tuplesr   explode)r   r   expected_index_namerY   r   s        r+   test_explode_geoseries&TestGeomMethods.test_explode_geoseriesw  s    ():6N+OP
 )0$781a[%1+uQ{E!QKq!M((J

 	xt)DEr-   
index_nameNtestc           	         [        [        [        SS5      [        SS5      /5      [        SS5      /5      n[        SS/US.5      nXR                  l        UR                  SS9n[        [        SS5      [        SS5      [        SS5      /5      n[        / SQUS.5      n[        S	S/S	S/// S
Q/ SQ/US /S9nUR                  U5      n[        XF5        g )Nr4   r:   r<   rI   )colr^   Tr  r4   r4   r:   r   r   r   r4   r   r4   r   r  
r   r   r   r   rY   r  r  r   	set_indexr   r   r  r   rz  test_df
expected_sexpected_dfexpected_indexs           r+   test_explode_geodataframe)TestGeomMethods.test_explode_geodataframe  s    z5A;a"<=uQ{KL1a&a89"***.aU1a[%1+FG
"9*#MN#VaV	"t$

 "++N;70r-   c           	         [        [        [        SS5      [        SS5      /5      [        SS5      /5      n[        SS/US.5      nXR                  l        UR                  SS9n[        [        SS5      [        SS5      [        SS5      /5      n[        / SQUS.5      n[        S	S/S	S/// S
Q/ SQ/US /S9nUR                  U5      n[        XF5        g )Nr4   r:   r<   rI   level_1r^   Tr  r  r   r  r  r  r  r  s           r+   !test_explode_geodataframe_level_11TestGeomMethods.test_explode_geodataframe_level_1  s     z5A;a"<=uQ{KLq!f!<="***.aU1a[%1+FG
"yj#QR#VaV	"t$

 "++N;70r-   c           	         [        [        [        SS5      [        SS5      /5      [        SS5      /5      n[        SS/US.5      nXR                  l        UR                  SS9n[        [        SS5      [        SS5      [        SS5      /5      n[        / SQUS.5      n[        / S	QUS
9nUR                  U5      n[        XF5        g )Nr4   r:   r<   rI   r  Fr  r  r  )r  )
r   r   r   r   rY   r  r  r   r  r   r  s           r+   'test_explode_geodataframe_no_multiindex7TestGeomMethods.test_explode_geodataframe_no_multiindex  s     z5A;a"<=uQ{KLq!f!<="***/aU1a[%1+FG
"yj#QRyz:!++N;70r-   c           
      N   SS/SS//[        SS/5      [        SS/5      /S	.n[        US
S9n[        / SQ[        SS/5      [        SS/5      [        SS/5      [        SS/5      /S	./ SQS
S9nUR                  S5      n[        XC5        UR                  SS9n[        XC5        g )Nname1name2name3name4r  r<   rC   r  r2   r`   r^   rU   rS   r  r  r  r  )r   r   r4   r4   r   r`   )columnr   r   r  r   r   dr   r  exploded_dfs        r+   test_explode_pandas_fallback,TestGeomMethods.test_explode_pandas_fallback  s    w''7);<#VV$45z66BR7ST
 1$'"</0/0/0/0	 
 kk&)!+; kkk0!+;r-   c           
      H   SS/SS//[        SS/5      [        SS/5      /S	.n[        US
S9n[        / SQ[        SS/5      [        SS/5      [        SS/5      [        SS/5      /S	.S
S9nUR                  SSS9n[        XC5        UR                  SSS9n[        XC5        g )Nr  r  r  r  r  r  r  r2   r  rU   rS   r  r`   Tignore_index)r  r  r  r  s        r+   )test_explode_pandas_fallback_ignore_index9TestGeomMethods.test_explode_pandas_fallback_ignore_index  s    w''7);<#VV$45z66BR7ST
 1$'"</0/0/0/0	 
 kk&tk<!+; kkdkC!+;r-   outer_index)r4   r  1c                 $   [         R                  " XU// SQ/SS9n[        S/ SQ0[        S5       Vs/ s H  n[	        X34US4/5      PM     snUS9nUR                  SS	9n[        [        SS5      [        SS5      [        S
S
5      [        S
S5      [        SS5      [        SS5      /5      n[        / SQUS.5      n[         R                  " S Vs/ s H	  nU/UQ7PM     sn/ SQS9n	UR                  U	5      n[        XW5        g s  snf s  snf )Nr  firstsecondr  valsr<   r   r^   rY   Tr  r4   r:   r4   r4   r:   r:   r<   r<   r  r^   )r3   r5   r9   r  r;   r=   )r  r  Nr   from_arraysr   r   r   r  r   r   r  r  r   )
r   r  rY   r%  rz  r  r  r  pairr  s
             r+   test_explode_pandas_multi_index/TestGeomMethods.test_explode_pandas_multi_index  s(   &&4i@%
 Y<A!HEHqj1&1a&!12HE
 ***.aaaaaa	

 #,>J#WX#// MLD $t$L ,
 "++N;703 F$s   D
Dc                    [         R                  " XU// SQ/SS9n[        S/ SQ0[        S5       Vs/ s H  n[	        X34US4/5      PM     snUS9nUR                  SS	9n[        [        SS5      [        SS5      [        S
S
5      [        S
S5      [        SS5      [        SS5      /5      n[        / SQUS.5      n[         R                  " US
4US
4US4US4US4US4/SS/S9nUR                  U5      n[        XW5        g s  snf )Nr  r  r  r  r<   r   r  Fr  r4   r:   r  r  r  r  r  	r   r  rY   r%  rz  r  r  r  r  s	            r+   %test_explode_pandas_multi_index_false5TestGeomMethods.test_explode_pandas_multi_index_false  s7   &&4i@%
 Y<A!HEHqj1&1a&!12HE
 ***/aaaaaa	

 #,>J#WX#//a a a a a a  H%

 "++N;70; Fs   D
c                 2   [         R                  " XU// SQ/SS9n[        S/ SQ0[        S5       Vs/ s H  n[	        X34US4/5      PM     snUS9nUR                  SS	9n[        [        SS5      [        SS5      [        S
S
5      [        S
S5      [        SS5      [        SS5      /5      n[        / SQUS.5      n[        [        [        U5      5      5      nUR                  U5      n[        XW5        UR                  SSS9n[        XW5        g s  snf )Nr  r  r  r  r<   r   r  Tr  r4   r:   r  r  )r  r  )r   r  r   r   r   r  r   r   r   r   r  r   r  s	            r+   ,test_explode_pandas_multi_index_ignore_index<TestGeomMethods.test_explode_pandas_multi_index_ignore_index<  s   &&4i@%
 Y<A!HEHqj1&1a&!12HE
 **$*/aaaaaa	

 #,>J#WXuS%567!++N;70 **$D*A70/ Fs   D
c                    [        S/ SQ0[        S5       Vs/ s H  n[        X4US4/5      PM     sn/ SQS9nUR                  SS9n[        R
                  " / S	Q/ S
Q/5      n[        [        SS5      [        SS5      [        SS5      [        SS5      [        SS5      [        SS5      /US9n[        S/ SQ0UUS9n[        X65        g s  snf )Nr  r  r<   r   r:   	   rt   r  Tr  )r:   r:   r  r  rt   rt   r   r4   r   r4   r   r4   r4   r:   rX   r  	r   r   r   r  r   r  r   r   r   r   r%  rz  r  r  expected_geometryr  s          r+   test_explode_order"TestGeomMethods.test_explode_order]  s    Y<A!HEHqj1&1a&!12HE

 ***.#//!34
 &aaaaaa !

 #'(& 

 	"'71 F   C
c           
      T   [        S/ SQ0[        S5       Vs/ s H  n[        SU5      PM     sn/ SQS9nUR                  SS9n[        R
                  " / SQ/ S	Q/5      n[        S/ SQ0[        S5       Vs/ s H  n[        SU5      PM     snUS9n[        X55        g s  snf s  snf )
Nr  r  r<   r   r  r  Tr  r  )r   r   r   r  r   r  r   )r   r%  rz  r  r  r  s         r+   test_explode_order_no_multi+TestGeomMethods.test_explode_order_no_multiz  s    Y+0848aeAqk84

 ***.#//	"
 #Y+0848aeAqk84 

 	"'7 5 5s   B 
8B%
c                    [        S/ SQ0[        S5       Vs/ s H  n[        X4US4/5      PM     sn[        SS5      /-   / SQS9nUR	                  SS	9n[
        R                  " / S
Q/ SQ/5      n[        [        SS5      [        SS5      [        SS5      [        SS5      [        SS5      /US9n[        S/ SQ0UUS9n[        X65        g s  snf )Nr  r  r:   r   rn   r  r  Tr  )r:   r:   r  r  rt   )r   r4   r   r4   r   r4   rX   )r4   r4   r:   r:   r<   )	r   r   r   r   r  r   r  r   r   r  s          r+   test_explode_order_mixed(TestGeomMethods.test_explode_order_mixed  s    Y<A!HEHqj1&1a&!12HEqRTV

 ***.#//o.
 &aaaaa !	
 #_%& 

 	"'7/ Fs   C
c                    [        S/ SQ0[        S5       Vs/ s H  n[        X4US4/5      PM     sn/ SQS9nUR                  SS9n[        R
                  " / S	Q/ S
Q/5      n[        [        SS5      [        SS5      [        SS5      [        SS5      [        SS5      [        SS5      /US9n[        S/ SQ0UUS9n[        X65        g s  snf )Nr  r  r<   r   r  r  Tr  )r4   r4   r4   r4   r:   r:   r  r4   r:   rX   r  r  r  s          r+   test_explode_duplicated_index-TestGeomMethods.test_explode_duplicated_index  s    Y<A!HEHqj1&1a&!12HE

 ***.#//!34
 &aaaaaa !

 #'(& 

 	"'7/ Fr  geom_colgeomr^   c           	      0   [        [        [        SS5      [        SS5      /5      [        SS5      /5      n[        SSS/X0US9nUR	                  SS9nUR
                  R                  U:X  d   eUR
                  R                  UR                  :X  d   eg )	Nr4   r:   r<   rI   r  r^   Tr  )r   r   r   r   r  r^   r  _geometry_column_name)r   r  r   rz  r  s        r+   test_explode_geometry_name*TestGeomMethods.test_explode_geometry_name  s    z5A;a"<=uQ{KL51a&(6J***.$$000$$(E(EEEEr-   c           	      T   [        [        [        SS5      [        SS5      /5      [        SS5      /5      n[        SS/XS.SS9nUR	                  SS	9nUR
                  R                  S:X  d   eUR
                  R                  UR                  :X  d   eS
UR                  ;   d   eg )Nr4   r:   r<   rI   )r  r  r^   r  r  Tr  r^   )	r   r   r   r   r  r^   r  r  rJ  )r   r   rz  r  s       r+   $test_explode_geometry_name_two_geoms4TestGeomMethods.test_explode_geometry_name_two_geoms  s    z5A;a"<=uQ{KL1a&!CfU***.$$...$$(E(EEEEW__,,,r-   c                 ~    [        U R                  SS// SQS9n[        U R                  R	                  5       U5        g )Nr%  r&  r   r4   r<   r<   r<   r<   rC   rC   rC   rC   re   re   re   r4  rJ  rY   r   r   r   r   get_coordinatesr  s     r+   test_get_coordinates$TestGeomMethods.test_get_coordinates  s8    !!#J9

 	488335x@r-   c                 |    [        U R                  / SQ/ SQS9n[        U R                  R	                  SS9U5        g )Nr%  r&  r'  r  r  Tr  )r   r   r   r   r  r  s     r+   test_get_coordinates_z&TestGeomMethods.test_get_coordinates_z  s9    !!#9

 	48833d3CXNr-   c                    [         R                  " SS/5      n[        [        R                  " / SQ/ SQ/5      / SQS9n[        UR                  SS9U5        [        [        R                  " S	S
[        R                  // SQ/5      / SQS9n[        UR                  SS9U5        [        [        R                  " S	S
[        R                  S// SQ/5      / SQS9n[        UR                  SSS9U5        g )Nr  zPOINT ZM (1 2 3 4))r[   rh   rf   )rZ   r[         @)r%  r&  r/  r4  rJ  T)	include_mr[   rh   )rZ   r[   rh   r  r  rf   )rZ   r[   rh   r  )r%  r&  r'  r/  )r  r  )r   r   r   r$   r   r   r  r   r   s      r+   test_get_coordinates_m&TestGeomMethods.test_get_coordinates_m  s    !$
 ?O<=#
 	1,,t,<hG Cbff-?@#
 	1,,t,<hG Cbffc24HIJ(
 	1,,tt,LhWr-   c                 v    [        U R                  SS/S9n[        U R                  R	                  SS9U5        g )Nr%  r&  r  Tr  r  r  s     r+   test_get_coordinates_ignore+TestGeomMethods.test_get_coordinates_ignore  s:    !!#J
 	488333FQr-   c                     [        U R                  SS/[        R                  " / SQ5      S9n[	        U R
                  R                  SS9U5        g )Nr%  r&  )r2   r3   r;   r=   r  rD   )rC   r   r  r  r  )re   r   )re   r4   )re   r:   r  Tr  )r   r   r   r  r   r   r  r  s     r+   test_get_coordinates_parts*TestGeomMethods.test_get_coordinates_parts  sM    !!#J((
* 	488333ExPr-   c                     U R                   R                  5       n[        U[        SS/5      5        U R                  R                  5       n[        U[        SS/5      5        g )NgÜ?)r   minimum_bounding_radiusr!   r   r   )r   	mbr_geoms	mbr_liness      r+   test_minimum_bounding_radius,TestGeomMethods.test_minimum_bounding_radius#  sX    GG335	Hh'(	

 GG335	Hh'(	
r-   c                     U R                   R                  5       n[        U[        SS/5      5        U R                  R                  5       n[        U[        SS/5      5        g )Ng۞?rZ   )r   minimum_clearancer!   r   r   )r   mc_geomsmc_liness      r+   test_minimum_clearance&TestGeomMethods.test_minimum_clearance2  sW    77,,.Hh'(	

 77,,.C:	
r-   c                     U R                   R                  5       n[        [        SS/5      [        SS/5      /5      n[	        X5        g )Nr3   r&  r2   )r   minimum_clearance_liner   r   r   )r   	mcl_geomsr   s      r+   test_minimum_clearance_line+TestGeomMethods.test_minimum_clearance_lineA  sD    GG224	,-z66:J/KL
 	y3r-   size)rn   rL  r  c                    U R                   U R                  U R                  U R                  4 H|  nUR	                  U5      n[        UR                  UR                  5        [        UR                  SS95      [        X"R                  UR                  5       -  )    5      U-  :X  a  M|   e   [        R                  " [        SS9   WR	                  USS9nS S S 5        g ! , (       d  f       g = f)NTr  z The 'seed' keyword is deprecatedr   r4   seed)r   r   r   r   sample_pointsr    rY   r   r  r  isnar   r   FutureWarning)r   r  ro  outputr   s        r+   test_sample_points"TestGeomMethods.test_sample_pointsJ  s     GGGGGGLL	
B %%d+Frxx6FNNN56rKK"'')3456=>>
 \\-/QR  A .A SRRs   C""
C0c                     [        U R                  U R                  /5      R                  / SQ5      n[        / SQ/ SQSSS9n[	        [
        R                  " U5      U5        g )Nrn      rL     r   r4   r   r4   sampled_pointsint32rY   r  r&   r   r   r  r   r!   rU  get_num_geometries)r   r  r   s      r+   test_sample_points_array(TestGeomMethods.test_sample_points_array[  sP    $''*+99:JKL7Gw
 	G66v>Ir-   rngr4   r:   r  r   cluster_poissoncluster_normalz'Requires pointpats>=2.5.3 for rng kwargc                 |   U R                   U R                  U R                  4 H  nUR                  X!US9n[	        UR
                  UR
                  5        [        UR                  SS95      [        XDR                  )    5      U-  :X  d   eUc  Mo  UR                  X!US9nUS:X  a  [        XV5        M  [        R                  " [        SS9   [        XV5        S S S 5        M     [        R                  " [        SS9   WR                  SS	S
9  S S S 5        g ! , (       d  f       GM  = f! , (       d  f       g = f)Nr   r&  Tr  r4   z2 out ofr   zpointpats.random module has norn   nonexistentr   )r   r   r   r  r    rY   r   r  r  r   r   r6  AssertionErrorAttributeError)r   r   r  r&  ro  output1output2s          r+   test_sample_points_pointpats,TestGeomMethods.test_sample_points_pointpatsb  s    GGGGGG
B
 &&t&DGrxx7GOOO673r;;,?O;PSW;WWW **4C*H!8*7<~ZH.w@ IH!
& ]]>1QRR6 SR IH SRs   D D-
D*	-
D;c                     [        U R                  U R                  /5      R                  / SQXS9n[        / SQ/ SQSSS9n[	        [
        R                  " U5      U5        g )Nr  r*  r  r  r   r!  r"  )r   r   r&  r  r   s        r+   "test_sample_points_pointpats_array2TestGeomMethods.test_sample_points_pointpats_array  s]     $''*+99V : 
 L7Gw
 	G66v>Ir-   c                     [        U R                  /5      R                  SSS9n[        [        SS/SS/SS//5      /5      n[	        X!5        [        U[         5      (       d   eg )Nr4   mitre)r!  rm   r   r:   )r   r   offset_curver   r   r   )r   ocr   s      r+   test_offset_curve!TestGeomMethods.test_offset_curve  sb    y!..qW.Ej2q'B7QF)CDEFx,"i((((r-   c                     [         R                  " [        SS9   [        U R                  /5      R                  [        S/S/S95        S S S 5        g ! , (       d  f       g = f)Nr  r   r4   r  rX   )r   r6  r7  r   r   r7  r   r  s    r+   test_offset_curve_wrong_index-TestGeomMethods.test_offset_curve_wrong_index  sJ    ]]W
 twwi --faS.EF
 
 
   0A
A!c           	          [         R                  " / SQSSS9nU R                  R                  5       n[	        X5        [        U R                  R                  [        [        SS5      5      5        g )Nz$POLYGON ((0 0, 0.5 0.5, 0.5 0, 0 0))z-POLYGON ((0.5 0.5, 0 0, 0 1, 0.5 1, 0.5 0.5))z-POLYGON ((0.5 0.5, 1 1, 1 0, 0.5 0, 0.5 0.5))z$POLYGON ((1 1, 0.5 0.5, 0.5 1, 1 1))r?  rU   r  rT   r:   rn   	r   r   r   
polygonizer   r    rY   r   r   r   r   r   s      r+   test_polygonizeTestGeomMethods.test_polygonize  sZ    %% 	
 &&(x04::++U5B<-@Ar-   c           	          [         R                  " SS/SSS9nU R                  R                  SS9n[	        X5        [        U R                  R                  [        [        SS	5      5      5        g )
NzPOLYGON ((0 0, 1 1, 1 0, 0 0))zPOLYGON ((1 1, 0 0, 0 1, 1 1))r?  rU   rA  Fnoder:   rn   rB  rD  s      r+   test_polygonize_no_node'TestGeomMethods.test_polygonize_no_node  sa    %%-/OP

 &&E&2x04::++U5B<-@Ar-   c           	         [         R                  " / SQSSS9n[        / SSS9n[         R                  " / SQSSS9n[        / SSS9nU R                  R                  S	S
9n[	        XS   5        [	        X%S   5        [	        X5S   5        [	        XES   5        [        U R                  R                  [        [        SS5      5      5        g )Nr@  r?  rU   rA  z	cut edges)zLINESTRING (5 5, 6 6)zLINESTRING (0.5 1, 0.5 2)zLINESTRING (0.5 -1, 0.5 0)dangleszinvalid ring linesT)fullr   r4   r:   r<   rn   rB  )r   expected_polyexpected_cutsexpected_danglesexpected_invalidr   s         r+   test_polygonize_full$TestGeomMethods.test_polygonize_full  s    !** 	
 "";DA$--
 
 %R.BM&&D&1}Qi8}Qi8/;/;4::++U5B<-@Ar-   zgeom,expected)r2   r  r  r4   r<   r2   )r2   r  rU  r2   )r2   r2   r3   r5   r3   r2   )r2   r3   r5   r3   r2   c                 4    [        X!R                  SS95        g )Nrg   r-  )r   remove_repeated_points)r   r  r   s      r+   test_remove_repeated_points+TestGeomMethods.test_remove_repeated_points  s     	x)D)Ds)D)STr-   c                     [         R                  " [        SS9   [        U R                  /5      R                  [        S/S/S95        S S S 5        g ! , (       d  f       g = f)NrF  r   r4   r  rX   )r   r6  r7  r   r   rW  r   r  s    r+   'test_remove_repeated_points_wrong_index7TestGeomMethods.test_remove_repeated_points_wrong_index  sJ    ]]X
 twwi 77s2$8OP
 
 
r>  c                     [        [        SS5      [        SS5      U R                  U R                  /SS9n[	        XR
                  R                  5       5        g )NrM   rN   rP   rQ   rU   rS   )r   r   r   r   r   r   force_2dr  s     r+   test_force_2dTestGeomMethods.test_force_2d  sQ    h(h(			 
 	x)C)C)L)L)NOr-   c           	          [        U R                  U R                  [        SSS5      U R                  /SS9n[        XR                  R                  5       5        [        U R                  U R                  [        SSS5      U R                  /SS9n[        XR                  R                  S5      5        [        [        / SQ5      [        / SQ5      /5      n[        XR                  R                  S	S/5      5        g )
NrM   rN   r   rU   rS   r:   )r  )r4   r   r4   r>   r  )r   r   r:   )r4   r   r:   r  )r   r4   r:   rb  r4   )
r   r   r   r   r   r   r   force_3dr   r   r  s     r+   test_force_3dTestGeomMethods.test_force_3d  s    h+	 
 	x)C)C)L)L)NOh+	 
 	x)C)C)L)LQ)OPDEOP
 	x)9)91a&)ABr-   c                 4   [        / SQ5      n[        R                  " SS/5      n[        X R                  R                  U5      5        [        [        / SQ5      [        / SQ5      /SS/S9n[        R                  " / S	Q5      n[        R                  " [        S
S9   [        U R                  R                  US S9U5        S S S 5        [        R                  " SS/5      n[        U R                  R                  USS9U5        g ! , (       d  f       NK= f)N)r2   r&  r7   zLGEOMETRYCOLLECTION (MULTILINESTRING ((0 0, 0.5 0.5)), MULTILINESTRING EMPTY)zLGEOMETRYCOLLECTION (MULTILINESTRING EMPTY, MULTILINESTRING ((0 1, 0.5 0.5))))r2   r&  r3   r5   )?rg  )r5   r7   r3   r4   r:   rX   )NzLGEOMETRYCOLLECTION (MULTILINESTRING ((0.5 0.5, 1 0)), MULTILINESTRING EMPTY)Nr   r   r   zWGEOMETRYCOLLECTION (MULTILINESTRING ((0 0, 0.5 0.5)), MULTILINESTRING ((0.9 0.9, 1 1)))zHGEOMETRYCOLLECTION (MULTILINESTRING ((0 1, 1 0)), MULTILINESTRING EMPTY)F)	r   r   r   r   r   shared_pathsr   r   r   )r   liner   r  s       r+   test_shared_paths!TestGeomMethods.test_shared_paths	  s   67%%*5
 	x););)H)H)NOKL34 a&
 %%
 \\N
 #""//$/?	
 %%5*
 	++Be+<h	
!
 
s   %D		
Dc                     [         R                  " [        SS9   U R                  R	                  [        S/S/S95        S S S 5        g ! , (       d  f       g = f)Nz0Index of the Series passed as 'z' does not matchr   r4   r  rX   )r   r6  r7  r   rc  r   r  s    r+   test_force_3d_wrong_index)TestGeomMethods.test_force_3d_wrong_indexB	  sC    ]]P
 GGVQCt45
 
 
r  c           	          [        [        / SQ5      [        SS/SS//5      [        5       [        / SQ5      [        5       /S[	        SS	5      S
9n[        XR                  R                  5       5        g )NrE   rp   rq   rE   rp   rr   rq   )r2   r3   r;   rU   r:   rt   ro   r   r   r   r   r   r   r   
line_merger  s     r+   test_line_mergeTestGeomMethods.test_line_mergeH	  sk    56&'!2Wg4F GH"$34"$ 1+

 	x)<)<)>?r-   c           
          [        [        / SQ5      [        SS/SS//5      [        5       [        SS/SS//5      [        5       /S	[	        S
S5      S9n[        XR                  R                  SS95        g )Nrp  rE   rp   rr   rq   r2   r3   r;   rU   r:   rt   ro   T)directedrq  r  s     r+   test_line_merge_directed(TestGeomMethods.test_line_merge_directedV	  s~    56&'!2Wg4F GH"$&&!1FF3C DE"$ 1+

 	x)<)<d)<)KLr-   zdifferent order in GEOS<3.11c                 z   [         R                  " / SQSS9n[         R                  " / SQSSS9n[        X!R                  5       5        [         R                  " / SQSS9n[         R                  " S/SSS9n[        XCR                  S	S
9S	S9  [         R                  " S/SSS9n[        XSR                  SS
9S	S9  g )N)zLINESTRING (18 4, 4 2, 2 9)zLINESTRING (18 4, 16 16)z#LINESTRING (16 16, 8 19, 8 12, 2 9)LINESTRING (8 6, 12 13, 15 8)LINESTRING (8 6, 15 8)z$LINESTRING (0 0, 0 3, 3 3, 3 0, 0 0)zPOLYGON ((1 1, 2 2, 1 2, 1 1))$LINESTRING (10 7, 13 8, 12 10, 10 7)rU   rS   )z9POLYGON ((0 3, 3 3, 3 0, 0 0, 0 3), (2 2, 1 2, 1 1, 2 2))z#POLYGON ((13 8, 10 7, 12 10, 13 8))zKPOLYGON ((2 9, 8 12, 8 19, 16 16, 18 4, 4 2, 2 9), (8 6, 15 8, 12 13, 8 6))r?  )rT   r  )rz  r{  z(LINESTRING (0 0, 0 15, 12 15, 12 0, 0 0)r|  zBPOLYGON ((12 0, 0 0, 0 15, 12 15, 12 13, 15 8, 12 7.142857, 12 0))TrH  r  zkPOLYGON ((0 15, 12 15, 12 13, 15 8, 12 7.142857, 12 0, 0 0, 0 15), (12 7.666667, 13 8, 12 10, 12 7.666667))F)r   r   r   
build_area)r   r   r   r  noded	non_nodeds         r+   test_build_areaTestGeomMethods.test_build_areae	  s    
 	 
 %% 	
 	x8  
 ""QR

 	ummm&>SWX&&; 
	 	}}%}0T	
r-   )r<   r  rI   zEmpty geom bug in GEOS<3.9.5c                    [        [        SSS5      [        SSS5      [        SS5      U R                  /SS9n[        XR                  R                  S5      5        [        [        / SQ5      [        / S	Q5      /5      n[        [        / S
Q5      [        5       /5      n[        XR                  S5      5        [        [        / SQ5      [        / SQ5      /5      n[        UR                  5       UR                  SSS9R                  5       5        [        [        / S
Q5      [        SS/5      /5      n[        UR                  5       UR                  SSS9R                  5       5        g )Ni)   rO   rR   rU   rS   r4   )r2   r   r  r7   r5   )r2   r  )r  r  rV   )r2   r2   r7   r5   )r2   r2   r2   	pointwise)moder2   rc  )	r   r   r   r   r   set_precisionr   r!   to_wktr  s      r+   test_set_precision"TestGeomMethods.test_set_precision	  sP    c2w'c2w'c2	 
 	x)C)C)Q)QRS)TU=>9:
 34
 	x);<;<34
 	OOqq{CJJL	
 34FF+,
 	OOqq7GHOOQ	
r-   c                    [        / SQU R                  R                  S9n[        XR                  R	                  5       5        U R                  R                  S5      n[        / SQUR                  S9n[        XR	                  5       5        [        U R                  U/5      n[        / SQUR                  S9n[        XR	                  5       5        g )N)rg   rg   rg   rg   rX   r4   )rZ   rZ   rZ   rZ   )rg   rg   rg   rg   rZ   rZ   rZ   rZ   )r   r   rY   r!   get_precisionr  r   )r   r   with_precisionmixeds       r+   test_get_precision"TestGeomMethods.test_get_precision	  s    .d6P6P6V6VWH&@&@&N&N&PQ33AA!D.n6J6JKH&B&B&DE22NCDB%++VH&9&9&;<r-   c           
      <   [        [        SS/5      [        SS/5      S [        SS/5      [        SS5      /[        SS5      SS	9n[	        XR
                  R                  S5      5        [        [        SS
/5      [        SS
/5      S [        SS/5      S /[        SS5      SS	9n[	        XR
                  R                  S5      5        [        [        SS
/5      [        SS
/5      S [        SS/5      [        SS5      /[        SS5      SS	9n[	        XR
                  R                  S5      5        [        [        SS/5      [        SS
/5      S [        SS/5      [        SS5      /[        SS5      SS	9n[	        XR
                  R                  / SQ5      5        g )NrE   rp   r2   r3   r   r:   rt   rU   r   rq   rr   r;   r4   rm   )r   r4   r4   rm   r   )r   r   r   r   r!   r   get_geometryr  s     r+   test_get_geometry!TestGeomMethods.test_get_geometry	  s   FG,-FG,-FF+,a 1+

 	Hhh&;&;A&>?GW-.GW-.FF+, 1+

 	Hhh&;&;A&>?GW-.GW-.FF+,a 1+

 	Hhh&;&;B&?@FG,-GW-.FF+,a 1+

 	Hhh&;&;<L&MNr-   )=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   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rz   r   r{   ru   rv   rw   r|   r}   r~   rx   ry   )F)__name__
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   markskipifr   r   r  r  r  r  r  r  r  r   r#  r)  r0  r5  r8  r<  rA  rK  rO  rY  r]  rb  rh  rl  rU  geos_versionrq  rv  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,  r0  r3  r8  rA  rD  rL  rU  r]  parametrizer   r   r   rf  ri  rm  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.  r1  r5  r8  r>  rC  rG  rS  rW  r]  rb  rh  rt  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$   randomdefault_rngPOINTPATS_GE_253r0  r3  r9  r<  rE  rJ  rS  r   r
   rX  r[  r_  rd  rj  rm  rs  rw  r  r  r  r  __static_attributes__r  r-   r+   r/   r/   0   s   g
R0
?X U:'x  [[J/EFW GW$D
=JL
BP
(O1D> [[J/EF G-(-J$'
JS
 [[,,z9BWXU YU@ [[J/EF G
OS*RS.L`
2S  [[J/EF& G&
8 [[z)2H  

6U,SRQ&	Q&
	U=; [[*]+4W  **" [[*]+4W  
E
E=E>;>< [[M)2HI[[,,z9BWX4 Y J4N [[M)2HI
0 J
0T	%: [[J/EF G= [[M)2IJS KS.%( [[* &&!1FF3C DE CD
 %+	
  [[M)2IJ% K!"% [[.DE2 F2< [[,,z9BWX)7 Y)7VV$CL [[,,z9BWXJ YJ [[,,z9BWX[[=sC5s;	
F YF
 [[M)2HI
 J
G..-F--
/M	
+
+ [[J/EF" G"G.$	J11,83	N'	N'* [[J/EF	L G	L3
8 [[*]+4W  

:$+
	& [[M)2HI< J<,.F [[\D&>:1 ;1" [[\D&>:1 ;1$ [[\D&>:1 ;1<8<6 [[],<= 1 > 1D [[],<=$1 >$1L [[],<=1 >1@8:8$8888 [[Z&*)=>F ?F-AO [[M)2HIX JX:RQ0

 [[M)2HI4 J4 [[V\2/ 3/ J [[UT1bii.C.C.C.K$LM[[V\2[[X(9;K'LM[[%N  7 N 3 N7. [[UT1bii.C.C.C.K$LM[[X(9;K'LM[[%N  J N N
J)GB BB: [[,,z9BWX[[ *%MNO*%EFG
 '"RST'"JKL		
U YUQ
PC>.
`6@ [[,,z9BWXM YM [[z)2P  8
8
t [[y(1O  ,
,
\=3Or-   r/   )7rb   r  packaging.versionr   numpyr$   r]   r   r   r   r   r   rU  r	   shapely.geometryr
   r   r   r   r   r   r   r   shapely.geometry.collectionr   shapely.opsr   	geopandasr   r   geopandas._compatr   r   r   geopandas.baser   r   geopandas.testingr   geopandas.tests.utilr   r   r   numpy.testingr   pandas.testingr   r    r!   	pointpats__version__r  ImportErrorr,   r/   r  r-   r+   <module>r     s      %  ? ?  	 	 	 ; # - D D (  7 X X , V Vy4459II
.`'O `'O  s   B5 5C ?C 