o
    Jf                     @   sL   d dl Z d dlZd dlmZmZmZ G dd de jZG dd de jZ	dS )    N)boxMultiPolygonPointc                   @   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   p/home/deployuser/azure_apps/autowriter/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_order4      
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_order9   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_dtypeF   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_2dK   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_containsP   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_touchesV   s    z&VectorizedTouchesTestCase.test_touchesN)rK   rL   rM   rW   r   r   r   r   rN   U   s    rN   )
unittestnumpyr   shapely.geometryr   r   r   TestCaser   rN   r   r   r   r   <module>   s
    M