
    _ hj%                        d dl Zd dlZd dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ ej                   j#                  ej$                  dk  d      ej                   j'                  d	eez         d
               Zej                   j#                  ej$                  dk  d      d        Zej                   j#                  ej$                  dk  d      d        Zej                   j#                  ej$                  dk  d      d        Zej                   j#                  ej$                  dk  d      d        Zej                   j#                  ej$                  dk  d      ej                   j'                  d	e      d               Zej                   j#                  ej$                  dk  d      ej                   j'                  d	e      d               Zej                   j#                  ej$                  dk  d      d        Zej                   j#                  ej$                  dk  d      d        Zej                   j#                  ej$                  dk\  d      d        Zy)    N)Geometry
LineStringMultiPolygonPolygon)UnsupportedGEOSVersionError)assert_geometries_equal)	all_typesall_types_zempty_line_string)      r   zrequires >= 3.12)reasongeometryc                 <   t        j                  | g      }|j                  dk(  sJ |j                  t        j
                  k(  sJ |j                         du sJ t        j                  | g      }t	        j                  t        gt              }t        ||       y )Nr   T)dtype)shapelycoverage_is_validndimr   npbool_itemcoverage_invalid_edgesarrayr   objectr   )r   actualexpecteds      w/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/test_coverage.pytest_coverage_is_validr      s     &&z2F;;!<<288###;;=D   ++XJ7Fxx*+6:HFH-    c                      t        ddg      t        ddg      t        g d      g} t        j                  |       sJ t        j                  |       t
        k(  j                         sJ y )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*   !   sg    
 	FF#$FF#$89E
 $$U+++**515FFKKMMMr   c                  h   t        g d      } t        g d      }t        j                  | |g      sJ t        j                  t        j                  | |g            j                         sJ t        g d      }t        j                  | |g      rJ t        j                  | |g      }t        ddg      t        g d      g}t        ||       t        g d      }t        j                  | |g      rJ t        j                  | |g      }t        j                  |      j                         rJ y )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$$eU^444G::E5>JKOOQQQ ABF((%999++UFO<FFF+,j9U.VWHFH- <=E((%888++UEN;F'++----r   c                     t        j                  d      } t        j                  d      }t        j                  d      }t        j                  d      }t        j                  | |gd      sJ t        j                  | |gd      sJ t        j                  | |gd      }t	        |t
        gdz         t        j                  | |gd      }t	        |t
        gdz         t        j                  | |gd      rJ t        j                  | |gd      rJ t        j                  d	d
g      }t        j                  | |gd      }t	        ||       t        j                  | |gd      }t	        ||       t        j                  | |gd      sJ t        j                  | |gd      sJ t        j                  | |gd      rJ t        j                  | |gd      rJ t        j                  | |gd      sJ t	        t        j                  | |gd      t
        gdz         t	        t        j                  | |gd      t        j                  d	dg             y )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   sR    STEVWE ""GK ""GK
 $$eU^sCCC$$eU^sCCC++UENcJFF%6$7!$;<++UENcJFF%6$7!$;< ((%)=MMM((%)=MMM	"$CDH ++UK,@CPFFH-++UK,@CPFFH- $$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                     t        j                  d      } t        j                  d      }t        j                  d      }t        j                  d      }t        j                  | ||g| ||gg      }t         j                  j                  |d      }t        j                  dgdz  g dg      }t        ||       t        j                  |d	
      }t         j                  j                  |d      }t        ||       y )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
((UE5)E;+FG
HC[[//S9F 1$	
	H FH-88Cs#D[[//c:FFH-r   zGEOS < 3.12c                 ~   | j                   dv rit        j                  | d      }t        |t              sJ t        j
                  |      t        j
                  |       k(  sJ |j                  |       sJ y t        j                  t        d      5  t        j                  | d       d d d        y # 1 sw Y   y xY w)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 	5%%h4	5 	5 	5s   B33B<c                    | j                   dv rt        j                  | | gd      }t        |t        j
                        sJ |j                  dk(  sJ t        j                  |      t        j                  |       k(  j                         sJ y t        j                  t        d      5  t        j                  | | gd       d d d        y # 1 sw Y   y xY w)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**Hh+?E&"**---||t#####F+w/B/B8/LLQQSSS]]9,EF 	A%%x&:C@	A 	A 	As   +CCc                      t        t        g d      t        g d      g      } t        j                  | d      }|j	                  t        j
                  d            sJ y )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      s^    	<=<=	

B &&r1-F==K	
  r   c                     t        j                  t        j                  g d      t        j                  g d      g      } t        j                  | d      }t        j                  | d      }t        j                  | d      }t        j
                  |t        j                  |             j                         sJ t        j
                  |t        j                  ddg            j                         sJ t        j
                  |t        j                  dd	g            j                         sJ t        j                  | dd
      }t        j
                  |t        j                  ddg            j                         sJ y )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      sg   xxOOQROOTU	
H --h:M--h:M..x<N>>-):):8)DEIIKKK>>;=	
 
ce   >>66	
 
ce   ++HbERK>>;=	
 
ce  r   c                     t        g d      t        g d      g} t        j                  t              5  t	        j
                  |        d d d        t        j                  t              5  t	        j                  |        d d d        t        j                  t              5  t	        j                  | d       d d d        y # 1 sw Y   yxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)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 )!!%() 
2	3 .&&u-. 
2	3 .!!%-. .) ). .. .s#   C+C"CCCC#)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   