
    _ h5                     b   d dl mZ d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZ ej*                   ej,                  ej.                  ej0                  j3                  ej4                  dk  d            ej6                  ej8                  ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ejF                  ejH                  fZ%ejL                  ejN                  ejP                  ejR                  ejT                  ejV                  ejX                  ejZ                  ej\                  ej^                   ej,                   eej`                  d	
      ej0                  j3                  ej4                  dk  d            ejb                  ejd                  ejf                  fZ4e4dd Z5ejl                  ejV                  fejn                  ejP                  ffZ8ej0                  js                  de
ez         ej0                  js                  de%      d               Z:ej0                  js                  de%      d        Z;ej0                  js                  de%      d        Z<ej0                  js                  de
      ej0                  js                  de4      d               Z=ej0                  js                  de4      d        Z>ej0                  js                  de4      d        Z?d Z@ej0                  js                  de
      ej0                  js                  de8      d               ZAej0                  js                  de
      ej0                  js                  de8      d               ZBej0                  js                  de8D  cg c]  } | d    	 c}       d        ZCej0                  js                  de8      d        ZDej0                  js                  de8D  cg c]  } | d    	 c}       d        ZEej0                  js                  de8D  cg c]  } | d    	 c}       d        ZFd ZGd  ZHd! ZIej0                  j3                  ej4                  dk  d      d"        ZJej0                  js                  de
      d#        ZKej0                  js                  de      d$        ZLej0                  j3                  ej4                  dk  d%      ej0                  js                  de      d&               ZMej0                  j3                  ej4                  dk  d%      ej0                  js                  de      d'               ZNej0                  js                  d(ed)fed)fed*fed)fg      d+        ZOd, ZPej0                  js                  d-edfdefd.g      d/        ZQd0 ZRd1 ZSej0                  js                  d-edfdefd.g      d2        ZTd3 ZUej0                  js                  d4g d5      d6        ZVd7 ZWej0                  js                  d8 eg d9      d)f eg d:      d*f eg d9      d)f eg d:      d*f eg d;      d)f eg d<      d)fed)fed)fed)fd=g
      d>        ZXd? ZYej0                  js                  de
      ej0                  js                  de5      d@               ZZej0                  js                  de
      dA        Z[ej0                  js                  de
dBz         dC        Z\dD Z]yc c} w c c} w c c} w )E    )partialN)
LinearRing
LineStringPoint)	all_typesall_types_mall_types_zall_types_zmemptygeometry_collectionignore_invalidline_stringlinear_ringpointpolygon      r   zGEOS < 3.12)reason)marksg      ?distance)r   
   r   zGEOS < 3.10geometryfuncc                 x     || | g      }|j                   dk(  sJ |j                  t        j                  k(  sJ y )N   )shapedtypenpbool_)r   r   actuals      y/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/test_predicates.pytest_unary_arrayr&   H   s;     8X&'F<<4<<288###    c                     t        j                  dt         j                        } | t        |      }||u sJ |j                  t         j                  k(  sJ y N r!   outr"   r   uint8r   r!   r   r-   r$   s      r%   test_unary_with_kwargsr1   P   sD    
((2RXX
&C%S!FS==<<288###r'   c                 r    | t         j                  t         j                  fv r | d       sJ y  | d       rJ y N)shapelyis_valid_input
is_missing)r   s    r%   test_unary_missingr7   X   s5    &&(:(:;;Dzz:~:r'   ac                    t        t        j                  |       xr t        j                  dk        5   || | gt              }d d d        j
                  dk(  sJ |j                  t        j                  k(  sJ y # 1 sw Y   :xY w)Nr   r   )	r   r4   is_emptygeos_versionr   r    r!   r"   r#   )r8   r   r$   s      r%   test_binary_arrayr<   `   sx     
