
    Og*                        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 ej$                  ej&                  ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                   ej6                  ej8                  ej:                  j=                  ej>                  dk  d            f
Z ejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  ejN                  ejP                  ejR                  ejT                   ej6                   eejV                  d	
      ej:                  j=                  ej>                  dk  d            ejX                  ejZ                  fZ.e.dd Z/ej`                  ejL                  fejb                  ejF                  ffZ2ej:                  jg                  de
      ej:                  jg                  de       d               Z4ej:                  jg                  de       d        Z5ej:                  jg                  de       d        Z6ej:                  jg                  de
      ej:                  jg                  de.      d               Z7ej:                  jg                  de.      d        Z8ej:                  jg                  de.      d        Z9d Z:ej:                  jg                  de
      ej:                  jg                  de2      d               Z;ej:                  jg                  de
      ej:                  jg                  de2      d               Z<ej:                  jg                  de2D  cg c]  } | d    	 c}       d        Z=ej:                  jg                  de2      d        Z>ej:                  jg                  de2D  cg c]  } | d    	 c}       d        Z?ej:                  jg                  de2D  cg c]  } | d    	 c}       d        Z@d ZAej:                  j=                  ej>                  dk  d      d         ZBej:                  jg                  d!ed"fed"fed#fed"fg      d$        ZCd% ZDej:                  jg                  d&edfdefd'g      d(        ZEd) ZFd* ZGej:                  jg                  d&edfdefd'g      d+        ZHd, ZIej:                  jg                  d-g d.      d/        ZJd0 ZKej:                  j=                  ej>                  dk  d      ej:                  jg                  d1 eg d2      d"f eg d3      d#f eg d2      d"f eg d3      d#f eg d4      d"f eg d5      d"fed"fed"fed"fd6g
      d7               ZLd8 ZMej:                  jg                  de
      ej:                  jg                  de/      d9               ZNej:                  jg                  de
efz         d:        ZOej:                  jg                  de
edfz         d;        ZPd< ZQyc c} w c c} w c c} w )=    )partialN)
LinearRing
LineStringPoint)	all_typesemptygeometry_collectionignore_invalidline_stringlinear_ringpointpolygon)      r   z
GEOS < 3.7)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      b/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/shapely/tests/test_predicates.pytest_unary_arrayr"   @   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_kwargsr+   H   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_missingr1   P   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)Nr      r   r   )	r
   r.   is_emptygeos_versionr   r   r   r   r   )r2   r   r    s      r!   test_binary_arrayr8   X   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(   r*   s      r!   test_binary_with_kwargsr:   c   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 r-   )r   arrayr   allr   r    s     r!   test_binary_missingr?   k   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   )      )   rC   r4   )r   r
   r.   r7   intersectionr6   )r2   bs     r!   test_binary_empty_resultrG   q   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)Nr4   r   r   r   )r
   r.   r6   r7   r   r   r   r   r   testingassert_allcloser2   r   func_binr    expecteds        r!   test_xy_arrayrN   z   s     
((+Q0D0Dz0Q	R 1 q!fa#QFE!QK0	1
 <<4<<288###JJvx01 1s   "B//B8c           
      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)Nr4   r   rC   r   rC   r   r   r   rC   r   r   )r
   r.   r6   r7   r   r   rI   rJ   rK   s        r!   test_xy_array_broadcastrR      s     
((+Q0D0Dz0Q	R H aI.AaU1a[%1+FG	H
 JJvx0H Hs   9BBc                      | t         g dg d      } | t         ddgddgddgg      }t        j                  j                  ||       y )NrP   rQ   r   rC   r   r   )r   r   rI   rJ   )r   r    rM   s      r!   test_xy_array_2DrT      sC    '9i0FGq!fq!fq!f56H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   rI   rJ   )r   rL   r    rM   s       r!   test_xy_preparedrW      sF    $g{%;<aCF+.a<HJJvx0r#   c                     t        j                  dt         j                        } | t        t        j                  t        j
                  |      }||u sJ |j                  t         j                  k(  sJ y r%   )r   r   r)   r   xyr   r*   s      r!   test_xy_with_kwargsr[      sP    
((2RXX
&C%%''s3F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   rY   nanrZ   rI   rJ   r>   s     r!   test_xy_missingr^      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)
r.   pointsequals_exactr   rI   rJ   r   r   itemr]   p1p2r    s      r!   test_equals_exact_tolerancerp      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                  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 )Nr`   ra   rb   rc   rd   r   rf   rg   rh   ri   )
r.   rj   dwithinr   rI   assert_equalr   r   rJ   r]   rm   s      r!   test_dwithinrt      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#   zgeometry,expectedFTc                 8    t        j                  |       |k(  sJ y r-   )r.   	is_closed)r   rM   s     r!   test_is_closedrw      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   rC   	FF0FFF0F2)r.   rj   relate
isinstancestrrm   s      r!   test_relater}      sP    	1	B	1	B^^B#Ffc"""[   r#   zg1, g2)NNc                 4    t        j                  | |      J y r-   )r.   rz   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)rA   )rC   r   rC   rC   r   r   	11F00F212	*********z	F********)r.   linestringsboxrz   relate_pattern)gr   s     r!   test_relate_patternr      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)Nr4   r   T)r
   r.   r7   r   r   rl   r&   r#   r!   test_relate_pattern_emptyr      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)r.   r   rl   r   s     r!   test_relate_pattern_noner      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
