a
    ŠJ5dk)  ã                   @   sd  d dl Zd dlZd dlmZ d dlZd dlmZmZmZ d dl	m
Z
 ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ eeeeeefZeeeeeefZeefZej  dee ¡dd	„ ƒZ!ej  de¡d
d„ ƒZ"ej  de¡dd„ ƒZ#dd„ Z$ej  de¡dd„ ƒZ%dd„ Z&dd„ Z'dd„ Z(dd„ Z)dd„ Z*dd„ Z+dd„ Z,d d!„ Z-d"d#„ Z.dS )$é    N)Úassert_allclose)ÚMultiLineStringÚ
MultiPointÚMultiPolygon)Úassert_geometries_equalé   )Úempty_line_stringÚempty_line_string_zÚgeometry_collectionÚline_stringÚline_string_zÚlinear_ringÚmulti_line_stringÚmulti_line_string_zÚmulti_pointÚmulti_point_zÚmulti_polygonÚmulti_polygon_zÚpointÚpoint_zÚpolygonÚ	polygon_zÚgeomc                 C   s&   t jt  | | g¡Ž }t|| | gƒ d S ©N)ÚshapelyÚfrom_ragged_arrayÚto_ragged_arrayr   )r   Úactual© r   ú[/var/www/html/django/DPS/env/lib/python3.9/site-packages/shapely/tests/test_ragged_array.pyÚtest_roundtrip4   s    r    c                 C   s:   t j| | gdd\}}}t |d d …df ¡ ¡ s6J ‚d S )NT©Z	include_zé   )r   r   ÚnpÚisnanÚall©r   Ú_Úcoordsr   r   r   Útest_include_z:   s    r)   c                 C   s.   t j| | gdd\}}}|jd dks*J ‚d S )NFr!   r   r"   )r   r   Úshaper&   r   r   r   Útest_include_z_falseA   s    r+   c                  C   sœ   t  ttg¡\} }} |jd dks&J ‚t  tg¡\} }} |jd dksJJ ‚t  tg¡\} }} |jd dksnJ ‚t  t  dg¡¡\} }} |jd dks˜J ‚d S )Nr   é   r"   zMULTIPOLYGON Z EMPTY)r   r   r   r   r*   r   r	   Úfrom_wkt)r'   r(   r   r   r   Útest_include_z_defaultH   s    r.   c                 C   s<   t  t¡ t | | g¡ W d   ƒ n1 s.0    Y  d S r   )ÚpytestZraisesÚ
ValueErrorr   r   )r   r   r   r   Útest_raise_geometry_typeY   s    r1   c               	   C   sœ   t  g d¢¡} t  | ¡\}}}t ddgddgtjtjgtjtjgddgtjtjgg¡}|t jjkshJ ‚t||ƒ t	|ƒdks‚J ‚t  
||¡}t|| ƒ d S )N)zPOINT (0 0)zPOINT (1 1)úPOINT EMPTYr2   zPOINT (4 4)r2   r   r   é   )r   r-   r   r#   ÚarrayÚnanÚGeometryTypeZPOINTr   Úlenr   r   )ÚarrÚtypÚresultÚoffsetsÚexpectedZgeomsr   r   r   Útest_points_   s    ÿ
2ÿ
r=   c                  C   sÆ   t  g d¢¡} t  | ¡\}}}t ddgddgddgddgddgddgddgddgddgddgg
¡}t g d¢¡}|t jjks‚J ‚t||ƒ t|ƒdksœJ ‚t|d |ƒ t  	|||¡}t
|| ƒ d S )	N)z LINESTRING (30 10, 10 30, 40 40)z'LINESTRING (40 40, 30 30, 40 20, 30 10)úLINESTRING EMPTYr>   z LINESTRING (10 10, 20 20, 10 40)r>   ç      >@ç      $@ç      D@ç      4@)r   r,   é   rC   rC   é
   rD   r   r   )r   r-   r   r#   r4   r6   Z