((+Q0D0Dz0Q	R % q!fe$% <<4<<288###% %s   A==Bc                     t        j                  dt         j                        } | t        t        |      }||u sJ |j                  t         j                  k(  sJ y r)   r.   r0   s      r%   test_binary_with_kwargsr>   k   sF    
((2RXX
&C%C(FS==<<288###r'   c                      | t        j                  t        d d g      t        j                  d t        d g            }| j                         sJ y r3   )r"   arrayr   allr   r$   s     r%   test_binary_missingrC   s   s>    "((E4./4:M1NOFG==??r'   c                      t        g d      } t        ddg      }t        t        j                  dk        5  t        j                  | |      j
                  sJ 	 d d d        y # 1 sw Y   y xY w)N)r   r   )r   r   )r   r   )r   r   )      )   rG   r   )r   r   r4   r;   intersectionr:   )r8   bs     r%   test_binary_empty_resultrK   y   sb    34AFF#$A	,,z9	: 3 ##Aq)22223 3 3s   #A$$A-zfunc, func_binc                 v   t        t        j                  |       xr t        j                  dk        5   || | gdd      } || | gt	        dd            }d d d        j
                  dk(  sJ |j                  t        j                  k(  sJ t        j                  j                  |       y # 1 sw Y   ZxY w)Nr   r   r   r   )r   r4   r:   r;   r   r    r!   r"   r#   testingassert_allclose)r8   r   func_binr$   expecteds        r%   test_xy_arrayrQ      s     
((+Q0D0Dz0Q	R 1 q!fa#QFE!QK0	1
 <<4<<288###JJvx01 1s   "B//B8c           
      r   t        j                  | d       }t        t        j                  |       xr t         j                  dk        5   ||g dg d      } || t        dd      t        dd      t        dd      g      }d d d        t        j                  j                         y # 1 sw Y   *xY w)	Nc                     | S r3   r*   xs    r%   <lambda>z)test_xy_array_broadcast.<locals>.<lambda>   s     r'   r   r   rG   r   rG   r   r   r   rG   r   r   )	r4   	transformr   r:   r;   r   r"   rM   rN   )r8   r   rO   a2r$   rP   s         r%   test_xy_array_broadcastr[      s     
		1k	*B	((+Q0D0Dz0Q	R H b)Y/AaU1a[%1+FG	H
 JJvx0H Hs   9B--B6c                     t        j                  t        d       } | |g dg d      } | |ddgddgddgg      }t        j                  j                  ||       y )Nc                     | S r3   r*   rT   s    r%   rV   z"test_xy_array_2D.<locals>.<lambda>   s    A r'   rW   rX   r   rG   r   r   )r4   rY   r   r"   rM   rN   )r   polygon2r$   rP   s       r%   test_xy_array_2Dr_      sU      +6H(Iy1FH1v1v1v67HJJvx0r'   c                      | t        t        t        g      dd      } |t        t        gt        dd            }t        j
                  j                  ||       y )Nr   r   )_prepare_with_copyr   r   r   r"   rM   rN   )r   rO   r$   rP   s       r%   test_xy_preparedrb      sF    $g{%;<aCF+.a<HJJvx0r'   c                    t        j                  dt         j                        }t        j                  t
        d       } | ||j                  |j                  |      }||u sJ |j                  t         j                  k(  sJ y )Nr*   r+   c                     | S r3   r*   rT   s    r%   rV   z%test_xy_with_kwargs.<locals>.<lambda>   s     r'   r,   )	r"   r   r/   r4   rY   r   rU   yr!   )r   r-   point2r$   s       r%   test_xy_with_kwargsrg      sb    
((2RXX
&Cuk2F&&((FHH#6FS==<<288###r'   c           
          | t        j                  t        t        t        d g      t        j                  t        j                  t         j                  t        j                  t        j                  g      t        j                  t        j
                  t        j
                  t         j                  t        j
                  g            }t         j                  j                  |g d       y )N)TFFF)r"   r@   r   rU   nanre   rM   rN   rB   s     r%   test_xy_missingrj      s    
%t,-
%''266577EGG45
%''577BFFEGG45F
 JJv'BCr'   c                     t        j                  dd      } t        j                  dd      }t        j                  | |d g| d      }t        j                  j                  |g d       |j                  t        j                  k(  sJ t        j                  | |d g| d      }t        j                  j                  |g d	       |j                  t        j                  k(  sJ t        j                  | |       j                         d
u sJ t        j                  | |      j                         du sJ t        j                  | |ddt        j                  g      }t        j                  j                  |g d       y )N2      I@ffffff@皙?)	toleranceTFF皙?TTFTFFTF)
r4   pointsequals_exactr"   rM   rN   r!   r#   itemri   p1p2r$   s      r%   test_equals_exact_tolerancer|      s,   	A	B	c	"B!!2r4."EFJJv';<<<288###!!2r4."DFJJv':;<<288### B',,.$666B',,.%777 !!"bT34GHFJJv';<r'   c                      t        ddg      } t        ddg      }t        j                  | |      rJ t        j                  | |d      sJ y )NrE   rG   rG   T)	normalize)r   r4   rw   l1l2s     r%   test_equals_exact_normalizer      sN    	VV$	%B	VV$	%B##B+++B$777r'   c                     t        ddg      } t        ddg      }t        j                  | |      rJ t        ddg      } t        ddg      }t        j                  | |      rJ t        j                  | |      sJ t	               5  t        dt
        j                  fdg      } t        dt
        j                  fdg      }d d d        t        j                  | |      sJ t        j                  | |      rJ y # 1 sw Y   :xY w)NrE   r~   )r   r   r   )rG   rG   r   )r   r   rG   )rG   rG   rG   r   )r   r4   equals_identicalrw   r   r"   ri   r   s     r%   test_equals_identicalr      s     
VV$	%B	VV$	%B''B/// 
Y	*	+B	Y	*	+B''B///B''' 
	 /!RVVf-.!RVVf-./ ##B+++##B++++	/ /s   ;C;;Dc                  b   t        j                  dd      } t        j                  dd      }t        j                  | |d g| d      }t        j                  j                  |g d       |j                  t        j                  k(  sJ t        j                  | |d g| d      }t        j                  j                  |g d	       |j                  t        j                  k(  sJ t        j                  | |ddt        j                  g      }t        j                  j                  |g d
       y )Nrl   rm   rn   ro   rp   r   rr   rs   rt   ru   )
r4   rv   dwithinr"   rM   assert_equalr!   r#   rN   ri   ry   s      r%   test_dwithinr      s    	A	B	c	"B__b"d^R$?FJJF$89<<288###__b"d^R#>FJJv':;<<288### __RtS"&&.ABFJJv';<r'   c                     t        j                  |       rJ t         j                  dk\  rt        j                  |       rJ y y Nr   )r4   has_zr;   has_mr   s    r%   test_has_z_has_m_all_typesr      s<    }}X&&&z)==**** *r'   c                     t        j                  |       rt        j                  d       t        j                  |       sJ t         j
                  dk\  rt        j                  |       rJ y y )N.GEOSHasZ with EMPTY geometries is inconsistentr   )r4   r:   pytestskipr   r;   r   r   s    r%   test_has_z_has_m_all_types_zr   	  sW    !DE=="""z)==**** *r'   z,M coordinates not supported with GEOS < 3.12c                     t        j                  |       rt        j                  d       t        j                  |       rJ t        j
                  |       sJ y )Nz.GEOSHasM with EMPTY geometries is inconsistentr4   r:   r   r   r   r   r   s    r%   test_has_m_all_types_mr     sC     !DE}}X&&&=="""r'   c                     t        j                  |       rt        j                  d       t        j                  |       sJ t        j
                  |       sJ y )Nr   r   r   s    r%   test_has_z_has_m_all_types_zmr     sC     !DE=="""=="""r'   zgeometry,expectedFTc                 8    t        j                  |       |k(  sJ y r3   )r4   	is_closed)r   rP   s     r%   test_is_closedr   *  s     X&(222r'   c                      t        j                  dd      } t        j                  dd      }t        j                  | |      }t        |t              sJ |dk(  sJ y )Nr   rG   	FF0FFF0F2)r4   rv   relate
isinstancestrry   s      r%   test_relater   7  sP    	1	B	1	B^^B#Ffc"""[   r'   zg1, g2)NNc                 4    t        j                  | |      J y r3   )r4   r   g1g2s     r%   test_relate_noner   ?  s    >>"b!)))r'   c                  .   t        j                  g d      } t        j                  dddd      }t        j                  | |      dk(  sJ t        j                  | |d      sJ t        j                  | |d      sJ t        j                  | |d      rJ y )N)rE   )rG   r   r~   r   r   	11F00F212	*********z	F********)r4   linestringsboxr   relate_pattern)gr   s     r%   test_relate_patternr   D  s    45Akk!Q1%G>>!W%444!!!Wk:::!!!Wk:::%%a+>>>>r'   c                      t        t        j                  dk        5  t        j                  t        t        d      j                         du sJ 	 d d d        y # 1 sw Y   y xY w)Nr   r   T)r   r4   r;   r   r   rx   r*   r'   r%   test_relate_pattern_emptyr   M  sV    	,,z9	: L %%eUG<AACtKKKL L Ls   2AA"c                 V    t        j                  | |d      j                         du sJ y )Nr   F)r4   r   rx   r   s     r%   test_relate_pattern_noner   T  s(    !!"b'2779UBBBr'   c                  h   t        j                  t        j                  d      5  t        j                  t
        t        d       d d d        t        j                  t        j                  d      5  t        j                  t
        t        d       d d d        y # 1 sw Y   WxY w# 1 sw Y   y xY w)NzShould be length 9matchz**z
**********)r   raisesr4   GEOSExceptionr   r   r   r*   r'   r%   $test_relate_pattern_incorrect_lengthr   Y  s    	w,,4H	I 5ugt45 
w,,4H	I =ug|<= =5 5= =s    B3 B(B%(B1pattern)s	   *********r   Nc                     t        j                  t        d      5  t        j                  t
        t        |        d d d        y # 1 sw Y   y xY w)Nzexpected stringr   )r   r   	TypeErrorr4   r   r   r   )r   s    r%   test_relate_pattern_non_stringr   a  s8    	y(9	: 8ugw78 8 8s    AAc                      t        j                  t        d      5  t        j                  t
        gdz  t        dgdz         d d d        y # 1 sw Y   y xY w)Nzonly supports scalarr   r   r   )r   r   
ValueErrorr4   r   r   r   r*   r'   r%   test_relate_pattern_non_scalarr   g  sI    	z)?	@ Hw{Gk]Q5FGH H Hs   (AAzgeom, expected)rE   r   rG   r~   rE   )rE   r~   r   rE   )rE   r~   r   )rE   r   r~   )NFc                 8    t        j                  |       |k(  sJ y r3   )r4   is_ccw)geomrP   s     r%   test_is_ccwr   l  s      >>$8+++r'   c                 ^    t        j                  | d       } t        j                  |        | S )z"Prepare without modifying in-placec                     | S r3   r*   rT   s    r%   rV   z$_prepare_with_copy.<locals>.<lambda>  s    Q r'   )r4   rY   preparer   s    r%   ra   ra     s%      ;7HOOHOr'   c                     t        t        j                  |       xr t        j                  dk        5   || t              } |t        |       t              }d d d        k(  sJ y # 1 sw Y   xY wr   )r   r4   r:   r;   r   ra   )r8   r   r$   results       r%   test_binary_preparedr     sk     
((+Q0D0Dz0Q	R 4 a(+U3	4
 V4 4s   $A((A1c                 D    t        j                  t        |             sJ y r3   )r4   is_preparedra   r   s    r%   test_is_prepared_truer     s    1(;<<<r'   r3   c                 2    t        j                  |       rJ y r3   )r4   r   r   s    r%   test_is_prepared_falser     s    ""8,,,,r'   c                      t        j                  t        t              j                         du sJ t        j                  t        t              j                         du sJ y )NTF)r4   containsr   rx   contains_properlyr*   r'   r%   test_contains_properlyr     sJ    GW-224<<<$$Wg6;;=FFFr'   )^	functoolsr   numpyr"   r   r4   r   r   r   shapely.tests.commonr   r   r	   r
   r   r   r   r   r   r   r   r   paramr   markskipifr;   r:   	is_simpleis_ringr   is_validr6   is_geometryr5   r   r   UNARY_PREDICATESdisjointtouches
intersectscrosseswithinr   r   overlapscovers
covered_byr   equalsrw   r   BINARY_PREDICATESBINARY_PREPARED_PREDICATEScontains_xyintersects_xyXY_PREDICATESparametrizer&   r1   r7   r<   r>   rC   rK   rQ   r[   r_   rb   rg   rj   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   r   r   r   r   )funcss   0r%   <module>r      s       1 1    MMFLLkk    :-m ! 
 OONN# * OOOONNNNFLL#.kk    :-m ! 
 NN' , /s3  '**+G../ Y%<=!12$ 3 >$ !12$ 3$ !12 3 i(!23$ 4 )$ !23$ 4$ !23 4
3 i()=91 : )1 i()=91 : )1 !Fu%(!FG1 H1 )=91 :1 !Fu%(!FG$ H$ !Fu%(!FGD HD=(8,* G((:5mL= M= Y/+ 0+ [1+ 2+ :%9   [1# 2	
# :%9   \2# 3	
# 		e	d		33! UDMD%=,#OP* Q*?L UDMD%=,#OPC QC= $<=8 >8
H
 	4	5u=	4	5t<	4	5u=	4	5t<	,	-u5	,	-u5		%	e$,, i(!;< = ) Y/= 0= Y%89- :-GA "G "G "Gs   6\"
\'
>\,
