
    _ 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y)    N)wktPoint)shapely20_todo)dumpdumpsloadloadsmodule)scopec                      t        dd      S )N333333?333333@r        y/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/legacy/test_wkb.py
some_pointr      s    c?r   c                 f    t        j                  |       j                         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        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     s1v LMM#a&%566==Qr);<LY3	*Hc*3==9H8sN!X&	
 ]]8c>75>:12>	
 r   c                     t        |       }t        |      t        dd      k(  sJ t        | d      }t        |      t        dd      k(  sJ y )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 y )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                 @    t        | d      }|t        dd      k(  sJ y )NThexr4   r5   )r   r2   r;   s     r   test_dumps_hexrF   N   s$    :4(FYv'S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 y )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                 >    t        t        | d      d      | k(  sJ y )NTrD   )r
   r   )r   s    r   test_loads_hexrO   i   s    zt,$7:EEEr   c                     |j                  d      }t        |d      5 }t        | |       d d d        t        |d      5 }t        |      }d d d        | k(  sJ y # 1 sw Y   1xY w# 1 sw Y   xY w)Ntest.wkbwbrbjoinopenr   r	   r   tmpdirfilefile_pointerrestoreds        r   test_dump_load_binaryr\   m   sv    ;;z"D	dD	 '\Z&'	dD	 &\%& !!!' '& &s   AA'A$'A0c                     |j                  d      }t        |d      5 }t        | |d       d d d        t        |      5 }t        |d      }d d d        | k(  sJ y # 1 sw Y   2xY w# 1 sw Y   xY w)NrQ   wTrD   rT   rW   s        r   test_dump_load_hexr_   w   sv    ;;z"D	dC 1LZ401	d 0|$/0 !!!1 10 0s   A A*A'*A3c                 8   |j                  d      }t        |d      5 }t        | |d       ddd       t        j                  t
              5  t        |d      5 }t        |       ddd       ddd       y# 1 sw Y   LxY w# 1 sw Y   xY w# 1 sw Y   yxY w)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      s     ;;z"D	dC 1LZ401 
y	! $ 		 1 1	 	 s/   A8BB'B8BB		BBc                    |j                  d      }t        |d      5 }t        | |       ddd       t        j                  dk(  r)t        |      5 }t        |d      }ddd       | k7  sJ yt        j                  t        t        f      5  t        |      5 }t        |d       ddd       ddd       y# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   *xY w# 1 sw Y   yxY w)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 	4<Ld3H	4X%%%	*,>?	@ )$Z 	)<4(	)) )' '	4 	4	) 	)) )s;   B9CCC(C9CCC	CC&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 y )	NzPOINT EMPTYFr?   is      z<2dr"   c              3   F   K   | ]  }t        j                  |        y wr   )mathisnan).0vals     r   	<genexpr>z#test_point_empty.<locals>.<genexpr>   s     13tzz#1s   !)r   r
   r   r)   r*   lenall)gr<   rK   s      r   test_point_emptyru      sq    		- A1'F (F6666]]5&"23Fv;!1&1111r   c                  d    t        j                  d      } | j                  t        dd      k(  sJ y )NzPOINT Z EMPTYBIddd:0101000080000000000000F87F000000000000F87F000000000000F87F)r   r
   wkb_hexr2   )rt   s    r   test_point_z_emptyrz      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   ru   rz   r   r   r   <module>r      s       
   " 8 0 0 h  ;#:KU
,F""  )&2r   