a
    1$esn                     @   sz  d dl Z d dlZd dlZd dlmZ d dlZd dlZd dl	Zd dl
mZmZmZ d dlZd dlZzd dlmZ W n ey   d dlmZ Y n0 d dlZd dlmZmZmZmZmZmZmZmZmZ d dlmZ  d dl!Z!dd e"dD Z#e#ej$%d	dg Z&ee&Z'd
d e"dD Z(e(dg Z)ee)Z*dd Z+dd Z,dd Z-dd Z.dd Z/dd Z0dd Z1dd Z2e!j34dddgdd  Z5d!d" Z6d#d$ Z7d%d& Z8e!j34d'g d(d)d* Z9e!j34d'g d(d+d, Z:e!j34d-g d.d/d0 Z;e!j34d-d1gd2d3 Z<e!j34d-g d4d5d6 Z=e!j34d-g d4d7d8 Z>e!j34d-d9d:d;d<d=e!j?d>e!j3@d?gd@gdAdB ZAe!j3@d?dCdD ZBe!j34d-dEdFgdGdH ZCdIdJ ZDdKdL ZEdMdN ZFdOdP ZGe!j34dQdRdSgdTdU ZHe!j34dVejIejJge!j34dWejIejKge!j34dXdYdZgd[d\ ZLd]d^ ZMd_d` ZNe!j34dadbg dcffdddedfdggdhdi ZOdjdk ZPdldm ZQdndo ZRdpdq ZSe!j34drejTejUVg dsgdteWejUVg dsgeXejUVg dsgejUVg dsgejUVg dsgdudv ZYdwdx ZZdydz Z[d{d| Z\d}d~ Z]dd Z^dd Z_dd Z`dd Zadd Zbe!j34ddejcgdd Zddd Zedd Zfdd ZgG dd dZhdS )    N)CRS)	CAP_STYLE
JOIN_STYLEBaseGeometry)geos_version)	GeometryArrayfrom_shapelyfrom_wkbfrom_wktpoints_from_xyto_wkbto_wkt
_check_crs_crs_mismatch_warnc                 C   s&   g | ]}t jd d tdD qS )c                 S   s   g | ]}t   t   fqS  random.0ir   r   V/var/www/html/django/DPS/env/lib/python3.9/site-packages/geopandas/tests/test_array.py
<listcomp>$       z<listcomp>.<listcomp>   shapelygeometryPolygonranger   _r   r   r   r   #   s   r   
   POLYGON EMPTYc                 C   s"   g | ]}t jt t qS r   )r   r   Pointr   r   r   r   r   r   *   s      c                 C   sP   t | |D ]@\}}|d u s"|d u r:|d u r2|d u sJ dS q
||s
 dS q
dS )NFT)zipequals)resultexpectedrer   r   r   equal_geometries1   s    
r+   c                  C   s   t dt j} t dt jd }t| |}t|ts@J tdD ]F}t|| tj	j
sbJ || j| | ksxJ || j|| ksHJ qHd S )Nr!      )nparangeastypefloat64r   
isinstancer   r   r   r   r#   xy)r2   r3   pointsr   r   r   r   test_points;   s    
r5   c                  C   s  t dd tdD } dd tdD }dd tdD }t| d | d }t| d | d | d }t|tsxJ t|tsJ t||ksJ t||ksJ t tdt	
dttdfD ]^}t||}t|||}t|tsJ t|tsJ t||ksJ t||ksJ qt	
d}t	
d	}tt. tj||d
 tj|||d W d    n1 s|0    Y  tt4 tj|d tj|d tj|d W d    n1 s0    Y  d S )Nc                 S   s   g | ]}|||d qS )r2   r3   zr   r   r2   r   r   r   r   L   r   z'test_points_from_xy.<locals>.<listcomp>r!   c                 S   s   g | ]}t j||qS r   r   r   r#   r8   r   r   r   r   M   r   c                 S   s   g | ]}t j|||qS r   r9   r8   r   r   r   r   N   r   r2   r3   r7   r$   r2   r3   r6   r2   r3   )r7   )pdZ	DataFramer   	geopandasr   r1   r   listZSeriesr-   r.   pytestraises
ValueError	TypeError)dfgsZgszZ	geometry1Z	geometry2sZarr_10Zarr_20r   r   r   test_points_from_xyH   s2    &

