o
    h                     @   sl   d dl Z d dlZd dlZd dlmZmZmZ ej	dG dd de j
Zej	dG dd de j
ZdS )    N)MultiPolygonPointboxzignore:The 'shapely.vectorized:c                   @   sl   e Z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d Zdd Zdd ZdS )VectorizedContainsTestCasec           
      C   s   ddl m} ||||}t|}t|}| |tj | |jt |j	}|j	|j	}}t
|jD ]}	||	 |t||	 ||	 ksGJ q3|S )Nr   )contains)shapely.vectorizedr   np
asanyarrayassertIsInstancendarrayassertEqualdtypeboolflatrangesizer   )
selfgeomxyr   resultresult_flatx_flaty_flatidx r   _/var/www/html/scripts/venv/lib/python3.10/site-packages/shapely/tests/legacy/test_vectorized.pyassertContainsResults   s   

&z0VectorizedContainsTestCase.assertContainsResultsc                 C   s    t dd}|d|dS )Nr      g      @)r   buffersymmetric_difference)r   pointr   r   r   construct_torus   s   
z*VectorizedContainsTestCase.construct_torusc                 C   s8   t jddd t jddd }}| |  || d S N
                 @   )r   mgridr   r"   r   r   r   r   r   r   test_contains_poly"   s   "z-VectorizedContainsTestCase.test_contains_polyc                 C   B   t jddd t jddd }}| t|d |d || d S Nr$   r%   r&   r'   r(   r   r   r)   r   r   r*   r   r   r   test_contains_point&      " z.VectorizedContainsTestCase.test_contains_pointc                 C   r,   r-   r.   r*   r   r   r   test_contains_linestring*   r0   z3VectorizedContainsTestCase.test_contains_linestringc                 C   s^   t jddd t jddd }}tdddd}|  |}t|ts&J | ||| d S )Nr$   r%   r&   r'   r(   g      )r   r)   r   r"   
difference
isinstancer   r   )r   r   r   cut_polyr   r   r   r   test_contains_multipoly.   s
   "z2VectorizedContainsTestCase.test_contains_multipolyc                 C   s>   t jddddddf \}}|d}| |  || d S Nr$   r%   r&   r'   r(   fr   r)   copyr   r"   r*   r   r   r   test_y_array_order6      
z-VectorizedContainsTestCase.test_y_array_orderc                 C   s>   t jddddddf \}}|d}| |  || d S r7   r9   r*   r   r   r   test_x_array_order;   r<   z-VectorizedContainsTestCase.test_x_array_orderc                 C   sV   t jddddddf \}}|d}|d}| |  ||}|jd s)J d S )Nr$   r%   r&   r'   r(   r8   F_CONTIGUOUS)r   r)   r:   r   r"   flagsr   r   r   r   r   r   r   test_xy_array_order@   s
   

z.VectorizedContainsTestCase.test_xy_array_orderc                 C   sD   t jddd t jddd }}|t j}| |  || d S r#   )r   r)   astypeint16r   r"   r*   r   r   r   test_array_dtypeH   s   "z+VectorizedContainsTestCase.test_array_dtypec                 C   sD   t jddddddf \}}| |  ||}|j|jks J d S )Nr$   r%   y              .@r'   r(   y              0@)r   r)   r   r"   shaper@   r   r   r   test_array_2dM   s   z(VectorizedContainsTestCase.test_array_2dc                 C   s.   t ddd}| j|  g|jjR   d S )Nr   g      $@)r   r   r   r"   exteriorxy)r   gr   r   r   test_shapely_xy_attr_containsR   s   z8VectorizedContainsTestCase.test_shapely_xy_attr_containsN)__name__
__module____qualname__r   r"   r+   r/   r1   r6   r;   r=   rA   rD   rF   rJ   r   r   r   r   r   	   s    r   c                   @   s   e Zd Zdd ZdS )VectorizedTouchesTestCasec                 C   s   ddl m} tjddddddf \}}tdddd}||||}tjg d	g d
g dg dg d
g d	gtd}ddlm} ||| d S )Nr   )touches   y              @r2   r&      )FFFFF)FTTTF)FTFTF)r   )assert_array_equal)	r   rO   r   r)   r   arrayr   numpy.testingrS   )r   rO   r   r   r   r   expectedrS   r   r   r   test_touchesY   s    z&VectorizedTouchesTestCase.test_touchesN)rK   rL   rM   rW   r   r   r   r   rN   W   s    rN   )unittestnumpyr   pytestshapely.geometryr   r   r   markfilterwarningsTestCaser   rN   r   r   r   r   <module>   s    

M