Ë
    ~ìqjÃ0  ã                   ó    — d dl Z d dlmZ d dlZd dlZd dlmZ d dlm	Z	 d dl
mZ  G d„ de j                  «      Z G d„ d	e j                  «      Zy)
é    N)Úpi)Úaffinity)ÚPoint)Úloadsc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚAffineTestCasec                 óº  — t        d«      }t        j                  t        «      5  t	        j
                  |d «       d d d «       t        j                  t        «      5  t	        j
                  |g d¢«       d d d «       t        j                  t        «      5  t	        j
                  d g d¢«       d d d «       y # 1 sw Y   Œ~xY w# 1 sw Y   ŒPxY w# 1 sw Y   y xY w)NúLINESTRING(2.4 4.1, 2.4 3, 3 3))	é   é   é   é   é   é   é   é   é	   )r   r   r   r   r   r   )Úload_wktÚpytestÚraisesÚ	TypeErrorr   Úaffine_transformÚ
ValueErrorÚAttributeError)ÚselfÚgs     ú^/var/www/html/truck-me/venv/lib/python3.12/site-packages/shapely/tests/legacy/test_affinity.pyÚtest_affine_paramsz!AffineTestCase.test_affine_params   s´   € ÜÐ6Ó7ˆä�]‰]œ9Ó%ñ 	/Ü×%Ñ% a¨Ô.÷	/ô �]‰]œ:Ó&ñ 	FÜ×%Ñ% aÒ)DÔE÷	Fô �]‰]œ>Ó*ñ 	@Ü×%Ñ% dÒ,>Ô?÷	@ð 	@÷	/ð 	/ú÷	Fð 	Fú÷	@ð 	@ús#   ¥B9ÁCÂCÂ9CÃCÃCc                 óÜ  ‡	‡
— dŠ	dŠ
t        d«      }t        j                  |‰	«      j                  sJ ‚dˆ	ˆ
fd„	}t        d«      }t        d«      } |||«       t        d«      }t        d«      } |||«       t        d	«      }t        d
«      } |||«        |t        d«      «        |t        d«      «        |t        d«      «        |t        d«      «        |t        d«      «       y )N)r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   zMULTIPOLYGON EMPTYc                 ó   •— | j                   rJ ‚t        j                  | ‰«      }|j                   rJ ‚| j                  |«      sJ ‚|�F|j                   sJ ‚t        j                  |‰«      }|j                   sJ ‚|j                  |«      sJ ‚y y ©N)Úhas_zr   r   Úequals)Úg2Úg3Úa2Úa3Úmatrix2dÚmatrix3ds       €€r   Ú	test_geomz8AffineTestCase.test_affine_geom_types.<locals>.test_geom"   s   ø€ Ø—x’xÐ�<Ü×*Ñ*¨2¨xÓ8ˆBØ—x’xÐ�<Ø—9‘9˜R”=Ð �=Øˆ~Ø—x’x��xÜ×.Ñ.¨r°8Ó<�Ø—x’x��xØ—y‘y ”}Ð$‘}ð	 ó    zPOINT(12.3 45.6)zPOINT(12.3 45.6 7.89)z#LINESTRING(0.9 3.4, 0.7 2, 2.5 2.7)z/LINESTRING(0.9 3.4 3.3, 0.7 2 2.3, 2.5 2.7 5.5)z,LINEARRING(0.9 3.4, 0.7 2, 2.5 2.7, 0.9 3.4)z<LINEARRING(0.9 3.4 3.3, 0.7 2 2.3, 2.5 2.7 5.5, 0.9 3.4 3.3)zwPOLYGON((0.9 2.3, 0.5 1.1, 2.4 0.8, 0.9 2.3), (1.1 1.7, 0.9 1.3, 1.4 1.2, 1.1 1.7), (1.6 1.3, 1.7 1, 1.9 1.1, 1.6 1.3))z<MULTIPOINT ((-300 300), (700 300), (-800 -1100), (200 -300))zFMULTILINESTRING((0 0, -0.7 -0.7, 0.6 -1), (-0.5 0.5, 0.7 0.6, 0 -0.6))zjMULTIPOLYGON(((900 4300, -1100 -400, 900 -800, 900 4300)), ((1200 4300, 2300 4400, 1900 1000, 1200 4300)))zkGEOMETRYCOLLECTION(POINT(20 70), POLYGON((60 70, 13 35, 60 -30, 60 70)), LINESTRING(60 70, 50 100, 80 100))r!   )r   r   r   Úis_empty)r   Úempty2dr*   Úpt2dÚpt3dÚls2dÚls3dÚlr2dÚlr3dr(   r)   s            @@r   Útest_affine_geom_typesz%AffineTestCase.test_affine_geom_types   s	  ù€ à%ˆØ7ˆô Ð/Ó0ˆÜ×(Ñ(¨°(Ó;×DÒDÐDÐDö		%ô Ð*Ó+ˆÜÐ/Ó0ˆÙ�$˜ÔÜÐ=Ó>ˆÜÐIÓJˆÙ�$˜ÔÜÐFÓGˆÜÐVÓWˆÙ�$˜ÔÙÜð6óô	
ñ 	ÜÐSÓTô	
ñ 	ÜØXóô	
ñ
 	ÜðBóô	
