a
    J5dD                     @   s   d dl Zd dlZd dlmZ d dlmZ d dlmZ dd Z	dd Z
d	d
 Zdd Zdd Zdd Zdd ZG dd dZdd Zdd Zdd Zdd ZdS )    N)Point)CoordinateSequence)DimensionErrorc                  C   s   t dd} | jd d  dgks"J | jdu s0J t ddd} | jd d  dgksTJ | js^J t  } | jsnJ t| jts~J | jd d  g ksJ d S )N      ?       @r   r   F      @r   r   r   )r   coordshas_zZis_empty
isinstancer   p r   ]/var/www/html/django/DPS/env/lib/python3.9/site-packages/shapely/tests/geometry/test_point.pytest_from_coordinates	   s    


r   c                  C   s   t d} | jd d  dgks J t ddg} | jd d  dgksDJ t dg} | jd d  dgksfJ t ddgg} | jd d  dgksJ t d} | jd d  dgksJ t g d} | jd d  dgksJ t dg} | jd d  dgksJ d S )Nr         @r   r   r   r         @r   r
   r   r   r   r   test_from_sequence   s    

r   c                  C   sX   t tddg} | jd d  dgks*J t tg d} | jd d  dgksTJ d S )Nr   r   r   r	   r   nparrayr
   r   r   r   r   test_from_numpy1   s    r   c                  C   sr   t tdgtdg} | jd d  dgks2J t tdgtdgtdg} | jd d  dgksnJ d S )Nr   r   r   r   r	   r   r   r   r   r   test_from_numpy_xy:   s    $r   c                  C   sZ   t dd} t | }|jd d  dgks*J t ddd} t | }|jd d  dgksVJ d S )Nr   r   r   r   r   r   )r   qr   r   r   test_from_pointE   s    
r   c                  C   s2   dd dD } t | }|jd d  dgks.J d S )Nc                 s   s   | ]
}|V  qd S )Nr   ).0Zcoordr   r   r   	<genexpr>Q       z&test_from_generator.<locals>.<genexpr>)r   r   r   )genr   r   r   r   test_from_generatorP   s    r#   c                   C   sz   t jtdd tdddd W d    n1 s20    Y  t jtdd tdd	g W d    n1 sl0    Y  d S )
Nztakes at most 3 arguments)match            z,takes only scalar or 1-size vector arguments)r&   r'   )   r(   )pytestraises	TypeErrorr   
ValueErrorr   r   r   r   test_from_invalidV   s    ,r.   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )	TestPointc                 C   s  t dd}|jdksJ |jdks&J |jd d  dgks>J t||jksPJ |jdu s^J tt	 |j
 W d    n1 s0    Y  t ddd}|jd d  dgksJ t||jksJ |jdu sJ |j
dksJ t d}|jdksJ |jd	ksJ t|jd
ksJ |jd dks.J tt |jd  W d    n1 sZ0    Y  |jdkstJ |jdddksJ d S )Nr   r   r   Fr   r	   Tr   r   )r   r   r%   )r   r   r   r   r   )typeZcoordinates)r   xyr
   strwktr   r*   r+   r   ztuple
IndexErrorZboundsZ__geo_interface__)selfr   r   r   r   
test_pointc   s,    
$*zTestPoint.test_pointc                 C   s<   t  }|jdksJ |jd d  g ks*J |jdks8J d S )NzPOINT EMPTY        )r   r4   r
   Zarea)r8   Zp_nullr   r   r   test_point_empty   s    zTestPoint.test_point_emptyc                 C   sZ   t ddd}|jd }|dks"J t|}|jdks:J |jdksHJ |jdksVJ d S )Nr:   r   r   )r:   r:   r   r%   r'   )r'   )r   r
   r   asarrayndimsizeshape)r8   r   r
   ar   r   r   test_coords   s    

zTestPoint.test_coordsN)__name__
__module____qualname__r9   r;   rA   r   r   r   r   r/   b   s   "r/   c                  C   sr   t dd} tt d| _W d    n1 s00    Y  tt d| jd< W d    n1 sd0    Y  d S )Nr   r   )r   r   r   )r   r*   r+   AttributeErrorr
   r,   r   r   r   r   test_point_immutable   s
    
$rF   c                  C   sX   t dd} t| }|jdks"J |jdks0J |jtdksDJ | | ksTJ d S )Nr   r   r   r%   object)r   r   r   r=   r>   Zdtypeitem)r   Zarrr   r   r   test_point_array_coercion   s    

rI   c                  C   s$   t  } t| j}|jdks J d S )N)r   r&   )r   r   r<   r
   r?   )per@   r   r   r   test_numpy_empty_point_coords   s    rK   c                  C   s8   t dd} tdt}| g|d d < |d | ks4J d S )Nr   r   r%   r   )r   r   emptyrG   )Zgeomarr   r   r   test_numpy_object_array   s    
rN   )numpyr   r*   Zshapelyr   Zshapely.coordsr   Zshapely.errorsr   r   r   r   r   r   r#   r.   r/   rF   rI   rK   rN   r   r   r   r   <module>   s    	7