0rG   c                   C   s    t ttsJ tttsJ d S N)r1   Tr   r+   	trianglesr   r   r   r   test_from_shapelym   s    rK   c                  C   sf   G dd d} t | dd| ddg}t tjddtjddg}tdd t||D sbJ d S )	Nc                   @   s    e Zd Zdd Zedd ZdS )z.test_from_shapely_geo_interface.<locals>.Pointc                 S   s   || _ || _d S rH   r:   )selfr2   r3   r   r   r   __init__t   s    z7test_from_shapely_geo_interface.<locals>.Point.__init__c                 S   s   d| j | jfdS )Nr#   )typeZcoordinatesr:   rL   r   r   r   __geo_interface__x   s    z@test_from_shapely_geo_interface.<locals>.Point.__geo_interface__N)__name__
__module____qualname__rM   propertyrP   r   r   r   r   r#   s   s   r#   g      ?g       @g      @g      @c                 s   s   | ]\}}| |V  qd S rH   r&   r   vtr   r   r   	<genexpr>   r   z2test_from_shapely_geo_interface.<locals>.<genexpr>)r   r   r   r#   allr%   )r#   r'   r(   r   r   r   test_from_shapely_geo_interfacer   s    	r[   c               	   C   s  dd t D } t| }t|ts$J tdd t|t D s@J ttj| td}t|ts`J tdd t|t D s|J d g}t	j
st	js|dtjg |tj t|}tj|tt|d  tjtjddd	d	tjd
d
ddg}t|jg}|d |ksJ d S )Nc                 S   s   g | ]
}|j qS r   wkbr   pr   r   r   r      r   z!test_from_wkb.<locals>.<listcomp>c                 s   s   | ]\}}| |V  qd S rH   rU   rV   r   r   r   rY      r   z test_from_wkb.<locals>.<genexpr>dtypec                 s   s   | ]\}}| |V  qd S rH   rU   rV   r   r   r   rY      r   r   r      r      )points_no_missingr	   r1   r   rZ   r%   r-   arrayobjectcompatUSE_SHAPELY_20
USE_PYGEOSextendnanappendr=   NAtestingassert_array_equalfulllenr   r   MultiPolygonboxr]   )ZL_wkbresmissing_values
multi_polyr   r   r   test_from_wkb   s$    "rw   c                  C   s@   dg} t | }t|tsJ t tj| td}t|ts<J d S )NZ*0101000000CDCCCCCCCCCC1440CDCCCCCCCC0C4A40r`   )r	   r1   r   r-   re   rf   )Zgeometry_hexrt   r   r   r   test_from_wkb_hex   s
    rx   c                  C   s   t t} t| }tjdd tD td}t|tjs8J tj	|| t| dd}tjdd tD td}t|tjszJ tj	|| t d td g}t|}|d d u sJ d S )Nc                 S   s   g | ]
}|j qS r   r\   r^   r   r   r   r      r   ztest_to_wkb.<locals>.<listcomp>r`   T)hexc                 S   s   g | ]
}|j qS r   )Zwkb_hexr^   r   r   r   r      r   r   )
r   rd   r   r-   re   rf   r1   ndarrayrn   ro   Prt   expar   r   r   test_to_wkb   s    r   string_typestrbytesc              	      sh  | dkrt  ndd   fddtD }t|}t|ts>J dtfddt|tD sbJ tfd	dt|tD sJ ttj|t	d
}t|tsJ tfddt|tD sJ d g}t
jst
js| dtjg |tj t|}tj|tt|d  tjtjddddtjddddg}t |jg}|d |ksdJ d S )Nr   c                 S   s
   t | dS )Nutf8)r   r;   r   r   r   f   s    ztest_from_wkt.<locals>.fc                    s   g | ]} |j qS r   wktr^   )r   r   r   r      r   z!test_from_wkt.<locals>.<listcomp>gƠ>c                 3   s    | ]\}}|j | d V  qdS )Z	toleranceNZequals_exactrV   tolr   r   rY      r   z test_from_wkt.<locals>.<genexpr>c                 3   s    | ]\}}|j | d V  qdS r   r   rV   r   r   r   rY      r   r`   c                 3   s    | ]\}}|j | d V  qdS r   r   rV   r   r   r   rY      r    r   rb   r   rc   )r   rd   r
   r1   r   rZ   r%   r-   re   rf   rg   rh   ri   rj   rk   rl   r=   rm   r	   rn   ro   rp   rq   r   r   rr   rs   r   )r   ZL_wktrt   ru   rv   r   )r   r   r   test_from_wkt   s.       "r   c                  C   sv   t t} t| dd}tjdd tD td}t|tjs<J tj	|| t d td g}t|}|d d u srJ d S )N)Zrounding_precisionc                 S   s   g | ]
}|j qS r   r   r^   r   r   r   r      r   ztest_to_wkt.<locals>.<listcomp>r`   r   )
r   rd   r   r-   re   rf   r1   rz   rn   ro   r{   r   r   r   test_to_wkt   s    r   c                  C   s   t t} tt | j}W d    n1 s.0    Y  t|tjsHJ t	j
r|  }t|d tshJ t| }t|d tsJ n"|  |u sJ t| |u sJ d S Nr   )r   rd   r@   warnsDeprecationWarningdatar1   r-   rz   rg   ri   to_numpyr   asarray)arrZnp_arrnp_arr2Znp_arr3r   r   r   	test_data   s    $
r   c                  C   s@   t t} t| }|  }|d | d ks.J tj|| d S r   )r   rd   r-   r   r   rn   ro   )r   Znp_arr1r   r   r   r   test_as_array  s
    
r   z	attr,args))containsr   )Zcoversr   )Zcrossesr   )disjointr   )geom_equalsr   )Z
intersectsr   )overlapsr   )Ztouchesr   )Zwithinr   )Zgeom_equals_exact)皙?)Zgeom_almost_equals)r   c                    s   dt d }td }||tj fD ]`ttg R  }t|tj	sNJ |j
tks\J  fddtD }| |ks$J q$d S )NFr   c                    sB   g | ]:}|d ur:t |dvr n
dd  g R  nqS )Ngeom   getattr)r   triargsattrna_valueotherr   r   r   '  s   ,z1test_predicates_vector_scalar.<locals>.<listcomp>)r4   rJ   r   r   r   r   rI   r1   r-   rz   ra   booltolist)r   r   pointr   r'   r(   r   r   r   test_predicates_vector_scalar  s    r   c                 C   s2  d}| dkrdnd}t j d gdd tdD  d g }dd tdD t j d d g }t|}t|}t|| |g|R  }t|tjsJ |j	t
ksJ g }	t||D ]l\}
}|
d u s|d u r|	| q|
js|jr|	| q|	t|
d| vr| n
| d	d  |g|R   q| |	ks.J d S )
NFr   Tc                 S   s&   g | ]}t jd d tdD qS )c                 S   s   g | ]}t   t   fqS r   r   r   r   r   r   r   K  r   <test_predicates_vector_vector.<locals>.<listcomp>.<listcomp>r   r   r   r   r   r   r   I  s   z1test_predicates_vector_vector.<locals>.<listcomp>d   c                 S   s&   g | ]}t jd d tdD qS )c                 S   s   g | ]}t   t   fqS r   r   r   r   r   r   r   R  r   r   r   r   r   r   r   r   r   Q  s   r   r   )r   r   r   r   r   r   r1   r-   rz   ra   r   r%   rl   is_emptyr   )r   r   r   Zempty_valueABZvec_AZvec_Br'   r(   r~   br   r   r   test_predicates_vector_vector3  s<    
(r   r   )boundarycentroidZconvex_hullenvelopeexteriorc                    s4   d t t } fddtD }t||s0J d S )Nc                    s"   g | ]}|d urt | nqS rH   r   r   rX   r   r   r   r   r   z  r   z"test_unary_geo.<locals>.<listcomp>r   rI   rJ   r+   r   r'   r(   r   r   r   test_unary_geok  s    
r   Zrepresentative_pointc                    s6   d t t  } fddtD }t||s2J d S )Nc                    s$   g | ]}|d urt |  nqS rH   r   r   r   r   r   r     r   z+test_unary_geo_callable.<locals>.<listcomp>r   r   r   r   r   test_unary_geo_callable  s    r   )
differencesymmetric_differenceunionintersectionc                    s   d t j d g}t|dk rJt jdd tdD }|jr|| qt|}tt	 |} fddt
t|D }t||sJ d S )N   c                 S   s   g | ]}t   t   fqS r   r   r   r   r   r   r     r   z*test_binary_geo_vector.<locals>.<listcomp>rc   c                    s2   g | ]*\}}|d ur*|d ur*t | |nqS rH   r   )r   rX   qr   r   r   r     s   )r   r   r   rq   r   is_validrl   r   r   rI   r%   rJ   r+   )r   quadsr   Qr'   r(   r   r   r   test_binary_geo_vector  s    r   c                    s   d g }t |dk r@tjdd tdD }|jr|| q|d }|tj fD ](tt } fddt	D }qVt
||sJ d S )Nrb   c                 S   s   g | ]}t   t   fqS r   r   r   r   r   r   r     r   z*test_binary_geo_scalar.<locals>.<listcomp>rc   r   c                    s&   g | ]}|d urt | nqS rH   r   r   r   r   r   r   r   r     s   )rq   r   r   r   r   r   rl   r   rI   rJ   r+   )r   r   r   r   r'   r(   r   r   r   test_binary_geo_scalar  s    r   	is_closedr   r   	is_simpleZhas_zis_ringzignore:is_ring:FutureWarning)Zmarksc                    s  d dkrXt dk rXtjsXtt tj W d    n1 s@0    Y  t}t	|}nt
}t}t| } dkrt dk r fdd|D }np dkr fdd|D }tjrtjsd|d	< n> d
krtjrtjrtjsdgt| }n fdd|D }| |ksJ d S )NFr   )r      c                    s(   g | ] }|d ur |j s t| nqS rH   r   r   r   r   r   r   r     s   z)test_unary_predicates.<locals>.<listcomp>r   c                    s.   g | ]&}|d ur&|j d ur&t|j  nqS rH   )r   r   r   r   r   r   r     s   Tr   c                    s"   g | ]}|d urt | nqS rH   r   r   r   r   r   r     r   )r   rg   ri   r@   rA   	ExceptionrI   r   triangle_no_missingr   rJ   r   SHAPELY_GE_20ZSHAPELY_GE_182rq   r   )r   valsVr'   r(   r   r   r   test_unary_predicates  s<    $


