U
    L?h                     @   s   d dl mZ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 edZd	d
 Zdd Zdd Zdd Zdd Zdd ZdS )    )Floatpi)symbols)cossin)ImmutableDenseMatrix)ReferenceFramedynamicsymbolsouter_check_dyadic)raisesAc                     s  t jt jB  t jt jB } t jt jB } d dks4t dks@t d dt j t jB ks\t d d  kspt d  @ dkst | @ dkst t j@ t jkst t jA dkst t jA t jt jB kst t jA t j t jB kst| t jA t j t jB kstt j A dks"tt j A t j t jB ks@tt j A t jt jB ks\tt j @ t jksrtt j @ dkstt j| @ t jkst |@ t jt jB kst| @ dkst t dksttd}tdd}t dd|t jg} | ||kst |t	|d |j|jB  t
| t	| |j|jB   t
| t	| |j|jB   t
|d |j|jB   kst |t t	||jt jB  t
| |jt jB   kst t |t	|t j|jB  t
| t j|jB   kst || t jt jB  | t jt jB   ksFt t tdddgdddgdddggksvt t |tt	|t
| dgdddgdddggkst|t tdddgdddgdddggksttd	\}}}}}	}
|t j |t j  |t j  }|t j |	t j  |
t j  }||}|t t|| ||	 ||
 g|| ||	 ||
 g|| ||	 ||
 ggkst||}t d
d|t jg}t|t |t  |t j ||D ] \}}||  dkstqtt fdd d S )Nr      g       @g      ?q   BZAxisza, b, c, d, e, fCc                      s
     dS Nr   )Z	applyfunc Zd1r   X/var/www/html/venv/lib/python3.8/site-packages/sympy/physics/vector/tests/test_dyadic.py<lambda>A       ztest_dyadic.<locals>.<lambda>)r   xyAssertionErrorzdtr	   Z	orientnewZexpressr   r   Z	to_matrixMatrixr   r
   zipZdcmTsimplifyr   	TypeError)Zd2Zd3r   Zqdr   abcdefZv1Zv2Zd4Zd5r   expectedactualr   r   r   test_dyadic   sx    
.


<<400

 r,   c               
   C   s  t d\
} }}}}}}}}}	td}
|
j|
jB }d|  d|  | }|
j|@ |
j@ | | | |  ksht| }|
j|@ |
j@ | | | |  kst|	d |d  dt | |d   | }| }|
j|@ |
j@ |	d |d  dt | |d   kstdd|   ddd|     dd|    | }| }|
j|@ |
j@ dksJt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   )r   r   r   knmwr)   sr   r-   ZdyZtest1Ztest2Ztest3Ztest4r   r   r   test_dyadic_simplifyD   s     $$(8,<r7   c                  C   sF   t d} td}|| j| jB  }||did| j| jB  ksBtd S )Nr-   r6   r   )r   r   r   subsr   )r-   r6   r$   r   r   r   test_dyadic_subs[   s    r9   c                   C   s   t tdd  d S )Nc                   S   s   t dS r   r   r   r   r   r   r   c   r   z#test_check_dyadic.<locals>.<lambda>)r   r#   r   r   r   r   test_check_dyadicb   s    r:   c                  C   s   t d} t| j| jB  }|dtdd| j| jB  ks<ttd}d| t | j| jB  }|dtddtdd | | j| jB  kst|jd|d	id
tdd| j| jB  kstd S )Nr-   r/   z3.1416r6      r   5	   g"~@)r8   z80.48760378)r   r   r   Zevalfr   r   r   )r-   r$   r6   r   r   r   test_dyadic_evalff   s    $2r>   c                     s   t d\} td}t|j|j} |   tit | ksVt  tit| kstt |  |    |  di|kst d| di|ksttt	 fdd tt	 fdd d S )Nzx y zr-   r   r   c                      s      S Nxreplacer   )vr   r   r   z   r   z&test_dyadic_xreplace.<locals>.<lambda>c                      s     gS r?   r@   r   rB   r   r   r   r   r   {   r   )
r   r   r
   r   rA   r   r   r   r   r#   )r   r-   Dr   rC   r   test_dyadic_xreplacep   s    &rE   N)Zsympy.core.numbersr   r   Zsympy.core.symbolr   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.matrices.immutabler   r   Zsympy.physics.vectorr   r	   r
   Zsympy.physics.vector.dyadicr   Zsympy.testing.pytestr   r   r,   r7   r9   r:   r>   rE   r   r   r   r   <module>   s   8
