
    (&h                         d dl Zd dlZd dlZd dlmZmZmZ d dlmZ d Z	d Z
d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zej                            d          d             Zd Z G d d          Zd Zd Zd ZdS )    N)
LinearRing
LineStringPoint)CoordinateSequencec                      t          ddg          } t          | j                  dk    sJ | j        d d          ddgk    sJ t          ddg          } | j        d d          ddgk    sJ d S )N      ?       @      @      @   )r   lencoordslines    a/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/geometry/test_linestring.pytest_from_coordinate_sequencer   	   s    z:.//Dt{q    ;qqq>j*55555z:.//D;qqq>j*5555555    c                  h    t          ddg          } | j        sJ | j        d d          ddgk    sJ d S )Nr	   r
   r   )r   r         @)r   has_zr   r   s    r   test_from_coordinate_sequence_zr      sH    899D:;qqq>o???????r   c                     t          t          dd          t          dd          g          } | j        d d          ddgk    sJ t          t          dd          t          dd          g          } | j        d d          ddgk    sJ d S Nr	   r
   r   r   r   r   r   r   r   r   s    r   test_from_pointsr      s    uS#c3899D;qqq>j*55555uS#c3899D;qqq>j*5555555r   c                      t          t          dd          dt          dd          g          } | j        d d          g dk    sJ d S )Nr	   r
   r
   r   r   r   )r   r    r   r   r   s    r   test_from_mixr!   "   sN    uS#
E#sOODEED;qqq>AAAAAAAAAr   c                      t          ddg          } t          |           }|j        d d          ddgk    sJ |j        dk    sJ d S )Nr   r   r   r   r   	geom_type)r   copys     r   test_from_linestringr&   (   sZ    z:.//DdD;qqq>j*55555>\))))))r   c                      g d} t          |           }t          |          }|j        d d          | k    sJ |j        dk    sJ d S )N)        r)   )r	   r)   r	   r	   r(   r   )r   r   r   r$   )r   ringr%   s      r   test_from_linearringr,   0   s[    ===FfDdD;qqq>V####>\))))))r   c                      ddg} t          |           }t          |          }|j        d d          | k    sJ |j        dk    sJ d S )Nr   )r   r   g      @r   r#   )r   r   r%   s      r   test_from_linestring_zr.   8   sZ    /FfDdD;qqq>V####>\))))))r   c                  j    d dD             } t          |           }|j        d d          ddgk    sJ d S )Nc              3      K   | ]}|V  d S N ).0coords     r   	<genexpr>z&test_from_generator.<locals>.<genexpr>A   s"      
7
7U5
7
7
7
7
7
7r   r   r   r   r   )r   r   )genr   s     r   test_from_generatorr8   @   sG    
7
76
7
7
7Cc??D;qqq>j*5555555r   c                  (   t                      } | j        sJ t          | j        t                    sJ | j        d d          g k    sJ t          g           } | j        sJ t          | j        t                    sJ | j        d d          g k    sJ d S r1   )r   is_empty
isinstancer   r   r   s    r   test_from_emptyr<   F   s    <<D=dk#566666;qqq>Rb>>D=dk#566666;qqq>Rr   c                      t          t          j        ddgddgg                    } | j        d d          ddgk    sJ d S r   )r   nparrayr   r   s    r   test_from_numpyr@   R   sL    bhc
S#J78899D;qqq>j*5555555r   c                  p    t          g           } t          j        | j                  }|j        dk    sJ d S )N)r   r   )r   r>   asarrayr   shape)r   las     r   "test_numpy_empty_linestring_coordsrE   X   s7    b>>D	DK	 	 B8vr   c                      t          ddg          } t          j        dt                    }| g|d d <   |d         | k    sJ d S )Nr(   )r)   r	      r   )r   r>   emptyobject)geomars     r   test_numpy_object_arrayrL   `   sI    z:.//D	!V		BFBqqqEa5D======r   z8ignore:Creating an ndarray from ragged nested sequences:c                     t          j        t          j                  5  t	          dg           d d d            n# 1 swxY w Y   t          j        t
          t          f          5  t	          ddg           d d d            n# 1 swxY w Y   t          j        t
          t          f          5  t	          ddg           d d d            n# 1 swxY w Y   d} t          j        t
          |                     d                    5  t	          dd	g           d d d            n# 1 swxY w Y   t          j        t
          |                     d
                    5  t	          ddg           d d d            d S # 1 swxY w Y   d S )N)rG   r   )rG   r      )      )rN   rO   rP   z8The ordinate \(last\) dimension should be 2 or 3, got {}rO   match)rG   r   rN   rO   )rO   rP         rG   )rG   )rO   )pytestraisesshapelyGEOSExceptionr   
ValueError	TypeErrorformat)msgs    r   test_from_invalid_dimr]   g   s    
w,	-	-  F8               

