
    _ h3                     L   d dl Zd dlZd dlmZmZ d dlZd dlmZmZm	Z	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mZmZmZmZm Z m!Z!m"Z"m#Z#  ejH                  eeg      Z% ejH                  e%eg      Z&ejN                  jQ                  dg d fegd feegdfeeegdfedgdfdedgdfeegdfeegdfeegdfe!gd	fe"gd
feegdfegd
fegdfe%gdfe&gd	fg      d        Z)ejN                  jQ                  dddg      ejN                  jQ                  dddg      ejN                  jQ                  dg g g fegg g feegdgdgfeeegdgdgfedgdgdgfdedgdgdgfeegddgddgfeegg dg dfe!gg dg dfe"gg dg dfeegg dg dfegg dg dfegg dg dfe%gg dg d fe&gg d!g d"fg      d#                      Z*ejN                  jQ                  d$g g fegg feegd gfeeegdgfedgd gfdedgdgfeegd dgfeegg d%feegg d&feegg d'fg
      d(        Z+ejN                  jQ                  d)d*d+g      d,        Z,ejN                  jQ                  dddg      ejN                  jQ                  dddg      ejN                  jQ                  d-eegddgddgejZ                  dgfegg d.g d/g d0fe#gg dg dg d1fegg d2g d3g d4feegdgdgejZ                  gfg      d5                      Z.ejN                  j_                  ej`                  d6k  d78      ejN                  jQ                  dddg      ejN                  jQ                  dddg      ejN                  jQ                  d9eeee gg d:g d;ejZ                  dejZ                  dgejZ                  ejZ                  d	d	gfeeeegg d<g d=ejZ                  ejZ                  ejZ                  dddgdz  ejZ                  gd>z  g d?z   fegg d2g d3g d4g d@feeeeegdgdgejZ                  gejZ                  gfg      dA                             Z1dB Z2ejN                  jQ                  dddg      ejN                  jQ                  dCg d dfegd dfegd dfeegddfeeegddfedgddfdedgddfeegddfeegddfeegddfegddfe!gd	dfe#gd	dfe"gd
dfeegddfegd
dfegddfegddfe%gddfe&gd	dfg      dD               Z3dE Z4dF Z5dG Z6ejN                  jQ                  dddg      dH        Z7ejN                  jQ                  dddg      ejN                  jQ                  dIg egdedge&geegegg      ejN                  jQ                  dJddg      dK                      Z8dL Z9dM Z:dN Z;dO Z<ejN                  jQ                  dPeeg      dQ        Z=ejN                  jQ                  dPeeg      dR        Z>ejN                  jQ                  dSedfedfg      dT        Z?dU Z@dYdVZAdW ZBdX ZCy)Z    N)assert_allcloseassert_equal)count_coordinatesget_coordinatesset_coordinates	transform)emptyempty_line_string_zempty_pointempty_point_mempty_point_zempty_point_zmgeometry_collectiongeometry_collection_zgeometry_collection_zmline_stringline_string_mline_string_zline_string_zmlinear_ringmulti_line_stringmulti_pointmulti_polygonpointpoint_mpoint_zpoint_zmpolygonpolygon_with_hole	polygon_zzgeoms,count            
         c                 l    t        t        j                  | t        j                              }||k(  sJ y N)r   nparrayobject_)geomscountactuals      z/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/test_coordinates.pytest_count_coordsr1   &   s)    , rxxrzz:;FU??    	include_mTF	include_zz	geoms,x,y)r   r!   r!   r   r!   r!   r   r   )r   r   r!   r   r   r!   r!   r   )r   r"   r"   r   r   )r   r   r"   r"   r   )
