o
    JÉf‘
  ã                   @   sP   d dl Z d dlZd dlmZ d dlmZ G dd„ de jƒZG dd„ de jƒZdS )é    N)Úgeometry)Ú	transformc                   @   sJ   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚIdentityTestCaseú<New geometry/coordseq method 'xy' makes numpy interop easierNc                 C   s   t dd„ |||fD ƒƒS )Nc                 s   s    | ]}|r|V  qd S ©N© )Ú.0Úcr   r   úo/home/deployuser/azure_apps/autowriter/venv/lib/python3.10/site-packages/shapely/tests/legacy/test_transform.pyÚ	<genexpr>   s   € z(IdentityTestCase.func.<locals>.<genexpr>)Útuple)ÚselfÚxÚyÚzr   r   r
   Úfunc   s   zIdentityTestCase.funcc                 C   s"   t  ¡ }t| j|ƒ}|jsJ ‚d S r   )r   ÚPointr   r   Úis_empty©r   ÚgÚhr   r   r
   Ú
test_empty   s   zIdentityTestCase.test_emptyc                 C   s>   t  dd¡}t| j|ƒ}|jdksJ ‚t|jƒdgksJ ‚d S )Nr   é   r   ©r   r   )r   r   r   r   Ú	geom_typeÚlistÚcoordsr   r   r   r
   Ú
test_point   s   zIdentityTestCase.test_pointc                 C   sB   t  ddg¡}t| j|ƒ}|jdksJ ‚t|jƒddgksJ ‚d S )Nr   ©é   é   Ú
LineString)r   r!   r   r   r   r   r   r   r   r   r
   Ú	test_line   ó   zIdentityTestCase.test_linec                 C   sB   t  g d¢¡}t| j|ƒ}|jdksJ ‚t|jƒg d¢ksJ ‚d S )N)r   r   )r   r   r   Ú
LinearRing)r   r$   r   r   r   r   r   r   r   r   r
   Útest_linearring    r#   z IdentityTestCase.test_linearringc                 C   sF   t  dd¡ d¡}t| j|ƒ}|jdksJ ‚|jt |j¡ks!J ‚d S )Nr   r   ç      ð?ÚPolygon)	r   r   Úbufferr   r   r   ÚareaÚpytestÚapproxr   r   r   r
   Útest_polygon&   s   zIdentityTestCase.test_polygonc                 C   sH   t  ddg¡ d¡}t| j|ƒ}|jdksJ ‚|jt |j¡ks"J ‚d S )Nr   ©r   é   r&   ÚMultiPolygon)	r   Ú
MultiPointr(   r   r   r   r)   r*   r+   r   r   r   r
   Útest_multipolygon,   s   z"IdentityTestCase.test_multipolygonr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r"   r%   r,   r1   r   r   r   r
   r   	   s    
r   c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚLambdaTestCaser   c                 C   sB   t  dd¡}tddd„|ƒ}|jdksJ ‚t|jƒdgksJ ‚d S )Nr   r   c                 S   ó   | d |d fS ©Nr&   r   ©r   r   r   r   r   r
   Ú<lambda>8   ó    z+LambdaTestCase.test_point.<locals>.<lambda>r   ©r&   ç       @r   )r   r   r   r   r   r   r   r   r   r
   r   6   s   zLambdaTestCase.test_pointc                 C   sF   t  ddg¡}tddd„|ƒ}|jdksJ ‚t|jƒddgks!J ‚d S )	Nr   r   c                 S   r7   r8   r   r9   r   r   r
   r:   >   r;   z*LambdaTestCase.test_line.<locals>.<lambda>r!   r<   )g      @g      @r   )r   r!   r   r   r   r   r   r   r   r
   r"   <   s   zLambdaTestCase.test_linec                 C   sv   t  dd¡ d¡}tddd„|ƒ}|jdksJ ‚|jt |j¡ks#J ‚|jj	t d¡ks.J ‚|jj
t d¡ks9J ‚d S )	Nr   r   r&   c                 S   r7   r8   r   r9   r   r   r
   r:   D   r;   z-LambdaTestCase.test_polygon.<locals>.<lambda>r'   r=   r   )r   r   r(   r   r   r)   r*   r+   Úcentroidr   r   r   r   r   r
   r,   B   s   zLambdaTestCase.test_polygonc                 C   sx   t  ddg¡ d¡}tddd„|ƒ}|jdksJ ‚|jt |j¡ks$J ‚|jj	t d¡ks/J ‚|jj
t d¡ks:J ‚d S )	Nr   r-   r&   c                 S   r7   r8   r   r9   r   r   r
   r:   L   r;   z2LambdaTestCase.test_multipolygon.<locals>.<lambda>r/   g      @r   )r   r0   r(   r   r   r)   r*   r+   r>   r   r   r   r   r   r
   r1   J   s   z LambdaTestCase.test_multipolygonN)r2   r3   r4   r5   r   r"   r,   r1   r   r   r   r
   r6   3   s    r6   )	Úunittestr*   Úshapelyr   Úshapely.opsr   ÚTestCaser   r6   r   r   r   r
   Ú<module>   s    *