I.	/	/ ( (Iv&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 

I.	/	/ ( (FI&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( FC	zA	7	7	7 1 1L,/0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
zA	7	7	7 ! !D$<   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sW   <A A 'BB	B	0CCC	D''D+.D+ E??FFc                      ddgg} t          j        t          j                  5  t	          |           }|j         ddd           dS # 1 swxY w Y   dS )zTest for issue #486gS^g8tB@N)rU   rV   rW   rX   r   r$   )r   lss     r   test_from_single_coordinater`      s     "234F	w,	-	-  
                 s   AAAc                   &    e Zd Zd Zd Zd Zd ZdS )TestLineStringc                    t          ddg          }t          |j                  dk    sJ |j        d d          ddgk    sJ |j        dk    sJ t	          |j                  dk    sJ |j        d         dk    sJ |j        d         dk    sJ t          j        t                    5  |j        d          d d d            n# 1 swxY w Y   |j        ddd	k    sJ d S )
Nr   r   r   )r	   r
   r   r   r6   r   rG   r   )typecoordinates)	r   r   r   boundstuplerU   rV   
IndexError__geo_interface__)selfr   s     r   test_linestringzTestLineString.test_linestring   sW   :z2334;1$$$${111~*j!99999 {22222 T[!!%====={1~++++{1~++++]:&& 	 	KNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 % 3*
 *
 
 
 
 
 
 
s   )CC
Cc                 V    t                      }|j        dk    sJ |j        dk    sJ d S )NzLINESTRING EMPTYr)   )r   wktlength)rj   l_nulls     r   test_linestring_emptyz$TestLineString.test_linestring_empty   s8    z/////}######r   c                    d}t          |          }t          |          }|                    |          du sJ |                    |          du sJ ||k    du sJ ||k    du sJ t          |          }t          |          }|                    |          du sJ |                    |          du sJ ||k    du sJ ||k    du sJ dS )zz
        Test equals predicate functions correctly regardless of the order
        of the inputs. See issue #317.
        )r   r   )rG   r   )rG   rG   rr   FTN)r   r   __eq__)rj   r   r_   lrls_clonelr_clones         r   test_equals_argument_orderz)TestLineString.test_equals_argument_order   s   
 2yy}}%%%%yy}}%%%%bU""""bU""""f%%f%%yy""d****yy""d****h4''''h4''''''r   c                     ddl m} t          ddg          }t          j        ddgddgg          }t          j        |j                  } |||           d S )	Nr   )assert_array_equalr   r   r	   r
   r   r   )numpy.testingry   r   r>   r?   rB   r   )rj   ry   r   expectedrD   s        r   test_numpy_linestring_coordsz+TestLineString.test_numpy_linestring_coords   sn    444444:z2338c3Z#s455 Z$$2x(((((r   N)__name__
__module____qualname__rk   rp   rw   r|   r2   r   r   rb   rb      sP        
 
 
,$ $ $( ( (,) ) ) ) )r   rb   c                     t          ddg          } t          j        t                    5  ddg| _        d d d            n# 1 swxY w Y   t          j        t
                    5  d| j        d<   d d d            d S # 1 swxY w Y   d S )Nr   r   )      r   r*   r   )r   rU   rV   AttributeErrorr   rZ   r   s    r   test_linestring_immutabler      s   z:.//D	~	&	& 1 1#Z01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
y	!	! & &%A& & & & & & & & & & & & & & & & & &s#   
AAA%A==BBc                      t          ddg          } t          j        |           }|j        dk    sJ |j        dk    sJ |j        t          j        d          k    sJ |                                | k    sJ d S )Nr   r   r   rG   rI   )r   r>   r?   ndimsizedtypeitem)r   arrs     r   test_linestring_array_coercionr      s{    z:.//D
(4..C8q====8q====9******88::r   c                     t          ddg          } t          j        d          5  |                     dd           d d d            n# 1 swxY w Y   t          j        d          5  |                     ddd           d d d            n# 1 swxY w Y   t          j        d	          5  |                     dddd
           d d d            d S # 1 swxY w Y   d S )Nr   r   z@positional argument `quad_segs` for `offset_curve` is deprecatedrQ   r	      zSpositional arguments `quad_segs` and `join_style` for `offset_curve` are deprecatedroundzcpositional arguments `quad_segs`, `join_style`, and `mitre_limit` for `offset_curve` are deprecatedr   )r   rU   deprecated_calloffset_curve)line_strings    r   &test_offset_curve_deprecate_positionalr      s   j*566K		P
 
 
 ) ) 	  a((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) 
	,
 
 
 2 2 	  a111	2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 
	,
 
 
 7 7 	  a#666	7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s5   A

AA*BBB.CCC)numpyr>   rU   rW   r   r   r   shapely.coordsr   r   r   r   r!   r&   r,   r.   r8   r<   r@   rE   rL   markfilterwarningsr]   r`   rb   r   r   r   r2   r   r   <module>r      s         1 1 1 1 1 1 1 1 1 1 - - - - - -6 6 6@ @ @6 6 6B B B* * ** * ** * *6 6 6	  	  	 6 6 6     VWW! ! XW!.  ;) ;) ;) ;) ;) ;) ;) ;)|& & &  7 7 7 7 7r   