r   r   r%   r%   r   r"   r"   r&   r&   r"   )
r   r%   r%   r   r   r"   r&   r&   r"   r"   )r   r!   r   r!   )r   r"   r   r"   )
r   r!   r!   r   r    @皙@r6   r5   r5   )
r   r   r!   r!   r   r5   r5   r6   r6   r5   )3   4   1   )r:   r"   )r7   r8   r9   r"   )r:   r:   r"   r'   )r7   r8   r9   r"   r"   )r:   r:   r"   r'   r'   c                 P   t        | ||      }||g}|r,|j                  t        j                  gt	        |      z         |r,|j                  t        j                  gt	        |      z         t        |t        j                  |t        j                        j                         y N)r4   r3   	r   appendr*   nanlenr   r+   float64T)r-   xyr4   r3   r/   expecteds          r0   test_get_coordsrF   @   sw    F Ui9MF1vH3q6)*3q6)*(BJJ799:r2   zgeoms,indexr   r!   r!   r!   )r   r   r   r!   )r   r   r   r!   r!   r!   r!   r!   c                     t        t        j                  | t        j                        d      \  }}t        j                  |t        j                        }t        ||       y )NTreturn_indexdtype)r   r*   r+   r,   intpr   )r-   index_r/   rE   s        r0   test_get_coords_indexrP   l   sA       

 ;$OIAvxxRWW-H"r2   orderCFc                     t        j                  t        t        gt        t        gg|       }g d}t        |d      \  }}t        ||       y )N)rQ   rG   TrI   )r*   r+   r   r   r	   r   r   )rQ   geometryrE   rO   r/   s        r0   test_get_coords_index_multidimrV      s?    xx%-u~>eLHHt<IAv"r2   zgeoms,x,y,z)r   r!   r!   )r   r   r!   )r&   r&   r&   )r&   r&   r&   r&   r&   )r"   r   r!   r!   )r'   r   r   r!   )r&   r&   r&   r&   c                    t        | ||      }||g}|r|j                  |       |r,|j                  t        j                  gt	        |      z         t        |t        j                  |t        j                        j                         y r<   r=   )r-   rC   rD   zr4   r3   r/   rE   s           r0   test_get_coords_zrY      sg     Ui9MF1vH3q6)*(BJJ799:r2   )r'      r   zGEOS < 3.12)reasonzgeoms,x,y,z,m)r"   r"   r"   r"   )r'   r'   r'   r'   )r   r!   r!   r   r!   r!   r   r!   r!   r   r!   r!   )r   r   r!   r   r   r!   r   r   r!   r   r   r!      )r!   r"   r'   r!   r"   r'   )r$   r!   r"   r'   c                     t        | ||      }||g}|r|j                  |       |r|j                  |       t        |t        j                  |t        j
                        j                         y r<   )r   r>   r   r*   r+   rA   rB   )	r-   rC   rD   rX   mr4   r3   r/   rE   s	            r0   test_get_coords_zmr_      sY    J Ui9MF1vH(BJJ799:r2   c                      t        j                  d      5  t        t        d       d d d        t        j                  d      5  t        t        dd       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)NzCpositional argument `include_z` for `get_coordinates` is deprecatedmatchFzXpositional arguments `include_z` and `return_index` for `get_coordinates` are deprecated)pytestdeprecated_callr   r    r2   r0   $test_get_coords_deprecate_positionalrf      sq    			S
 & 	u%& 
		/
 - 	ue,	- -	& &- -s   A!A-!A*-A6zgeoms,count,has_ringc                     t        j                  | t         j                        }|rdnd}t        ||      t         j                  j	                  d|f      z   }t        ||      }t        |t        ||             y )Nr'   r"   r4   r!   )r*   r+   r,   r   randomr   r   )r-   r.   has_ringr4   	arr_geomsncoords	new_geomss           r0   test_set_coordsro      se    6 

+IAAY)<ryy?O?OQRTUPV?WWF	62IiHIr2   c                      t        j                  t        g      } t        j                  t         j                  t         j                  gg      }t        | |      }t        |t        |             y r)   )r*   r+   r   r?   infr   r   r   )r-   rm   rn   s      r0   test_set_coords_nanrr      sK    HHeWEXX'()Fv.I34r2   c                      t        j                  t        j                        5  t	        t
        t        j                  j                  d             d d d        y # 1 sw Y   y xY w)N)r$   r"   )rc   raisesshapelyGEOSExceptionr   r   r*   ri   re   r2   r0   test_set_coords_breaks_ringrw     sB    	w,,	- ?RYY%5%5f%=>? ? ?s   .AA$c                     t        t        ddgg      } t        | t        j                        sJ t        t        j                  t              ddgg      } t        | t
        j                        sJ | j                  dk(  sJ y )Nr!   r   )	r   r   
isinstanceru   Geometryr*   asarrayndarrayndimr/   s    r0   test_set_coords_0dimr     sk    UaVH-Ffg..///RZZ.!Q9Ffbjj)));;!r2   c                 >   t        j                  t        t        gt              }t        ||       }t        ||dz        }| r5t        j                  |d         rJ t        j                  |d         sJ y t        j                  |      j                         rJ y )NrK   rh   r"   r   r!   )
r*   r+   r   r   objectr   r   ru   has_zany)r4   r-   rm   rn   s       r0   test_set_coords_mixed_dimensionr     s    HHeW%V4EUi8Fvz2I==1...}}Yq\*** ==+//1111r2   r-   interleavedc                     t        j                  | t         j                        } t        | |      }|rd }n	|sd }nd }t	        | |||      }|| usJ t        ||      }t        |dz   |d       y )	Nrh   c                     | dz   S Nr!   re   )rm   s    r0   <lambda>z test_transform.<locals>.<lambda>)  s
    
 r2   c                     | dz   |dz   fS r   re   )rC   rD   s     r0   r   z test_transform.<locals>.<lambda>+  s    q1ua!en r2   c                     | dz   |dz   |dz   fS r   re   rC   rD   rX   s      r0   r   z test_transform.<locals>.<lambda>-  s    !a%QA)> r2   r4   r   r!   T)	equal_nan)r*   r+   r,   r   r   r   )r-   r4   r   coordinates_beforetransformationrn   coordinates_afters          r0   test_transformr     s}     HHUBJJ'E()D24>~I E!!!'	YG&*,=Nr2   c                      t        t        d       } t        | t        j                        sJ t        t        j                  t              d       } t        | t
        j                        sJ | j                  dk(  sJ y )Nc                     | dz   S r   re   rC   s    r0   r   z%test_transform_0dim.<locals>.<lambda>8  s
    A r2   c                     | dz   S r   re   r   s    r0   r   z%test_transform_0dim.<locals>.<lambda>;  s
    AE r2   r   )	r   r   ry   ru   rz   r*   r{   r|   r}   r~   s    r0   test_transform_0dimr   6  s_    uo.Ffg..///rzz%(/:Ffbjj)));;!r2   c                  @    t        g d       } | j                  dk(  sJ y )Nc                     | dz   S r   re   r   s    r0   r   z)test_transform_no_geoms.<locals>.<lambda>B  s
    QU r2   )r   )r   shaper~   s    r0   test_transform_no_geomsr   @  s     r?+F<<4r2   c                      d } t        j                  t              5  t        t        |        d d d        y # 1 sw Y   y xY w)Nc                     | d d S )Nr:   re   )arrs    r0   remove_coordz0test_transform_check_shape.<locals>.remove_coordG  s    3Bxr2   )rc   rt   
ValueErrorr   r   )r   s    r0   test_transform_check_shaper   F  s4     
z	" -+|,- - -s	   7A c                      t         } t        j                  |       dk(  sJ t        | d d      }t        j                  |      dk(  sJ y )Nr'   c                     | dz   S r   re   r   s    r0   r   z=test_transform_correct_coordinate_dimension.<locals>.<lambda>R  
    Q r2   Frh   r"   )r   ru   get_coordinate_dimensionr   geomnew_geoms     r0   +test_transform_correct_coordinate_dimensionr   N  sG    D++D1Q666%@H++H5:::r2   r   c                     t        j                  |       dk(  sJ t        | d d      }t        j                  |      dk(  sJ y )Nr'   c                     | dz   S r   re   r   s    r0   r   z1test_transform_empty_preserve_z.<locals>.<lambda>_  r   r2   Trh   ru   r   r   r   s     r0   test_transform_empty_preserve_zr   V  sD     ++D1Q666$?H++H5:::r2   c                     t        j                  |       dk(  sJ t        | d d      }t        j                  |      dk(  sJ y )Nr'   c                     | dz   S r   re   r   s    r0   r   z)test_transform_remove_z.<locals>.<lambda>l  r   r2   Frh   r"   r   r   s     r0   test_transform_remove_zr   c  sD     ++D1Q666%@H++H5:::r2   zgeom,expectedc                 r    t        | d d       }t        j                  |      |k(  j                         sJ y )Nc                     | dz   S r   re   r   s    r0   r   z:test_transform_auto_coordinate_dimension.<locals>.<lambda>x  r   r2   rh   )r   ru   r   all)r   rE   r   s      r0   (test_transform_auto_coordinate_dimensionr   p  s4     $?H,,X6(BGGIIIr2   c                  x   t        t        t        gd d       } t        t	        j
                  |       ddg       t        t	        j                  t        d      dz   t	        j                  | d   d             t        t	        j                  t        d      dz   t	        j                  | d   d             y )	Nc                     | dz   S r   re   r   s    r0   r   z@test_transform_auto_coordinate_dimension_mixed.<locals>.<lambda>}  s
    Q r2   rh   r"   r'   Fr!   r   T)r   r   r   r   ru   r   r   r   s    r0   .test_transform_auto_coordinate_dimension_mixedr   |  s    +}5RVWH11(;aVDu=Au= >Bt<r2   c                 6    |
| dz   |dz   gS | dz   |dz   |dz   gS )Nr!   r"   r'   re   r   s      r0   transform_non_interleavedr     s2    yAq1u~Aq1ua!e$$r2   c                     t        t        t        gt        d d      } t	        t        j                  |       ddg       t	        t        j                  t        d      ddgz   t        j                  | d   d             t	        t        j                  t        d      g d	z   t        j                  | d   d             y )
NFr   r"   r'   rh   r!   r   T)r!   r"   r'   )r   r   r   r   r   ru   r   r   r   s    r0   :test_transform_auto_coordinate_dimension_mixed_interleavedr     s    	m$!	H 11(;aVDu=AFu= >Jt<r2   c                  ~    t        j                  d      5  t        t        d d       d d d        y # 1 sw Y   y xY w)Nz=positional argument `include_z` for `transform` is deprecatedra   c                     | dz   S r   re   r   s    r0   r   z5test_transform_deprecate_positional.<locals>.<lambda>  s
    1q5 r2   F)rc   rd   r   r   re   r2   r0   #test_transform_deprecate_positionalr     s6    			M
 9 	-%89 9 9s   3<r)   )Dnumpyr*   rc   numpy.testingr   r   ru   r   r   r   r   shapely.tests.commonr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    geometrycollectionsnested_2nested_3markparametrizer1   rF   rP   rV   r?   rY   skipifgeos_versionr_   rf   ro   rr   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   r2   r0   <module>r      s     7  R R      6 '7&&(;U'CD&7&&%'89 	Q
!

	"

t	a 

	1
{	#Q'
A
	b!
(	)1-
"
	"
Q
Q!*+*
 tUm4tUm4	R
"b
!qc"
	aS)
aS!
t	qcA3'
!Q!Q(+&$$	

 O_5,,	

 (	)<FO44	

 	k:
_n5
'):;7@;A 5 5D; 	R
"
!
	$

t	qc"
!Q 
	|,
u	|,
{	#%=>## 3*-# .# tUm4tUm4
	Aq6Aq6BFFA;7
)Y	:
oH
	 ,lK
	sQC"&&2	;	 5 5; G((:5mLtUm4tUm4 GWh/VVQ"VVRVVQ"	
 -G00VVRVVRVVQ1-1VVHqL--	
 $$	
 K~NCCVVHVVH	
- B;C  5 5 MH;	- tUm4	Q
!U
5!
E"
	5)
5!
t	a'
E"
	1e$
{	#Q-
!T"
At
a
	b$'
(	)1e4
"d#
	5)
	 !U+
Q
Q)2J3 54J5?
 tUm4
2 5
2 tUm4%4%zE73Cm_U u6O 7	 5O" -; 
;; 
;; 	a	JJ

%$9r2   