
    9i0                         S SK r S SKJ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\ R                  5      r " S S	\ R                  5      rg)
    N)pi)affinity)Point)loadsc                   ,    \ rS rSrS rS rS rS rSrg)AffineTestCase   c                    [        S5      n[        R                  " [        5         [        R
                  " US 5        S S S 5        [        R                  " [        5         [        R
                  " U/ SQ5        S S S 5        [        R                  " [        5         [        R
                  " S / SQ5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N\= f! , (       d  f       g = f)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     b/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/shapely/tests/legacy/test_affinity.pytest_affine_params!AffineTestCase.test_affine_params   s    67]]9%%%a. & ]]:&%%a)DE ' ]]>*%%d,>? +* &% '& +*s#   B? CC!?
C
C!
C/c                   ^	^
 Sm	Sm
[        S5      n[        R                  " UT	5      R                  (       d   eSU	U
4S jjn[        S5      n[        S5      nU" X45        [        S5      n[        S5      nU" XV5        [        S	5      n[        S
5      nU" Xx5        U" [        S5      5        U" [        S5      5        U" [        S5      5        U" [        S5      5        U" [        S5      5        g )N)r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   zMULTIPOLYGON EMPTYc                 b  > U R                   (       a   e[        R                  " U T5      nUR                   (       a   eU R                  U5      (       d   eUbV  UR                   (       d   e[        R                  " UT5      nUR                   (       d   eUR                  U5      (       d   eg g N)has_zr   r   equals)g2g3a2a3matrix2dmatrix3ds       r   	test_geom8AffineTestCase.test_affine_geom_types.<locals>.test_geom"   s    xx<**2x8Bxx<99R== =~xxx..r8<xxxyy}}$}	     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_types%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                 @   [        S5      n[        S5      nSn[        R                  " X5      nUR                  US5      (       d   eUR                  (       a   eSn[        R                  " X5      nUR                  US5      (       d   eUR                  (       a   eg )Nr   )LINESTRING(-0.2 14.35, -0.2 11.6, 1 11.6)r   r   r         @ffffff@ư>)r   r   r   r   r<   r   r   r   
   r=   r>   d   )r   r   r   equals_exactr$   )r   r   
expected2dr*   r(   r+   r)   s          r   test_affine_2dAffineTestCase.test_affine_2dS   s    67IJ
*&&q3z4000088|?&&q3z4000088|8r.   c                 ^   [        S5      n[        S5      nSnSn[        R                  " X5      n[        R                  " X5      n[        R                  " X#5      n[        R                  " X$5      nUR                  (       a   eUR                  (       a   eUR                  (       d   eUR                  (       d   e[        S5      n	[        S5      n
[        S5      nUR	                  U	S5      (       d   eUR	                  U	S5      (       d   e[        UR                  UR                  5       H*  u  p[        X5       H  u  pU R                  X5        M     M,     [        UR                  U
R                  5       H*  u  p[        X5       H  u  pU R                  X5        M     M,     g )	Nr   z1LINESTRING(2.4 4.1 100.2, 2.4 3 132.8, 3 3 128.6)r;   )r   r   r   r   r<   r   r   r   gׁ?r=   r>   rA   r:   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$   rB   zipcoordsassertAlmostEqual)r   r&   r'   r*   r+   a22a23a32a33rC   
expected3d
expected32aeapeps                   r   test_affine_3dAffineTestCase.test_affine_3da   sg   78IJ*C''5''5''5''599}99}yyyyyy IJ
U

 I

 
D1111
D1111

J$5$56DAa)&&r. $ 7 

J$5$56DAa)&&r. $ 7r.    N)	__name__
__module____qualname____firstlineno__r   r7   rD   rT   __static_attributes__rV   r.   r   r   r      s    
@8
t!/r.   r   c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TransformOpsTestCase   c                    [        S5      n[        R                  " US5      n[        S5      nUR                  U5      (       d   e[        R                  " USSS9nUR                  U5      (       d   e[        R                  " U[        * S-  SS9n[        S	5      nUR                  U5      (       d   e[        R                  " USS
S9n[        S5      nUR                  U5      (       d   e[        R                  " USUR
                  S   S9n[        S5      nUR                  U5      (       d   e[        R                  " US[        SS5      S9n[        S5      nUR                  U5      (       d   eg )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rf   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   rH   r   )r   lsrlselss       r   test_rotate TransformOpsTestCase.test_rotate   s0   =>oob"%>?zz#oo2RAzz#oob2#'t<>?zz# oob"Z8DEzz#oob"RYYq\:>?zz#oob"U1a[9ABzz#r.   c                     [         R                  " [        S5      S5      n[        S5      nUR                  U5      (       d   eg )NLINESTRING EMPTYra   )r   rk   r   r%   )r   rm   rn   s      r   test_rotate_empty&TransformOpsTestCase.test_rotate_empty   s5    ooh'9:B?)*zz#r.   c                    [        S5      n[        S5      n[        R                  " S5      n[        R                  " X5      nUR                  5       S:X  d   eUR                  U5      (       d   e[        R                  " [        S-  5      n[        R                  " XSS9nUR                  5       [        S-  :X  d   eUR                  U5      (       d   eg )Nr`   rb   g     V@r   Trg   )r   nparrayr   rk   itemr%   r   )r   rl   rn   thetarm   s        r   test_rotate_angle_array,TransformOpsTestCase.test_rotate_angle_array   s    =>>?oob(zz|t###zz#a oobT:zz|rAv%%%zz#r.   c                    [        S5      n[        R                  " U5      nUR                  U5      (       d   e[        R                  " USSS5      n[        S5      nUR                  U5      (       d   e[	        UR
                  UR
                  5       H*  u  pE[	        XE5       H  u  pgU R                  Xg5        M     M,     [        R                  " USSSSS9nUR                  U5      (       d   e[        R                  " USSSSS	9n[        S
5      nUR                  U5      (       d   e[        R                  " USSSUR
                  S   S	9n[        S5      nUR                  U5      (       d   e[        R                  " USSS[        SSS5      S	9n[        S5      nUR                  U5      (       d   e[	        UR
                  UR
                  5       H   u  pE[	        XE5       H  u  pgXg:X  a  M   e   M"     g )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)rc   )rd   xfactyfactzfactrf   ri   rj   z4LINESTRING(228.75 537.5, 228.75 237.5, 348.75 237.5)r   z%LINESTRING(240 600, 240 300, 360 300)rA      i  z1LINESTRING(380 800 505, 380 500 515, 500 500 510))r   r   scaler%   rG   rH   assertEqualr   )r   rl   slsrn   rP   brR   bps           r   
test_scaleTransformOpsTestCase.test_scale   s   FGnnR zz"~~~nnRAs+FGzz#

CJJ/DAa)  ( $ 0 nn"AQc(Szz# nnRAs:>MNzz#nnRAs299Q<@>?zz#nnRAs5c43HIJKzz#

CJJ/DAa)xx $ 0r.   c                     [         R                  " [        S5      5      n[        S5      nUR                  U5      (       d   eg Nrr   )r   r   r   r%   r   r   rn   s      r   test_scale_empty%TransformOpsTestCase.test_scale_empty   s3    nnX&89:)*zz#r.   c           	      ^   [        S5      n[        R                  " U5      nUR                  U5      (       d   e[        R                  " USS5      n[        S5      nUR	                  US5      (       d   e[        R                  " U[
        S-  [
        * S-  SS	9nUR	                  US5      (       d   e[        R                  " USSS
SS9nUR	                  US5      (       d   e[        R                  " USSSS9n[        S5      nUR	                  US5      (       d   e[        R                  " USSUR                  S   S9n[        S5      nUR	                  US5      (       d   e[        R                  " USS[        SS5      S9n[        S5      nUR	                  US5      (       d   eg )Nr}      i~LINESTRING (253.39745962155615 417.3205080756888, 226.60254037844385 317.3205080756888, 286.60254037844385 282.67949192431126)r?   r	   r   Trg   rc   F)rd   xsysrf   rh   ri   rj   zLINESTRING(258.42150697963973 406.49519052838332, 231.6265877365273980 306.4951905283833185, 291.6265877365274264 271.8541743770057337)r   zGLINESTRING(266.7949192431123038 400, 240 300, 300 265.3589838486224153)r   zLINESTRING(347.179676972449101 261.435935394489832, 320.3847577293367976 161.4359353944898317, 380.3847577293367976 126.7949192431122754))r   r   skewr%   rB   r   rH   r   )r   rl   r   rn   s       r   	test_skewTransformOpsTestCase.test_skew   s   FGmmBzz"~~~mmBC(5

 T****mmBR"qdCT****mms8QVWT**** mmBC
;9

 T****mmBC		!=U
 T****mmBCa<9

 T****r.   c                     [         R                  " [        S5      5      n[        S5      nUR                  U5      (       d   eg r   )r   r   r   r%   r   s      r   test_skew_empty$TransformOpsTestCase.test_skew_empty  s3    mmH%789)*zz#r.   c                    [        S5      n[        S5      n[        R                  " SS/5      n[        R                  " XS   US   5      nUS   S:X  d   eUS   S:X  d   eUR                  US	5      (       d   e[        R                  " [        S
-  [        * S-  /5      n[        R                  " XS   US   SS9nUS   [        S
-  :X  d   eUS   [        * S-  :X  d   eUR                  US	5      (       d   eg )Nr}   r   g      .@g      >)r   .)r   .r   r   r?   r	   r   Trg   )r   rv   rw   r   r   rB   r   )r   rl   rn   xs_ysr   s        r   test_skew_xs_ys_array*TransformOpsTestCase.test_skew_xs_ys_array  s   FG5
 $'mmBfuV}=Qx4Qx5   T****"r'B37+,mmBfuV}$OQx27"""QxB37"""T****r.   c                    [        S5      n[        R                  " U5      nUR                  U5      (       d   e[        R                  " USSS5      n[        S5      nUR                  U5      (       d   e[	        UR
                  UR
                  5       H   u  pE[	        XE5       H  u  pgXg:X  a  M   e   M"     [        R                  " USSSS9nUR                  U5      (       d   eg )Nr}   rA   i  iz-LINESTRING(340 800 0, 340 700 20, 400 700 10))rd   xoffyoffzoff)r   r   	translater%   rG   rH   )r   rl   tlsrn   rP   r   rR   r   s           r   test_translate#TransformOpsTestCase.test_translate  s    FG  $zz"~~~  S#s3FGzz#

CJJ/DAa)xx $ 0   bs3Gzz#r.   c                     [         R                  " [        S5      5      n[        S5      nU R                  UR	                  U5      5        UR	                  U5      (       d   eg r   )r   r   r   
assertTruer%   )r   r   rn   s      r   test_translate_empty)TransformOpsTestCase.test_translate_empty0  sI      *<!=>)*

3(zz#r.   rV   N)rW   rX   rY   rZ   ro   rs   rz   r   r   r   r   r   r   r   r[   rV   r.   r   r]   r]      s6    6
  D
)+V
+("r.   r]   )unittestmathr   numpyrv   r   shapelyr   shapely.geometryr   shapely.wktr   r   TestCaser   r]   rV   r.   r   <module>r      sC         " )v/X&& v/ro8,, or.   