r   c                  C   s   t jg dt jg dt jg dt jg dt jdd g} g d}tjsdtj	sdd|d< t
| j}| |ks~J d S )N)r   r   rb   rb   rb   r   )r   r   r   r   r"   )TFTTTFFr   )r   r   Z
LinearRing
LineStringr   r   loadsrg   ri   r   r   r   r   )gr(   r'   r   r   r   test_is_ring  s    

r   arealengthc                    sZ   t jtt }t|t js J |jt dks4J  fddtD }t j	|| d S )Nr0   c                    s"   g | ]}|d urt | nqS rH   r   r   r   r   r   r     r   z$test_unary_float.<locals>.<listcomp>)
r-   rk   r   rI   r1   rz   ra   rJ   rn   assert_allcloser   r   r   r   test_unary_float  s    
r   c                  C   s.   t j} t| dgtt d  d g ks*J d S )Nr   rb   )rI   	geom_typer?   rq   )catr   r   r   test_geom_types  s    r   c                  C   sF   t jg dd t jddg} t| }|j}t|g dksBJ d S )Nr   r   rb   r   r   rb   )r   Nr#   )r   r   r   r#   r   r   r?   )geomsGr   r   r   r   test_geom_types_null_mixed  s    r   c                     s   d t jtd tt td d d }  fddttd d d tD }t j	
| | td t}  fddtD }t j	
| | ttj } gtt }t j	
| | d S )Ndistancer   c                    s>   g | ]6\}}|d u s6|j s6|d u s6|j s6t| |nqS rH   r   r   rX   r_   r   r   r   r   3  s   z(test_binary_distance.<locals>.<listcomp>r   c                    s,   g | ]$}|d u s$|j s$t| nqS rH   r   r   r   r   r_   r   r   r   >  s   )r-   rk   r|   rq   rI   r   r%   rJ   r4   rn   r   r   r   r   r'   r(   r   r   r   test_binary_distance,  s      
r   c                     s   d d t td tt  td d d }  fddttd d d tD }t| |ks`J td t t }  fddtD }t| |ksJ d S )NZrelater   c                    s2   g | ]*\}}|d ur*|d ur*t | |nqS rH   r   r   r   r   r   r   Q  s   z&test_binary_relate.<locals>.<listcomp>r   c                    s&   g | ]}|d urt | nqS rH   r   r   r   r   r   r   Z  r   )r   r|   rq   rI   r%   rJ   r4   r?   r   r   r   r   test_binary_relateK  s    $r   
normalizedTFc                    sn   t j d gdd tttd D  d g }t|}|jtd} fddtt|D }t j	
|| d S )Nc                 S   s&   g | ]}t jd d tdD qS )c                 S   s   g | ]}t   t   fqS r   r   r   r   r   r   r   e  r   z2test_binary_project.<locals>.<listcomp>.<listcomp>r,   )r   r   r   r   r   r   r   r   r   c  s   z'test_binary_project.<locals>.<listcomp>r,   r   c                    s2   g | ]*\}}|d ur*|d ur*|j |dn qS )Nr   )project)r   r_   liner   r   r   r   r   n  s   )r-   rk   r   rq   r|   r   r   r%   r4   rn   r   )r   linesLr'   r(   r   r   r   test_binary_project^  s    
r   	cap_style
join_style
resolution      c                    s   t jr  dkr dkr td d  fddtD }tjd d}t||s\J t	dgt
t }tj| d}t||sJ d S )Nrb   r   zfailing TODOc                    s*   g | ]"}|d ur"|j d dnqS )Nr   r   r   r   )bufferr^   r   r   r   r   r   r   r     s   ztest_buffer.<locals>.<listcomp>r   r   )rg   ri   r@   skipr4   r|   r   r+   r-   re   rq   )r   r   r   r(   r'   distr   r   r   test_bufferw  s     
r   c                  C   sR   dd t dD } t| }|d}dd | D }tdd t||D sNJ d S )Nc                 S   s,   g | ]$}t jd d tdD dqS )c                 S   s   g | ]}t   t   fqS r   r   r   r   r   r   r     r   z,test_simplify.<locals>.<listcomp>.<listcomp>r   r!   )r   r   r   r   r   r   r   r   r   r     s   z!test_simplify.<locals>.<listcomp>r!   rb   c                 S   s   g | ]}| d qS )rb   )simplifyr   r   r   r   r     r   c                 s   s   | ]\}}| |V  qd S rH   rU   )r   r~   r   r   r   r   rY     r   z test_simplify.<locals>.<genexpr>)r   r   r  rZ   r%   )rJ   rI   r'   r(   r   r   r   test_simplify  s    
r  c                  C   sR   t jg dt jg dg} t| }| }t jg d}||sNJ d S )Nr   )r   rb   r   r   )r   r  r   r   )r   r   r   r   Zunary_unionr&   )r   r   ur(   r   r   r   test_unary_union  s    r  z	attr, argZaffine_transform)r   rb   rb   r   r   r   )	translater   )rotate)r!   )scaler   )Zskewr   c                    s4   t t  } fddtD }t||s0J d S )Nc                    s6   g | ].}|d u s.|j s.ttj|g R  n|qS rH   )r   r   r   Zaffinityr   argr   r   r   r     s   z)test_affinity_methods.<locals>.<listcomp>r   )r   r
  r'   r(   r   r	  r   test_affinity_methods  s
    r  c                     sV   t j tj}  fddtD }t j| | tj}  fddtD }t j| | d S )Nc                    s   g | ]}|d ur|j n qS rH   r;   r^   r   r   r   r     r   z#test_coords_x_y.<locals>.<listcomp>c                    s   g | ]}|d ur|j n qS rH   r<   r^   r  r   r   r     r   )r-   rk   r|   r2   r4   rn   r   r3   r   r   r  r   test_coords_x_y  s    r  c                  C   s   t j} dd tD }tj| | d tj fD ]N}t	|g}|j} | j
dksRJ | jdks`J tj| ttjgd g q0t	g }|j} | jdksJ | jdksJ d S )Nc                 S   s,   g | ]$}|d u s|j s|jn
tjgd qS Nrc   r   boundsr-   rk   r   r   r   r   r     s   ztest_bounds.<locals>.<listcomp>r,   r0   rc   )r   rc   )rI   r  rJ   r-   rn   r   r   r   r   r   ndimra   re   rk   shape)r'   r(   r   Er   r   r   test_bounds  s    
 r  c               
   C   s   t j} tdd tD }tt|d d df t|d d df t|d d df t|d d df g}tj| | g d gt	j
 gfD ]J}t|}|j} | jdksJ | jdksJ tj| ttjgd  qd S )	Nc                 S   s,   g | ]$}|d u s|j s|jn