ñ 	Üð6óõ	
r+   c                 ó  — t        d«      }t        d«      }d}t        j                  ||«      }|j                  |d«      sJ ‚|j                  rJ ‚d}t        j                  ||«      }|j                  |d«      sJ ‚|j                  rJ ‚y )Nr
   ú)LINESTRING(-0.2 14.35, -0.2 11.6, 1 11.6)©r   r   r   ç      @éûÿÿÿçffffff@ç�íµ ÷Æ°>)r   r   r   r   r8   r   r   r   é
   r9   r:   éd   )r   r   r   Úequals_exactr"   )r   r   Ú
expected2dr(   r&   r)   r'   s          r   Útest_affine_2dzAffineTestCase.test_affine_2dS   sˆ   € ÜÐ6Ó7ˆäÐIÓJˆ
Ø*ˆÜ×&Ñ& q¨(Ó3ˆØ�‰˜z¨4Ô0Ð0Ð0Ø—8’8Ðˆ|à?ˆÜ×&Ñ& q¨(Ó3ˆØ�‰˜z¨4Ô0Ð0Ð0Ø—8’8Ðˆ|�8r+   c                 ó"  — t        d«      }t        d«      }d}d}t        j                  ||«      }t        j                  ||«      }t        j                  ||«      }t        j                  ||«      }|j                  rJ ‚|j                  rJ ‚|j                  sJ ‚|j                  sJ ‚t        d«      }	t        d«      }
t        d«      }|j	                  |	d«      sJ ‚|j	                  |	d«      sJ ‚t        |j                  |j                  «      D ]+  \  }}t        ||«      D ]  \  }}| j                  ||«       Œ Œ- t        |j                  |
j                  «      D ]+  \  }}t        ||«      D ]  \  }}| j                  ||«       Œ Œ- y )	Nr
   z1LINESTRING(2.4 4.1 100.2, 2.4 3 132.8, 3 3 128.6)r7   )r   r   r   r   r8   r   r   r   gý‡ôÛ×�Ó?r9   r:   r=   r6   zGLINESTRING(-0.2 14.35 130.54096, -0.2 11.6 140.47744, 1 11.6 139.19728)z;LINESTRING(-0.2 14.35 100.2, -0.2 11.6 132.8, 1 11.6 128.6)r;   )r   r   r   r"   r>   ÚzipÚcoordsÚassertAlmostEqual)r   r$   r%   r(   r)   Úa22Úa23Úa32Úa33r?   Ú
expected3dÚ
expected32ÚaÚeÚapÚeps                   r   Útest_affine_3dzAffineTestCase.test_affine_3da   s�  € ÜÐ7Ó8ˆÜÐIÓJˆà*ˆØCˆä×'Ñ'¨¨HÓ5ˆÜ×'Ñ'¨¨HÓ5ˆÜ×'Ñ'¨¨HÓ5ˆÜ×'Ñ'¨¨HÓ5ˆà—9’9Ðˆ}Ø—9’9Ðˆ}Ø�yŠyÐˆyØ�yŠyÐˆyô ÐIÓJˆ
ÜØUó
ˆ
ô ØIó
ˆ
ð ×Ñ 
¨DÔ1Ð1Ð1Ø×Ñ 
¨DÔ1Ð1Ð1ä˜Ÿ
™
 J×$5Ñ$5Ó6ò 	/‰DˆAˆqÜ˜a ›)ò /‘��BØ×&Ñ& r¨2Õ.ñ/ð	/ô ˜Ÿ
™
 J×$5Ñ$5Ó6ò 	/‰DˆAˆqÜ˜a ›)ò /‘��BØ×&Ñ& r¨2Õ.ñ/ñ	/r+   N)Ú__name__Ú
