
    (&h                        d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ  ej        d          d             Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Ze
d             Zd Zd Zd ZdS )    N)wktPoint)shapely20_todo)dumpdumpsloadloadsmodule)scopec                  "    t          dd          S )N333333?333333@r        X/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/legacy/test_wkb.py
some_pointr      s    c??r   c                 t    t          j        |                                                               d          S )Nzutf-8)binasciib2a_hexupperdecodevalues    r   bin2hexr      s-    E""((**11':::r   c                 *    t          j        |           S N)r   a2b_hexr   s    r   hex2binr      s    E"""r   c                    | r| d         dv rt          d          | r
| d         dvrt          d          t          j        | d         t          |dd                             \  }dd	d
|         }d	ddt          j                 }||k    r|S t          t          j        || z   ddd|         gt          j        || z   t          |                    dd         R            S )ab  Re-pack a hex WKB value to native endianness if needed

    This routine does not understand WKB format, so it must be provided a
    struct module format string, without initial indicator character ("@=<>!"),
    which will be interpreted as big- or little-endian with standard sizes
    depending on the endian flag in the first byte of the value.
    r   z@=<>!z1Initial indicator character, one of @=<>!, in fmtcbBzMissing endian flag in fmtN   ><)r      )littlebigr%   )r#   r$   )
ValueErrorstructunpackr   sys	byteorderr   pack)fmtr   	hexendianhexordersysorders        r   	hostorderr2      s     Ns1v  LMMM 7#a&%%5666=Qrr););<<LY3	*Hc**3=9H8sN!X&	
 ]8c>75>>::122>	
 	
 	
  r   c                     t          |           }t          |          t          dd          k    sJ t          | d          }t          |          t          dd          k    sJ d S )NBIdd*0101000000333333333333F33F3333333333330B40i  sridBIIdd20101000020E6100000333333333333F33F3333333333330B40r   r   r2   r   results     r   test_dumps_sridr=   8   s    :F6??i<      :D)))F6??iE       r   c                    t          |           }t          |          t          dd          k    sJ t          | d          }t          |          dk    sJ t          | d          }t          |          dk    sJ d S )Nr4   r5   F
big_endianT*00000000013FF3333333333333400B333333333333r:   r;   s     r   test_dumps_endiannessrB   C   s    :F6??i<      :%000F6??JJJJJ:$///F6??JJJJJJJr   c                 T    t          | d          }|t          dd          k    sJ d S )NThexr4   r5   )r   r2   r;   s     r   test_dumps_hexrF   N   s6    :4(((FYv'STTTTTTTTr   c                     t          t          d                    } t          | t                    sJ | j        d d          dgk    sJ t          |           }t          |          t          dd          k    sJ t          | d          }t          |          t          dd          k    sJ t          | d	          }t          |          t          dd
          k    sJ d S )Nr9   )r   r   r4   r5   T)include_sridr8   i4l  r6   20101000020346C0000333333333333F33F3333333333330B40)r
   r   
isinstancer   coordsr   r   r2   )geomr<   s     r   test_loads_sridrM   S   s   MNNOODdE""""";qqq>j\))))4[[F6??i<      4d+++F6??iE      4e$$$F6??iE       r   c                 R    t          t          | d          d          | k    sJ d S )NTrD   )r
   r   )r   s    r   test_loads_hexrO   i   s3    zt,,,$777:EEEEEEr   c                    |                     d          }t          |d          5 }t          | |           d d d            n# 1 swxY w Y   t          |d          5 }t          |          }d d d            n# 1 swxY w Y   | |k    sJ d S )Ntest.wkbwbrbjoinopenr   r	   r   tmpdirfilefile_pointerrestoreds        r   test_dump_load_binaryr\   m   s   ;;z""D	dD		 '\Z&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	dD		 &\%%& & & & & & & & & & & & & & & !!!!!!s#   AA
AA::A>A>c                 $   |                     d          }t          |d          5 }t          | |d           d d d            n# 1 swxY w Y   t          |          5 }t          |d          }d d d            n# 1 swxY w Y   | |k    sJ d S )NrQ   wTrD   rT   rW   s        r   test_dump_load_hexr_   w   s   ;;z""D	dC 1LZ400001 1 1 1 1 1 1 1 1 1 1 1 1 1 1	d 0|$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !!!!!!s#   AA	A	A==BBc                 v   |                     d          }t          |d          5 }t          | |d           ddd           n# 1 swxY w Y   t          j        t
                    5  t          |d          5 }t          |           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )z<Asserts that reading a binary file as text (hex mode) fails.rQ   r^   TrD   NrS   )rU   rV   r   pytestraises	TypeErrorr	   )r   rX   rY   rZ   s       r   test_dump_hex_load_binaryrd      sp    ;;z""D	dC 1LZ400001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
y	!	!  $ 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sG   AA	A	)B.:B
B.B	B.B	B..B25B2c                 &   |                     d          }t          |d          5 }t          | |           ddd           n# 1 swxY w Y   t          j        dk    rBt          |          5 }t          |d          }ddd           n# 1 swxY w Y   | |k    sJ dS t          j        t          t          f          5  t          |          5 }t          |d           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )z<Asserts that reading a text file (hex mode) as binary fails.rQ   rR   Nwin32TrD   )
rU   rV   r   r+   platformr	   ra   rb   UnicodeEncodeErrorUnicodeDecodeErrorrW   s        r   test_dump_binary_load_hexrj      s   ;;z""D	dD		 '\Z&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 |w$ZZ 	4<Ld333H	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4X%%%%	*,>?	@	@ ) )$ZZ 	)<4((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )sY   AA
A-BBB DC."D.C2	2D5C2	6DD
D
c                  
   t          j        d          } t          | d          }|d d         dk    sJ t          j        d|dd                    }t          |          dk    sJ t          d |D                       sJ d S )	NzPOINT EMPTYFr?   is      z<2dr"   c              3   >   K   | ]}t          j        |          V  d S r   )mathisnan).0vals     r   	<genexpr>z#test_point_empty.<locals>.<genexpr>   s*      113tz#111111r   )r   r
   r   r)   r*   lenall)gr<   rK   s      r   test_point_emptyru      s    	-  A1'''F (F(66666]5&"233Fv;;!11&1111111111r   c                  d    t          j        d          } | j        t          dd          k    sJ d S )NzPOINT Z EMPTYBIddd:0101000080000000000000F87F000000000000F87F000000000000F87F)r   r
   wkb_hexr2   )rt   s    r   test_point_z_emptyrz      sF    	/""A9	M       r   ) r   rm   r)   r+   ra   shapelyr   shapely.geometryr   shapely.tests.legacy.conftestr   shapely.wkbr   r   r	   r
   fixturer   r   r   r2   r=   rB   rF   rM   rO   r\   r_   rd   rj   ru   rz   r   r   r   <module>r      s      



        " " " " " " 8 8 8 8 8 8 0 0 0 0 0 0 0 0 0 0 0 0 h   ; ; ;# # #  :  K K KU U U
  ,F F F" " "" " "   ) ) )&2 2 2    r   