tjgd qS r  r  r   r   r   r   r     r   z%test_total_bounds.<locals>.<listcomp>r   rb   r,   r   r0   rc   )rI   Ztotal_boundsr-   re   rJ   ZnanminZnanmaxrn   r   r   r   r   r   r  ra   rk   )r'   r  r(   r   r  r   r   r   test_total_bounds  s$    r  c                  C   s   dd t dD } t| }||jdk }t|ts6J |g d }t|dksRJ t|ts`J dd |D g dkszJ |dd d	 }t|d
ksJ t|tsJ dd |D g dksJ |d }t|tjjsJ |	| d sJ d S )Nc                 S   s   g | ]}t j||qS r   r9   r   r   r   r   r     r   z test_getitem.<locals>.<listcomp>r!   g333333?)rb   r   r   r   c                 S   s   g | ]
}|j qS r   r;   r^   r   r   r   r     r   rb   r,   r   c                 S   s   g | ]
}|j qS r   r;   r^   r   r   r   r     r   )rb   r   r      	   )
r   r   r   r1   r   rq   r   r   r#   r&   )r4   r|   ZP2ZP3ZP4ZP5r   r   r   test_getitem  s    r  item)r   )r,   r   )r,   r,   )r   r,   )r   c                 C   s>   dd t dD }t|}| |dg< t|d tjjs:J d S )Nc                 S   s   g | ]}t j||qS r   r9   r   r   r   r   r   #  r   z test_setitem.<locals>.<listcomp>r!   r   )r   r   r1   r   r   r   )r  r4   r|   r   r   r   test_setitem  s    
r  c               	   C   s  t t( td d td d k W d    n1 s80    Y  ttd td td g} ttd td td g}| |k}| g dksJ | |k}| g dksJ tj	tj
ddddtj
ddd	d	g}ttd td td |g}||k}| g d
ksJ d S )Nr   r  rb   r,   r   r   )TFT)FTFrc   )FFFT)r@   rA   rB   r|   r   r4   r   r   r   rr   rs   )Za1Za2rt   rv   a3r   r   r   test_equality_ops+  s    6"r  c                   C   s$   dt tv sJ dt tv s J d S )Nr   r   )dirr|   r   r   r   r   test_dirB  s    r  c                  C   s    t t} | | j sJ d S rH   )r   r   r   r   rZ   )rI   r   r   r   test_chainingG  s    r  c                  C   s\   dd l } | | t}|d d u s(J |d js6J td d |d d  sXJ d S )Nr   r   r   )pickler   dumpsrI   r   r   rZ   )r   ZT2r   r   r   test_pickleM  s
    r"  c                  C   sr   t t} tt W d    n1 s*0    Y  dt| j v sJJ dt| jv s\J dt| jv snJ d S )NlengthsZ1221)	r@   rA   rB   rI   r   r|   r   valuelower)infor   r   r   test_raise_on_bad_sizesW  s
    (r(  c               	   C   sv   t jt jddddt jddddg} t| g}|d}| dg}t|| |tdg}t|| d S )Nr   rb   r   rc   )	r   r   rr   rs   r   r   r+   r-   re   )rv   r   r'   r(   r   r   r   test_buffer_single_multipolygon`  s    "