__module__Ú__qualname__r   r4   r@   rO   © r+   r   r   r      s   „ ò
@ò8
òtó!/r+   r   c                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚTransformOpsTestCasec                 óÆ  — t        d«      }t        j                  |d«      }t        d«      }|j                  |«      sJ ‚t        j                  |dd¬«      }|j                  |«      sJ ‚t        j                  |t         dz  d¬«      }t        d	«      }|j                  |«      sJ ‚t        j                  |dd
¬«      }t        d«      }|j                  |«      sJ ‚t        j                  |d|j
                  d   ¬«      }t        d«      }|j                  |«      sJ ‚t        j                  |dt        dd«      ¬«      }t        d«      }|j                  |«      sJ ‚y )Nú%LINESTRING(240 400, 240 300, 300 300)éZ   ú%LINESTRING(220 320, 320 320, 320 380)Úcenter)ÚgeomÚangleÚoriginr   T©Úuse_radiansz%LINESTRING(320 380, 220 380, 220 320)Úcentroid©r]   z+LINESTRING(182.5 320, 282.5 320, 282.5 380)r   z%LINESTRING(140 300, 240 300, 240 360)r   z(LINESTRING(-400 240, -300 240, -300 300))r   r   Úrotater#   r   rC   r   )r   ÚlsÚrlsÚelss       r   Útest_rotatez TransformOpsTestCase.test_rotate†   s$  € ÜÐ=Ó>ˆä�o‰o˜b "Ó%ˆÜÐ>Ó?ˆØ�z‰z˜#ŒÐˆä�o‰o 2¨R¸ÔAˆØ�z‰z˜#ŒÐˆä�o‰o˜b¤2 #¨¡'°tÔ<ˆÜÐ>Ó?ˆØ�z‰z˜#ŒÐˆô �o‰o˜b "¨ZÔ8ˆÜÐDÓEˆØ�z‰z˜#ŒÐˆä�o‰o˜b "¨R¯Y©Y°q©\Ô:ˆÜÐ>Ó?ˆØ�z‰z˜#ŒÐˆä�o‰o˜b "¬U°1°a«[Ô9ˆÜÐAÓBˆØ�z‰z˜#ŒÐ‰r+   c                 ó~   — t        j                  t        d«      d«      }t        d«      }|j                  |«      sJ ‚y )NúLINESTRING EMPTYrX   )r   rb   r   r#   )r   rd   re   s      r   Útest_rotate_emptyz&TransformOpsTestCase.test_rotate_empty¡   s3   € Ü�o‰oœhÐ'9Ó:¸BÓ?ˆÜÐ)Ó*ˆØ�z‰z˜#ŒÐ‰r+   c                 óœ  — t        d«      }t        d«      }t        j                  d«      }t        j                  ||«      }|j                  «       dk(  sJ ‚|j                  |«      sJ ‚t        j                  t        dz  «      }t        j                  ||d¬«      }|j                  «       t        dz  k(  sJ ‚|j                  |«      sJ ‚y )NrW   rY   g     €V@r   Tr^   )r   ÚnpÚarrayr   rb   Úitemr#   r   )r   rc   re   Úthetard   s        r   Útest_rotate_angle_arrayz,TransformOpsTestCase.test_rotate_angle_array¦   s¥   € ÜÐ=Ó>ˆÜÐ>Ó?ˆä—‘˜“ˆÜ�o‰o˜b %Ó(ˆØ�z‰z‹|˜tÒ#Ð#Ð#Ø�z‰z˜#ŒÐˆä—‘œ˜a™Ó ˆÜ�o‰o˜b %°TÔ:ˆØ�z‰z‹|œr A™vÒ%Ð%Ð%Ø�z‰z˜#ŒÐ‰r+   c                 óÒ  — t        d«      }t        j                  |«      }|j                  |«      sJ ‚t        j                  |ddd«      }t        d«      }|j                  |«      sJ ‚t	        |j
                  |j
                  «      D ]+  \  }}t	        ||«      D ]  \  }}| j                  ||«       Œ Œ- t        j                  |dddd¬«      }|j                  |«      sJ ‚t        j                  |dddd¬	«      }t        d
