
    _ h.                         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m	Z	 d dl
mZ d Z G d dej                        Zy)	    N)partial)islice)MultiPolygonPoint)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       {/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/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                    t        t        j                  dd      }t        d      D cg c]  }t	         |        |              }}|D cg c]  }|j                  d       }}t        |      }|j                  dv sJ y c c}w c c}w )Ng      4g      4@d   g      @)Polygonr   )r   randomuniformranger   bufferr   	geom_type)selfrr   pointspspotsus          r   test_unary_union_partialz&UnionTestCase.test_unary_union_partial    s}     FNNE40+0:6a%QS/66 )//1#// {{9999 7 0s   BB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.setUp/   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׋?)r-   r   r   r   r   areapytestapprox)r   xypatchesr$   s       r   test_unary_unionzUnionTestCase.test_unary_union7   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 )Nr0   g]H0׋?)r   r-   r   r   r   r1   r2   r3   )r   r4   r5   s      r   test_unary_union_multiz$UnionTestCase.test_unary_union_multi=   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%   r.   r6   r8   r
   r   r   r   r      s    :
7Tr   r   )r   unittest	functoolsr   	itertoolsr   r2   shapely.geometryr   r   shapely.opsr   r   TestCaser   r
   r   r   <module>rB      s3         0 #&#TH%% #Tr   