**********)pytestraisesr.   GEOSExceptionr   r   r   r&   r#   r!   $test_relate_pattern_incorrect_lengthr     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   	TypeErrorr.   r   r   r   )r   s    r!   test_relate_pattern_non_stringr     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   
ValueErrorr.   r   r   r   r&   r#   r!   test_relate_pattern_non_scalarr     sI    	z)?	@ Hw{Gk]Q5FGH H Hs   (AAzgeom, expected)rA   r   rC   r   rA   )rA   r   r   rA   )rA   r   r   )rA   r   r   )NFc                 8    t        j                  |       |k(  sJ y r-   )r.   is_ccw)geomrM   s     r!   test_is_ccwr     s    " >>$8+++r#   c                 ^    t        j                  | d       } t        j                  |        | S )z"Prepare without modifying in-placec                     | S r-   r&   )rY   s    r!   <lambda>z$_prepare_with_copy.<locals>.<lambda>.  s    Q r#   )r.   	transformpreparer   s    r!   rV   rV   ,  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)Nr4   )r
   r.   r6   r7   r   rV   )r2   r   r    results       r!   test_binary_preparedr   3  sk     
((+Q0D0Dz0Q	R 4 a(+U3	4
 V4 4s   $A((A1c                 D    t        j                  t        |             sJ y r-   )r.   is_preparedrV   r   s    r!   test_is_prepared_truer   >  s    1(;<<<r#   c                 2    t        j                  |       rJ y r-   )r.   r   r   s    r!   test_is_prepared_falser   C  s    ""8,,,,r#   c                      t        j                  t        t              j                         du sJ t        j                  t        t              j                         du sJ y )NTF)r.   containsr   rl   contains_properlyr&   r#   r!   test_contains_properlyr   H  sJ    GW-224<<<$$Wg6;;=FFFr#   )R	functoolsr   numpyr   r   r.   r   r   r   shapely.tests.commonr   r   r	   r
   r   r   r   r   r6   	is_simpleis_ringrv   is_validr0   is_geometryr/   r   paramr   markskipifr7   UNARY_PREDICATESdisjointtouches
intersectscrosseswithinr   r   overlapscovers
covered_byrr   equalsrk   BINARY_PREDICATESBINARY_PREPARED_PREDICATEScontains_xyintersects_xyXY_PREDICATESparametrizer"   r+   r1   r8   r:   r?   rG   rN   rR   rT   rW   r[   r^   rp   rt   rw   r}   r   r   r   r   r   r   r   r   rV   r   r   r   r   )funcss   0r!   <module>r      s       1 1	 	 	 OOFLLkk  !5!5	!A, W " OOOONNNNFLL#.kk    :-m ! 
 NN% * /s3  '**+G../ Y/!12$ 3 0$ !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=( G((:5mL= M= 		e	d		33! UDMD%=,#OP* Q*?L UDMD%=,#OPC QC= $<=8 >8
H
 G((94\J	4	5u=	4	5t<	4	5u=	4	5t<	,	-u5	,	-u5		%	e$, K , i(!;< = ) Y%%9:= ;= Y%%>?- @-Gm "G "G "Gs   Y
!Y
Y
