ó
¡¼™\c           @   s¹   d  d l  m Z m Z m Z m Z m Z m Z m Z m Z d  d l	 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 „  Z d „  Z d „  Z d S(	   iÿÿÿÿ(   t   Dummyt   St   symbolst   pit   sqrtt   asint   sint   cos(	   t   Linet   Pointt   Rayt   Segmentt   Point3Dt   Line3Dt   Ray3Dt	   Segment3Dt   Plane(   t   are_coplanar(   t   raisesc       	   C   sÍ  t  d d t ƒ\ }  } } } } t d d d ƒ } t d d d ƒ } t d d d ƒ } t | | | ƒ } t | d d6 ƒ}	 t | | ƒ }
 t | d d7 ƒ} t t d d d ƒ d d8 ƒ} t t d d	 d
 ƒ d d9 ƒ} t | d d: ƒ} t | d d; ƒ} t | d d< ƒ} t | 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 | | | ƒ t | | | ƒ k s¿t ‚ t | | | ƒ j t | | | ƒ ƒ sìt ‚ | t t d d d ƒ d d> ƒk st ‚ | |	 k s(t ‚ |	 |
 k s:t ‚ | t t d d d ƒ d d? ƒk sdt ‚ | j |  | | ƒ |  d | d | d k s™t ‚ | j |  | | ƒ |  d | | k sÆt ‚ | j | k sÛt ‚ |	 j | k sðt ‚ | j | k st ‚ |	 j	 d@ k st ‚ | j	 dA k s/t ‚ | | k sAt ‚ | |	 k sSt ‚ | | k set ‚ | j
 t d d ƒ ƒ | k s‰t ‚ | j
 t d d d ƒ ƒ } | t t d ƒ d t d ƒ d t d ƒ d ƒ k sàt ‚ | | k sòt ‚ | j t t d d ƒ t d d ƒ ƒ ƒ } | t t d d d ƒ t t d ƒ d t d ƒ d t d ƒ d ƒ ƒ k smt ‚ | | k st ‚ t ƒ  } | j ƒ  } | j | ƒ j | ƒ } t | j | d ƒ | j | d ƒ ƒ } | j | k rñ| j | k s÷t ‚ | j | ƒ j | ƒ st ‚ | j t t d d ƒ t d d ƒ ƒ ƒ t t t d ƒ d t d ƒ d t d ƒ d ƒ t t d ƒ d t d ƒ d t d ƒ d ƒ ƒ k s©t ‚ | j t t d d ƒ t d d ƒ ƒ ƒ t t t d ƒ d t d ƒ d t d ƒ d ƒ t t d ƒ d t d ƒ d t d ƒ d ƒ ƒ k s<t ‚ | j | j ƒ | j | ƒ k sct ‚ | j | ƒ t k s~t ‚ |	 j | ƒ s“t ‚ | j | ƒ t k s®t ‚ | j | ƒ sÃt ‚ |	 j | ƒ sØt ‚ | j | ƒ sít ‚ | j | ƒ t k st ‚ | j | j | | ƒ ƒ d k s/t ‚ | j | j | | ƒ ƒ d k sVt ‚ | j | j | ƒ ƒ d k szt ‚ | j | j | ƒ ƒ d k sžt ‚ | j j | j | ƒ ƒ j ƒ  d k sËt ‚ | j j | j | ƒ ƒ j ƒ  d k søt ‚ | j | ƒ t t  d ƒ t! | ƒ d d t  d ƒ t" | ƒ d t  d ƒ t! | ƒ d t  d ƒ t" | ƒ d t  d ƒ t! | ƒ d ƒ k st ‚ | j | | ƒ t d | | | d | d | ƒ k sÎt ‚ | j t d d d ƒ ƒ d t  d ƒ d k s	t ‚ | j t d d d ƒ ƒ d t  d ƒ k s4	t ‚ | j | j ƒ d k sR	t ‚ | j | ƒ d k sm	t ‚ | j | ƒ d k sˆ	t ‚ | j t t d d d ƒ t d d d ƒ ƒ ƒ d k sÄ	t ‚ | j t t d d d ƒ d dB ƒƒ t  d ƒ k | j# | ƒ t$ d k s