«      }|j                  |«      sJ ‚t        j                  |ddd|j
                  d   ¬	«      }t        d«      }|j                  |«      sJ ‚t        j                  |dddt        ddd«      ¬	«      }t        d«      }|j                  |«      sJ ‚t	        |j
                  |j
                  «      D ]   \  }}t	        ||«      D ]  \  }}||k(  rŒJ ‚ Œ" y )Nú.LINESTRING(240 400 10, 240 300 30, 300 300 20)r   r   g      à?z-LINESTRING(210 500 5, 210 200 15, 330 200 10)rZ   )r[   ÚxfactÚyfactÚzfactr]   r`   ra   z4LINESTRING(228.75 537.5, 228.75 237.5, 348.75 237.5)r   z%LINESTRING(240 600, 240 300, 360 300)r=   éÈ   iè  z1LINESTRING(380 800 505, 380 500 515, 500 500 510))r   r   Úscaler#   rB   rC   ÚassertEqualr   )r   rc   Úslsre   rK   ÚbrM   Úbps           r   Ú
test_scalezTransformOpsTestCase.test_scale´   s¹  € ÜÐFÓGˆä�n‰n˜RÓ ˆØ�z‰z˜"Œ~Ðˆ~ä�n‰n˜R  A sÓ+ˆÜÐFÓGˆØ�z‰z˜#ŒÐˆä˜Ÿ
™
 C§J¡JÓ/ò 	)‰DˆAˆqÜ˜a ›)ò )‘��BØ× Ñ   RÕ(ñ)ð	)ô �n‰n "¨A°Q¸cÈ(ÔSˆØ�z‰z˜#ŒÐˆô �n‰n˜R  A s°:Ô>ˆÜÐMÓNˆØ�z‰z˜#ŒÐˆä�n‰n˜R  A s°2·9±9¸Q±<Ô@ˆÜÐ>Ó?ˆØ�z‰z˜#ŒÐˆä�n‰n˜R  A s´5¸¸cÀ4Ó3HÔIˆÜÐJÓKˆØ�z‰z˜#ŒÐˆä˜Ÿ
™
 C§J¡JÓ/ò 	 ‰DˆAˆqÜ˜a ›)ò  ‘��BØ˜R“x��xñ ñ	 r+   c                 ó|   — t        j                  t        d«      «      }t        d«      }|j                  |«      sJ ‚y ©Nrh   )r   rv   r   r#   ©r   rx   re   s      r   Útest_scale_emptyz%TransformOpsTestCase.test_scale_emptyÖ   s1   € Ü�n‰nœXÐ&8Ó9Ó:ˆÜÐ)Ó*ˆØ�z‰z˜#ŒÐ‰r+   c           	      ó(  — t        d«      }t        j                  |«      }|j                  |«      sJ ‚t        j                  |dd«      }t        d«      }|j	                  |d«      sJ ‚t        j                  |t
        dz  t
         dz  d¬	«      }|j	                  |d«      sJ ‚t        j                  |ddd
