o
    Jf                     @   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 sJ t ddd} | jd d  dgks*J | js/J t  } | js7J t| jts?J | jd d  g ksJJ d S )N      ?       @r   r   F      @r   r   r   )r   coordshas_zis_empty
isinstancer   p r   m/home/deployuser/azure_apps/autowriter/venv/lib/python3.10/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s"J t dg} | jd d  dgks3J t ddgg} | jd d  dgksFJ t d} | jd d  dgksVJ t g d} | jd d  dgkshJ t dg} | jd d  dgksyJ 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s*J 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sJ t tdgtdgtdg} | jd d  dgks7J 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s+J 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   ).0coordr   r   r   	<genexpr>Q   s    z&test_from_generator.<locals>.<genexpr>)r   r   r   )genr   r   r   r   test_from_generatorP   s   r$   c                   C   s|   t jtdd tdddd W d    n1 sw   Y  t jtdd tdd	g W d    d S 1 s7w   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 t|jtu sJ |jdksJ t|jtu s%J |jd d  dgks1J t||jks:J |jdu sAJ t	
t |j W d    n1 sTw   Y  t ddd}|jd d  dgkskJ t||jkstJ |jdu s{J |jdksJ t|jtu sJ t d}|jdksJ |jd	ksJ t|jd
ksJ |jd dksJ t	
t |jd  W d    n1 sw   Y  |jdksJ |jdddksJ d S )Nr   r   r   Fr   r	   Tr   r   )r   r   r&   )r   r   r   r   r   )typecoordinates)r   xr1   floatyr
   strwktr   r+   r,   r   ztuple
IndexErrorbounds__geo_interface__)selfr   r   r   r   
test_pointc   s6   
zTestPoint.test_pointc                 C   s<   t  }|jdks
J |jd d  g ksJ |jdksJ d S )NzPOINT EMPTY        )r   r7   r
   area)r=   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s$J |jdks+J d S )Nr?   r   r   )r?   r?   r   r&   r(   )r(   )r   r
   r   asarrayndimsizeshape)r=   r   r
   ar   r   r   test_coords   s   

zTestPoint.test_coordsN)__name__
__module____qualname__r>   rB   rH   r   r   r   r   r0   b   s    %r0   c                  C   st   t dd} tt d| _W d    n1 sw   Y  tt d| jd< W d    d S 1 s3w   Y  d S )Nr   r   )r   r   r   )r   r+   r,   AttributeErrorr
   r-   r   r   r   r   test_point_immutable   s   
"rM   c                  C   sX   t dd} t| }|jdksJ |jdksJ |jtdks"J | | ks*J d S )Nr   r   r   r&   object)r   r   r   rD   rE   dtypeitem)r   arrr   r   r   test_point_array_coercion   s   

rR   c                  C   s$   t  } t| j}|jdksJ d S )N)r   r'   )r   r   rC   r
   rF   )perG   r   r   r   test_numpy_empty_point_coords   s   rT   c                  C   s8   t dd} tdt}| g|d d < |d | ksJ d S )Nr   r   r&   r   )r   r   emptyrN   )geomarr   r   r   test_numpy_object_array   s   
rX   )numpyr   r+   shapelyr   shapely.coordsr   shapely.errorsr   r   r   r   r   r   r$   r/   r0   rM   rR   rT   rX   r   r   r   r   <module>   s"    	:

