
    rbip                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
mZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZmZ d dlZd dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d d	l'm(Z(m)Z)  G d
 d          Z*ej+        ,                    d          d             Z-d Z.ej+        /                    ej0         d          d             Z1ej+        /                    ej0         d          d             Z2d Z3 G d d          Z4dS )    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                      e Zd Zd Zd Zd Zd Zd Zej	        
                    ej         d          d             Zd	 Zd
 Zd Zd Zd Zd Zej	        
                    ej         d          d             Zd Zd Zd Zd Zd Zd Zej	        
                    ej         d          d             Zd Zd Zej	        
                    ej         d          d             Zd Z d Z!ej	        
                    ej         d          d             Z"ej	        
                    ej         d          d             Z#d  Z$d! Z%d" Z&d# Z'ej	        
                    ej         d          d$             Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8ej	        
                    ej        d5          d6             Z9d7S )8
TestSeriesc                    t          j                    | _        t          g d          | _        t          g d          | _        t          g d          | _        t          | j        | j        g          | _        t          | j        | j        g          | _	        t          | j        | j        gd          | _
        t          | j        | j        g          | _        t          | j        | j        t                      g          | _        t          | j        | j        d g          | _        | j                                        | _        ddg| j        _        | j	                                        | _        ddg| j        _        t%          d	d
          | _        t%          dd          | _        t          | j        | j        gd          | _        t-          g d          | _        t-          g d          | _        t          | j        | j        g          | _        t%          dd          | _        t%          dd          | _        t          | j        | j        gd          | _        d S )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    n/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/geopandas/tests/test_geoseries.pysetup_methodzTestSeries.setup_method"   s   '))2223322233:::;;TWdg.//TWdg.//TWdg.K@@@TWdg.//TWdgwyy9:: $'47D!9::',,..c
