
    _ h0                         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     ~/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/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    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_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z400088|?&&q(3z400088|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99}99}yyyyyy IJ
U

 I

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

J$5$56 	/DAqa) /B&&r2./	/ 

J$5$56 	/DAqa) /B&&r2./	/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$   =>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                 ~    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    ooh'9:B?)*zz#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    =>>?oob%(zz|t###zz#a oob%T:zz|rAv%%%zz#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nnR zz"~~nnRAs+FGzz#

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

CJJ/ 	 DAqa)  BRx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    nnX&89:)*zz#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   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#   r>   r   rC   r   )r   rc   rx   re   s       r   	test_skewz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                 |    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    mmH%789)*zz#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
 $'mmBfuV}=Qx4Qx5   T***"r'B37+,mmBfuV}$OQx27"""QxB3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  iz-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  $zz"~~  S#s3FGzz#

CJJ/ 	 DAqa)  BRxx 	    bs3Gzz#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(zz#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+   