U
    ZÊ¹jU  ã                   @   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ƒs¬t‚| | }t|tƒsÂt‚|j|ksÐt‚|j| ksÞt‚t| | ||  tƒsøt‚|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�s®n t‚|d tjk�sÂt‚|tjk�sÒt‚|d dtjtjB  k�sðt‚|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�s’t‚|tj	A | tj	¡k�s®t‚| tj¡tj tj	B k�sÎt‚| 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�s„t‚tj |¡tj|@   k�r¬tjk�s²n t‚tj	 |¡t
jk�sÊt‚t
j |¡t
jk�sât‚tj	|@ tj	k�søt‚| |¡||@   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�sšt‚| t¡tdddgdddgdddggƒk�sÊt‚| 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�sät‚| |¡}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   Zexpr1Zexpr2Zexpr3ÚcÚdÚeÚfZd4Zd5r   ÚexpectedÚactual© r*   ú]/var/www/html/bwave/python/venv/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s„t‚|
j|@ |
j@ | | | |  ks¨t‚|	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�sÂt‚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-   r9   Ú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