',,..c
7++7++"DHdh#7[III55566===>>TWdg.///1BCC/1BCC&dl'CUUU    c                 8    t          j        | j                   d S N)shutilrmtreer,   rC   s    rE   teardown_methodzTestSeries.teardown_method;   s    dl#####rG   c                     | j                                         }t          |          t          u sJ | j         j        |j        k    sJ | j         j        |j        k    sJ d S rI   )r2   r6   typer   namer"   )rD   gcs     rE   	test_copyzTestSeries.test_copy>   s\    W\\^^Bxx9$$$$w|rw&&&&w{bf$$$$$$rG   c                     | j         | j        v sJ | j        | j        v sJ | j         | j        v sJ | j        | j        v sJ | j        | j        vsJ d| j        vsJ d S )N   )r-   r0   r/   r7   r.   r2   rC   s    rE   test_inzTestSeries.test_inD   s    w$'!!!!w$'!!!!w$'!!!!w$'!!!!wdg%%%%rG   c                    | j                             | j                  \  }}t          |t                    sJ t          |t                    sJ |d         J |d                             |d                   sJ |d         J d S )Nr#   r$   r%   )r7   alignr9   
isinstancer   equals)rD   r7   r9   s      rE   
test_alignzTestSeries.test_alignL   s    tw''B"i((((("i(((((#w#w~~bg&&&&&#wrG   pyproj not availablereasonc                 X   | j                             d          }| j                            d          }|                    |          \  }}|j        dk    sJ |j        dk    sJ |                    |                    d d                    \  }}|j        dk    sJ |j        J d S )Nr    z
epsg:31370Tallow_override)r7   set_crsr9   rV   r"   )rD   r7   r9   res1res2s        rE   test_align_crszTestSeries.test_align_crsT   s    W__[))W__\**XXb\\
dx;&&&&x<''''XXbjjdjCCDD
dx;&&&&xrG   c                     | j         }t          j        ddgddg          }|                    |          \  }}t          j        t          j        ddgg d          }t          ||           d S )Nr      r$   r%   r8   r#   r$   r%   )r7   pdSeriesrV   npnanr   )rD   r7   s2ra   rb   exp2s         rE   test_align_mixedzTestSeries.test_align_mixeda   sn    WY1vc3Z000XXb\\
dy"&!Q???D$'''''rG   c                 P   t          j        t          d          5  | j                            | j                   d d d            n# 1 swxY w Y   t          j        t          d          5  | j                            | j                   d d d            d S # 1 swxY w Y   d S )NzThe indices .+ not equalmatch)pytestwarnsUserWarningr7   containsr9   unionrC   s    rE   test_warning_if_not_alignedz&TestSeries.test_warning_if_not_alignedi   s   
 \+-GHHH 	& 	&GTW%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& \+-GHHH 	# 	#GMM$'"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s#    AAA. BB"Bc                    | j                             | j                  \  }}t          j        d          5 }|                    |           | j                            | j                   |	                    |           | j        
                    | j                   d d d            n# 1 swxY w Y   d |D             }|rJ |d         j                    d S )NTrecordc                 .    g | ]}|j         t          u |S  )categoryrt   ).0ws     rE   
<listcomp>z9TestSeries.test_no_warning_if_aligned.<locals>.<listcomp>   s$    HHHqajK.G.G.G.G.GrG   r   )r7   rV   r9   warningscatch_warningsru   r0   
intersectsr1   rv   intersectionmessage)rD   r7   r9   rz   user_warningss        rE   test_no_warning_if_alignedz%TestSeries.test_no_warning_if_alignedu   s	    tw''B$D111 	*VKKOOOGtw'''HHRLLLG  )))		* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* IHFHHH ::-"2"::::::s   A)B--B14B1c                     t          j        | j                            | j                            sJ t	          | j                            | j                  ddg           d S )NFT)rj   allr0   r   r   r/   rC   s    rE   test_geom_equalszTestSeries.test_geom_equals   sV    vdg))$'223333347..tw77%GGGGGrG   c                 2   | j                             | j        d          }t          j        g dg d          }t          ||           | j                             | j        d          }t          j        ddgddg          }t          ||           d S )	NTrV   FTFrg   rf   Fr#   r$   )r7   r   r9   rh   ri   r   )rD   aexps      rE   test_geom_equals_alignz!TestSeries.test_geom_equals_align   s    Gt44i,,,OOODDDAs###Gu55isCj999As#####rG   c                 "   t          j        | j                            | j        d                    sJ t	          | j                            | j        d          ddg           t          j                    5  t          j        ddt                     t	          | j
                            | j        dd          g d           d d d            n# 1 swxY w Y   t	          | j
                            | j        dd          ddg           d S )NgMbP?FTignorez:The indices of the left and right GeoSeries' are not equalr   r   )rj   r   r0   geom_equals_exactr   r/   r   r   filterwarningsrt   r7   r9   rC   s    rE   test_geom_equals_exactz!TestSeries.test_geom_equals_exact   sO   vdg//??@@@@@4744TWeDDudmTTT$&& 		 		#L  
 ))$'5)EE$$$  		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 	G%%dguE%BBUEN	
 	
 	
 	
 	
s   8ACCCzrequires Shapely>=2.1c                    t          j        | j                            | j                            sJ t	          | j                            | j                  ddg           t	          | j                            | j        d          g d           t	          | j                            | j        d          ddg           d S )NFTr   r   )rj   r   r0   geom_equals_identicalr   r/   r7   r9   rC   s    rE   test_geom_equals_identicalz%TestSeries.test_geom_equals_identical   s    vdg33DG<<=====4788AAE4=QQQG))$')>>   	
 	
 	
 	G))$')??%	
 	
 	
 	
 	
rG   c                     t          d t          d          D                       }|t          dd          k    }t          j        g d          }t          ||           d S )Nc                 .    g | ]}t          ||          S r|   r   r~   xs     rE   r   z1TestSeries.test_equal_comp_op.<locals>.<listcomp>        555quQ{{555rG      r   r   )r   ranger   rh   ri   r   )rD   sresr   s       rE   test_equal_comp_opzTestSeries.test_equal_comp_op   sb    55E!HH555665A;;i,,,--C%%%%%rG   c                     t           j                            | j        d          }| j                            |           t          j        |          }t          | j        	                    |                    sJ dS )zTest to_file and from_fileztest.shpN)
ospathjoinr,   r2   to_filer   	from_filer   r   )rD   tempfilenamer   s      rE   test_to_filezTestSeries.test_to_file   sg    w||DL*==%%%--47&&q))*******rG   c                     | j                                         }t          j        |          }d|d         d                                         v sJ d|d         d                                         v sJ dS )zW
        Test whether GeoSeries.to_json works and returns an actual json file.
        idfeaturesr   bboxNr2   to_jsonjsonloadskeysrD   json_strdatas      rE   test_to_jsonzTestSeries.test_to_json   sx     7??$$z(##tJ'*//111111j)!,1133333333rG   c                     | j                             d          }t          j        |          }d|d         d                                         vsJ dS )zL
        Test whether GeoSeries.to_json works when drop_id is True.
        T)drop_idr   r   r   Nr   r   s      rE   test_to_json_drop_idzTestSeries.test_to_json_drop_id   sU     7??4?00z(##4
+A.3355555555rG   c                     | j                             d          }t          j        |          }d|d         d                                         vsJ dS )zO
        Test whether GeoSeries.to_json works when show_bbox is False.
        F)	show_bboxr   r   r   Nr   r   s      rE   test_to_json_no_bboxzTestSeries.test_to_json_no_bbox   sU     7??U?33z(##T*-a05577777777rG   c                     | j                             dd          }t          j        |          }d|d         d                                         vsJ d|d         d                                         vsJ dS )	zk
        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      rE   test_to_json_no_bbox_drop_idz'TestSeries.test_to_json_no_bbox_drop_id   s~    
 7??UD?AAz(##4
+A.33555555T*-a05577777777rG   Requires pyprojc                    | j                             d          }t          j        |          }|d         dk    sJ d|d         d                                         v sJ |d         d         d         d	         }|d         d
         d         d	         }t
          j                            || j        j	        d                    t
          j                            || j
        j	        d                    dS )zF
        Test whether the wgs84 conversion works as intended.
        T)to_wgs84rN   FeatureCollectionr   r   r   geometrycoordinatesr   N)rB   r   r   r   r   rj   testingassert_allcloser:   coordsr;   rD   textr   coord1coord2s        rE   test_to_json_wgs84zTestSeries.test_to_json_wgs84   s    
 !))4)88z$F|22222tJ'*//111111j!!$Z0?j!!$Z0?

""648?1+=>>>

""648?1+=>>>>>rG   c                     | j                                         }t          j        |          }|d         d         d         d         }|d         d         d         d         }|ddgk    sJ |dd	gk    sJ d
S )z/
        Ensure no conversion to wgs84
        r   r   r   r   r   r&   r'   r(   r)   N)rB   r   r   r   r   s        rE   test_to_json_wgs84_falsez#TestSeries.test_to_json_wgs84_false   s     !))++z$j!!$Z0?j!!$Z0?,.?@@@@@,.?@@@@@@@rG   c                 .   t          j        | j                            | j                                                            sJ t          j        | j                            | j                                                            sJ t          j        | j                            | j                                                            sJ t          j        | j                            | j                                                            sJ d S rI   )rj   r   r0   ru   representative_pointr1   r2   r3   rC   s    rE   test_representative_pointz$TestSeries.test_representative_point   s    vdg&&tw'C'C'E'EFFGGGGGvdg&&tw'C'C'E'EFFGGGGGvdg&&tw'C'C'E'EFFGGGGGvdg&&tw'C'C'E'EFFGGGGGGGrG   c                    | j                             d          }|                    d          }t          | j         |          sJ t          j        t
                    5  | j                            d           d d d            n# 1 swxY w Y   t          j        t
                    5  | j                             d d            d d d            d S # 1 swxY w Y   d S )Ni&i  epsg  )r"   r   )r<   to_crsr   rr   raises
ValueErrorr0   )rD   utm18nlonlats      rE   test_transformzTestSeries.test_transform   sO   &&E&22D))!$.&99999]:&& 	& 	&GNNN%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&]:&& 	7 	7N!!d!666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s$   "B

BB.CCCc                     t          j        d          }| j                                        |                    d          k    sJ | j                            d          |                    d          k    sJ d S )Npyproj
EPSG:32618NAD83z
EPSG:26918)rr   importorskipr<   estimate_utm_crsCRSrD   r   s     rE   !test_estimate_utm_crs__geographicz,TestSeries.test_estimate_utm_crs__geographic
  sp    $X..~..00FJJ|4L4LLLLL~..w776::l;S;SSSSSSSrG   c                     t          j        d          }| j                            d                                          |                    d          k    sJ d S )Nr   z	EPSG:3857r   )rr   r   r<   r   r   r   r   s     rE    test_estimate_utm_crs__projectedz+TestSeries.test_estimate_utm_crs__projected  sd    $X..~$$[11BBDD

I
 I
 
 
 
 
 
 
rG   c                     t          j        t          d          5  t          t	          g d          gd                                           d d d            d S # 1 swxY w Y   d S )NzUnable to determine UTM CRSrp   )r   Z   )r   r   )re   r   	EPSG:4326r!   rr   r   RuntimeErrorr   r	   r   rC   s    rE   $test_estimate_utm_crs__out_of_boundsz/TestSeries.test_estimate_utm_crs__out_of_bounds  s    ]</LMMM 	! 	!444556K     	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   4AA!$A!c                     t          j        t          d          5  t          t	          g d          g                                           d d d            d S # 1 swxY w Y   d S )Nzcrs must be setrp   r   r   rC   s    rE   "test_estimate_utm_crs__missing_crsz-TestSeries.test_estimate_utm_crs__missing_crs  s    ]</@AAA 	Q 	Qw:::;;<==NNPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Qs   2AA"Ac                     | j                                         }t          |d         t                    sJ |d         j        sJ t          | j         d d         |d d                   sJ d S )Nre   )r5   fillnarW   r
   is_emptyr   )rD   r4   s     rE   test_fillnazTestSeries.test_fillna!  sp    \  """Q%.....!u~4<+RV4444444rG   c                 4   t          | j        | j        j        ddddf                   sJ t          | j        ddg         | j        j        ddddf                   sJ t          | j        ddg         | j        j        ddddf                   sJ dS )zTest CoordinateSlicerNTF?皙?r   g      ?)r   r2   cxrC   s    rE   test_coord_slicezTestSeries.test_coord_slice*  s     47DGJqqq!!!t$45555547D%=147:cddDSDj3IJJJJJ47E4=147:aeSWn3MNNNNNNNrG   c                    t          d t          dd          D                       }t          |j        d dd df         |j        d d                   sJ t          |j        d d d df         |j        d d                   sJ t          |j        d dd d f         |j        d d                   sJ t          |j        dd dd f         |j        dd                    sJ t          |j        dd d d f         |j        dd                    sJ t          |j        d d dd f         |j        dd                    sJ d S )Nc                 .    g | ]}t          ||          S r|   r   r   s     rE   r   z9TestSeries.test_coord_slice_with_zero.<locals>.<listcomp>4  s     :::a:::rG      r   r   )r   r   r   r   loc)rD   gss     rE   test_coord_slice_with_zeroz%TestSeries.test_coord_slice_with_zero1  sZ    ::U2q\\:::;;25!RaR="&!*5555525BQB<4444425!QQQ<4444425QRR="&*5555525QQQ<4444425ABB<4444444rG   c                     | j         j        d         dk    sJ t          | j         j        d                   | j         j        d         k    sJ d S )NrN   r   r   r   )r0   __geo_interface__lenshaperC   s    rE   test_geoseries_geointerfacez&TestSeries.test_geoseries_geointerface<  sP    w(04GGGGG47,Z899TW]1=MMMMMMMrG   c                    | j                             d          }|                    d          }t          | j         |          sJ | j                             ddd          }|                    d          }t          | j         |          sJ | j                                                             dd	          }|                    ddd          }|                    d          }t          | j         |          sJ | j                             d          }| j                             ddd          }t          ||          sJ d S )
Nz+proj=utm +zone=30r   r   utm30)projzoner    Tr^   )r2   r   r   r6   r`   )rD   reprojectedreprojected_backr6   reprojected_stringreprojected_dicts         rE   test_proj4stringszTestSeries.test_proj4strings@  sS    gnn%9::&--4-88!$'+;<<<<< gnneT%B%BCC&--4-88!$'+;<<<<< w||~~%%k$%GGkk5$"?"?@@&--4-88!$'+;<<<<< "W^^,@AA7>>5$*G*GHH!"46FGGGGGGGrG   c                     t          | j        t          j        | j        j        | j        j        g                     d S rI   )r   r0   r   from_wkbr-   wkbr/   rC   s    rE   test_from_wkbzTestSeries.test_from_wkbW  2    tw	(:DGK;U(V(VWWWWWrG   c                 
   d}d}t          j        t          |          5  t          j        |gd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |gd          }d d d            n# 1 swxY w Y   |d         J t          j                    5  t          j	        d           t          j        |gd	          }d d d            n# 1 swxY w Y   |d         J d S )
N201020000000100000000000000000008400000000000000840)point array must contain 0 or >1 elementsrp   raise
on_invalidwarnr   errorr   )
rr   r   	Exceptionr   r  rs   Warningr   r   simplefilter)rD   invalid_wkb_hexr   r   s       rE   test_from_wkb_on_invalidz#TestSeries.test_from_wkb_on_invalidZ  s   N=]9G444 	F 	F0WEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F \'111 	K 	K$o%66JJJC	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K1v~~~$&& 	M 	M!'***$o%68LLLC	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 1v~~~~~5   AAA*BBB6,C..C25C2c                    t          j        | j        j        | j        j        gddg          }| j                                        }t          j        ddg          |_        t          |t          j        |                     d S Nr   re   rf   )rh   ri   r-   r  r/   r0   r6   Indexr8   r   r   r  rD   r   expecteds      rE   test_from_wkb_serieszTestSeries.test_from_wkb_seriesk  l    Itw{DGK0A???7<<>>1a&))x);A)>)>?????rG   c                     dg}t          j        | j        j        | j        j        gddg          }| j                            |          }t          |t          j	        ||                     d S Nr   re   rf   )
rh   ri   r-   r  r/   r0   reindexr   r   r  rD   r8   r   r(  s       rE   test_from_wkb_series_with_indexz*TestSeries.test_from_wkb_series_with_indexq  g    Itw{DGK0A???7??5))x);AU)K)K)KLLLLLrG   c                     t          | j        t          j        | j        j        | j        j        g                     d S rI   )r   r0   r   from_wktr-   wktr/   rC   s    rE   test_from_wktzTestSeries.test_from_wktw  r  rG   c                 
   d}d}t          j        t          |          5  t          j        |gd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |gd          }d d d            n# 1 swxY w Y   |d         J t          j                    5  t          j	        d           t          j        |gd	          }d d d            n# 1 swxY w Y   |d         J d S )
NzLINESTRING(0 0)r  rp   r  r  r  r   r  r   )
rr   r   r  r   r2  rs   r  r   r   r   )rD   invalid_wktr   r   s       rE   test_from_wkt_on_invalidz#TestSeries.test_from_wkt_on_invalidz  s   '=]9G444 	B 	B}AAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B \'111 	G 	G$k]vFFFC	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G1v~~~$&& 	I 	I!'***$k]xHHHC	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 1v~~~~~r#  c                    t          j        | j        j        | j        j        gddg          }| j                                        }t          j        ddg          |_        t          |t          j        |                     d S r%  )rh   ri   r-   r3  r/   r0   r6   r&  r8   r   r   r2  r'  s      rE   test_from_wkt_serieszTestSeries.test_from_wkt_series  r*  rG   c                     dg}t          j        | j        j        | j        j        gddg          }| j                            |          }t          |t          j	        ||                     d S r,  )
rh   ri   r-   r3  r/   r0   r-  r   r   r2  r.  s       rE   test_from_wkt_series_with_indexz*TestSeries.test_from_wkt_series_with_index  r0  rG   c                 F   t          t          j        | j        j        | j        j        g          | j                                                   t          t          j        | j        j        | j        j        g          | j                            d                     d S )NT)hex)	r   rh   ri   r-   r  r/   r0   to_wkbwkb_hexrC   s    rE   test_to_wkbzTestSeries.test_to_wkb  s}    BItw{DGK&@AA47>>CSCSTTTItw89947>>d>;S;S	
 	
 	
 	
 	
rG   c                     t          t          j        | j        j        | j        j        g          | j                                                   d S rI   )r   rh   ri   r-   r3  r/   r0   to_wktrC   s    rE   test_to_wktzTestSeries.test_to_wkt  s;    BItw{DGK&@AA47>>CSCSTTTTTrG   c                     t          |          }t          |          }||d         dk             }t          |j        |          }|j                            |          }t          ||           d S )N	continentSouth America)r   r   r   r   )rD   naturalearth_lowresnaturalearth_citiesleftworldsouth_americar(  results           rE   	test_clipzTestSeries.test_clip  sn    ,---..eK0OCD}55##M22vx00000rG   c                    t          |          }t          |          }||d         dk             }t          ||d          }t          ||d          }t          j        g d          }t	          |j                  |j        k                                    rJ t	          |j                  |j        k                                    sJ t          ||j                   dS )z;
        Test sorting of geodseries when clipping.
        rE  rF  F)sortT)7   ;   >   X   e   r   z                           N)r   r   rh   r&  sortedr8   r   r   )	rD   rH  rG  citiesrJ  rK  unsorted_clipped_citiessorted_clipped_citiesexpected_sorted_indexs	            rE   test_clip_sortingzTestSeries.test_clip_sorting  s     .//-..eK0OCD"&v}5"I"I"I $V] F F F "SSS!
 !

 *0115L5RR
#%%	 	 	 (.//3H3NN
#%%	 	 	 	02G2MNNNNNrG   c           	      p   | j         j        j        }| j         j        j        }| j         j                                        }| j         j        }t          | j         t          j	        ||||                     t          | j         t          j	        | j         j        | j         j        |                     d S )Nr8   r"   r!   )
r<   r   valuesyr8   tolistr"   r   r   from_xy)rD   r   rh  r8   r"   s        rE   test_from_xy_pointszTestSeries.test_from_xy_points  s    N#N#$++--n NI-a%SIII	
 	
 	
 	Ndn.0@cJJJ	
 	
 	
 	
 	
rG   c           	      h   g d}t          j        g d|          }t          j        g d|          }t          j        g d|          }t          t          ddd          t          d	d
d          t          ddd          g|          }t	          |t          j        |||                     d S )N)rS         )r   re   rf   )   r   r   )rS   rn  r   rp  rS   ro  r   rq  re   r   rn  )rh   ri   r   r   r   rj  )rD   index_valuesr   rh  zr(  s         rE   test_from_xy_points_w_zz"TestSeries.test_from_xy_points_w_z  s     yyIjjj555Iiii|444Ijjj5551a^^U2q"--uQ1~~>l
 
 
 	x):1a)C)CDDDDDrG   c           	         | j         j        }| j         j        }t          j        t          |                     |_        | j         j        }t          | j         t          j
        |||j        |                     | j                                         }|                    dd           t          |t          j
        |||                     d S )Nrf  T)inplacedropr!   )r<   r   rh  rj   aranger  r8   r"   r   r   rj  r6   reset_index)rD   r   rh  r"   unindexed_landmarkss        rE   !test_from_xy_points_unequal_indexz,TestSeries.test_from_xy_points_unequal_index  s    NN9SVV$$$n NI-a!'sKKK	
 	
 	
 #n1133''4'@@@a,,,	
 	
 	
 	
 	
rG   c                 0   t          j        ddg          }t          j        ddg          }t          j        ddg          }t          t          ddd	          t          d
dd          g          }t	          |t          j        |||                     d S )Ng        g      @g       @g      @g      g      @r   re   ro  r   rS   r   )rj   arrayr   r   r   rj  )rD   r   rh  rs  r(  s        rE   test_from_xy_points_indexlessz(TestSeries.test_from_xy_points_indexless  s    Hc3Z  Hc3Z  HdC[!!eAq"oouQ1~~>??x):1a)C)CDDDDDrG   zpyproj installedc                     t          j        t          d          5  | j                            d           d d d            d S # 1 swxY w Y   d S )Nz,The 'pyproj' package is required for set_crsrp   i  )rr   r   ImportErrorr0   r`   rC   s    rE   test_set_crs_pyproj_errorz$TestSeries.test_set_crs_pyproj_error  s    ]M
 
 
 	" 	" GOOD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   AAAN):__name__
__module____qualname__rF   rL   rQ   rT   rY   rr   markskipifcompat
HAS_PYPROJrc   rn   rw   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"  r)  r/  r4  r7  r9  r;  r@  rC  rM  rd  rk  rt  r{  r~  r  r|   rG   rE   r   r   !   sy       V V V2$ $ $% % %        [F--6LMM
  
  NM
 ( ( (
# 
# 
#; ; ;H H H$ $ $
 
 
$ [F009PQQ	
 	
 RQ	
& & &+ + +4 4 46 6 68 8 88 8 8 [F--6GHH? ? IH?	A 	A 	AH H H [F--6LMM7 7 NM7T T T

 
 
 [F--6LMM! ! NM! [F--6LMMQ Q NMQ5 5 5O O O	5 	5 	5N N N [F--6LMMH H NMH,X X X  "@ @ @M M MX X X  "@ @ @M M M
 
 
U U U1 1 1O O O.
 
 
E E E
 
 
E E E [)2DEE" " FE" " "rG   r   zignore::UserWarningc                  "   t          t          dd          d t          j        t	                      t                      g          } | d         J | d         J | d         j        sJ | d         j        sJ |                                                                 g dk    sJ | j                                        g dk    sJ | 	                                                                g dk    sJ | 
                                                                                                rJ |                                                                                                 rJ t          |                                           dk    sJ d S )Nr   re   r   r   )FTTFF)FFFTT)TFFTT)r   r   rj   rk   r   r	   r   isnari  notnar   anydropnar  r   s    rE   test_missing_valuesr    sj   5A;;bf.@.B.BGIINOOA Q4<<<Q4<<<Q4=Q4= 6688?? A A AAAAA:"C"C"CCCCC7799!A!A!AAAAA xxzz  $$&&&&& xxzz  $$&&&&&qxxzz??arG   c                      t          g           } |                                 }t          |t          j        g d                     d S )Nbooldtype)r   r  r   rh   ri   )r   rL  s     rE   test_isna_empty_geoseriesr    s?    "AVVXXF	"F ; ; ;<<<<<rG   rZ   r[   c                      t                                          d          } | j                                        dk    sJ d S )NzIGNF:ETRS89UTM28)IGNFETRS89UTM28)r   r`   r"   to_authorityr   s    rE   test_geoseries_crsr    s@    			/	0	0B6  $;;;;;;;rG   r   c                      t          d          } t          j        t          d          5  d| _        d d d            d S # 1 swxY w Y   d S )Nr    r!   z6Overriding the CRS of a GeoSeries that already has CRSrp   z	epsg:2100)r   rr   rs   DeprecationWarningr"   r  s    rE   ,test_geoseries_override_existing_crs_warningr    s    	{	#	#	#B	F
 
 
   	                 s   AAAc                     t          | t                    sJ t          | j        t                    sJ t          | j        t                    sJ t          | j        t                    sJ d S rI   )rW   r   r   r  r   rg  r   r  s    rE   check_geoseriesr  (  sf    a#####aj),,,,,ag}-----ah.......rG   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            ej         d	          d
             Zd Ze
j                            dg d          e
j                            dddg          d                         Ze
j                            dg d          e
j                            dddg          d                         Zd Zd ZdS )TestConstructorc                 p    t          d t          d          D                       }t          |           d S )Nc                 .    g | ]}t          ||          S r|   r   r   s     rE   r   z4TestConstructor.test_constructor.<locals>.<listcomp>1  r   rG   r   r   r   r  rD   r   s     rE   test_constructorz TestConstructor.test_constructor0  s8    55E!HH55566rG   c                 V   t          dd          }t          g d          }t          g dg dg          }t          g d          }t	          g dddgg          }t          g d	g d
g          }t          ||g          }||||||g}g d}	|D ]}
t          |
          }t          |          dk    sJ |j        d         	                    |
          sJ t          |
|	          }t          |          t          |	          k    sJ |D ]}|	                    |
          sJ d S )Nr   re   ))re   r   )r   rS   rS   rm  r   ))r   r   )r   r   )r   r   ))r   re   )r   r   r  )rn  rp  )	   
   )r   )r   ro  )ro  ro  )ro  r   ))皙r  )r        )r  r  )r  r  )r   bcdr   rf   )
r   r   r	   r   r   r   r   r  ilocrX   )rD   plinepolympmlinepoly2mpolygeomsr8   gr   r   s                rE   test_single_geom_constructorz,TestConstructor.test_single_geom_constructor4  s   !QKK22233,,,/S/S/S.T
 
 00011!9!9!9FG;L MNN000EEEF
 
 dE]++D$E51$$$ 		# 		#A1Br77a<<<<71:$$Q'''''1E***Br77c%jj(((( # #xx{{""""#		# 		#rG   c                    t          j        t          d          5  t          g d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          g d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          ddgddgg           d d d            d S # 1 swxY w Y   d S )	N%Non geometry data passed to GeoSeriesrp   )TFT)r   r  r  r   re   r   r   )rr   r   	TypeErrorr   rC   s    rE   test_non_geometry_raisesz(TestConstructor.test_non_geometry_raisesQ  s   ]9,STTT 	+ 	+)))***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]9,STTT 	' 	'ooo&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' ]9,STTT 	( 	(1v1v&'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s1   :>> A>>BB$CCCc                 |    t          g           }t          |           t                      }t          |           d S rI   )r   r  r  s     rE   
test_emptyzTestConstructor.test_empty[  s8    bMMKKrG   c                 ^    t          t          d                    }t          |           d S )Nr   rf   r  r  s     rE   test_data_is_nonez!TestConstructor.test_data_is_noneb  s,    E!HH%%%rG   c                    t          j        g d          t          j        g d          t          j        g d          g}t          j        g d          t          j        g d          g}t          j        r*|                    t          j        g d                     n)|                    t          j        g d                     |D ]D}t          j        t          d	          5  t          |           d d d            n# 1 swxY w Y   E|D ]Y}t          j
        d
          5 }t          |          }d d d            n# 1 swxY w Y   |rJ t          |t                    sJ Zd S )Nr  r  int64float32objectfloat64strr  rp   Try   )rj   r}  r  PANDAS_INFER_STRappendrr   r   r  r   r   r   rW   )rD   non_geom_compat_dtypesgeom_compat_dtypesarrrz   r   s         rE   test_empty_arrayz TestConstructor.test_empty_arrayf  s	    HRv&&&HRw'''HRy)))"
 HRx(((HRy)))

 " 	A #))"(2U*C*C*CDDDD%%bhr&?&?&?@@@) 	 	C!H     #              
 & 	, 	,C(555 #cNN# # # # # # # # # # # # # # #a++++++		, 	,s$   ,DD	D	-E		E	E	c                 8   d t          d          D             }t          j        |t          d          d          }t	          |          }t          |           d t          ||          D             sJ |j        |j        k    sJ |j        |j        u sJ d S )Nc                 Z    g | ](}t          d  t          d          D                       )S )c                 Z    g | ](}t          j                     t          j                     f)S r|   )randomr~   _s     rE   r   z?TestConstructor.test_from_series.<locals>.<listcomp>.<listcomp>  s)    JJJAfmoov}7JJJrG   r   )r	   r   r  s     rE   r   z4TestConstructor.test_from_series.<locals>.<listcomp>  sE     
 
 
 JJqJJJKK
 
 
rG   r  
abcdefghijfoo)r8   rO   c                 >    g | ]\  }}|                     |          S r|   )rX   )r~   r   r  s      rE   r   z4TestConstructor.test_from_series.<locals>.<listcomp>  s&    2221222rG   )	r   rh   ri   listr   r  ziprO   r8   )rD   shapesr   r  s       rE   test_from_seriesz TestConstructor.test_from_series  s    
 
