U
    	-eU                     @   s   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 d dlmZmZmZmZmZmZmZmZ edZdd	 Zd
d Zdd ZdS )    )pi)symbols)cossin)ImmutableDenseMatrix)simplify)
CoordSys3DVectorDyadic	DyadicAdd	DyadicMul
DyadicZero
BaseDyadicexpressAc                  C   sP  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sJttt
jtjttjt
j  krttjkszn ttjtjB }tj	tj	B }tjtj	B }t|tst| | }t|tst|j|kst|j| kstt| | ||  tst|tjtjkst|tjtj	ks(t| tj tj }tj|tj	  }||B ||  kr| tjtjB  | | tjtj	B   tjtjB   |tjtj	B   ksn t|d tjkst|tjkst|d dtjtjB  kst|d d| kst|d| t
jks t||@ tjks4t|tjtj  kr\|tj@ ksbn t|t
jtjkszt|tjtjkst|tj	A |tj	kst|tjtj tj	B kst|tjtj	 tjB   kr|tjA ksn ttj|A tjksttj	|tj tjB   krJtj	|A ksPn tt
j|tjkshttj|A tj	tjB ksttj|tj|@   krtjksn ttj	|t
jkstt
j|t
jksttj	|@ tj	kst||||@   kr.tjtj	B   kr.|ks4n t||@ tjksHtt d}td|tj}	t||	t||	|	ks|tt|d |	j|	jB  t| t| |	j|	j	B   t| t| |	j	|	jB   t|d |	j	|	j	B   }
t||	|
  tjkstt||	jtjB  t| |	j	tjB   }t||	t|  tjksPtt|tj|	jB  t| tj|	j	B   }t|t|	|  tjkst|ttdddgdddgdddggkst|t|	tt|t| dgdddgdddggkst|ttdddgdddgdddggks6tt d	\} }}}}}| tj |tj	  |tj  }|tj |tj	  |tj  }||}|tt| | | | | | g|| || || g|| || || ggkst||}td
|tj}t|t|t |tj ||D ] \}}||  dks*tq*d S )Nza, br      g       @g      ?qB   za, b, c, d, e, fC)r   r
   zeroAssertionError
isinstancer   r   r   ijr	   r   Zbase_dyadicZmeasure_numberr   outerkdotcrossZorient_new_axisr   r   r   r   Z	to_matrixMatrixzipZrotation_matrixT)abZd1Zd2Zd3Zd_mulZv1Zv2r   r   expr1Zexpr2Zexpr3cdefZd4Zd5r   expectedactual r+   _/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/vector/tests/test_dyadic.pytest_dyadic   s     :. 66.<&


* * 00


r-   c               
   C   s  t d\
} }}}}}}}}}	td}
|
j|
jB }d|  d|  | }|
j|@ |
j@ | | | |  ksht| }| t|kst|
j|@ |
j@ | | | |  kst|	d |d  dt | |d   | }| }|
j|@ |
j@ |	d |d  dt | |d   kstdd|   ddd|     dd|    | }| }|
j|@ |
j@ dks`td|  |d  d|d   d| d  |  | | d  | }| }|
j|@ |
j@ d	| kstd S )
Nzx, y, z, k, n, m, w, f, s, ANr   r         r   )r   r   r   r   r   r   )xyzr   nmwr(   sr   r.   dyZtest1Ztest2Ztest3Ztest4r+   r+   r,   test_dyadic_simplifyc   s"    $$(:,<r;   c                  C   s8   ddl m}  td}|j|jB }d}| ||ks4td S )Nr   )sreprr.   ax  BaseDyadic(CoordSys3D(Str('N'), Tuple(ImmutableDenseMatrix([[Integer(1), Integer(0), Integer(0)], [Integer(0), Integer(1), Integer(0)], [Integer(0), Integer(0), Integer(1)]]), VectorZero())).i, CoordSys3D(Str('N'), Tuple(ImmutableDenseMatrix([[Integer(1), Integer(0), Integer(0)], [Integer(0), Integer(1), Integer(0)], [Integer(0), Integer(0), Integer(1)]]), VectorZero())).j))Zsympy.printing.reprr<   r   r   r   r   )r<   r.   r:   resr+   r+   r,   test_dyadic_srepr{   s
    r>   N)Zsympy.core.numbersr   Zsympy.core.symbolr   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.matrices.immutabler   r   Zsympy.simplify.simplifyr   Zsympy.vectorr   r	   r
   r   r   r   r   r   r   r-   r;   r>   r+   r+   r+   r,   <module>   s   (U