t ‚ | j# | ƒ d k s/
t ‚ | j# |	 ƒ d k sJ
t ‚ | j# t t d d d ƒ t d d d ƒ ƒ ƒ t% t  d ƒ d ƒ k s—
t ‚ | j# t t d d d ƒ t d d d ƒ ƒ ƒ t% t  d ƒ d ƒ k sã
t ‚ | j# t t d d d ƒ t d d d ƒ ƒ ƒ t% d t  d ƒ d ƒ k s3t ‚ t& | | | ƒ t k sQt ‚ t& | ƒ t k sit ‚ t& t d d d ƒ t d d d ƒ t d d d ƒ t d d d ƒ ƒ s´t ‚ t& t | | | ƒ t | | | ƒ ƒ sát ‚ t j' | |	 | ƒ t k st ‚ t j' | ƒ t k st ‚ t( t) d „  ƒ t( t) d „  ƒ | j* t d d d ƒ ƒ t t d d d ƒ d dC ƒk s|t ‚ t dD dE ƒ } | j+ ƒ  t t d d d ƒ dF ƒ k s¸t ‚ | j+ t d d d ƒ ƒ t t d d d ƒ dG ƒ k sôt ‚ | j+ dH dI ƒ t t d d d ƒ dJ ƒ k s't ‚ t d d d ƒ t d d d ƒ } } dK } t | d | ƒ} | j+ | | ƒ t | dL ƒ k s‹t ‚ t | Œ  } | j+ | | ƒ t | dM ƒ k s¾t ‚ t | d | j ƒj+ | | | ƒ t t d d d ƒ dN ƒ k st ‚ t | d | ƒj+ | | | ƒ t t d d d ƒ dO ƒ k sGt ‚ t | d | j ƒj+ | | | ƒ t t d d d ƒ dP ƒ k st ‚ | j, | ƒ | g k s«t ‚ |	 j, |	 j ƒ |	 j g k sÏt ‚ | j, | ƒ t t d d d ƒ t d d d ƒ ƒ g k st ‚ | j, t t d d d ƒ t d d d ƒ ƒ ƒ t d t d ƒ d t d ƒ d ƒ g k smt ‚ | j, t t d d d ƒ d dQ ƒƒ t t d d d ƒ t d d d ƒ ƒ g k sÄt ‚ | j, t t d d d ƒ t d d d ƒ ƒ ƒ t d d d ƒ g k st ‚ | j, t t d d d ƒ t d d d ƒ ƒ ƒ t d d d ƒ g k sZt ‚ | j, t t d d ƒ t d d ƒ ƒ ƒ t t d ƒ d t d ƒ d d ƒ g k s³t ‚ t t d d ƒ t d d ƒ ƒ } t dR d dS ƒj, | ƒ t t d d ƒ t d d ƒ ƒ g k st ‚ | j, | ƒ t t d d d ƒ t d d d ƒ ƒ g k sXt ‚ | j, | ƒ t t d d d ƒ t d d d ƒ ƒ g k s—t ‚ |	 j, | ƒ t t d d d ƒ t d d d ƒ ƒ g k sÖt ‚ | j, | ƒ g  k sñt ‚ | j, | ƒ t t d d d ƒ t d d d ƒ ƒ g k s0t ‚ | j, |	 ƒ t t d d d ƒ t d d d ƒ ƒ g k sot ‚ | j ƒ  | k s‡t ‚ |	 j, |	 j ƒ d j |	 j ƒ s¯t ‚ | j, | ƒ d j t t d d d ƒ t d d d ƒ ƒ ƒ sòt ‚ t dT d dU ƒ} | j, t | dV ƒ ƒ d j t dW dX ƒ ƒ s8t ‚ | j, t | dY ƒ ƒ d j t dZ d[ ƒ ƒ slt ‚ | j, t | d\ ƒ ƒ d j t | d] ƒ ƒ s t ‚ | j, t | d d^ ƒƒ d j | ƒ sÎt ‚ | j, t | d d_ ƒƒ d j t | d$ d# t$ d d f ƒƒ st ‚ | j, t | d d` ƒƒ d j t | d$ da ƒƒ sOt ‚ | j, t | d db ƒƒ d j t | d$ dc ƒƒ s‰t ‚ | j, t | d dd ƒƒ d j t | d$ de ƒƒ sÃt ‚ | j ƒ  | k sÛt ‚ t- | j, t t d d d ƒ t d d d ƒ ƒ ƒ ƒ d k st ‚ | j, | ƒ d j | ƒ s?t ‚ | j t | d df ƒƒ t k sft ‚ | j | ƒ s{t ‚ | j t | d dg ƒƒ sœt ‚ | j t | d d d d t  d ƒ f ƒƒ sÐt ‚ t t t d& ƒ d' t d( ƒ d) t d* ƒ d+ ƒ t t d& ƒ d, t d- ƒ d. t d* ƒ d+ ƒ ƒ } t t t d/ ƒ d+ t d0 ƒ d+ t d1 ƒ d+ ƒ t d2 ƒ t d3 ƒ t d4 ƒ f ƒ } t. g  | j, | ƒ D] } | j/ d ƒ ^ qŸƒ d5 k sÉt ‚ d  S(h   Ns	   x y z u vt   reali    i   i   i   t   normal_vectori   iûÿÿÿiúÿÿÿiþÿÿÿi   i   iÿÿÿÿi	   i   i   i   i   i
   i   i   i   i   iö   c           S   s   t  j t d d d ƒ ƒ S(   Ni    (   R   t   are_concurrentR   (    (    (    s>   lib/python2.7/site-packages/sympy/geometry/tests/test_plane.pyt   <lambda>q   t    c           S   s   t  d d d ƒS(   Ni   i   i   R   i    (   i   i   i   (   i    i    i    (   R   (    (    (    s>   lib/python2.7/site-packages/sympy/geometry/tests/test_plane.pyR   r   R   ièÿÿÿiôÿÿÿiçÿÿÿióÿÿÿgš™™™™™¹?g333333ó?i   ip   t   direction_ratioiõÿÿÿIq,ˆy-  I P9'Œ  I³›×3+ I €Æ¤~ IAPJ^ÒÒ  I @zóZ  I  =ˆy-  IÁæõÌÊ  I  1©_ã  Iíº‚Rn I½1MÏlX  IÅî1,Å  s   9.00000087501922s   4.81170658872543e-13s   0.0s   [Point3D(4.0, -0.89, 2.3)](   i   i   i   (   i   i   i   (   i   i   i   (   i   iþÿÿÿi   (   i    i    i   (   i    i   i    (   iþÿÿÿi    i    (   i    i    i   (   i   iþÿÿÿi   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   iþÿÿÿi   (   i    i    i    (   i   i    i    (   i    i   i    (   i    i   i    (   i   i    i   (   i   i   i   (   i    i    iÿÿÿÿ(   i    i    i   (   i   i    i    (   iÿÿÿÿi    i    (   i   i    i    (   iÿÿÿÿi    i    (   i   i    i    (   i   iûÿÿÿi   (   i   i   i    (   i    i    i   (   i   i   i    (   i    i    i   (   i   i   i    (   i    i    i    (   gš™™™™™¹?g333333ó?i    (   i   i   i    (   i    i    i    (   i   i   i    (   i   i   i    (   i   i   i    (   i    i    ip   (   i    i   i    (   i   i    i   (   i    iõÿÿÿi    (   i   i    i   (   i    i   i    (   iÿÿÿÿiÿÿÿÿiõÿÿÿ(   i   iÿÿÿÿi    (   i    i   i    (   i    i    iôÿÿÿ(0   R   t   TrueR   R   R   t   AssertionErrort   is_coplanart   equationt   p1R   t
   projectionR	   R   t   projection_lineR   R    t   random_pointt   perpendicular_linet   arbitrary_pointR   t   subst   p2t   equalsR   R
   R   t   argst   is_parallelt   Falset   is_perpendiculart   distancet   simplifyR   R   R   t   angle_betweenR   R   R   R   R   t
   ValueErrort   parallel_planet   perpendicular_planet   intersectiont   lent   strt   n(   t   xt   yt   zt   ut   vR   R$   t   p3t   pl3t   pl4t   pl4bt   pl5t   pl6t   pl7t   pl8t   pl9t   pl10t   pl11t   l1t   l2t   l3t   pt   lt   tt   rt   at   st   bt   ZR3   t   i(    (    s>   lib/python2.7/site-packages/sympy/geometry/tests/test_plane.pyt
   test_plane   sV   !'''*-**5-$<*Q	'$'m'l'''$$--'q>51<1- --#!*-!--$$%''"$$"$$3-2$3--'2!-?????(C444.(B"'!4.c          C   s  t  t d d d ƒ d d ƒ}  t d d ƒ } |  j | ƒ t t d ƒ d t d ƒ d t d ƒ d ƒ k sr t ‚ t d d ƒ t d d ƒ } } d } t  | d | ƒ} | j | | ƒ t  t d d d ƒ d	 ƒ k sÜ t ‚ t  d
 d d ƒ j d ƒ t d d d ƒ g k st ‚ d  S(   Ni   i   R   i   i   i    (   i   i   i   (   i    i    i   (   i   i    i    (   i   i   i   (   i   i   i    (   i   i   i   (   i   i   (   R   R   R	   R   R   R   R/   R0   (   t   ARM   RK   RN   RG   (    (    s>   lib/python2.7/site-packages/sympy/geometry/tests/test_plane.pyt   test_dimension_normalizationØ   s    E3c             s¬   t  d ƒ \ ‰ }  } t d	 d
 d ƒ ‰  ˆ  j d ˆ ƒ i t d t d ƒ d ƒ ˆ 6k s` t ‚ ˆ  j d |  | ƒ i d |  6d | 6k s t ‚ t t ‡  ‡ f d †  ƒ d  S(   Ns   t, u vi    i   iýÿÿÿi   i   i   c              s   ˆ  j  d ˆ ƒ S(   Ni   i    (   i   i    i    (   t   parameter_value(    (   RG   RI   (    s>   lib/python2.7/site-packages/sympy/geometry/tests/test_plane.pyR   ê   R   (   i    i    i    (   i    i    i   (   i    i   i    (   i    iýÿÿÿi   (   i    iýÿÿÿi   (   R   R   RS   R   R   R   R   R-   (   R7   R8   (    (   RG   RI   s>   lib/python2.7/site-packages/sympy/geometry/tests/test_plane.pyt   test_parameter_valueå   s
    9/N(   t   sympyR    R   R   R   R   R   R   R   t   sympy.geometryR   R	   R
   R   R   R   R   R   R   t   sympy.geometry.utilR   t   sympy.utilities.pytestR   RP   RR   RT   (    (    (    s>   lib/python2.7/site-packages/sympy/geometry/tests/test_plane.pyt   <module>   s   :@	Ñ	