ó
¡¼™\c           @   sŠ   d  d l  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 e	 d ƒ Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   sint   cost   symbolst   pit   ImmutableMatrixt   simplify(   t
   CoordSys3Dt   Vectort   Dyadict	   DyadicAddt	   DyadicMult
   DyadicZerot
   BaseDyadict   expresst   Ac          C   sH	  t  d ƒ \ }  } t j d k s' t ‚ t t j t ƒ s? t ‚ t t j t j	 ƒ t t j	 t j ƒ k so t ‚ t t
 j t j ƒ t t j t
 j ƒ k o§ t j k n s² t ‚ t j t j B} t j	 t j	 B} t j t j	 B} t | t ƒ s÷ t ‚ |  | } t | t ƒ st ‚ | j | k s+t ‚ | j |  k s@t ‚ t |  | | | t ƒ sat ‚ | t j j t j ƒ k s‚t ‚ | t j j t j	 ƒ k s£t ‚ |  t j t j } t j | t j	 } | | B| j | ƒ k o4|  t j t j B|  | t j t j	 Bt j t j B| t j t j	 Bk n s?t ‚ | d t j k sXt ‚ | t j k smt ‚ | d d t j t j Bk s‘t ‚ | d d | k s«t ‚ | j d | ƒ t
 j k sÍt ‚ | | @t j k sæt ‚ | j t j ƒ t j k o| t j @k n st ‚ | j t
 j ƒ t j k s?t ‚ | j t j ƒ t j k s`t ‚ | t j	 A| j t j	 ƒ k s…t ‚ | j t j ƒ t j t j	 Bk s®t ‚ | j t j ƒ t j	 t j Bk oã| t j Ak n sît ‚ t j | At j k s
t ‚ t j	 j | ƒ t j t j Bk o?t j	 | Ak n sJt ‚ t
 j j | ƒ t j k skt ‚ t j | At j	 t j Bk sŽt ‚ t j j | ƒ t j | @k o»t j k n sÆt ‚ t j	 j | ƒ t
 j k sçt ‚ t
 j j | ƒ t
 j k st ‚ t j	 | @t j	 k s$t ‚ | j | ƒ | | @k o]t j t j	 Bk o]| k n sht ‚ | | @t j k st ‚ t  d ƒ } t j d | t j ƒ }	 t | |	 ƒ t | |	 |	 ƒ k sÌt ‚ t | |	 ƒ t | ƒ d |	 j |	 j Bt | ƒ t | ƒ |	 j |	 j	 Bt | ƒ t | ƒ |	 j	 |	 j Bt | ƒ d |	 j	 |	 j	 Bk sat ‚ t | |	 t ƒ t | ƒ |	 j t j Bt | ƒ |	 j	 t j Bk s¬t ‚ t | t |	 ƒ t | ƒ t j |	 j Bt | ƒ t j |	 j	 Bk s÷t ‚ | j t ƒ t d d d g d d d g d d d g g ƒ k s<t ‚ | j t |	 ƒ t t | ƒ t | ƒ d g d d d g d d d g g ƒ k s‘t ‚ | j t ƒ t d d d g d d d g d d d g g ƒ k sÖt ‚ t  d	 ƒ \ }  } }
 } } } |  t j | t j	 |
 t j } | t j | t j	 | t j } | j | ƒ } | j t ƒ t |  | |  | |  | g | | | | | | g |
 | |
 | |
 | g g ƒ k s²t ‚ | j | ƒ } t j d
 | t j ƒ } xh t | j t ƒ | j t ƒ | j t ƒ j | j | ƒ ƒ D]( \ } } | | j ƒ  d k s	t ‚ q	Wd  S(   Ns   a, bi    i   g       @g      à?t   qt   Bi   s   a, b, c, d, e, ft   C(   R   R   t   zerot   AssertionErrort
   isinstanceR   R   R   t   it   jR   R
   t   base_dyadict   measure_numberR	   t   outert   kt   dott   crosst   orient_new_axisR   R   R    t	   to_matrixt   Matrixt   zipt   rotation_matrixt   TR   (   t   at   bt   d1t   d2t   d3t   d_mult   v1t   v2R   R   t   ct   dt   et   ft   d4t   d5R   t   expectedt   actual(    (    s=   lib/python2.7/site-packages/sympy/vector/tests/test_dyadic.pyt   test_dyadic   sˆ    01
!!!Y$"8!!%)@@!#8!!D'nKKE+E##'*,c       
   C   s   t  d ƒ \
 }  } } } } } } } } }	 t d ƒ }
 |
 j |
 j B} d |  d | | } |
 j | @|
 j @|  | |  | k sˆ t ‚ | j ƒ  } | j ƒ  t | ƒ k s² t ‚ |
 j | @|
 j @|  | |  | k sÞ t ‚ |	 d | d d t | | d | } | j ƒ  } |
 j | @|
 j @|	 d | d d t | | d k sTt ‚ d d |  d d d |  d d |  | } | j ƒ  } |
 j | @|
 j @d k s®t ‚ d |  | d d | d d |  d | |  | d | } | j ƒ  } |
 j | @|
 j @d	 | k st ‚ d  S(
   Ns   x, y, z, k, n, m, w, f, s, At   Ni   i   i   i   i    iüÿÿÿiþÿÿÿ(   R   R   R   R   R   R   (   t   xt   yt   zR   t   nt   mt   wR.   t   sR   R4   t   dyt   test1t   test2t   test3t   test4(    (    s=   lib/python2.7/site-packages/sympy/vector/tests/test_dyadic.pyt   test_dyadic_simplifyY   s"    *,,*@. >N(   t   sympyR    R   R   R   R   R   R   t   sympy.vectorR   R   R   R	   R
   R   R   R   R   R3   RA   (    (    (    s=   lib/python2.7/site-packages/sympy/vector/tests/test_dyadic.pyt   <module>   s   .:	N