r)  c               	   C   s   t jt jddddt jddddg} t| g}|t}t|d tsRJ |d | jksdJ |t	}t|d t jj
jsJ |td}|jtdksJ |d | jd d ksJ d S )Nr   rb   r   rc   ZU10r!   )r   r   rr   rs   r   r/   r   r1   r   rf   baser   r-   ra   )rv   r   r'   r   r   r   test_astype_multipolygonm  s    "


r+  c                  C   sL   t  } d| _t| t du s J t| | du s2J t| t dddu sHJ d S )N  FT)
allow_none)rI   copycrsr   t1r   r   r   test_check_crs  s
    r2  c                  C   s   t  } t  }d| _d|_tjtdd t| | W d    n1 sJ0    Y  tjtdd tt | W d    n1 s0    Y  tjtdd t| t  W d    n1 s0    Y  d S )Nr,  i  zCRS mismatch between the CRSmatch)rI   r.  r/  r@   r   UserWarningr   )r1  t2r   r   r   test_crs_mismatch_warn  s    ((r7  rm   c                 C   s$   t  }| |d< |d d u s J d S r   )rI   r.  )rm   r1  r   r   r   	test_isna  s    r8  c                  C   s&   t  } tj| d< | d d u s"J d S r   )rI   r.  r=   rm   r0  r   r   r   test_isna_pdNA  s    
