Ë
    7^(h¦”  ã                   ó˜  — d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZm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mZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z( d dl)m*Z+ d dl,m-Z- d dl.m/Z/m0Z0  e
dd¬«      Z1 e
dd¬«      Z2 e
dd¬«      Z3 e
dd¬«      Z4 e
dd¬«      Z5 e
dd¬«      Z6 e
dd¬«      Z7 edd¬«      \  Z8Z9 edd¬«      Z:d„ Z;d„ Z<d„ Z=d„ Z>d„ Z?d„ Z@d „ ZAd!„ ZBd"„ ZCd#„ ZDd$„ ZEd%„ ZFd&„ ZGd'„ ZHd(„ ZId)„ ZJd*„ ZKd+„ ZLd,„ ZMd-„ ZNd.„ ZOd/„ ZPd0„ ZQd1„ ZRd2„ ZSd3„ ZTd4„ ZUd5„ ZVd6„ ZWd7„ ZXd8„ ZYd9„ ZZd:„ Z[d;„ Z\d<„ Z]d=„ Z^d>„ Z_y?)@é    )ÚFloatÚRationalÚooÚpi)ÚEq)ÚS)ÚSymbolÚsymbols)Úsqrt)ÚacosÚcosÚsin)ÚEmptySet)Úsimplify)Útan)ÚCircleÚGeometryErrorÚLineÚPointÚRayÚSegmentÚTriangleÚintersectionÚPoint3DÚLine3DÚRay3DÚ	Segment3DÚPoint2DÚLine2DÚPlane)ÚUndecidable)Ú_asa)Úcartes)ÚraisesÚwarnsÚxT©ÚrealÚyÚzÚkÚx1Úy1Útúa,bÚmc                  ó¦  ‡ ‡‡‡— ddl mŠmŠmŠ mŠ t        d‰z  ‰z   dz   «      t        t        dd«      t        dd«      «      k(  sJ ‚t        d‰z  d‰z  z   dz   «      t        t        dt        d	d«      «      t        dt        d
d«      «      «      k(  sJ ‚t        d‰ z  ‰z   dz   dd¬«      t        t        dd«      t        dd«      «      k(  sJ ‚t        d‰z  ‰z   «      t        t        dd«      t        dd«      «      k(  sJ ‚t        ‰‰z   «      t        t        dd«      t        dd	«      «      k(  sJ ‚t        t        d‰ z  ‰z   d«      d‰¬«      t        t        dd«      t        dd«      «      k(  sJ ‚t        ‰dz
  «      t        t        dd«      t        dd«      «      k(  sJ ‚t        d‰z  dz
  ‰¬«      t        t        dd«      t        dd«      «      k(  sJ ‚t        ‰«      t        t        dd«      t        dd«      «      k(  sJ ‚t        d‰z  ‰¬«      t        t        dd«      t        dd«      «      k(  sJ ‚t        ‰‰¬«      t        t        dd«      t        dd«      «      k(  sJ ‚t        t        ˆˆfd„«       t        t        ˆ ˆfd„«       t        t        ˆˆfd„«       t        t        ˆ ˆfd„«       t        t        ˆˆfd„«       y )Nr   )r&   r)   ÚaÚbé   é   iîÿÿÿé   iëÿÿÿé   éÿÿÿÿéüÿÿÿr2   r3   ©r&   r)   éýÿÿÿé   )r)   )r&   c                  ó    •— t        ‰ ‰z  «      S ©N©r   r:   s   €€ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/geometry/tests/test_line.pyú<lambda>z+test_object_from_equation.<locals>.<lambda>/   ó   ø€ œt A¨¡E›{€ ó    c                  ó&   •— t        ‰ ‰z  dd¬«      S ©Nr2   r3   r:   r?   ©r2   r3   s   €€r@   rA   z+test_object_from_equation.<locals>.<lambda>0   ó   ø€ œt A¨¡E¨S°CÔ8€ rC   c                  ó    •— t        ‰‰ z  «      S r>   r?   r:   s   €€r@   rA   z+test_object_from_equation.<locals>.<lambda>1   rB   rC   c                  ó&   •— t        ‰‰ z  dd¬«      S rE   r?   rF   s   €€r@   rA   z+test_object_from_equation.<locals>.<lambda>2   rG   rC   c                  ó,   •— t        ‰ dz   dz  ‰z   «      S )Nr6   r<   r?   r:   s   €€r@   rA   z+test_object_from_equation.<locals>.<lambda>3   s   ø€ œt Q¨¡U¨Q¡J°¡NÓ3€ rC   )Ú	sympy.abcr&   r)   r2   r3   r   r   r   r   r   r$   Ú
ValueError)r2   r3   r&   r)   s   @@@@r@   Útest_object_from_equationrM      sl  û€ ß$Ó$Ü��!‘�a‘˜"‘Ó¤¬°°3«¼ÀÀC»Ó!IÒIÐIÐIÜ��!‘�a˜!‘e‘˜a‘Ó ¤FÜ�”8˜B “?Ó#¤W¨Q´¸¸Q³Ó%@ó%Bò Bð Bð Bä��!‘�a‘˜"‘  sÔ+¬vÜ��3‹œ  C›ó0*ò *ð *ð *ä��!‘�a‘‹=œF¤7¨1¨a£=´'¸!¸R³.ÓAÒAÐAÐAÜ��A‘‹;œ&¤¨¨A£´¸¸2³Ó?Ò?Ð?Ð?Ü”�1�Q‘3˜‘7˜CÓ  C¨1Ô-´Ü��3‹œ  C›ó2*ò *ð *ð *ô ��A‘‹;œ&¤¨¨A£´¸¸1³Ó>Ò>Ð>Ð>Ü��!‘�a‘˜1Ô¤¬°°1«´w¸qÀ!³}Ó!EÒEÐEÐEÜ�‹7”fœW Q¨›]¬G°A°q«MÓ:Ò:Ð:Ð:Ü��!‘�qŒ>œV¤G¨A¨q£M´7¸1¸a³=ÓAÒAÐAÐAÜ��QŒ<œ6¤'¨!¨Q£-´¸¸A³Ó?Ò?Ð?Ð?Ü
Œ:Ô*Ô+Ü
Œ:Ô8Ô9Ü
Œ:Ô*Ô+Ü
Œ:Ô8Ô9Ü
Œ:Ô3Õ4rC   c                 ó@   — t        d«      }| | |z
  cxk  xr |k  S c S )z.Test if two floating point values are 'equal'.z1.0E-10)r   )r2   r3   Út_floats      r@   ÚfeqrP   6   s(   € ä�IÓ€GØˆ8�a˜!‘eÖ%˜gÑ%Ð%Ñ%Ð%rC   c                  ó8  — t        dddd«      } | j                  }| j                  }t        t	        j
                  t	        t        dd«      t        dd«      «      t	        t        dd«      t        dd«      «      «      j                  «       t        j                  «       dz  «      sJ ‚t	        | |«      j                  t	        ||«      «      t        dz  k(  sJ ‚t        ddd«      }t        j
                  t        |t        ddd«      «      t        |t        ddd«      «      «      t        t        d«      dz  «      k(  sJ ‚t        j
                  t        |t        ddd«      «      t        t        ddd«      |«      «      t        t        d«       dz  «      k(  sJ ‚y )Nr6   r<   r4   é   r   r7   )r   Úorthogonal_directionÚoriginrP   r   Úangle_betweenÚevalfr   r   r   r   r   )r2   r3   Úor*   s       r@   Útest_angle_betweenrX   <   sn  € Üˆa��A�qÓ€AØ	×Ñ€AØ	�‰€AÜŒt×!Ñ!¤$¤u¨Q°£{´E¸!¸Q³KÓ"@Ü"&¤u¨Q°£{´E¸!¸Q³KÓ"@óBßBGÁ%Ã'Ì2Ï8É8Ë:ÐXYÉ>ô[ð [ð [ä��1‹:×#Ñ#¤D¨¨A£JÓ/´2¸±6Ò9Ð9Ð9Ü��1�aÓ€AÜ×Ñ¤ q¬'°!°Q¸Ó*:Ó ;Ü & q¬'°!°Q¸Ó*:Ó ;ó=Ü@DÄTÈ!ÃWÈqÁ[Ó@QòRð Rð Rô ×Ñ¤ q¬'°!°Q¸Ó*:Ó ;Ü &¤w¨q°!°QÓ'7¸Ó ;ó=Ü@DÄdÈ1ÃgÀXÐPQÁ\Ó@RòSð Sñ SrC   c                  óè   — t        dd¬«      } t        dt        dz  ¬«      }| j                  |«      t         dz  k(  sJ ‚|j                  | «      t        dz  k(  sJ ‚| j                  | «      dk(  sJ ‚y )N©r   r   r   ©Úangle©r6   r<   r<   )r   r   Úclosing_anglerF   s     r@   Útest_closing_angler_   K   sm   € ÜˆF˜!Ô€AÜˆFœ"˜Q™$Ô€AØ�?‰?˜1Ó¤"  Q¡Ò&Ð&Ð&Ø�?‰?˜1Ó¤ A¡Ò%Ð%Ð%Ø�?‰?˜1Ó Ò"Ð"Ñ"rC   c                  óà   — t        t        dd«      t        dd«      «      } t        t        dd«      t        dd«      «      }| j                  |«      t        dt	        d«      z  dz  «      k(  sJ ‚y )Nr6   r<   r4   r7   )r   r   Úsmallest_angle_betweenr   r   rF   s     r@   Útest_smallest_anglerb   S   s\   € ÜŒU�1�a‹[œ%  1›+Ó&€AÜŒU�1�a‹[œ˜q !›Ó%€AØ×#Ñ# AÓ&¬$¨q´°a³©y¸©{Ó*;Ò;Ð;Ñ;rC   c                  óB  — t        t        dd«      t        dd«      «      } | j                  «       dk(  sJ ‚t        t        dd«      t        dd«      «      } | j                  «       dk(  sJ ‚t	        t        dd«      t        dd«      «      } | j                  «       dk(  sJ ‚y )	Nr6   r<   zï<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 1.00000000000000,1.00000000000000 L 1.00000000000000,2.00000000000000" marker-start="url(#markerReverseArrow)" marker-end="url(#markerArrow)"/>r   zš<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 1.00000000000000,0 L 1.00000000000000,1.00000000000000" />r4   r7   zé<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 2.00000000000000,3.00000000000000 L 3.00000000000000,5.00000000000000" marker-start="url(#markerCircle)" marker-end="url(#markerArrow)"/>)r   r   Ú_svgr   r   )r2   s    r@   Útest_svgre   Y   s­   € ÜŒU�1�a‹[œ˜q !›Ó%€AØ�6‰6‹8ð  Iò  Ið  Ið  IÜ”�a˜“œE ! Q›KÓ(€AØ�6‰6‹8ð  tò  tð  tð  tÜŒE�!�Q‹Kœ˜q !›Ó%€AØ�6‰6‹8ð  Cò  Cð  Cñ  CrC   c                  ó  — t        t        ddd«      t        ddd«      «      } t        t        t        t        «      t        t
        t
        «      «      }|j                  «       |v sJ ‚t        dt        dz  ¬«      j                  «       t        t        dz   t        dz   «      k(  sJ ‚t        dd«      j                  «       t        dt        z   ddt        z  z   «      k(  sJ ‚| j                  | j                  «       «      | j                  «       k(  sJ ‚t        dg d	¢¬
«      j                  «       t        t        dz   dt        z  dz   dt        z  dz   «      k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        t        j                   t        j                   t        j                   «      k(  sJ ‚t        t        t        t        t        «      t        t
        t
        t
        «      «      j"                  t%        d«      t%        t        t
        z
  dz  «      z  k(  sJ ‚t        dd«      j                  «       t        t        dz   dt        z  dz   dt        z  dz   «      k(  sJ ‚t'        t(        d„ «       y )Nr   r6   ©r6   r6   rR   r[   ©r<   r4   r<   ©r6   r6   r6   ©r6   r<   r4   ©Údirection_ratior4   ©r<   r4   rR   c                  óL   — t        t        dfd«      j                  t        «      S )Nr6   rh   )r   r&   Úarbitrary_point© rC   r@   rA   z&test_arbitrary_point.<locals>.<lambda>q   s   € ¤¤a¨ V¨VÓ 4× DÑ DÄQÓ G€ rC   )r   r   r   r   r,   r-   ro   r   r   r.   r   Úperpendicular_segmentr   r   Úmidpointr   ÚHalfÚlengthr   r$   rL   ©Úl1Úl2s     r@   Útest_arbitrary_pointrx   b   s  € Ü	”˜˜1˜aÓ ¤'¨!¨Q°Ó"2Ó	3€BÜ	Œe”Bœ‹mœU¤2¤r›]Ó	+€BØ×ÑÓ 2Ñ%Ð%Ð%ÜˆvœR !™VÔ$×4Ñ4Ó6Ü”�Q‘œ˜A™Óòð ð ä�6˜6Ó"×2Ñ2Ó4¼¸aÄ!¹eÀQÈÌQÉÁYÓ8OÒOÐOÐOØ×#Ñ# B×$6Ñ$6Ó$8Ó9¸R×=OÑ=OÓ=QÒQÐQÐQÜ�ªIÔ6×FÑFÓHÜ”1�q‘5˜!œa™% !™) Q¬¡U¨Q¡YÓ/ò0ð 0ð 0ä”W˜Q  1Ó%¤w¨q°!°QÓ'7Ó8×AÑAÜ”1—6‘6œ1Ÿ6™6¤1§6¡6Ó*ò+ð +ð +ä”WœR¤¤RÓ(¬'´"´b¼"Ó*=Ó>×EÑEÌÈaËÔSWÔY[Ô^`ÑY`ÐefÑXfÓSgÑIgÒgÐgÐgÜ�Y 	Ó*×:Ñ:Ó<Ü”1�q‘5˜!œa™% !™) Q¬¡U¨Q¡YÓ/ò0ð 0ð 0ä
Œ:ÑGÕIrC   c                  óV  — t        t        dd«      t        dd«      «      } t        t        t        t        «      t        t        dt        z   «      «      }t        j                  | «      du sJ ‚t        j                  | |«      sJ ‚t        j                  | | | |«      sJ ‚t        j                  | |t        t        dt        «      t        t	        dd«      t        «      «      «      sJ ‚t        j                  | t        t        dd«      t        t         t        «      «      |«      du sJ ‚y )Nr   r6   Fr7   r;   )r   r   r,   Úare_concurrentr   ru   s     r@   Útest_are_concurrent_2dr{   t   så   € Ü	Œe�A�q‹kœ5  A›;Ó	'€BÜ	Œe”Bœ‹mœU¤2 q¬2¡vÓ.Ó	/€BÜ×Ñ˜rÓ" eÑ+Ð+Ð+Ü×Ñ˜r 2Ô&Ð&Ð&Ü×Ñ˜r 2 r¨2Ô.Ð.Ð.Ü×Ñ˜r 2¤t¬E°!´R«L¼%ÄÈÈQÃÔQSÓ:TÓ'UÔVÐVÐVÜ×Ñ˜r¤4¬¨a°«´U¼B¸3Ä³^Ó#DÀbÓIÈUÑRÐRÑRrC   c                  óÄ  — t        ddd«      } t        | t        ddd«      «      }t        t        ddd«      t        ddd«      «      }t        t        ddd«      t        ddd«      «      }t        j                  |«      du sJ ‚t        j                  |t        t        t        t        t        «      t        t
        t
        t
        «      «      «      du sJ ‚t        j                  |t        | t        t        t        t        «      «      t        t        t        t        t        «      t        t        dt        z   d«      «      «      du sJ ‚t        j                  ||«      du sJ ‚y ©Nr   r6   FT)r   r   r   rz   r,   r-   )Úp1rv   Ú
parallel_1Ú
parallel_2s       r@   Útest_are_concurrent_3dr�   ~   s"  € Ü	��A�qÓ	€BÜ	ˆb”'˜!˜Q Ó"Ó	#€BÜœ  1 aÓ(¬'°!°Q¸Ó*:Ó;€JÜœ  1 aÓ(¬'°!°Q¸Ó*:Ó;€JÜ× Ñ  Ó$¨Ñ-Ð-Ð-Ü× Ñ  ¤T¬'´"´b¼"Ó*=¼wÄrÌ2ÌrÓ?RÓ%SÓTÐX]Ñ]Ð]Ð]Ü× Ñ  ¤V¨B´¼¼BÄÓ0CÓ%DÜ!%¤g¬b´"´bÓ&9¼7Ä2ÀqÌ2ÁvÈqÓ;QÓ!RóTØW[ñ\ð \ð \ä× Ñ  ¨ZÓ8¸EÑAÐAÑArC   c            	      ó   — ddl m}  dddgt        dd«      f} | |d«      }t        t	        dd«      t	        dd«      «      }dg d	¢t        ddd
«      f} | |d«      }t        t        ddd«      t        ddd«      «      }dg d¢t        dddd«      f} | |d«      }t        t        dddd«      t        dddd«      «      }	g d¢}
|D ]
  }t        |Ž  Œ |
