o
    A+ i                     @   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_zZis_empty
isinstancer   p r   m/home/app/PaddleOCR-VL-test/.venv_paddleocr/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   ).0Z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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   typeZcoordinates)r   xr3   floatyr   strwktr   r+   r,   r   zr   Zhas_mmr   tuple
IndexErrorZ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   r2   )r   r8   r   arear=   )r>   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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   a   s    1	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   Zdtypeitem)r   Zarrr   r   r   test_point_array_coercion   s   

rP   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   rR   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   )Zgeomarr   r   r   test_numpy_object_array   s   
rU   )numpyr   r+   Zshapelyr   r   Zshapely.coordsr   Zshapely.errorsr   r   r   r   r   r   r    r$   r/   r0   rM   rP   rR   rU   r   r   r   r   <module>   s"    	H

