
    \i&E                     "   S SK rS SKrS SKrS SKJrJrJr  S SKJr  S SK	J
r
JrJrJrJr  \R                  R!                  S5      r\R$                  " \
5      \R&                  " \
5      ) \R(                  " \
5      \R*                  R,                  :g  -     r\R0                  \R2                  \R4                  \R6                  4r\R:                  \R2                  4\R<                  \R4                  4\R>                  \R6                  44r \R>                  \R6                  44r!\RD                  S:  a,  \\RF                  4-  r\ \RH                  \RF                  44-  r \RJ                  " S S SS5      \RJ                  " SSS	S	5      \RJ                  " S
S
SS5      \RJ                  " SSSS5      /r&\R$                  " \
5      \R&                  " \
5      ) \RN                  " \
5      S:g  -     r(\R                  RS                  S\
5      \R                  RS                  S\5      S 5       5       r*\R                  RS                  S\5      S 5       r+\R                  RS                  S\5      \R                  RS                  S\5      \R                  RS                  S/ SQ5      S 5       5       5       r,\R                  RS                  S\-" SS5      5      \R                  RS                  S\ 5      S 5       5       r.\R                  RS                  S\ 5      S 5       r/\R                  RS                  S\ 5      S 5       r0\R                  RS                  S\ 5      S 5       r1\R                  RS                  S\-" S5      5      \R                  RS                  S\ 5      S 5       5       r2\R                  RS                  S\-" S5      5      \R                  RS                  S\ 5      S 5       5       r3\R                  RS                  S\ 5      S 5       r4\R                  RS                  S\-" SS5      5      \R                  RS                  S\ 5      S  5       5       r5\R                  RS                  S\-" SS5      5      \R                  RS                  S\ 5      S! 5       5       r6\R                  RS                  S\!5      S" 5       r7\R                  RS                  S\!5      S# 5       r8\R                  RS                  S\-" SS5      5      \R                  RS                  S\!5      \R                  RS                  SS S/5      S$ 5       5       5       r9\R                  RS                  S\!5      S% 5       r:\R                  RS                  S\-" S5      5      \R                  RS                  S\!5      S& 5       5       r;\R                  RS                  S\-" S5      5      \R                  RS                  S\!5      S' 5       5       r<\R                  RS                  S\-" SS5      5      \R                  RS                  S\!5      S( 5       5       r=\R                  RS                  S\-" SS
5      5      S) 5       r>S* r?S+ r@\R                  RS                  S,\( V s/ s H  n \U /PM	     sn \( VVs/ s H  n\(  H  nX/PM     M     snn-   5      S- 5       rA\R                  RS                  S.\RJ                  " S/S/SS5      \RJ                  " S S0S1S5      /S \" S25      4\RJ                  " S/S/SS5      \RJ                  " S S0S1S5      /S/\" S25      4\RJ                  " S/S/SS5      \RJ                  " S S0S1S5      /S\" / S3Q5      4\RJ                  " S/S/SS5      \RJ                  " S S0S1S5      /S\" / S4Q5      4\RJ                  " S/S/SS5      \RJ                  " S S0S1S5      /S5\" 5       4/5      S6 5       rBS7 rCS8 rDS9 rES: rFS; rGS< rHS= rIS> rJS? rKgs  sn f s  snnf )@    N)GeometryGeometryCollectionPolygon)assert_geometries_equal)	all_typesemptyignore_invalidpointpolygonz?ignore:The symmetric_difference_all function:DeprecationWarning      r               	   
   afuncc                    U[         R                  L aT  U R                  S:X  aD  [         R                  " U 5      S:X  a*  [         R                  S:X  a  [
        R                  " S5        U" U [        5      n[        U[        5      (       d   eU" X /[        5      nUR                  S:X  d   e[        US   [        5      (       d   eg )Nr   r   )r   r   r   z(GEOS 3.9.5 crashes with mixed collectionr   r   )shapely
difference	geom_typeget_num_geometriesgeos_versionpytestxfailr
   
isinstancer   shape)r   r   actuals      d/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_set_operations.pytest_set_operation_arrayr$   8   s     	"""KK//&&q)Q.  I-?@!U^Ffh''''1&% F<<4fQi****    c                     U [         R                  L a  [        R                  " S5        [        R                  " [
        SS9   U " [        [        S/S9  S S S 5        g ! , (       d  f       g = f)N0disjoint_subset_union does not support grid_size.grid_size parameter only accepts scalar valuesmatch   	grid_size)r   disjoint_subset_unionr   skipraises
ValueErrorr
   )r   s    r#   +test_set_operation_prec_nonscalar_grid_sizer2   J   sO    w,,,FG	J
 	UEaS)
 
 
s   A
A,r-   )r   r+   r   c                    U[         R                  L a  [        R                  " S5        U" X /[        US9nUR
                  S:X  d   e[        US   [        5      (       d   e[         R                  " XS9n[         R                  " [        US9nU" XD/U5      n[         R                  " [         R                  " U5      [         R                  " U5      5      R                  5       (       d   eg )Nr'   r,   r   r   )r   r.   r   r/   r
   r!   r    r   set_precisionequals	normalizeall)r   r   r-   r"   bpoint2expecteds          r#   test_set_operation_prec_arrayr;   T   s     w,,,FG1&%95F<<4fQi**** 	a5A""5I>FQFF#H>>'++F3W5F5Fx5PQUUWWWWr%   nr+   zfunc, related_funcc                     U" [         S U  5      n[         S   n[        SU 5       H  nU" U[         U   5      nM     [        R                  " X45      (       d   eg )Nr   r+   reduce_test_dataranger   r5   )r<   r   related_funcr"   r:   is         r#   test_set_operation_reduce_1dimrC   g   sW     "2A&'F"H1a[*:1*=> >>&++++r%   c                     [         R                  " SS5      nU " US S /5      n[         R                  " X25      (       d   eg )Nr+   )r   Pointr5   )r   rA   geomr"   s       r#   %test_set_operation_reduce_single_geomrG   r   s8    ==AD4t$%F>>&''''r%   c                     [         /S-  /S-  nU " US S9n[        U[        5      (       d   eU " USS9nUR                  S:X  d   eU " USS9nUR                  S:X  d   eU " USS9nUR                  S:X  d   eg )	Nr   r   axisr   r   r+   r   r
   r    r   r!   r   rA   datar"   s       r#   test_set_operation_reduce_axisrP   y   s    GaK=1D$T"Ffh''''$QF<<4$QF<<4$R F<<4r%   c                 (   U " [         R                  " S[        S95      [        :X  d   e[         R                  " S[        S9nU " U5      [        :X  d   eU " USS9R                  5       [        /S-  :X  d   eU " USS9R                  5       / :X  d   eg )N)r   )dtype)r   r   r   rI   r   r+   )npr   objecttolist)r   rA   arr_empty_2Ds      r#   test_set_operation_reduce_emptyrW      s    V,-66688F&1L&&&1%,,.5'A+===1%,,."444r%   none_positionr   c                     [         S S nUR                  US 5        U " U5      nU" [         S   [         S   5      n[        XE5        g Nr   r   r+   r?   insertr   r   rA   rX   	test_datar"   r:   s         r#   "test_set_operation_reduce_one_noner_      sI     !!$I]D))_F,Q/1A!1DEHF-r%   c                     [         S S nUR                  US 5        UR                  US 5        U " U5      nU" [         S   [         S   5      n[        XE5        g rZ   r[   r]   s         r#   "test_set_operation_reduce_two_nonera      sY     !!$I]D)]D))_F,Q/1A!1DEHF-r%   c                 4    U " [         S /5      [         :X  d   eg N)r   r   rA   s     r#   (test_set_operation_reduce_some_none_len2re      s     %'''r%   c                 B    [        U" S /U -  5      [        / 5      5        g rc   r   r   r<   r   rA   s      r#   "test_set_operation_reduce_all_noneri      s     D$!,.@.DEr%   c                     U" S /U -  /S-  SS9R                  5       [        [        /:X  d   eU" S /S-  /U -  SS9R                  5       [        [        /:X  d   eg )Nr   r+   rI   r   )rU   r   rh   s      r#   &test_set_operation_reduce_all_none_arrrk      sb     $!q q)002uenDDD$!q q)002uenDDDr%   c                     [         R                  " [        SS9   U " [        [        /S/S9  S S S 5        g ! , (       d  f       g = f)Nr(   r)   r+   r,   )r   r0   r1   r
   rd   s     r#   2test_set_operation_prec_reduce_nonscalar_grid_sizerm      s6    	J
 	eU^s+
 
 
s	   6
Ac                 L    U " [         [         /[        R                  S9nUb   eg Nr,   )r
   rS   nan)r   rA   r"   s      r#   ,test_set_operation_prec_reduce_grid_size_nanrq      s     5%.BFF3F>>r%   c                     U" [         S U  US9n[         S   n[        SU 5       H  nU" U[         U   US9nM     [        R                  " XE5      (       d   eg )Nr,   r   r+   r>   )r<   r   rA   r-   r"   r:   rB   s          r#   #test_set_operation_prec_reduce_1dimrs      s]     "2A&)<F"H1a[*:1*=S  >>&++++r%   c                     [         /S-  /S-  nU " USS S9n[        U[        5      (       d   eU " USSS9nUR                  S:X  d   eU " USSS9nUR                  S:X  d   eU " USSS9nUR                  S:X  d   eg )	Nr   r   r+   )r-   rJ   r   r   rK   rL   rM   rN   s       r#   #test_set_operation_prec_reduce_axisru      s    GaK=1D$!$/Ffh''''$!!,F<<4$!!,F<<4$!"-F<<4r%   c                     [         S S nUR                  US 5        U " USS9nU" [         S   [         S   SS9n[        XE5        g Nr   r+   r,   r   r[   r]   s         r#   'test_set_operation_prec_reduce_one_nonerx      sO     !!$I]D))q)F,Q/1A!1DPQRHF-r%   c                     [         S S nUR                  US 5        UR                  US 5        U " USS9nU" [         S   [         S   SS9n[        XE5        g rw   r[   r]   s         r#   'test_set_operation_prec_reduce_two_nonerz      s_     !!$I]D)]D))q)F,Q/1A!1DPQRHF-r%   c                 @    [        U" S /U -  SS9[        / 5      5        g )Nr+   r,   rg   rh   s      r#   'test_set_operation_prec_reduce_all_noner|      s!     D$!q9;Mb;QRr%   c                 @   [         R                  " SSSS5      [         R                  " SSSS5      [         R                  " SSSS5      /n[         R                  " USU  5      nUS   n[        SU 5       H  n[         R                  " X1U   5      nM     [        X#SS9  g)za
This is tested separately from other set operations as it expects only
non-overlapping polygons
r   r+   r   r   NTr6   )r   boxcoverage_union_allr@   coverage_unionr   )r<   r^   r"   r:   rB   s        r#   test_coverage_union_reduce_1dimr      s     	Aq!QAq!QAq!QI
 ''	"16F|H1a[))(aLA F=r%   c                     [        S5       V Vs/ s H;  n [        S5       Vs/ s H!  n[        R                  " XUS-   U S-   5      PM#     snPM=     nn n[        R                  " US S9n[	        U[
        5      (       d   e[        R                  " USS9nUR                  S:X  d   e[        R                  " USS9nUR                  S:X  d   e[        R                  " USS9nUR                  S:X  d   eg s  snf s  snn f )	Nr   r   r+   rI   r   r   rK   rL   )r@   r   r   r   r    r   r!   )jrB   rO   r"   s       r#   test_coverage_union_reduce_axisr     s    INqRAeAh?hW[[q1ua!e,h?DR''48Ffh''''''15F<<4''15F<<4''26F<<4 @Rs   C;(C6
C;6C;c                  F   [        / SQ5      n [        / SQ5      n[        R                  S:  aC  [        R                  " [        R
                  SS9   [        R                  " X5        S S S 5        g [        R                  S:  a8  [        R                  " X5      n[        R                  " X/5      n[        X#SS9  g [        R                  " [        R
                  S	S9   [        R                  " X5        S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)
N)r+   r+   r+   r   r   r   )r   r+   r   )r   )g?r+   )r   r+   )r   r   r   )r      r   TopologyExceptionr)   r   Tr~   z6CoverageUnion cannot process incorrectly noded inputs.)	r   r   r   r   r0   GEOSExceptionr   multipolygonsr   )r   otherresultr:   s       r#   &test_coverage_union_overlapping_inputsr     s    >?G>?Ez)]]7008KL""72 ML				+''7((')9:DA ]]!!J
 ""72	
 
 ML
 
s   D!D
D
D zgeom_1, geom_2c                 b  ^ [         R                  S:  a  U4S jmT" U 5      nT" U5      n[        U5      S:X  a=  X#:X  a8  [        5          [         R                  " X5      nS S S 5        UT" W5      :X  d   eg [
        R                  " [         R                  SS9   [         R                  " X5        S S S 5        g [
        R                  " [         R                  SS9   [         R                  " X5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f! , (       d  f       g = f)Nr   c                    > [        U S5      (       a;  U R                  (       d*  [        5       nU R                   H  nUT" U5      -  nM     U$ U R                  R                  S5      R                  SS5      1$ )NgeomsMulti
LinearRing
LineString)hasattris_emptysetr   r   lstripreplace)rF   gtsparteffective_geom_typess      r#   r   Dtest_coverage_union_non_polygon_inputs.<locals>.effective_geom_typesB  se    tW%%dmme JJD/55C '
NN))'2::<VWWr%   r+   z Overlay input is mixed-dimensionr)   z)Unhandled geometry type in CoverageUnion.)r   r   lenr	   r   r   r0   r   )geom_1geom_2geom_types_1geom_types_2r   r   s        @r#   &test_coverage_union_non_polygon_inputsr   4  s     z)	X ,F3+F3|!l&B! //? "  #7#????%%-O &&v6  ]]!!)T
 ""62
 
 "!
 
 
s$   
C>DD >
D
D 
D.zgeom,grid_size,expected皙?皙?ffffff@)	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   d   c                 f    [         R                  " XS9n[         R                  " X25      (       d   eg ro   )r   	union_allr5   )rF   r-   r:   r"   s       r#   test_union_all_precr   ^  s*    z t9F>>&++++r%   c                      [         R                  " SSSS5      [         R                  " SSSS5      /n [         R                  " U SS9n[         R                  " U SS9n[         R                  " X5      (       d   eg )	Nr   r   r   r   r   r   r+   r,   )r   r   unary_unionr   r5   )r   r"   r:   s      r#   test_uary_union_aliasr     sc    [[c1a('++ac2*FGE  !4F  !4H>>&++++r%   c                      [         R                  " SS9   [        R                  " [        [        S 5        S S S 5        g ! , (       d  f       g = f)Nz>positional argument `grid_size` for `difference` is deprecatedr)   )r   deprecated_callr   r   r
    r%   r#   $test_difference_deprecate_positionalr     s7    			N
 	5%.
 
 
	   !?
Ac                      [         R                  " SS9   [        R                  " [        [        S 5        S S S 5        g ! , (       d  f       g = f)Nz@positional argument `grid_size` for `intersection` is deprecatedr)   )r   r   r   intersectionr
   r   r%   r#   &test_intersection_deprecate_positionalr     s7    			P
 	UE40
 
 
r   c                      [         R                  " SS9   [        R                  " [        [        /S 5        S S S 5        g ! , (       d  f       g = f)Nz?positional argument `axis` for `intersection_all` is deprecatedr)   )r   r   r   intersection_allr
   r   r%   r#   *test_intersection_all_deprecate_positionalr     s9    			O
 	  %6
 
 
   "A  
Ac                      [         R                  " SS9   [        R                  " [        [        S 5        S S S 5        g ! , (       d  f       g = f)NzHpositional argument `grid_size` for `symmetric_difference` is deprecatedr)   )r   r   r   symmetric_differencer
   r   r%   r#   .test_symmetric_difference_deprecate_positionalr     s7    			X
 	$$UE48
 
 
r   c                      [         R                  " SS9   [        R                  " [        [        /S 5        S S S 5        g ! , (       d  f       g = f)NzGpositional argument `axis` for `symmetric_difference_all` is deprecatedr)   )r   r   r   symmetric_difference_allr
   r   r%   r#   2test_symmetric_difference_all_deprecate_positionalr     s9    			W
 	((%>
 
 
r   c                      [         R                  " SS9   [        R                  " [        [        S 5        S S S 5        g ! , (       d  f       g = f)Nz9positional argument `grid_size` for `union` is deprecatedr)   )r   r   r   unionr
   r   r%   r#   test_union_deprecate_positionalr     s5    			I
 	eUD)
 
 
r   c                  B   [         R                  " SS9   [        R                  " [        [        /S 5        S S S 5        [         R                  " SS9   [        R                  " [        [        /S S 5        S S S 5        g ! , (       d  f       NN= f! , (       d  f       g = f)Nz=positional argument `grid_size` for `union_all` is deprecatedr)   zJpositional arguments `grid_size` and `axis` for `union_all` are deprecated)r   r   r   r   r
   r   r%   r#   #test_union_all_deprecate_positionalr     s{    			M
 	5%.$/
 
		
 	5%.$5	
 
	
 

 
s   "A?#B?
B
Bc                      [         R                  " SSSS5      [         R                  " SSSS5      /n [        R                  " SS9   [         R                  " U S 5        S S S 5        g ! , (       d  f       g = f)Nr   r+   r   zApositional argument `axis` for `coverage_union_all` is deprecatedr)   )r   r   r   r   r   )rO   s    r#   ,test_coverage_union_all_deprecate_positionalr     s]    KK1a#W[[Aq!%<=D			Q
 	""4.
 
 
s   A((
A6)LnumpyrS   r   r   r   r   r   shapely.testingr   shapely.tests.commonr   r   r	   r
   r   markfilterwarnings
pytestmarkarrayr   get_type_idGeometryTypeGEOMETRYCOLLECTIONall_single_typesr   r   r   r   SET_OPERATIONSr   r   r   REDUCE_SET_OPERATIONSREDUCE_SET_OPERATIONS_PRECr   r.   disjoint_subset_union_allr   r?   get_dimensionsnon_polygon_typesparametrizer$   r2   r;   r@   rC   rG   rP   rW   r_   ra   re   ri   rk   rm   rq   rs   ru   rx   rz   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )non_polygonnon_polygon_1non_polygon_2s   000r#   <module>r      sz      9 9 3 Q Q[[''E
 88I&i  9%)=)=)P)PPR    MM	 w334%%w'C'CD&   '00'--@B 
:%w4466N		*	*G,I,IJ 
 KK1aKK1aKK1aKK1b"	  HHY'i  G$:$:9$E$JK 
 i(0+ 1 )+  0* 1* ./0i0X 1 1 0X  eAqk*-/DE, F +, -/DE( F( -/DE	  F	  -/DE5 F5 %(3-/DE. F 4. %(3-/DE. F 4. -/DE( F( eAqk*-/DEF F +F eAqk*-/DEE F +E
 -/IJ, K, -/IJ K
 eAqk*-/IJq!f-, . K +, -/IJ	  K	  %(3-/IJ. K 4. %(3-/IJ. K 4. eAqk*-/IJS K +S eAqk*> +>$
 3, /@A/@g{/@A /.M.M 
&. 	'.
3
3>  [[c1a('++ac2*FG
	
& [[c1a('++ac2*FG
	
& [[c1a('++ac2*FGNO	
 [[c1a('++ac2*FGAB	
 [[c1a('++ac2*FGI	
g8;x,y;x,
,/179?*	6/K Bs   `
$`