
    9i                         S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
  S SKJrJrJrJr  \R                   " SS9S 5       rS	 rS
 rS rS rS rS rS rS rS rS r\
S 5       rS rS rS rg)    N)wktPoint)shapely20_todo)dumpdumpsloadloadsmodule)scopec                      [        SS5      $ )N333333?333333@r        ]/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/shapely/tests/legacy/test_wkb.py
some_pointr      s    c?r   c                 h    [         R                  " U 5      R                  5       R                  S5      $ )Nzutf-8)binasciib2a_hexupperdecodevalues    r   bin2hexr      s'    E"((*11'::r   c                 .    [         R                  " U 5      $ N)r   a2b_hexr   s    r   hex2binr      s    E""r   c                    U (       a  U S   S;   a  [        S5      eU (       a	  U S   S;  a  [        S5      e[        R                  " U S   [        USS 5      5      u  nSS	S
.U   nS	SS.[        R
                     nX4:X  a  U$ [        [        R                  " X@-   SSS.U   /[        R                  " X0-   [        U5      5      SS Q76 5      $ )aN  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     s1v LMM#a&%566==Qr);<LY3	*Hc*3==9HN!X&	
 ]]8>75>:12>	
 r   c                     [        U 5      n[        U5      [        SS5      :X  d   e[        U SS9n[        U5      [        SS5      :X  d   eg )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                     [        U 5      n[        U5      [        SS5      :X  d   e[        U SS9n[        U5      S:X  d   e[        U SS9n[        U5      S:X  d   eg )Nr4   r5   F
big_endianT*00000000013FF3333333333333400B333333333333r:   r;   s     r   test_dumps_endiannessrB   C   so    :F6?i<    :%0F6?JJJJ:$/F6?JJJJr   c                 <    [        U SS9nU[        SS5      :X  d   eg )NThexr4   r5   )r   r2   r;   s     r   test_dumps_hexrF   N   s$    :4(FYv'STTTTr   c                  f   [        [        S5      5      n [        U [        5      (       d   eU R                  S S  S/:X  d   e[        U 5      n[        U5      [        SS5      :X  d   e[        U SS9n[        U5      [        SS5      :X  d   e[        U SS	9n[        U5      [        SS
5      :X  d   eg )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ODdE"""";;q>j\)))4[F6?i<    4d+F6?iE    4e$F6?iE   r   c                 4    [        [        U SS9SS9U :X  d   eg )NTrD   )r
   r   )r   s    r   test_loads_hexrO   i   s    zt,$7:EEEr   c                     UR                  S5      n[        US5       n[        X5        S S S 5        [        US5       n[        U5      nS S S 5        U W:X  d   eg ! , (       d  f       N7= f! , (       d  f       N(= f)Ntest.wkbwbrbjoinopenr   r	   r   tmpdirfilefile_pointerrestoreds        r   test_dump_load_binaryr\   m   sd    ;;z"D	dD	\Z& 
	dD	\% 
 !!! 
			s   AA,
A),
A:c                     UR                  S5      n[        US5       n[        XSS9  S S S 5        [        U5       n[        USS9nS S S 5        U W:X  d   eg ! , (       d  f       N5= f! , (       d  f       N(= f)NrQ   wTrD   rT   rW   s        r   test_dump_load_hexr_   w   sb    ;;z"D	dCLZ40 
	d|$/ 
 !!! 
	s   AA)
A&)
A7c                 P   UR                  S5      n[        US5       n[        XSS9  SSS5        [        R                  " [
        5         [        US5       n[        U5        SSS5        SSS5        g! , (       d  f       NR= f! , (       d  f       N(= f! , (       d  f       g= f)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      su     ;;z"D	dCLZ40 
 
y	!$  
"	! 
  
"	!s/   A5BB$B5
B
B	B
B%c                    UR                  S5      n[        US5       n[        X5        SSS5        [        R                  S:X  a'  [        U5       n[        USS9nSSS5        U W:w  d   eg[        R                  " [        [        45         [        U5       n[        USS9  SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       Np= f! , (       d  f       N9= f! , (       d  f       g= f)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$Z<Ld3H X%%%	*,>?	@$Z<4(  
A	@ 
	 Z Z 
A	@s;   B5CC(C$C(5
C
C
C%	!C((
C6c                      [         R                  " S5      n [        U SS9nUS S S:X  d   e[        R                  " SUSS  5      n[        U5      S:X  d   e[        S U 5       5      (       d   eg )	NzPOINT EMPTYFr?   is      z<2dr"   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   )mathisnan).0vals     r   	<genexpr>#test_point_empty.<locals>.<genexpr>   s     1&3tzz#&s   #%)r   r
   r   r)   r*   lenall)gr<   rK   s      r   test_point_emptyrv      st    		- A1'F (F6666]]5&"23Fv;!1&11111r   c                  h    [         R                  " S5      n U R                  [        SS5      :X  d   eg )NzPOINT Z EMPTYBIddd:0101000080000000000000F87F000000000000F87F000000000000F87F)r   r
   wkb_hexr2   )ru   s    r   test_point_z_emptyr{      s3    		/"A99	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   rv   r{   r   r   r   <module>r      s       
   " 8 0 0 h  ;#:KU
,F""  )&2r   