D ]  }|D ]  } t        ||«      |«       Œ Œ |D ]
  }t        |Ž  Œ |
D ]  }|D ]  } t        ||«      |«       Œ Œ |D ]
  }t        |Ž  Œ |
D ]  }|D ]  } t        |	|«      |«       Œ Œ y)z”Functions accepting `Point` objects in `geometry`
    should also accept tuples, lists, and generators and
    automatically convert them to points.r   )Úsubsetsr]   r6   r4   r7   r<   rj   )r6   r<   rR   é   )r6   r<   r4   rR   )r6   r<   r4   r7   é   rR   )ÚcontainsÚdistanceÚequalsÚparallel_lineÚperpendicular_linerq   Ú
projectionr   N)	Úsympy.utilities.iterablesrƒ   r   r   r   r   r   Úgetattrr   )rƒ   Ú	singles2dÚ	doubles2dÚl2dÚ	singles3dÚ	doubles3dÚl3dÚ	singles4dÚ	doubles4dÚl4dÚtest_singleÚpÚfuncs                r@   Útest_argumentsrš   Š   sž  € õ 2à˜!˜Q˜¤ q¨!£Ð-€IÙ˜	 1Ó%€IÜ
Œw�q˜!‹}œg a¨›mÓ
,€CØšI¤u¨Q°°1£~Ð6€IÙ˜	 1Ó%€IÜ
Œw�q˜!˜QÓ¤¨¨A¨qÓ!1Ó
2€CØš|¬U°1°a¸¸AÓ->Ð?€IÙ˜	 1Ó%€IÜ
Œu�Q˜˜1˜aÓ ¤%¨¨1¨a°Ó"3Ó
4€Cò1€Kàò ˆÜ�Š
ðàò "ˆØò 	"ˆAØŒG�C˜Ó˜qÕ!ñ	"ð"ð ò ˆÜ�Š
ðàò "ˆØò 	"ˆAØŒG�C˜Ó˜qÕ!ñ	"ð"ð ò ˆÜˆaŠðàò "ˆØò 	"ˆAØŒG�C˜Ó˜qÕ!ñ	"ñ"rC   c            
      óª  — t        dd«      } t        dd«      }t        dd«      }t        | |«      j                  «       }t        || «      j                  «       }t        | |«      }t        t        t        t        «      t        t        dt        z   «      «      }t        | t        dd«      «      }t        | t        dd«      «      }t        t        dd«      | «      }	t        | |«      }
