o
    GZh                     @   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sJ  dks J  d dt j t jB ks.J  d d  ks8J  d  @ dksBJ  | @ dksJJ  t j@ t jksTJ  t jA dks]J  t jA t jt jB ksjJ  t jA t j t jB ksxJ | t jA t j t jB ksJ t j A dksJ t j A t j t jB ksJ t j A t jt jB ksJ t j @ t jksJ t j @ dksJ t j| @ t jksJ  |@ t jt jB ksJ | @ dksJ  t dksJ td}tdd}t dd|t jg} | ||ksJ  |t|d |j|jB  t	| t| |j|jB   t	| t| |j|jB   t	|d |j|jB   ksCJ  |t t||jt jB  t	| |jt jB   ksaJ  t |t|t j|jB  t	| t j|jB   ksJ  || t jt jB  | t jt jB   ksJ  
t tg d	g d
g d
gksJ  
t |tt|t	| dgg d
g d
gksJ |
t tg dg d
g d
gksJ td\}}}}}	}
|t j |t j  |t j  }|t j |	t j  |
t j  }||}|
t t|| ||	 ||
 g|| ||	 ||
 g|| ||	 ||
 ggks6J ||}t dd|t jg}t|t |
t  |t j |
|D ]\}}||  dksjJ q[tt fdd d S )Nr      g       @g      ?q   BZAxis)r   r   r   )r   r   r   )r   r   r   za, b, c, d, e, fCc                      s
     dS Nr   )Z	applyfunc Zd1r   U/var/www/auris/lib/python3.10/site-packages/sympy/physics/vector/tests/test_dyadic.py<lambda>A   s   
 ztest_dyadic.<locals>.<lambda>)r   xy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fv1v2Zd4Zd5r   expectedactualr   r   r   test_dyadic   sx   
.


<<4**

 r,   c               
   C   s  t d\
} }}}}}}}}}	td}
|
j|
jB }d|  d|  | }|
j|@ |
j@ | | | |  ks4J | }|
j|@ |
j@ | | | |  ksJJ |	d |d  dt | |d   | }| }|
j|@ |
j@ |	d |d  dt | |d   ks~J dd|   ddd|     dd|    | }| }|
j|@ |
j@ dksJ d|  |d  d|d   d| d  |  | | d  | }| }|
j|@ |
j@ d	| ksJ d S )
Nzx, y, z, k, n, m, w, f, s, ANr   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s!J d S )Nr-   r6   r   )r   r   r   subs)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       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J td}d| t | j| jB  }|dtddtdd | | j| jB  ksGJ |jd|d	id
tdd| j| jB  ks]J d S )Nr-   r/   z3.1416r6      r   5	   g"~@)r8   z80.48760378)r   r   r   Zevalfr   r   )r-   r"   r6   r   r   r   test_dyadic_evalff   s   $20r?   c                     s   t d\} td}t|j|j} |   tit | ks+J   tit| ks:J  |  |    |  di|ksQJ  d| di|ks^J 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@   rA   r   rC   r   r   r   r   r   {   s    )	r   r   r
   r   rB   r   r   r   r!   )r   r-   Dr   rD   r   test_dyadic_xreplacep   s   &rF   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?   rF   r   r   r   r   <module>   s    8
