
    _ hDD                        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 d dl	m
Z
mZmZmZmZ ej                  j!                  d      Z ej$                  e
       ej&                  e
        ej(                  e
      ej*                  j,                  k7  z     Zej0                  ej2                  ej4                  ej6                  fZej:                  ej2                  fej<                  ej4                  fej>                  ej6                  ffZ ej>                  ej6                  ffZ!ejD                  dk\  r,eejF                  fz  Ze ejH                  ejF                  ffz  Z  ejJ                  d d dd       ejJ                  ddd	d	       ejJ                  d
d
dd       ejJ                  dddd      gZ& ej$                  e
       ej&                  e
        ejN                  e
      dk7  z     Z(ej                  jS                  de
      ej                  jS                  de      d               Z*ej                  jS                  de      d        Z+ej                  jS                  de      ej                  jS                  de      ej                  jS                  dg d      d                      Z,ej                  jS                  d e-dd            ej                  jS                  de       d               Z.ej                  jS                  de       d        Z/ej                  jS                  de       d        Z0ej                  jS                  de       d        Z1ej                  jS                  d e-d            ej                  jS                  de       d               Z2ej                  jS                  d e-d            ej                  jS                  de       d               Z3ej                  jS                  de       d        Z4ej                  jS                  d e-dd            ej                  jS                  de       d                Z5ej                  jS                  d e-dd            ej                  jS                  de       d!               Z6ej                  jS                  de!      d"        Z7ej                  jS                  de!      d#        Z8ej                  jS                  d e-dd            ej                  jS                  de!      ej                  jS                  dd dg      d$                      Z9ej                  jS                  de!      d%        Z:ej                  jS                  d e-d            ej                  jS                  de!      d&               Z;ej                  jS                  d e-d            ej                  jS                  de!      d'               Z<ej                  jS                  d e-dd            ej                  jS                  de!      d(               Z=ej                  jS                  d e-dd
            d)        Z>d* Z?d+ Z@ej                  jS                  d,e(D  cg c]  } e| g c} e(D cg c]  }e(D ]  }||g  c}}z         d-        ZAej                  jS                  d. ejJ                  d/d/dd       ejJ                  d d0d1d      gd  ed2      f ejJ                  d/d/dd       ejJ                  d d0d1d      gd/ ed2      f ejJ                  d/d/dd       ejJ                  d d0d1d      gd eg d3      f ejJ                  d/d/dd       ejJ                  d d0d1d      gd eg d4      f ejJ                  d/d/dd       ejJ                  d d0d1d      gd5 e       fg      d6        ZBd7 ZCd8 ZDd9 ZEd: ZFd; ZGd< ZHd= ZId> ZJd? ZKyc c} w c c}}w )@    N)GeometryGeometryCollectionPolygon)assert_geometries_equal)	all_typesemptyignore_invalidpointpolygonz?ignore:The symmetric_difference_all function:DeprecationWarning      r               	   
   afuncc                 n   |t         j                  u rO| j                  dk(  r@t        j                  |       dk(  r(t         j                  dk(  rt        j                  d        || t              }t        |t              sJ  || | gt              }|j                  dk(  sJ t        |d   t              sJ y )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      }/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/test_set_operations.pytest_set_operation_arrayr$   8   s     	"""KK//&&q)Q.  I-?@!U^Ffh'''1a&% F<<4fQi***    c                     | t         j                  u rt        j                  d       t        j                  t
        d      5   | t        t        dg       d d d        y # 1 sw Y   y xY w)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   sT    w,,,FG	J
 * 	UEaS)* * *s   A!!A*r-   )r   r+   r   c                    |t         j                  u rt        j                  d        || | gt        |      }|j
                  dk(  sJ t        |d   t              sJ t        j                  | |      }t        j                  t        |      } |||g|      }t        j                  t        j                  |      t        j                  |            j                         sJ y )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1a&%95F<<4fQi*** 	a95A""5I>FQFF#H>>'++F3W5F5Fx5PQUUWWWr%   nr+   zfunc, related_funcc                      |t         d |        }t         d   }t        d|       D ]  } ||t         |         } t        j                  ||      sJ y )Nr   r+   reduce_test_dataranger   r5   )r<   r   related_funcr"   r:   is         r#   test_set_operation_reduce_1dimrC   g   s[     "2A&'F"H1a[ ?*:1*=>?>>&(+++r%   c                 v    t        j                  dd      } | |d d g      }t        j                  ||      sJ y )Nr+   )r   Pointr5   )r   rA   geomr"   s       r#   %test_set_operation_reduce_single_geomrG   r   s7    ==AD4t$%F>>&$'''r%   c                     t         gdz  gdz  } | |d       }t        |t              sJ  | |d      }|j                  dk(  sJ  | |d      }|j                  dk(  sJ  | |d      }|j                  dk(  sJ y )	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                 4    | t        j                  dt                    t        k(  sJ t        j                  dt              } | |      t        k(  sJ  | |d      j                         t        gdz  k(  sJ  | |d      j                         g k(  sJ y )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                     t         d d }|j                  |d         | |      } |t         d   t         d         }t        ||       y Nr   r   r+   r?   insertr   r   rA   rX   	test_datar"   r:   s         r#   "test_set_operation_reduce_one_noner_      sK     !!$I]D))_F,Q/1A!1DEHFH-r%   c                     t         d d }|j                  |d        |j                  |d         | |      } |t         d   t         d         }t        ||       y rZ   r[   r]   s         r#   "test_set_operation_reduce_two_nonera      s[     !!$I]D)]D))_F,Q/1A!1DEHFH-r%   c                 2     | t         d g      t         k(  sJ y N)r   r   rA   s     r#   (test_set_operation_reduce_some_none_len2re      s     %'''r%   c                 B    t         |d g| z        t        g              y rc   r   r   r<   r   rA   s      r#   "test_set_operation_reduce_all_noneri      s     D$!,.@.DEr%   c                      |d g| z  gdz  d      j                         t        t        gk(  sJ  |d gdz  g| z  d      j                         t        t        gk(  sJ y )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                     t        j                  t        d      5   | t        t        gdg       d d d        y # 1 sw Y   y xY w)Nr(   r)   r+   r,   )r   r0   r1   r
   rd   s     r#   2test_set_operation_prec_reduce_nonscalar_grid_sizerm      s;    	J
 , 	eU^s+, , ,s	   ;Ac                 P     | t         t         gt        j                        }|J y Nr,   )r
   rS   nan)r   rA   r"   s      r#   ,test_set_operation_prec_reduce_grid_size_nanrq      s     5%.BFF3F>>r%   c                      |t         d |  |      }t         d   }t        d|       D ]  } ||t         |   |      } t        j                  ||      sJ y )Nr,   r   r+   r>   )r<   r   rA   r-   r"   r:   rB   s          r#   #test_set_operation_prec_reduce_1dimrs      sc     "2A&)<F"H1a[ T*:1*=ST >>&(+++r%   c                    t         gdz  gdz  } | |dd       }t        |t              sJ  | |dd      }|j                  dk(  sJ  | |dd      }|j                  dk(  sJ  | |dd      }|j                  dk(  sJ y )	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                     t         d d }|j                  |d         | |d      } |t         d   t         d   d      }t        ||       y Nr   r+   r,   r   r[   r]   s         r#   'test_set_operation_prec_reduce_one_nonerx      sQ     !!$I]D))q)F,Q/1A!1DPQRHFH-r%   c                     t         d d }|j                  |d        |j                  |d         | |d      } |t         d   t         d   d      }t        ||       y rw   r[   r]   s         r#   'test_set_operation_prec_reduce_two_nonerz      sa     !!$I]D)]D))q)F,Q/1A!1DPQRHFH-r%   c                 F    t         |d g| z  d      t        g              y )Nr+   r,   rg   rh   s      r#   'test_set_operation_prec_reduce_all_noner|      s!     D$!q9;Mb;QRr%   c                 <   t        j                  dddd      t        j                  dddd      t        j                  dddd      g}t        j                  |d|        }|d   }t        d|       D ]  }t        j                  |||         } t        ||d       y)zm
    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[ B))(IaLABFH=r%   c                     t        d      D  cg c]7  } t        d      D cg c]   }t        j                  || |dz   | dz         " c}9 }} }t        j                  |d       }t	        |t
              sJ t        j                  |d      }|j                  dk(  sJ t        j                  |d      }|j                  dk(  sJ t        j                  |d      }|j                  dk(  sJ y c c}w c c}} w )	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RAeAh?W[[Aq1ua!e,?RDR''48Ffh'''''15F<<4''15F<<4''26F<<4 @Rs   C5%C0C50C5c                  v   t        g d      } t        g d      }t        j                  dk\  r<t        j                  | |      }t        j                  | |g      }t        ||d       y t        j                  t        j                  d      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)N)r+   r+   r+   r   r   r   )r   r+   r   )r   )g?r+   )r   r+   )r   r   r   r   Tr~   z6CoverageUnion cannot process incorrectly noded inputs.r)   )	r   r   r   r   multipolygonsr   r   r0   GEOSException)r   otherresultr:   s       r#   &test_coverage_union_overlapping_inputsr     s    >?G>?Ez)''7(('5)9:DA ]]!!J
 	3 ""7E2		3 	3 	3s   B//B8zgeom_1, geom_2c                 D   t         j                  dk\  rfd |       } |      }t        |      dk(  r;||k(  r6t               5  t        j                  | |      }d d d        |       k(  sGJ t        j                  t         j                  d      5  t        j                  | |       d d d        y y t        j                  t         j                  d      5  t        j                  | |       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w# 1 sw Y   y xY w)Nr   c                     t        | d      r4| j                  s(t               }| j                  D ]  }| |      z  } |S | j                  j                  d      j                  dd      hS )NgeomsMulti
LinearRing
LineString)hasattris_emptysetr   r   lstripreplace)rF   gtsparteffective_geom_typess      r#   r   zDtest_coverage_union_non_polygon_inputs.<locals>.effective_geom_types>  sg    tW%dmme JJ 6D/55C6
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   0  s    z)	X ,F3+F3|!ll&B! @ //?@  #7#????%%-O 7 &&vv67 7 @ ]]!!)T
 	3 ""662	3 	3@ @
7 7	3 	3s$   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                 b    t        j                  | |      }t        j                  ||      sJ y ro   )r   	union_allr5   )rF   r-   r:   r"   s       r#   test_union_all_precr   Z  s+    z ty9F>>&(+++r%   c                      t        j                  dddd      t        j                  dddd      g} t        j                  | d      }t        j                  | d      }t        j                  ||      sJ y )	Nr   r   r   r   r   r   r+   r,   )r   r   unary_unionr   r5   )r   r"   r:   s      r#   test_uary_union_aliasr     sb    [[c1a('++ac2*FGE  !4F  !4H>>&(+++r%   c                      t        j                  d      5  t        j                  t        t        d        d d d        y # 1 sw Y   y xY w)Nz>positional argument `grid_size` for `difference` is deprecatedr)   )r   deprecated_callr   r   r
    r%   r#   $test_difference_deprecate_positionalr     s<    			N
 / 	5%./ / /    A  A	c                      t        j                  d      5  t        j                  t        t        d        d d d        y # 1 sw Y   y xY w)Nz@positional argument `grid_size` for `intersection` is deprecatedr)   )r   r   r   intersectionr
   r   r%   r#   &test_intersection_deprecate_positionalr     s<    			P
 1 	UE401 1 1r   c                      t        j                  d      5  t        j                  t        t        gd        d d d        y # 1 sw Y   y xY w)Nz?positional argument `axis` for `intersection_all` is deprecatedr)   )r   r   r   intersection_allr
   r   r%   r#   *test_intersection_all_deprecate_positionalr     s>    			O
 7 	  %67 7 7   !AA
c                      t        j                  d      5  t        j                  t        t        d        d d d        y # 1 sw Y   y xY w)NzHpositional argument `grid_size` for `symmetric_difference` is deprecatedr)   )r   r   r   symmetric_differencer
   r   r%   r#   .test_symmetric_difference_deprecate_positionalr     s<    			X
 9 	$$UE489 9 9r   c                      t        j                  d      5  t        j                  t        t        gd        d d d        y # 1 sw Y   y xY w)NzGpositional argument `axis` for `symmetric_difference_all` is deprecatedr)   )r   r   r   symmetric_difference_allr
   r   r%   r#   2test_symmetric_difference_all_deprecate_positionalr     s>    			W
 ? 	((%>? ? ?r   c                      t        j                  d      5  t        j                  t        t        d        d d d        y # 1 sw Y   y xY w)Nz9positional argument `grid_size` for `union` is deprecatedr)   )r   r   r   unionr
   r   r%   r#   test_union_deprecate_positionalr     s:    			I
 * 	eUD)* * *r   c                  2   t        j                  d      5  t        j                  t        t        gd        d d d        t        j                  d      5  t        j                  t        t        gd d        d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)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
 0 	5%.$/0 
		
 6 	5%.$5	6 6	0 06 6s   !B"BB
Bc                      t        j                  dddd      t        j                  dddd      g} t        j                  d      5  t        j                  | d        d d d        y # 1 sw Y   y xY w)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     sb    KK1a#W[[Aq!%<=D			Q
 / 	""4./ / /s   A''A0)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      s      9 9 3 Q Q[[''E
 288I&Wi  w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 
 GKK1aGKK1aGKK1aGKK1b"	  BHHY'W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 /.  
&&
3
3>  W[[c1a(+'++ac2*FG
	
& W[[c1a(+'++ac2*FG
	
& W[[c1a(+'++ac2*FGNO	
 W[[c1a(+'++ac2*FGAB	
 W[[c1a(+'++ac2*FGI	
g8;x,y;x,
,/179?*	6/K Bs   _=
 `