d¬«      }|j	                  |d«      sJ ‚t        j                  |ddd¬«      }t        d«      }|j	                  |d«      sJ ‚t        j                  |dd|j                  d   ¬«      }t        d«      }|j	                  |d«      sJ ‚t        j                  |ddt        dd«      ¬«      }t        d«      }|j	                  |d«      sJ ‚y )Nrq   é   iâÿÿÿú~LINESTRING (253.39745962155615 417.3205080756888, 226.60254037844385 317.3205080756888, 286.60254037844385 282.67949192431126)r;   é   r   Tr^   rZ   F)r[   ÚxsÚysr]   r_   r`   ra   z‡LINESTRING(258.42150697963973 406.49519052838332, 231.6265877365273980 306.4951905283833185, 291.6265877365274264 271.8541743770057337)r   zGLINESTRING(266.7949192431123038 400, 240 300, 300 265.3589838486224153)r   z‰LINESTRING(347.179676972449101 261.435935394489832, 320.3847577293367976 161.4359353944898317, 380.3847577293367976 126.7949192431122754))r   r   Úskewr#   r>   r   rC   r   )r   rc   rx   re   s       r   Ú	test_skewzTransformOpsTestCase.test_skewÛ   s„  € ÜÐFÓGˆä�m‰m˜BÓˆØ�z‰z˜"Œ~Ðˆ~ä�m‰m˜B  CÓ(ˆÜð5ó
ˆð
 ×Ñ  TÔ*Ð*Ð*ä�m‰m˜B¤ R¡¬"¨¨q©¸dÔCˆØ×Ñ  TÔ*Ð*Ð*ä�m‰m ¨¨s¸8ÐQVÔWˆØ×Ñ  TÔ*Ð*Ð*ô �m‰m˜B  C°
Ô;ˆÜð9ó
ˆð
 ×Ñ  TÔ*Ð*Ð*ä�m‰m˜B  C°·	±	¸!±Ô=ˆÜØUó
ˆð ×Ñ  TÔ*Ð*Ð*ä�m‰m˜B  C´°a¸³Ô<ˆÜð9ó
ˆð
 ×Ñ  TÔ*Ð*Ñ*r+   c                 ó|   — t        j                  t        d«      «      }t        d«      }|j                  |«      sJ ‚y r}   )r   r†   r   r#   r~   s      r   Útest_skew_emptyz$TransformOpsTestCase.test_skew_empty  s1   € Ü�m‰mœHÐ%7Ó8Ó9ˆÜÐ)Ó*ˆØ�z‰z˜#ŒÐ‰r+   c                 óà  — t        d«      }t        d«      }t        j                  ddg«      }t        j                  ||d   |d   «      }|d   dk(  sJ ‚|d   dk(  sJ ‚|j                  |d	«      sJ ‚t        j                  t        d
z  t         dz  g«      }t        j                  ||d   |d   d¬«      }|d   t        d
z  k(  sJ ‚|d   t         dz  k(  sJ ‚|j                  |d	«      sJ ‚y )Nrq   r‚   g      .@g      >À)r   .)r   .r   r   r;   rƒ   r   Tr^   )r   rk   rl   r   r†   r>   r   )r   rc   re   Úxs_ysrx   s        r   Útest_skew_xs_ys_arrayz*TransformOpsTestCase.test_skew_xs_ys_array  s  € ÜÐFÓGˆÜð5ó
ˆô —‘˜$ ˜Ó'ˆÜ�m‰m˜B  f¡¨u°V©}Ó=ˆØ�Q‰x˜4ÒÐÐØ�Q‰x˜5Ò Ð Ð Ø×Ñ  TÔ*Ð*Ð*ä—‘œ"˜r™'¤B 3¨¡7Ð+Ó,ˆÜ�m‰m˜B  f¡¨u°V©}È$ÔOˆØ�Q‰xœ2 ™7Ò"Ð"Ð"Ø�Q‰xœB˜3 ™7Ò"Ð"Ð"Ø×Ñ  TÔ*Ð*Ñ*r+   c                 ó´  — t        d«      }t        j                  |«      }|j                  |«      sJ ‚t        j                  |ddd«      }t        d«      }|j                  |«      sJ ‚t	        |j
                  |j
                  «      D ]   \  }}t	        ||«      D ]  \  }}||k(  rŒJ ‚ Œ" t        j                  |ddd¬«      }|j                  |«      sJ ‚y )Nrq   r=   i�  iöÿÿÿz-LINESTRING(340 800 0, 340 700 20, 400 700 10))r[   ÚxoffÚyoffÚzoff)r   r   Ú	translater#   rB   rC   )r   rc   Útlsre   rK   ry   rM   rz   s           r   Útest_translatez#TransformOpsTestCase.test_translate  sÌ   € ÜÐFÓGˆä× Ñ  Ó$ˆØ�z‰z˜"Œ~Ðˆ~ä× Ñ   S¨#¨sÓ3ˆÜÐFÓGˆØ�z‰z˜#ŒÐˆä˜Ÿ
™
 C§J¡JÓ/ò 	 ‰DˆAˆqÜ˜a ›)ò  ‘��BØ˜R“x��xñ ð	 ô × Ñ  b¨s¸À3ÔGˆØ�z‰z˜#ŒÐ‰r+   c                 ó¼   — t        j                  t        d«      «      }t        d«      }| j                  |j	                  |«      «       |j	                  |«      sJ ‚y r}   )r   r‘   r   Ú
assertTruer#   )r   r’   re   s      r   Útest_translate_emptyz)TransformOpsTestCase.test_translate_empty0  sG   € Ü× Ñ ¤Ð*<Ó!=Ó>ˆÜÐ)Ó*ˆØ�‰˜Ÿ
™
 3›Ô(Ø�z‰z˜#ŒÐ‰r+   N)rP   rQ   rR   rf   ri   ro   r{   r   r‡   r‰   rŒ   r“   r–   rS   r+   r   rU   rU   …   s6   „ òò6ò
ò  òDò
)+òVò
+ò(ó"r+   rU   )ÚunittestÚmathr   Únumpyrk   r   Úshapelyr   Úshapely.geometryr   Úshapely.wktr   r   ÚTestCaser   rU   rS   r+   r   ú<module>rž      sC   ðÛ Ý ã Û å Ý "Ý )ôv/�X×&Ñ&ô v/ôro˜8×,Ñ,õ or+   