
    \ij%                        S SK rS SKrS SKrS SK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Jr  \R                   R#                  \R$                  S:  SS9\R                   R'                  S	\\-   5      S
 5       5       r\R                   R#                  \R$                  S:  SS9S 5       r\R                   R#                  \R$                  S:  SS9S 5       r\R                   R#                  \R$                  S:  SS9S 5       r\R                   R#                  \R$                  S:  SS9S 5       r\R                   R#                  \R$                  S:  SS9\R                   R'                  S	\5      S 5       5       r\R                   R#                  \R$                  S:  SS9\R                   R'                  S	\5      S 5       5       r\R                   R#                  \R$                  S:  SS9S 5       r\R                   R#                  \R$                  S:  SS9S 5       r\R                   R#                  \R$                  S:  SS9S 5       rg)    N)Geometry
LineStringMultiPolygonPolygon)UnsupportedGEOSVersionError)assert_geometries_equal)	all_typesall_types_zempty_line_string)      r   zrequires >= 3.12)reasongeometryc                 @   [         R                  " U /5      nUR                  S:X  d   eUR                  [        R
                  :X  d   eUR                  5       SL d   e[         R                  " U /5      n[        R                  " [        /[        S9n[        X5        g )Nr   T)dtype)shapelycoverage_is_validndimr   npbool_itemcoverage_invalid_edgesarrayr   objectr   )r   actualexpecteds      ^/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_coverage.pytest_coverage_is_validr      s     &&z2F;;!<<288###;;=D   ++XJ7Fxx*+6:HF-    c                      [        SS/5      [        SS/5      [        / SQ5      /n [        R                  " U 5      (       d   e[        R                  " U 5      [
        :H  R                  5       (       d   eg )Nr   r      r#   r#   r   r   r#   r!   r%   r"   r$   r!   )r   r   r   r   r   r   allgeomss    r   $test_coverage_is_valid_non_polygonalr*   !   sm    
 	FF#$FF#$89E
 $$U++++**515FFKKMMMMr   c                     [        / SQ5      n [        / SQ5      n[        R                  " X/5      (       d   e[        R                  " [        R                  " X/5      5      R                  5       (       d   e[        / SQ5      n[        R                  " X/5      (       a   e[        R                  " X/5      n[        SS/5      [        / SQ5      /n[        X45        [        / SQ5      n[        R                  " X/5      (       a   e[        R                  " X/5      n[        R                  " U5      R                  5       (       a   eg )N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   is_emptyr   r'   r   r   any)poly1poly2poly2bresultr   poly3s         r    test_coverage_is_valid_polygonalr7   .   s    45E45E$$e^4444G::E>JKOOQQQQ ABF((%9999++UO<FFF+,j9U.VWHF- <=E((%8888++UN;F'++-----r   c                     [         R                  " S5      n [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " X/SS9(       d   e[         R                  " X/SS9(       d   e[         R                  " X/SS9n[	        U[
        /S-  5        [         R                  " X/SS9n[	        U[
        /S-  5        [         R                  " X/SS9(       a   e[         R                  " X/SS9(       a   e[         R                  " S	S
/5      n[         R                  " X/SS9n[	        XE5        [         R                  " X/SS9n[	        XE5        [         R                  " X/SS9(       d   e[         R                  " X/SS9(       d   e[         R                  " X/SS9(       a   e[         R                  " X/SS9(       a   e[         R                  " X/SS9(       d   e[	        [         R                  " X/SS9[
        /S-  5        [	        [         R                  " X/SS9[         R                  " S	S/5      5        g )N4POLYGON ((0 10, 10 10, 10 7, 10 3, 10 0, 0 0, 0 10))7POLYGON ((10 10, 20 10, 20 0, 10 0, 10 3, 10 7, 10 10))=POLYGON ((10 10, 20 10, 20 0, 10 0, 10 3, 10 5, 10 7, 10 10))z=POLYGON ((10 10, 20 10, 20 0, 10 0, 10 3, 11 5, 10 7, 10 10))        )	gap_widthg       @   LINESTRING (10 7, 10 3)LINESTRING (10 3, 10 5, 10 7)r/         ?g      ?zLINESTRING (10 3, 11 5, 10 7))r   from_wktr   r   r   r   )r2   r3   poly2_extrapoly2_shiftr5   r   s         r    test_coverage_is_valid_gap_widthrE   D   s0    STEVWE ""GK ""GK
 $$e^sCCC$$e^sCCC++UNcJFF%6$7!$;<++UNcJFF%6$7!$;< ((%)=MMM((%)=MMM	"$CDH ++U,@CPFF-++U,@CPFF- $$e%9SIII$$e%9SIII((%)=MMM((%)=MMM$$e%9SIII&&';sK	a &&';sK35TUVr   c                     [         R                  " S5      n [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[        R                  " XU/XU//5      n[         R                  R                  US5      n[         R                  " S/S-  / SQ/5      n[        XV5        [        R                  " US	S
9n[         R                  R                  US5      n[        XV5        g )Nr9   r:   r;   z7POLYGON ((20 10, 30 10, 30 7, 30 3, 30 0, 20 0, 20 10))r<   LINESTRING EMPTYr   )r?   r@   rG   F)order)r   rB   r   r   libr   r   )r2   r3   rC   r6   arrr5   r   arr2s           r   "test_coverage_invalid_edges_gufuncrM   z   s    STEVWE""GK VWE
((U5)E+FG
HC[[//S9F 1$	
	H F-88Cs#D[[//c:FF-r   zGEOS < 3.12c                    U R                   S;   aw  [        R                  " U S5      n[        U[        5      (       d   e[        R
                  " U5      [        R
                  " U 5      :X  d   eUR                  U 5      (       d   eg [        R                  " [        SS9   [        R                  " U S5        S S S 5        g ! , (       d  f       g = f)Nr   r   r<   incorrect geometry typematch)
	geom_typer   coverage_simplify
isinstancer   get_type_idequalspytestraises	TypeErrorr   r   s     r   test_coverage_simplify_scalarsr\      s     88**8S9&(++++""6*g.A.A(.KKKK}}X&&&&]]9,EF%%h4 GFFs   !C
Cc                    U R                   S;   a  [        R                  " X /S5      n[        U[        R
                  5      (       d   eUR                  S:X  d   e[        R                  " U5      [        R                  " U 5      :H  R                  5       (       d   eg [        R                  " [        SS9   [        R                  " X /S5        S S S 5        g ! , (       d  f       g = f)NrO   r<   )r>   rP   rQ   )rS   r   rT   rU   r   ndarrayshaperV   r'   rX   rY   rZ   r[   s     r   !test_coverage_simplify_geom_typesr`      s     88**H+?E&"**----||t#####F+w/B/B8/LLQQSSSS]]9,EF%%x&:C@ GFFs   8C
C(c                      [        [        / SQ5      [        / SQ5      /5      n [        R                  " U S5      nUR	                  [        R
                  " S5      5      (       d   eg )Nr&   )r>   r>   )r>   r   )r   r   )r   r>   rb   r#   z=MULTIPOLYGON (((0 1, 1 1, 1 0, 0 1)), ((2 3, 3 3, 3 2, 2 3))))r   r   r   rT   rW   rB   )mpr   s     r   #test_coverage_simplify_multipolygonrd      sc    	<=<=	

B &&r1-F==K	
   r   c                  N   [         R                  " [        R                  " / SQ5      [        R                  " / SQ5      /5      n [        R                  " U S5      n[        R                  " U S5      n[        R                  " U S5      n[        R
                  " U[        R                  " U 5      5      R                  5       (       d   e[        R
                  " U[        R                  " SS/5      5      R                  5       (       d   e[        R
                  " U[        R                  " SS	/5      5      R                  5       (       d   e[        R                  " U SS
S9n[        R
                  " U[        R                  " SS/5      5      R                  5       (       d   eg )N)r!   )   r   rf   
   rh      r   rh   r!   )rk   ri   rg   )rf   rf   )r   rf   rk   r#      rh   z)POLYGON ((20 10, 0 10, 0 0, 20 0, 20 10))z+POLYGON ((20 10, 0 10, 0 20, 20 20, 20 10))z$POLYGON ((20 10, 0 10, 20 0, 20 10))z$POLYGON ((20 10, 0 10, 0 20, 20 10))F)simplify_boundary)	r   r   r   r   rT   rW   	normalizer'   rB   )polygonslow_tolerancemid_tolerancehigh_toleranceno_boundarys        r   test_coverage_simplify_arrayrt      sj   xxOOQROOTU	
H --h:M--h:M..x<N>>-):):8)DEIIKKKK>>;=	
 
ce   >>66	
 
ce   ++HbERK>>;=	
 
ce  r   c                     [        / SQ5      [        / SQ5      /n [        R                  " [        5         [        R
                  " U 5        S S S 5        [        R                  " [        5         [        R                  " U 5        S S S 5        [        R                  " [        5         [        R                  " U S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NZ= f! , (       d  f       g = f)Nr,   r-   rA   )r   rX   rY   r   r   r   r   rT   r(   s    r   test_coverage_unsupported_geosrv      s     	0101E 
2	3!!%( 
4 
2	3&&u- 
4 
2	3!!%- 
4	3 
4	3 
4	3 
4	3s#   C.C'C*
C
C'*
C8)numpyr   rX   r   r   r   r   r   shapely.errorsr   shapely.testingr   shapely.tests.commonr	   r
   r   markskipifgeos_versionparametrizer   r*   r7   rE   rM   r\   r`   rd   rt   rv    r   r   <module>r      s       7 3  G((:5>PQY%<=. > R. G((:5>PQ	N R	N G((:5>PQ. R.* G((:5>PQ2 R2j G((:5>PQ. R.6 G((:5mLY/5 0 M5 G((:5mLY/A 0 MA G((:5mL M G((:5mL( M(V G((J6?QR. S.r   