o
    GZh
                     @   st   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 d dlmZmZ dd Zdd Zd	d
 Zdd ZdS )    )raises)symbols)	RigidBodyParticleReferenceFramePointouterdynamicsymbolsForceTorque)gravity_parse_loadc                  C   s   t d} td}t|| j}|j|ksJ |j| jksJ | dks%J t|ts,J |d |ks4J |d | jks=J ||| jfksFJ || j|fksOJ ||| j| j	 fks[J |td| jfksfJ t
d|}t|| j}||kswJ d S )NNPozForce(point=Po, force=N.x)r      CoP)r   r   r
   xpointforce__repr__
isinstancetupleyr   )r   r   f1r   f2 r   W/var/www/auris/lib/python3.10/site-packages/sympy/physics/mechanics/tests/test_loads.pytest_force_default	   s    
r   c                  C   s   t d} t| | j}|j| ksJ |j| jksJ | dks!J t|ts(J |d | ks0J |d | jks9J || | jfksBJ || j| fksKJ || | j| j fksWJ |t d| jfksbJ t	d| d}t|| j}||kstJ d S )Nr   zTorque(frame=N, torque=N.x)r   r   Ar   )frame)
r   r   r   r    Ztorquer   r   r   r   r   )r   r   rbr   r   r   r   test_torque_default   s   r"   c                  C   s  t d} td\}}}td\}}td}td||}t d}td}	t|j|j}
td|	|||
|	f}||f|	|fg}|t	|| j
 || ||f|	|f||| | j
 f|	|| | j
 fg}tt|D ]}tt|| D ]}|| | || | ksJ qpqfd S )	Nr   zm M gzF1 F2popar   r   B)r   r   r	   r   r   r   r   r   extendr   r   rangelen)r   mMgZF1ZF2r#   r$   r   r   Ir%   Z	forceListlijr   r   r   test_gravity2   s"   0r0   c                     s   t d tdtt j jfksJ tt  j  jfks&J t jf} t| ts4J | t jks>J t  jf}t|tsLJ |t  jksVJ t	t
 fdd t	t
 fdd t	t
 fdd t	t fdd d S )Nr   r#   c                      s   t td jfS Nr$   )r   r   r   r   r   r#   r   r   <lambda>Q       z"test_parse_loads.<locals>.<lambda>c                      s   t td  jfS r1   )r   r   r   r   r2   r   r   r3   R   s    c                      s   t  j jfS Nr   r   r   r2   r   r   r3   T   r4   c                      s   t  jgS r5   r6   r   r2   r   r   r3   V   s    )r   r   r   r
   zr   r   r   r   r   
ValueError	TypeError)r   t1r   r2   r   test_parse_loadsE   s   r;   N)Zpytestr   Zsympyr   Zsympy.physics.mechanicsr   r   r   r   r   r	   r
   r   Zsympy.physics.mechanics.loadsr   r   r   r"   r0   r;   r   r   r   r   <module>   s    (