|
j                  «       }t        dd¬«      t        dd«      k(  sJ ‚t        dt        ¬«      t        dd«      k(  sJ ‚t        dt        ¬«      j                  dk(  sJ ‚t        dt         ¬«      t        dd«      k(  sJ ‚t        | |«      j                  d	d«      t        | t        d	d«      «      k(  sJ ‚t        | |«      t        | |«      k(  sJ ‚t        | |«      t        || «      k7  sJ ‚|t        t        t        t        «      t        t        t        «      «      k7  sJ ‚||k7  sJ ‚t        | |«      t        || «      k7  sJ ‚t        | |«      | k7  sJ ‚| |v sJ ‚| |vsJ ‚|
t        | |«      v sJ ‚t        t        dd«      t        dd«      «      t        t        dd«      t        dd	«      «      v sJ ‚t        t        dd«      t        dd	«      «      t        t        dd«      t        dd«      «      v sJ ‚t        t        dd«      t        dd	«      «      j                  t        j                  k(  sJ ‚t        t        dd«      t        dd	«      «      j                  t        j                  k(  sJ ‚t        t        dd«      t        d
d	«      «      j                  t        j                  k(  sJ ‚t        t        dd«      t        d	d«      «      j                  t        j                  k(  sJ ‚t        t        dd«      t        d	d	«      «      j                  t        j                  k(  sJ ‚t        t        dd«      t        d	d«      «      j                  t        j                  k(  sJ ‚||
v du sJ ‚t        | |«      |
v sJ ‚t        t        t        t        «      t        t        dt        z   «      «      t        | t        d
d«      «      k7  sJ ‚t        | |«      j                   t        t        j"                  t        j"                  «      k(  sJ ‚t        | t        t         t        «      «      j$                  t'        d	t        d	z  z  «      k(  sJ ‚|j(                  dk(  sJ ‚|j(                  t        u sJ ‚|j(                  dk(  sJ ‚t        | t        dd«      «      j(                  t        u sJ ‚t        |j*                  |j                  «       «      j(                  |j(                  k(  sJ ‚t        |	j*                  |	j                  «       «      j(                  |	j(                  k(  sJ ‚t        t        dd
«      t        | t        dd«      «      j                  «       «      j(                  t        | t        dd«      «      j(                  k(  sJ ‚|j,                  dk(  sJ ‚t        t.         t.        ft.         dz   t.        dz
  f«      j,                  dk(  sJ ‚t        | t        dd«      «      j,                  dk(  sJ ‚t        dt.        ¬«      }|j1                  t.        dt2        z  dz  «      t        dd«      k(  sJ ‚|j1                  t.        dt2        z  dz  «      t        dd«      k(  sJ ‚|j1                  t.        t2         dz  «      t        dd«      k(  sJ ‚|j1                  t.        t2        d	z  «      t        dd«      k(  sJ ‚|j1                  t.        t2         d	z  «      t        dd«      k(  sJ ‚t5        dd«      D ]  }|j                  «       |v rŒJ ‚ |j.                  | j.                  k\  r|j6                  | j6                  k\  sJ ‚|j.                  |j.                  k  r|j6                  |j6                  k  sJ ‚| j.                  |j.                  cxk  r|j.                  k  r0n J ‚| j6                  |j6                  cxk  r|j6                  k  sJ ‚ J ‚t9        |
«      t9        t        || «      «      k7  sJ ‚|
j;                  «       t<        ddgk(  sJ ‚t        | |«      j;                  «       t<        ddgk(  sJ ‚t        dt2        dz  ¬«      j;                  «       t<        ddgk(  sJ ‚y )Nr   r6   éÐ  rg   ©Úslope©r<   r<   r]   )r6   r6   r6   r<   r<   r8   éþÿÿÿFr7   ©r   r6   r   ©r6   r6   r   ©r6   r   r   rZ   r[   r4   rR   ©r8   r6   )r8   r8   )r6   r8   ©r   r6   ©r   r8   éûÿÿÿé
   )r   r   Úrandom_pointr   r,   r   r   ÚboundsÚscaler-   Ú
xdirectionr   ÚZeroÚInfinityÚNegativeInfinityÚ
ydirectionrr   rs   rt   r   rž   ÚsourceÚcoefficientsr&   Úsubsr   Úranger)   ÚhashÚplot_intervalr.   )r~   Úp2Úp10Úp_r3Úp_r4rv   Úl3Úl4Úr1Úr2Ús1Úp_s1ÚrÚinds                 r@   Útest_basic_properties_2drÃ   ¯   s›  € Ü	ˆq�!‹€BÜ	ˆq�!‹€BÜ
��dÓ
€CÜˆr�2‹;×#Ñ#Ó%€DÜˆr�2‹;×#Ñ#Ó%€Dä	ˆb�"‹€BÜ	Œe”Bœ‹mœU¤2 q¬2¡vÓ.Ó	/€BÜ	ˆb”%˜˜1“+Ó	€Bä	ˆR”�q˜!“Ó	€BÜ	ŒU�1�a‹[˜"Ó	€Bä	��SÓ	€BØ�?‰?Ó€Dä�˜aÔ ¤D¨°Ó$8Ò8Ð8Ð8Ü�œbÔ!¤T¨&°&Ó%9Ò9Ð9Ð9Ü�œbÔ!×(Ñ(¨LÒ8Ð8Ð8Ü�œr˜cÔ"¤d¨6°6Ó&:Ò:Ð:Ð:Ü��B‹<×Ñ˜a Ó#¤t¨B´°a¸³Ó'<Ò<Ð<Ð<Ü��B‹<œ4  B›<Ò'Ð'Ð'Ü��B‹<œ4  B›<Ò'Ð'Ð'Ø””eœB¤“m¤U¬2¬r£]Ó3Ò3Ð3Ð3Ø�Š8€Oˆ8Ü��C‹=œD  b›MÒ)Ð)Ð)Ü��C‹=˜BÒÐÐØ�‰8€Oˆ8Ø�R‰<Ðˆ<Ø”�b˜#“ÑÐÐÜŒu�Q˜‹{œE ! Q›KÓ(¬C´°a¸³¼UÀ1Àa»[Ó,IÑIÐIÐIÜŒu�Q˜‹{œE ! Q›KÓ(¬C´°a¸³¼UÀ1Àa»[Ó,IÑIÐIÐIÜŒu�Q˜‹{œE ! Q›KÓ(×3Ñ3´q·v±vÒ=Ð=Ð=ÜŒu�Q˜‹{œE ! Q›KÓ(×3Ñ3´q·z±zÒAÐAÐAÜŒu�Q˜‹{œE " a›LÓ)×4Ñ4¼×8JÑ8JÒJÐJÐJÜŒu�Q˜‹{œE ! Q›KÓ(×3Ñ3´q·v±vÒ=Ð=Ð=ÜŒu�Q˜‹{œE ! Q›KÓ(×3Ñ3´q·z±zÒAÐAÐAÜŒu�Q˜‹{œE ! R›LÓ)×4Ñ4¼×8JÑ8JÒJÐJÐJØ�"ˆH˜ÑÐÐÜ�2�r‹?˜bÑ Ð Ð ÜŒu”Rœ‹}œe¤B¨¬B©Ó/Ó0´C¸¼EÀ"Àa»LÓ4IÒIÐIÐIÜ�2�r‹?×#Ñ#¤u¬Q¯V©V´Q·V±VÓ'<Ò<Ð<Ð<Ü�2”uœb˜S¤"“~Ó&×-Ñ-´°a¼2À¹7±mÓ1DÒDÐDÐDà�8‰8�qŠ=Ðˆ=Ø�8‰8”r‰>Ðˆ>Ø�8‰8�qŠ=Ðˆ=Ü�”E˜!˜Q“KÓ ×&Ñ&¬"Ñ,Ð,Ð,Ü�—	‘	˜2Ÿ?™?Ó,Ó-×3Ñ3°r·x±xÒ?Ð?Ð?Ü�—	‘	˜2Ÿ?™?Ó,Ó-×3Ñ3°r·x±xÒ?Ð?Ð?Ü”5˜˜B“<¤¨¬U°1°a«[Ó!9×!FÑ!FÓ!HÓI×OÑOÔSZÐ[]Ô_dÐefÐhiÓ_jÓSk×SqÑSqÒqÐqÐqà�?‰?˜iÒ'Ð'Ð'Ü”!�”Q�œ1˜"˜q™&¤! a¡%˜Ó)×6Ñ6¸)ÒCÐCÐCÜ�”E˜!˜Q“KÓ ×-Ñ-°Ò:Ð:Ð:äˆFœ!Ô€AØ�6‰6”!�Qœ‘V˜a‘ZÓ ¤C¨°Ó$8Ò8Ð8Ð8Ø�6‰6”!�Qœ‘V˜a‘ZÓ ¤C¨°Ó$9Ò9Ð9Ð9Ø�6‰6”!”b�S˜1‘WÓ¤ V¨WÓ!5Ò5Ð5Ð5Ø�6‰6”!”R˜!‘VÓ¤ F¨FÓ 3Ò3Ð3Ð3Ø�6‰6”!”b�S˜1‘WÓ¤ V¨WÓ!5Ò5Ð5Ð5ä�Q˜‹{ò 'ˆØ�‰Ó  BÒ&Ð&Ð&ð'ð �6‰6�R—T‘TŠ>˜dŸf™f¨¯©šnÐ,Ð,Ø�6‰6�R—T‘TŠ>˜dŸf™f¨¯©šnÐ,Ð,Ø�4‰4�4—6‘6Ô"˜SŸU™UÔ"Ð>Ð> r§t¡t¨t¯v©vÔ'>¸¿¹Ò'>Ð>Ð>Ð'>Ð>Ð>Ü�‹8”tœG C¨Ó,Ó-Ò-Ð-Ð-à×ÑÓ¤! Q¨ Ò*Ð*Ð*Ü��C‹=×&Ñ&Ó(¬Q°°A¨JÒ6Ð6Ð6ÜˆvœR !™VÔ$×2Ñ2Ó4¼¸A¸r¸
ÒBÐBÑBrC   c            
      ó  — t        ddd«      } t        ddd«      }t        t        t        t        «      }t        t        dt        z   d«      }t        | |«      }t        ||«      }t        | t        ddd«      «      }t        | |«      }t	        | |«      }t        dg d¢¬«      t        t        ddd«      t        dd	d«      «      k(  sJ ‚t        dg d
¢¬«      t        t        ddd«      t        ddd«      «      k(  sJ ‚t        dg d¢¬«      t        t        ddd«      t        ddd	«      «      k(  sJ ‚t        t        ddd«      t        ddd«      «      j
                  g d¢k(  sJ ‚t        t        | t        ddd«      «      «      t        | t        ddd«      «      k(  sJ ‚t        t        t        ddd«      t        ddd«      «      «      t        | t        ddd«      «      k(  sJ ‚t        | |«      t        || «      k7  sJ ‚||k7  sJ ‚|t        |t        t        t        t        «      «      k7  sJ ‚||k7  sJ ‚t        t        ddd«      t        ddd«      «      t        t        ddd«      t        ddd«      «      v sJ ‚t        t        ddd«      t        ddd«      «      t        t        ddd«      t        ddd«      «      v sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        j                  k(  sJ ‚| |v sJ ‚| |vsJ ‚|j                  g d¢k(  sJ ‚|j                  t        t        j                   t        j                   t        j                   «      k(  sJ ‚t        | t        ddd«      «      j                  t        j                  u sJ ‚y )Nr   r6   r8   r7   ri   rm   rk   r4   rR   )r6   r7   r…   r<   r„   é   rj   r£   r    )r   r,   r   r   r   Údirection_cosiner-   r¬   r   r®   r°   Ú
zdirectionr¯   r­   rl   rr   rs   )	r~   r·   Úp3Úp5rv   r»   r½   Úr3r¿   s	            r@   Útest_basic_properties_3drË   ü   sÉ  € Ü	��A�qÓ	€BÜ	��A�qÓ	€BÜ	””RœÓ	€BÜ	”�Qœ‘V˜QÓ	€Bä	��B‹€BÜ	��B‹€Bä	ˆr”7˜2˜q !Ó$Ó	%€BÜ	ˆr�2‹€Bä	�2�rÓ	€Bä�)ªYÔ7¼6Ä'È!ÈQÐPQÓBRÔT[Ð\]Ð_`ÐbcÓTdÓ;eÒeÐeÐeÜ�)ªYÔ7¼6Ä'È!ÈQÐPQÓBRÔT[Ð\]Ð_`ÐbcÓTdÓ;eÒeÐeÐeÜ�)ªYÔ7¼6Ä'È!ÈQÐPQÓBRÔT[Ð\]Ð_`ÐbcÓTdÓ;eÒeÐeÐeÜ”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5×FÑFÊ)ÒSÐSÐSÜ”&˜œW Q¨¨1Ó-Ó.Ó/´6¸"¼gÀaÈÈAÓ>NÓ3OÒOÐOÐOÜ”œ  1 aÓ(¬'°!°Q¸Ó*:Ó;Ó<ÄÀbÌ'ÐRSÐUVÐXYÓJZÓ@[Ò[Ð[Ð[Ü�"�b‹>œV B¨›^Ò+Ð+Ð+Ø�Š8€Oˆ8Ø”˜œG¤B¬¬BÓ/Ó0Ò0Ð0Ð0Ø�Š8€Oˆ8Ü”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4¼¼gÀaÈÈAÓ>NÔPWÐXYÐ[\Ð^_ÓP`Ó8aÑaÐaÐaÜ”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4¼¼gÀaÈÈAÓ>NÔPWÐXYÐ[\Ð^_ÓP`Ó8aÑaÐaÐaÜ”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4×?Ñ?Ä1Ç:Á:ÒMÐMÐMÜ”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4×?Ñ?Ä1Ç:Á:ÒMÐMÐMÜ”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4×?Ñ?Ä1Ç:Á:ÒMÐMÐMÜ”˜˜A˜qÓ!¤7¨2¨q°!Ó#4Ó5×@Ñ@ÄA×DVÑDVÒVÐVÐVÜ”˜˜A˜qÓ!¤7¨1¨b°!Ó#4Ó5×@Ñ@ÄA×DVÑDVÒVÐVÐVÜ”˜˜A˜qÓ!¤7¨1¨a°Ó#4Ó5×@Ñ@ÄA×DVÑDVÒVÐVÐVÜ”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4×?Ñ?Ä1Ç6Á6ÒIÐIÐIÜ”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4×?Ñ?Ä1Ç6Á6ÒIÐIÐIÜ”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4×?Ñ?Ä1Ç6Á6ÒIÐIÐIØ�‰8€Oˆ8Ø�R‰<Ðˆ<à×Ñ¢Ò*Ð*Ð*à�;‰;œ'¤!§&¡&¬!¯&©&´!·&±&Ó9Ò9Ð9Ð9ä�”W˜Q  2Ó&Ó'×2Ñ2´a×6HÑ6HÑHÐHÑHrC   c            
      óÜ  — t        dd«      } t        | t        dd«      «      }t        | t        ddd«      «      }t        | t        ddd«      «      }t        | t        ddd«      «      }t	        t        dd«      t        dd«      «      }t        dt
        t        z   dz  «      t        dt
        fdt        f«      v sJ ‚t        t
        t        z   dz  d«      t        t
        dft        df«      v sJ ‚t        ddd«      t        dd«      v sJ ‚t        ddd«      t        dd«      v sJ ‚t        t        ddd«      t        ddd«      «      j                  g «      d	u sJ ‚t        t        ddd«      t        ddd«      «      j                  t        t        ddd«      t        ddd«      «      «      d
u sJ ‚|j                  t        dd«      «      d	u sJ ‚|j                  d«      d	u sJ ‚|j                  d«      d
u sJ ‚|j                  | «      d	u sJ ‚|j                  d«      d	u sJ ‚|j                  d«      d
u sJ ‚|j                  t        dd«      «      d	u sJ ‚|j                  t        dd«      «      d
u sJ ‚|j                  t        dd«      «      d	u sJ ‚|j                  t        dd«      «      d
u sJ ‚|j                  t        | t        ddd«      «      «      d	u sJ ‚|j                  t        t        ddd«      t        ddd«      «      «      d
u sJ ‚|j                  t        ddd«      «      d	u sJ ‚|j                  t        ddd«      «      d	u sJ ‚t        t        ddd«      t        ddd«      «      j                  g «      d
u sJ ‚t        dt        t        t        f«      j                  dt        z  dt        z  dt        z  f«      sJ ‚t        t        d
¬«      5  t        | t        ddd«      «      j                  t        dd«      «      d
u sJ ‚	 d d d «       t        t        d
¬«      5  |j                  t        dd«      «      d
u sJ ‚	 d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   y xY w)Nr   rR   r8   r6   r4   r<   r¡   r£   TFr¥   rZ   rg   )r6   r4   rŸ   r]   )r<   r7   )r4   r4   )r4   r7   éöÿÿÿ©r   r   r   ©Útest_stacklevelç      ð?)r   r   r   r   r   r2   r3   r   r   r†   r   r&   r)   r*   r%   ÚUserWarning)r~   rÁ   r½   r¾   rÊ   Úls         r@   Útest_containsrÔ   )  s/  € Ü	ˆq�!‹€BäˆB”�a˜“Ó€AÜ	ˆr”7˜1˜a Ó$Ó	%€BÜ	ˆr”7˜1˜a Ó#Ó	$€BÜ	ˆr”7˜1˜a Ó#Ó	$€BäŒU�1�a‹[œ%  1›+Ó&€Aä�”Qœ‘U˜a‘KÓ ¤G¨Q´¨F°Q¼°FÓ$;Ñ;Ð;Ð;Ü”!”a‘%˜1‘˜aÓ ¤G¬Q°¨F´Q¸°FÓ$;Ñ;Ð;Ð;Ü�1�a˜Óœy¨°IÓ>Ñ>Ð>Ð>Ü�1�a˜Óœy¨°IÓ>Ñ>Ð>Ð>Ü”W˜Q  1Ó%¤w¨q°!°QÓ'7Ó8×AÑAÀ"ÓEÈÑMÐMÐMÜ”W˜Q  1Ó%¤w¨q°!°QÓ'7Ó8×AÑAÜ”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5ó7Ø:?ñ@ð @ð @ð �:‰:”e˜A˜q“kÓ" dÑ*Ð*Ð*Ø�:‰:�fÓ Ñ%Ð%Ð%Ø�:‰:�fÓ Ñ&Ð&Ð&à�:‰:�b‹>˜TÑ!Ð!Ð!Ø�:‰:�fÓ Ñ%Ð%Ð%Ø�:‰:�fÓ Ñ&Ð&Ð&Ø�:‰:”g˜f fÓ-Ó.°$Ñ6Ð6Ð6Ø�:‰:”g˜f fÓ-Ó.°%Ñ7Ð7Ð7Ø�:‰:”c˜& &Ó)Ó*¨dÑ2Ð2Ð2Ø�:‰:”c˜& &Ó)Ó*¨eÑ3Ð3Ð3Ø�;‰;”y ¤W¨Q°°3Ó%7Ó8Ó9¸TÑAÐAÐAØ�;‰;”y¤¨¨A¨qÓ!1´7¸1¸aÀÓ3CÓDÓEÈÑNÐNÐNØ�;‰;”w˜q ! QÓ'Ó(¨DÑ0Ð0Ð0Ø�;‰;”w˜q ! QÓ'Ó(¨DÑ0Ð0Ð0Ü”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4×=Ñ=¸bÓAÀUÑJÐJÐJÜ�)œa¤¤A˜YÓ'×0Ñ0°!´a±%¸¼Q¹ÀÄAÁÐ1FÔGÐGÐGÜ	Œ{¨EÔ	2ñ OÜ�bœ' ! Q¨Ó*Ó+×4Ñ4´U¸3À³_ÓEÈÑNÐNÑN÷Oô 
Œ{¨EÔ	2ñ 5Ø�{‰{œ5  c›?Ó+¨uÑ4Ð4Ñ4÷5ð 5÷Oð Oú÷5ð 5ús   Ï5QÐ, Q"ÑQÑ"Q+c                  óî   — t        d«      \  } }}}t        t        | |«      t        ||«      «      }t        | t        dd«      z  |dz  z   |t        dd«      z  |dz  z   «      }|j	                  |«      sJ ‚y )Nz
u, v, w, zr<   r4   )r
   r   r   r   r†   )ÚuÚvÚwr*   rÓ   r˜   s         r@   Útest_contains_nonreal_symbolsrÙ   S  sp   € Ü˜Ó&�J€A€qˆ!ˆQÜ”�a˜“œU 1 a›[Ó)€AÜˆa”˜˜A“Ñ  1¡Ñ$ a¬°°A«Ñ&6¸¸1¹Ñ&<Ó=€AØ�:‰:�aŒ=Ð‰=rC   c                  ó  — t        dd«      } t        dd«      }t        j                  }t        t        dd«      t        dd«      «      }t        t        ||«      t        dd«      «      }t	        | |«      }|j                  t        dd«      «      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  t        dd«      «      d|z  dz  k(  sJ ‚|j                  t        t        d«      dz  t        d«      dz  «      «      d|z  k(  sJ ‚t        | |«      j                  t        dd«      «      t        d«      k(  sJ ‚t        | |«      j                  t        dd«      «      t        d«      k(  sJ ‚t        | |«      j                  t        dd«      «      dk(  sJ ‚t        | |«      j                  d«      t        d«      k(  sJ ‚t        dd«      j                  | «      dk(  sJ ‚t        dd«      j                  |«      dk(  sJ ‚t        dd	«      j                  | «      dk(  sJ ‚t        dd	«      j                  |«      dk(  sJ ‚|j                  t        dd«      «      t        d«      k(  sJ ‚|j                  t        dd«      «      dk(  sJ ‚|j                  t        dd«      «      t        d«      k(  sJ ‚t	        d
d«      j                  t        dd«      «      dt        d«      z  dz  k(  sJ ‚|j                  d
«      dk(  sJ ‚y )Nr   r6   rZ   r<   r4   r8   r¤   r¥   ©r6   r   rg   rŸ   ç      ø?rR   )	r   r   rs   r   r   r‡   r   r   r   )r~   r·   Úhalfr¿   Ús2rÁ   s         r@   Útest_distance_2drß   Z  sª  € Ü	ˆq�!‹€BÜ	ˆq�!‹€BÜ�6‰6€Dä	”�q˜!“œe A q›kÓ	*€BÜ	”�t˜TÓ"¤E¨!¨Q£KÓ	0€BäˆB�‹€Aà�;‰;”u˜Q “{Ó# qÒ(Ð(Ð(Ø�;‰;�vÓ !Ò#Ð#Ð#Ø�;‰;”u˜Q “{Ó# q¨D¡y°1¡}Ò4Ð4Ð4Ø�;‰;”uœX a›[¨1™_¬h°q«k¸A©oÓ>Ó?À1ÈÁ9ÒLÐLÐLÜ��B‹<× Ñ ¤ r¨1£Ó.´$°q³'Ò9Ð9Ð9Ü��B‹<× Ñ ¤ q¨"£Ó.´$°q³'Ò9Ð9Ð9Ü��B‹<× Ñ ¤ q¨!£Ó-°Ò2Ð2Ð2Ü��B‹<× Ñ  Ó)¬T°!«WÒ4Ð4Ð4Ü�˜Ó×(Ñ(¨Ó,°Ò1Ð1Ð1Ü�˜Ó×(Ñ(¨Ó,°Ò1Ð1Ð1Ü�˜Ó×(Ñ(¨Ó,°Ò1Ð1Ð1Ü�˜Ó×(Ñ(¨Ó,°Ò1Ð1Ð1Ø�:‰:”e˜B “mÓ$¬¨Q«Ò/Ð/Ð/Ø�:‰:”e˜A˜q“kÓ" aÒ'Ð'Ð'Ø�:‰:”e˜B “lÓ#¤t¨A£wÒ.Ð.Ð.Üˆv�vÓ×'Ñ'¬¨c°1«Ó6¸!¼dÀ1»g¹+È¹/ÒIÐIÐIØ�:‰:�fÓ Ò"Ð"Ñ"rC   c                  óˆ   — t        t        d¬«      5  t        dd«      t        dd«      k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NFrÏ   rg   )r<   r6   r<   r¢   )r%   rÒ   r   rp   rC   r@   Útest_dimension_normalizationrá   w  sA   € Ü	Œ{¨EÔ	2ñ CÜ�6˜9Ó%¬¨Y¸	Ó)BÒBÐBÑB÷C÷ Cñ Cús	   ’8¸Ac                  óh  — t        ddd«      t        ddd«      }} t        t        d«      dz  t        d«      dz  t        d«      dz  «      }t        t        ddd«      t        ddd«      «      }t        t        t        j                  t        j                  t        j                  «      t        ddd«      «      }t        | |«      }|j                  | «      dk(  sJ ‚|j                  | «      t        d«      dz  k(  sJ ‚|j                  |«      dt        d«      z  dz  k(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      t        d«      dz  k(  sJ ‚|j                  | «      dk(  sJ ‚|j                  | «      t        d«      dz  k(  sJ ‚|j                  |«      dt        d«      z  dz  k(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      t        d«      dz  k(  sJ ‚t        | |«      j                  t        ddd«      «      dt        d«      z  dz  k(  sJ ‚t        | |«      j                  t        ddd«      «      dt        d«      z  dz  k(  sJ ‚t        | |«      j                  t        ddd«      «      dk(  sJ ‚t        | |«      j                  d«      dk(  sJ ‚t        | |«      j                  d	«      dt        d«      z  dz  k(  sJ ‚t        dd
«      j                  | «      dk(  sJ ‚t        dd
«      j                  |«      t        d«      k(  sJ ‚t        dd«      j                  | «      dk(  sJ ‚t        dd«      j                  |«      t        d«      k(  sJ ‚t        dd«      j                  t        dd«      «      dk(  sJ ‚t        dd«      j                  t        dd«      «      dk(  sJ ‚t        dd«      j                  t        dd«      «      dk(  sJ ‚t        dd«      j                  t        d
d«      «      dk(  sJ ‚t        dd«      j                  t        dd«      «      dk(  sJ ‚t        dd«      j                  t        d
d
«      «      dk(  sJ ‚t        dd«      j                  t        dd«      «      dk(  sJ ‚|j                  t        ddd«      «      t        d«      k(  sJ ‚|j                  t        ddd«      «      dk(  sJ ‚|j                  d«      t        d«      k(  sJ ‚|j                  d«      dk(  sJ ‚t        dd«      j                  d«      dt        d«      z  dz  k(  sJ ‚t        dd«      j                  t        ddd«      «      t        d«      dz  k(  sJ ‚t        dd«      j                  t        ddd«      «      t        d«      dz  k(  sJ ‚y )Nr   r6   r4   r<   r„   rÎ   r8   )r<   r<   r<   )r6   r8   r6   r¡   r£   ©r   r6   r<   )r¨   r   r   )r¨   r6   r<   ©r   r6   r6   )r<   r   r   ©r   r   r6   )r6   r6   r4   )r8   r8   r8   ri   )r6   r6   r<   )r8   r8   r<   rR   rÜ   r;   é	   éN   )
r   r   r   r   rs   r   r‡   r   r   r    )r~   r·   rÈ   r¿   rÞ   rÁ   s         r@   Útest_distance_3drè   |  s/  € Ü�Q˜˜1Óœw q¨!¨QÓ/ˆ€BÜ	”˜!“˜q‘¤(¨1£+°¡/´8¸A³;À±?Ó	C€Bä	”7˜1˜a Ó#¤W¨Q°°1Ó%5Ó	6€BÜ	”7œ1Ÿ6™6¤1§6¡6¬1¯6©6Ó2´G¸A¸qÀ!Ó4DÓ	E€Bäˆb�"‹€Aà�;‰;�r‹?˜aÒÐÐØ�;‰;�r‹?œd 1›g¨™kÒ)Ð)Ð)Ø�;‰;�r‹?˜a¤$ q£'™k¨A™oÒ-Ð-Ð-Ø�;‰;�yÓ! QÒ&Ð&Ð&Ø�;‰;�yÓ!¤T¨!£W¨q¡[Ò0Ð0Ð0Ø�;‰;�r‹?˜aÒÐÐØ�;‰;�r‹?œd 1›g¨™kÒ)Ð)Ð)Ø�;‰;�r‹?˜a¤$ q£'™k¨A™oÒ-Ð-Ð-Ø�;‰;�yÓ! QÒ&Ð&Ð&Ø�;‰;�yÓ!¤T¨!£W¨q¡[Ò0Ð0Ð0ä�"�b‹>×"Ñ"¤7¨2¨q°!Ó#4Ó5¸¼TÀ!»W¹Àq¹ÒHÐHÐHÜ�"�b‹>×"Ñ"¤7¨1¨b°!Ó#4Ó5¸¼TÀ!»W¹Àq¹ÒHÐHÐHÜ�"�b‹>×"Ñ"¤7¨1¨a°Ó#3Ó4¸Ò9Ð9Ð9Ü�"�b‹>×"Ñ" 9Ó-°Ò2Ð2Ð2Ü�"�b‹>×"Ñ" :Ó.°!´d¸1³g±+À±/ÒAÐAÐAÜ�)˜YÓ'×0Ñ0°Ó4¸Ò9Ð9Ð9Ü�)˜YÓ'×0Ñ0°Ó4¼¸Q»Ò?Ð?Ð?Ü�)˜YÓ'×0Ñ0°Ó4¸Ò9Ð9Ð9Ü�)˜YÓ'×0Ñ0°Ó4¼¸Q»Ò?Ð?Ð?ä�)˜YÓ'×0Ñ0´¸	À9Ó1MÓNÐRSÒSÐSÐSÜ�)˜YÓ'×0Ñ0´¸	À9Ó1MÓNÐRSÒSÐSÐSÜ�)˜YÓ'×0Ñ0´¸
ÀJÓ1OÓPÐTUÒUÐUÐUÜ�)˜YÓ'×0Ñ0´¸	À9Ó1MÓNÐRSÒSÐSÐSä�)˜YÓ'×0Ñ0´°yÀ)Ó1LÓMÐQRÒRÐRÐRÜ�)˜YÓ'×0Ñ0´°yÀ)Ó1LÓMÐQRÒRÐRÐRÜ�)˜YÓ'×0Ñ0´°yÀ)Ó1LÓMÐQRÒRÐRÐRà�:‰:”g˜b " bÓ)Ó*¬d°1«gÒ5Ð5Ð5Ø�:‰:”g˜a  AÓ&Ó'¨1Ò,Ð,Ð,Ø�:‰:�lÓ#¤t¨A£wÒ.Ð.Ð.Ø�:‰:�iÓ  AÒ%Ð%Ð%Ü�˜IÓ&×/Ñ/°Ó<ÀÄDÈÃGÁÈaÁÒOÐOÐOÜ�˜IÓ&×/Ñ/´¸¸RÀÓ0DÓEÌÐRSËÐWXÉÒXÐXÐXÜ�˜IÓ&×/Ñ/´¸¸QÀÓ0BÓCÄtÈBÃxÐRSÁ|ÒSÐSÑSrC   c            
      ó¦	  — t        dd«      } t        dd«      }t        | |«      }t        dt        ¬«      }t        t        t        t        «      t        t        dt        z   «      «      }|j	                  | j
                  «      j                  t        t        dd«      t        dd«      «      «      sJ ‚|j	                  | «      j                  t        t        dd«      t        dd«      «      «      sJ ‚t        t        t        t        «      t        t        t        «      «      j                  t        t         t        «      «      j                  t        t        t         t        «      t        t         dt        z  t        z
  «      «      «      sJ ‚|j                  | j
                  «      j                  t        t        dd«      t        dd«      «      «      sJ ‚|j                  | «      j                  t        t        dd«      t        dd«      «      «      sJ ‚|j                  t        dd«      «      dt        t        dz   «      z  t        t        dz  dz   «      z  z
  j                  d«      sJ ‚t        | t        ddd«      «      j                  t        dd«      «      d	u sJ ‚t        t        ddd«      t        ddd«      «      j                  t        t        d
dd«      t        ddd«      «      «      du sJ ‚t        t        ddd«      t        ddd«      «      j                  t        | t        ddd«      «      «      d	u sJ ‚t        | t        ddd«      «      j                  t        dd«      «      d	u sJ ‚t        | t        ddd«      «      j                  t        | t        ddd«      «      «      du sJ ‚t        dt        t        f«      j	                  t        ddd«      «      j                  t        t        ddd«      t        t         j"                  t         j"                  d«      «      «      sJ ‚t        dt        t        f«      j%                  t        ddd«      «      j                  t'        dt         j"                  t         j"                  f«      «      sJ ‚t        | t        ddd«      «      j                  t        dd«      «      d	u sJ ‚y )Nr   r6   )r   r7   r�   r8   r<   r4   rÑ   Fr§   TrZ   r¥   )r   r   r0   r,   rŠ   Úargsrˆ   r-   r‰   r‡   Úabsr   r   r   r   r.   r   rs   rq   r   )r~   r·   rv   rw   r»   s        r@   Útest_equalsrì   ¬  sË  € Ü	ˆq�!‹€BÜ	ˆq�!‹€Bä	ˆb�"‹€BÜ	ˆfœAÔ	€BÜ	Œe”Bœ‹mœU¤2 q¬2¡vÓ.Ó	/€Bà× Ñ  §¡Ó)×0Ñ0´´e¸A¸q³kÄ5ÈÈBÃ<Ó1PÔQÐQÐQØ× Ñ  Ó$×+Ñ+¬D´°q¸!³¼eÀAÀr»lÓ,KÔLÐLÐLÜ””bœ"“œu¤R¬›}Ó-×;Ñ;¼EÄ2À#Är»NÓKß‰Œt”Eœ2˜#œr“N¤E¬2¨#¨q´2©v¼©{Ó$;Ó<Ó=ð>ð >ð >à×Ñ˜BŸG™GÓ$×+Ñ+¬D´°q¸!³¼eÀAÀr»lÓ,KÔLÐLÐLØ×Ñ˜BÓ×&Ñ&¤t¬E°!°Q«K¼¸qÀ"»Ó'FÔGÐGÐGØ�K‰Kœ˜a ›Ó$ q¬3¬q°1©u«:¡~¼¼QÀ!¹VÀa¹ZÓ8HÑ'HÑH×PÑPÐQRÔSÐSÐSÜ�"”g˜a  AÓ&Ó'×.Ñ.¬u°S¸#«Ó?À5ÑHÐHÐHÜ”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5×<Ñ<¼VÄGÈBÐPQÐSTÓDUÔW^Ð_aÐcdÐfgÓWhÓ=iÓjÐnrÑrÐrÐrÜ”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5×<Ñ<¼VÀBÌÐPQÐSTÐVWÓHXÓ=YÓZÐ^cÑcÐcÐcÜ�”W˜Q  2Ó&Ó'×.Ñ.¬u°S¸#«Ó?À5ÑHÐHÐHÜ�”W˜Q  2Ó&Ó'×.Ñ.¬u°R¼ÀÀAÀrÓ9JÓ/KÓLÐPTÑTÐTÐTÜ�&œ1œa˜&Ó!×4Ñ4´U¸1¸aÀ³^ÓD×KÑKÜŒw�q˜!˜QÓ¤¬¯©´·±¸Ó!;Ó<ô>ð >ð >ä�&œ1œa˜&Ó!×7Ñ7¼¸aÀÀA»ÓG×NÑNÌyÐY_Ôbc×bhÑbhÔjk×jpÑjpÐaqÓOrÔsÐsÐsÜ�"”g˜a  AÓ&Ó'×.Ñ.¬u°S¸#«Ó?À5ÑHÐHÑHrC   c                  óÜ  — t        dd«      } t        dd«      }t        | |«      }t        t        t        t        «      t        t        dt        z   «      «      }t        |j	                  «       «      t
        t        z
  t        t
        z
  fv sJ ‚t        |j	                  «       «      t
        t        z
  t        t
        z
  fv sJ ‚t        |j	                  «       «      t
        t        z
  t        t
        z
  fv sJ ‚t        |j	                  «       «      t
        t        z
  t        t
        z
  fv sJ ‚t        | t        dd«      «      j	                  t
        t        ¬«      t        k(  sJ ‚t        | t        dd«      «      j	                  «       t
        k(  sJ ‚t        t        dd«      t        dd«      «      j	                  «       t
        dz
  k(  sJ ‚t        |t        dd«      «      j	                  «       t        dz
  k(  sJ ‚t        t        t        t        t        «      t        t        t        t        «      «      j	                  «       t
         t        z   t
         t        z   fk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  «       t
         t        z   dz
  t
         t        z   dz
  fk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  «       t
        dz
  t         t        z   dz
  fk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  «       t        dz
  t
         t        z   dz
  fk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  «       t
         t        z   dz
  t        dz
  fk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  «       t
        dz
  t        dz
  fk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  «       t
        dz
  t        dz
  fk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  «       t        dz
  t        dz
  fk(  sJ ‚y )Nr   r6   r:   r<   r4   rR   )
r   r   r,   r   Úequationr&   r)   r   r-   r*   )r~   r·   rv   r»   s       r@   Útest_equationrï   Æ  s¤  € Ü	ˆq�!‹€BÜ	ˆq�!‹€BÜ	ˆb�"‹€BÜ	Œe”Bœ‹mœU¤2 q¬2¡vÓ.Ó	/€Bä�B—K‘K“MÓ"¤q¬1¡u¬a´!©e nÑ4Ð4Ð4Ü�B—K‘K“MÓ"¤q¬2¡v¬r´A©vÐ&6Ñ6Ð6Ð6Ü�B—K‘K“MÓ"¤q¬1¡u¬a´!©e nÑ4Ð4Ð4Ü�B—K‘K“MÓ"¤q¬2¡v¬r´A©vÐ&6Ñ6Ð6Ð6ä�”E˜!˜Q“KÓ ×)Ñ)¬A´Ð)Ó3´qÒ8Ð8Ð8Ü�”E˜!˜Q“KÓ ×)Ñ)Ó+¬qÒ0Ð0Ð0Ü”�a˜“œU 1 a›[Ó)×2Ñ2Ó4¼¸A¹Ò=Ð=Ð=Ü�”E˜!˜Q“KÓ ×)Ñ)Ó+¬q°1©uÒ4Ð4Ð4ä”%œœB¤Ó#¤U¬2¬r´2Ó%6ó 
ß
‰(‹*œ!˜œa™¤! ¤a¡Ð(ò)ð )ð )ä”%˜˜1˜a“.¤%¨¨1¨a£.ó 
ß
‰(‹*œ!˜œa™ !™¤a R¬!¡V¨a¡ZÐ0ò1ð 1ð 1ä”%˜˜1˜a“.¤%¨¨1¨a£.ó 
ß
‰(‹*œ˜Q™¤ ¤Q¡¨¡
Ð+ò,ð ,ð ,ä”%˜˜1˜a“.¤%¨¨1¨a£.ó 
ß
‰(‹*œ˜Q™¤ ¤Q¡¨¡
Ð+ò,ð ,ð ,ä”%˜˜1˜a“.¤%¨¨1¨a£.ó 
ß
‰(‹*œ!˜œa™ !™¤Q¨¡UÐ+ò,ð ,ð ,ä”%˜˜1˜a“.¤%¨¨1¨a£.ó 
ß
‰(‹*œ˜Q™¤ A¡˜ò'ð 'ð 'ä”%˜˜1˜a“.¤%¨¨1¨a£.ó 
ß
‰(‹*œ˜Q™¤ A¡˜ò'ð 'ð 'ä”%˜˜1˜a“.¤%¨¨1¨a£.ó 
ß
‰(‹*œ˜Q™¤ A¡˜ò'ð 'ñ 'rC   c                  óÎ  — t        dd«      } t        dd«      }t        t        t        «      }t        t        t        «      }t        | |«      }t        t        dd«      t        dd«      «      }t	        t        dd«      t        dd«      «      }t	        t        dd«      t        dd«      «      }t	        | |«      }t	        t        dd«      t        dd«      «      }	t	        t        dd«      t        dd«      «      }
t        | |«      }t        t        dd«      t        dd«      «      }t        t        dd«      t        dd«      «      }t        || «      | gk(  sJ ‚t        |t        t        dt        z   «      «      g k(  sJ ‚t        |t        ||«      «      |gt        ||«      gfv sJ ‚t        ||j                  t        t        dt        z   «      «      «      g k(  sJ ‚t        ||«      |gk(  sJ ‚t        ||«      |gk(  sJ ‚t        ||«      |gk(  sJ ‚t        ||«      |gk(  sJ ‚t        t        t        dd	«      t        d	d	«      «      t        t        d
d
«      t        d
d«      «      «      g k(  sJ ‚t        ||«      |gk(  sJ ‚t        |t	        t        dd«      t        dd«      «      «      t        t        dd«      t        dd«      «      gk(  sJ ‚t        |t	        t        dd«      t        dd«      «      «      t        dd«      gk(  sJ ‚t        |t        t        dd«      t        dd«      «      «      t        t        dd«      t        dd«      «      gk(  sJ ‚|j                  |«      |gk(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      g k(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      t        | t        dd«      «      gk(  sJ ‚|j                  t	        || «      «      |gk(  sJ ‚t	        || «      j                  |	«      g k(  sJ ‚|j                  |
«      |
j                  |«      cxk(  r|
gk(  sJ ‚ J ‚t        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚t        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚t	        t        dd«      t        dd«      «      j                  t	        t        dd«      t        dd«      «      «      t        t        dd«      t        dd«      «      gk(  sJ ‚t        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚t        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚t        dd«      j                  t        dd«      «      t        d«      gk(  sJ ‚t        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚t        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚t        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      t        dd«      gk(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      t        t        dd«      |«      gk(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      g k(  sJ ‚|j                  t        t        dd«      | «      «      | gk(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      t        | t        dd«      «      gk(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      g k(  sJ ‚|j                  |«      |gk(  sJ ‚|j                  |«      |gk(  sJ ‚t        ddd«      t        t        dd«      t        dd«      t        dt        dt        z  dz  «      z  t        dt        z  dz  «      z  dt!        d«      z  t        dt        z  dz  «      z  t        dt        z  dz  «      z  «      «      k(  sJ ‚t        dd«      j                  t	        dd«      «      t        dd«      gk(  sJ ‚t        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚t	        dd«      j                  t	        dd«      «      t        dd«      gk(  sJ ‚t	        dd«      j                  t        dd«      «      t        dd«      gk(  sJ ‚t	        dd«      j#                  t        dd«      «      d u sJ ‚t        dd«      t        dd«      v sJ ‚|j                  t	        dd!«      «      t        dd«      gk(  sJ ‚y )"Nr   r6   r4   rR   r<   ç      à?g      Ð?rÍ   r¨   r§   r7   r8   rZ   )r4   r   rÛ   )r<   r   )rR   r   )r7   r   ©r    r   rÜ   éx   rÅ   é4   r9   é   éZ   é-   rg   r]   )r¨   r¨   rŸ   T)rR   rR   )r   r,   r-   r   r   r   r   r‰   r   r   r   Úasar   r   r   r   r   r†   )r~   r·   rÈ   Úp4rv   r»   r½   r¾   Úr4Úr6Úr7r¿   rÞ   Ús3s                 r@   Útest_intersection_2drþ   è  s$	  € Ü	ˆq�!‹€BÜ	ˆq�!‹€BÜ	Œr”2‹€BÜ	Œr”2‹€Bä	ˆb�"‹€BÜ	Œe�A�q‹kœ5  A›;Ó	'€Bä	ŒU�1�a‹[œ%  1›+Ó	&€BÜ	ŒU�1�a‹[œ%  1›+Ó	&€BÜ	ˆR�‹€BÜ	ŒU�1�a‹[œ%  1›+Ó	&€BÜ	ŒU�3˜‹_œe A q›kÓ	*€Bä	��R‹€BÜ	”�t˜TÓ"¤E¨#¨s£OÓ	4€BÜ	”�q˜!“œe A q›kÓ	*€Bä˜˜BÓ B 4Ò'Ð'Ð'Ü˜œE¤" a¬"¡fÓ-Ó.°"Ò4Ð4Ð4Ü˜œD  R›LÓ)¨r¨d´T¸"¸b³\°NÐ-CÑCÐCÐCÜ˜˜B×,Ñ,¬U´2°q¼2±vÓ->Ó?Ó@ÀBÒFÐFÐFÜ˜˜BÓ B 4Ò'Ð'Ð'Ü˜˜BÓ B 4Ò'Ð'Ð'Ü˜˜BÓ B 4Ò'Ð'Ð'Ü˜˜BÓ B 4Ò'Ð'Ð'Üœ¤ c¨2£´°b¸"³Ó>ÄÌÈbÐRTËÔW\Ð]_ÐabÓWcÓ@dÓeÐikÒkÐkÐkÜ˜˜BÓ B 4Ò'Ð'Ð'Ü˜œC¤ a¨£¬U°1°a«[Ó9Ó:¼wÄuÈQÐPQÃ{ÔTYÐZ[Ð]^ÓT_Ó?`Ð>aÒaÐaÐaÜ˜œC¤ a¨£¬U°2°r«]Ó;Ó<ÄÀqÈ!ÃÀÒMÐMÐMÜ˜œG¤E¨!¨Q£K´°q¸!³Ó=Ó>Ä7Ì5ÐQRÐTUË;ÔX]Ð^_ÐabÓXcÓCdÐBeÒeÐeÐeà�?‰?˜2Ó 2 $Ò&Ð&Ð&Ø�?‰?œ7¤5¨¨A£;´°a¸³Ó<Ó=ÀÒCÐCÐCØ�?‰?œ7¤5¨¨R£=´%¸¸S³/ÓBÓCÌÐPRÔTYÐZ]Ð_bÓTcÓHdÐGeÒeÐeÐeØ�?‰?œ3˜r 2›;Ó'¨B¨4Ò/Ð/Ð/Üˆr�2‹;×#Ñ# BÓ'¨2Ò-Ð-Ð-Ø�?‰?˜2Ó "§/¡/°"Ó"5Ô=¸"¸Ò=Ð=Ñ=Ð=Ð=Ü�˜Ó ×-Ñ-¬e°F¸FÓ.CÓDÌÈvÐW]ÓI^ÐH_Ò_Ð_Ð_Ü�˜Ó ×-Ñ-¬e°F¸FÓ.CÓDÌÈvÐW]ÓI^ÐH_Ò_Ð_Ð_ÜŒu�Q˜‹{œE ! Q›KÓ(×5Ñ5´c¼%ÀÀ1»+ÄuÈQÐPRÃ|Ó6TÓUÜ”E˜!˜Q“K¤ q¨!£Ó-Ð.ò/ð /ð /ô �V˜VÓ$×1Ñ1Ü�&˜&Ó!ó#Ü'0°¸Ó'@Ð&AòBð Bð Bä�V˜VÓ$×1Ñ1Ü�&˜&Ó!ó#Ü'0°¸Ó'@Ð&AòBð Bð Bä�V˜VÓ$×1Ñ1Ü�&˜&Ó!ó#Ü'.¨v£Ð&7ò8ð 8ð 8ä�V˜VÓ$×1Ñ1Ü�&˜&Ó!ó#Ü'0°¸Ó'@Ð&AòBð Bð Bä�V˜VÓ$×1Ñ1Ü�'˜6Ó"ó$Ü(1°&¸&Ó(AÐ'BòCð Cð Cä�V˜VÓ$×1Ñ1Ü�'˜6Ó"ó$Ü(/°°1« ò7ð 7ð 7à�?‰?œ7¤5¨¨A£;´°a¸³Ó<Ó=Ä%ÈÈ1Ã+ÀÒNÐNÐNØ�?‰?œ7¤5¨¨c£?´E¸#¸s³OÓDÓEÌ'ÔRWÐX[Ð]`ÓRaÐceÓJfÐIgÒgÐgÐgØ�?‰?œ7¤5¨¨A£;´°a¸³Ó<Ó=ÀÒCÐCÐCØ�?‰?œ7¤5¨¨R£=°"Ó5Ó6¸2¸$Ò>Ð>Ð>Ø�?‰?œ7¤5¨¨R£=´%¸¸S³/ÓBÓCÌÐPRÔTYÐZ]Ð_bÓTcÓHdÐGeÒeÐeÐeØ�?‰?œ4¤ a¨£¬U°1°a«[Ó9Ó:¸bÒ@Ð@Ð@Ø�?‰?˜2Ó 2 $Ò&Ð&Ð&Ø�?‰?˜2Ó 2 $Ò&Ð&Ð&äˆs�A�r‹?ÜÜ�Q˜‹{Ü�Q˜‹{Ü�Rœ#˜b¤2™g¨™lÓ+Ñ+¬c°!´b±&¸2±+Ó.>Ñ>Øœ˜a›‘[¤3 r¬B¡w°¡|Ó#4Ñ4´s¸1¼r¹6ÀB¹;Ó7GÑGóIóJòJð Jð Jô �˜Ó×,Ñ,¬S°¸Ó-@ÓAÄeÈAÈqÃkÀ]ÒRÐRÐRÜ�˜Ó×,Ñ,¬W°V¸VÓ-DÓEÌ%ÐPQÐSTË+ÈÒVÐVÐVÜˆv�vÓ×+Ñ+¬C°¸Ó,?Ó@ÄUÈ1ÈaÃ[ÀMÒQÐQÐQÜˆv�vÓ×+Ñ+¬G°F¸FÓ,CÓDÌÈqÐRSËÈÒUÐUÐUÜˆv�xÓ ×)Ñ)¬'°&¸&Ó*AÓBÀdÑJÐJÐJÜ�6˜6Ó"¤d¨6°8Ó&<Ñ<Ð<Ð<Ø�?‰?œ3˜v vÓ.Ó/´E¸!¸Q³K°=Ò@Ð@Ñ@rC   c            	      ó.  — t        t        t        dd«      z  «      } t        d«      }| dz  }d| z  | |z   z  d| z  d|z  |z  z
  |dz
  z  g\  }}t	        t        dd«      t        dt        d«       «      «      j                  t        ||«      «      d	u sJ ‚y )
Né   r÷   r4   r<   rÅ   é   r   r6   T)r   r   r   r   r   r   r†   )Úx0r,   Úx2r&   r)   s        r@   Útest_line_intersectionr  R  s–   € ä	ŒR”˜˜RÓ Ñ Ó	!€BÜ	ˆa‹€BØ	ˆQ‰€BØˆb‰D�"�r‘'‰N˜R ™U Q r¡T¨"¡W™_¨r°A©vÑ6Ð7�D€A€qÜ”�a˜“œU 1¤t¨A£w hÓ/Ó0×9Ñ9¼%ÀÀ1»+ÓFÈ$ÑNÐNÑNrC   c                  óÞ  — t        ddd«      } t        ddd«      }t        | |«      }t        t        ddd«      t        ddd«      «      }t        t        ddd«      t        ddd«      «      }t        t        ddd«      t        ddd«      «      }t        t        ddd«      t        ddd«      «      }t	        || «      | gk(  sJ ‚t	        |t        t
        dt
        z   d«      «      g k(  sJ ‚t	        ||j                  | «      «      t        t        ddd«      t        ddd«      «      gk(  sJ ‚t	        ||«      |gk(  sJ ‚t	        ||«      |gk(  sJ ‚t	        ||«      |gk(  sJ ‚t	        |t        t        ddd«      t        ddd«      «      «      t        ddd«      gk(  sJ ‚t	        |t        t        ddd«      t        ddd«      «      «      t        t        ddd«      t        ddd«      «      gk(  sJ ‚t	        t        t        ddd«      t        ddd«      «      t        t        ddd«      t        ddd«      «      «      t        ddd«      gk(  sJ ‚t	        |t        t        ddd«      t        ddd«      «      «      t        t        ddd«      t        ddd«      «      gk(  sJ ‚t	        ||«      |gk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  t        t        ddd«      t        ddd«      «      «      t        ddd«      gk(  sJ ‚t        dd«      j	                  t        dd	«      «      t        ddd«      gk(  sJ ‚t        d
t        t        f«      j	                  t        dt        t        f«      «      t        t        t        «      gk(  sJ ‚t        t        ddd«      t        ddd«      «      j	                  t        t        ddd«      t        ddd«      «      «      g k(  sJ ‚y )Nr   r6   r4   rR   r<   r8   rã   )r   r<   r4   rä   rZ   r¥   )r   r   r   r   r   r,   r‰   r.   )r~   r·   rv   rw   r½   r¾   r¿   s          r@   Útest_intersection_3dr  [  sç  € Ü	��A�qÓ	€BÜ	��A�qÓ	€Bä	��B‹€BÜ	”˜˜1˜aÓ ¤'¨!¨Q°Ó"2Ó	3€Bä	Œw�q˜!˜QÓ¤¨¨A¨qÓ!1Ó	2€BÜ	Œw�q˜!˜QÓ¤¨¨A¨qÓ!1Ó	2€Bä	”7˜1˜a Ó#¤W¨Q°°1Ó%5Ó	6€Bä˜˜BÓ B 4Ò'Ð'Ð'Ü˜œG¤B¨¬B©°Ó2Ó3°rÒ9Ð9Ð9Ü˜˜B×,Ñ,¨RÓ0Ó1´f¼WÀQÈÈ1Ó=MÌwÐWXÐZ[Ð]^ÓO_Ó6`Ð5aÒaÐaÐaÜ˜˜BÓ B 4Ò'Ð'Ð'Ü˜˜BÓ B 4Ò'Ð'Ð'Ü˜˜BÓ B 4Ò'Ð'Ð'Ü˜œE¤'¨!¨Q°Ó"2´G¸BÀÀBÓ4GÓHÓIÌgÐVWÐYZÐ\]ÓN^ÐM_Ò_Ð_Ð_Ü˜œI¤g¨a°°AÓ&6¼ÀÀ1ÀaÓ8HÓIÓJÜ”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5ðO7ò 7ð 7ð 7äœœg a¨¨AÓ.´¸¸A¸qÓ0AÓBÄEÌ'ÐRSÐUVÐXYÓJZÔ\cÐdeÐgiÐklÓ\mÓDnÓoÜ�q˜!˜QÓÐ ò!ð !ð !ä˜œE¤'¨!¨Q°Ó"2´G¸A¸qÀ!Ó4DÓEÓFÜ”g˜a  AÓ&¬°°1°aÓ(8Ó9Ð:ò;ð ;ð ;ä˜˜BÓ B 4Ò'Ð'Ð'ä”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5×BÑBÄ6Ì'ÐRSÐUVÐXYÓJZÔ\cÐdeÐghÐjkÓ\lÓCmÓnÜ�A�q˜!ÓÐòð ð ä�)˜YÓ'×4Ñ4´V¸IÀyÓ5QÓRÔW^Ð_`ÐbcÐefÓWgÐVhÒhÐhÐhÜ�&œ1œa˜&Ó!×.Ñ.¬v°f¼qÄ!¸fÓ/EÓFÜ”A”q‹Mˆ?òð ð ô ”˜˜A˜qÓ!¤7¨1¨a°Ó#3Ó4×AÑAÄ%ÌÐPQÐSTÐVWÓHXÔZaÐbcÐegÐijÓZkÓBlÓmÐqsÒsÐsÑsrC   c                  óB  — t        ddd«      } t        ddd«      }t        t        t        t        «      }t        t        t        t        «      t        t        t        «      «      }t        t        t        t        «      t        t        dt        z   «      «      }t        j
                  t        t        dd«      t        dd«      «      |«      sJ ‚t        j
                  |t        t        t        t        «      t        t        dt        z   «      «      «      du sJ ‚t        j
                  ||j                  t        t         t        «      «      «      sJ ‚t        j
                  ||j                  t        dd«      «      «      sJ ‚t        | |«      j                  t        | |«      «      sJ ‚t        t        ddd«      t        ddd«      «      j                  t        t        ddd«      t        ddd«      «      «      du sJ ‚t        | |«      j                  |«      t        t        t        t        t        «      t        t        dz   t        dz   t        dz   «      «      k(  sJ ‚t        | |«      j                  |j                  «      t        t        t        t        t        «      t        t        dz   t        dz   t        dz   «      «      k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        t        ddd«      t        ddd«      «      «      du sJ ‚y )Nr   r6   FrR   )	r   r,   r   r   r-   Úis_parallelr‰   r   rê   )r~   r·   rÈ   rw   Úl2_1s        r@   Útest_is_parallelr
    sw  € Ü	��A�qÓ	€BÜ	��A�qÓ	€BÜ	””RœÓ	€Bä	Œe”Bœ‹mœU¤2¤r›]Ó	+€BÜ””bœ"“œu¤R¨¬R©Ó0Ó1€Dä×ÑœD¤ q¨!£¬e°A°q«kÓ:¸BÔ?Ð?Ð?Ü×Ñ˜B¤¤U¬2¬r£]´E¼"¸aÄ"¹fÓ4EÓ FÓGÈ5ÑPÐPÐPÜ×Ñ˜B × 0Ñ 0´¼°s¼B³Ó @ÔAÐAÐAÜ×Ñ˜D $×"4Ñ"4´U¸1¸a³[Ó"AÔBÐBÐBÜ�"�b‹>×%Ñ%¤f¨R°£nÔ5Ð5Ð5Ü”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5×AÑAÄ&ÌÐQRÐTUÐWXÓIYÔ[bÐcdÐfgÐijÓ[kÓBlÓmÐqvÑvÐvÐvÜ�"�b‹>×'Ñ'¨Ó+¬v´g¼bÄ"ÄbÓ6IÜ6=¼bÀ1¹fÄbÈ1ÁfÌbÐSTÉfÓ6Uó0Wò Wð Wð Wä�"�b‹>×'Ñ'¨¯©Ó0Ü”'œ"œb¤"Ó%¤w¬r°A©v´r¸A±v¼rÀA¹vÓ'FÓGòHð Hð Hä”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5×AÑAÄ&ÌÐQRÐTUÐWXÓIYÔ[bÐcdÐfgÐijÓ[kÓBlÓmÐqvÑvÐvÑvrC   c                  óæ  — t        dd«      } t        dd«      }t        | |«      }t        t        t        t        «      t        t        t        «      «      }t        | t        t         t        «      «      }t        j                  ||«      sJ ‚t        j                  ||«      du sJ ‚|j                  «       }|j                  |«      |k(  sJ ‚t        j                  t        t        ddd«      t        ddd«      «      t        t        ddd«      t        ddd«      «      «      du sJ ‚t        j                  t        t        ddd«      t        ddd«      «      t        t        ddd«      t        ddd«      «      «      du sJ ‚t        j                  t        t        ddd«      t        ddd«      «      t        t        t        t        t        «      t        t        t        t        «      «      «      du sJ ‚y r}   )	r   r   r,   r-   Úis_perpendicularr©   rq   r   r   )r~   r·   rv   rw   Úl1_1r˜   s         r@   Útest_is_perpendicularr  ”  s¶  € Ü	ˆq�!‹€BÜ	ˆq�!‹€Bä	ˆb�"‹€BÜ	Œe”Bœ‹mœU¤2¤r›]Ó	+€BÜ�”Eœ2˜#œr“NÓ#€Dä× Ñ   TÔ*Ð*Ð*Ü× Ñ   RÓ(¨EÑ1Ð1Ð1Ø
�‰Ó€AØ×#Ñ# AÓ&¨!Ò+Ð+Ð+ä×"Ñ"¤6¬'°!°Q¸Ó*:¼GÀAÀqÈ!Ó<LÓ#MÜ#)¬'°!°Q¸Ó*:¼GÀAÀqÈ!Ó<LÓ#MóOØRVñWð Wð Wä×"Ñ"¤6¬'°!°Q¸Ó*:¼GÀAÀqÈ!Ó<LÓ#MÜ#)¬'°!°Q¸Ó*:¼GÀAÀqÈ!Ó<LÓ#MóOØRWñXð Xð Xä×"Ñ"¤6¬'°!°Q¸Ó*:¼GÀAÀqÈ!Ó<LÓ#MÜ#)¬'´"´b¼"Ó*=¼wÄrÌ2ÌrÓ?RÓ#SóUØX]ñ^ð ^ñ ^rC   c            
      ó(  — t        dd«      } | j                  dd«      }t        t        ddd«      t        ddd«      «      }t	        t        dd«      t        dd«      «      }t        t        dd«      | «      }|j                  t        | |«      «      sJ ‚|j                  |«      du sJ ‚|j                  t        t        ddd«      t        ddd«      «      «      du sJ ‚|j                  t        t        ddd«      t        ddd«      «      «      du sJ ‚y )Nrœ   r<   r6   r   FT)r   r«   r   r   r   r   Ú
is_similarr   )r~   r·   r½   r¾   r¿   s        r@   Útest_is_similarr  ©  sô   € Ü	ˆt�TÓ	€BØ	�‰�!�Q‹€Bä	Œw�q˜!˜QÓ¤¨¨A¨qÓ!1Ó	2€BÜ	ŒU�1�a‹[œ%  1›+Ó	&€Bä	”�q˜!“˜bÓ	!€Bà�=‰=œ  R›Ô)Ð)Ð)Ø�=‰=˜Ó Ñ%Ð%Ð%Ø�=‰=œ¤¨¨1¨aÓ 0´'¸!¸QÀÓ2BÓCÓDÈÑLÐLÐLØ�=‰=œ¤¨¨1¨aÓ 0´'¸!¸QÀÓ2BÓCÓDÈÑMÐMÑMrC   c                  ó¬  — t        t        t        t        t        «      t        t        t        t        «      «      } t	        t        dd«      t        dd«      «      j                  t        u sJ ‚| j                  t        d«      t        t        t        z
  dz  «      z  k(  sJ ‚t        t        ddd«      t        ddd«      «      j                  t        u sJ ‚y )Nr   r6   r4   r<   )
r   r   r,   r-   r   r   rt   r   r   r   )rÞ   s    r@   Útest_lengthr  ¸  sœ   € Ü	”7œ2œr¤2Ó&¬´´B¼Ó(;Ó	<€BÜ”�a˜“œU 1 a›[Ó)×0Ñ0´BÑ6Ð6Ð6Ø�9‰9œ˜Q›¤$¬¬R©°A¡~Ó"6Ñ6Ò6Ð6Ð6Ü”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5×<Ñ<ÄÑBÐBÑBrC   c                  óÞ  — t        dd«      } t        ddd«      }t        t         t        «      }t        | t        dd«      «      }t	        t        ddd«      t        ddd«      «      }t	        |t        ddd«      «      }t        t        dd«      t        dd«      «      }t        t        dd«      t        dd«      «      }t        t        dd«      t        dd«      «      }t        t        t        t        «      t        t        t        «      «      j                  t        t        t        «      «      t        t        t        «      k(  sJ ‚t        t        t        t        «      t        t        dt        z   «      «      j                  t        dd«      «      t        t        d«      k(  sJ ‚t        t        dd«      t        dd«      «      j                  |«      t        t        dd«      t        dd«      «      k(  sJ ‚t        t        dd«      t        dd«      «      j                  |«      t        t        dd«      t        dd«      «      k(  sJ ‚|j                  |«      t        k(  sJ ‚|j                  |«      | k(  sJ ‚|j                  t        | t        dd	«      «      «      t        t        dd«      t        dd«      «      k(  sJ ‚|j                  t        | t        dd«      «      «      | k(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      t        dd«      k(  sJ ‚|j                  t        t        dd«      t        dd
«      «      «      t        t        dd«      t        dd«      «      k(  sJ ‚|j                  t        t        dd	«      t        d
d«      «      «      t        t        dd«      t        dd«      «      k(  sJ ‚|j                  t        t        dd«      t        dd«      «      «      t        dd«      k(  sJ ‚|j                  t        t        dd«      t        dd
«      «      «      t        t        dd«      t        dd«      «      k(  sJ ‚|j                  t        t        dd	«      t        d
d«      «      «      t        t        dd«      t        dd«      «      k(  sJ ‚|j                  t        |t        dd	d«      «      «      t        t        ddd«      t        t        dd«      t        dd«      t        dd«      «      «      k(  sJ ‚|j                  t        |t        ddd«      «      «      t        t        ddd«      t        t        dd«      t        dd«      t        dd«      «      «      k(  sJ ‚|j                  t        d	d	d«      «      t        d	d«      k(  sJ ‚|j                  t	        t        ddd«      t        ddd«      «      «      j                  |«      sJ ‚y )Nr   r6   r<   rñ   r    rR   r8   r4   r7   r§   rÍ   )r   r   r,   r   r   r   r   r   r-   r‹   r   r   r   rˆ   )	r~   r·   rÈ   rv   rw   r»   r½   r¿   rÞ   s	            r@   Útest_projectionr  ¿  s  € Ü	ˆq�!‹€BÜ	��A�qÓ	€BÜ	”ˆs”B‹€Bä	ˆb”%˜˜1“+Ó	€BÜ	”˜˜1˜aÓ ¤'¨!¨Q°Ó"2Ó	3€BÜ	�”G˜A˜q !Ó$Ó	%€Bä	ŒU�1�a‹[œ%  1›+Ó	&€Bä	”˜˜A“¤¨¨1£Ó	.€BÜ	”˜˜A“¤¨¨3£Ó	0€Bä””bœ"“œu¤R¬›}Ó-×8Ñ8¼¼rÄ2»ÓGÌ5ÔQSÔUWË=ÒXÐXÐXÜ””bœ"“œu¤R¨¬R©Ó0Ó1×<Ñ<¼UÀ1Àa»[ÓIÌUÔSUÐWXË\ÒYÐYÐYÜ”5˜˜Q“<¤ q¨!£Ó-×8Ñ8¸Ó<ÄÌÈbÐRSËÔV[Ð\]Ð_`ÓVaÓ@bÒbÐbÐbÜ”5˜˜A“;¤ b¨!£Ó-×8Ñ8¸Ó<ÄÌÈaÐQRËÔUZÐ[]Ð_`ÓUaÓ@bÒbÐbÐbØ�=‰=˜Ó¤Ò(Ð(Ð(Ø�=‰=˜Ó Ò"Ð"Ð"Ø�=‰=œ˜R¤ r¨1£Ó.Ó/´3´u¸QÀ³{ÄEÈ!ÈQÃKÓ3PÒPÐPÐPØ�=‰=œ˜R¤ r¨1£Ó.Ó/°2Ò5Ð5Ð5Ø�=‰=œœU 1 a›[¬%°°B«-Ó8Ó9¼UÀ1Àa»[ÒHÐHÐHØ�=‰=œœU 1 a›[¬%°°B«-Ó8Ó9¼WÄUÈ1ÈaÃ[ÔRWÐXYÐ[\ÓR]Ó=^Ò^Ð^Ð^Ø�=‰=œ¤ r¨1£¬u°R¸«~Ó>Ó?Ä7Ì5ÐQRÐTUË;ÔX]Ð^_ÐabÓXcÓCdÒdÐdÐdØ�=‰=œœU 1 a›[¬%°°B«-Ó8Ó9¼UÀ1Àa»[ÒHÐHÐHØ�=‰=œœU 1 a›[¬%°°B«-Ó8Ó9¼WÄUÈ1ÈaÃ[ÔRWÐXYÐ[\ÓR]Ó=^Ò^Ð^Ð^Ø�=‰=œ¤ r¨1£¬u°R¸«~Ó>Ó?Ä7Ì5ÐQRÐTUË;ÔX]Ð^_ÐabÓXcÓCdÒdÐdÐdà�=‰=œ˜r¤7¨2¨q°!Ó#4Ó5Ó6¼%ÄÈÈ1ÈaÓ@PÔRYÔZbÐcdÐfgÓZhÔjrÐstÐvwÓjxô  {Cð  DEð  GHó  {Ió  SJó  ;Kò  Kð  Kð  KØ�=‰=œ˜r¤7¨2¨q°!Ó#4Ó5Ó6¼%ÄÈÈ1ÈaÓ@PÔRYÔZbÐcdÐfgÓZhÔjrÐstÐvwÓjxô  {Cð  DEð  GHó  {Ió  SJó  ;Kò  Kð  Kð  KØ�=‰=œ  A qÓ)Ó*¬g°a¸«mÒ;Ð;Ð;Ø�=‰=œ¤¨¨1¨aÓ 0´'¸!¸QÀÓ2BÓCÓD×KÑKÈBÔOÐOÑOrC   c                  óà  — t        ddd«      t        ddd«      t        ddd«      }}} t        | |«      }|j                  |«      }|j                  |k(  sJ ‚|j                  |v sJ ‚t        dd«      t        dd«      t        dd«      }}} t        | |«      }|j                  |«      }|j                  |k(  sJ ‚|j
                  j                  ||j                  |«      z
  j                  k(  sJ ‚y )Nr   r<   r4   rR   r    )r   r   rŠ   r~   r·   Ú	directionÚunitr‹   )r~   r·   rÈ   rÓ   r˜   s        r@   Útest_perpendicular_liner  â  sØ   € ä�q˜!˜Q“¤ q¨!¨Q£´°r¸1¸a³ˆBˆ€BÜˆR�‹€AØ	×Ñ˜RÓ €AØ�4‰4�2Š:Ðˆ:Ø�4‰4�1‰9Ðˆ9ä�q˜!“œe A q›k¬5°°Q«<ˆBˆ€BÜˆR�‹€AØ	×Ñ˜RÓ €AØ�4‰4�2Š:Ðˆ:à�;‰;×Ñ  Q§\¡\°"Ó%5Ñ 5×;Ñ;Ò;Ð;Ñ;rC   c            
      ó�  — t        t        dd«      t        dd«      «      } t        t        t        j                  t        j                  «      t        t        dd«      t        dd«      «      «      }t        t        t        j                  t        j                  «      t        t        dd«      t        dd«      «      «      j                  }| j                  «       j                  |«      sJ ‚| j                  |«      j                  t        | j                  |«      «      sJ ‚| j                  |dz   «      j                  |«      sJ ‚y )Nr   r6   r4   r<   r8   rÛ   )	r   r   r   r   rs   r   rr   Úperpendicular_bisectorrˆ   )r¿   ÚalineÚon_lines      r@   Útest_perpendicular_bisectorr  ò  sè   € Ü	”�q˜!“œe A q›kÓ	*€BÜ””q—v‘vœqŸv™vÓ&¬¬h°q¸!«n¼hÀrÈ1»oÓ(NÓO€EÜ”eœAŸF™F¤A§F¡FÓ+¬U´8¸A¸q³>Ä8ÈBÐPQÃ?Ó-SÓT×]Ñ]€Gà×$Ñ$Ó&×-Ñ-¨eÔ4Ð4Ð4Ø×$Ñ$ WÓ-×4Ñ4´W¸R¿[¹[È'Ó5RÔSÐSÐSØ×$Ñ$ W¨vÑ%5Ó6×=Ñ=¸eÔDÐDÑDrC   c                  ó€  ‡‡— t        dd¬«      \  Š} t        ‰df| df«      Št        t        d„ «       t        t        d„ «       t        t
        ˆˆfd„«       t        t        d„ «       t        t        d	„ «       t        t        d
„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       y )Nr/   Tr'   r   c                  ó   — t        dd«      S ©Nrg   r6   r?   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>   s   € œd 6¨1›o€ rC   c                  óB   — t        t        dd«      t        dd«      «      S ©Nr   )r   r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € œt¤E¨!¨Q£K´°q¸!³Ó=€ rC   c                  ó&   •— t        d‰ z  d«      ‰v S )Nr<   r   )r   )ÚdÚss   €€r@   rA   ztest_raises.<locals>.<lambda>  s   ø€ ¤ a¨!¡e¨Q£°1Ð 4€ rC   c                  ó,   — t        t        dd«      «      S )NrÑ   )r   r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € œu¤U¨3°£_Ó5€ rC   c                  óF   — t        t        ddd«      t        ddd«      «      S r#  ©r   r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € œv¤g¨a°°AÓ&6¼ÀÀ1ÀaÓ8HÓI€ rC   c                  ó   — t        dd«      S r!  )r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € œf V¨QÓ/€ rC   c                  ó.   — t        t        ddd«      «      S r#  r)  rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € œv¤g¨a°°AÓ&6Ó7€ rC   c                  ó   — t        dd«      S r!  )r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € œc &¨!›n€ rC   c                  óˆ   — t        t        dd«      t        dd«      «      j                  t        t        dd«      d«      «      S )Nr   r6   )r   r   r‹   r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s3   € ¤$¤u¨Q°£{´E¸!¸Q³KÓ"@ß‰J”vœe A q›k¨1Ó-Ó.ð rC   )r
   r   r$   Ú	TypeErrorrL   r!   r   )Úer%  r&  s    @@r@   Útest_raisesr0  ü  sŽ   ù€ Ü�5˜tÔ$�D€A€qÜ��A�˜˜A˜Ó€Aä
Œ9Ñ-Ô.Ü
Œ:Ñ=Ô>Ü
Œ;Ô4Ô5Ü
Œ:Ñ5Ô6Ü
Œ:ÑIÔJÜ
Œ9Ñ/Ô0Ü
Œ:Ñ7Ô8Ü
Œ9Ñ,Ô-Ü
Œ=ñ /õ 0rC   c                  óø  — t        dt        dz  ¬«      t        dd«      k(  sJ ‚t        dt        dz  ¬«      t        dd«      k(  sJ ‚t        dt         dz  ¬«      t        dd«      k(  sJ ‚t        ddt        z  dz  ¬«      t        dd«      k(  sJ ‚t        dd	t        z  dz  ¬«      t        dd«      k(  sJ ‚t        dd
t        z  dz  ¬«      t        dd«      k(  sJ ‚t        dt        ¬«      t        dd«      k(  sJ ‚t        ddt        z  ¬«      t        dd«      k(  sJ ‚t        ddt        z  ¬«      t        dd«      k(  sJ ‚t        dd¬«      t        dd«      k(  sJ ‚t        ddt        z  ¬«      t        t        dd«      t        dt        d	«       t        dt        d	«      z  dz   «      z  dz  t        dt        d	«      z  dz   «      dz  z
  dz   t        d	«      z   «      «      k(  sJ ‚t        ddt        z  ¬«      t        t        dd«      t        ddt	        dt        z  «      z   «      «      k(  sJ ‚t        dd	¬«      t        dddt	        d	«      z   f«      k(  sJ ‚t        dg d¢¬«      t        t        ddd«      t        d	d	d	«      «      k(  sJ ‚t        dg d¢¬«      t        t        ddd«      t        ddd«      «      k(  sJ ‚t        dg d¢¬«      t        t        ddd«      t        ddd«      «      k(  sJ ‚y )Nrg   rR   r[   rŸ   r<   r]   rÛ   r;   r7   g      @r¥   g      @g      @)r<   r6   r   g333333@r6   r¨   g®Gáz@ri   )rR   rR   rR   rk   rj   r4   )r   r   r   r   r   r   r   rp   rC   r@   Útest_ray_generationr2    sò  € ÜˆvœR !™VÔ$¬¨F°FÓ(;Ò;Ð;Ð;ÜˆvœR !™VÔ$¬¨F°FÓ(;Ò;Ð;Ð;Üˆvœb˜S 1™WÔ%¬¨V°VÓ)<Ò<Ð<Ð<Üˆv˜R¤"™W q™[Ô)¬S°¸Ó-@Ò@Ð@Ð@Üˆv˜Q¤™V a™ZÔ(¬C°¸Ó,?Ò?Ð?Ð?Üˆv˜S¤2™X¨™\Ô*¬c°&¸&Ó.AÒAÐAÐAÜˆvœRÔ ¤C¨°Ó$7Ò7Ð7Ð7Üˆv˜S¤2™XÔ&¬#¨f°fÓ*=Ò=Ð=Ð=Üˆv˜S¤2™XÔ&¬#¨f°fÓ*=Ò=Ð=Ð=Üˆv˜QÔ¤3 v¨vÓ#6Ò6Ð6Ð6Üˆv˜T¤B™YÔ'¬3¬u°Q¸«{Ü/4°Q¼¸a»¸Ä4ÈÌDÐQRËGÉÐVXÑHXÓCYÑ8YÐ\]Ñ8]Ô`dØ34´t¸A³w±;ÀÑ3CóaEØGHñaIñ 9IØKLñ9MÜOSÐTUËwñ9Wó 0Xó,Yò Yð Yð Yô ˆv˜T¤B™YÔ'¬3¬u°Q¸«{Ü/4°Q¸¼CÀÄrÁ	»NÑ8JÓ/Kó,Mò Mð Mð Mäˆv˜QÔ¤3 v°°1´s¸1³v±:¨Ó#?Ò?Ð?Ð?ä�ªIÔ6¼%ÄÈÈ1ÈaÓ@PÔRYÐZ[Ð]^Ð`aÓRbÓ:cÒcÐcÐcÜ�ªIÔ6¼%ÄÈÈ1ÈaÓ@PÔRYÐZ[Ð]^Ð`aÓRbÓ:cÒcÐcÐcÜ�ªIÔ6¼%ÄÈÈ1ÈaÓ@PÔRYÐZ[Ð]^Ð`aÓRbÓ:cÒcÐcÑcrC   c                  óJ  — t        t        t        d«      t        «      } t	        t        t
        t        «      d¬«      }t        t        t        z
  t        t        z   z  «      }|j                  | «      t        t        |z   t        «      t        t        |z
  t        «      gk(  sJ ‚y )Nr   r�   )
r   r   r&   r)   r   r+   r*   r   r   r   )ÚcircleÚlineÚ_ss      r@   Útest_issue_7814r7  #  sp   € Ü”Eœ!˜Q“K¤Ó#€FÜ””aœ“ 1Ô%€DÜ	Œq”1‰u”qœ1‘u‰oÓ	€BØ×Ñ˜VÓ$¬´°R±¼Ó);¼WÄQÈÁVÌQÓ=OÐ(PÒPÐPÑPrC   c                  óV   ‡‡‡‡— ˆˆˆˆfd„} d\  ŠŠd\  ŠŠ | «        d\  ŠŠ | «        y )Nc                  óº   •— t        t        t        t        fgdz  Ž D ]<  \  } } | ‰‰«      } |‰‰«      }|j	                  |«      |j	                  |«      k(  rŒ<J ‚ y )Nr<   )r#   r   r   r   r   )ÚfÚgrv   rw   r2   r3   Úcr%  s       €€€€r@   Ú_checkztest_issue_2941.<locals>._check+  s`   ø€ Üœd¤C¬Ð1Ð2°QÑ6Ð7ò 	>‰DˆAˆqÙ�1�a“ˆBÙ�1�a“ˆBØ—?‘? 2Ó&¨"¯/©/¸"Ó*=Ó=Ð=Ð=ñ	>rC   ))r    r    rò   )rZ   rg   ))r    r;   rò   rp   )r=  r2   r3   r<  r%  s    @@@@r@   Útest_issue_2941r>  *  s/   û€ ÷>ð �D€A€qØ�D€A€qÙ
„Hà�D€A€qÙ
…HrC   c                  óÀ   ‡‡— t        d«      Št        dd«      t        dd«      }} t        | |«      Š‰j                  d‰«      ‰dik(  sJ ‚t	        t
        ˆˆfd„«       y )Nr.   r   r6   r7   r„   )r7   r„   c                  ó(   •— ‰ j                  d‰«      S )NrZ   )Úparameter_value)rÓ   r.   s   €€r@   rA   z&test_parameter_value.<locals>.<lambda>>  s   ø€ ˜q×0Ñ0°¸Ó;€ rC   )r	   r   r   rA  r$   rL   )r~   r·   rÓ   r.   s     @@r@   Útest_parameter_valuerB  9  sV   ù€ Üˆs‹€AÜ�1�a‹[œ%  1›+ˆ€BÜˆR�‹€AØ×Ñ˜V QÓ'¨A¨q¨6Ò1Ð1Ð1Ü
Œ:Ô;Õ<rC   c            
      óP  — t        t        ddd«      t        ddd«      «      } t        t        ddd«      t        ddd«      «      }| j                  |«      }|t        t        ddd«      t        ddd«      «      t        t        ddd«      t        ddd«      «      gk(  sJ ‚t        t        ddd«      t        ddd«      «      t        t        ddd«      t        ddd«      «      g}d}d}t        t        t
        t        fd¬«      D ]!  \  }} ||Ž j                   ||Ž «      |k(  rŒ!J ‚ y )Nr   r6   r8   )rÎ   rå   )rZ   rÛ   r<   )Úrepeat)r   r   Ú	bisectorsr#   r   r   r   )r½   r¾   Ú
bisectionsÚansrv   rw   r2   r3   s           r@   Útest_bisectorsrH  A  s%  € Ü	”˜˜1˜aÓ ¤'¨!¨Q°Ó"2Ó	3€BÜ	”˜˜1˜aÓ ¤'¨!¨Q°Ó"2Ó	3€BØ—‘˜bÓ!€JØœ&¤¨¨A¨qÓ!1´7¸1¸aÀÓ3CÓDÜŒw�q˜!˜QÓ¤¨¨B°Ó!2Ó3ð5ò 5ð 5ð 5ä”'˜!˜Q Ó"¤G¨A¨q°!Ó$4Ó5ÜŒw�q˜!˜QÓ¤¨¨Q°Ó!2Ó3ð5€Cà	€BØ	€BÜœœg¤sÐ+°AÔ6ò /‰ˆˆ1Ù�"ˆv×Ñ¡ 2 Ó'¨3Ó.Ð.Ð.ñ/rC   c                  óÐ   — t        t        ddd«      t        ddd«      «      } t        t        ddd«      t        ddd«      «      }| j                  |«      t        ddd«      gk(  sJ ‚y )Nr„   r7   r   iúÿÿÿr8   gffffffþ?)r   r   r   rF   s     r@   Útest_issue_8615rJ  O  sa   € ÜŒw�q˜!˜QÓ¤¨¨B°Ó!2Ó3€AÜŒw�q˜"˜eÓ$¤g¨a°°QÓ&7Ó8€AØ�>‰>˜!Ó¤¨¨B°Ó!2Ð 3Ò3Ð3Ñ3rC   c                  óò  — t        t        dd«      t        dd«      j                  d«      «      } t        t        dd«      t        dd«      j                  d«      «      }t        | j	                  |«      d   «      dk(  sJ ‚t        dd	«      }t        d
d«      j                  d«      }t        |j	                  |«      d   «      dk(  sJ ‚t        d
d«      j                  d«      }|j	                  |«      rJ ‚y )Nr   r6   g\�Âõ(\ï?gHáz®Gé?r<   g¸…ëQ¸æ?zPoint2D(0.82, 0.82)rZ   rg   r¤   r¦   zPoint2D(-0.33, -0.33))g      à¿rñ   )r   r   ÚnÚstrr   r   r   )r½   r¾   rv   rw   s       r@   Útest_issue_12598rN  U  sÝ   € Ü	ŒU�1�a‹[œ%  dÓ+×-Ñ-¨aÓ0Ó	1€BÜ	ŒU�1�a‹[œ%  dÓ+×-Ñ-¨aÓ0Ó	1€BÜˆr�‰˜rÓ" 1Ñ%Ó&Ð*?Ò?Ð?Ð?Ü	ˆf�fÓ	€BÜ	�˜'Ó	"×	$Ñ	$ QÓ	'€BÜˆr�‰˜rÓ" 1Ñ%Ó&Ð*AÒAÐAÐAÜ	�˜+Ó	&×	(Ñ	(¨Ó	+€BØ�‰˜rÔ"Ð"Ð"Ð"rC   N)`Úsympy.core.numbersr   r   r   r   Úsympy.core.relationalr   Úsympy.core.singletonr   Úsympy.core.symbolr	   r
   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   r   r   Ú
sympy.setsr   Úsympy.simplify.simplifyr   r   Úsympy.geometryr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    Úsympy.geometry.liner!   Úsympy.geometry.polygonr"   rø   rŒ   r#   Úsympy.testing.pytestr$   r%   r&   r)   r*   r+   r,   r-   r.   r2   r3   r0   rM   rP   rX   r_   rb   re   rx   r{   r�   rš   rÃ   rË   rÔ   rÙ   rß   rá   rè   rì   rï   rþ   r  r  r
  r  r  r  r  r  r  r0  r2  r7  r>  rB  rH  rJ  rN  rp   rC   r@   ú<module>r[     s˜  ðß 8Ó 8Ý $Ý "ß /Ý 9ß EÑ EÝ Ý ,Ý 8÷÷ ÷ ÷ ñ õ ,Ý .Ý ,ß .ñ ˆ3�TÔ€Ù
ˆ3�TÔ€Ù
ˆ3�TÔ€Ù
ˆ3�TÔ€ÙˆD�tÔ€ÙˆD�tÔ€Ù
ˆ3�TÔ€Ùˆu˜4Ô �€€1ÙˆC�dÔ€ò5ò0&òSò#ò<òCòJò$Sò	Bò""òJJCòZ*IòZ'5òTò#ò:Cò
-Tò`Iò4'òDMAòTOò!tòHwò*^ò*NòCò PòF<ò Eò0ò dò.Qòò=ò/ò4ó#rC   