r9  c                  C   sT   t  } d| _| dj| jks$J | dj| jks:J | dj| jksPJ d S )Nr,  rb   r   r   )rI   r.  r/  shiftrX   r   r   r   test_shift_has_crs  s
    r<  c                  C   s&   t  } d| _|  j| jks"J d S )Nr,  )rI   r.  r/  uniquer;  r   r   r   test_unique_has_crs  s    r>  c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestEstimateUtmCrsc                 C   s:   t jdd| _t jdd| _t| j| jgdd| _d S )Ng&SRg):_D@gYڂRg ~:XD@z	epsg:4326r/  )r   r   r#   ZesbZsolr   	landmarksrO   r   r   r   setup_method  s    zTestEstimateUtmCrs.setup_methodc                 C   s2   | j  tdksJ | j dtdks.J d S )N
EPSG:32618ZNAD83z
EPSG:26918)rA  estimate_utm_crsr   rO   r   r   r   !test_estimate_utm_crs__geographic  s    z4TestEstimateUtmCrs.test_estimate_utm_crs__geographicc                 C   s    | j d tdksJ d S )Nz	EPSG:3857rC  )rA  Zto_crsrD  r   rO   r   r   r    test_estimate_utm_crs__projected  s    z3TestEstimateUtmCrs.test_estimate_utm_crs__projectedc                 C   s<   t tjddtjddgdd}| tdks8J d S )NgqsH:AgaQSAg_ QAg.pk`Az	EPSG:3851r@  z
EPSG:32760)r   r   r   r#   rD  r   )rL   Zantimeridianr   r   r   #test_estimate_utm_crs__antimeridian  s    z6TestEstimateUtmCrs.test_estimate_utm_crs__antimeridianc                 C   sP   t jtdd. ttjg dgdd  W d    n1 sB0    Y  d S )NzUnable to determine UTM CRSr3  )r   Z   )rb   rI  )r,   rI  z	EPSG:4326r@  r@   rA   RuntimeErrorr   r   r   r   rD  rO   r   r   r   $test_estimate_utm_crs__out_of_bounds  s    z7TestEstimateUtmCrs.test_estimate_utm_crs__out_of_boundsc                 C   sL   t jtdd* ttjg dg  W d    n1 s>0    Y  d S )Nzcrs must be setr3  rH  rJ  rO   r   r   r   "test_estimate_utm_crs__missing_crs  s    z5TestEstimateUtmCrs.test_estimate_utm_crs__missing_crsN)	rQ   rR   rS   rB  rE  rF  rG  rL  rM  r   r   r   r   r?    s   
r?  )ir   numpyr-   Zpandasr=   Zpyprojr   r   Zshapely.affinityZshapely.geometryZshapely.geometry.baser   r   r   Zshapely.wkbZshapely.wktr   ImportErrorZshapely._buildcfgr>   Zgeopandas.arrayr   r   r	   r
   r   r   r   r   r   Zgeopandas._compat_compatrg   r@   r   r   r   r   rJ   rI   rd   r4   r|   r+   r5   rG   rK   r[   rw   rx   r   markZparametrizer   r   r   r   r   r   r   r   r   r   paramfilterwarningsr   r   r   r   r   r   r   r   roundZsquareZbevelr   r  r  r  r  r  r  r  ZGeoDataFramer   r   Z	GeoSeriesre   r  r  r  r  r"  r(  r)  r+  r2  r7  rk   r8  r9  r<  r>  r?  r   r   r   r   <module>   s  ,

%

'

(
	
	



/


	



	
	