LINESTRINGr   r7   r   r   ©r8   r9   r(   r;   r<   Zexpected_offsetsr:   r   r   r   Útest_linestringsv   s0    ÿ
öÿ
rF   c                  C   s  t  g d¢¡} t  | ¡\}}}t ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg¡}t g d	¢¡}t g d
¢¡}|t jjksÆJ ‚t||ƒ t|ƒdksàJ ‚t|d |ƒ t|d |ƒ t  	|||¡}t
|| ƒ d S )N)ú-POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))zKPOLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30))úPOLYGON EMPTYrH   rG   rH   r?   r@   rA   rB   ç     €A@ç     €F@ç      .@)r   é   rD   é   é   ©r   r   r,   r,   r,   r3   r3   r"   r   r   )r   r-   r   r#   r4   r6   ZPOLYGONr   r7   r   r   ©r8   r9   r(   r;   r<   Úexpected_offsets1Úexpected_offsets2r:   r   r   r   Útest_polygonsš   sF    ÿ
íÿ
rS   c                  C   sº   t  g d¢¡} t  | ¡\}}}t ddgddgddgddgddgddgddgddgg¡}t g d¢¡}|t jjksvJ ‚t||ƒ t|ƒdksJ ‚t|d |ƒ t  	|||¡}t
|| ƒ d S )	N)z'MULTIPOINT (10 40, 40 30, 20 20, 30 10)zMULTIPOINT (30 10)úMULTIPOINT EMPTYrT   z MULTIPOINT (30 10, 10 30, 40 40)rT   r@   rA   r?   rB   )r   r3   rL   rL   rL   é   rU   r   r   )r   r-   r   r#   r4   r6   Ú
MULTIPOINTr   r7   r   r   rE   r   r   r   Útest_multipointsÊ   s,    ÿ
øÿ
rW   c                  C   s  t  g d¢¡} t  | ¡\}}}t ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg¡}t g d	¢¡}t g d
¢¡}|t jjksºJ ‚t||ƒ t|ƒdksÔJ ‚t|d |ƒ t|d |ƒ t  	|||¡}t
|| ƒ d S )N)z'MULTILINESTRING ((30 10, 10 30, 40 40))zDMULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))úMULTILINESTRING EMPTYrX   zGMULTILINESTRING ((35 10, 45 45), (15 40, 10 20), (30 10, 10 30, 40 40))rX   r?   r@   rA   rB   rI   rJ   rK   )r   r,   é   rD   é   rM   é   )r   r   r,   r,   r,   rY   rY   r"   r   r   )r   r-   r   r#   r4   r6   ÚMULTILINESTRINGr   r7   r   r   rP   r   r   r   Útest_multilinestringsí   sB    ÿ
ïÿ
r]   c            	      C   sh  t  g d¢¡} t  | ¡\}}}t ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd	gddgddgddgddgdd
gddgddgddgddgddgg¡}t g d¢¡}t g d¢¡}t g d¢¡}|t jjksJ ‚t||ƒ t|ƒdks"J ‚t|d |ƒ t|d |ƒ t|d |ƒ t  	|||¡}t
|| ƒ d S )N)zRMULTIPOLYGON (((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30)))zvMULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20)))úMULTIPOLYGON EMPTYr^   z-MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)))r^   rI   r@   rJ   rK   rA   rB   r?   g      @g      9@)r   rL   é	   é   rN   é   é   )r   r"   r,   rL   rY   rO   r,   r   r   r"   )r   r-   r   r#   r4   r6   ÚMULTIPOLYGONr   r7   r   r   )	r8   r9   r(   r;   r<   rQ   rR   Zexpected_offsets3r:   r   r   r   Útest_multipolygons  sZ    ÿ
åÿ
rd   c                  C   sT   t  ttg¡\} }}| t jjks$J ‚t  | ||¡}t t	tgƒtg¡}t
||ƒ d S r   )r   r   r   r   r6   rV   r   r#   r4   r   r   ©r9   r(   r;   r:   r<   r   r   r   Útest_mixture_point_multipointU  s
    rf   c                  C   sT   t  ttg¡\} }}| t jjks$J ‚t  | ||¡}t t	tgƒtg¡}t
||ƒ d S r   )r   r   r   r   r6   r\   r   r#   r4   r   r   re   r   r   r   Ú'test_mixture_linestring_multilinestring]  s
    rg   c                  C   sT   t  ttg¡\} }}| t jjks$J ‚t  | ||¡}t t	tgƒtg¡}t
||ƒ d S r   )r   r   r   r   r6   rc   r   r#   r4   r   r   re   r   r   r   Ú!test_mixture_polygon_multipolygone  s
    rh   )/Únumpyr#   r/   Znumpy.testingr   r   r   r   r   Zshapely.testingr   Úcommonr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   Z	all_typesZall_types_3dZall_types_not_supportedÚmarkZparametrizer    r)   r+   r.   r1   r=   rF   rS   rW   r]   rd   rf   rg   rh   r   r   r   r   Ú<module>   sR   Hú
ú
þ



$0#.: