
    _ h                         d dl Zd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZ  G d d      Z G d d      Z G d d	      Zej$                  j'                  d
eeee	g      d        Zej$                  j+                  edk  d      d        Zy)    N)
LineStringgeos_version)line_stringline_string_mline_string_zline_string_zmpointpoint_mpoint_zpoint_zmc                       e Zd ZdZd Zd Zy)
TestCoordsz
    Shapely assumes contiguous C-order float64 data for internal ops.
    Data should be converted to contiguous float64 if numpy exists.
    c9a0707 broke this a little bit.
    c                     t        j                  ddgddggt         j                        }t        j                  t        |      j                        }|j                         |j                         k(  sJ y )N   "   8   N   dtypenparrayfloat32r   coordstolistselfr   processed_coordss      ~/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/geometry/test_coords.pytest_data_promotionzTestCoords.test_data_promotion   s[    B8b"X.bjjA88Jv$6$=$=>}}"2"9"9";;;;    c                    t        j                  ddgddggt         j                        }t        j                  t        |d d d         j                        }|d d d   j                         |j                         k(  sJ y )Nr   r   r   r   r   r   r   s      r   test_data_destridingzTestCoords.test_data_destriding   sp    B8b"X.bjjA 88Jvdd|$<$C$CDdd|""$(8(?(?(AAAAr!   N)__name__
__module____qualname____doc__r    r$    r!   r   r   r      s    <Br!   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestCoordsGetItemc                    t        d      D cg c]  }t        |      t        |       f }}t        |      }t        dd      D ]  }|j                  |   ||   k(  rJ  t	        j
                  t              5  |j                  d    d d d        t	        j
                  t              5  |j                  d    d d d        y c c}w # 1 sw Y   @xY w# 1 sw Y   y xY w)N   rangefloatr   r   pytestraises
IndexErrorr   xcgis        r   test_index_coordsz#TestCoordsGetItem.test_index_coords(   s    ,1!H5qeAhqb	"55qMr1 	'A88A;!A$&&&	']]:& 	HHQK	]]:& 	HHRL	 	 6	 		 	s   C:C	+C	CCc           	         t        d      D cg c]&  }t        |      t        |       t        |dz        f( }}t        |      }t        dd      D ]  }|j                  |   ||   k(  rJ  t	        j
                  t              5  |j                  d    d d d        t	        j
                  t              5  |j                  d    d d d        y c c}w # 1 sw Y   @xY w# 1 sw Y   y xY w)Nr-      r.   r/   r0   r6   s        r   test_index_coords_zz%TestCoordsGetItem.test_index_coords_z2   s    :?(CQeAhqb	5Q<0CCqMr1 	'A88A;!A$&&&	']]:& 	HHQK	]]:& 	HHRL	 	 D	 		 	s   +CC8C"C"C+c                    t               }t        j                  t              5  |j                  d    d d d        t        j                  t
              5  |j                  d    d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nr           )r   r3   r4   r5   r   	TypeError)r   r9   s     r   test_index_coords_miscz(TestCoordsGetItem.test_index_coords_misc<   sf    L]]:& 	HHQK	]]9% 	HHSM	 		 		 	s   A.A:.A7:Bc                    t        d      D cg c]  }t        |      t        |       f }}t        |      }|j                  dd  |dd  k(  sJ |j                  d d |d d k(  sJ |j                  d d d   |d d d   k(  sJ |j                  d d d   |d d d   k(  sJ |j                  d d |d d k(  sJ |j                  dd  |dd  cxk(  rg k(  sJ  J y c c}w )Nr-      r#   r=   r1   r2   r   r   r   r7   r8   r9   s       r   test_slice_coordsz#TestCoordsGetItem.test_slice_coordsC   s    ,1!H5qeAhqb	"55qMxx|qu$$$xx}#2&&&xx"~4R4(((xx!}#A#&&&xx|q!u$$$xx|qu****** 6s   Cc           	         t        d      D cg c]&  }t        |      t        |       t        |dz        f( }}t        |      }|j                  dd  |dd  k(  sJ |j                  d d |d d k(  sJ |j                  d d d   |d d d   k(  sJ |j                  d d d   |d d d   k(  sJ |j                  d d |d d k(  sJ |j                  dd  |dd  cxk(  rg k(  sJ  J y c c}w )Nr-   r=   rD   r#   rE   rF   s       r   test_slice_coords_zz%TestCoordsGetItem.test_slice_coords_zM   s   :?(CQeAhqb	5Q<0CCqMxx|qu$$$xx}#2&&&xx"~4R4(((xx!}#A#&&&xx|q!u$$$xx|qu****** Ds   +C&N)r%   r&   r'   r;   r>   rB   rG   rI   r)   r!   r   r+   r+   '   s    ++r!   r+   c                       e Zd ZdZd Zy)TestXYz<New geometry/coordseq method 'xy' makes numpy interop easierc                     t        ddg      j                  \  }}t        |      dk(  sJ t        |      ddgk(  sJ t        |      dk(  sJ t        |      ddgk(  sJ y )N)r   r   )rD   rD   r=   r@         ?)r   xylenlist)r   r7   ys      r   test_arrayszTestXY.test_arrays[   sg    66*+..11v{{Aw3*$$$1v{{Aw3*$$$r!   N)r%   r&   r'   r(   rR   r)   r!   r   rK   rK   X   s
    F%r!   rK   geomc                 6   | j                   }t        j                  |      t        j                  |      usJ t        j                  |d      t        j                  |d      usJ t        t        j                  j
                  j                  dd      d         dk\  r<t        j                  t        d      5  t        j                  |d	       d
d
d
       y
t        j                  |d	      t        j                  |d	      u sJ y
# 1 sw Y   y
xY w)z)Test CoordinateSequence.__array__ method.T)copy.rD   r   r=   zA copy is always created)matchFN)
r   r   r   intversionshort_versionsplitr3   r4   
ValueError)rS   	coord_seqs     r   test_coords_array_copyr^   c   s     I88Ibhhy&999988ID))$1OOOO 2::##))#q1!45:]]:-GH 	,HHYU+	, 	, xx	."((952QQQQ	, 	,s   =DD)   r   r   zGEOS < 3.12)reasonc                      t         j                  d d  dgk(  sJ t        j                  d d  dgk(  sJ t        j                  d d  g dk(  sJ t        j                  d d  g dk(  sJ y )N)       @      @      @)rb   rc         @rd   ))r@   r@   rM   )rM   r@   rb   )rM   rM   rc   ))r@   r@   re   rM   )rM   r@   re   rb   )rM   rM   re   rc   )r
   r   r   r   r   r)   r!   r   test_coords_with_mrf   r   s}    >>! 1111??1"6!7777" '   
   # (   r!   )numpyr   r3   shapelyr   r   shapely.tests.commonr   r   r   r   r	   r
   r   r   r   r+   rK   markparametrizer^   skipifrf   r)   r!   r   <module>rm      s      ,	 	 	B B,.+ .+b% % %+}!MNR OR L:-mD Er!   