2YY
 
 

 IfD$6$6UCCCaLL22Aq		222222vw!'!!!!!!rG   rZ   r[   c                 $   t          t          dd          t          dd          t          dd          g          }t          j        |          }t          |d          }|j        j        J |j        J |j        dk    sJ t          j        |                    d                    }t          |d          }|j        dk    sJ t          j        t          d          5  t          |d	           d d d            d S # 1 swxY w Y   d S )
Nr   re   r   r   r!   r   z;CRS mismatch between CRS of the passed geometries and 'crs'rp   i  )
r   r   rh   ri   rg  r"   r`   rr   r   r   )rD   r   r   rL  rl   s        rE   +test_from_series_no_set_crs_on_constructionz;TestConstructor.test_from_series_no_set_crs_on_construction  sU   
 aU1a[[%1++>??IbMM1$'''x|###v~~~z[(((( Yrzz+..//24(((z[((((]O
 
 
 	$ 	$ bd####		$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   &DD	D	c                    t          j        d t          d          D             t                    }t	          |          }t          dd          |j        d<   t          j        s t          t          j        j        dd          r|d         t          dd          k    sJ n|d         t          dd          k    sJ t          j        d t          d          D             t                    }t	          |d	          }|j        j        j        j        sJ t          dd          |j        d<   |d         t          dd          k    sJ d S )
Nc                 .    g | ]}t          ||          S r|   r   r   s     rE   r   z-TestConstructor.test_copy.<locals>.<listcomp>       666a666rG   r   r  r  r   copy_on_writeFc                 .    g | ]}t          ||          S r|   r   r   s     rE   r   z-TestConstructor.test_copy.<locals>.<listcomp>  r  rG   )r6   )rj   r}  r   r  r   r   r   r  PANDAS_GE_30getattrrh   optionsmode_dataflags	writeable)rD   r  rL  s      rE   rQ   zTestConstructor.test_copy  s2   h66U1XX666fEEE3b"
1 	+'"*/?E"R"R 	+q6U1a[[(((((q6U2r]]**** h66U1XX666fEEE3U+++|!'1111b"
11vr2&&&&&&rG   rO   )Nr   Pointsr"   Nr    c                 >   t          t          ddg          t          g d          g||          }|                    d          }|                                }t	          |          t
          u sJ |j        j        ||ndk    sJ |j        |j        k    sJ d S )Nr   r   )re   re   )r   r   )r   r   rO   r"   Tindex_partsr   )	r   r   explodery  rN   r   r   rO   r"   )rD   rO   r"   r   dfs        rE   test_reset_indexz TestConstructor.test_reset_index  s     ()):6N6N6N+O+OP
 
 

 II$I'']]__Bxx<''''{D,<DD!DDDDvrG   c                    t          t          dd          t          dd          g||          }|                                }t          |          t          u sJ ||nd}|j        j        |k    sJ |j        |k    sJ |j        |j        k    sJ |                    d          }t          |          t          u sJ |j        j        dk    sJ |j        |j        k    sJ d S )Nr   r   r  geom)rO   )	r   r   to_framerN   r   r   rO   _geometry_column_namer"   )rD   rO   r"   r   r  expected_namedf2s          rE   test_to_framezTestConstructor.test_to_frame  s     uQ{{E!QKK0tEEEZZ\\Bxx<'''' $ 0a{=0000'=8888v jjfj%%Bxx<''''| F****w!%rG   c                     t          t          ddg          t          g d          g          }|                    d          }t          j        g d          }t          |j        |           d S )Nr   r   r  Fr  )r   r   r   r   r   )r   r   r  rh   r&  r   r8   rD   r   expected_indexs      rE   test_explode_without_multiindexz/TestConstructor.test_explode_without_multiindex  su    ()):6N6N6N+O+OP
 
 II%I((///2217N33333rG   c                 n   t          t          ddg          t          g d          g          }|                    d          }t          j        t          t          |                              }t          |j        |           |                    dd          }t          |j        |           d S )Nr   r   r  T)ignore_index)r  r   )	r   r   r  rh   r&  r   r  r   r8   r  s      rE   test_explode_ignore_indexz)TestConstructor.test_explode_ignore_index  s    ()):6N6N6N+O+OP
 
 II4I((%A--0017N333 II$TI::17N33333rG   )r  r  r  r  r  r  r  r  r  r  rr   r  r  r  r  r  rQ   parametrizer  r  r  r  r|   rG   rE   r  r  /  s         # # #:( ( (    ", ", ",H" " " [F--6LMM$ $ NM$*' ' '( [V%A%A%ABB[UT;$788  98 CB [V%A%A%ABB[UT;$788    98 CB  4 4 4
4 
4 
4 
4 
4rG   r  )5r   r   r  rJ   r*   r   numpyrj   pandasrh   shapely.geometryr   r   r   r   r   r   r	   shapely.geometry.baser
   geopandas._compat_compatr  	geopandasr   r   r   r   geopandas.arrayr   r   rr   geopandas.testingr   r   geopandas.tests.utilr   numpy.testingr   pandas.testingr   r   r   r  r   r  r  r  r  r  r  r  r  r|   rG   rE   <module>r     s    				                              / . . . . . " " " " " " > > > > > > > > > > > > 8 8 8 8 8 8 8 8  H H H H H H H H , , , , , , , , , , , , B B B B B B B BQ" Q" Q" Q" Q" Q" Q" Q"h 122    32 ,= = = ))2HII< < JI<
 ))2CDD  ED/ / /F4 F4 F4 F4 F4 F4 F4 F4 F4 F4rG   