
    Og	                         d dl Z d dlZd dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
mZ d dlmZmZ d Z G d d	ej                         Zy)
    N)partial)islice)ShapelyDeprecationWarning)MultiPolygonPoint)cascaded_unionunary_unionc              #   R    K    fd}d}|dkD  r ||       |dz  }|dkD  ryyw)z4Returns an iterator over an infinite Halton sequencec                 Z    d}dz  }| }|dkD  r|||z  z  z  }|z  }|z  }|dkD  r|S )Ng        g      ?r    )indexresultfibases       d/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/shapely/tests/legacy/test_union.pyvaluezhalton.<locals>.value   sQ    $J!ea1t8n$FT	ADA !e        r   Nr   )r   r   r   s   `  r   haltonr      s5      	
A
a%Ah	Q a%s   !''c                   $    e Zd Zd Zd Zd Zd Zy)UnionTestCasec                 x   t        t        j                  dd      }t        d      D cg c]  }t	         |        |              }}|D cg c]  }|j                  d       }}t        j                  t        d      5  t        |      }d d d        j                  dv sJ y c c}w c c}w # 1 sw Y   $xY w)Ng      4g      4@d   g      @zis deprecated)match)Polygonr   )r   randomuniformranger   bufferpytestwarnsr   r   	geom_type)selfrr   pointspspotsus          r   test_cascaded_unionz!UnionTestCase.test_cascaded_union!   s     FNNE40+0:6a%QS/66 )//1#// \\3?K 	&u%A	&{{9999 7 0	& 	&s   B&B+B00B9c           
          t        t        t        t        d      dd            t        t        t        d      dd                  | _        y )N      x      )ziplistr   r   coords)r$   s    r   setUpzUnionTestCase.setUp3   s:     q	2s+,q	2s+,
r   c                     | j                   D cg c]  }t        |      j                  d       }}t        |      }|j                  dk(  sJ |j
                  t        j                  d      k(  sJ y c c}w )N皙?r   g1׋?)r2   r   r    r	   r#   arear!   approx)r$   xypatchesr)   s       r   test_unary_unionzUnionTestCase.test_unary_union;   se    48KK@b59##D)@@ {{n,,,vv~6666 As   !A3c                 <   t        | j                  D cg c]  }t        |      j                  d       c}      }t	        |      j
                  t        j                  d      k(  sJ t	        ||g      j
                  t        j                  d      k(  sJ y c c}w )Nr5   g]H0׋?)r   r2   r   r    r	   r6   r!   r7   )r$   r8   r9   s      r   test_unary_union_multiz$UnionTestCase.test_unary_union_multiA   s{     M2b	 0 0 6MN7#((FMM-,HHHHGW-.33v}}]7SSSS  Ns   !BN)__name__
__module____qualname__r*   r3   r:   r<   r   r   r   r   r       s    :$
7Tr   r   )r   unittest	functoolsr   	itertoolsr   r!   shapely.errorsr   shapely.geometryr   r   shapely.opsr   r	   r   TestCaser   r   r   r   <module>rG      s6         4 0 3&&TH%% &Tr   