o
    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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   BAxis)r   r   r   )r   r   r   )r   r   r   za, b, c, d, e, fCc                      s
     dS Nr   )	applyfunc d1r   Z/var/www/vscode/kcb/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	   	orientnewexpressr   r   	to_matrixMatrixr   r
   zipdcmTsimplifyr   	TypeError)d2d3r   qdr   abcdefv1v2d4d5r   expectedactualr   r   r   test_dyadic   sx   
.


<<4**

 r8   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wr1   sr   r9   dytest1test2test3test4r   r   r   test_dyadic_simplifyD   s    $$(8,< rH   c                  C   sF   t d} td}|| j| jB  }||did| j| jB  ks!J d S )Nr9   rB   r   )r   r   r   subs)r9   rB   r,   r   r   r   test_dyadic_subs[   s   &rJ   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   rL   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 )Nr9   r;   z3.1416rB      r   5	   g"~@)rI   z80.48760378)r   r   r   evalfr   r   )r9   r,   rB   r   r   r   test_dyadic_evalff   s   $20rQ   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 zr9   r   r   c                      s      S Nxreplacer   )vr   r   r   z   rK   z&test_dyadic_xreplace.<locals>.<lambda>c                      s     gS rR   rS   r   rU   r   r   r   r   r   {   s    )	r   r   r
   r   rT   r   r   r   r(   )r   r9   Dr   rV   r   test_dyadic_xreplacep   s   &rX   N)sympy.core.numbersr   r   sympy.core.symbolr   (sympy.functions.elementary.trigonometricr   r   sympy.matrices.immutabler   r#   sympy.physics.vectorr   r	   r
   sympy.physics.vector.dyadicr   sympy.testing.pytestr   r   r8   rH   rJ   rL   rQ   rX   r   r   r   r   <module>   s    8
