
    jjs                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKr	S SK
JrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJrJrJrJr  S SKJrJr  S SKrS SK J!r!J"r"  S SK#J$r$  S SK%J&r&  S S	K'J(r(J)r)   " S
 S5      r*\RV                  RY                  S5      S 5       r-S r.\RV                  R_                  \R`                  (       + SS9S 5       r1\RV                  R_                  \R`                  (       + SS9S 5       r2S r3 " S S5      r4g)    N)GeometryCollection
LineStringMultiLineString
MultiPointMultiPolygonPointPolygon)BaseGeometry)GeoDataFrame	GeoSeriesclip	read_file)GeometryArrayGeometryDtype)assert_geoseries_equalgeom_almost_equals)geom_equals)assert_array_equal)assert_index_equalassert_series_equalc                   n   \ rS rSrS rS rS rS rS r\	R                  R                  \R                  (       + SS9S	 5       rS
 rS rS rS rS rS r\	R                  R                  \R*                  (       + SS9S 5       rS rS rS rS rS rS r\	R                  R                  \R                  (       + SS9S 5       rS rS r\	R                  R                  \R                  (       + SS9S 5       r S r!S r"\	R                  R                  \R                  (       + SS9S 5       r#\	R                  R                  \R                  (       + SS9S  5       r$S! r%S" r&S# r'S$ r(\	R                  R                  \R                  (       + SS9S% 5       r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1S. r2S/ r3\	R                  Ri                  S0S1\5Rl                  \7Rp                  /5      S2 5       r9S3 r:S4 r;S5 r<S6 r=S7 r>S8 r?S9 r@S: rA\	R                  R                  \R                  S;S9S< 5       rBS=rCg1)>
TestSeries!   c                    [         R                  " 5       U l        [        / SQ5      U l        [        / SQ5      U l        [        / SQ5      U l        [        U R                  U R                  /5      U l        [        U R                  U R                  /5      U l	        [        U R                  U R
                  /SS9U l
        [        U R
                  U R                  /5      U l        [        U R                  U R
                  [        5       /5      U l        [        U R                  U R
                  S /5      U l        U R                  R                  5       U l        SS/U R                  l        U R                  R                  5       U l        SS/U R"                  l        [%        S	S
5      U l        [%        SS5      U l        [        U R&                  U R(                  /SS9U l        [-        / SQ5      U l        [-        / SQ5      U l        [        U R.                  U R0                  /5      U l        [%        SS5      U l        [%        SS5      U l        [        U R4                  U R6                  /SS9U l        g )N)r   r      r   r   r   )r   r   r   r   r   r   r   r   	epsg:4326crsABCg&SRg):_D@gYڂRg ~:XD@)r   r   r   Yj_>PRA_kq_<7RAz	epsg:3857)tempfilemkdtemptempdirr	   t1t2sqr   g1g2g3g4nana_nonecopya1indexa2r   esbsol	landmarksr   l1l2g5esb3857sol3857landmarks3857selfs    a/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/geopandas/tests/test_geoseries.pysetup_methodTestSeries.setup_method"   s   '')2323:;TWWdgg./TWWdgg./TWWdgg.K@TWWdgg./TWWdggwy9: $''477D!9:'',,.c
'',,.c
7+7+"DHHdhh#7[I56=>TWWdgg.//1BC/1BC&dll'CU    c                 D    [         R                  " U R                  5        g N)shutilrmtreer-   rD   s    rF   teardown_methodTestSeries.teardown_method;   s    dll#rI   c                     U R                   R                  5       n[        U5      [        L d   eU R                   R                  UR                  :X  d   eU R                   R
                  UR
                  :X  d   eg rK   )r3   r7   typer   namer#   )rE   gcs     rF   	test_copyTestSeries.test_copy>   sW    WW\\^Bx9$$$ww||rww&&&ww{{bff$$$rI   c                 @   U R                   U R                  ;   d   eU R                  U R                  ;   d   eU R                   U R                  ;   d   eU R                  U R
                  ;   d   eU R                  U R
                  ;  d   eSU R
                  ;  d   eg )N   )r.   r1   r0   r8   r/   r3   rD   s    rF   test_inTestSeries.test_inD   s    ww$''!!!ww$''!!!ww$''!!!ww$''!!!wwdgg%%%rI   c                 
   U R                   R                  U R                  5      u  p[        U[        5      (       d   e[        U[        5      (       d   eUS   b   eUS   R                  US   5      (       d   eUS   b   eg )Nr$   r%   r&   )r8   alignr:   
isinstancer   equals)rE   r8   r:   s      rF   
test_alignTestSeries.test_alignL   sy    tww'"i(((("i((((#w#w~~bg&&&&#wrI   pyproj not availablereasonc                 b   U R                   R                  S5      nU R                  R                  S5      nUR                  U5      u  p4UR                  S:X  d   eUR                  S:X  d   eUR                  UR                  S SS95      u  p4UR                  S:X  d   eUR                  b   eg )Nr!   z
epsg:31370Tallow_override)r8   set_crsr:   r[   r#   )rE   r8   r:   res1res2s        rF   test_align_crsTestSeries.test_align_crsT   s    WW__[)WW__\*XXb\
xx;&&&xx<'''XXbjjdjCD
xx;&&&xxrI   c                     U R                   n[        R                  " SS/SS/S9nUR                  U5      u  p4[        R                  " [        R
                  SS// SQS9n[        XE5        g )Nr      r%   r&   r9   r$   r%   r&   )r8   pdSeriesr[   npnanr   )rE   r8   s2rg   rh   exp2s         rF   test_align_mixedTestSeries.test_align_mixeda   sT    WWYY1vc3Z0XXb\
yy"&&!Q?D'rI   c                 d   [         R                  " [        SS9   U R                  R	                  U R
                  5        S S S 5        [         R                  " [        SS9   U R                  R                  U R
                  5        S S S 5        g ! , (       d  f       NV= f! , (       d  f       g = f)NzThe indices .+ not equalmatch)pytestwarnsUserWarningr8   containsr:   unionrD   s    rF   test_warning_if_not_aligned&TestSeries.test_warning_if_not_alignedi   sq    
 \\+-GHGGTWW% I \\+-GHGGMM$''" IH	 IH IHs   &B!&B!
B!
B/c                    U R                   R                  U R                  5      u  p[        R                  " SS9 nUR                  U5        U R                  R                  U R                  5        UR                  U5        U R                  R                  U R                  5        S S S 5        W Vs/ s H  oDR                  [        L d  M  UPM     nnU(       a   US   R                  5       eg ! , (       d  f       NP= fs  snf )NTrecordr   )r8   r[   r:   warningscatch_warningsr}   r1   
intersectsr2   r~   intersectioncategoryr|   message)rE   r8   r:   r   wuser_warningss         rF   test_no_warning_if_aligned%TestSeries.test_no_warning_if_alignedu   s     tww'$$D1VKKOGGtww'HHRLGG  )	 2 %+HFqjjK.GFH :-"2":":: = 21 Is   A-C35DD3
Dc                     [         R                  " U R                  R                  U R                  5      5      (       d   e[	        U R                  R                  U R
                  5      SS/5        g )NFT)rq   allr1   r   r   r0   rD   s    rF   test_geom_equalsTestSeries.test_geom_equals   sK    vvdgg))$''23333477..tww7%GrI   c                 $   U R                   R                  U R                  SS9n[        R                  " / SQ/ SQS9n[        X5        U R                   R                  U R                  SS9n[        R                  " SS/SS/S9n[        X5        g )	NTr[   FTFrn   rm   Fr$   r%   )r8   r   r:   ro   rp   r   )rE   aexps      rF   test_geom_equals_align!TestSeries.test_geom_equals_align   su    GGt4ii,ODA#GGu5iisCj9A#rI   c           	      D   [         R                  " U R                  R                  U R                  S5      5      (       d   e[	        U R                  R                  U R
                  S5      SS/5        [        R                  " 5          [        R                  " SS[        5        [	        U R                  R                  U R                  SSS9/ SQ5        S S S 5        [	        U R                  R                  U R                  SSS9SS/5        g ! , (       d  f       N@= f)NgMbP?FTignorez:The indices of the left and right GeoSeries' are not equalr   r   )rq   r   r1   geom_equals_exactr   r0   r   r   filterwarningsr|   r8   r:   rD   s    rF   test_geom_equals_exact!TestSeries.test_geom_equals_exact   s    vvdgg//?@@@@47744TWWeDudmT$$&##L
 ))$''5)E$ ' 	GG%%dgguE%BUEN	
 '&s   	AD
Dzrequires Shapely>=2.1c                    [         R                  " U R                  R                  U R                  5      5      (       d   e[	        U R                  R                  U R
                  5      SS/5        [	        U R                  R                  U R                  SS9/ SQ5        [	        U R                  R                  U R                  SS9SS/5        g )NFTr   r   )rq   r   r1   geom_equals_identicalr   r0   r8   r:   rD   s    rF   test_geom_equals_identical%TestSeries.test_geom_equals_identical   s    vvdgg33DGG<====47788AE4=QGG))$'')> 	
 	GG))$'')?%	
rI   c           	          [        [        S5       Vs/ s H  n[        X5      PM     sn5      nU[        SS5      :H  n[        R                  " / SQ5      n[        X45        g s  snf )N   r   r   )r   ranger   ro   rp   r   )rE   xsresr   s        rF   test_equal_comp_opTestSeries.test_equal_comp_op   sO    E!H5HquQ{H565A;ii,-C% 6s   A"c                    [         R                  R                  U R                  S5      nU R                  R                  U5        [        R                  " U5      n[        U R                  R                  U5      5      (       d   eg)zTest to_file and from_fileztest.shpN)
ospathjoinr-   r3   to_filer   	from_filer   r   )rE   tempfilenamer   s      rF   test_to_fileTestSeries.test_to_file   sZ    ww||DLL*=%-477&&q)****rI   c                     U R                   R                  5       n[        R                  " U5      nSUS   S   R	                  5       ;   d   eSUS   S   R	                  5       ;   d   eg)zG
Test whether GeoSeries.to_json works and returns an actual json file.
idfeaturesr   bboxNr3   to_jsonjsonloadskeysrE   json_strdatas      rF   test_to_jsonTestSeries.test_to_json   sd     77??$zz(#tJ'*//1111j)!,113333rI   c                     U R                   R                  SS9n[        R                  " U5      nSUS   S   R	                  5       ;  d   eg)z<
Test whether GeoSeries.to_json works when drop_id is True.
T)drop_idr   r   r   Nr   r   s      rF   test_to_json_drop_idTestSeries.test_to_json_drop_id   sG     77??4?0zz(#4
+A.335555rI   c                     U R                   R                  SS9n[        R                  " U5      nSUS   S   R	                  5       ;  d   eg)z?
Test whether GeoSeries.to_json works when show_bbox is False.
F)	show_bboxr   r   r   Nr   r   s      rF   test_to_json_no_bboxTestSeries.test_to_json_no_bbox   sG     77??U?3zz(#T*-a0557777rI   c                     U R                   R                  SSS9n[        R                  " U5      nSUS   S   R	                  5       ;  d   eSUS   S   R	                  5       ;  d   eg)	zS
Test whether GeoSeries.to_json works when show_bbox is False
and drop_id is True.
FT)r   r   r   r   r   r   Nr   r   s      rF   test_to_json_no_bbox_drop_id'TestSeries.test_to_json_no_bbox_drop_id   sj    
 77??UD?Azz(#4
+A.335555T*-a0557777rI   Requires pyprojc                    U R                   R                  SS9n[        R                  " U5      nUS   S:X  d   eSUS   S   R	                  5       ;   d   eUS   S   S   S	   nUS   S
   S   S	   n[
        R                  R                  X0R                  R                  S   5        [
        R                  R                  X@R                  R                  S   5        g)z6
Test whether the wgs84 conversion works as intended.
T)to_wgs84rQ   FeatureCollectionr   r   r   geometrycoordinatesr   N)rC   r   r   r   r   rq   testingassert_allcloser;   coordsr<   rE   textr   coord1coord2s        rF   test_to_json_wgs84TestSeries.test_to_json_wgs84   s    
 !!))4)8zz$F|2222tJ'*//1111j!!$Z0?j!!$Z0?


""688??1+=>


""688??1+=>rI   c                     U R                   R                  5       n[        R                  " U5      nUS   S   S   S   nUS   S   S   S   nUSS/:X  d   eUSS	/:X  d   eg
)z
Ensure no conversion to wgs84
r   r   r   r   r   r'   r(   r)   r*   N)rC   r   r   r   r   s        rF   test_to_json_wgs84_false#TestSeries.test_to_json_wgs84_false   s     !!))+zz$j!!$Z0?j!!$Z0?,.?@@@@,.?@@@@rI   c                 t   [         R                  " U R                  R                  U R                  R	                  5       5      5      (       d   e[         R                  " U R
                  R                  U R
                  R	                  5       5      5      (       d   e[         R                  " U R                  R                  U R                  R	                  5       5      5      (       d   e[         R                  " U R                  R                  U R                  R	                  5       5      5      (       d   eg rK   )rq   r   r1   r}   representative_pointr2   r3   r4   rD   s    rF   test_representative_point$TestSeries.test_representative_point   s    vvdgg&&tww'C'C'EFGGGGvvdgg&&tww'C'C'EFGGGGvvdgg&&tww'C'C'EFGGGGvvdgg&&tww'C'C'EFGGGGrI   c                    U R                   R                  SS9nUR                  SS9n[        U R                   U5      (       d   e[        R                  " [
        5         U R                  R                  SS9  S S S 5        [        R                  " [
        5         U R                   R                  S S S9  S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)Ni&i  epsg  )r#   r   )r=   to_crsr   rz   raises
ValueErrorr1   )rE   utm18nlonlats      rF   test_transformTestSeries.test_transform   s    &&E&2D)!$..&9999]]:&GGNNN% ']]:&NN!!d!6 '& '&&&s    C C 
C
Cc                     [         R                  " S5      nU R                  R                  5       UR	                  S5      :X  d   eU R                  R                  S5      UR	                  S5      :X  d   eg )Npyproj
EPSG:32618NAD83z
EPSG:26918)rz   importorskipr=   estimate_utm_crsCRSrE   r   s     rF   !test_estimate_utm_crs__geographic,TestSeries.test_estimate_utm_crs__geographic
  s\    $$X.~~..0FJJ|4LLLL~~..w76::l;SSSSrI   c                     [         R                  " S5      nU R                  R                  S5      R	                  5       UR                  S5      :X  d   eg )Nr   z	EPSG:3857r   )rz   r   r=   r   r   r   r   s     rF    test_estimate_utm_crs__projected+TestSeries.test_estimate_utm_crs__projected  sK    $$X.~~$$[1BBD

I
 
 	
 
rI   c                     [         R                  " [        SS9   [        [	        / SQ5      /SS9R                  5         S S S 5        g ! , (       d  f       g = f)NzUnable to determine UTM CRSrx   )r   Z   )r   r   )rl   r   	EPSG:4326r"   rz   r   RuntimeErrorr   r	   r   rD   s    rF   $test_estimate_utm_crs__out_of_bounds/TestSeries.test_estimate_utm_crs__out_of_bounds  s=    ]]</LM456K  NMMs   %A
Ac                     [         R                  " [        SS9   [        [	        / SQ5      /5      R                  5         S S S 5        g ! , (       d  f       g = f)Nzcrs must be setrx   r   r   rD   s    rF   "test_estimate_utm_crs__missing_crs-TestSeries.test_estimate_utm_crs__missing_crs  s8    ]]</@Aw:;<=NNP BAAs   &A		
Ac                     U R                   R                  5       n[        US   [        5      (       d   eUS   R                  (       d   e[        U R                   S S US S 5      (       d   eg )Nrl   )r6   fillnar\   r
   is_emptyr   )rE   r5   s     rF   test_fillnaTestSeries.test_fillna!  s_    \\  ""Q%....!u~~~4<<+RV4444rI   c                 t   [        U R                  U R                  R                  SS2SS24   5      (       d   e[        U R                  SS/   U R                  R                  SS2SS24   5      (       d   e[        U R                  SS/   U R                  R                  SS2SS24   5      (       d   eg)zTest CoordinateSlicerNTF?皙?r   g      ?)r   r3   cxrD   s    rF   test_coord_sliceTestSeries.test_coord_slice*  s     477DGGJJq!t$45555477D%=1477::cdDSDj3IJJJJ477E4=1477::aeSWn3MNNNNrI   c           	         [        [        SS5       Vs/ s H  n[        X5      PM     sn5      n[        UR                  S S2S S24   UR
                  S S 5      (       d   e[        UR                  S S 2S S24   UR
                  S S 5      (       d   e[        UR                  S S2S S 24   UR
                  S S 5      (       d   e[        UR                  SS 2SS 24   UR
                  SS  5      (       d   e[        UR                  SS 2S S 24   UR
                  SS  5      (       d   e[        UR                  S S 2SS 24   UR
                  SS  5      (       d   eg s  snf )N   r   r   )r   r   r   r   r  loc)rE   r   gss      rF   test_coord_slice_with_zero%TestSeries.test_coord_slice_with_zero1  s:    U2q\:\a\:;255!RaR="&&!*5555255BQB<4444255!Q<4444255QR="&&*5555255Q<4444255AB<4444 ;s   E#c                     U R                   R                  S   S:X  d   e[        U R                   R                  S   5      U R                   R                  S   :X  d   eg )NrQ   r   r   r   )r1   __geo_interface__lenshaperD   s    rF   test_geoseries_geointerface&TestSeries.test_geoseries_geointerface<  sO    ww((04GGGG477,,Z89TWW]]1=MMMMrI   c                    U R                   R                  S5      nUR                  SS9n[        U R                   U5      (       d   eU R                   R                  SSS.5      nUR                  SS9n[        U R                   U5      (       d   eU R                   R                  5       R	                  SSS	9nUR                  SSS.5      nUR                  SS9n[        U R                   U5      (       d   eU R                   R                  S5      nU R                   R                  SSS.5      n[        XE5      (       d   eg )
Nz+proj=utm +zone=30r   r   utm30)projzoner!   Trd   )r3   r   r   r7   rf   )rE   reprojectedreprojected_backr7   reprojected_stringreprojected_dicts         rF   test_proj4stringsTestSeries.test_proj4strings@  s(    ggnn%9:&--4-8!$''+;<<<< ggnneT%BC&--4-8!$''+;<<<< ww||~%%k$%Gkk5$"?@&--4-8!$''+;<<<< "WW^^,@A77>>5$*GH!"4GGGGrI   c                     [        U R                  [        R                  " U R                  R
                  U R                  R
                  /5      5        g rK   )r   r1   r   from_wkbr.   wkbr0   rD   s    rF   test_from_wkbTestSeries.test_from_wkbW  0    tww	(:(:DGGKK;U(VWrI   c                    SnSn[         R                  " [        US9   [        R                  " U/SS9  S S S 5        [         R
                  " [        US9   [        R                  " U/SS9nS S S 5        WS   b   e[        R                  " 5          [        R                  " S5        [        R                  " U/S	S9nS S S 5        US   b   eg ! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       N9= f)
N201020000000100000000000000000008400000000000000840)point array must contain 0 or >1 elementsrx   raise
on_invalidwarnr   errorr   )
rz   r   	Exceptionr   r*  r{   Warningr   r   simplefilter)rE   invalid_wkb_hexr   r   s       rF   test_from_wkb_on_invalid#TestSeries.test_from_wkb_on_invalidZ  s    N=]]9G40WE 5 \\'1$$o%66JC 21v~~$$&!!'*$$o%68LC ' 1v~~ 54 21 '&#   CC!-C2
C!
C/2
D c                 4   [         R                  " U R                  R                  U R                  R                  /SS/S9nU R
                  R                  5       n[         R                  " SS/5      Ul        [        U[        R                  " U5      5        g Nr   rl   rm   )ro   rp   r.   r+  r0   r1   r7   Indexr9   r   r   r*  rE   r   expecteds      rF   test_from_wkb_seriesTestSeries.test_from_wkb_seriesk  c    IItww{{DGGKK0A?77<<>1a&)x););A)>?rI   c                     S/n[         R                  " U R                  R                  U R                  R                  /SS/S9nU R
                  R                  U5      n[        U[        R                  " X!S95        g Nr   rl   rm   )
ro   rp   r.   r+  r0   r1   reindexr   r   r*  rE   r9   r   rB  s       rF   test_from_wkb_series_with_index*TestSeries.test_from_wkb_series_with_indexq  Y    IItww{{DGGKK0A?77??5)x););A)KLrI   c                    [         R                  " U R                  R                  S U R                  R                  /5      n[
        R                  " U5      n[        U R                  S U R                  /5      n[        X#5        g rK   )ro   rp   r.   r+  r0   r   r*  r   rE   r   resultrB  s       rF   test_from_wkb_with_missing%TestSeries.test_from_wkb_with_missingw  X    IItww{{D$''++67##A&dggtTWW56v0rI   c                     [        U R                  [        R                  " U R                  R
                  U R                  R
                  /5      5        g rK   )r   r1   r   from_wktr.   wktr0   rD   s    rF   test_from_wktTestSeries.test_from_wkt}  r.  rI   c                    SnSn[         R                  " [        US9   [        R                  " U/SS9  S S S 5        [         R
                  " [        US9   [        R                  " U/SS9nS S S 5        WS   b   e[        R                  " 5          [        R                  " S5        [        R                  " U/S	S9nS S S 5        US   b   eg ! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       N9= f)
NzLINESTRING(0 0)r1  rx   r2  r3  r5  r   r6  r   )
rz   r   r7  r   rT  r{   r8  r   r   r9  )rE   invalid_wktr   r   s       rF   test_from_wkt_on_invalid#TestSeries.test_from_wkt_on_invalid  s    '=]]9G4}A 5 \\'1$$k]vFC 21v~~$$&!!'*$$k]xHC ' 1v~~ 54 21 '&r=  c                 4   [         R                  " U R                  R                  U R                  R                  /SS/S9nU R
                  R                  5       n[         R                  " SS/5      Ul        [        U[        R                  " U5      5        g r?  )ro   rp   r.   rU  r0   r1   r7   r@  r9   r   r   rT  rA  s      rF   test_from_wkt_seriesTestSeries.test_from_wkt_series  rE  rI   c                     S/n[         R                  " U R                  R                  U R                  R                  /SS/S9nU R
                  R                  U5      n[        U[        R                  " X!S95        g rG  )
ro   rp   r.   rU  r0   r1   rH  r   r   rT  rI  s       rF   test_from_wkt_series_with_index*TestSeries.test_from_wkt_series_with_index  rL  rI   c                    [         R                  " U R                  R                  S U R                  R                  /5      n[
        R                  " U5      n[        U R                  S U R                  /5      n[        X#5        g rK   ro   rp   r.   rU  r0   r   rT  r   rN  s       rF   test_from_wkt_with_missing%TestSeries.test_from_wkt_with_missing  rR  rI   missing_valueNc                    [         R                  " U R                  R                  XR                  R                  /SS9n[
        R                  " U5      n[        U R                  S U R                  /5      n[        X45        g )Nobjectdtyperc  )rE   rf  r   rO  rB  s        rF   !test_from_wkt_with_missing_object,TestSeries.test_from_wkt_with_missing_object  sX    IItww{{M77;;?xP##A&dggtTWW56v0rI   c                    [        [        R                  " U R                  R                  U R
                  R                  /5      U R                  R                  5       5        [        [        R                  " U R                  R                  U R
                  R                  /5      U R                  R                  SS95        g )NT)hex)	r   ro   rp   r.   r+  r0   r1   to_wkbwkb_hexrD   s    rF   test_to_wkbTestSeries.test_to_wkb  so    BIItww{{DGGKK&@A477>>CSTIItww89477>>d>;S	
rI   c                     [        [        R                  " U R                  R                  U R
                  R                  /5      U R                  R                  5       5        g rK   )r   ro   rp   r.   rU  r0   r1   to_wktrD   s    rF   test_to_wktTestSeries.test_to_wkt  s5    BIItww{{DGGKK&@A477>>CSTrI   c                     [        U5      n[        U5      nXDS   S:H     n[        UR                  U5      nUR                  R                  U5      n[        Xv5        g )N	continentSouth America)r   r   r   r   )rE   naturalearth_lowresnaturalearth_citiesleftworldsouth_americarB  rO  s           rF   	test_clipTestSeries.test_clip  sV    ,--.K0OCD}5##M2v0rI   c                    [        U5      n[        U5      nXDS   S:H     n[        X5SS9n[        X5SS9n[        R                  " / SQ5      n[	        UR
                  5      UR
                  :H  R                  5       (       a   e[	        UR
                  5      UR
                  :H  R                  5       (       d   e[        XR
                  5        g)z+
Test sorting of geodseries when clipping.
rx  ry  F)sortT)7   ;   >   X   e   r   z                           N)r   r   ro   r@  sortedr9   r   r   )	rE   r{  rz  citiesr}  r~  unsorted_clipped_citiessorted_clipped_citiesexpected_sorted_indexs	            rF   test_clip_sortingTestSeries.test_clip_sorting  s     ./-.K0OCD"&v5"I $V F "S!

 *0015L5R5RR
#% 	  (../3H3N3NN
#% 	  	02M2MNrI   c           
         U R                   R                  R                  nU R                   R                  R                  nU R                   R                  R                  5       nU R                   R                  n[        U R                   [        R                  " XX4S95        [        U R                   [        R                  " U R                   R                  U R                   R                  US95        g )Nr9   r#   r"   )
r=   r   valuesyr9   tolistr#   r   r   from_xy)rE   r   r  r9   r#   s        rF   test_from_xy_pointsTestSeries.test_from_xy_points  s    NN##NN##$$++-nn  NNI--a%I	
 	NNdnn..0@0@cJ	
rI   c           	      4   / SQn[         R                  " / SQUS9n[         R                  " / SQUS9n[         R                  " / SQUS9n[        [        SSS5      [        S	S
S5      [        SSS5      /US9n[	        U[        R
                  " X#U5      5        g )N)rW         )r   rl   rm   )   r   r   )rW   r  r   r  rW   r  r   r  rl   r   r  )ro   rp   r   r   r   r  )rE   index_valuesr   r  zrB  s         rF   test_from_xy_points_w_z"TestSeries.test_from_xy_points_w_z  s     IIj5IIi|4IIj51a^U2q"-uQ1~>l
 	x):):1)CDrI   c           
         U R                   R                  nU R                   R                  n[        R                  " [        U5      5      * Ul        U R                   R                  n[        U R                   [        R                  " XUR                  US95        U R                   R                  5       nUR                  SSS9  [        U[        R                  " XUS95        g )Nr  T)inplacedropr"   )r=   r   r  rq   aranger  r9   r#   r   r   r  r7   reset_index)rE   r   r  r#   unindexed_landmarkss        rF   !test_from_xy_points_unequal_index,TestSeries.test_from_xy_points_unequal_index  s    NNNN99SV$$nn  NNI--a!''sK	
 #nn113''4'@a,	
rI   c                    [         R                  " SS/5      n[         R                  " SS/5      n[         R                  " SS/5      n[        [        SSS	5      [        S
SS5      /5      n[	        U[        R
                  " XU5      5        g )Ng        g      @g       @g      @g      g      @r   rl   r  r   rW   r  )rq   arrayr   r   r   r  )rE   r   r  r  rB  s        rF   test_from_xy_points_indexless(TestSeries.test_from_xy_points_indexless  sn    HHc3Z HHc3Z HHdC[!eAq"ouQ1~>?x):):1)CDrI   zpyproj installedc                     [         R                  " [        SS9   U R                  R	                  S5        S S S 5        g ! , (       d  f       g = f)Nz,The 'pyproj' package is required for set_crsrx   i  )rz   r   ImportErrorr1   rf   rD   s    rF   test_set_crs_pyproj_error$TestSeries.test_set_crs_pyproj_error   s6    ]]M
 GGOOD!
 
 
s	   ?
A)r8   r:   r;   rA   r1   r2   r3   r4   r@   r>   r?   r=   rC   r5   r6   r<   rB   r0   r.   r/   r-   )D__name__
__module____qualname____firstlineno__rG   rN   rT   rX   r^   rz   markskipifcompat
HAS_PYPROJri   ru   r   r   r   r   r   SHAPELY_GE_21r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r'  r,  r;  rC  rJ  rP  rV  rZ  r]  r`  rd  parametrizerq   rr   ro   NArk  rq  ru  r  r  r  r  r  r  r  __static_attributes__ rI   rF   r   r   !   s   V2$%  [[F---6LM
  N
 (
#;H$
$ [[F0009PQ	
 R	
&+4688 [[F---6GH? I?	AH [[F---6LM7 N7T

 [[F---6LM! N! [[F---6LMQ NQ5O	5N [[F---6LMH NH,X"@M1X"@M1 [[_tRVVRUU.CD1 E1
U1O.
E
E [[))2DE" F"rI   r   zignore::UserWarningc                     [        [        SS5      S [        R                  [	        5       [        5       /5      n U S   b   eU S   b   eU S   R                  (       d   eU S   R                  (       d   eU R                  5       R                  5       / SQ:X  d   eU R                  R                  5       / SQ:X  d   eU R                  5       R                  5       / SQ:X  d   eU R                  5       R                  5       R                  5       (       a   eU R                  5       R                  5       R                  5       (       a   e[        U R                  5       5      S:X  d   eg )Nr   rl   r   r  )FTTFF)FFFTT)TFFTT)r   r   rq   rr   r   r	   r  isnar  notnar  anydropnar  r   s    rF   test_missing_valuesr    s   5A;bff.@.BGINOA Q4<<Q4<<Q4===Q4=== 668?? AAAA::"CCCC779!AAAA xxz $$&&&& xxz $$&&&&qxxz?arI   c                  x    [        / 5      n U R                  5       n[        U[        R                  " / SS95        g )Nboolri  )r   r  r   ro   rp   )r   rO  s     rF   test_isna_empty_geoseriesr    s+    "AVVXF		"F ;<rI   r`   ra   c                  v    [        5       R                  S5      n U R                  R                  5       S:X  d   eg )NzIGNF:ETRS89UTM28)IGNFETRS89UTM28)r   rf   r#   to_authorityr  s    rF   test_geoseries_crsr  &  s1    			/	0B66 $;;;;rI   r   c                      [        SS9n [        R                  " [        SS9   SU l        S S S 5        g ! , (       d  f       g = f)Nr!   r"   z6Overriding the CRS of a GeoSeries that already has CRSrx   z	epsg:2100)r   rz   r{   DeprecationWarningr#   r  s    rF   ,test_geoseries_override_existing_crs_warningr  ,  s7    	{	#B	F
 	
 
 
s	   4
Ac                     [        U [        5      (       d   e[        U R                  [        5      (       d   e[        U R                  [        5      (       d   e[        U R
                  [        5      (       d   eg rK   )r\   r   r   rj  r   r  r   r  s    rF   check_geoseriesr  ;  sZ    a####ajj),,,,agg}----ahh....rI   c                      \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  \R                  (       + S	S
9S 5       rS r\R                  R%                  S/ SQ5      \R                  R%                  SSS/5      S 5       5       r\R                  R%                  S/ SQ5      \R                  R%                  SSS/5      S 5       5       rS rS rSrg)TestConstructoriB  c           	          [        [        S5       Vs/ s H  n[        X5      PM     sn5      n[        U5        g s  snf )Nr   )r   r   r   r  )rE   r   r   s      rF   test_constructor TestConstructor.test_constructorC  s0    E!H5HquQ{H56 6s   ;c                    [        SS5      n[        / SQ5      n[        / SQ/ SQ/5      n[        / SQ5      n[	        / SQSS//5      n[        / S	Q/ S
Q/5      n[        X6/5      nXX4XW/n/ SQn	U H  n
[        U
5      n[        U5      S:X  d   eUR                  S   R                  U
5      (       d   e[        XS9n[        U5      [        U	5      :X  d   eU H  nUR                  U
5      (       a  M   e   M     g )Nr   rl   ))rl   r   )r  rW   rW   r  r    ))r  r  )r  r  )r  r  ))r   rl   )r   r  r  )r  r  )	   
   )r   )r   r  )r  r  )r  r   ))皙r  )r        )r  r  )r  r  )r   bcdr   rm   )
r   r   r	   r   r   r   r   r  ilocr]   )rE   plinepolympmlinepoly2mpolygeomsr9   gr  r   s                rF   test_single_geom_constructor,TestConstructor.test_single_geom_constructorG  s    !QK23,/S.T
 01!9FG;L MN0EF
 d]+$E1$A1Br7a<<771:$$Q''''1*Br7c%j(((xx{{"{  rI   c                    [         R                  " [        SS9   [        / SQ5        S S S 5        [         R                  " [        SS9   [        / SQ5        S S S 5        [         R                  " [        SS9   [        SS/SS//5        S S S 5        g ! , (       d  f       Nq= f! , (       d  f       NS= f! , (       d  f       g = f)	N%Non geometry data passed to GeoSeriesrx   )TFT)r   r  r  r   rl   r   r  )rz   r   	TypeErrorr   rD   s    rF   test_non_geometry_raises(TestConstructor.test_non_geometry_raisesd  s    ]]9,ST)* U ]]9,STo& U ]]9,ST1v1v&' UT UT UT UTs#   B	B$8B5
B!$
B25
Cc                 Z    [        / 5      n[        U5        [        5       n[        U5        g rK   )r   r  rE   r   s     rF   
test_emptyTestConstructor.test_emptyn  s"    bMKrI   c                 >    [        [        S5      S9n[        U5        g )Nr   rm   )r   r   r  r  s     rF   test_data_is_none!TestConstructor.test_data_is_noneu  s    E!H%rI   c                    [         R                  " / SS9[         R                  " / SS9[         R                  " / SS9/n[         R                  " / SS9[         R                  " / SS9/n[        R                  (       a%  UR	                  [         R                  " / SS95        O$UR	                  [         R                  " / SS95        U H0  n[
        R                  " [        SS	9   [        U5        S S S 5        M2     U HK  n[        R                  " S
S9 n[        U5      nS S S 5        W(       a   e[        W[        5      (       a  MK   e   g ! , (       d  f       M  = f! , (       d  f       NE= f)Nr  ri  int64float32rh  float64strr  rx   Tr   )rq   r  r  PANDAS_INFER_STRappendrz   r   r  r   r   r   r\   )rE   non_geom_compat_dtypesgeom_compat_dtypesarrr   r   s         rF   test_empty_array TestConstructor.test_empty_arrayy  s#    HHRv&HHRw'HHRy)"
 HHRx(HHRy)

 "" #))"((2U*CD%%bhhr&?@)C!H #  * &C((5cN 6:a++++	 &  65s   %EE!
E	!
E/	c                 4   [        S5       Vs/ s HP  n[        [        S5       Vs/ s H-  n[        R                  " 5       [        R                  " 5       4PM/     sn5      PMR     nn[        R                  " U[        S5      SS9n[        U5      n[        U5        [        X45       VVs/ s H  u  pVUR                  U5      PM     snn(       d   eUR                  UR                  :X  d   eUR                  UR                  L d   eg s  snf s  snf s  snnf )Nr  r   
abcdefghijfoo)r9   rR   )r   r	   randomro   rp   listr   r  zipr]   rR   r9   )rE   _shapesr   r  r   r  s          rF   test_from_series TestConstructor.test_from_series  s     2Y
 qJAfmmov}}7JK 	 

 IIfD$6UCaL(+A	2		2222vvww!''!!! K
 3s   D4D
D*D
Dr`   ra   c                    [        [        SS5      [        SS5      [        SS5      /5      n[        R                  " U5      n[        USS9nUR                  R
                  b   eUR
                  b   eUR
                  S:X  d   e[        R                  " UR                  S5      5      n[        USS9nUR
                  S:X  d   e[        R                  " [        SS9   [        US	S9  S S S 5        g ! , (       d  f       g = f)
Nr   rl   r   r   r"   r   z;CRS mismatch between CRS of the passed geometries and 'crs'rx   i  )
r   r   ro   rp   r  r#   rf   rz   r   r   )rE   r  r   rO  rs   s        rF   +test_from_series_no_set_crs_on_construction;TestConstructor.test_from_series_no_set_crs_on_construction  s    
 aU1a[%1+>?IIbM1$'xx||###vv~~zz[((( YYrzz+./24(zz[(((]]O
 bd#	
 
 
s   !C55
Dc           	         [         R                  " [        S5       Vs/ s H  n[        X5      PM     sn[        S9n[        U5      n[        SS5      UR                  S'   [        R                  (       d*  [        [        R                  R                  SS5      (       a  US   [        SS5      :X  d   eOUS   [        SS5      :X  d   e[         R                  " [        S5       Vs/ s H  n[        X5      PM     sn[        S9n[        USS9nUR                  R                  R                  R                  (       d   e[        SS5      UR                  S'   US   [        SS5      :X  d   eg s  snf s  snf )Nr   ri  r  r   copy_on_writeF)r7   )rq   r  r   r   rh  r   r  r  PANDAS_GE_30getattrro   optionsmode_dataflags	writeable)rE   r   r  rO  s       rF   rT   TestConstructor.test_copy  s   hhU1X6XaX6fE3b"

1'"**//?E"R"Rq6U1a[(((q6U2r]*** hhU1X6XaX6fE3U+||!!''1111b"

11vr2&&& 7 7s   E1(E6rR   )Nr   Pointsr#   Nr!   c                 *   [        [        SS/5      [        / SQ5      /UUS9nUR                  SS9nUR                  5       n[	        U5      [
        L d   eUR                  R                  Ub  UOS:X  d   eUR                  UR                  :X  d   eg )Nr   r   )rl   rl   )r   r   )r  r  rR   r#   Tindex_partsr   )	r   r   exploder  rQ   r   r   rR   r#   )rE   rR   r#   r   dfs        rF   test_reset_index TestConstructor.test_reset_index  s     ():6N+OP

 II$I']]_Bx<'''{{D,<D!DDDvvrI   c                    [        [        SS5      [        SS5      /XS9nUR                  5       n[        U5      [        L d   eUb  UOSnUR
                  R                  U:X  d   eUR                  U:X  d   eUR                  UR                  :X  d   eUR                  SS9n[        U5      [        L d   eUR
                  R                  S:X  d   eUR                  UR                  :X  d   eg )Nr   r   r)  geom)rR   )	r   r   to_framerQ   r   r   rR   _geometry_column_namer#   )rE   rR   r#   r   r-  expected_namedf2s          rF   test_to_frameTestConstructor.test_to_frame  s     uQ{E!QK0tEZZ\Bx<''' $ 0a{{=000''=888vv jjfj%Bx<'''||  F***ww!%%rI   c                     [        [        SS/5      [        / SQ5      /5      nUR                  SS9n[        R                  " / SQ5      n[        UR                  U5        g )Nr   r   r(  Fr*  )r   r   r   r   r   )r   r   r,  ro   r@  r   r9   rE   r   expected_indexs      rF   test_explode_without_multiindex/TestConstructor.test_explode_without_multiindex  sR    ():6N+OP
 II%I(/2177N3rI   c                 0   [        [        SS/5      [        / SQ5      /5      nUR                  SS9n[        R                  " [        [        U5      5      5      n[        UR                  U5        UR                  SSS9n[        UR                  U5        g )Nr   r   r(  T)ignore_index)r+  r>  )	r   r   r,  ro   r@  r   r  r   r9   r9  s      rF   test_explode_ignore_index)TestConstructor.test_explode_ignore_index  s|    ():6N+OP
 II4I(%A-0177N3 II$TI:177N3rI   r  )r  r  r  r  r  r  r  r  r  r  r  rz   r  r  r  r  r  rT   r  r.  r6  r;  r?  r  r  rI   rF   r  r  B  s    #:(",H" [[F---6LM$ N$*'( [[V%AB[[UT;$78 9 C [[V%AB[[UT;$78  9 C  4
4rI   r  )5r   r   r  rL   r+   r   numpyrq   pandasro   shapely.geometryr   r   r   r   r   r   r	   shapely.geometry.baser
   geopandas._compat_compatr  	geopandasr   r   r   r   geopandas.arrayr   r   rz   geopandas.testingr   r   geopandas.tests.utilr   numpy.testingr   pandas.testingr   r   r   r  r   r  r  r  r  r  r  r  r  r  rI   rF   <module>rM     s     	         / " > > 8  H , , Bd" d"N 12  3 ,= )))2HI< J<
 )))2CD E/F4 F4rI   