o
    h                     @   s   d dl Zd dlZd dlmZmZ d dlmZ d dlm	Z	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geos_version)CoordinateSequence)DimensionErrorUnsupportedGEOSVersionErrorc                  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   \/var/www/html/scripts/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   "r1   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kr}|jdu sdJ t	
t |j W d    n1 sww   Y  nt	
t |j W d    n1 sw   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|jtu sJ tdkr|jdu sJ t	
t |j W d    n1 sw   Y  t d	}|jdksJ |jd
ksJ t|jdksJ |jd d	ksJ t	
t |jd  W d    n	1 s&w   Y  |jdks3J |jdd	dks>J d S )Nr   r   r	   F)r*      r   r
   r   Tr   r   )r   r   r(   )r
   r   r
   r   r   typecoordinates)r   xr5   floatyr   strwktr   r-   r.   r   zr   has_mmr   tuple
IndexErrorbounds__geo_interface__)selfr   r   r   r   
test_pointb   sR   
zTestPoint.test_pointc                 C   sP   t  }|jdks
J |jd d  g ksJ |jdksJ |jdddks&J d S )NzPOINT EMPTY        r   r   r4   )r   r;   r   arearB   )rC   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 )NrE   r   r   )rE   rE   r   r(   r*   )r*   )r   r   r   asarrayndimsizeshape)rC   r   r   ar   r   r   test_coords   s   

zTestPoint.test_coordsN)__name__
__module____qualname__rD   rH   rN   r   r   r   r   r2   a   s    1	r2   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   
"rS   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   rJ   rK   dtypeitem)r   arrr   r   r   test_point_array_coercion   s   

rX   c                  C   s$   t  } t| j}|jdksJ d S )N)r   r)   )r   r   rI   r   rL   )perM   r   r   r   test_numpy_empty_point_coords   s   rZ   c                  C   s8   t dd} tdt}| g|d d < |d | ksJ d S )Nr
   r   r(   r   )r   r   emptyrT   )geomarr   r   r   test_numpy_object_array   s   
r^   )numpyr   r-   shapelyr   r   shapely.coordsr   shapely.errorsr   r   r   r   r   r   r!   r&   r1   r2   rS   rX   rZ   r^   r   r   r   r   <module>   s"    	H

